diff --git a/lib/new-admin/graphql/schema.js b/lib/new-admin/graphql/schema.js index c056c252..9cc8fba0 100644 --- a/lib/new-admin/graphql/schema.js +++ b/lib/new-admin/graphql/schema.js @@ -1,5 +1,5 @@ const { gql } = require('apollo-server-express') -const converter = require('json-2-csv') +const { parseAsync } = require('json2csv') const { GraphQLDateTime } = require('graphql-iso-date') const { GraphQLJSON, GraphQLJSONObject } = require('graphql-type-json') const got = require('got') @@ -261,17 +261,17 @@ const resolvers = { machineLogs: (...[, { deviceId, from, until, limit, offset }]) => logs.simpleGetMachineLogs(deviceId, from, until, limit, offset), machineLogsCsv: (...[, { deviceId, from, until, limit, offset }]) => - logs.simpleGetMachineLogs(deviceId, from, until, limit, offset).then(converter.json2csvAsync), + logs.simpleGetMachineLogs(deviceId, from, until, limit, offset).then(parseAsync), serverVersion: () => serverVersion, uptime: () => supervisor.getAllProcessInfo(), serverLogs: (...[, { from, until, limit, offset }]) => serverLogs.getServerLogs(from, until, limit, offset), serverLogsCsv: (...[, { from, until, limit, offset }]) => - serverLogs.getServerLogs(from, until, limit, offset).then(converter.json2csvAsync), + serverLogs.getServerLogs(from, until, limit, offset).then(parseAsync), transactions: (...[, { from, until, limit, offset }]) => transactions.batch(from, until, limit, offset), transactionsCsv: (...[, { from, until, limit, offset }]) => - transactions.batch(from, until, limit, offset).then(converter.json2csvAsync), + transactions.batch(from, until, limit, offset).then(parseAsync), config: () => settingsLoader.loadLatestConfigOrNone(), accounts: () => settingsLoader.loadAccounts() }, diff --git a/new-lamassu-admin/src/components/LogsDownloaderPopper.js b/new-lamassu-admin/src/components/LogsDownloaderPopper.js index 8e71bce8..79ca89d5 100644 --- a/new-lamassu-admin/src/components/LogsDownloaderPopper.js +++ b/new-lamassu-admin/src/components/LogsDownloaderPopper.js @@ -192,8 +192,10 @@ const LogsDownloaderPopover = ({ name, query, args, title, getLogs }) => { FileSaver.saveAs( blob, selectedRadio === ALL - ? `${formatDateFile(new Date())}_${name}` - : `${formatDateFile(range.from)}_${formatDateFile(range.until)}_${name}` + ? `${formatDateFile(new Date())}_${name}.csv` + : `${formatDateFile(range.from)}_${formatDateFile( + range.until + )}_${name}.csv` ) } diff --git a/new-lamassu-admin/src/pages/Wizard/components/Welcome.js b/new-lamassu-admin/src/pages/Wizard/components/Welcome.js index c5b0f20c..004aa08f 100644 --- a/new-lamassu-admin/src/pages/Wizard/components/Welcome.js +++ b/new-lamassu-admin/src/pages/Wizard/components/Welcome.js @@ -29,11 +29,11 @@ function Welcome({ doContinue }) { return (
-

Welcome to Lamassu Admin

+

Welcome to the Lamassu Admin

- To get started, we’ve put together wizard that will + To get you started, we’ve put together a wizard that will
- help set up you need before start adding machines. + help set up what you need before pairing your machines.

\n )}\n {children &&
{children}
}\n \n )\n }\n)\n\nexport default ActionButton\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/add/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.5384615,6 C11.5384615,9.05815385 9.05815385,11.5384615 6,11.5384615 C2.94184615,11.5384615 0.461538462,9.05815385 0.461538462,6 C0.461538462,2.94184615 2.94184615,0.461538462 6,0.461538462 C9.05815385,0.461538462 11.5384615,2.94184615 11.5384615,6 Z\",\n id: \"Stroke-1\",\n stroke: \"#1B2559\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 6,\n y1: 3.69230769,\n x2: 6,\n y2: 8.30769231,\n id: \"Stroke-3\",\n stroke: \"#1B2559\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 3.69230769,\n y1: 6,\n x2: 8.30769231,\n y2: 6,\n id: \"Stroke-5\",\n stroke: \"#1B2559\"\n}));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.a976fef2.svg\";\nexport { ForwardRef as ReactComponent };","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React, { memo } from 'react'\n\nimport typographyStyles from 'src/components/typography/styles'\nimport { ReactComponent as AddIcon } from 'src/styling/icons/button/add/zodiac.svg'\nimport { zircon, zircon2, comet, fontColor, white } from 'src/styling/variables'\n\nconst { p } = typographyStyles\n\nconst styles = {\n button: {\n extend: p,\n border: 'none',\n backgroundColor: zircon,\n cursor: 'pointer',\n outline: 0,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n width: 167,\n height: 48,\n color: fontColor,\n '&:hover': {\n backgroundColor: zircon2\n },\n '&:active': {\n backgroundColor: comet,\n color: white,\n '& svg g *': {\n stroke: white\n }\n },\n '& svg': {\n marginRight: 8\n }\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst SimpleButton = memo(({ className, children, ...props }) => {\n const classes = useStyles()\n\n return (\n \n )\n})\n\nexport default SimpleButton\n","import typographyStyles from 'src/components/typography/styles'\nimport {\n white,\n disabledColor,\n secondaryColor,\n secondaryColorDark,\n secondaryColorDarker,\n spacer\n} from 'src/styling/variables'\n\nconst { h1, h3 } = typographyStyles\n\nconst pickSize = size => {\n switch (size) {\n case 'xl':\n return spacer * 7.625\n case 'sm':\n return spacer * 4\n case 'lg':\n default:\n return spacer * 5\n }\n}\n\nexport default {\n wrapper: ({ size }) => {\n const height = pickSize(size)\n const shadowSize = height / 12\n return { height: height + shadowSize / 2 }\n },\n button: ({ size }) => {\n const height = pickSize(size)\n const shadowSize = size === 'xl' ? 3 : height / 12\n const padding = size === 'xl' ? 20 : height / 2\n\n return {\n extend: size === 'xl' ? h1 : h3,\n border: 'none',\n color: white,\n cursor: 'pointer',\n fontWeight: 900,\n outline: 0,\n backgroundColor: secondaryColor,\n '&:disabled': {\n backgroundColor: disabledColor,\n boxShadow: 'none',\n '&:hover': {\n backgroundColor: disabledColor,\n boxShadow: 'none'\n },\n '&:active': {\n marginTop: 0\n }\n },\n shadowSize,\n height,\n padding: `0 ${padding}px`,\n borderRadius: height / 4,\n boxShadow: `0 ${shadowSize}px ${secondaryColorDark}`,\n '&:hover': {\n backgroundColor: secondaryColorDark,\n boxShadow: `0 ${shadowSize}px ${secondaryColorDarker}`\n },\n '&:active': {\n marginTop: shadowSize / 2,\n backgroundColor: secondaryColorDark,\n boxShadow: `0 ${shadowSize / 2}px ${secondaryColorDarker}`\n }\n }\n }\n}\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React, { memo } from 'react'\n\nimport styles from './Button.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst ActionButton = memo(({ size = 'lg', children, className, ...props }) => {\n const classes = useStyles({ size })\n return (\n
\n \n
\n )\n})\n\nexport default ActionButton\n","import {\n white,\n fontColor,\n subheaderColor,\n subheaderDarkColor,\n offColor,\n offDarkColor\n} from 'src/styling/variables'\n\nconst colors = (color1, color2, color3) => {\n return {\n backgroundColor: color1,\n '&:hover': {\n backgroundColor: color2\n },\n '&:active': {\n backgroundColor: color3\n }\n }\n}\n\nconst buttonHeight = 32\n\nexport default {\n baseButton: {\n extend: colors(subheaderColor, subheaderDarkColor, offColor),\n cursor: 'pointer',\n border: 'none',\n outline: 0,\n height: buttonHeight,\n color: fontColor,\n '&:active': {\n color: white\n }\n },\n primary: {\n extend: colors(subheaderColor, subheaderDarkColor, offColor),\n '&:active': {\n color: white,\n '& $buttonIcon': {\n display: 'none'\n },\n '& $buttonIconActive': {\n display: 'block'\n }\n },\n '& $buttonIconActive': {\n display: 'none'\n }\n },\n secondary: {\n extend: colors(offColor, offDarkColor, white),\n color: white,\n '&:active': {\n color: fontColor,\n '& $buttonIcon': {\n display: 'flex'\n },\n '& $buttonIconActive': {\n display: 'none'\n }\n },\n '& $buttonIcon': {\n display: 'none'\n },\n '& $buttonIconActive': {\n display: 'flex'\n }\n }\n}\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React, { memo } from 'react'\n\nimport baseButtonStyles from './BaseButton.styles'\n\nconst { baseButton, primary } = baseButtonStyles\n\nconst styles = {\n featureButton: {\n extend: baseButton,\n width: baseButton.height,\n borderRadius: baseButton.height / 2,\n display: 'flex',\n padding: 0\n },\n primary,\n buttonIcon: {\n margin: 'auto',\n '& svg': {\n width: 16,\n height: 16,\n overflow: 'visible',\n '& g': {\n strokeWidth: 1.8\n }\n }\n },\n buttonIconActive: {} // required to extend primary\n}\n\nconst useStyles = makeStyles(styles)\n\nconst FeatureButton = memo(\n ({ className, Icon, InverseIcon, children, ...props }) => {\n const classes = useStyles()\n\n const classNames = {\n [classes.featureButton]: true,\n [classes.primary]: true\n }\n\n return (\n \n )\n }\n)\n\nexport default FeatureButton\n","import { makeStyles, Popper as MaterialPopper, Paper } from '@material-ui/core'\nimport classnames from 'classnames'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport { white } from 'src/styling/variables'\n\nconst Popover = ({\n children,\n bgColor = white,\n arrowSize = 6,\n className,\n ...props\n}) => {\n const [arrowRef, setArrowRef] = useState(null)\n\n const styles = {\n popover: {\n zIndex: 3000,\n backgroundColor: bgColor,\n borderRadius: 4\n },\n arrow: {\n position: 'absolute',\n fontSize: arrowSize,\n width: '3em',\n height: '3em'\n },\n arrowBottom: {\n top: 0,\n width: 0,\n height: 0,\n borderLeft: [['2em', 'solid', 'transparent']],\n borderRight: [['2em', 'solid', 'transparent']],\n borderBottom: [['2em', 'solid', bgColor]],\n marginTop: '-1.9em',\n '&:after': {\n zIndex: -10,\n content: '\"\"',\n position: 'absolute',\n width: arrowSize * 3,\n height: arrowSize * 3,\n marginLeft: 0,\n bottom: 0,\n top: 'calc(50% - 0px)',\n left: 0,\n border: '5px solid #fff',\n borderColor: 'transparent transparent #fff #fff',\n transformOrigin: '0 0',\n transform: 'rotate(45deg)',\n boxShadow:\n '0px 2px 1px -1px rgba(0,0,0,0.2),0px 1px 1px 0px rgba(0,0,0,0.14),0px 1px 3px 0px rgba(0,0,0,0.12)'\n }\n },\n arrowTop: {\n bottom: 0,\n width: 0,\n height: 0,\n borderLeft: [['2em', 'solid', 'transparent']],\n borderRight: [['2em', 'solid', 'transparent']],\n borderTop: [['2em', 'solid', bgColor]],\n marginBottom: '-1.9em',\n '&:after': {\n zIndex: -10,\n content: '\"\"',\n position: 'absolute',\n width: arrowSize * 3,\n height: arrowSize * 3,\n marginLeft: 0,\n bottom: 0,\n top: -(arrowSize * 4 + 2),\n left: 0,\n border: '5px solid #fff',\n borderColor: 'transparent transparent #fff #fff',\n transformOrigin: '0 0',\n transform: 'rotate(45deg)',\n boxShadow:\n '0px 2px 1px -1px rgba(0,0,0,0.2),0px 1px 1px 0px rgba(0,0,0,0.14),0px 1px 3px 0px rgba(0,0,0,0.12)'\n }\n },\n arrowRight: {\n left: 0,\n width: 0,\n height: 0,\n borderTop: [['2em', 'solid', 'transparent']],\n borderBottom: [['2em', 'solid', 'transparent']],\n borderRight: [['2em', 'solid', bgColor]],\n marginLeft: '-1.9em'\n },\n arrowLeft: {\n right: 0,\n width: 0,\n height: 0,\n borderTop: [['2em', 'solid', 'transparent']],\n borderBottom: [['2em', 'solid', 'transparent']],\n borderLeft: [['2em', 'solid', bgColor]],\n marginRight: '-1.9em'\n },\n root: {\n backgroundColor: bgColor\n }\n }\n\n const useStyles = makeStyles(styles)\n\n const classes = useStyles()\n\n const arrowClasses = {\n [classes.arrow]: true,\n [classes.arrowBottom]: props.placement === 'bottom',\n [classes.arrowTop]: props.placement === 'top',\n [classes.arrowRight]: props.placement === 'right',\n [classes.arrowLeft]: props.placement === 'left'\n }\n\n const modifiers = R.merge(props.modifiers, {\n flip: {\n enabled: false\n },\n preventOverflow: {\n enabled: true,\n boundariesElement: 'scrollParent'\n },\n offset: {\n enabled: true,\n offset: '0, 10'\n },\n arrow: {\n enabled: true,\n element: arrowRef\n },\n computeStyle: {\n gpuAcceleration: false\n }\n })\n\n return (\n <>\n \n \n \n {children}\n \n \n \n )\n}\n\nexport default Popover\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React, { useState, memo } from 'react'\n\nimport Popover from 'src/components/Popper'\nimport typographyStyles from 'src/components/typography/styles'\nimport {\n subheaderColor,\n subheaderDarkColor,\n offColor\n} from 'src/styling/variables'\n\nconst { info2 } = typographyStyles\n\nconst colors = (color1, color2, color3) => {\n return {\n backgroundColor: color1,\n '&:hover': {\n backgroundColor: color2\n },\n '&:active': {\n backgroundColor: color3\n }\n }\n}\n\nconst styles = {\n idButton: {\n width: 34,\n height: 28,\n display: 'flex',\n borderRadius: 4,\n padding: 0,\n border: 'none',\n cursor: 'pointer'\n },\n buttonIcon: {\n margin: 'auto',\n lineHeight: 1,\n '& svg': {\n overflow: 'visible'\n }\n },\n closed: {\n extend: colors(subheaderColor, subheaderDarkColor, offColor)\n },\n open: {\n extend: colors(offColor, offColor, offColor)\n },\n popoverContent: {\n extend: info2,\n padding: 8,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n borderRadius: 4,\n '& img': {\n maxHeight: 145\n }\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst IDButton = memo(\n ({\n name,\n className,\n Icon,\n InverseIcon,\n popoverWidth = 152,\n children,\n popoverClassname,\n ...props\n }) => {\n const [anchorEl, setAnchorEl] = useState(null)\n\n const classes = useStyles()\n\n const open = Boolean(anchorEl)\n const id = open ? `simple-popper-${name}` : undefined\n\n const classNames = {\n [classes.idButton]: true,\n [classes.primary]: true,\n [classes.open]: open,\n [classes.closed]: !open\n }\n\n const iconClassNames = {\n [classes.buttonIcon]: true\n }\n\n const handleClick = event => {\n setAnchorEl(anchorEl ? null : event.currentTarget)\n }\n\n const handleClose = () => {\n setAnchorEl(null)\n }\n\n return (\n <>\n \n {Icon && !open && (\n
\n \n
\n )}\n {InverseIcon && open && (\n
\n \n
\n )}\n \n \n
\n
{children}
\n
\n \n \n )\n }\n)\n\nexport default IDButton\n","import { makeStyles, IconButton as IconB } from '@material-ui/core'\nimport React from 'react'\n\nimport { comet } from 'src/styling/variables'\n\nconst styles = {\n label: ({ size }) => ({\n width: size,\n height: size\n }),\n root: {\n '& svg': {\n flex: 1\n },\n '&:hover': {\n backgroundColor: 'inherit'\n },\n '&:hover rect': {\n stroke: comet\n },\n '&:hover polygon': {\n stroke: comet\n },\n '&:hover path': {\n stroke: comet\n }\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst IconButton = ({ size, children, onClick, ...props }) => {\n const classes = useStyles({ size })\n return (\n \n {children}\n \n )\n}\n\nexport default IconButton\n","import { fade } from '@material-ui/core/styles/colorManipulator'\n\nimport typographyStyles from 'src/components/typography/styles'\nimport {\n white,\n linkPrimaryColor,\n linkSecondaryColor,\n zircon\n} from 'src/styling/variables'\n\nconst { h4 } = typographyStyles\n\nconst color = color => ({\n boxShadow: `inset 0 -4px 0 0 ${fade(color, 0.8)}`,\n '&:hover': {\n boxShadow: 'none',\n backgroundColor: fade(color, 0.8)\n }\n})\n\nexport default {\n link: {\n extend: h4,\n textDecoration: 'none',\n border: 'none',\n backgroundColor: 'transparent',\n cursor: 'pointer',\n padding: '0',\n height: '100%'\n },\n primary: {\n extend: color(linkPrimaryColor)\n },\n secondary: {\n extend: color(linkSecondaryColor),\n '&:hover': {\n color: white\n }\n },\n noColor: {\n extend: color(white)\n },\n action: {\n extend: color(linkPrimaryColor),\n color: zircon\n }\n}\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React, { memo } from 'react'\n\nimport styles from './Link.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst Link = memo(\n ({ submit, className, children, color = 'primary', ...props }) => {\n const classes = useStyles()\n const classNames = {\n [classes.link]: true,\n [classes.primary]: color === 'primary',\n [classes.secondary]: color === 'secondary',\n [classes.noColor]: color === 'noColor',\n [classes.action]: color === 'action'\n }\n\n return (\n \n {children}\n \n )\n }\n)\n\nexport default Link\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React, { memo } from 'react'\n\nimport baseButtonStyles from './BaseButton.styles'\n\nconst { baseButton, primary } = baseButtonStyles\n\nconst styles = {\n button: {\n extend: baseButton,\n borderRadius: baseButton.height / 2,\n outline: 0,\n padding: '0 20px'\n },\n primary,\n buttonIcon: {\n marginTop: 4,\n marginRight: 4,\n '& svg': {\n width: 20,\n height: 20,\n overflow: 'visible'\n }\n },\n buttonIconActive: {} // required to extend primary\n}\n\nconst useStyles = makeStyles(styles)\n\nconst SimpleButton = memo(\n ({ className, Icon, InverseIcon, children, color, size, ...props }) => {\n const classes = useStyles()\n\n return (\n \n {Icon && (\n
\n \n
\n )}\n {InverseIcon && (\n \n \n \n )}\n {children}\n \n )\n }\n)\n\nexport default SimpleButton\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/cancel/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-5\",\n transform: \"translate(1.000000, 1.000000)\",\n stroke: \"#FFFFFF\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n x1: 10,\n y1: 0,\n x2: 0,\n y2: 10,\n id: \"Stroke-1\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 0,\n y1: 0,\n x2: 10,\n y2: 10,\n id: \"Stroke-3\"\n})));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.41439910.svg\";\nexport { ForwardRef as ReactComponent };","import baseButtonStyles from 'src/components/buttons/BaseButton.styles'\nimport { offColor, white } from 'src/styling/variables'\n\nconst { baseButton } = baseButtonStyles\n\nexport default {\n button: {\n extend: baseButton,\n padding: 0,\n color: white,\n borderRadius: baseButton.height / 2\n },\n normalButton: {\n width: baseButton.height\n },\n activeButton: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n backgroundColor: offColor,\n fontWeight: 'bold',\n padding: '0 5px',\n '&:hover': {\n backgroundColor: offColor\n }\n },\n buttonIcon: {\n '& svg': {\n width: 16,\n height: 16,\n overflow: 'visible',\n '& g': {\n strokeWidth: 1.8\n }\n }\n },\n buttonIconActiveLeft: {\n marginRight: 12\n },\n buttonIconActiveRight: {\n marginRight: 5,\n marginLeft: 20\n }\n}\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React, { memo, useState } from 'react'\n\nimport { ReactComponent as CancelIconInverse } from 'src/styling/icons/button/cancel/white.svg'\n\nimport subpageButtonStyles from './SubpageButton.styles'\n\nconst useStyles = makeStyles(subpageButtonStyles)\n\nconst SubpageButton = memo(\n ({ className, Icon, InverseIcon, toggle, children }) => {\n const [active, setActive] = useState(false)\n\n const classes = useStyles()\n\n const classNames = {\n [classes.button]: true,\n [classes.normalButton]: !active,\n [classes.activeButton]: active\n }\n\n const normalButton = \n\n const activeButton = (\n <>\n \n {children}\n \n \n )\n\n const innerToggle = () => {\n const newActiveState = !active\n toggle(newActiveState)\n setActive(newActiveState)\n }\n\n return (\n \n {active ? activeButton : normalButton}\n \n )\n }\n)\n\nexport default SubpageButton\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/action/external-link/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-1\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2,\n points: \"20 12.1113 20 21.0003 0 21.0003 0 1.0003 8.889 1.0003\"\n}), /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-3\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2,\n points: \"14.4443 1 20.0003 1 20.0003 6.556\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 10,\n y1: 11,\n x2: 20,\n y2: 1,\n id: \"Stroke-5\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2\n}));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.9814829c.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/action/external-link/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-7\",\n transform: \"translate(0.000000, 1.000000)\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n}, /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-1\",\n points: \"20 11.1113 20 20.0003 0 20.0003 0 0.0003 8.889 0.0003\"\n}), /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-3\",\n points: \"14.4443 0 20.0003 0 20.0003 5.556\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 10,\n y1: 10,\n x2: 20,\n y2: 0,\n id: \"Stroke-5\"\n})));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.6cff3051.svg\";\nexport { ForwardRef as ReactComponent };","import { makeStyles } from '@material-ui/core'\nimport React from 'react'\n\nimport { ActionButton } from 'src/components/buttons'\nimport { ReactComponent as InverseLinkIcon } from 'src/styling/icons/action/external link/white.svg'\nimport { ReactComponent as LinkIcon } from 'src/styling/icons/action/external link/zodiac.svg'\nimport { spacer, primaryColor } from 'src/styling/variables'\n\nconst useStyles = makeStyles({\n actionButton: {\n marginBottom: spacer * 4\n },\n actionButtonLink: {\n textDecoration: 'none',\n color: primaryColor\n }\n})\n\nconst SupportLinkButton = ({ link, label }) => {\n const classes = useStyles()\n return (\n \n \n {label}\n \n \n )\n}\n\nexport default SupportLinkButton\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React from 'react'\n\nimport styles from './styles'\n\nconst useStyles = makeStyles(styles)\n\nfunction H1({ children, noMargin, className, ...props }) {\n const classes = useStyles()\n const classNames = {\n [classes.h1]: true,\n [classes.noMargin]: noMargin,\n [className]: !!className\n }\n\n return (\n

\n {children}\n

\n )\n}\n\nfunction H2({ children, noMargin, className, ...props }) {\n const classes = useStyles()\n const classNames = {\n [classes.h2]: true,\n [classes.noMargin]: noMargin,\n [className]: !!className\n }\n\n return (\n

\n {children}\n

\n )\n}\n\nfunction H3({ children, noMargin, className, ...props }) {\n const classes = useStyles()\n const classNames = {\n [classes.h3]: true,\n [classes.noMargin]: noMargin,\n [className]: !!className\n }\n\n return (\n

\n {children}\n

\n )\n}\n\nfunction H4({ children, noMargin, className, ...props }) {\n const classes = useStyles()\n const classNames = {\n [classes.h4]: true,\n [classes.noMargin]: noMargin,\n [className]: !!className\n }\n\n return (\n

\n {children}\n

\n )\n}\n\nfunction H5({ children, noMargin, className, ...props }) {\n const classes = useStyles()\n const classNames = {\n [classes.h5]: true,\n [classes.noMargin]: noMargin,\n [className]: !!className\n }\n\n return (\n
\n {children}\n
\n )\n}\n\nconst P = pBuilder('p')\nconst Info1 = pBuilder('info1')\nconst Info2 = pBuilder('info2')\nconst Info3 = pBuilder('info3')\nconst Mono = pBuilder('mono')\nconst TL1 = pBuilder('tl1')\nconst TL2 = pBuilder('tl2')\nconst Label1 = pBuilder('label1')\nconst Label2 = pBuilder('label2')\nconst Label3 = pBuilder('label3')\n\nfunction pBuilder(elementClass) {\n return ({ inline, noMargin, className, children, ...props }) => {\n const classes = useStyles()\n const classNames = {\n [className]: !!className,\n [classes[elementClass]]: elementClass,\n [classes.inline]: inline,\n [classes.noMargin]: noMargin\n }\n return (\n

\n {children}\n

\n )\n }\n}\n\nexport {\n H1,\n H2,\n H3,\n H4,\n H5,\n TL1,\n TL2,\n P,\n Info1,\n Info2,\n Info3,\n Mono,\n Label1,\n Label2,\n Label3\n}\n","import { makeStyles } from '@material-ui/core/styles'\nimport React, { memo } from 'react'\n\nimport { spacer } from 'src/styling/variables'\n\nimport { H1 } from './typography'\n\nconst useStyles = makeStyles({\n title: {\n marginTop: spacer * 3,\n marginBottom: spacer * 3\n }\n})\n\nconst Title = memo(({ children }) => {\n const classes = useStyles()\n return

{children}

\n})\n\nexport default Title\n","import {\n inputFontSize,\n inputFontSizeLg,\n inputFontSizeSm,\n inputFontWeightBold\n} from './variables'\n\nconst respondTo = breakpoint =>\n `@media only screen and (max-width: ${breakpoint})`\n\nconst bySize = size => {\n switch (size) {\n case 'sm':\n return { fontSize: inputFontSizeSm }\n case 'lg':\n return { fontSize: inputFontSizeLg, fontWeight: inputFontWeightBold }\n default:\n return { fontSize: inputFontSize }\n }\n}\n\nconst bold = {\n fontWeight: inputFontWeightBold\n}\n\nexport { respondTo, bySize, bold }\n","import { bySize, bold } from 'src/styling/helpers'\nimport { secondaryColor } from 'src/styling/variables'\n\nexport default {\n size: ({ size }) => ({\n marginTop: size === 'lg' ? 0 : 2,\n ...bySize(size)\n }),\n bold,\n root: ({ width, textAlign }) => ({\n width,\n '& input': {\n textAlign\n }\n }),\n underline: {\n '&:before': {\n borderBottomColor: secondaryColor\n },\n '&:hover:not(.Mui-disabled)::before': {\n borderBottomColor: secondaryColor\n }\n }\n}\n","import { makeStyles } from '@material-ui/core'\nimport TextField from '@material-ui/core/TextField'\nimport classnames from 'classnames'\nimport * as R from 'ramda'\nimport React, { memo } from 'react'\n\nimport styles from './TextInput.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst TextInput = memo(\n ({\n name,\n onChange,\n onBlur,\n value,\n error,\n suffix,\n textAlign,\n width,\n // lg or sm\n size,\n bold,\n className,\n InputProps,\n ...props\n }) => {\n const classes = useStyles({ textAlign, width, size })\n const filled = !error && !R.isNil(value) && !R.isEmpty(value)\n\n const inputClasses = {\n [classes.bold]: bold\n }\n\n return (\n \n )\n }\n)\n\nexport default TextInput\n","import MAutocomplete from '@material-ui/lab/Autocomplete'\nimport sort from 'match-sorter'\nimport * as R from 'ramda'\nimport React from 'react'\n\nimport TextInput from './TextInput'\n\nconst Autocomplete = ({\n optionsLimit = 5, // set limit = null for no limit\n limit,\n options,\n label,\n valueProp,\n multiple,\n onChange,\n getLabel,\n value: outsideValue,\n error,\n fullWidth,\n textAlign,\n size,\n autoFocus,\n ...props\n}) => {\n const mapFromValue = options => it => R.find(R.propEq(valueProp, it))(options)\n const mapToValue = R.prop(valueProp)\n\n const getValue = () => {\n if (!valueProp) return outsideValue\n\n const transform = multiple\n ? R.map(mapFromValue(options))\n : mapFromValue(options)\n\n return transform(outsideValue)\n }\n\n const value = getValue()\n\n const innerOnChange = (evt, value) => {\n if (!valueProp) return onChange(evt, value)\n\n const rValue = multiple ? R.map(mapToValue)(value) : mapToValue(value)\n onChange(evt, rValue)\n }\n\n const valueArray = () => {\n if (R.isNil(value)) return []\n return multiple ? value : [value]\n }\n\n const filter = (array, input) =>\n sort(array, input, { keys: ['code', 'display'] })\n\n const filterOptions = (array, { inputValue }) =>\n R.union(\n R.isEmpty(inputValue) ? valueArray() : [],\n filter(array, inputValue)\n ).slice(\n 0,\n R.defaultTo(undefined)(limit) &&\n Math.max(limit, R.isEmpty(inputValue) ? valueArray().length : 0)\n )\n\n return (\n {\n return (\n \n )\n }}\n />\n )\n}\n\nexport default Autocomplete\n","import Checkbox from '@material-ui/core/Checkbox'\nimport { makeStyles } from '@material-ui/core/styles'\nimport CheckBoxIcon from '@material-ui/icons/CheckBox'\nimport CheckBoxOutlineBlankIcon from '@material-ui/icons/CheckBoxOutlineBlank'\nimport React from 'react'\n\nimport { fontSize2, fontSize3, secondaryColor } from 'src/styling/variables'\n\nconst useStyles = makeStyles({\n root: {\n color: secondaryColor,\n '&$checked': {\n color: secondaryColor\n }\n },\n checked: {}\n})\n\nconst CheckboxInput = ({ name, onChange, value, label, ...props }) => {\n const classes = useStyles()\n\n return (\n \n }\n checkedIcon={}\n disableRipple\n {...props}\n />\n )\n}\n\nexport default CheckboxInput\n","import React, { memo } from 'react'\nimport NumberFormat from 'react-number-format'\n\nimport TextInput from './TextInput'\n\nconst NumberInput = memo(\n ({\n name,\n onChange,\n onBlur,\n value,\n error,\n suffix,\n textAlign,\n width,\n // lg or sm\n size,\n bold,\n className,\n decimalPlaces,\n InputProps,\n ...props\n }) => {\n return (\n {\n onChange({\n target: {\n id: name,\n value: values.floatValue\n }\n })\n }}\n {...props}\n />\n )\n }\n)\n\nexport default NumberInput\n","import {\n Radio,\n RadioGroup as MRadioGroup,\n FormControlLabel,\n makeStyles\n} from '@material-ui/core'\nimport classnames from 'classnames'\nimport React from 'react'\n\nimport { Label1 } from 'src/components/typography'\n\nconst styles = {\n label: {\n height: 16,\n lineHeight: '16px',\n margin: [[0, 0, 4, 0]],\n paddingLeft: 3\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst RadioGroup = ({\n name,\n label,\n value,\n options,\n onChange,\n className,\n labelClassName,\n radioClassName\n}) => {\n const classes = useStyles()\n\n return (\n <>\n {label && {label}}\n \n {options.map((option, idx) => (\n }\n label={option.display}\n className={classnames(labelClassName)}\n />\n ))}\n \n \n )\n}\n\nexport default RadioGroup\n","import React, { memo, useState } from 'react'\n\nimport { TextInput } from '../base'\n\nconst SecretInput = memo(({ value, onFocus, onBlur, ...props }) => {\n const [focused, setFocused] = useState(false)\n\n const placeholder = '⚬ ⚬ ⚬ This field is set ⚬ ⚬ ⚬'\n const previouslyFilled = !!value\n const tempValue = previouslyFilled ? '' : value\n\n const innerOnFocus = event => {\n setFocused(true)\n onFocus && onFocus(event)\n }\n\n const innerOnBlur = event => {\n setFocused(false)\n onBlur && onBlur(event)\n }\n\n return (\n \n )\n})\n\nexport default SecretInput\n","import Switch from '@material-ui/core/Switch'\nimport { makeStyles } from '@material-ui/core/styles'\nimport React, { memo } from 'react'\n\nimport {\n secondaryColor,\n offColor,\n disabledColor,\n disabledColor2\n} from '../../../styling/variables'\n\nconst useStyles = makeStyles(theme => ({\n root: {\n width: 32,\n height: 20,\n padding: 0,\n margin: theme.spacing(1)\n },\n switchBase: {\n padding: 2,\n '&$disabled': {\n color: disabledColor2,\n '& + $track': {\n backgroundColor: disabledColor,\n opacity: 1\n }\n },\n '&$checked': {\n transform: 'translateX(58%)',\n color: theme.palette.common.white,\n '&$disabled': {\n color: disabledColor2\n },\n '& + $track': {\n backgroundColor: secondaryColor,\n opacity: 1,\n border: 'none'\n }\n },\n '&$focusVisible $thumb': {\n border: '6px solid #fff'\n }\n },\n thumb: {\n width: 16,\n height: 16\n },\n track: {\n borderRadius: 17,\n border: 'none',\n backgroundColor: offColor,\n opacity: 1,\n transition: theme.transitions.create(['background-color', 'border'])\n },\n disabled: {},\n checked: {},\n focusVisible: {}\n}))\n\nconst SwitchInput = memo(({ ...props }) => {\n const classes = useStyles()\n return (\n \n )\n})\n\nexport default SwitchInput\n","import { useFormikContext } from 'formik'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport { Autocomplete } from '../base'\n\nconst AutocompleteFormik = ({ options, onChange, ...props }) => {\n const [open, setOpen] = useState(false)\n\n const { name, onBlur, value } = props.field\n const { touched, errors, setFieldValue, setFieldTouched } = props.form\n const error = !!(touched[name] && errors[name])\n const { initialValues, values } = useFormikContext()\n\n const innerOptions =\n R.type(options) === 'Function' ? options(initialValues, values) : options\n\n const innerOnBlur = event => {\n name && setFieldTouched(name, true)\n onBlur && onBlur(event)\n }\n\n const onChangeHandler = value => setFieldValue(name, value)\n\n return (\n {\n if (onChange) return onChange(value, item, onChangeHandler)\n setFieldValue(name, item)\n }}\n onBlur={innerOnBlur}\n value={value}\n error={error}\n open={open}\n options={innerOptions}\n onOpen={() => {\n if (!props.multiple) return setOpen(true)\n setOpen(value?.length !== props.limit)\n }}\n onClose={() => setOpen(false)}\n {...props}\n />\n )\n}\n\nexport default AutocompleteFormik\n","import React, { memo } from 'react'\n\nimport { NumberInput } from '../base'\n\nconst NumberInputFormik = memo(({ decimalPlaces, ...props }) => {\n const { name, onChange, onBlur, value } = props.field\n const { touched, errors } = props.form\n\n const error = !!(touched[name] && errors[name])\n\n return (\n \n )\n})\n\nexport default NumberInputFormik\n","import React, { memo } from 'react'\n\nimport { RadioGroup } from '../base'\n\nconst RadioGroupFormik = memo(({ label, ...props }) => {\n const { name, onChange, value } = props.field\n\n return (\n {\n onChange(e)\n props.resetError && props.resetError()\n }}\n className={props.className}\n {...props}\n />\n )\n})\n\nexport default RadioGroupFormik\n","import React, { memo } from 'react'\n\nimport { SecretInput } from '../base'\n\nconst SecretInputFormik = memo(({ ...props }) => {\n const { name, onChange, onBlur, value } = props.field\n const { touched, errors } = props.form\n\n const error = !!(touched[name] && errors[name])\n\n return (\n \n )\n})\n\nexport default SecretInputFormik\n","import React, { memo } from 'react'\n\nimport { TextInput } from '../base'\n\nconst TextInputFormik = memo(({ ...props }) => {\n const { name, onChange, onBlur, value } = props.field\n const { touched, errors } = props.form\n\n const error = !!(touched[name] && errors[name])\n\n return (\n \n )\n})\n\nexport default TextInputFormik\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/stage/zodiac/complete\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval\",\n stroke: \"#1B2559\",\n transform: \"translate(9.000000, 9.000000) rotate(-270.000000) translate(-9.000000, -9.000000) \",\n cx: 9,\n cy: 9,\n r: 8\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.80983711,12 C7.54819546,12 7.28655382,11.9032616 7.08725647,11.710772 L5.29971255,9.98428824 C4.90009582,9.59832189 4.90009582,8.97445811 5.29971255,8.58849175 C5.69932929,8.2025254 6.34525711,8.2025254 6.74487384,8.58849175 L7.80983711,9.61707728 L11.2551262,6.28947477 C11.6547429,5.90350841 12.3016927,5.90350841 12.7002874,6.28947477 C13.0999042,6.674454 13.0999042,7.2993049 12.7002874,7.68527125 L8.53241776,11.710772 C8.33312041,11.9032616 8.07147876,12 7.80983711,12\",\n id: \"Path\",\n fill: \"#1B2559\"\n}));\n\nfunction SvgComplete(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"18px\",\n height: \"18px\",\n viewBox: \"0 0 18 18\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgComplete);\nexport default __webpack_public_path__ + \"static/media/complete.99ba27f3.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/stage/zodiac/current\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval-2-Copy\",\n fill: \"#1B2559\",\n cx: 9,\n cy: 9,\n r: 4\n}), /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval-Copy-5\",\n stroke: \"#1B2559\",\n strokeWidth: 2,\n transform: \"translate(9.000000, 9.000000) rotate(-270.000000) translate(-9.000000, -9.000000) \",\n cx: 9,\n cy: 9,\n r: 8\n}));\n\nfunction SvgCurrent(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"18px\",\n height: \"18px\",\n viewBox: \"0 0 18 18\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCurrent);\nexport default __webpack_public_path__ + \"static/media/current.68045777.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/stage/zodiac/empty\",\n stroke: \"none\",\n strokeWidth: 2,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval-Copy-6\",\n stroke: \"#5F668A\",\n transform: \"translate(9.000000, 9.000000) rotate(-270.000000) translate(-9.000000, -9.000000) \",\n cx: 9,\n cy: 9,\n r: 8\n}));\n\nfunction SvgEmpty(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"18px\",\n height: \"18px\",\n viewBox: \"0 0 18 18\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgEmpty);\nexport default __webpack_public_path__ + \"static/media/empty.631601f2.svg\";\nexport { ForwardRef as ReactComponent };","import typographyStyles from 'src/components/typography/styles'\nimport { respondTo } from 'src/styling/helpers'\nimport {\n primaryColor,\n spacer,\n placeholderColor,\n zircon,\n xxl\n} from 'src/styling/variables'\n\nconst { tl2, p } = typographyStyles\n\nconst sidebarColor = zircon\n\nexport default {\n sidebar: {\n display: 'flex',\n backgroundColor: sidebarColor,\n width: 520,\n marginLeft: -300,\n boxShadow: `-500px 0px 0px 0px ${sidebarColor}`,\n borderRadius: '0 20px 0 0',\n alignItems: 'flex-end',\n padding: spacer * 3,\n flexDirection: 'column',\n [respondTo(xxl)]: {\n width: 'auto',\n marginLeft: 0,\n minWidth: 250,\n boxShadow: `-200px 0px 0px 0px ${sidebarColor}`\n }\n },\n\n link: {\n extend: p,\n position: 'relative',\n color: placeholderColor,\n margin: '12px 24px 12px 0',\n cursor: 'pointer',\n '&:hover::after': {\n height: '140%'\n },\n '&:after': {\n content: '\"\"',\n display: 'block',\n background: primaryColor,\n width: 4,\n height: 0,\n left: '100%',\n marginLeft: 20,\n bottom: -2,\n position: 'absolute',\n borderRadius: 1000,\n transition: 'all 0.2s cubic-bezier(0.95, 0.1, 0.45, 0.94)'\n }\n },\n activeLink: {\n extend: tl2,\n color: primaryColor,\n '&::after': {\n height: '140%'\n }\n },\n customRenderLink: {\n '&:hover::after': {\n height: '100%'\n },\n '&:after': {\n bottom: 0\n }\n },\n customRenderActiveLink: {\n '&::after': {\n height: '100%'\n }\n },\n item: {\n position: 'relative',\n margin: '12px 0 12px 0',\n display: 'flex'\n },\n itemText: {\n extend: p,\n color: placeholderColor,\n marginRight: 24\n },\n itemTextActive: {\n extend: tl2,\n color: primaryColor\n },\n itemTextPast: {\n color: primaryColor\n },\n stepperPath: {\n position: 'absolute',\n height: 25,\n width: 1,\n border: [[1, 'solid', placeholderColor]],\n right: 8,\n top: 18\n },\n stepperPast: {\n border: [[1, 'solid', primaryColor]]\n }\n}\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React from 'react'\n\nimport { ReactComponent as CompleteStageIconZodiac } from 'src/styling/icons/stage/zodiac/complete.svg'\nimport { ReactComponent as CurrentStageIconZodiac } from 'src/styling/icons/stage/zodiac/current.svg'\nimport { ReactComponent as EmptyStageIconZodiac } from 'src/styling/icons/stage/zodiac/empty.svg'\n\nimport styles from './Sidebar.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst Sidebar = ({\n data,\n displayName,\n isSelected,\n onClick,\n children,\n itemRender\n}) => {\n const classes = useStyles()\n\n return (\n
\n {data &&\n data.map((it, idx) => (\n onClick(it)}>\n {itemRender ? itemRender(it, isSelected(it)) : displayName(it)}\n
\n ))}\n {children}\n \n )\n}\n\nexport default Sidebar\n\nconst Stepper = ({ step, it, idx, steps }) => {\n const classes = useStyles()\n const active = step === idx\n const past = idx < step\n const future = idx > step\n\n return (\n
\n \n {it.label}\n \n {active && }\n {past && }\n {future && }\n {idx < steps.length - 1 && (\n
\n )}\n \n )\n}\n\nexport { Stepper }\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"style\", {\n type: \"text/css\"\n}, \"\\n\\t.st0{fill-rule:evenodd;clip-rule:evenodd;fill:#1B2559;}\\n\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"color_x2F_primary_x2F_zodiac\",\n transform: \"translate(-0.000000, 0.000000)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Mask\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"path-1_1_\",\n className: \"st0\",\n d: \"M11.1,9l6.5,6.5c0.6,0.6,0.6,1.5,0,2.1c-0.3,0.3-0.7,0.4-1.1,0.4c-0.4,0-0.8-0.2-1.1-0.4 L9,11.1l-6.5,6.5C2.3,17.8,1.9,18,1.5,18c-0.4,0-0.8-0.2-1.1-0.4c-0.6-0.6-0.6-1.5,0-2.1L6.9,9L0.4,2.5C-0.1,2-0.1,1,0.4,0.4 C1-0.1,2-0.1,2.5,0.4L9,6.9l6.5-6.5c0.6-0.6,1.5-0.6,2.1,0c0.6,0.6,0.6,1.5,0,2.1L11.1,9z\"\n})));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 18 18\",\n style: {\n enableBackground: \"new 0 0 18 18\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3, _ref4);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.5547e32c.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Symbols\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/warning-icon/comet\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle\",\n stroke: \"#5F668A\",\n strokeWidth: 2,\n x: 1,\n y: 1,\n width: 22,\n height: 22,\n rx: 11\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.2971429,14.4857143 L11.1085714,5.82857143 L13.3714286,5.82857143 L13.2,14.4857143 L11.2971429,14.4857143 Z M11.1942857,18 L11.1942857,15.9771429 L13.3028571,15.9771429 L13.3028571,18 L11.1942857,18 Z\",\n id: \"!\",\n fill: \"#5F668A\",\n fillRule: \"nonzero\"\n})));\n\nfunction SvgComet(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"24px\",\n height: \"24px\",\n viewBox: \"0 0 24 24\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgComet);\nexport default __webpack_public_path__ + \"static/media/comet.9dc291f2.svg\";\nexport { ForwardRef as ReactComponent };","import typographyStyles from 'src/components/typography/styles'\nimport {\n placeholderColor,\n backgroundColor,\n primaryColor,\n mainWidth\n} from 'src/styling/variables'\n\nconst { tl2, p } = typographyStyles\n\nconst fill = '100%'\nconst flexDirection = 'column'\n\nconst styles = {\n dialog: {\n backgroundColor,\n width: fill,\n minHeight: fill,\n display: 'flex',\n flexDirection,\n padding: 0\n },\n wrapper: {\n width: mainWidth,\n height: fill,\n margin: '0 auto',\n flex: 1,\n display: 'flex',\n flexDirection\n },\n contentDiv: {\n display: 'flex',\n flex: 1,\n flexDirection: 'row'\n },\n headerDiv: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center'\n },\n contentWrapper: {\n marginLeft: 48\n },\n button: {\n marginTop: 64\n },\n nameTitle: {\n marginTop: 16,\n marginBottom: 25\n },\n qrTitle: {\n marginTop: 12,\n marginBottom: 40\n },\n qrCodeWrapper: {\n display: 'flex'\n },\n qrTextWrapper: {\n width: 381,\n marginLeft: 80,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center'\n },\n qrTextIcon: {\n marginRight: 16\n },\n qrText: {\n marginTop: 0\n },\n item: {\n position: 'relative',\n margin: '12px 0 12px 0',\n display: 'flex'\n },\n itemText: {\n extend: p,\n color: placeholderColor,\n marginRight: 24\n },\n itemTextActive: {\n extend: tl2,\n color: primaryColor\n },\n itemTextPast: {\n color: primaryColor\n },\n stepperPath: {\n position: 'absolute',\n height: 25,\n width: 1,\n border: [[1, 'solid', placeholderColor]],\n right: 8,\n top: 18\n },\n stepperPast: {\n border: [[1, 'solid', primaryColor]]\n }\n}\n\nexport default styles\n","import { useMutation, useQuery } from '@apollo/react-hooks'\nimport { Dialog, DialogContent, SvgIcon, IconButton } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport { Form, Formik, FastField } from 'formik'\nimport gql from 'graphql-tag'\nimport QRCode from 'qrcode.react'\nimport * as R from 'ramda'\nimport React, { memo, useState } from 'react'\nimport * as Yup from 'yup'\n\nimport Title from 'src/components/Title'\nimport { Button } from 'src/components/buttons'\nimport { TextInput } from 'src/components/inputs/formik'\nimport Sidebar from 'src/components/layout/Sidebar'\nimport { Info2, P } from 'src/components/typography'\nimport { ReactComponent as CloseIcon } from 'src/styling/icons/action/close/zodiac.svg'\nimport { ReactComponent as CompleteStageIconZodiac } from 'src/styling/icons/stage/zodiac/complete.svg'\nimport { ReactComponent as CurrentStageIconZodiac } from 'src/styling/icons/stage/zodiac/current.svg'\nimport { ReactComponent as EmptyStageIconZodiac } from 'src/styling/icons/stage/zodiac/empty.svg'\nimport { ReactComponent as WarningIcon } from 'src/styling/icons/warning-icon/comet.svg'\nimport { primaryColor } from 'src/styling/variables'\n\nimport styles from './styles'\n\nconst SAVE_CONFIG = gql`\n mutation createPairingTotem($name: String!) {\n createPairingTotem(name: $name)\n }\n`\nconst GET_MACHINES = gql`\n {\n machines {\n name\n deviceId\n }\n }\n`\n\nconst useStyles = makeStyles(styles)\n\nconst getSize = R.compose(R.length, R.pathOr([], ['machines']))\n\nconst QrCodeComponent = ({ classes, qrCode, name, count, onPaired }) => {\n const { data } = useQuery(GET_MACHINES, { pollInterval: 10000 })\n\n const addedMachine = data?.machines?.find(m => m.name === name)\n if (getSize(data) > count && addedMachine) onPaired(addedMachine)\n\n return (\n <>\n \n Scan QR code with your new cryptomat\n \n
\n
\n \n
\n
\n
\n
\n \n
\n

\n To pair the machine you need scan the QR code with your machine.\n To do this either snap a picture of this QR code or download it\n through the button above and scan it with the scanning bay on your\n machine.\n

\n
\n
\n
\n \n )\n}\n\nconst initialValues = {\n name: ''\n}\n\nconst validationSchema = Yup.object().shape({\n name: Yup.string()\n .required()\n .max(50)\n})\n\nconst MachineNameComponent = ({ nextStep, classes, setQrCode, setName }) => {\n const [register] = useMutation(SAVE_CONFIG, {\n onCompleted: ({ createPairingTotem }) => {\n if (process.env.NODE_ENV === 'development') {\n console.log(`totem: \"${createPairingTotem}\" `)\n }\n setQrCode(createPairingTotem)\n nextStep()\n },\n onError: e => console.log(e)\n })\n\n return (\n <>\n \n Machine Name (ex: Coffee shop 01)\n \n {\n setName(name)\n register({ variables: { name } })\n }}>\n
\n
\n \n
\n
\n \n
\n
\n \n \n )\n}\n\nconst steps = [\n {\n label: 'Machine name',\n component: MachineNameComponent\n },\n {\n label: 'Scan QR code',\n component: QrCodeComponent\n }\n]\n\nconst renderStepper = (step, it, idx, classes) => {\n const active = step === idx\n const past = idx < step\n const future = idx > step\n\n return (\n
\n \n {it.label}\n \n {active && }\n {past && }\n {future && }\n {idx < steps.length - 1 && (\n
\n )}\n \n )\n}\n\nconst AddMachine = memo(({ close, onPaired }) => {\n const classes = useStyles()\n const { data } = useQuery(GET_MACHINES)\n const [qrCode, setQrCode] = useState('')\n const [name, setName] = useState('')\n const [step, setStep] = useState(0)\n const count = getSize(data)\n\n const Component = steps[step].component\n\n return (\n
\n \n \n
\n
\n Add Machine\n \n \n \n \n \n
\n
\n \n {steps.map((it, idx) => renderStepper(step, it, idx, classes))}\n \n
\n setStep(1)}\n count={count}\n onPaired={onPaired}\n qrCode={qrCode}\n setQrCode={setQrCode}\n name={name}\n setName={setName}\n />\n
\n
\n
\n
\n \n
\n )\n})\n\nexport default AddMachine\n","import AddMachine from './AddMachine'\n\nexport default AddMachine\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.8413132,12.8764646 C17.8413132,12.8764646 16.6555879,12.5091919 15.661533,12.2855556 C15.661533,12.2855556 15.3477198,10.3246465 14.8939121,8.23646465 C14.8939121,8.23646465 15.1560495,8.21373737 15.3383242,8.8710101 L16.0223242,12.0219192 C16.0223242,12.0219192 17.2343571,12.2991919 18.1795549,12.6537374 L17.8413132,12.8764646 Z M15.2603407,6.10282828 L15.5328132,5.80555556 C16.0627253,5.87828283 16.3483516,6.02828283 16.3483516,6.02828283 L16.291978,6.11191919 L16.3972088,6.9310101 C16.2440604,6.93646465 16.0091703,7.05919192 16.0091703,7.05919192 L15.8315934,6.95010101 L15.8315934,6.38282828 C15.3026209,6.29919192 15.2556429,6.21828283 15.2556429,6.21828283 L15.2603407,6.10282828 Z M12.4557527,18.2873737 C11.2831813,18.4964646 9.84565385,18.2237374 9.84565385,18.2237374 L9.89732967,17.9991919 C9.89732967,17.9991919 11.6496099,18.1955556 12.6248736,17.8973737 C12.5553462,18.0628283 12.5356154,18.1137374 12.4557527,18.2873737 L12.4557527,18.2873737 Z M9.18984066,14.5464646 C8.379,15.1364646 7.56064286,15.6791919 7.00442308,16.1091919 C6.9705989,16.6955556 6.91516484,17.6464646 6.91516484,17.6464646 L5.46448352,18.5182828 L5.22207692,18.3737374 C5.27845055,17.9219192 5.34891758,17.5882828 5.34891758,17.5882828 L5.55186264,17.4410101 C5.50676374,17.7282828 5.48515385,18.1346465 5.48515385,18.1346465 L6.5928956,17.440101 C6.63705495,16.7019192 6.72443407,15.960101 6.72443407,15.960101 C6.9705989,15.7373737 8.73697253,14.5237374 10.0100803,13.6864646 C10.0100803,13.6864646 10.018533,13.9437374 9.18984066,14.5464646 L9.18984066,14.5464646 Z M14.977533,0.195555556 C15.2612802,0.167373737 15.5065055,0.184646465 15.7103901,0.228282828 L15.7103901,0.228282828 L15.8813901,0.697373737 L16.1003077,0.361919192 C16.2694286,0.447373737 16.3746593,0.547373737 16.4056648,0.624646465 C16.4056648,0.624646465 16.3615055,0.909191919 16.4319725,1.36464646 C16.5005604,1.80373737 16.6988077,2.78191919 16.6988077,2.78191919 C16.9740989,3.00646465 17.2850934,3.51282828 17.2850934,3.51282828 C17.4758242,4.41737374 17.4645495,5.04919192 17.4636099,5.1210101 C16.6734396,4.68646465 15.6173736,4.58555556 15.6173736,4.58555556 L15.6173736,4.58555556 L15.2481264,4.90828283 C15.9753462,5.00828283 16.8792033,5.26555556 17.1122143,5.44555556 C17.2484505,5.74737374 17.3386484,6.22828283 17.3386484,6.22828283 L17.3386484,6.22828283 L17.0445659,6.58919192 L17.3198571,6.8810101 C17.3386484,7.22464646 17.2183846,7.56919192 17.2183846,7.56919192 C17.7905769,7.93010101 17.9512418,8.79373737 18.3101538,10.250101 C18.6700055,11.7064646 18.9903956,12.9055556 18.9903956,12.9055556 L18.9903956,12.9055556 L18.4567253,13.2019192 C19.1623352,15.7282828 18.444511,17.7391919 17.5378352,19.0664646 C16.6320989,20.3946465 16.0862143,21.7137374 16.1031264,22.8910101 L16.1031264,22.8910101 L16.5475385,23.2346465 L16.7749121,23.9491919 L14.3048077,23.9491919 L14.293533,23.2728283 C14.2925934,21.5619192 14.9230385,20.1328283 14.9230385,20.1328283 C15.2857088,20.0473737 15.6596538,19.7628283 15.6596538,19.7628283 C15.0733681,19.8828283 14.3414505,19.7964646 14.3414505,19.7964646 C14.8676044,18.8537374 15.0292088,18.1773737 15.0292088,18.1773737 L15.0292088,18.1773737 L14.7811648,18.1228283 C14.6956648,18.310101 14.6073462,18.4937374 14.5133901,18.6710101 C13.8754286,19.8864646 13.1735769,20.6628283 12.7554725,22.4055556 L12.7554725,22.4055556 L13.1933077,22.7455556 L13.6987912,23.9491919 L10.8509835,23.9491919 C10.8340714,21.8246465 11.495522,20.2273737 11.7341703,19.7628283 C10.2233571,19.9264646 8.42128022,19.1782828 6.99314835,19.4664646 C6.60041209,21.9473737 4.59257143,22.4355556 3.65019231,22.300101 L3.65019231,22.300101 L2.97652747,23.4146465 L3.58724176,23.9491919 L1.33135714,23.9491919 C1.32008242,23.8546465 1.2918956,23.7537374 1.22988462,23.6591919 C1.22988462,23.6591919 1.97401648,22.5882828 2.48231868,21.150101 C2.89008791,21.3255556 3.75166484,20.9928283 3.78736813,20.1055556 C3.82401099,19.2191919 3.67086264,17.8419192 4.46854945,16.7891919 C5.2652967,15.7355556 6.12687363,15.1655556 7.25152747,14.3328283 C7.98250549,13.7910101 9.22084615,12.8755556 9.99974176,12.3010101 L9.99974176,12.3010101 L9.61546154,12.3864646 L6.81087363,14.6491919 L5.82997253,14.6491919 L8.66368681,12.1164646 L8.29725824,12.1091919 L5.33576374,14.6491919 L4.34170879,14.6491919 L7.27313736,11.720101 L6.9208022,11.7173737 L3.88038462,14.6491919 L2.86565934,14.6491919 L5.8093022,11.3037374 L5.46918132,11.3055556 L2.43534066,14.6491919 L1.36706044,14.6491919 L4.22614286,10.8528283 L3.89635714,10.8573737 L0.963989011,14.6491919 L0,14.6491919 C0,14.6491919 4.11809341,8.22464646 4.92893407,7.00737374 C5.73883516,5.79010101 6.6192033,4.62282828 8.06894505,4.38464646 C9.53465934,4.14282828 10.5343516,4.46646465 11.2502967,5.63373737 C11.636456,6.2610101 12.1034176,6.97828283 12.4698462,7.55919192 C12.0968407,8.1510101 11.6298791,8.6110101 11.5857198,9.32282828 C11.534044,10.1419192 12.0921429,10.6373737 12.6558791,10.6773737 C12.2321374,10.5282828 11.8976538,10.0337374 12.0489231,9.37646465 C12.2058297,8.69737374 12.7554725,8.35191919 13.1726374,7.80282828 C13.5315495,7.32828283 13.5371868,6.63282828 13.5108791,6.4010101 C13.4836319,6.16919192 13.2167967,5.98828283 13.2167967,5.98828283 C13.2167967,5.98828283 13.2252527,5.52373737 13.2167967,5.01646465 C13.2083407,4.51010101 13.4300769,4.21828283 13.4300769,4.21828283 C13.4300769,4.21828283 13.4216209,3.4610101 13.3943736,2.57646465 C13.3671264,1.72555556 13.2863242,1.46828283 13.205522,1.35464646 C13.205522,1.35464646 13.2694121,1.10919192 13.5099396,0.844646465 L13.5099396,0.844646465 L13.7542253,1.06282828 L13.8284505,0.571919192 C13.9825385,0.469191919 14.1723297,0.375555556 14.4072198,0.307373737 C14.4325879,0.30010101 14.4570165,0.294646465 14.4823846,0.288282828 L14.4823846,0.288282828 L14.7896209,0.644646465 Z M7.71628243,19.8937938 C8.32897736,19.8402566 9.02386307,19.9393405 9.75797621,20.0432188 L9.75797621,20.0432188 L9.86538462,20.058401 C9.7449004,20.8103202 9.02106112,21.7691969 7.79193531,22.0896215 L7.79193531,22.0896215 L9.01358923,23.5151515 L7.36136769,23.5151515 C7.15589073,23.2226941 6.50396838,22.32135 6.16586538,21.9681638 C6.72065317,21.6525335 7.42954868,21.0388524 7.71628243,19.8937938 Z\",\n id: \"path-1\"\n}));\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Symbols\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"nav-/-primary-/-1440\",\n transform: \"translate(-128.000000, -14.000000)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/lamassu-logo\",\n transform: \"translate(128.000000, 14.000000)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"color/amaz/default\"\n}, /*#__PURE__*/React.createElement(\"mask\", {\n id: \"mask-2\",\n fill: \"white\"\n}, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#path-1\"\n})), /*#__PURE__*/React.createElement(\"use\", {\n id: \"Mask\",\n fill: \"#16D6D3\",\n xlinkHref: \"#path-1\"\n})))));\n\nfunction SvgLogo(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"19px\",\n height: \"24px\",\n viewBox: \"0 0 19 24\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3, _ref4);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLogo);\nexport default __webpack_public_path__ + \"static/media/logo.8ee79eab.svg\";\nexport { ForwardRef as ReactComponent };","import typographyStyles from 'src/components/typography/styles'\nimport {\n version,\n mainWidth,\n spacer,\n white,\n primaryColor,\n placeholderColor,\n subheaderColor,\n fontColor\n} from 'src/styling/variables'\n\nconst { tl2, p } = typographyStyles\n\nlet headerHeight = spacer * 7\nlet subheaderHeight = spacer * 5\n\nif (version === 8) {\n headerHeight = spacer * 8\n subheaderHeight = spacer * 7\n}\n\nexport default {\n header: {\n backgroundColor: primaryColor,\n color: white,\n height: headerHeight,\n display: 'flex'\n },\n content: {\n maxWidth: mainWidth,\n flex: 1,\n display: 'flex',\n alignItems: 'center',\n margin: '0 auto'\n },\n nav: {\n flex: 1,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between'\n },\n ul: {\n display: 'flex',\n paddingLeft: spacer * 4.5,\n height: spacer * 7,\n margin: 0\n },\n li: {\n // extend: tl2,\n // height: spacer * 7,\n listStyle: 'none',\n color: white,\n margin: [[spacer * 2.5, spacer * 2.5, 0, spacer * 2.5]],\n '&:hover': {\n color: white\n },\n '&:hover::after': {\n width: '50%',\n marginLeft: '-25%'\n },\n position: 'relative',\n '&:after': {\n content: '\"\"',\n display: 'block',\n background: white,\n width: 0,\n height: 4,\n left: '50%',\n marginLeft: 0,\n bottom: -8,\n position: 'absolute',\n borderRadius: 1000,\n transition: [['all', '0.2s', 'cubic-bezier(0.95, 0.1, 0.45, 0.94)']]\n }\n },\n link: {\n extend: p,\n textDecoration: 'none',\n border: 'none',\n color: white,\n backgroundColor: 'transparent'\n // '&:hover': {\n // color: white\n // },\n // '&:hover::after': {\n // width: '50%',\n // marginLeft: '-25%'\n // },\n // position: 'relative',\n // '&:after': {\n // content: '\"\"',\n // display: 'block',\n // background: white,\n // width: 0,\n // height: 4,\n // left: '50%',\n // marginLeft: 0,\n // bottom: -8,\n // position: 'absolute',\n // borderRadius: 1000,\n // transition: [['all', '0.2s', 'cubic-bezier(0.95, 0.1, 0.45, 0.94)']]\n // }\n },\n forceSize: {\n display: 'inline-block',\n textAlign: 'center',\n '&:after': {\n display: 'block',\n content: 'attr(forcesize)',\n fontWeight: 700,\n height: 0,\n overflow: 'hidden',\n visibility: 'hidden'\n }\n },\n activeLink: {\n color: white,\n '& li::after': {\n width: '50%',\n marginLeft: '-25%'\n }\n },\n addMachine: {\n marginLeft: 'auto'\n },\n subheader: {\n backgroundColor: subheaderColor,\n color: white,\n height: subheaderHeight,\n display: 'flex'\n },\n subheaderUl: {\n display: 'flex',\n paddingLeft: 0\n },\n subheaderLi: {\n extend: tl2,\n display: 'flex',\n alignItems: 'center',\n height: spacer * 3,\n listStyle: 'none',\n padding: [[0, spacer * 2.5]],\n '&:first-child': {\n paddingLeft: 0\n }\n },\n subheaderLink: {\n extend: p,\n textDecoration: 'none',\n border: 'none',\n color: placeholderColor\n },\n activeSubheaderLink: {\n extend: tl2,\n color: fontColor\n },\n white: {\n color: white\n },\n logo: {\n display: 'flex',\n alignItems: 'center',\n '& > svg': {\n marginRight: 16\n }\n }\n}\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React, { memo, useState } from 'react'\nimport { NavLink, useHistory } from 'react-router-dom'\n\nimport { Link } from 'src/components/buttons'\nimport { H4 } from 'src/components/typography'\nimport AddMachine from 'src/pages/AddMachine'\nimport { ReactComponent as Logo } from 'src/styling/icons/menu/logo.svg'\n\nimport styles from './Header.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst Subheader = ({ item, classes }) => {\n return (\n
\n
\n \n
\n
\n )\n}\n\nconst Header = memo(({ tree }) => {\n const [open, setOpen] = useState(false)\n const [active, setActive] = useState()\n\n const history = useHistory()\n const classes = useStyles()\n\n const onPaired = machine => {\n setOpen(false)\n history.push('/maintenance/machine-status', { id: machine.deviceId })\n }\n\n return (\n
\n
\n
\n
\n \n

Lamassu Admin

\n
\n \n
\n
\n {active && active.children && (\n \n )}\n {open && setOpen(false)} onPaired={onPaired} />}\n
\n )\n})\n\nexport default Header\n","import useAxios from '@use-hooks/axios'\nimport React from 'react'\nimport { useLocation, useHistory } from 'react-router-dom'\n\nconst useQuery = () => new URLSearchParams(useLocation().search)\nconst url =\n process.env.NODE_ENV === 'development' ? 'https://localhost:8070' : ''\n\nconst AuthRegister = () => {\n const history = useHistory()\n const query = useQuery()\n\n useAxios({\n url: `${url}/api/register?otp=${query.get('otp')}`,\n method: 'GET',\n options: {\n withCredentials: true\n },\n trigger: [],\n customHandler: (err, res) => {\n if (err) return\n if (res) {\n history.push('/wizard', { fromAuthRegister: true })\n }\n }\n })\n\n return registering...\n}\n\nexport default AuthRegister\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/action/help/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20.0004,11 C20.0004,6.03028475 15.9701153,2 11.0004,2 C6.03004556,2 2.0004,6.02992391 2.0004,11 C2.0004,15.9700761 6.03004556,20 11.0004,20 C15.9701153,20 20.0004,15.9697153 20.0004,11 Z M22.0004,11 C22.0004,17.0742847 17.0746847,22 11.0004,22 C4.92544514,22 0.000400000001,17.0746147 0.000400000001,11 C0.000400000001,4.92538534 4.92544514,0 11.0004,0 C17.0746847,0 22.0004,4.92571525 22.0004,11 Z\",\n id: \"Stroke-1\",\n fill: \"#1B2559\",\n fillRule: \"nonzero\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9.9164,8.9063 C9.9164,9.45858475 9.46868475,9.9063 8.9164,9.9063 C8.36411525,9.9063 7.9164,9.45858475 7.9164,8.9063 C7.9164,6.89094438 9.72972438,5.35290249 11.7463843,5.7072003 C13.0663562,5.93764844 14.1348314,7.00654285 14.3652323,8.32479116 C14.6130182,9.7312185 13.941375,11.0876584 12.732214,11.7545735 C12.370484,11.9534687 12.1664,12.2664153 12.1664,12.5913 L12.1664,12.6563 C12.1664,13.2085847 11.7186847,13.6563 11.1664,13.6563 C10.6141153,13.6563 10.1664,13.2085847 10.1664,12.6563 L10.1664,12.5913 C10.1664,11.5009567 10.7946963,10.5375141 11.7674377,10.0026589 C12.2360927,9.74417086 12.493064,9.22519581 12.3953326,8.67046887 C12.3098185,8.1811985 11.8915858,7.76280177 11.4013649,7.67721566 C10.6126181,7.53864454 9.9164,8.1291691 9.9164,8.9063 Z\",\n id: \"Stroke-3\",\n fill: \"#1B2559\",\n fillRule: \"nonzero\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.1039,15.2188 C10.1039,14.6318 10.5799,14.1568 11.1659,14.1568 C11.7529,14.1568 12.2289,14.6318 12.2289,15.2188 C12.2289,15.8058 11.7529,16.2808 11.1659,16.2808 C10.5799,16.2808 10.1039,15.8058 10.1039,15.2188\",\n id: \"Fill-5\",\n fill: \"#1B2559\"\n}));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"22px\",\n height: \"22px\",\n viewBox: \"0 0 22 22\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.1bd00dea.svg\";\nexport { ForwardRef as ReactComponent };","import { makeStyles, ClickAwayListener } from '@material-ui/core'\nimport React, { useState, memo } from 'react'\n\nimport Popper from 'src/components/Popper'\nimport { ReactComponent as HelpIcon } from 'src/styling/icons/action/help/zodiac.svg'\n\nconst useStyles = makeStyles({\n transparentButton: {\n border: 'none',\n backgroundColor: 'transparent',\n marginTop: 4,\n outline: 'none',\n cursor: 'pointer'\n },\n popoverContent: ({ width }) => ({\n width,\n padding: [[10, 15]]\n })\n})\n\nconst Tooltip = memo(({ children, width, Icon = HelpIcon }) => {\n const classes = useStyles({ width })\n const [helpPopperAnchorEl, setHelpPopperAnchorEl] = useState(null)\n\n const handleOpenHelpPopper = event => {\n setHelpPopperAnchorEl(helpPopperAnchorEl ? null : event.currentTarget)\n }\n\n const handleCloseHelpPopper = () => {\n setHelpPopperAnchorEl(null)\n }\n\n const helpPopperOpen = Boolean(helpPopperAnchorEl)\n\n return (\n \n
\n \n \n \n \n
{children}
\n \n
\n
\n )\n})\n\nexport default Tooltip\n","import * as R from 'ramda'\n\nconst namespaces = {\n CASH_OUT: 'cashOut',\n WALLETS: 'wallets',\n OPERATOR_INFO: 'operatorInfo',\n NOTIFICATIONS: 'notifications',\n LOCALE: 'locale',\n COMMISSIONS: 'commissions',\n RECEIPT: 'receipt',\n COIN_ATM_RADAR: 'coinAtmRadar',\n TERMS_CONDITIONS: 'termsConditions'\n}\n\nconst mapKeys = R.curry((fn, obj) =>\n R.fromPairs(R.map(R.adjust(0, fn), R.toPairs(obj)))\n)\n\nconst filterByKey = R.curry((fn, obj) =>\n R.fromPairs(R.filter(it => fn(it[0]), R.toPairs(obj)))\n)\n\nconst stripl = R.curry((q, str) =>\n R.startsWith(q, str) ? str.slice(q.length) : str\n)\n\nconst filtered = key => filterByKey(R.startsWith(`${key}_`))\nconst stripped = key => mapKeys(stripl(`${key}_`))\n\nconst fromNamespace = R.curry((key, config) =>\n R.compose(stripped(key), filtered(key))(config)\n)\n\nconst toNamespace = R.curry((key, config) =>\n mapKeys(it => `${key}_${it}`)(config)\n)\n\nexport { fromNamespace, toNamespace, namespaces }\n","import { useFormikContext } from 'formik'\nimport React from 'react'\nimport { Prompt } from 'react-router-dom'\n\nconst PROMPT_DEFAULT_MESSAGE =\n 'You have unsaved changes on this page. Are you sure you want to leave?'\n\nconst PromptWhenDirty = ({ message = PROMPT_DEFAULT_MESSAGE }) => {\n const formik = useFormikContext()\n\n return (\n \n )\n}\n\nexport default PromptWhenDirty\n","import typographyStyles from 'src/components/typography/styles'\nimport { bySize, bold } from 'src/styling/helpers'\nimport {\n tableHeaderColor,\n tableHeaderHeight,\n tableErrorColor,\n spacer,\n white,\n tableDoubleHeaderHeight,\n offColor,\n errorColor\n} from 'src/styling/variables'\n\nconst { tl2, p, label1 } = typographyStyles\n\nexport default {\n size: ({ size }) => bySize(size),\n bold,\n header: {\n extend: tl2,\n backgroundColor: tableHeaderColor,\n height: tableHeaderHeight,\n textAlign: 'left',\n color: white,\n display: 'flex',\n alignItems: 'center'\n },\n doubleHeader: {\n extend: tl2,\n backgroundColor: tableHeaderColor,\n height: tableDoubleHeaderHeight,\n color: white,\n display: 'table-row'\n },\n thDoubleLevel: ({ width }) => ({\n width,\n display: 'table-cell',\n '& > :first-child': {\n margin: [[0, 10]],\n extend: label1,\n fontWeight: 700,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n backgroundColor: offColor,\n color: white,\n borderRadius: [[0, 0, 8, 8]],\n height: 28\n },\n '& > :last-child': {\n padding: [[0, 11]],\n display: 'table-cell',\n verticalAlign: 'middle',\n height: tableDoubleHeaderHeight - 28\n }\n }),\n cellDoubleLevel: {\n display: 'flex',\n padding: [[0, spacer * 2]]\n },\n td: ({ textAlign, width }) => ({\n width,\n padding: [[1, spacer * 3, 0, spacer * 3]],\n textAlign\n }),\n tdHeader: {\n verticalAlign: 'middle',\n display: 'table-cell',\n padding: [[0, spacer * 3]]\n },\n trError: {\n backgroundColor: tableErrorColor\n },\n mainContent: ({ size }) => {\n const minHeight = size === 'lg' ? 68 : 48\n return {\n display: 'flex',\n alignItems: 'center',\n minHeight\n }\n },\n // mui-overrides\n cardContentRoot: {\n margin: 0,\n padding: 0,\n '&:last-child': {\n padding: 0\n }\n },\n card: {\n extend: p,\n '&:before': {\n height: 0\n },\n margin: [[4, 0, 0, 0]],\n width: '100%',\n boxShadow: [[0, 0, 4, 0, 'rgba(0, 0, 0, 0.08)']]\n },\n actionCol: {\n marginLeft: 'auto'\n },\n errorContent: {\n padding: [[12, 0, 12, 24]],\n color: errorColor\n }\n}\n","import Card from '@material-ui/core/Card'\nimport CardContent from '@material-ui/core/CardContent'\nimport { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React from 'react'\n\nimport { Link } from 'src/components/buttons'\n\nimport styles from './Table.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst Table = ({ children, className, ...props }) => (\n
\n {children}\n
\n)\n\nconst THead = ({ children, className }) => {\n const classes = useStyles()\n return
{children}
\n}\n\nconst TDoubleLevelHead = ({ children, className }) => {\n const classes = useStyles()\n\n return (\n
\n {children}\n
\n )\n}\n\nconst TBody = ({ children, className }) => {\n return
{children}
\n}\n\nconst Td = ({\n children,\n header,\n className,\n width = 100,\n size,\n bold,\n textAlign,\n action\n}) => {\n const classes = useStyles({ textAlign, width, size })\n const classNames = {\n [classes.td]: true,\n [classes.tdHeader]: header,\n [classes.actionCol]: action,\n [classes.size]: !header,\n [classes.bold]: !header && bold\n }\n\n return
{children}
\n}\n\nconst Th = ({ children, ...props }) => {\n return (\n \n {children}\n \n )\n}\n\nconst ThDoubleLevel = ({ title, children, className, width }) => {\n const classes = useStyles({ width })\n\n return (\n
\n
{title}
\n
{children}
\n
\n )\n}\n\nconst Tr = ({ onClick, error, errorMessage, children, className, size }) => {\n const classes = useStyles({ size })\n const cardClasses = { root: classes.cardContentRoot }\n const classNames = {\n [classes.tr]: true,\n [classes.trError]: error,\n [classes.card]: true,\n className\n }\n\n return (\n <>\n \n \n
{children}
\n {error &&
{errorMessage}
}\n
\n
\n \n )\n}\n\nconst EditCell = ({ save, cancel }) => (\n \n \n Cancel\n \n \n Save\n \n \n)\n\nexport {\n Table,\n THead,\n TDoubleLevelHead,\n TBody,\n Tr,\n Td,\n Th,\n ThDoubleLevel,\n EditCell\n}\n","import React from 'react'\n\nexport default React.createContext()\n","import * as sanctuary from 'sanctuary'\n\nconst checkOnlyDev = () => {\n if (!process.env.NODE_ENV === 'production') return false\n\n return (\n process.env.NODE_ENV === 'development' &&\n process.env.REACT_APP_TYPE_CHECK_SANCTUARY === 'true'\n )\n}\n\nconst S = sanctuary.create({\n checkTypes: checkOnlyDev(),\n env: sanctuary.env\n})\n\nexport default S\n","import * as R from 'ramda'\n\nimport S from './sanctuary'\n\nconst formatLong = value => {\n if (!value || value.length <= 20) return value\n\n return `${value.slice(0, 8)}(...)${value.slice(\n value.length - 8,\n value.length\n )}`\n}\n\nconst toFirstLower = S.compose(S.joinWith(''))(R.adjust(0, S.toLower))\nconst toFirstUpper = S.compose(S.joinWith(''))(R.adjust(0, S.toUpper))\nconst onlyFirstToUpper = S.compose(toFirstUpper)(S.toLower)\n\nconst splitOnUpper = R.compose(\n S.splitOn(' '),\n R.replace(/([A-Z])/g, ' $1'),\n toFirstLower\n)\nconst startCase = R.compose(\n S.joinWith(' '),\n S.map(onlyFirstToUpper),\n splitOnUpper\n)\n\nexport { startCase, onlyFirstToUpper, formatLong }\n","import * as R from 'ramda'\nimport React, { useContext } from 'react'\n\nimport {\n Td,\n THead,\n TDoubleLevelHead,\n ThDoubleLevel\n} from 'src/components/fake-table/Table'\nimport { startCase } from 'src/utils/string'\n\nimport TableCtx from './Context'\n\nconst groupSecondHeader = elements => {\n const [toSHeader, noSHeader] = R.partition(R.has('doubleHeader'))(elements)\n\n if (!toSHeader.length) {\n return [elements, THead]\n }\n\n const index = R.indexOf(toSHeader[0], elements)\n const width = R.compose(R.sum, R.map(R.path(['width'])))(toSHeader)\n\n const innerElements = R.insert(\n index,\n { width, elements: toSHeader, name: toSHeader[0].doubleHeader },\n noSHeader\n )\n\n return [innerElements, TDoubleLevelHead]\n}\n\nconst Header = () => {\n const {\n elements,\n enableEdit,\n editWidth,\n enableDelete,\n deleteWidth,\n enableToggle,\n toggleWidth,\n DEFAULT_COL_SIZE\n } = useContext(TableCtx)\n\n const mapElement2 = (it, idx) => {\n const { width, elements, name } = it\n\n if (elements && elements.length) {\n return (\n \n {elements.map(mapElement)}\n \n )\n }\n\n return mapElement(it, idx)\n }\n\n const mapElement = (\n { name, width = DEFAULT_COL_SIZE, header, textAlign },\n idx\n ) => (\n \n {header || startCase(name)}\n \n )\n\n const [innerElements, HeaderElement] = groupSecondHeader(elements)\n\n return (\n \n {innerElements.map(mapElement2)}\n {enableEdit && (\n \n Edit\n \n )}\n {enableDelete && (\n \n Delete\n \n )}\n {enableToggle && (\n \n Enable\n \n )}\n \n )\n}\n\nexport default Header\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"path\", {\n id: \"arrow-path\",\n d: \"M5.3501239,7.53208616 L0.473798314,2.73082122 C-0.158421727,2.1051411 -0.158421727,1.0952488 0.476737158,0.466675069 C1.11220338,-0.155816755 2.1378971,-0.155816755 2.77494316,0.468226909 L6.49990857,4.13723769 L10.2264532,0.466675069 C10.8619195,-0.155816755 11.8876132,-0.155816755 12.5260183,0.469568675 C13.1582383,1.0952488 13.1582383,2.1051411 12.5245507,2.73226987 L7.64673876,7.53497972 C7.33802629,7.83583835 6.92590837,8 6.49990828,8 C6.0739082,8 5.66179027,7.83583835 5.3501239,7.53208616 Z\"\n}));\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Styleguide\",\n stroke: \"none\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/action/arrow/regular\"\n}, /*#__PURE__*/React.createElement(\"mask\", {\n id: \"mask-2\",\n fill: \"white\"\n}, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#path-1\"\n})), /*#__PURE__*/React.createElement(\"use\", {\n id: \"Mask\",\n fillRule: \"nonzero\",\n xlinkHref: \"#arrow-path\"\n})));\n\nfunction SvgRegular(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"13px\",\n height: \"8px\",\n viewBox: \"0 0 13 8\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3, _ref4);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgRegular);\nexport default __webpack_public_path__ + \"static/media/regular.3140e691.svg\";\nexport { ForwardRef as ReactComponent };","import { subheaderColor, offColor, white } from '../../../styling/variables'\nimport typographyStyles from '../../typography/styles'\n\nconst { p, label1 } = typographyStyles\n\nconst WIDTH = 152\n\nexport default {\n selectedItem: {\n width: WIDTH - 41,\n display: 'block',\n whiteSpace: 'nowrap',\n overflow: 'hidden'\n },\n select: {\n width: WIDTH,\n zIndex: 2,\n '& label': {\n extend: label1,\n color: offColor,\n paddingLeft: 10\n },\n '& button': {\n extend: p,\n position: 'relative',\n border: 0,\n backgroundColor: subheaderColor,\n width: WIDTH,\n padding: [[6, 0, 6, 12]],\n borderRadius: 20,\n lineHeight: '1.14',\n textAlign: 'left',\n color: offColor,\n cursor: 'pointer',\n outline: '0 none'\n },\n '& ul': {\n maxHeight: '200px',\n width: WIDTH,\n overflowY: 'auto',\n position: 'absolute',\n margin: 0,\n borderTop: 0,\n padding: 0,\n borderRadius: [[0, 0, 8, 8]],\n backgroundColor: subheaderColor,\n outline: '0 none',\n '& li': {\n extend: p,\n listStyleType: 'none',\n padding: [[6, 12]],\n cursor: 'pointer',\n '& span': {\n width: '100%',\n display: 'block',\n overflow: 'hidden',\n whiteSpace: 'nowrap'\n }\n },\n '& li:hover': {\n backgroundColor: offColor,\n color: white\n }\n },\n '& svg': {\n position: 'absolute',\n top: 12,\n right: 14,\n fill: offColor\n }\n },\n selectFiltered: {\n '& button': {\n backgroundColor: offColor,\n color: white\n },\n '& ul': {\n '& li': {\n backgroundColor: offColor,\n color: white\n },\n '& li:hover': {\n backgroundColor: subheaderColor,\n color: offColor\n }\n },\n '& svg': {\n fill: [[white], '!important']\n }\n },\n open: {\n '& button': {\n borderRadius: [[8, 8, 0, 0]]\n }\n }\n}\n","import { makeStyles } from '@material-ui/core'\nimport classnames from 'classnames'\nimport { useSelect } from 'downshift'\nimport React from 'react'\n\nimport { ReactComponent as Arrowdown } from 'src/styling/icons/action/arrow/regular.svg'\nimport { startCase } from 'src/utils/string'\n\nimport styles from './Select.styles'\n\nconst useStyles = makeStyles(styles)\n\nfunction Select({ label, items, ...props }) {\n const classes = useStyles()\n\n const {\n isOpen,\n selectedItem,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getItemProps\n } = useSelect({\n items,\n selectedItem: props.selectedItem,\n onSelectedItemChange: item => {\n props.onSelectedItemChange(item.selectedItem)\n }\n })\n\n const selectClassNames = {\n [classes.select]: true,\n [classes.selectFiltered]: selectedItem !== props.default,\n [classes.open]: isOpen\n }\n\n return (\n
\n \n \n
    \n {isOpen &&\n items.map((item, index) => (\n
  • \n {startCase(item)}\n
  • \n ))}\n
\n
\n )\n}\n\nexport default Select\n","import Chip from '@material-ui/core/Chip'\nimport { withStyles } from '@material-ui/core/styles'\nimport React, { memo } from 'react'\n\nimport {\n fontColor,\n inputFontWeight,\n subheaderColor,\n smallestFontSize,\n inputFontFamily\n} from 'src/styling/variables'\n\nconst styles = theme => ({\n root: {\n backgroundColor: subheaderColor,\n borderRadius: 4,\n margin: theme.spacing(0.5, 0.25),\n height: 18\n },\n label: {\n fontSize: smallestFontSize,\n color: fontColor,\n fontWeight: inputFontWeight,\n fontFamily: inputFontFamily,\n paddingRight: 4,\n paddingLeft: 4\n }\n})\n\nconst LsChip = memo(({ classes, ...props }) => (\n \n))\n\nexport default withStyles(styles)(LsChip)\n","import { spacer, tomato, primaryColor as zodiac } from 'src/styling/variables'\n\nconst colors = {\n cashOut: {\n empty: tomato,\n full: zodiac\n },\n cashIn: {\n empty: zodiac,\n full: tomato\n }\n}\n\nconst colorPicker = ({ percent, cashOut }) =>\n colors[cashOut ? 'cashOut' : 'cashIn'][percent >= 50 ? 'full' : 'empty']\n\nconst cashboxStyles = {\n cashbox: {\n borderColor: colorPicker,\n backgroundColor: colorPicker,\n height: 118,\n width: 80,\n border: '2px solid',\n textAlign: 'end',\n display: 'inline-block'\n },\n emptyPart: {\n backgroundColor: 'white',\n height: ({ percent }) => `${100 - percent}%`,\n position: 'relative',\n '& > p': {\n color: colorPicker,\n display: 'inline-block',\n position: 'absolute',\n margin: 0,\n bottom: 0,\n right: 0\n }\n },\n fullPart: {\n backgroundColor: colorPicker,\n '& > p': {\n color: 'white',\n display: 'inline'\n }\n }\n}\n\nconst gridStyles = {\n row: {\n display: 'flex',\n justifyContent: 'space-between'\n },\n innerRow: {\n display: 'flex',\n justifyContent: 'flex-start'\n },\n col2: {\n marginLeft: 16\n },\n noMarginText: {\n marginTop: 0,\n marginBottom: 0\n },\n link: {\n marginTop: spacer\n },\n chip: {\n margin: [[0, 0, 0, 7]]\n }\n}\n\nexport { cashboxStyles, gridStyles }\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React from 'react'\n\nimport Chip from 'src/components/Chip'\nimport { Link } from 'src/components/buttons'\nimport { Info2, Label1, Label2 } from 'src/components/typography'\n\nimport TextInputFormik from '../base/TextInput'\n\nimport { cashboxStyles, gridStyles } from './Cashbox.styles'\n\nconst cashboxClasses = makeStyles(cashboxStyles)\nconst gridClasses = makeStyles(gridStyles)\n\nconst Cashbox = ({ percent = 0, cashOut = false, className }) => {\n const classes = cashboxClasses({ percent, cashOut })\n const threshold = 51\n\n return (\n
\n
\n {percent <= threshold && {percent.toFixed(0)}%}\n
\n
\n {percent > threshold && {percent.toFixed(0)}%}\n
\n
\n )\n}\n\n// https://support.lamassu.is/hc/en-us/articles/360025595552-Installing-the-Sintra-Forte\n// Sintra and Sintra Forte can have up to 500 notes per cashOut box and up to 1000 per cashIn box\nconst CashIn = ({ capacity = 1000, notes = 0, total = 0 }) => {\n const percent = (100 * notes) / capacity\n const classes = gridClasses()\n return (\n <>\n
\n
\n \n
\n
\n
\n {notes} notes\n {total}\n
\n
\n
\n \n )\n}\n\nconst CashInFormik = ({\n capacity = 1000,\n onEmpty,\n field: {\n value: { notes, deviceId }\n },\n form: { setFieldValue }\n}) => {\n const classes = gridClasses()\n\n return (\n <>\n
\n
\n \n
\n
\n
\n {\n onEmpty({\n variables: {\n deviceId,\n action: 'emptyCashInBills'\n }\n }).then(() => setFieldValue('cashin.notes', 0))\n }}\n className={classes.link}\n color={'primary'}>\n Empty\n \n
\n
\n
\n \n )\n}\n\nconst CashOut = ({\n capacity = 500,\n denomination = 0,\n currency,\n notes,\n className\n}) => {\n const percent = (100 * notes) / capacity\n const classes = gridClasses()\n return (\n <>\n
\n
\n \n
\n
\n
\n {notes}\n \n
\n
\n \n {notes * denomination} {currency.code}\n \n
\n
\n
\n \n )\n}\n\nconst CashOutFormik = ({ capacity = 500, ...props }) => {\n const {\n name,\n onChange,\n onBlur,\n value: { notes }\n } = props.field\n const { touched, errors } = props.form\n\n const error = !!(touched[name] && errors[name])\n\n const percent = (100 * notes) / capacity\n const classes = gridClasses()\n\n return (\n <>\n
\n
\n \n
\n
\n
\n \n
\n
\n
\n \n )\n}\n\nexport { Cashbox, CashIn, CashInFormik, CashOut, CashOutFormik }\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"path\", {\n id: \"a\",\n d: \"M0 0h22v22H0z\"\n}));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"mask\", {\n id: \"b\",\n fill: \"#fff\"\n}, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#a\"\n})), /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#9B9B9B\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n mask: \"url(#b)\",\n d: \"M9 9v9M13 9v9\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n mask: \"url(#b)\",\n stroke: \"#9B9B9B\",\n strokeLinecap: \"round\",\n strokeWidth: 2\n}, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinejoin: \"round\",\n d: \"M3 6l2 15h12l2-15\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1 5h20M14 4a3 3 0 10-6 0\"\n})));\n\nfunction SvgDisabled(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 22,\n height: 22,\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgDisabled);\nexport default __webpack_public_path__ + \"static/media/disabled.347e2b5e.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/action/delete/enabled\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n x1: 9,\n y1: 9,\n x2: 9,\n y2: 18,\n id: \"Stroke-1\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 13,\n y1: 9,\n x2: 13,\n y2: 18,\n id: \"Stroke-2\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-3\",\n stroke: \"#1B2559\",\n strokeWidth: 2,\n strokeLinejoin: \"round\",\n points: \"3 6 5 21 17 21 19 6\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 1,\n y1: 5,\n x2: 21,\n y2: 5,\n id: \"Stroke-5\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14,4 C14,2.343 12.657,1 11,1 C9.343,1 8,2.343 8,4\",\n id: \"Stroke-7\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n}));\n\nfunction SvgEnabled(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"22px\",\n height: \"22px\",\n viewBox: \"0 0 22 22\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgEnabled);\nexport default __webpack_public_path__ + \"static/media/enabled.a058fdfc.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/action/edit/disabled\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1,18 L1,18 C1,19.657 2.343,21 4,21 L18,21 C19.657,21 21,19.657 21,18\",\n id: \"Stroke-1\",\n stroke: \"#9B9B9B\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Stroke-3\",\n stroke: \"#9B9B9B\",\n strokeWidth: 2,\n points: \"6 12 17 1 21 5 10 16 6 16\"\n}));\n\nfunction SvgDisabled(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"22px\",\n height: \"22px\",\n viewBox: \"0 0 22 22\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgDisabled);\nexport default __webpack_public_path__ + \"static/media/disabled.aede2073.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/action/edit/enabled\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1,18 L1,18 C1,19.657 2.343,21 4,21 L18,21 C19.657,21 21,19.657 21,18\",\n id: \"Stroke-1\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Stroke-3\",\n stroke: \"#1B2559\",\n strokeWidth: 2,\n points: \"6 12 17 1 21 5 10 16 6 16\"\n}));\n\nfunction SvgEnabled(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"22px\",\n height: \"22px\",\n viewBox: \"0 0 22 22\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgEnabled);\nexport default __webpack_public_path__ + \"static/media/enabled.5aae4510.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"pattern\", {\n id: \"pattern_68JiZ\",\n patternUnits: \"userSpaceOnUse\",\n width: 5.5,\n height: 5.5,\n patternTransform: \"rotate(45)\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n x1: 0,\n y: 0,\n x2: 0,\n y2: 5.5,\n stroke: \"#DBDFED\",\n strokeWidth: 3\n})));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"rect\", {\n width: \"100%\",\n height: \"100%\",\n fill: \"url(#pattern_68JiZ)\",\n opacity: 1\n});\n\nfunction SvgStripes(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"100%\",\n height: \"36px\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, \"{' '}\\n \", _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgStripes);\nexport default __webpack_public_path__ + \"static/media/stripes.876e4081.svg\";\nexport { ForwardRef as ReactComponent };","import { bySize, bold } from 'src/styling/helpers'\n\nexport default {\n saveButton: {\n marginRight: 20\n },\n lastOfGroup: {\n marginBottom: 24\n },\n extraPadding: {\n paddingLeft: 35,\n paddingRight: 30\n },\n extraPaddingRight: {\n paddingRight: 39\n },\n withSuffix: ({ textAlign }) => {\n const justifyContent = textAlign === 'right' ? 'end' : textAlign\n return {\n display: 'flex',\n alignItems: 'baseline',\n justifyContent\n }\n },\n suffix: {\n marginLeft: 7\n },\n size: ({ size }) => bySize(size),\n bold\n}\n","import { makeStyles } from '@material-ui/core'\nimport classnames from 'classnames'\nimport { Field, useFormikContext } from 'formik'\nimport * as R from 'ramda'\nimport React, { useContext } from 'react'\n\nimport { Link, IconButton } from 'src/components/buttons'\nimport { Td, Tr } from 'src/components/fake-table/Table'\nimport { Switch } from 'src/components/inputs'\nimport { TL2 } from 'src/components/typography'\nimport { ReactComponent as DisabledDeleteIcon } from 'src/styling/icons/action/delete/disabled.svg'\nimport { ReactComponent as DeleteIcon } from 'src/styling/icons/action/delete/enabled.svg'\nimport { ReactComponent as DisabledEditIcon } from 'src/styling/icons/action/edit/disabled.svg'\nimport { ReactComponent as EditIcon } from 'src/styling/icons/action/edit/enabled.svg'\nimport { ReactComponent as StripesSvg } from 'src/styling/icons/stripes.svg'\n\nimport TableCtx from './Context'\nimport styles from './Row.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst ActionCol = ({ disabled, editing }) => {\n const classes = useStyles()\n const { values, submitForm, resetForm } = useFormikContext()\n const {\n editWidth,\n onEdit,\n enableEdit,\n enableDelete,\n disableRowEdit,\n onDelete,\n deleteWidth,\n enableToggle,\n onToggle,\n toggleWidth,\n forceAdd,\n clearError,\n actionColSize\n } = useContext(TableCtx)\n\n const disableEdit = disabled || (disableRowEdit && disableRowEdit(values))\n const cancel = () => {\n clearError()\n resetForm()\n }\n\n return (\n <>\n {editing && (\n \n \n Save\n \n {!forceAdd && (\n \n Cancel\n \n )}\n \n )}\n {!editing && enableEdit && (\n \n onEdit && onEdit(values.id)}>\n {disableEdit ? : }\n \n \n )}\n {!editing && enableDelete && (\n \n onDelete(values.id)}>\n {disabled ? : }\n \n \n )}\n {!editing && enableToggle && (\n \n onToggle(values.id)}\n />\n \n )}\n \n )\n}\n\nconst ECol = ({ editing, focus, config, extraPaddingRight, extraPadding }) => {\n const {\n name,\n bypassField,\n input,\n editable = true,\n size,\n bold,\n width,\n textAlign,\n suffix,\n SuffixComponent = TL2,\n view = it => it?.toString(),\n inputProps = {}\n } = config\n\n const { values } = useFormikContext()\n const classes = useStyles({ textAlign, size })\n\n const innerProps = {\n fullWidth: true,\n autoFocus: focus,\n size,\n bold,\n textAlign,\n ...inputProps\n }\n\n // Autocomplete\n if (innerProps.options && !innerProps.getLabel) {\n innerProps.getLabel = view\n }\n\n const isEditing = editing && editable\n const isField = !bypassField\n\n return (\n \n {isEditing && isField && (\n \n )}\n {isEditing && !isField && }\n {!isEditing && values && <>{view(values[name], values)}}\n {suffix && (\n {suffix}\n )}\n \n )\n}\n\nconst groupStriped = elements => {\n const [toStripe, noStripe] = R.partition(R.has('stripe'))(elements)\n\n if (!toStripe.length) {\n return elements\n }\n\n const index = R.indexOf(toStripe[0], elements)\n const width = R.compose(R.sum, R.map(R.path(['width'])))(toStripe)\n\n return R.insert(\n index,\n { width, editable: false, view: () => },\n noStripe\n )\n}\n\nconst ERow = ({ editing, disabled, lastOfGroup }) => {\n const { touched, errors, values } = useFormikContext()\n const {\n elements,\n enableEdit,\n enableDelete,\n error,\n enableToggle,\n rowSize,\n stripeWhen\n } = useContext(TableCtx)\n\n const classes = useStyles()\n\n const shouldStripe = stripeWhen && stripeWhen(values) && !editing\n\n const innerElements = shouldStripe ? groupStriped(elements) : elements\n const [toSHeader] = R.partition(R.has('doubleHeader'))(elements)\n\n const extraPaddingIndex = toSHeader?.length\n ? R.indexOf(toSHeader[0], elements)\n : -1\n\n const extraPaddingRightIndex = toSHeader?.length\n ? R.indexOf(toSHeader[toSHeader.length - 1], elements)\n : -1\n\n const elementToFocusIndex = innerElements.findIndex(\n it => it.editable === undefined || it.editable\n )\n\n const classNames = {\n [classes.lastOfGroup]: lastOfGroup\n }\n\n const touchedErrors = R.pick(R.keys(touched), errors)\n const hasTouchedErrors = touchedErrors && R.keys(touchedErrors).length > 0\n const hasErrors = hasTouchedErrors || !!error\n\n const errorMessage =\n error || (touchedErrors && R.values(touchedErrors).join(', '))\n\n return (\n \n {innerElements.map((it, idx) => {\n return (\n \n )\n })}\n {(enableEdit || enableDelete || enableToggle) && (\n \n )}\n \n )\n}\n\nexport default ERow\n","import { offColor } from 'src/styling/variables'\n\nexport default {\n wrapper: ({ width }) => ({\n width: width\n }),\n addLink: {\n marginLeft: 'auto'\n },\n title: {\n margin: 0,\n color: offColor\n },\n outerHeader: {\n minHeight: 16,\n marginBottom: 24,\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center'\n }\n}\n","import { makeStyles } from '@material-ui/core'\nimport { Form, Formik } from 'formik'\nimport * as R from 'ramda'\nimport React, { useState, useEffect } from 'react'\nimport { v4 } from 'uuid'\n\nimport PromptWhenDirty from 'src/components/PromptWhenDirty'\nimport Link from 'src/components/buttons/Link.js'\nimport { AddButton } from 'src/components/buttons/index.js'\nimport { TBody, Table } from 'src/components/fake-table/Table'\nimport { Info2, TL1 } from 'src/components/typography'\n\nimport TableCtx from './Context'\nimport Header from './Header'\nimport ERow from './Row'\nimport styles from './Table.styles'\n\nconst ACTION_COL_SIZE = 87\nconst DEFAULT_COL_SIZE = 100\n\nconst useStyles = makeStyles(styles)\n\nconst getWidth = R.compose(\n R.reduce(R.add)(0),\n R.map(it => it.width ?? DEFAULT_COL_SIZE)\n)\n\nconst ETable = ({\n name,\n title,\n titleLg,\n elements = [],\n data = [],\n save,\n error: externalError,\n rowSize = 'md',\n validationSchema,\n enableCreate,\n enableEdit,\n editWidth: outerEditWidth,\n enableDelete,\n deleteWidth = ACTION_COL_SIZE,\n enableToggle,\n toggleWidth = ACTION_COL_SIZE,\n onToggle,\n forceDisable,\n disableAdd,\n initialValues,\n setEditing,\n shouldOverrideEdit,\n editOverride,\n stripeWhen,\n disableRowEdit,\n groupBy,\n sortBy,\n createText = 'Add override',\n forceAdd = false\n}) => {\n const [editingId, setEditingId] = useState(null)\n const [adding, setAdding] = useState(false)\n const [saving, setSaving] = useState(false)\n const [error, setError] = useState(null)\n\n useEffect(() => setError(externalError), [externalError])\n useEffect(() => {\n setError(null)\n setAdding(forceAdd)\n }, [forceAdd])\n\n const innerSave = async value => {\n if (saving) return\n\n setSaving(true)\n\n const it = validationSchema.cast(value)\n const index = R.findIndex(R.propEq('id', it.id))(data)\n const list = index !== -1 ? R.update(index, it, data) : R.prepend(it, data)\n\n if (!R.equals(data[index], it)) {\n try {\n await save({ [name]: list }, it)\n } catch (err) {\n setSaving(false)\n return\n }\n }\n\n setAdding(false)\n setEditingId(null)\n setEditing && setEditing(false)\n setSaving(false)\n }\n\n const onDelete = id => {\n const list = R.reject(it => it.id === id, data)\n return save({ [name]: list })\n }\n\n const onReset = () => {\n setAdding(false)\n setEditingId(null)\n setEditing && setEditing(false)\n }\n\n const onEdit = it => {\n if (shouldOverrideEdit && shouldOverrideEdit(it)) return editOverride(it)\n setEditingId(it)\n setError(null)\n setEditing && setEditing(it, true)\n }\n\n const addField = () => {\n setAdding(true)\n setError(null)\n setEditing && setEditing(true, true)\n }\n\n const widthIfEditNull =\n enableDelete || enableToggle ? ACTION_COL_SIZE : ACTION_COL_SIZE * 2\n\n const editWidth = R.defaultTo(widthIfEditNull)(outerEditWidth)\n\n const actionColSize =\n ((enableDelete && deleteWidth) ?? 0) +\n ((enableEdit && editWidth) ?? 0) +\n ((enableToggle && toggleWidth) ?? 0)\n\n const width = getWidth(elements) + actionColSize\n const classes = useStyles({ width })\n\n const showButtonOnEmpty = !data.length && enableCreate && !adding\n const canAdd = !forceDisable && !editingId && !disableAdd && !adding\n const showTable = adding || data.length !== 0\n\n const innerData = sortBy ? R.sortWith(sortBy)(data) : data\n\n const ctxValue = {\n elements,\n enableEdit,\n onEdit,\n clearError: () => setError(null),\n error: error,\n disableRowEdit,\n editWidth,\n enableDelete,\n onDelete,\n deleteWidth,\n enableToggle,\n rowSize,\n onToggle,\n toggleWidth,\n actionColSize,\n stripeWhen,\n forceAdd,\n DEFAULT_COL_SIZE\n }\n\n return (\n \n
\n {showButtonOnEmpty && canAdd && (\n {createText}\n )}\n {showTable && (\n <>\n {(title || enableCreate) && (\n
\n {title && titleLg && (\n {title}\n )}\n {title && !titleLg && (\n {title}\n )}\n {enableCreate && canAdd && (\n \n {createText}\n \n )}\n
\n )}\n \n
\n
\n {adding && (\n \n
\n \n \n \n \n )}\n {innerData.map((it, idx) => {\n const nextElement = innerData[idx + 1]\n\n const canGroup = !!groupBy && nextElement\n const isFunction = R.type(groupBy) === 'Function'\n const groupFunction = isFunction ? groupBy : R.prop(groupBy)\n\n const isLastOfGroup =\n canGroup && groupFunction(it) !== groupFunction(nextElement)\n\n return (\n \n
\n \n \n \n \n )\n })}\n
\n
\n \n )}\n
\n
\n )\n}\n\nexport default ETable\n","import * as R from 'ramda'\nimport React from 'react'\n\nimport { fromNamespace, toNamespace } from 'src/utils/config'\n\nimport EditableTable from './Table'\n\nconst NamespacedTable = ({\n name,\n save,\n data = {},\n namespaces = [],\n ...props\n}) => {\n const innerSave = (...[, it]) => {\n return save(toNamespace(it.id)(R.omit(['id2'], it)))\n }\n\n const innerData = R.map(it => ({\n id: it,\n ...fromNamespace(it)(data)\n }))(namespaces)\n\n return (\n \n )\n}\n\nexport default NamespacedTable\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Symbols\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/warning-icon/tomato\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle\",\n stroke: \"#FF584A\",\n strokeWidth: 2,\n x: 1,\n y: 1,\n width: 22,\n height: 22,\n rx: 11\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.2971429,14.4857143 L11.1085714,5.82857143 L13.3714286,5.82857143 L13.2,14.4857143 L11.2971429,14.4857143 Z M11.1942857,18 L11.1942857,15.9771429 L13.3028571,15.9771429 L13.3028571,18 L11.1942857,18 Z\",\n id: \"!\",\n fill: \"#FF584A\",\n fillRule: \"nonzero\"\n})));\n\nfunction SvgTomato(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"24px\",\n height: \"24px\",\n viewBox: \"0 0 24 24\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgTomato);\nexport default __webpack_public_path__ + \"static/media/tomato.4b561f6f.svg\";\nexport { ForwardRef as ReactComponent };","import { makeStyles } from '@material-ui/core'\nimport classnames from 'classnames'\nimport React from 'react'\n\nimport { ReactComponent as ErrorIcon } from 'src/styling/icons/warning-icon/tomato.svg'\nimport { errorColor } from 'src/styling/variables'\n\nimport { Info3 } from './typography'\n\nconst styles = {\n wrapper: {\n display: 'flex',\n alignItems: 'center',\n '& > svg': {\n marginRight: 10\n }\n },\n message: {\n display: 'flex',\n alignItems: 'center',\n color: errorColor,\n margin: 0,\n whiteSpace: 'break-spaces'\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst ErrorMessage = ({ className, children, ...props }) => {\n const classes = useStyles()\n\n return (\n
\n \n {children}\n
\n )\n}\n\nexport default ErrorMessage\n","import { makeStyles, Box } from '@material-ui/core'\nimport classnames from 'classnames'\nimport React from 'react'\n\nimport ErrorMessage from 'src/components/ErrorMessage'\nimport Title from 'src/components/Title'\nimport { Label1 } from 'src/components/typography'\n\nimport styles from './TitleSection.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst TitleSection = ({ className, title, error, labels, children }) => {\n const classes = useStyles()\n return (\n
\n
\n {title}\n {error && (\n Failed to save\n )}\n
\n \n {(labels ?? []).map(({ icon, label }, idx) => (\n \n
{icon}
\n {label}\n
\n ))}\n
\n {children}\n
\n )\n}\n\nexport default TitleSection\n","export default {\n titleWrapper: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n flexDirection: 'row'\n },\n titleAndButtonsContainer: {\n display: 'flex'\n },\n error: {\n marginLeft: 12\n },\n icon: {\n marginRight: 6\n },\n label: {\n marginRight: 24\n }\n}\n","import { makeStyles, Modal as MaterialModal, Paper } from '@material-ui/core'\nimport classnames from 'classnames'\nimport React from 'react'\n\nimport { IconButton } from 'src/components/buttons'\nimport { H1, H4 } from 'src/components/typography'\nimport { ReactComponent as CloseIcon } from 'src/styling/icons/action/close/zodiac.svg'\n\nconst styles = {\n modal: {\n display: 'flex',\n justifyContent: 'center',\n flexDirection: 'column',\n alignItems: 'center'\n },\n wrapper: ({ width, height }) => ({\n width,\n height,\n display: 'flex',\n flexDirection: 'column',\n minHeight: height ?? 400,\n maxHeight: '90vh',\n overflowY: 'auto',\n borderRadius: 8,\n outline: 0\n }),\n infoPanelWrapper: ({ width, infoPanelHeight }) => ({\n width,\n height: infoPanelHeight,\n marginTop: 16,\n display: 'flex',\n flexDirection: 'column',\n minHeight: infoPanelHeight ?? 200,\n maxHeight: '90vh',\n overflowY: 'auto',\n borderRadius: 8,\n outline: 0\n }),\n panelContent: {\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n flex: 1,\n padding: [[0, 24]]\n },\n content: ({ small, xl }) => ({\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n flex: 1,\n padding: xl ? [[0, 60 + 28]] : small ? [[0, 16]] : [[0, 32]]\n }),\n button: ({ small, xl }) => ({\n padding: [[0, 0, xl ? 26 : 0, 0]],\n margin: xl\n ? [[0, 0, 'auto', 'auto']]\n : small\n ? [[12, 12, 'auto', 'auto']]\n : [[16, 16, 'auto', 'auto']]\n }),\n header: {\n display: 'flex'\n },\n title: ({ small }) => ({\n margin: small ? [[20, 0, 8, 16]] : [[28, 0, 8, 32]]\n })\n}\n\nconst useStyles = makeStyles(styles)\n\nconst Modal = ({\n width,\n height,\n infoPanelHeight,\n title,\n small,\n xl,\n infoPanel,\n handleClose,\n children,\n secondaryModal,\n className,\n closeOnEscape,\n closeOnBackdropClick,\n ...props\n}) => {\n const classes = useStyles({ width, height, small, infoPanelHeight, xl })\n const TitleCase = small ? H4 : H1\n const closeSize = xl ? 28 : small ? 16 : 20\n\n const innerClose = (evt, reason) => {\n if (!closeOnBackdropClick && reason === 'backdropClick') return\n if (!closeOnEscape && reason === 'escapeKeyDown') return\n handleClose()\n }\n\n return (\n \n <>\n \n
\n {title && {title}}\n handleClose()}>\n \n \n
\n
{children}
\n
\n {infoPanel && (\n \n
{infoPanel}
\n
\n )}\n \n
\n )\n}\n\nexport default Modal\n","const denomiations = {\n AUD: {\n 5: 130,\n 10: 137,\n 20: 144,\n 50: 151,\n 100: 158\n },\n BBD: {\n 2: 150,\n 5: 150,\n 10: 150,\n 20: 150,\n 50: 150,\n 100: 150\n },\n CAD: {\n 5: 152,\n 10: 152,\n 20: 152,\n 50: 152,\n 100: 152\n },\n CHF: {\n 10: 126,\n 20: 137,\n 50: 148,\n 100: 159,\n 200: 170,\n 1000: 181\n },\n DKK: {\n 50: 125,\n 100: 135,\n 200: 145,\n 500: 155,\n 1000: 165\n },\n EUR: {\n 5: 120,\n 10: 127,\n 20: 133,\n 50: 140,\n 100: 147,\n 200: 153,\n 500: 160\n },\n GBP: {\n 5: 135,\n 10: 142,\n 20: 149,\n 50: 156\n },\n HKD: {\n 10: 134,\n 20: 143,\n 50: 148,\n 100: 153,\n 500: 158,\n 1000: 163\n },\n HUF: {\n 200: 154,\n 500: 154,\n 1000: 154,\n 2000: 154,\n 5000: 154,\n 10000: 154,\n 20000: 154\n },\n ILS: {\n 20: 129,\n 50: 136,\n 100: 143,\n 200: 150\n },\n JMD: {\n 50: 145,\n 100: 145,\n 500: 145,\n 1000: 145,\n 5000: 145\n },\n JPY: {\n 1000: 150,\n 2000: 154,\n 5000: 156,\n 10000: 160\n },\n KZT: {\n 200: 126,\n 500: 130,\n 1000: 134,\n 2000: 139,\n 5000: 144,\n 10000: 155,\n 20000: 155\n },\n MXN: {\n 20: 120,\n 50: 127,\n 100: 134,\n 200: 141,\n 500: 148,\n 1000: 155\n },\n MYR: {\n 1: 120,\n 5: 135,\n 10: 140,\n 20: 145,\n 50: 145,\n 100: 150\n },\n NZD: {\n 5: 135,\n 10: 140,\n 20: 145,\n 50: 150,\n 100: 155\n },\n PHP: {\n 20: 160,\n 50: 160,\n 100: 160,\n 200: 160,\n 500: 160,\n 1000: 160\n },\n PLN: {\n 10: 120,\n 20: 126,\n 50: 132,\n 100: 138,\n 200: 144,\n 500: 150\n },\n SGD: {\n 2: 126,\n 5: 133,\n 10: 141,\n 50: 156,\n 100: 162,\n 1000: 170\n },\n TWD: {\n 100: 145,\n 200: 150,\n 500: 155,\n 1000: 160,\n 2000: 165\n },\n UAH: {\n 1: 118,\n 2: 118,\n 5: 118,\n 10: 124,\n 20: 130,\n 50: 136,\n 100: 142,\n 200: 148,\n 500: 154\n },\n USD: {\n 1: 156,\n 5: 156,\n 10: 156,\n 20: 156,\n 50: 156,\n 100: 156\n },\n VND: {\n 10000: 132,\n 20000: 136,\n 50000: 140,\n 100000: 144,\n 200000: 148,\n 500000: 152\n },\n ZAR: {\n 10: 128,\n 20: 134,\n 50: 140,\n 100: 146,\n 200: 152\n }\n}\n\nexport default denomiations\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Styleguide\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/direction/cash-out\",\n transform: \"translate(-1.000000, 0.000000)\",\n fill: \"#5A67FF\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.99134364,0.321790399 L10.1430099,4.40569595 C11.0271728,4.99266501 11.2660914,6.1822461 10.6766494,7.06269968 C10.5357408,7.27317585 10.3543728,7.45378298 10.1430099,7.59410043 L3.99134364,11.678006 C3.10718075,12.264975 1.91258801,12.0270588 1.32314609,11.1466052 C1.11243854,10.8318699 1,10.4620686 1,10.0838037 L1,1.91599264 C1,0.857819122 1.86143307,0 2.92406462,0 C3.30392305,0 3.67528233,0.11196683 3.99134364,0.321790399 Z\",\n id: \"Path-3\",\n transform: \"translate(6.000000, 6.000000) scale(-1, 1) translate(-6.000000, -6.000000) \"\n})));\n\nfunction SvgCashOut(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"10px\",\n height: \"12px\",\n viewBox: \"0 0 10 12\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCashOut);\nexport default __webpack_public_path__ + \"static/media/cash-out.f029ae96.svg\";\nexport { ForwardRef as ReactComponent };","import { makeStyles } from '@material-ui/core'\nimport React from 'react'\n\nimport { Button } from 'src/components/buttons'\nimport { H1, P, Info2 } from 'src/components/typography'\nimport { ReactComponent as TxOutIcon } from 'src/styling/icons/direction/cash-out.svg'\nimport { neon, spacer } from 'src/styling/variables'\n\nconst styles = {\n logo: {\n maxHeight: 80,\n maxWidth: 200\n },\n subtitle: {\n margin: 0,\n marginBottom: 42,\n textAlign: 'center'\n },\n text: {\n margin: 0\n },\n button: {\n margin: [[0, 'auto']]\n },\n modalContent: {\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n flex: 1,\n padding: [[0, 34, 107, 34]]\n },\n innerContent: {\n paddingBottom: 72\n },\n title: {\n color: neon,\n marginBottom: 12,\n marginTop: 30,\n textAlign: 'center'\n },\n titleDecorator: {\n verticalAlign: 'bottom',\n marginRight: spacer * 1.5,\n width: spacer * 3,\n height: spacer * 3.25\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst WizardSplash = ({ name, onContinue }) => {\n const classes = useStyles()\n\n return (\n
\n
\n

\n \n Enable cash-out\n

\n {name}\n

\n You are about to activate cash-out functionality on your {name}{' '}\n machine which will allow your customers to sell crypto to you.\n

\n

\n In order to activate cash-out for this machine, please enter the\n denominations for the machine.\n

\n
\n \n
\n )\n}\n\nexport default WizardSplash\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/stage/spring/complete\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval\",\n stroke: \"#48F694\",\n strokeWidth: 2,\n transform: \"translate(9.000000, 9.000000) rotate(-270.000000) translate(-9.000000, -9.000000) \",\n cx: 9,\n cy: 9,\n r: 8\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.80983711,12 C7.54819546,12 7.28655382,11.9032616 7.08725647,11.710772 L5.29971255,9.98428824 C4.90009582,9.59832189 4.90009582,8.97445811 5.29971255,8.58849175 C5.69932929,8.2025254 6.34525711,8.2025254 6.74487384,8.58849175 L7.80983711,9.61707728 L11.2551262,6.28947477 C11.6547429,5.90350841 12.3016927,5.90350841 12.7002874,6.28947477 C13.0999042,6.674454 13.0999042,7.2993049 12.7002874,7.68527125 L8.53241776,11.710772 C8.33312041,11.9032616 8.07147876,12 7.80983711,12\",\n id: \"Path\",\n fill: \"#48F694\"\n}));\n\nfunction SvgComplete(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"18px\",\n height: \"18px\",\n viewBox: \"0 0 18 18\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgComplete);\nexport default __webpack_public_path__ + \"static/media/complete.d94d5045.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/stage/spring/current\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval-2-Copy\",\n fill: \"#48F694\",\n cx: 9,\n cy: 9,\n r: 4\n}), /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval-Copy-5\",\n stroke: \"#48F694\",\n strokeWidth: 2,\n transform: \"translate(9.000000, 9.000000) rotate(-270.000000) translate(-9.000000, -9.000000) \",\n cx: 9,\n cy: 9,\n r: 8\n}));\n\nfunction SvgCurrent(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"18px\",\n height: \"18px\",\n viewBox: \"0 0 18 18\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCurrent);\nexport default __webpack_public_path__ + \"static/media/current.9bbfa93f.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/stage/spring/empty\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval-Copy-6\",\n stroke: \"#DDDDDD\",\n strokeWidth: 2,\n transform: \"translate(9.000000, 9.000000) rotate(-270.000000) translate(-9.000000, -9.000000) \",\n cx: 9,\n cy: 9,\n r: 8\n}));\n\nfunction SvgEmpty(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"18px\",\n height: \"18px\",\n viewBox: \"0 0 18 18\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgEmpty);\nexport default __webpack_public_path__ + \"static/media/empty.862ae4bb.svg\";\nexport { ForwardRef as ReactComponent };","import { makeStyles } from '@material-ui/core'\nimport classnames from 'classnames'\nimport * as R from 'ramda'\nimport React, { memo } from 'react'\n\nimport { ReactComponent as CompleteStageIconSpring } from 'src/styling/icons/stage/spring/complete.svg'\nimport { ReactComponent as CurrentStageIconSpring } from 'src/styling/icons/stage/spring/current.svg'\nimport { ReactComponent as EmptyStageIconSpring } from 'src/styling/icons/stage/spring/empty.svg'\nimport { ReactComponent as CompleteStageIconZodiac } from 'src/styling/icons/stage/zodiac/complete.svg'\nimport { ReactComponent as CurrentStageIconZodiac } from 'src/styling/icons/stage/zodiac/current.svg'\nimport { ReactComponent as EmptyStageIconZodiac } from 'src/styling/icons/stage/zodiac/empty.svg'\nimport {\n primaryColor,\n secondaryColor,\n offColor,\n disabledColor\n} from 'src/styling/variables'\n\nconst styles = {\n stages: {\n display: 'flex',\n alignItems: 'center'\n },\n wrapper: {\n display: 'flex',\n alignItems: 'center',\n margin: 0\n },\n stage: {\n display: 'flex',\n height: 28,\n width: 28,\n zIndex: 2,\n '& > svg': {\n height: '100%',\n width: '100%',\n overflow: 'visible'\n }\n },\n separator: {\n width: 28,\n height: 2,\n border: [[2, 'solid']],\n zIndex: 1\n },\n separatorSpring: {\n borderColor: secondaryColor\n },\n separatorZodiac: {\n borderColor: primaryColor\n },\n separatorSpringEmpty: {\n borderColor: disabledColor\n },\n separatorZodiacEmpty: {\n borderColor: offColor\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst Stepper = memo(({ steps, currentStep, color = 'spring', className }) => {\n if (currentStep < 1 || currentStep > steps)\n throw Error('Value of currentStage is invalid')\n if (steps < 1) throw Error('Value of stages is invalid')\n\n const classes = useStyles()\n\n const separatorClasses = {\n [classes.separator]: true,\n [classes.separatorSpring]: color === 'spring',\n [classes.separatorZodiac]: color === 'zodiac'\n }\n\n const separatorEmptyClasses = {\n [classes.separator]: true,\n [classes.separatorSpringEmpty]: color === 'spring',\n [classes.separatorZodiacEmpty]: color === 'zodiac'\n }\n\n return (\n
\n {R.range(1, currentStep).map(idx => (\n
\n {idx > 1 &&
}\n
\n {color === 'spring' && }\n {color === 'zodiac' && }\n
\n
\n ))}\n
\n {currentStep > 1 &&
}\n
\n {color === 'spring' && }\n {color === 'zodiac' && }\n
\n
\n {R.range(currentStep + 1, steps + 1).map(idx => (\n
\n
\n
\n {color === 'spring' && }\n {color === 'zodiac' && }\n
\n
\n ))}\n
\n )\n})\n\nexport default Stepper\n","export default __webpack_public_path__ + \"static/media/cashout-cassette-1.fac6c691.svg\";","export default __webpack_public_path__ + \"static/media/cashout-cassette-2.34a98cfa.svg\";","import { errorColor, spacer } from 'src/styling/variables'\n\nconst LABEL_WIDTH = 150\n\nexport default {\n title: {\n margin: [[0, 0, 12, 0]]\n },\n titleDiv: {\n paddingBottom: 32\n },\n subtitle: {\n margin: [[32, 0, 21, 0]]\n },\n edit: {\n margin: [[0, 0, 0, 0]]\n },\n error: {\n color: errorColor\n },\n bill: {\n width: 131,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'end'\n },\n billInput: {\n width: '100%'\n },\n suffix: {\n paddingLeft: spacer * 2\n },\n button: {\n marginLeft: 'auto'\n },\n submit: {\n float: 'right'\n },\n picker: {\n width: LABEL_WIDTH\n },\n header: {\n display: 'flex',\n paddingBottom: 95\n },\n thirdStepHeader: {\n display: 'flex',\n paddingBottom: 188\n },\n step: {\n flex: 1\n },\n stepImage: {\n position: 'relative',\n top: -20,\n right: 14\n },\n content: {\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n flex: 1,\n paddingBottom: 32\n },\n disclaimer: {\n display: 'flex',\n flex: 1,\n flexDirection: 'column',\n justifyContent: 'space-between'\n },\n disclaimerIcon: {\n float: 'left',\n margin: [[-4, 16, 48, 0]]\n }\n}\n","import { makeStyles } from '@material-ui/core'\nimport { Formik, Form, Field } from 'formik'\nimport * as R from 'ramda'\nimport React from 'react'\n\nimport ErrorMessage from 'src/components/ErrorMessage'\nimport Stepper from 'src/components/Stepper'\nimport { Button } from 'src/components/buttons'\nimport { NumberInput } from 'src/components/inputs/formik'\nimport { Info2, H4, P, Info1, Label1 } from 'src/components/typography'\nimport cassetteOne from 'src/styling/icons/cassettes/cashout-cassette-1.svg'\nimport cassetteTwo from 'src/styling/icons/cassettes/cashout-cassette-2.svg'\nimport { ReactComponent as WarningIcon } from 'src/styling/icons/warning-icon/comet.svg'\n\nimport styles from './WizardStep.styles'\nconst useStyles = makeStyles(styles)\n\nconst WizardStep = ({\n name,\n step,\n schema,\n error,\n lastStep,\n onContinue,\n steps,\n fiatCurrency,\n options\n}) => {\n const classes = useStyles()\n\n const label = lastStep ? 'Finish' : 'Next'\n\n const cassetesArtworks = {\n 1: cassetteOne,\n 2: cassetteTwo\n }\n\n return (\n
\n
\n {name}\n \n
\n\n {step <= 2 && (\n \n
\n
\n {steps.map(\n ({ type, display, component }, idx) =>\n 1 + idx === step && (\n
\n

Edit {display}

\n\n Choose bill denomination\n
\n 0 ? component : NumberInput\n }\n fullWidth\n decimalPlaces={0}\n name={type}\n options={options}\n valueProp={'code'}\n getLabel={R.path(['display'])}>\n \n {fiatCurrency}\n \n
\n
\n )\n )}\n \n
\n\n \n
\n \n )}\n\n {step === 3 && (\n \n
\n
\n
\n

Edit 0-conf Limit

\n\n Choose a limit\n
\n \n \n {fiatCurrency}\n \n
\n
\n
\n\n \n
\n \n )}\n\n {lastStep && (\n
\n Cash-out Bill Count\n

\n \n When enabling cash-out, your bill count will be automatically set to\n zero. Make sure you physically put cash inside the cash cassettes to\n allow the machine to dispense it to your users. If you already did,\n make sure you set the correct cash-out bill count for this machine\n on your Cash Cassettes tab under Maintenance.\n

\n\n Default Commissions\n

\n \n When enabling cash-out, default commissions will be set. To change\n commissions for this machine, please go to the Commissions tab under\n Settings where you can set exceptions for each of the available\n cryptocurrencies.\n

\n
\n {error && Failed to save}\n \n
\n
\n )}\n
\n )\n}\n\nexport default WizardStep\n","import * as Yup from 'yup'\n\nimport { NumberInput } from 'src/components/inputs/formik'\n\nconst currencyMax = 999999999\nconst DenominationsSchema = Yup.object().shape({\n top: Yup.number()\n .label('Cassette 1 (Top)')\n .required()\n .min(0)\n .max(currencyMax),\n bottom: Yup.number()\n .label('Cassette 2 (Bottom)')\n .required()\n .min(0)\n .max(currencyMax),\n zeroConfLimit: Yup.number()\n .label('0-conf Limit')\n .required()\n .min(0)\n .max(currencyMax)\n})\n\nconst getElements = (machines, { fiatCurrency } = {}) => {\n return [\n {\n name: 'id',\n header: 'Machine',\n width: 200,\n view: it => machines.find(({ deviceId }) => deviceId === it).name,\n size: 'sm',\n editable: false\n },\n {\n name: 'top',\n header: 'Cassette 1 (Top)',\n size: 'sm',\n stripe: true,\n width: 200,\n textAlign: 'right',\n input: NumberInput,\n inputProps: {\n decimalPlaces: 0\n },\n suffix: fiatCurrency\n },\n {\n name: 'bottom',\n header: 'Cassette 2 (Bottom)',\n size: 'sm',\n stripe: true,\n textAlign: 'right',\n width: 200,\n input: NumberInput,\n inputProps: {\n decimalPlaces: 0\n },\n suffix: fiatCurrency\n },\n {\n name: 'zeroConfLimit',\n header: '0-conf Limit',\n size: 'sm',\n stripe: true,\n textAlign: 'right',\n width: 200,\n input: NumberInput,\n inputProps: {\n decimalPlaces: 0\n },\n suffix: fiatCurrency\n }\n ]\n}\n\nexport { DenominationsSchema, getElements }\n","import * as R from 'ramda'\nimport React, { useState } from 'react'\nimport * as Yup from 'yup'\n\nimport Modal from 'src/components/Modal'\nimport { Autocomplete } from 'src/components/inputs/formik'\nimport denominations from 'src/utils/bill-denominations'\nimport { toNamespace } from 'src/utils/config'\n\nimport WizardSplash from './WizardSplash'\nimport WizardStep from './WizardStep'\nimport { DenominationsSchema } from './helper'\n\nconst LAST_STEP = 4\nconst MODAL_WIDTH = 554\nconst MODAL_HEIGHT = 520\n\nconst getOptions = R.curry((locale, denomiations) => {\n const currency = R.prop('fiatCurrency')(locale)\n return R.compose(\n R.map(code => ({ code, display: code })),\n R.keys,\n R.path([currency])\n )(denomiations)\n})\n\nconst Wizard = ({ machine, locale, onClose, save, error }) => {\n const [{ step, config }, setState] = useState({\n step: 0,\n config: { active: true }\n })\n\n const options = getOptions(locale, denominations)\n\n const title = `Enable cash-out`\n const isLastStep = step === LAST_STEP\n\n const onContinue = async it => {\n if (isLastStep) {\n return save(\n toNamespace(machine.deviceId, DenominationsSchema.cast(config))\n )\n }\n\n const newConfig = R.merge(config, it)\n\n setState({\n step: step + 1,\n config: newConfig\n })\n }\n\n const steps = [\n {\n type: 'top',\n display: 'Cassette 1 (Top)',\n component: Autocomplete\n },\n {\n type: 'bottom',\n display: 'Cassette 2',\n component: Autocomplete\n },\n {\n type: 'zeroConfLimit',\n display: '0-conf Limit',\n schema: Yup.object().shape({\n zeroConfLimit: Yup.number().required()\n })\n }\n ]\n\n const schema = () =>\n Yup.object().shape({\n top: Yup.number().required(),\n bottom: step >= 2 ? Yup.number().required() : Yup.number()\n })\n\n return (\n \n {step === 0 && (\n onContinue()} />\n )}\n {step !== 0 && (\n \n )}\n \n )\n}\n\nexport default Wizard\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core/styles'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport Tooltip from 'src/components/Tooltip'\nimport { NamespacedTable as EditableTable } from 'src/components/editableTable'\nimport { Switch } from 'src/components/inputs'\nimport TitleSection from 'src/components/layout/TitleSection'\nimport { P, Label2 } from 'src/components/typography'\nimport { fromNamespace, toNamespace } from 'src/utils/config'\n\nimport Wizard from './Wizard'\nimport { DenominationsSchema, getElements } from './helper'\n\nconst useStyles = makeStyles({\n fudgeFactor: {\n display: 'flex',\n alignItems: 'center',\n marginRight: 156\n },\n switchLabel: {\n margin: 6,\n width: 24\n }\n})\n\nconst SAVE_CONFIG = gql`\n mutation Save($config: JSONObject) {\n saveConfig(config: $config)\n }\n`\n\nconst GET_INFO = gql`\n query getData {\n machines {\n name\n deviceId\n cashbox\n cassette1\n cassette2\n }\n config\n }\n`\n\nconst CashOut = ({ name: SCREEN_KEY }) => {\n const classes = useStyles()\n const [wizard, setWizard] = useState(false)\n const { data } = useQuery(GET_INFO)\n\n const [saveConfig, { error }] = useMutation(SAVE_CONFIG, {\n onCompleted: () => setWizard(false),\n refetchQueries: () => ['getData']\n })\n\n const save = (rawConfig, accounts) => {\n const config = toNamespace(SCREEN_KEY)(rawConfig)\n return saveConfig({ variables: { config, accounts } })\n }\n\n const config = data?.config && fromNamespace(SCREEN_KEY)(data.config)\n const fudgeFactorActive = config?.fudgeFactorActive ?? false\n const locale = data?.config && fromNamespace('locale')(data.config)\n const machines = data?.machines ?? []\n\n const onToggle = id => {\n const namespaced = fromNamespace(id)(config)\n if (!DenominationsSchema.isValidSync(namespaced)) return setWizard(id)\n save(toNamespace(id, { active: !namespaced?.active }))\n }\n\n return (\n <>\n \n
\n

Transaction fudge factor

\n {\n save({ fudgeFactorActive: event.target.checked })\n }}\n value={fudgeFactorActive}\n />\n \n {fudgeFactorActive ? 'On' : 'Off'}\n \n \n

\n Automatically accept customer deposits as complete if their\n received amount is 10 crypto atoms or less.\n

\n

\n (Crypto atoms are the smallest unit in each cryptocurrency. E.g.,\n satoshis in Bitcoin, or wei in Ethereum.)\n

\n
\n
\n
\n !DenominationsSchema.isValidSync(it)}\n enableEdit\n editWidth={134}\n enableToggle\n toggleWidth={109}\n onToggle={onToggle}\n save={save}\n error={error?.message}\n validationSchema={DenominationsSchema}\n disableRowEdit={R.compose(R.not, R.path(['active']))}\n elements={getElements(machines, locale)}\n />\n {wizard && (\n setWizard(false)}\n save={save}\n error={error?.message}\n locale={locale}\n />\n )}\n \n )\n}\n\nexport default CashOut\n","import Cashout from './Cashout'\n\nexport default Cashout\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React, { memo } from 'react'\n\nimport { spacer, offColor } from 'src/styling/variables'\n\nimport { TL1 } from './typography'\n\nconst useStyles = makeStyles({\n subtitle: {\n color: offColor,\n marginTop: spacer * 2,\n marginBottom: spacer * 2\n },\n extraMarginTop: {\n marginTop: spacer * 9\n }\n})\n\nconst Subtitle = memo(({ children, className, extraMarginTop }) => {\n const classes = useStyles()\n const classNames = {\n [classes.subtitle]: true,\n [classes.extraMarginTop]: extraMarginTop\n }\n\n return {children}\n})\n\nexport default Subtitle\n","import { makeStyles } from '@material-ui/core'\nimport React from 'react'\n\nimport ErrorMessage from 'src/components/ErrorMessage'\nimport Subtitle from 'src/components/Subtitle'\n\nimport styles from './Section.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst Section = ({ error, children, title }) => {\n const classes = useStyles()\n return (\n
\n {(title || error) && (\n
\n {title}\n {error && Failed to save changes}\n
\n )}\n {children}\n
\n )\n}\n\nexport default Section\n","export default {\n section: {\n marginBottom: 72\n },\n sectionHeader: {\n display: 'flex',\n alignItems: 'center'\n },\n sectionTitle: {\n margin: [[16, 20, 23, 0]]\n }\n}\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Styleguide\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/direction/cash-in\",\n transform: \"translate(-1.000000, 0.000000)\",\n fill: \"#16D6D3\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.99134364,0.321790399 L10.1430099,4.40569595 C11.0271728,4.99266501 11.2660914,6.1822461 10.6766494,7.06269968 C10.5357408,7.27317585 10.3543728,7.45378298 10.1430099,7.59410043 L3.99134364,11.678006 C3.10718075,12.264975 1.91258801,12.0270588 1.32314609,11.1466052 C1.11243854,10.8318699 1,10.4620686 1,10.0838037 L1,1.91599264 C1,0.857819122 1.86143307,0 2.92406462,0 C3.30392305,0 3.67528233,0.11196683 3.99134364,0.321790399 Z\",\n id: \"Path-3\"\n})));\n\nfunction SvgCashIn(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"10px\",\n height: \"12px\",\n viewBox: \"0 0 10 12\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCashIn);\nexport default __webpack_public_path__ + \"static/media/cash-in.c06970a7.svg\";\nexport { ForwardRef as ReactComponent };","import * as R from 'ramda'\nimport React from 'react'\nimport * as Yup from 'yup'\n\nimport { NumberInput } from 'src/components/inputs/formik'\nimport Autocomplete from 'src/components/inputs/formik/Autocomplete.js'\nimport { ReactComponent as TxInIcon } from 'src/styling/icons/direction/cash-in.svg'\nimport { ReactComponent as TxOutIcon } from 'src/styling/icons/direction/cash-out.svg'\n\nconst ALL_MACHINES = {\n name: 'All Machines',\n deviceId: 'ALL_MACHINES'\n}\n\nconst ALL_COINS = {\n display: 'All Coins',\n code: 'ALL_COINS'\n}\n\nconst cashInAndOutHeaderStyle = { marginLeft: 6 }\n\nconst cashInHeader = (\n
\n \n Cash-in\n
\n)\n\nconst cashOutHeader = (\n
\n \n Cash-out\n
\n)\n\nconst getView = (data, code, compare) => it => {\n if (!data) return ''\n\n return R.compose(R.prop(code), R.find(R.propEq(compare ?? 'code', it)))(data)\n}\n\nconst displayCodeArray = data => it => {\n if (!it) return it\n\n return R.compose(R.join(', '), R.map(getView(data, 'display')))(it)\n}\n\nconst onCryptoChange = (prev, curr, setValue) => {\n const hasAllCoins = R.includes(ALL_COINS.code)(curr)\n const hadAllCoins = R.includes(ALL_COINS.code)(prev)\n\n if (hasAllCoins && hadAllCoins && R.length(curr) > 1) {\n return setValue(R.reject(R.equals(ALL_COINS.code))(curr))\n }\n\n if (hasAllCoins && !hadAllCoins) {\n return setValue([ALL_COINS.code])\n }\n\n setValue(curr)\n}\n\nconst getOverridesFields = (getData, currency, auxElements) => {\n const machineData = [ALL_MACHINES].concat(getData(['machines']))\n const rawCryptos = getData(['cryptoCurrencies'])\n const cryptoData = [ALL_COINS].concat(\n R.map(it => ({ display: it.code, code: it.code }))(rawCryptos ?? [])\n )\n\n return [\n {\n name: 'machine',\n width: 196,\n size: 'sm',\n view: getView(machineData, 'name', 'deviceId'),\n input: Autocomplete,\n inputProps: {\n options: machineData,\n valueProp: 'deviceId',\n getLabel: R.path(['name'])\n }\n },\n {\n name: 'cryptoCurrencies',\n width: 280,\n size: 'sm',\n view: displayCodeArray(cryptoData),\n input: Autocomplete,\n inputProps: {\n options: cryptoData,\n valueProp: 'code',\n getLabel: R.path(['display']),\n multiple: true,\n onChange: onCryptoChange\n }\n },\n {\n header: cashInHeader,\n name: 'cashIn',\n display: 'Cash-in',\n width: 130,\n input: NumberInput,\n textAlign: 'right',\n suffix: '%',\n inputProps: {\n decimalPlaces: 3\n }\n },\n {\n header: cashOutHeader,\n name: 'cashOut',\n display: 'Cash-out',\n width: 130,\n input: NumberInput,\n textAlign: 'right',\n suffix: '%',\n inputProps: {\n decimalPlaces: 3\n }\n },\n {\n name: 'fixedFee',\n display: 'Fixed fee',\n width: 144,\n input: NumberInput,\n doubleHeader: 'Cash-in only',\n textAlign: 'right',\n suffix: currency,\n inputProps: {\n decimalPlaces: 2\n }\n },\n {\n name: 'minimumTx',\n display: 'Minimun Tx',\n width: 144,\n input: NumberInput,\n doubleHeader: 'Cash-in only',\n textAlign: 'right',\n suffix: currency,\n inputProps: {\n decimalPlaces: 2\n }\n }\n ]\n}\n\nconst mainFields = currency => [\n {\n header: cashInHeader,\n name: 'cashIn',\n display: 'Cash-in',\n width: 169,\n size: 'lg',\n input: NumberInput,\n suffix: '%',\n inputProps: {\n decimalPlaces: 3\n }\n },\n {\n header: cashOutHeader,\n name: 'cashOut',\n display: 'Cash-out',\n width: 169,\n size: 'lg',\n input: NumberInput,\n suffix: '%',\n inputProps: {\n decimalPlaces: 3\n }\n },\n {\n name: 'fixedFee',\n display: 'Fixed fee',\n width: 169,\n size: 'lg',\n doubleHeader: 'Cash-in only',\n textAlign: 'center',\n input: NumberInput,\n suffix: currency,\n inputProps: {\n decimalPlaces: 2\n }\n },\n {\n name: 'minimumTx',\n display: 'Minimun Tx',\n width: 169,\n size: 'lg',\n doubleHeader: 'Cash-in only',\n textAlign: 'center',\n input: NumberInput,\n suffix: currency,\n inputProps: {\n decimalPlaces: 2\n }\n }\n]\n\nconst overrides = (auxData, currency, auxElements) => {\n const getData = R.path(R.__, auxData)\n\n return getOverridesFields(getData, currency, auxElements)\n}\n\nconst percentMax = 100\nconst currencyMax = 9999999\nconst schema = Yup.object().shape({\n cashIn: Yup.number()\n .label('Cash-in')\n .min(0)\n .max(percentMax)\n .required(),\n cashOut: Yup.number()\n .label('Cash-out')\n .min(0)\n .max(percentMax)\n .required(),\n fixedFee: Yup.number()\n .label('Fixed Fee')\n .min(0)\n .max(currencyMax)\n .required(),\n minimumTx: Yup.number()\n .label('Minimum Tx')\n .min(0)\n .max(currencyMax)\n .required()\n})\n\nconst getAlreadyUsed = (id, machine, values) => {\n const getCrypto = R.prop('cryptoCurrencies')\n const getMachineId = R.prop('machine')\n\n const filteredOverrides = R.filter(R.propEq('machine', machine))(values)\n const originalValue = R.find(R.propEq('id', id))(values)\n\n const originalCryptos = getCrypto(originalValue)\n const originalMachineId = getMachineId(originalValue)\n\n const alreadyUsed = R.compose(\n R.uniq,\n R.flatten,\n R.map(getCrypto)\n )(filteredOverrides)\n\n if (machine !== originalMachineId) return alreadyUsed ?? []\n\n return R.difference(alreadyUsed, originalCryptos)\n}\n\nconst getOverridesSchema = (values, rawData) => {\n const getData = R.path(R.__, rawData)\n const machineData = [ALL_MACHINES].concat(getData(['machines']))\n const rawCryptos = getData(['cryptoCurrencies'])\n const cryptoData = [ALL_COINS].concat(\n R.map(it => ({ display: it.code, code: it.code }))(rawCryptos ?? [])\n )\n\n return Yup.object().shape({\n machine: Yup.string()\n .nullable()\n .label('Machine')\n .required(),\n cryptoCurrencies: Yup.array()\n .test({\n test() {\n const { id, machine, cryptoCurrencies } = this.parent\n const alreadyUsed = getAlreadyUsed(id, machine, values)\n\n const isAllMachines = machine === ALL_MACHINES.deviceId\n const isAllCoins = R.includes(ALL_COINS.code, cryptoCurrencies)\n if (isAllMachines && isAllCoins) {\n return this.createError({\n message: `All machines and all coins should be configured in the default setup table`\n })\n }\n\n const repeated = R.intersection(alreadyUsed, cryptoCurrencies)\n if (!R.isEmpty(repeated)) {\n const codes = displayCodeArray(cryptoData)(repeated)\n const machineView = getView(\n machineData,\n 'name',\n 'deviceId'\n )(machine)\n\n const message = `${codes} already overriden for machine: ${machineView}`\n\n return this.createError({ message })\n }\n return true\n }\n })\n .label('Crypto Currencies')\n .required(),\n cashIn: Yup.number()\n .label('Cash-in')\n .min(0)\n .max(percentMax)\n .required(),\n cashOut: Yup.number()\n .label('Cash-out')\n .min(0)\n .max(percentMax)\n .required(),\n fixedFee: Yup.number()\n .label('Fixed Fee')\n .min(0)\n .max(currencyMax)\n .required(),\n minimumTx: Yup.number()\n .label('Minimum Tx')\n .min(0)\n .max(currencyMax)\n .required()\n })\n}\n\nconst defaults = {\n cashIn: '',\n cashOut: '',\n fixedFee: '',\n minimumTx: ''\n}\n\nconst overridesDefaults = {\n machine: null,\n cryptoCurrencies: [],\n cashIn: '',\n cashOut: '',\n fixedFee: '',\n minimumTx: ''\n}\n\nconst getOrder = ({ machine, cryptoCurrencies }) => {\n const isAllMachines = machine === ALL_MACHINES.deviceId\n const isAllCoins = R.contains(ALL_COINS.code, cryptoCurrencies)\n\n if (isAllMachines && isAllCoins) return 0\n if (isAllMachines) return 1\n if (isAllCoins) return 2\n\n return 3\n}\n\nexport {\n mainFields,\n overrides,\n schema,\n getOverridesSchema,\n defaults,\n overridesDefaults,\n getOrder\n}\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport { Table as EditableTable } from 'src/components/editableTable'\nimport Section from 'src/components/layout/Section'\nimport TitleSection from 'src/components/layout/TitleSection'\nimport { fromNamespace, toNamespace, namespaces } from 'src/utils/config'\n\nimport {\n mainFields,\n overrides,\n schema,\n getOverridesSchema,\n defaults,\n overridesDefaults,\n getOrder\n} from './helper'\n\nconst GET_DATA = gql`\n query getData {\n config\n cryptoCurrencies {\n code\n display\n }\n machines {\n name\n deviceId\n }\n }\n`\n\nconst SAVE_CONFIG = gql`\n mutation Save($config: JSONObject) {\n saveConfig(config: $config)\n }\n`\n\nconst Commissions = ({ name: SCREEN_KEY }) => {\n const [isEditingDefault, setEditingDefault] = useState(false)\n const [isEditingOverrides, setEditingOverrides] = useState(false)\n const { data } = useQuery(GET_DATA)\n const [saveConfig, { error }] = useMutation(SAVE_CONFIG, {\n refetchQueries: () => ['getData']\n })\n\n const config = data?.config && fromNamespace(SCREEN_KEY)(data.config)\n const currency = R.path(['fiatCurrency'])(\n fromNamespace(namespaces.LOCALE)(data?.config)\n )\n\n const commission = config && !R.isEmpty(config) ? config : defaults\n const commissionOverrides = commission?.overrides ?? []\n\n const orderedCommissionsOverrides = R.sortWith([\n R.ascend(getOrder),\n R.ascend(R.prop('machine'))\n ])(commissionOverrides)\n\n const save = it => {\n const config = toNamespace(SCREEN_KEY)(it.commissions[0])\n return saveConfig({ variables: { config } })\n }\n\n const saveOverrides = it => {\n const config = toNamespace(SCREEN_KEY)(it)\n return saveConfig({ variables: { config } })\n }\n\n const onEditingDefault = (it, editing) => setEditingDefault(editing)\n const onEditingOverrides = (it, editing) => setEditingOverrides(editing)\n\n return (\n <>\n \n
\n \n
\n
\n \n
\n \n )\n}\n\nexport default Commissions\n","import Commissions from './Commissions'\n\nexport default Commissions\n","import Chip from '@material-ui/core/Chip'\nimport { makeStyles } from '@material-ui/core/styles'\nimport React from 'react'\n\nimport {\n tomato,\n mistyRose,\n pumpkin,\n secondaryColorDarker as spring4,\n inputFontWeight,\n spring3,\n zircon,\n primaryColor,\n smallestFontSize,\n inputFontFamily,\n spacer,\n linen\n} from '../styling/variables'\n\nconst colors = {\n error: tomato,\n warning: pumpkin,\n success: spring4,\n neutral: primaryColor\n}\n\nconst backgroundColors = {\n error: mistyRose,\n warning: linen,\n success: spring3,\n neutral: zircon\n}\n\nconst useStyles = makeStyles({\n root: {\n borderRadius: spacer / 2,\n marginTop: spacer / 2,\n marginRight: spacer / 4,\n marginBottom: spacer / 2,\n marginLeft: spacer / 4,\n height: spacer * 3,\n backgroundColor: ({ type }) => backgroundColors[type]\n },\n label: {\n fontSize: smallestFontSize,\n fontWeight: inputFontWeight,\n fontFamily: inputFontFamily,\n paddingRight: spacer / 2,\n paddingLeft: spacer / 2,\n color: ({ type }) => colors[type]\n }\n})\n\nconst Status = ({ status }) => {\n const classes = useStyles({ type: status.type })\n return \n}\n\nconst MainStatus = ({ statuses }) => {\n const mainStatus =\n statuses.find(s => s.type === 'error') ||\n statuses.find(s => s.type === 'warning') ||\n statuses[0]\n const plus = { label: `+${statuses.length - 1}`, type: mainStatus.type }\n\n return (\n
\n \n {statuses.length > 1 && }\n
\n )\n}\n\nexport { Status, MainStatus }\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/authorize/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval\",\n stroke: \"#FFFFFF\",\n cx: 6,\n cy: 6,\n r: 5\n}), /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-13\",\n stroke: \"#FFFFFF\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n points: \"4 6.66666667 5 8 8 4\"\n}));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 12 12\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.51296906.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/authorize/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-9\",\n stroke: \"#1B2559\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval\",\n cx: 6,\n cy: 6,\n r: 5\n})), /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-13\",\n stroke: \"#1B2559\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n points: \"4 6.66666667 5 8 8 4\"\n}));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 12 12\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.2fe856d5.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/cancel/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-5\",\n stroke: \"#1B2559\",\n strokeWidth: 1.2\n}, /*#__PURE__*/React.createElement(\"line\", {\n x1: 12,\n y1: 0,\n x2: 0,\n y2: 12,\n id: \"Stroke-1\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 0,\n y1: 0,\n x2: 12,\n y2: 12,\n id: \"Stroke-3\"\n})));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.3b13c0b7.svg\";\nexport { ForwardRef as ReactComponent };","import { white, tomato, spring4, comet } from 'src/styling/variables'\n\nconst propertyCardStyles = {\n label1: {\n display: 'flex',\n marginBottom: 2,\n marginTop: 'auto',\n width: 85\n },\n label1Pending: {\n color: comet\n },\n label1Rejected: {\n color: tomato\n },\n label1Accepted: {\n color: spring4\n },\n cardActionButton: {\n display: 'flex',\n height: 28,\n marginRight: 'auto',\n marginLeft: 12\n },\n propertyCardTopRow: {\n display: 'flex',\n margin: [[0, 10, 5, 0]]\n },\n propertyCardBottomRow: {\n display: 'flex',\n flexDirection: 'row',\n height: 45\n },\n propertyCard: {\n display: 'flex',\n flexDirection: 'column',\n borderRadius: 8,\n width: '100%',\n height: 100,\n padding: [[20]],\n boxSizing: 'border-box',\n boxShadow: '0 0 8px 0 rgba(0, 0, 0, 0.04)',\n border: 'solid 0',\n backgroundColor: white,\n margin: [[20, 0, 0, 0]]\n },\n rowSpaceBetween: {\n display: 'flex',\n flexFlow: 'row nowrap',\n alignItems: 'center',\n justifyContent: 'space-between'\n },\n columnSpaceBetween: {\n display: 'flex',\n flexFlow: 'column nowrap',\n alignItems: 'center',\n justifyContent: 'space-between',\n width: 90\n },\n buttonsWrapper: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n marginLeft: 'auto',\n marginTop: 'auto'\n }\n}\n\nexport { propertyCardStyles }\n","import { Paper } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React, { memo } from 'react'\n\nimport { MainStatus } from 'src/components/Status'\nimport { ActionButton } from 'src/components/buttons'\nimport { H3 } from 'src/components/typography'\nimport { ReactComponent as AuthorizeReversedIcon } from 'src/styling/icons/button/authorize/white.svg'\nimport { ReactComponent as AuthorizeIcon } from 'src/styling/icons/button/authorize/zodiac.svg'\nimport { ReactComponent as RejectReversedIcon } from 'src/styling/icons/button/cancel/white.svg'\nimport { ReactComponent as RejectIcon } from 'src/styling/icons/button/cancel/zodiac.svg'\n\nimport { propertyCardStyles } from './PropertyCard.styles'\n\nconst useStyles = makeStyles(propertyCardStyles)\n\nconst OVERRIDE_PENDING = 'automatic'\nconst OVERRIDE_AUTHORIZED = 'verified'\nconst OVERRIDE_REJECTED = 'blocked'\n\nconst PropertyCard = memo(\n ({ className, title, state, authorize, reject, children }) => {\n const classes = useStyles()\n\n const label1ClassNames = {\n [classes.label1]: true,\n [classes.label1Pending]: state === OVERRIDE_PENDING,\n [classes.label1Rejected]: state === OVERRIDE_REJECTED,\n [classes.label1Accepted]: state === OVERRIDE_AUTHORIZED\n }\n\n const AuthorizeButton = () => (\n authorize()}>\n Authorize\n \n )\n\n const RejectButton = () => (\n reject()}>\n Reject\n \n )\n\n const authorized =\n state === OVERRIDE_PENDING\n ? { label: 'Pending', type: 'neutral' }\n : state === OVERRIDE_REJECTED\n ? { label: 'Rejected', type: 'error' }\n : { label: 'Accepted', type: 'success' }\n\n return (\n \n

{title}

\n
\n
\n \n
\n {children}\n
\n {authorize && state !== OVERRIDE_AUTHORIZED && AuthorizeButton()}\n {reject && state !== OVERRIDE_REJECTED && RejectButton()}\n
\n
\n \n )\n }\n)\n\nexport {\n PropertyCard,\n OVERRIDE_PENDING,\n OVERRIDE_AUTHORIZED,\n OVERRIDE_REJECTED\n}\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/block/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-5\",\n stroke: \"#FFFFFF\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval\",\n cx: 6,\n cy: 6,\n r: 5\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 9,\n y1: 3,\n x2: 3,\n y2: 9,\n id: \"Stroke-3\"\n})));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 12 12\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.e72682b5.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/block/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-5\",\n stroke: \"#1B2559\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval\",\n cx: 6,\n cy: 6,\n r: 5\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 9,\n y1: 3,\n x2: 3,\n y2: 9,\n id: \"Stroke-3\"\n})));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 12 12\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.bb7722c5.svg\";\nexport { ForwardRef as ReactComponent };","import { comet } from 'src/styling/variables'\n\nexport default {\n labelLink: {\n cursor: 'pointer',\n color: comet\n },\n breadcrumbs: {\n margin: [[20, 0]]\n },\n actionLabel: {\n color: comet,\n margin: [[4, 0]]\n },\n customerDetails: {\n marginBottom: 18\n }\n}\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/sf-small/search/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.8635238,8.17028571 C15.8635238,12.4198095 12.4187619,15.8645714 8.1692381,15.8645714 C3.92066667,15.8645714 0.475904762,12.4198095 0.475904762,8.17028571 C0.475904762,3.9207619 3.92066667,0.476 8.1692381,0.476 C12.4187619,0.476 15.8635238,3.9207619 15.8635238,8.17028571 Z\",\n id: \"Stroke-1\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 13.7035238,\n y1: 13.7046667,\n x2: 19.4844762,\n y2: 19.485619,\n id: \"Stroke-3\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2,\n strokeLinecap: \"round\"\n}));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.e8851a0a.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/sf-small/search/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.8635238,8.17028571 C15.8635238,12.4198095 12.4187619,15.8645714 8.1692381,15.8645714 C3.92066667,15.8645714 0.475904762,12.4198095 0.475904762,8.17028571 C0.475904762,3.9207619 3.92066667,0.476 8.1692381,0.476 C12.4187619,0.476 15.8635238,3.9207619 15.8635238,8.17028571 Z\",\n id: \"Stroke-1\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 13.7035238,\n y1: 13.7046667,\n x2: 19.4844762,\n y2: 19.485619,\n id: \"Stroke-3\",\n stroke: \"#1B2559\",\n strokeWidth: 2,\n strokeLinecap: \"round\"\n}));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.91792e22.svg\";\nexport { ForwardRef as ReactComponent };","import { makeStyles, ClickAwayListener } from '@material-ui/core'\nimport classnames from 'classnames'\nimport React, { memo, useState } from 'react'\n\nimport Popper from 'src/components/Popper'\nimport { FeatureButton } from 'src/components/buttons'\nimport { ReactComponent as ZoomIconInverse } from 'src/styling/icons/circle buttons/search/white.svg'\nimport { ReactComponent as ZoomIcon } from 'src/styling/icons/circle buttons/search/zodiac.svg'\n\nimport imagePopperStyles from './ImagePopper.styles'\n\nconst useStyles = makeStyles(imagePopperStyles)\n\nconst ImagePopper = memo(\n ({ className, width, height, popupWidth, popupHeight, src }) => {\n const classes = useStyles({\n width,\n height,\n popupWidth,\n popupHeight\n })\n const [popperAnchorEl, setPopperAnchorEl] = useState(null)\n\n const handleOpenPopper = event => {\n setPopperAnchorEl(popperAnchorEl ? null : event.currentTarget)\n }\n\n const handleClosePopper = () => {\n setPopperAnchorEl(null)\n }\n\n const popperOpen = Boolean(popperAnchorEl)\n\n const Image = ({ className }) => (\n \"\"\n )\n\n return (\n \n
\n \n \n \n
\n \n
\n
\n
\n
\n )\n }\n)\n\nexport default ImagePopper\n","export default {\n row: {\n display: 'flex',\n flexDirection: 'row'\n },\n image: ({ width, height }) => ({\n objectFit: 'cover',\n borderRadius: '8px 0px 0px 8px',\n width,\n height\n }),\n popupImage: ({ popupWidth, popupHeight }) => ({\n objectFit: 'cover',\n width: popupWidth,\n height: popupHeight\n }),\n button: ({ height }) => ({\n borderRadius: '0px 8px 8px 0px',\n height\n }),\n popoverContent: {\n display: 'block',\n padding: [[10, 15]]\n }\n}\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/crossed-camera\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"crossed-camera\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-2\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/ID/cam/zodiac\",\n transform: \"translate(0.000000, 3.657143)\",\n fill: \"#1B2559\",\n fillRule: \"nonzero\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16,19.1876029 C12.4482116,19.1876029 9.56809571,16.389776 9.56809571,12.9394673 C9.56809571,9.48915858 12.4482116,6.69133172 16,6.69133172 C19.5517884,6.69133172 22.4319043,9.48915858 22.4319043,12.9394673 C22.4319043,16.389776 19.5517884,19.1876029 16,19.1876029 Z M16,17.104891 C18.3677075,17.104891 20.2879362,15.239526 20.2879362,12.9394673 C20.2879362,10.6394086 18.3677075,8.77404358 16,8.77404358 C13.6322925,8.77404358 11.7120638,10.6394086 11.7120638,12.9394673 C11.7120638,15.239526 13.6322925,17.104891 16,17.104891 Z M22.7667469,3.30692494 L30.7397807,3.30692494 C31.3318211,3.30692494 31.8117647,3.77315587 31.8117647,4.34828087 L31.8117647,22.0513317 C31.8117647,22.6264567 31.3318211,23.0926877 30.7397807,23.0926877 L1.26021934,23.0926877 C0.6681789,23.0926877 0.188235294,22.6264567 0.188235294,22.0513317 L0.188235294,4.34828087 C0.188235294,3.77315587 0.6681789,3.30692494 1.26021934,3.30692494 L9.23325311,3.30692494 L12.0766705,0.494526627 C12.2782333,0.295162767 12.5538198,0.182857143 12.8414756,0.182857143 L19.1585244,0.182857143 C19.4461802,0.182857143 19.7217667,0.295162767 19.9233295,0.494526627 L22.7667469,3.30692494 Z M29.6677966,5.3896368 L22.3170489,5.3896368 C22.0293931,5.3896368 21.7538065,5.27733118 21.5522438,5.07796732 L18.7088264,2.26556901 L13.2911736,2.26556901 L10.4477562,5.07796732 C10.2461935,5.27733118 9.97060695,5.3896368 9.68295115,5.3896368 L2.33220339,5.3896368 L2.33220339,21.0099758 L29.6677966,21.0099758 L29.6677966,5.3896368 Z\",\n id: \"Stroke-1\"\n})), /*#__PURE__*/React.createElement(\"line\", {\n x1: 32,\n y1: 0,\n x2: 0,\n y2: 32,\n id: \"Line\",\n stroke: \"#FF584A\",\n strokeWidth: 2,\n strokeLinecap: \"square\"\n}))));\n\nfunction SvgCrossedCamera(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"32px\",\n height: \"32px\",\n viewBox: \"0 0 32 32\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCrossedCamera);\nexport default __webpack_public_path__ + \"static/media/crossed-camera.28e8f7eb.svg\";\nexport { ForwardRef as ReactComponent };","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React, { memo } from 'react'\n\nimport { Info3, Label1 } from 'src/components/typography'\nimport { comet } from 'src/styling/variables'\n\nconst useStyles = makeStyles({\n field: {\n height: 46\n },\n label: {\n color: comet,\n margin: [[0, 3]]\n },\n value: {\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n margin: 0,\n paddingLeft: 4\n }\n})\n\nconst Field = memo(({ label, display, size, className }) => {\n const classes = useStyles()\n\n return (\n \n {label}\n {display}\n
\n )\n})\n\nexport default Field\n","import { Box } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\nimport * as R from 'ramda'\nimport React from 'react'\n\nimport ImagePopper from 'src/components/ImagePopper'\nimport { H3, Info3 } from 'src/components/typography'\nimport {\n PropertyCard,\n OVERRIDE_AUTHORIZED,\n OVERRIDE_REJECTED\n} from 'src/pages/Customers/components/propertyCard'\nimport { ReactComponent as CrossedCameraIcon } from 'src/styling/icons/ID/photo/crossed-camera.svg'\nimport { URI } from 'src/utils/apollo'\n\nimport { complianceDetailsStyles } from './ComplianceDetails.styles'\nimport Field from './Field'\n\nimport { IdDataCard } from './'\n\nconst useStyles = makeStyles(complianceDetailsStyles)\n\nconst imageWidth = 165\nconst imageHeight = 45\nconst popupImageWidth = 360\nconst popupImageHeight = 240\n\nconst Photo = ({ show, src }) => {\n const classes = useStyles({ width: imageWidth })\n\n return (\n <>\n {show ? (\n \n ) : (\n
\n \n
\n )}\n \n )\n}\n\nconst ComplianceDetails = ({ customer, updateCustomer }) => {\n const classes = useStyles({ width: imageWidth })\n\n const sanctions = R.path(['sanctions'])(customer)\n const sanctionsAt = R.path(['sanctionsAt'])(customer)\n const sanctionsDisplay = !sanctionsAt\n ? 'Not checked yet'\n : sanctions\n ? 'Passed'\n : 'Failed'\n\n return (\n
\n

Compliance details

\n
\n \n \n \n \n updateCustomer({ idCardPhotoOverride: OVERRIDE_AUTHORIZED })\n }\n reject={() =>\n updateCustomer({ idCardPhotoOverride: OVERRIDE_REJECTED })\n }>\n \n \n \n updateCustomer({ frontCameraOverride: OVERRIDE_AUTHORIZED })\n }\n reject={() =>\n updateCustomer({ frontCameraOverride: OVERRIDE_REJECTED })\n }>\n \n \n \n \n \n updateCustomer({ usSsnOverride: OVERRIDE_AUTHORIZED })\n }\n reject={() =>\n updateCustomer({ usSsnOverride: OVERRIDE_REJECTED })\n }>\n \n \n \n updateCustomer({ sanctionsOverride: OVERRIDE_AUTHORIZED })\n }\n reject={() =>\n updateCustomer({ sanctionsOverride: OVERRIDE_REJECTED })\n }>\n {sanctionsDisplay}\n \n \n \n
\n
\n )\n}\n\nexport default ComplianceDetails\n","const complianceDetailsStyles = {\n complianceDetailsGrid: {\n display: 'flex',\n flexDirection: 'row'\n },\n firstColumn: {\n display: 'flex',\n flexDirection: 'column',\n width: '100%',\n marginRight: 10\n },\n lastColumn: {\n display: 'flex',\n flexDirection: 'column',\n width: '100%',\n marginLeft: 10\n },\n photoWrapper: ({ width }) => ({\n display: 'flex',\n justifyContent: 'center',\n width\n })\n}\n\nexport { complianceDetailsStyles }\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/ID/card/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-2\",\n stroke: \"#1B2559\",\n strokeWidth: 1.6\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"id-copy\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Stroke-1\",\n points: \"0 16 22 16 22 0 0 0\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 11.7857143,\n y1: 4,\n x2: 18.8571429,\n y2: 4,\n id: \"Stroke-3\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 11.7857143,\n y1: 7.2,\n x2: 18.8571429,\n y2: 7.2,\n id: \"Stroke-4\"\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Stroke-5\",\n points: \"3.14285714 11.2 8.64285714 11.2 8.64285714 4 3.14285714 4\"\n}))));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"22px\",\n height: \"16px\",\n viewBox: \"0 0 22 16\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.05a22c3a.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/sf-small/law/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"bevel\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n x1: 8.4141,\n y1: 7.4648,\n x2: 14.0711,\n y2: 1.8078,\n id: \"Stroke-1\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 12.6568,\n y1: 0.3936,\n x2: 15.4858,\n y2: 3.2216,\n id: \"Stroke-3\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 7,\n y1: 6.0498,\n x2: 9.829,\n y2: 8.8788,\n id: \"Stroke-6\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 11.2427,\n y1: 4.6357,\n x2: 19.2427,\n y2: 12.6357,\n id: \"Stroke-7\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 3,\n y1: 16.5,\n x2: 10,\n y2: 16.5,\n id: \"Stroke-9\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 0,\n y1: 19.5,\n x2: 13,\n y2: 19.5,\n id: \"Stroke-10\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2\n}));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"icon/sf-small/law/white\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.57984891.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/sf-small/law/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"bevel\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n x1: 8.4141,\n y1: 7.4648,\n x2: 14.0711,\n y2: 1.8078,\n id: \"Stroke-1\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 12.6568,\n y1: 0.3936,\n x2: 15.4858,\n y2: 3.2216,\n id: \"Stroke-3\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 7,\n y1: 6.0498,\n x2: 9.829,\n y2: 8.8788,\n id: \"Stroke-6\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 11.2427,\n y1: 4.6357,\n x2: 19.2427,\n y2: 12.6357,\n id: \"Stroke-7\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 3,\n y1: 16.5,\n x2: 10,\n y2: 16.5,\n id: \"Stroke-9\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 0,\n y1: 19.5,\n x2: 13,\n y2: 19.5,\n id: \"Stroke-10\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n}));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"icon/sf-small/law/zodiac\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.56f832ee.svg\";\nexport { ForwardRef as ReactComponent };","import { fontSize5 } from 'src/styling/variables'\n\nexport default {\n titleWrapper: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n flexDirection: 'row'\n },\n wrapper: {\n flex: 1,\n display: 'flex',\n flexDirection: 'row',\n height: '100%'\n },\n tableWrapper: {\n flex: 1,\n marginLeft: 40,\n display: 'block',\n overflowX: 'auto',\n width: '100%',\n maxWidth: '78%',\n maxHeight: '70vh'\n },\n table: {\n whiteSpace: 'nowrap',\n display: 'block',\n '& th': {\n position: 'sticky',\n top: 0\n }\n },\n dateColumn: {\n minWidth: 160\n },\n levelColumn: {\n minWidth: 100\n },\n fillColumn: {\n width: '100%'\n },\n shareButton: {\n margin: 8,\n display: 'flex',\n alignItems: 'center',\n fontSize: fontSize5,\n padding: [[0, 12]]\n },\n shareIcon: {\n marginRight: 6\n },\n button: {\n margin: 8\n },\n titleAndButtonsContainer: {\n display: 'flex'\n },\n buttonsWrapper: {\n display: 'flex',\n marginLeft: 16,\n '& > *': {\n margin: 'auto 6px'\n }\n }\n}\n","import typographyStyles from 'src/components/typography/styles'\nimport baseStyles from 'src/pages/Logs.styles'\nimport { zircon, comet, primaryColor, fontSize4 } from 'src/styling/variables'\n\nconst { label1 } = typographyStyles\nconst { titleWrapper, titleAndButtonsContainer } = baseStyles\n\nexport default {\n titleWrapper,\n titleAndButtonsContainer,\n row: {\n display: 'flex',\n flexFlow: 'row nowrap'\n },\n rowSpaceBetween: {\n display: 'flex',\n flexFlow: 'row nowrap',\n alignItems: 'center',\n justifyContent: 'space-between'\n },\n column: {\n display: 'flex',\n flexFlow: 'column nowrap',\n width: '100%',\n height: '100%',\n justifyContent: 'space-between'\n },\n textInput: {\n width: 144\n },\n p: {\n fontFamily: 'MuseoSans',\n fontSize: fontSize4,\n fontWeight: 500,\n fontStretch: 'normal',\n fontStyle: 'normal',\n lineHeight: 1.14,\n letterSpacing: 'normal',\n color: primaryColor\n },\n txId: {\n fontFamily: 'MuseoSans',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis'\n },\n txClassIconLeft: {\n marginRight: 11\n },\n txClassIconRight: {\n marginLeft: 11\n },\n headerLabels: {\n display: 'flex',\n flexDirection: 'row',\n '& div': {\n display: 'flex',\n alignItems: 'center'\n },\n '& > div:first-child': {\n marginRight: 24\n },\n '& span': {\n extend: label1,\n marginLeft: 6\n }\n },\n photo: {\n width: 92,\n height: 92,\n borderRadius: 8,\n backgroundColor: zircon,\n margin: [[0, 28, 0, 0]],\n alignItems: 'center',\n justifyContent: 'center',\n display: 'flex'\n },\n img: {\n width: 80\n },\n customerName: {\n marginBottom: 32\n },\n icon: {\n marginRight: 11\n },\n name: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center'\n },\n value: {\n height: 16\n },\n label: {\n marginBottom: 4,\n color: comet\n },\n idIcon: {\n marginRight: 10\n },\n subpageButton: {\n marginLeft: 16\n }\n}\n","import { parsePhoneNumberFromString } from 'libphonenumber-js'\nimport * as R from 'ramda'\n\nconst CUSTOMER_BLOCKED = 'blocked'\n\nconst getAuthorizedStatus = it =>\n it.authorizedOverride === CUSTOMER_BLOCKED\n ? { label: 'Blocked', type: 'error' }\n : it.daysSuspended > 0\n ? { label: `${it.daysSuspended} day suspension`, type: 'warning' }\n : { label: 'Authorized', type: 'success' }\n\nconst getFormattedPhone = (phone, country) =>\n phone && country\n ? parsePhoneNumberFromString(phone, country).formatInternational()\n : ''\n\nconst getName = it => {\n const idData = R.path(['idCardData'])(it)\n\n return `${R.path(['firstName'])(idData) ?? ''} ${R.path(['lastName'])(\n idData\n ) ?? ''}`.trim()\n}\n\nexport { getAuthorizedStatus, getFormattedPhone, getName }\n","import { Paper } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\nimport React, { memo } from 'react'\n\nimport { ReactComponent as CrossedCameraIcon } from 'src/styling/icons/ID/photo/crossed-camera.svg'\nimport { URI } from 'src/utils/apollo'\n\nimport mainStyles from '../CustomersList.styles'\n\nconst useStyles = makeStyles(mainStyles)\n\nconst FrontCameraPhoto = memo(({ frontCameraPath }) => {\n const classes = useStyles()\n\n return (\n \n {frontCameraPath ? (\n \n ) : (\n \n )}\n \n )\n})\n\nexport default FrontCameraPhoto\n","import { makeStyles, Box } from '@material-ui/core'\nimport * as R from 'ramda'\nimport React, { memo } from 'react'\n\nimport { SubpageButton } from 'src/components/buttons'\nimport { H2, Label1, P } from 'src/components/typography'\nimport { ReactComponent as IdIcon } from 'src/styling/icons/ID/card/zodiac.svg'\nimport { ReactComponent as LawIconInverse } from 'src/styling/icons/circle buttons/law/white.svg'\nimport { ReactComponent as LawIcon } from 'src/styling/icons/circle buttons/law/zodiac.svg'\n\nimport mainStyles from '../CustomersList.styles'\nimport { getFormattedPhone, getName } from '../helper'\n\nimport FrontCameraPhoto from './FrontCameraPhoto'\n\nconst useStyles = makeStyles(mainStyles)\n\nconst CustomerDetails = memo(({ customer, locale, setShowCompliance }) => {\n const classes = useStyles()\n\n const elements = [\n {\n header: 'Phone number',\n size: 172,\n value: getFormattedPhone(customer.phone, locale.country)\n },\n {\n header: 'ID number',\n size: 172,\n value: R.path(['idCardData', 'documentNumber'])(customer) ?? ''\n },\n {\n header: 'US SSN',\n size: 127,\n value: R.path(['usSsn'])(customer) ?? ''\n }\n ]\n\n const name = getName(customer)\n\n return (\n \n \n \n
\n \n

\n {name.length\n ? name\n : getFormattedPhone(R.path(['phone'])(customer), locale.country)}\n

\n \n Compliance details\n \n
\n \n {elements.map(({ size, header }, idx) => (\n \n {header}\n \n ))}\n \n \n {elements.map(({ size, value }, idx) => (\n \n {value}\n

\n ))}\n
\n
\n
\n )\n})\n\nexport default CustomerDetails\n","import * as R from 'ramda'\n\nconst ifNotNull = (value, valueIfNotNull) => {\n return R.isNil(value) ? '' : valueIfNotNull\n}\n\nexport { ifNotNull }\n","import { Box } from '@material-ui/core'\nimport moment from 'moment'\nimport * as R from 'ramda'\nimport React, { memo } from 'react'\n\nimport {\n PropertyCard,\n OVERRIDE_AUTHORIZED,\n OVERRIDE_REJECTED\n} from 'src/pages/Customers/components/propertyCard'\nimport { ifNotNull } from 'src/utils/nullCheck'\n\nimport Field from './Field'\n\nconst IdDataCard = memo(({ customerData, updateCustomer }) => {\n const idData = R.path(['idCardData'])(customerData)\n const rawExpirationDate = R.path(['expirationDate'])(idData)\n const country = R.path(['country'])(idData)\n const rawDob = R.path(['dateOfBirth'])(idData)\n\n const elements = [\n {\n header: 'Name',\n display: `${R.path(['firstName'])(idData)} ${R.path(['lastName'])(\n idData\n )}`,\n size: 190\n },\n {\n header: 'ID number',\n display: R.path(['documentNumber'])(idData),\n size: 160\n },\n {\n header: 'Birth Date',\n display: ifNotNull(rawDob, moment.utc(rawDob).format('YYYY-MM-DD')),\n size: 110\n },\n {\n header: 'Age',\n display: ifNotNull(\n rawDob,\n moment.utc().diff(moment.utc(rawDob).format('YYYY-MM-DD'), 'years')\n ),\n size: 50\n },\n {\n header: 'Gender',\n display: R.path(['gender'])(idData),\n size: 80\n },\n {\n header: country === 'Canada' ? 'Province' : 'State',\n display: R.path(['state'])(idData),\n size: 120\n },\n {\n header: 'Expiration Date',\n display: ifNotNull(\n rawExpirationDate,\n moment.utc(rawExpirationDate).format('YYYY-MM-DD')\n )\n }\n ]\n\n return (\n \n updateCustomer({ idCardDataOverride: OVERRIDE_AUTHORIZED })\n }\n reject={() => updateCustomer({ idCardDataOverride: OVERRIDE_REJECTED })}>\n \n {elements.map(({ header, display, size }, idx) => (\n \n ))}\n \n \n )\n})\n\nexport default IdDataCard\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Styleguide\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/action/expand/closed\",\n transform: \"translate(1.000000, 1.000000)\",\n stroke: \"#1B2559\",\n strokeWidth: 1.5\n}, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval-4\",\n cx: 14,\n cy: 2,\n r: 2\n}), /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval-4-Copy\",\n cx: 8,\n cy: 2,\n r: 2\n}), /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval-4-Copy-2\",\n cx: 2,\n cy: 2,\n r: 2\n})));\n\nfunction SvgClosed(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"18px\",\n height: \"6px\",\n viewBox: \"0 0 18 6\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgClosed);\nexport default __webpack_public_path__ + \"static/media/closed.b853a619.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Styleguide\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/action/expand/open\",\n transform: \"translate(1.000000, 1.000000)\",\n fill: \"#1B2559\",\n stroke: \"#1B2559\",\n strokeWidth: 1.5\n}, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval-4\",\n cx: 14,\n cy: 2,\n r: 2\n}), /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval-4-Copy\",\n cx: 8,\n cy: 2,\n r: 2\n}), /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval-4-Copy-2\",\n cx: 2,\n cy: 2,\n r: 2\n})));\n\nfunction SvgOpen(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"18px\",\n height: \"6px\",\n viewBox: \"0 0 18 6\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgOpen);\nexport default __webpack_public_path__ + \"static/media/open.7196c113.svg\";\nexport { ForwardRef as ReactComponent };","import { zircon } from 'src/styling/variables'\n\nexport default {\n expandButton: {\n outline: 'none',\n border: 'none',\n backgroundColor: 'transparent',\n cursor: 'pointer',\n padding: 4\n },\n rowWrapper: {\n // workaround to shadows cut by r-virtualized when scroll is visible\n padding: 1\n },\n row: {\n border: [[2, 'solid', 'transparent']],\n borderRadius: 0\n },\n expanded: {\n border: [[2, 'solid', zircon]],\n boxShadow: '0 0 8px 0 rgba(0,0,0,0.08)'\n },\n before: {\n paddingTop: 12\n },\n after: {\n paddingBottom: 12\n },\n pointer: {\n cursor: 'pointer'\n },\n body: {\n flex: [[1, 1, 'auto']]\n },\n table: ({ width }) => ({\n marginBottom: 30,\n minHeight: 200,\n width,\n flex: 1,\n display: 'flex',\n flexDirection: 'column'\n })\n}\n","import { makeStyles, Box } from '@material-ui/core'\nimport classnames from 'classnames'\nimport * as R from 'ramda'\nimport React, { useState, useEffect } from 'react'\nimport {\n AutoSizer,\n List,\n CellMeasurer,\n CellMeasurerCache\n} from 'react-virtualized'\n\nimport {\n Table,\n TBody,\n THead,\n Tr,\n Td,\n Th\n} from 'src/components/fake-table/Table'\nimport { H4 } from 'src/components/typography'\nimport { ReactComponent as ExpandClosedIcon } from 'src/styling/icons/action/expand/closed.svg'\nimport { ReactComponent as ExpandOpenIcon } from 'src/styling/icons/action/expand/open.svg'\n\nimport styles from './DataTable.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst Row = ({\n id,\n elements,\n data,\n width,\n Details,\n expanded,\n expandRow,\n expWidth,\n expandable,\n onClick\n}) => {\n const classes = useStyles()\n\n const hasPointer = onClick || expandable\n const trClasses = {\n [classes.pointer]: hasPointer,\n [classes.row]: true,\n [classes.expanded]: expanded\n }\n\n return (\n
\n
\n {\n expandable && expandRow(id)\n onClick && onClick(data)\n }}\n error={data.error}\n errorMessage={data.errorMessage}>\n {elements.map(({ view = it => it?.toString(), ...props }, idx) => (\n \n {view(data)}\n \n ))}\n {expandable && (\n \n expandRow(id)}\n className={classes.expandButton}>\n {expanded && }\n {!expanded && }\n \n \n )}\n \n
\n {expandable && expanded && (\n
\n \n \n
\n \n \n
\n )}\n
\n )\n}\n\nconst DataTable = ({\n elements = [],\n data = [],\n Details,\n className,\n expandable,\n initialExpanded,\n onClick,\n loading,\n emptyText,\n ...props\n}) => {\n const [expanded, setExpanded] = useState(initialExpanded)\n\n useEffect(() => setExpanded(initialExpanded), [initialExpanded])\n\n const coreWidth = R.compose(R.sum, R.map(R.prop('width')))(elements)\n const expWidth = 1200 - coreWidth\n const width = coreWidth + (expandable ? expWidth : 0)\n\n const classes = useStyles({ width })\n\n const expandRow = id => {\n setExpanded(id === expanded ? null : id)\n }\n\n const cache = new CellMeasurerCache({\n defaultHeight: 62,\n fixedWidth: true\n })\n\n function rowRenderer({ index, key, parent, style }) {\n return (\n \n
\n \n
\n \n )\n }\n\n return (\n \n \n \n {elements.map(({ width, className, textAlign, header }, idx) => (\n \n {header}\n \n ))}\n {expandable && }\n \n \n {loading &&

Loading...

}\n {!loading && R.isEmpty(data) &&

{emptyText}

}\n \n {({ height }) => (\n \n )}\n \n \n
\n
\n )\n}\n\nexport default DataTable\n","import * as R from 'ramda'\n\nconst CRYPTO_CURRENCIES = [\n {\n cryptoCode: 'BTC',\n display: 'Bitcoin',\n code: 'bitcoin',\n unitScale: 8\n },\n {\n cryptoCode: 'ETH',\n display: 'Ethereum',\n code: 'ethereum',\n unitScale: 18\n },\n {\n cryptoCode: 'LTC',\n display: 'Litecoin',\n code: 'litecoin',\n unitScale: 8\n },\n {\n cryptoCode: 'DASH',\n display: 'Dash',\n code: 'dash',\n unitScale: 8\n },\n {\n cryptoCode: 'ZEC',\n display: 'Zcash',\n code: 'zcash',\n unitScale: 8\n },\n {\n cryptoCode: 'BCH',\n display: 'Bitcoin Cash',\n code: 'bitcoincash',\n unitScale: 8\n }\n]\n\nfunction getCryptoCurrency(cryptoCode) {\n const coin = R.find(R.propEq('cryptoCode', cryptoCode))(CRYPTO_CURRENCIES)\n\n if (!coin) throw new Error(`Unsupported crypto: ${cryptoCode}`)\n return coin\n}\n\nfunction toUnit(cryptoAtoms, cryptoCode) {\n const cryptoRec = getCryptoCurrency(cryptoCode)\n const unitScale = cryptoRec.unitScale\n return cryptoAtoms.shiftedBy(-unitScale)\n}\n\nfunction formatCryptoAddress(cryptoCode = '', address = '') {\n return cryptoCode === 'BCH' ? address.replace('bitcoincash:', '') : address\n}\n\nexport { toUnit, formatCryptoAddress }\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Styleguide\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/action/copy\",\n transform: \"translate(1.000000, 1.000000)\",\n stroke: \"#1B2559\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-5-Copy-2\"\n}, /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-1\",\n strokeWidth: 2,\n points: \"6 1.2 6 -0.00024 16 -0.00024 16 13.06376 12 13.06376\"\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Stroke-3\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n points: \"0 15.9368 10 15.9368 10 2.9368 0 2.9368\"\n}))));\n\nfunction SvgCopy(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"18px\",\n height: \"18px\",\n viewBox: \"0 0 18 18\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCopy);\nexport default __webpack_public_path__ + \"static/media/copy.f4cea549.svg\";\nexport { ForwardRef as ReactComponent };","import typographyStyles from 'src/components/typography/styles'\nimport baseStyles from 'src/pages/Logs.styles'\nimport { offColor, white } from 'src/styling/variables'\n\nconst { label1, mono, p } = typographyStyles\nconst { titleWrapper, titleAndButtonsContainer, buttonsWrapper } = baseStyles\n\nconst cpcStyles = {\n wrapper: {\n extend: mono,\n display: 'flex',\n alignItems: 'center',\n height: 32\n },\n address: {\n lineBreak: 'anywhere'\n },\n buttonWrapper: {\n '& button': {\n border: 'none',\n backgroundColor: 'transparent',\n cursor: 'pointer'\n }\n },\n popoverContent: {\n extend: label1,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n color: white,\n borderRadius: 4,\n padding: [[5, 9]]\n }\n}\n\nconst detailsRowStyles = {\n idCardDataCard: {\n extend: p,\n display: 'flex',\n padding: [[11, 8]],\n '& > div': {\n display: 'flex',\n flexDirection: 'column',\n '& > div': {\n width: 144,\n height: 37,\n marginBottom: 15,\n '&:last-child': {\n marginBottom: 0\n }\n }\n }\n }\n}\n\nconst labelStyles = {\n label: {\n extend: label1,\n color: offColor,\n marginBottom: 4\n }\n}\n\nconst mainStyles = {\n titleWrapper,\n titleAndButtonsContainer,\n buttonsWrapper,\n headerLabels: {\n display: 'flex',\n flexDirection: 'row',\n '& div': {\n display: 'flex',\n alignItems: 'center'\n },\n '& > div:first-child': {\n marginRight: 24\n },\n '& span': {\n extend: label1,\n marginLeft: 6\n }\n },\n overflowTd: {\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis'\n }\n}\n\nexport { cpcStyles, detailsRowStyles, labelStyles, mainStyles }\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport * as R from 'ramda'\nimport React, { useState, useEffect } from 'react'\nimport { CopyToClipboard as ReactCopyToClipboard } from 'react-copy-to-clipboard'\n\nimport Popover from 'src/components/Popper'\nimport { ReactComponent as CopyIcon } from 'src/styling/icons/action/copy/copy.svg'\nimport { comet } from 'src/styling/variables'\n\nimport { cpcStyles } from './Transactions.styles'\n\nconst useStyles = makeStyles(cpcStyles)\n\nconst CopyToClipboard = ({\n className,\n buttonClassname,\n children,\n ...props\n}) => {\n const [anchorEl, setAnchorEl] = useState(null)\n\n useEffect(() => {\n if (anchorEl) setTimeout(() => setAnchorEl(null), 3000)\n }, [anchorEl])\n\n const classes = useStyles()\n\n const handleClick = event => {\n setAnchorEl(anchorEl ? null : event.currentTarget)\n }\n\n const handleClose = () => {\n setAnchorEl(null)\n }\n\n const open = Boolean(anchorEl)\n const id = open ? 'simple-popper' : undefined\n\n return (\n
\n {children && (\n <>\n
\n {children}\n
\n
\n \n handleClick(event)}>\n \n \n \n
\n \n
\n
Copied to clipboard!
\n
\n \n \n )}\n
\n )\n}\n\nexport default CopyToClipboard\n","import { makeStyles, Box } from '@material-ui/core'\nimport BigNumber from 'bignumber.js'\nimport moment from 'moment'\nimport * as R from 'ramda'\nimport React from 'react'\n\nimport DataTable from 'src/components/tables/DataTable'\nimport { H3, H4, Label1, Label2, P } from 'src/components/typography'\nimport { ReactComponent as TxInIcon } from 'src/styling/icons/direction/cash-in.svg'\nimport { ReactComponent as TxOutIcon } from 'src/styling/icons/direction/cash-out.svg'\nimport { toUnit } from 'src/utils/coin'\nimport { ifNotNull } from 'src/utils/nullCheck'\n\nimport CopyToClipboard from '../../Transactions/CopyToClipboard'\nimport mainStyles from '../CustomersList.styles'\n\nconst useStyles = makeStyles(mainStyles)\n\nconst TransactionsList = ({ customer, data, loading }) => {\n const classes = useStyles()\n const LastTxIcon = customer.lastTxClass === 'cashOut' ? TxOutIcon : TxInIcon\n const hasData = !(R.isEmpty(data) || R.isNil(data))\n\n const summaryElements = [\n {\n header: 'Transactions',\n size: 127,\n value: ifNotNull(\n customer.totalTxs,\n `${Number.parseInt(customer.totalTxs)}`\n )\n },\n {\n header: 'Transaction volume',\n size: 167,\n value: ifNotNull(\n customer.totalSpent,\n `${Number.parseFloat(customer.totalSpent)} ${customer.lastTxFiatCode}`\n )\n },\n {\n header: 'Last active',\n size: 142,\n value: ifNotNull(\n customer.lastActive,\n moment.utc(customer.lastActive).format('YYYY-MM-D')\n )\n },\n {\n header: 'Last transaction',\n size: 198,\n value: ifNotNull(\n customer.lastTxFiat,\n <>\n \n {`${Number.parseFloat(customer.lastTxFiat)} \n ${customer.lastTxFiatCode}`}\n \n )\n }\n ]\n\n const tableElements = [\n {\n header: 'Direction',\n width: 207,\n view: it => (\n <>\n {it.txClass === 'cashOut' ? (\n \n ) : (\n \n )}\n {it.txClass === 'cashOut' ? 'Cach-out' : 'Cash-in'}\n \n )\n },\n {\n header: 'Transaction ID',\n width: 414,\n view: it => (\n {it.id}\n )\n },\n {\n header: 'Cash',\n width: 146,\n textAlign: 'right',\n view: it => (\n <>\n {`${Number.parseFloat(it.fiat)} `}\n {it.fiatCode}\n \n )\n },\n {\n header: 'Crypto',\n width: 142,\n textAlign: 'right',\n view: it => (\n <>\n {`${toUnit(new BigNumber(it.cryptoAtoms), it.cryptoCode).toFormat(\n 5\n )} `}\n {it.cryptoCode}\n \n )\n },\n {\n header: 'Date',\n width: 157,\n view: it => moment.utc(it.created).format('YYYY-MM-D')\n },\n {\n header: 'Time (h:m:s)',\n width: 134,\n view: it => moment.utc(it.created).format('hh:mm:ss')\n }\n ]\n\n return (\n <>\n

Transactions

\n \n \n {summaryElements.map(({ size, header }, idx) => (\n \n {header}\n \n ))}\n \n \n {summaryElements.map(({ size, value }, idx) => (\n \n {value}\n

\n ))}\n
\n
\n
\n
\n

\n {loading\n ? 'Loading'\n : hasData\n ? 'All transactions from this customer'\n : 'No transactions so far'}\n

\n
\n
\n {hasData && }\n \n )\n}\n\nexport default TransactionsList\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles, Breadcrumbs, Box } from '@material-ui/core'\nimport NavigateNextIcon from '@material-ui/icons/NavigateNext'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { memo, useState } from 'react'\nimport { useHistory, useParams } from 'react-router-dom'\n\nimport { ActionButton } from 'src/components/buttons'\nimport { Label1, Label2 } from 'src/components/typography'\nimport {\n OVERRIDE_AUTHORIZED,\n OVERRIDE_REJECTED\n} from 'src/pages/Customers/components/propertyCard'\nimport { ReactComponent as AuthorizeReversedIcon } from 'src/styling/icons/button/authorize/white.svg'\nimport { ReactComponent as AuthorizeIcon } from 'src/styling/icons/button/authorize/zodiac.svg'\nimport { ReactComponent as BlockReversedIcon } from 'src/styling/icons/button/block/white.svg'\nimport { ReactComponent as BlockIcon } from 'src/styling/icons/button/block/zodiac.svg'\nimport { fromNamespace, namespaces } from 'src/utils/config'\n\nimport styles from './CustomerProfile.styles'\nimport {\n CustomerDetails,\n TransactionsList,\n ComplianceDetails\n} from './components'\nimport { getFormattedPhone, getName } from './helper'\n\nconst useStyles = makeStyles(styles)\n\nconst GET_CUSTOMER = gql`\n query customer($customerId: ID!) {\n config\n customer(customerId: $customerId) {\n id\n authorizedOverride\n frontCameraPath\n frontCameraOverride\n phone\n smsOverride\n idCardData\n idCardDataOverride\n idCardDataExpiration\n idCardPhotoPath\n idCardPhotoOverride\n usSsn\n usSsnOverride\n sanctions\n sanctionsAt\n sanctionsOverride\n totalTxs\n totalSpent\n lastActive\n lastTxFiat\n lastTxFiatCode\n lastTxClass\n transactions {\n txClass\n id\n fiat\n fiatCode\n cryptoAtoms\n cryptoCode\n created\n errorMessage: error\n error: errorCode\n }\n }\n }\n`\n\nconst SET_CUSTOMER = gql`\n mutation setCustomer($customerId: ID!, $customerInput: CustomerInput) {\n setCustomer(customerId: $customerId, customerInput: $customerInput) {\n id\n authorizedOverride\n frontCameraPath\n frontCameraOverride\n phone\n smsOverride\n idCardData\n idCardDataOverride\n idCardDataExpiration\n idCardPhotoPath\n idCardPhotoOverride\n usSsn\n usSsnOverride\n sanctions\n sanctionsAt\n sanctionsOverride\n totalTxs\n totalSpent\n lastActive\n lastTxFiat\n lastTxFiatCode\n lastTxClass\n }\n }\n`\n\nconst CustomerProfile = memo(() => {\n const classes = useStyles()\n const history = useHistory()\n const [showCompliance, setShowCompliance] = useState(false)\n const { id: customerId } = useParams()\n\n const { data: customerResponse, refetch: getCustomer, loading } = useQuery(\n GET_CUSTOMER,\n {\n variables: { customerId }\n }\n )\n\n const [setCustomer] = useMutation(SET_CUSTOMER, {\n onCompleted: () => getCustomer()\n })\n\n const updateCustomer = it =>\n setCustomer({\n variables: {\n customerId,\n customerInput: it\n }\n })\n\n const configData = R.path(['config'])(customerResponse) ?? []\n const locale = configData && fromNamespace(namespaces.LOCALE, configData)\n const customerData = R.path(['customer'])(customerResponse) ?? []\n const rawTransactions = R.path(['transactions'])(customerData) ?? []\n const sortedTransactions = R.sort(R.descend(R.prop('cryptoAtoms')))(\n rawTransactions\n )\n const name = getName(customerData)\n const blocked =\n R.path(['authorizedOverride'])(customerData) === OVERRIDE_REJECTED\n\n return (\n <>\n }\n aria-label=\"breadcrumb\">\n history.push('/compliance/customers')}>\n Customers\n \n \n {name.length\n ? name\n : getFormattedPhone(\n R.path(['phone'])(customerData),\n locale.country\n )}\n \n \n
\n \n setShowCompliance(!showCompliance)}\n />\n
\n Actions\n \n updateCustomer({\n authorizedOverride: blocked\n ? OVERRIDE_AUTHORIZED\n : OVERRIDE_REJECTED\n })\n }>\n {`${blocked ? 'Authorize' : 'Block'} customer`}\n \n
\n \n
\n {!showCompliance && (\n \n )}\n {showCompliance && (\n \n )}\n \n )\n})\n\nexport default CustomerProfile\n","import { makeStyles } from '@material-ui/core/styles'\nimport moment from 'moment'\nimport * as R from 'ramda'\nimport React from 'react'\n\nimport { MainStatus } from 'src/components/Status'\nimport TitleSection from 'src/components/layout/TitleSection'\nimport DataTable from 'src/components/tables/DataTable'\nimport { ReactComponent as TxInIcon } from 'src/styling/icons/direction/cash-in.svg'\nimport { ReactComponent as TxOutIcon } from 'src/styling/icons/direction/cash-out.svg'\nimport { ifNotNull } from 'src/utils/nullCheck'\n\nimport styles from './CustomersList.styles'\nimport { getAuthorizedStatus, getFormattedPhone, getName } from './helper'\n\nconst useStyles = makeStyles(styles)\n\nconst CustomersList = ({ data, locale, onClick, loading }) => {\n const classes = useStyles()\n\n const elements = [\n {\n header: 'Phone',\n width: 172,\n view: it => getFormattedPhone(it.phone, locale.country)\n },\n {\n header: 'Name',\n width: 241,\n view: getName\n },\n {\n header: 'Total TXs',\n width: 126,\n textAlign: 'right',\n view: it => `${Number.parseInt(it.totalTxs)}`\n },\n {\n header: 'Total spent',\n width: 152,\n textAlign: 'right',\n view: it =>\n `${Number.parseFloat(it.totalSpent)} ${it.lastTxFiatCode ?? ''}`\n },\n {\n header: 'Last active',\n width: 133,\n view: it =>\n ifNotNull(it.lastActive, moment.utc(it.lastActive).format('YYYY-MM-D'))\n },\n {\n header: 'Last transaction',\n width: 161,\n textAlign: 'right',\n view: it => {\n const hasLastTx = !R.isNil(it.lastTxFiatCode)\n const LastTxIcon = it.lastTxClass === 'cashOut' ? TxOutIcon : TxInIcon\n const lastIcon = \n return (\n <>\n {hasLastTx &&\n `${parseFloat(it.lastTxFiat)} ${it.lastTxFiatCode ?? ''}`}\n {hasLastTx && lastIcon}\n \n )\n }\n },\n {\n header: 'Status',\n width: 188,\n view: it => \n }\n ]\n\n return (\n <>\n },\n { label: 'Cash-out', icon: }\n ]}\n />\n \n \n )\n}\n\nexport default CustomersList\n","import { useQuery } from '@apollo/react-hooks'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React from 'react'\nimport { useHistory } from 'react-router-dom'\n\nimport { fromNamespace, namespaces } from 'src/utils/config'\n\nimport CustomersList from './CustomersList'\n\nconst GET_CUSTOMERS = gql`\n {\n config\n customers {\n id\n idCardData\n phone\n totalTxs\n totalSpent\n lastActive\n lastTxFiat\n lastTxFiatCode\n lastTxClass\n authorizedOverride\n daysSuspended\n }\n }\n`\n\nconst Customers = () => {\n const history = useHistory()\n const { data: customersResponse, loading } = useQuery(GET_CUSTOMERS)\n\n const handleCustomerClicked = customer =>\n history.push(`/compliance/customer/${customer.id}`)\n\n const configData = R.path(['config'])(customersResponse) ?? []\n const locale = configData && fromNamespace(namespaces.LOCALE, configData)\n const customersData = R.sortWith([R.descend(R.prop('lastActive'))])(\n R.path(['customers'])(customersResponse) ?? []\n )\n\n return (\n \n )\n}\n\nexport default Customers\n","import { makeStyles } from '@material-ui/styles'\nimport classnames from 'classnames'\nimport React from 'react'\n\nimport { Label1 } from './typography'\n\nconst useStyles = makeStyles({\n wrapper: {\n display: 'flex',\n alignItems: 'center'\n },\n colorIndicator: {\n borderRadius: 3,\n height: 12,\n width: 12,\n marginRight: 8\n }\n})\n\nconst TableLabel = ({ className, label, color, ...props }) => {\n const classes = useStyles()\n return (\n
\n {color && (\n \n )}\n {label}\n
\n )\n}\n\nexport default TableLabel\n","import typographyStyles from 'src/components/typography/styles'\nimport {\n disabledColor2,\n spacer,\n subheaderColor,\n errorColor,\n placeholderColor,\n comet\n} from 'src/styling/variables'\n\nconst { label1 } = typographyStyles\n\nexport default {\n wrapper: {\n display: 'flex',\n flex: 1,\n flexDirection: 'row',\n height: '100%'\n },\n main: {\n display: 'flex',\n flex: 1\n },\n firstSide: {\n margin: `0 ${spacer * 8}px 0 ${spacer * 6}px`\n },\n secondSide: {\n marginTop: -29\n },\n error: {\n color: errorColor\n },\n coinTotal: {\n margin: `${spacer * 1.5}px 0`\n },\n leftSpacer: {\n marginLeft: spacer\n },\n topSpacer: {\n marginTop: spacer * 5\n },\n addressWrapper: {\n display: 'flex',\n flexDirection: 'column',\n flex: 1,\n backgroundColor: subheaderColor\n },\n address: {\n width: 375,\n margin: `${spacer * 1.5}px ${spacer * 3}px`\n },\n itemWrapper: {\n textAlign: 'end'\n },\n item: {\n extend: label1,\n margin: 2\n },\n inactiveItem: {\n color: comet\n },\n firstItem: {\n fontWeight: 700,\n margin: 2\n },\n total: {\n marginTop: 'auto',\n textAlign: 'right',\n marginRight: 24\n },\n totalPending: {\n marginTop: 2\n },\n totalTitle: {\n color: placeholderColor,\n marginBottom: 2\n },\n table: {\n marginTop: spacer,\n marginLeft: spacer * 6\n },\n tableLabel: {\n justifyContent: 'end',\n marginTop: -38\n },\n pending: {\n backgroundColor: disabledColor2\n },\n copyToClipboard: {\n marginLeft: 'auto',\n paddingTop: 6,\n paddingLeft: 15,\n marginRight: -11\n }\n}\n","import { useQuery } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core/styles'\nimport BigNumber from 'bignumber.js'\nimport classnames from 'classnames'\nimport gql from 'graphql-tag'\nimport moment from 'moment'\nimport QRCode from 'qrcode.react'\nimport React, { useState } from 'react'\n\nimport TableLabel from 'src/components/TableLabel'\nimport Title from 'src/components/Title'\nimport { Tr, Td, THead, TBody, Table } from 'src/components/fake-table/Table'\nimport Sidebar from 'src/components/layout/Sidebar'\nimport {\n H3,\n Info1,\n Info2,\n Info3,\n Mono,\n Label1,\n Label3\n} from 'src/components/typography'\nimport CopyToClipboard from 'src/pages/Transactions/CopyToClipboard'\nimport { primaryColor } from 'src/styling/variables'\nimport { formatCryptoAddress } from 'src/utils/coin'\n\nimport styles from './Funding.styles'\n\nconst useStyles = makeStyles(styles)\nconst sizes = {\n big: 165,\n time: 140,\n date: 130\n}\n\nconst GET_FUNDING = gql`\n {\n funding {\n cryptoCode\n errorMsg\n fundingAddress\n fundingAddressUrl\n confirmedBalance\n pending\n fiatConfirmedBalance\n fiatPending\n fiatCode\n display\n unitScale\n }\n }\n`\n\nconst formatAddress = (cryptoCode = '', address = '') =>\n formatCryptoAddress(cryptoCode, address).replace(/(.{4})/g, '$1 ')\nconst sumReducer = (acc, value) => acc.plus(value)\nconst formatNumber = it => new BigNumber(it).toFormat(2)\n\nconst getConfirmedTotal = list => {\n return formatNumber(\n list\n .filter(it => !it.errorMsg)\n .map(it => new BigNumber(it.fiatConfirmedBalance))\n .reduce(sumReducer, new BigNumber(0))\n )\n}\n\nconst getPendingTotal = list => {\n return formatNumber(\n list\n .filter(it => !it.errorMsg)\n .map(it => new BigNumber(it.fiatPending))\n .reduce(sumReducer, new BigNumber(0))\n )\n}\n\nconst Funding = () => {\n const [selected, setSelected] = useState(null)\n const [viewHistory] = useState(false)\n const classes = useStyles()\n const fundingHistory = [\n {\n cryptoAmount: 2.0,\n balance: 10.23,\n fiatValue: 1000.0,\n date: new Date(),\n performedBy: null,\n pending: true\n },\n {\n cryptoAmount: 10.0,\n balance: 12.23,\n fiatValue: 12000.0,\n date: new Date(),\n performedBy: null\n },\n {\n cryptoAmount: 5.0,\n balance: 5.0,\n fiatValue: 50000.0,\n date: new Date(),\n performedBy: null\n }\n ]\n\n const isSelected = it => {\n return selected && selected.cryptoCode === it.cryptoCode\n }\n\n const { data: fundingResponse } = useQuery(GET_FUNDING)\n\n if (fundingResponse?.funding?.length && !selected) {\n setSelected(fundingResponse?.funding[0])\n }\n\n const itemRender = (it, active) => {\n const itemClass = {\n [classes.item]: true,\n [classes.inactiveItem]: !active\n }\n const wrapperClass = {\n [classes.itemWrapper]: true,\n [classes.error]: it.errorMsg\n }\n\n return (\n
\n
{it.display}
\n {!it.errorMsg && (\n <>\n
\n {it.fiatConfirmedBalance} {it.fiatCode}\n
\n
\n {it.confirmedBalance} {it.cryptoCode}\n
\n \n )}\n
\n )\n }\n\n const pendingTotal = getPendingTotal(fundingResponse?.funding || [])\n const signIfPositive = num => (num >= 0 ? '+' : '')\n\n return (\n <>\n
\n Funding\n {/* */}\n
\n
\n it.display}\n itemRender={itemRender}>\n {fundingResponse?.funding && fundingResponse?.funding?.length && (\n
\n \n Total Crypto Balance\n \n \n {getConfirmedTotal(fundingResponse.funding)}\n {fundingResponse.funding[0].fiatCode}\n \n \n ({signIfPositive(pendingTotal)} {pendingTotal} pending)\n \n
\n )}\n \n {selected && !viewHistory && selected.errorMsg && (\n
\n
\n {selected.errorMsg}\n
\n
\n )}\n {selected && !viewHistory && !selected.errorMsg && (\n
\n
\n

Balance ({selected.display})

\n
\n \n {`${selected.confirmedBalance} ${selected.cryptoCode}`}\n \n \n {`(${signIfPositive(selected.pending)} ${\n selected.pending\n } pending)`}\n \n
\n\n
\n \n {`= ${formatNumber(selected.fiatConfirmedBalance)} ${\n selected.fiatCode\n }`}\n \n \n {`(${signIfPositive(selected.fiatPending)} ${formatNumber(\n selected.fiatPending\n )} pending)`}\n \n
\n\n

Address

\n
\n \n \n \n {formatAddress(\n selected.cryptoCode,\n selected.fundingAddress\n )}\n \n \n \n
\n
\n\n
\n Scan to send {selected.display}\n \n
\n
\n )}\n {selected && viewHistory && (\n
\n \n \n \n \n \n \n \n \n \n \n \n {fundingHistory.map((it, idx) => (\n \n \n \n \n \n \n \n \n ))}\n \n
\n Amount Entered\n \n Balance After\n \n Cash Value\n \n Date\n \n Time (h:m:s)\n \n Performed By\n
\n {it.cryptoAmount} {selected.cryptoCode}\n \n {it.balance} {selected.cryptoCode}\n \n {it.fiatValue} {selected.fiatCode}\n \n {moment(it.date).format('YYYY-MM-DD')}\n \n {moment(it.date).format('hh:mm:ss')}\n add
\n
\n )}\n
\n \n )\n}\n\nexport default Funding\n","import * as Yup from 'yup'\n\nimport {\n TextInput,\n SecretInput,\n Autocomplete\n} from 'src/components/inputs/formik'\n\nconst isDefined = it => it && it.length\n\nexport default {\n code: 'bitgo',\n name: 'BitGo',\n title: 'BitGo (Wallet)',\n elements: [\n {\n code: 'token',\n display: 'API Token',\n component: TextInput,\n face: true,\n long: true\n },\n {\n code: 'environment',\n display: 'Environment',\n component: Autocomplete,\n inputProps: {\n options: ['prod', 'test']\n },\n face: true\n },\n {\n code: 'BTCWalletId',\n display: 'BTC Wallet ID',\n component: TextInput\n },\n {\n code: 'BTCWalletPassphrase',\n display: 'BTC Wallet Passphrase',\n component: SecretInput\n },\n {\n code: 'LTCWalletId',\n display: 'LTC Wallet ID',\n component: TextInput\n },\n {\n code: 'LTCWalletPassphrase',\n display: 'LTC Wallet Passphrase',\n component: SecretInput\n },\n {\n code: 'ZECWalletId',\n display: 'ZEC Wallet ID',\n component: TextInput\n },\n {\n code: 'ZECWalletPassphrase',\n display: 'ZEC Wallet Passphrase',\n component: SecretInput\n },\n {\n code: 'BCHWalletId',\n display: 'BCH Wallet ID',\n component: TextInput\n },\n {\n code: 'BCHWalletPassphrase',\n display: 'BCH Wallet Passphrase',\n component: SecretInput\n },\n {\n code: 'DASHWalletId',\n display: 'DASH Wallet ID',\n component: TextInput\n },\n {\n code: 'DASHWalletPassphrase',\n display: 'DASH Wallet Passphrase',\n component: SecretInput\n }\n ],\n validationSchema: Yup.object().shape({\n token: Yup.string()\n .max(100, 'Too long')\n .required(),\n BTCWalletId: Yup.string().max(100, 'Too long'),\n BTCWalletPassphrase: Yup.string()\n .max(100, 'Too long')\n .when('BTCWalletId', {\n is: isDefined,\n then: Yup.string().required()\n }),\n LTCWalletId: Yup.string().max(100, 'Too long'),\n LTCWalletPassphrase: Yup.string()\n .max(100, 'Too long')\n .when('LTCWalletId', {\n is: isDefined,\n then: Yup.string().required()\n }),\n ZECWalletId: Yup.string().max(100, 'Too long'),\n ZECWalletPassphrase: Yup.string()\n .max(100, 'Too long')\n .when('ZECWalletId', {\n is: isDefined,\n then: Yup.string().required()\n }),\n BCHWalletId: Yup.string().max(100, 'Too long'),\n BCHWalletPassphrase: Yup.string()\n .max(100, 'Too long')\n .when('BCHWalletId', {\n is: isDefined,\n then: Yup.string().required()\n }),\n DASHWalletId: Yup.string().max(100, 'Too long'),\n DASHWalletPassphrase: Yup.string()\n .max(100, 'Too long')\n .when('DASHWalletId', {\n is: isDefined,\n then: Yup.string().required()\n }),\n environment: Yup.string()\n .matches(/(prod|test)/)\n .required()\n })\n}\n","import * as Yup from 'yup'\n\nimport SecretInputFormik from 'src/components/inputs/formik/SecretInput'\nimport TextInputFormik from 'src/components/inputs/formik/TextInput'\n\nexport default {\n code: 'bitstamp',\n name: 'Bitstamp',\n title: 'Bitstamp (Exchange)',\n elements: [\n {\n code: 'clientId',\n display: 'Client ID',\n component: TextInputFormik,\n face: true,\n long: true\n },\n {\n code: 'key',\n display: 'API Key',\n component: TextInputFormik,\n face: true,\n long: true\n },\n {\n code: 'secret',\n display: 'API Secret',\n component: SecretInputFormik\n }\n ],\n\n validationSchema: Yup.object().shape({\n clientId: Yup.string()\n .max(100, 'Too long')\n .required(),\n key: Yup.string()\n .max(100, 'Too long')\n .required(),\n secret: Yup.string()\n .max(100, 'Too long')\n .required()\n })\n}\n","import * as Yup from 'yup'\n\nimport TextInputFormik from 'src/components/inputs/formik/TextInput'\n\nexport default {\n code: 'blockcypher',\n name: 'Blockcypher',\n title: 'Blockcypher (Payments)',\n elements: [\n {\n code: 'token',\n display: 'API Token',\n component: TextInputFormik,\n face: true,\n long: true\n },\n {\n code: 'confidenceFactor',\n display: 'Confidence Factor',\n component: TextInputFormik,\n face: true\n }\n ],\n\n validationSchema: Yup.object().shape({\n token: Yup.string()\n .max(100, 'Too long')\n .required(),\n confidenceFactor: Yup.number()\n .integer('Please input a positive integer')\n .positive('Please input a positive integer')\n .required()\n })\n}\n","import * as Yup from 'yup'\n\nimport SecretInputFormik from 'src/components/inputs/formik/SecretInput'\nimport TextInputFormik from 'src/components/inputs/formik/TextInput'\n\nexport default {\n code: 'infura',\n name: 'Infura',\n title: 'Infura (Wallet)',\n elements: [\n {\n code: 'apiKey',\n display: 'Project ID',\n component: TextInputFormik,\n face: true,\n long: true\n },\n {\n code: 'apiSecret',\n display: 'Project Secret',\n component: SecretInputFormik\n },\n {\n code: 'endpoint',\n display: 'Endpoint',\n component: TextInputFormik,\n face: true\n }\n ],\n validationSchema: Yup.object().shape({\n apiKey: Yup.string()\n .max(100, 'Too long')\n .required(),\n apiSecret: Yup.string()\n .max(100, 'Too long')\n .required(),\n endpoint: Yup.string()\n .max(100, 'Too long')\n .required()\n })\n}\n","import * as Yup from 'yup'\n\nimport SecretInputFormik from 'src/components/inputs/formik/SecretInput'\nimport TextInputFormik from 'src/components/inputs/formik/TextInput'\n\nexport default {\n code: 'itbit',\n name: 'itBit',\n title: 'itBit (Exchange)',\n elements: [\n {\n code: 'userId',\n display: 'User ID',\n component: TextInputFormik,\n face: true,\n long: true\n },\n {\n code: 'walletId',\n display: 'Wallet ID',\n component: TextInputFormik,\n face: true,\n long: true\n },\n {\n code: 'clientKey',\n display: 'Client Key',\n component: TextInputFormik\n },\n {\n code: 'clientSecret',\n display: 'Client Secret',\n component: SecretInputFormik\n }\n ],\n validationSchema: Yup.object().shape({\n userId: Yup.string()\n .max(100, 'Too long')\n .required(),\n walletId: Yup.string()\n .max(100, 'Too long')\n .required(),\n clientKey: Yup.string()\n .max(100, 'Too long')\n .required(),\n clientSecret: Yup.string()\n .max(100, 'Too long')\n .required()\n })\n}\n","import * as Yup from 'yup'\n\nimport SecretInputFormik from 'src/components/inputs/formik/SecretInput'\nimport TextInputFormik from 'src/components/inputs/formik/TextInput'\n\nexport default {\n code: 'kraken',\n name: 'Kraken',\n title: 'Kraken (Exchange)',\n elements: [\n {\n code: 'apiKey',\n display: 'API Key',\n component: TextInputFormik,\n face: true,\n long: true\n },\n {\n code: 'privateKey',\n display: 'Private Key',\n component: SecretInputFormik\n }\n ],\n validationSchema: Yup.object().shape({\n apiKey: Yup.string()\n .max(100, 'Too long')\n .required(),\n privateKey: Yup.string()\n .max(100, 'Too long')\n .required()\n })\n}\n","import * as Yup from 'yup'\n\nimport TextInputFormik from 'src/components/inputs/formik/TextInput'\n\nexport default {\n code: 'mailgun',\n name: 'Mailgun',\n title: 'Mailgun (Email)',\n elements: [\n {\n code: 'apiKey',\n display: 'API Key',\n component: TextInputFormik\n },\n {\n code: 'domain',\n display: 'Domain',\n component: TextInputFormik\n },\n {\n code: 'fromEmail',\n display: 'From Email',\n component: TextInputFormik,\n face: true\n },\n {\n code: 'toEmail',\n display: 'To Email',\n component: TextInputFormik,\n face: true\n }\n ],\n validationSchema: Yup.object().shape({\n apiKey: Yup.string()\n .max(100, 'Too long')\n .required(),\n domain: Yup.string()\n .max(100, 'Too long')\n .required(),\n fromEmail: Yup.string()\n .max(100, 'Too long')\n .email('Please input a valid email address')\n .required(),\n toEmail: Yup.string()\n .max(100, 'Too long')\n .email('Please input a valid email address')\n .required()\n })\n}\n","import * as Yup from 'yup'\n\nimport SecretInputFormik from 'src/components/inputs/formik/SecretInput'\nimport TextInputFormik from 'src/components/inputs/formik/TextInput'\n\nexport default {\n code: 'twilio',\n name: 'Twilio',\n title: 'Twilio (SMS)',\n elements: [\n {\n code: 'accountSid',\n display: 'Account SID',\n component: TextInputFormik\n },\n {\n code: 'authToken',\n display: 'Auth Token',\n component: SecretInputFormik\n },\n {\n code: 'fromNumber',\n display: 'Twilio Number (international format)',\n component: TextInputFormik,\n face: true\n },\n {\n code: 'toNumber',\n display: 'Notifications Number (international format)',\n component: TextInputFormik,\n face: true\n }\n ],\n validationSchema: Yup.object().shape({\n accountSid: Yup.string()\n .max(100, 'Too long')\n .required(),\n authToken: Yup.string()\n .max(100, 'Too long')\n .required(),\n fromNumber: Yup.string()\n .max(100, 'Too long')\n .required(),\n toNumber: Yup.string()\n .max(100, 'Too long')\n .required()\n })\n}\n","import bitgo from './bitgo'\nimport bitstamp from './bitstamp'\nimport blockcypher from './blockcypher'\nimport infura from './infura'\nimport itbit from './itbit'\nimport kraken from './kraken'\nimport mailgun from './mailgun'\nimport twilio from './twilio'\n\nexport default {\n [bitgo.code]: bitgo,\n [bitstamp.code]: bitstamp,\n [blockcypher.code]: blockcypher,\n [infura.code]: infura,\n [itbit.code]: itbit,\n [kraken.code]: kraken,\n [mailgun.code]: mailgun,\n [twilio.code]: twilio\n}\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 52,\n cy: 32,\n r: 32,\n fill: \"#F7931A\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"m66.1 27.4c0.6-4.3-2.6-6.5-7-8.1l1.4-5.8-3.5-0.9-1.4 5.6c-0.9-0.2-1.9-0.4-2.8-0.7l1.4-5.7-3.5-0.9-1.4 5.8c-0.8-0.2-1.5-0.3-2.2-0.5l0 0-4.8-1.2-0.9 3.8s2.6 0.6 2.6 0.6c1.4 0.4 1.7 1.3 1.6 2l-1.6 6.6c0.1 0 0.2 0.1 0.4 0.1-0.1 0-0.2-0.1-0.4-0.1l-2.3 9.2c-0.2 0.4-0.6 1.1-1.6 0.8 0 0.1-2.6-0.6-2.6-0.6l-1.7 4 4.6 1.1c0.9 0.2 1.7 0.4 2.5 0.6l-1.5 5.8 3.5 0.9 1.4-5.8c1 0.3 1.9 0.5 2.8 0.7l-1.4 5.7 3.5 0.9 1.5-5.8c6 1.1 10.5 0.7 12.4-4.7 1.5-4.4-0.1-6.9-3.2-8.5 2.3-0.5 4-2 4.5-5.2zm-8 11.2c-1.1 4.4-8.4 2-10.8 1.4l1.9-7.7c2.4 0.6 10 1.8 8.9 6.3zm1.1-11.3c-1 4-7.1 2-9.1 1.5l1.7-7c2 0.5 8.4 1.4 7.3 5.6z\",\n fill: \"#FFF\"\n});\n\nfunction SvgIconBitcoinColour(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 104,\n height: 64,\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgIconBitcoinColour);\nexport default __webpack_public_path__ + \"static/media/icon-bitcoin-colour.bd8da481.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#F7931A\",\n d: \"m0,0l29.7,0a39,39,0,0,0,0,64l-29.7,0zm52,0a32,32,0,0,0,0,64a32,32,0,0,0,0,-64m52,0l-29.7,0a39,39,0,0,1,0,64l29.7,0z\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n transform: \"rotate(-28 52 32)\",\n d: \"m66.103,27.444c0.637-4.258-2.605-6.547-7.038-8.074l1.438-5.768-3.511-0.875-1.4,5.616c-0.923-0.23-1.871-0.447-2.813-0.662l1.41-5.653-3.509-0.875-1.439,5.766c-0.764-0.174-1.514-0.346-2.242-0.527l0.004-0.018-4.842-1.209-0.934,3.75s2.605,0.597,2.55,0.634c1.422,0.355,1.679,1.296,1.636,2.042l-1.638,6.571c0.098,0.025,0.225,0.061,0.365,0.117-0.117-0.029-0.242-0.061-0.371-0.092l-2.296,9.205c-0.174,0.432-0.615,1.08-1.609,0.834,0.035,0.051-2.552-0.637-2.552-0.637l-1.743,4.019,4.569,1.139c0.85,0.213,1.683,0.436,2.503,0.646l-1.453,5.834,3.507,0.875,1.439-5.772c0.958,0.26,1.888,0.5,2.798,0.726l-1.434,5.745,3.511,0.875,1.453-5.823c5.987,1.133,10.489,0.676,12.384-4.739,1.527-4.36-0.076-6.875-3.226-8.515,2.294-0.529,4.022-2.038,4.483-5.155zm-8.022,11.249c-1.085,4.36-8.426,2.003-10.806,1.412l1.928-7.729c2.38,0.594,10.012,1.77,8.878,6.317zm1.086-11.312c-0.99,3.966-7.1,1.951-9.082,1.457l1.748-7.01c1.982,0.494,8.365,1.416,7.334,5.553z\"\n});\n\nfunction SvgIconBitcoincashColour(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 104,\n height: 64,\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgIconBitcoincashColour);\nexport default __webpack_public_path__ + \"static/media/icon-bitcoincash-colour.3b27f3ed.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 1000,\n cy: 1000,\n r: 1000,\n fill: \"#2573c2\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#fff\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1652.6 736.8a143.65 143.65 0 0 0-19.2-63.6c-10-20-27.8-35.6-48.6-43.6a143.51 143.51 0 0 0-68.4-15H628.8l-63.6 190.6h804.2l-127 389.6h-804l-63.6 190.6h891.8a246.33 246.33 0 0 0 77.8-15c25-14.2 53.6-28.6 77.8-48.6a382.69 382.69 0 0 0 63.6-63.6 432.2 432.2 0 0 0 39.2-73.4l117.8-370.4a137.38 137.38 0 0 0 9.8-77.6z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M882.2 911.6H409l-63.6 176.2h478z\"\n}));\n\nfunction SvgIconDashColour(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 2000 2000\",\n width: 2500,\n height: 2500,\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgIconDashColour);\nexport default __webpack_public_path__ + \"static/media/icon-dash-colour.e01c021b.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"polygon\", {\n fill: \"#343434\",\n points: \"127.9611 0 125.1661 9.5 125.1661 285.168 127.9611 287.958 255.9231 212.32\"\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n fill: \"#8C8C8C\",\n points: \"127.962 0 0 212.32 127.962 287.959 127.962 154.158\"\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n fill: \"#3C3C3B\",\n points: \"127.9611 312.1866 126.3861 314.1066 126.3861 412.3056 127.9611 416.9066 255.9991 236.5866\"\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n fill: \"#8C8C8C\",\n points: \"127.962 416.9052 127.962 312.1852 0 236.5852\"\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n fill: \"#141414\",\n points: \"127.9611 287.9577 255.9211 212.3207 127.9611 154.1587\"\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n fill: \"#393939\",\n points: \"0.0009 212.3208 127.9609 287.9578 127.9609 154.1588\"\n}));\n\nfunction SvgIconEthereumColour(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"256px\",\n height: \"417px\",\n viewBox: \"0 0 256 417\",\n preserveAspectRatio: \"xMidYMid\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgIconEthereumColour);\nexport default __webpack_public_path__ + \"static/media/icon-ethereum-colour.761723a2.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"circle\", {\n fill: \"#989898\",\n cx: 52,\n cy: 32,\n r: 32\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"m46.92598,12.31703l-4.97801,18.8088l-3.42705,1.32711l-1.64691,6.17189l3.42705,-1.29514l-2.8461,10.76083l30.60893,0l2.09993,-7.98401l-18.42505,0l2.09993,-7.82412l3.3631,-1.26316l1.6469,-6.17188l-3.36309,1.29513l3.6509,-13.83611l-12.21053,0z\"\n});\n\nfunction SvgIconLitecoinColour(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 104,\n height: 64,\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgIconLitecoinColour);\nexport default __webpack_public_path__ + \"static/media/icon-litecoin-colour.bd861b5e.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"style\", {\n type: \"text/css\"\n}, \"\\n\\t.st0{fill:#231F20;}\\n\\t.st1{fill:#F4B728;}\\n\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st0\",\n d: \"M245.4,20C121.1,20,20,121.1,20,245.4s101.1,225.4,225.4,225.4s225.4-101.1,225.4-225.4S369.7,20,245.4,20z M245.4,433.6c-103.8,0-188.2-84.4-188.2-188.2S141.6,57.2,245.4,57.2s188.2,84.4,188.2,188.2S349.2,433.6,245.4,433.6z\"\n});\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"st1\",\n cx: 245.4,\n cy: 245.4,\n r: 177.6\n});\n\nvar _ref5 = /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"st0\",\n points: \"165,315.5 165,349.9 226.5,349.9 226.5,387.6 264.3,387.6 264.3,349.9 325.8,349.9 325.8,304.4 230.4,304.4 325.8,175 325.8,140.6 264.3,140.6 264.3,103 226.5,103 226.5,140.6 165,140.6 165,186.2 260.4,186.2 \"\n});\n\nfunction SvgIconZcashColour(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 493.3 490.2\",\n style: {\n enableBackground: \"new 0 0 493.3 490.2\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), _ref2, title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"headerArtboard 7\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref3, _ref4, _ref5);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgIconZcashColour);\nexport default __webpack_public_path__ + \"static/media/icon-zcash-colour.68b1c20b.svg\";\nexport { ForwardRef as ReactComponent };","import { makeStyles } from '@material-ui/core'\nimport React from 'react'\n\nimport { Button } from 'src/components/buttons'\nimport { H1, P } from 'src/components/typography'\nimport { ReactComponent as BitcoinLogo } from 'src/styling/logos/icon-bitcoin-colour.svg'\nimport { ReactComponent as BitcoinCashLogo } from 'src/styling/logos/icon-bitcoincash-colour.svg'\nimport { ReactComponent as DashLogo } from 'src/styling/logos/icon-dash-colour.svg'\nimport { ReactComponent as EthereumLogo } from 'src/styling/logos/icon-ethereum-colour.svg'\nimport { ReactComponent as LitecoinLogo } from 'src/styling/logos/icon-litecoin-colour.svg'\nimport { ReactComponent as ZCashLogo } from 'src/styling/logos/icon-zcash-colour.svg'\n\nconst styles = {\n logo: {\n maxHeight: 80,\n maxWidth: 200\n },\n title: {\n margin: [[24, 0, 32, 0]]\n },\n text: {\n margin: 0\n },\n button: {\n marginTop: 'auto',\n marginBottom: 58\n },\n modalContent: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n padding: [[0, 42]],\n flex: 1\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst getLogo = code => {\n switch (code) {\n case 'BTC':\n return BitcoinLogo\n case 'BCH':\n return BitcoinCashLogo\n case 'DASH':\n return DashLogo\n case 'ETH':\n return EthereumLogo\n case 'LTC':\n return LitecoinLogo\n case 'ZEC':\n return ZCashLogo\n default:\n return null\n }\n}\n\nconst WizardSplash = ({ code, name, onContinue }) => {\n const classes = useStyles()\n const Logo = getLogo(code)\n\n return (\n
\n \n

Enable {name}

\n

\n You are about to enable {name} on your system. This will allow you to\n use this cryptocurrency on your machines. To be able to do that, you’ll\n have to set up all the necessary 3rd party services.\n

\n \n
\n )\n}\n\nexport default WizardSplash\n","import { makeStyles, Grid } from '@material-ui/core'\nimport classnames from 'classnames'\nimport { Formik, Form, FastField } from 'formik'\nimport * as R from 'ramda'\nimport React from 'react'\n\nimport { Button } from 'src/components/buttons'\n\nconst styles = {\n button: {\n margin: [['auto', 0, 32, 'auto']]\n },\n form: {\n flex: 1,\n display: 'flex',\n flexDirection: 'column'\n },\n grid: {\n marginBottom: 24,\n marginTop: 12\n }\n}\n\nconst useStyles = makeStyles(styles)\nconst FormRenderer = ({\n validationSchema,\n elements,\n value,\n save,\n buttonLabel = 'Save changes',\n buttonClass,\n xs = 12\n}) => {\n const classes = useStyles()\n\n const initialValues = R.compose(\n R.mergeAll,\n R.map(({ code }) => ({ [code]: (value && value[code]) ?? '' }))\n )(elements)\n\n const values = R.merge(initialValues, value)\n\n return (\n \n
\n \n {elements.map(({ component, code, display, inputProps }) => (\n \n \n \n ))}\n \n \n {buttonLabel}\n \n \n \n )\n}\n\nexport default FormRenderer\n","import { errorColor } from 'src/styling/variables'\n\nconst LABEL_WIDTH = 150\n\nexport default {\n title: {\n margin: [[0, 0, 12, 0]]\n },\n subtitle: {\n margin: [[32, 0, 21, 0]]\n },\n error: {\n color: errorColor\n },\n button: {\n marginLeft: 'auto'\n },\n submit: {\n display: 'flex',\n flexDirection: 'row',\n margin: [['auto', 0, 24]]\n },\n radioGroup: {\n flexDirection: 'row'\n },\n radioLabel: {\n width: LABEL_WIDTH,\n height: 48\n },\n radio: {\n padding: 4,\n margin: 4\n },\n setupNew: {\n display: 'flex',\n alignItems: 'center',\n height: 48\n },\n picker: {\n width: LABEL_WIDTH\n }\n}\n","import { makeStyles } from '@material-ui/core'\nimport classnames from 'classnames'\nimport * as R from 'ramda'\nimport React, { useReducer, useEffect } from 'react'\n\nimport ErrorMessage from 'src/components/ErrorMessage'\nimport Stepper from 'src/components/Stepper'\nimport { Button } from 'src/components/buttons'\nimport { RadioGroup, Autocomplete } from 'src/components/inputs'\nimport { H4, Info2 } from 'src/components/typography'\nimport FormRenderer from 'src/pages/Services/FormRenderer'\nimport schema from 'src/pages/Services/schemas'\nimport { startCase } from 'src/utils/string'\n\nimport styles from './WizardStep.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst initialState = {\n form: null,\n selected: null,\n isNew: false,\n iError: false\n}\n\nconst reducer = (state, action) => {\n switch (action.type) {\n case 'select':\n return {\n form: null,\n selected: action.selected,\n isNew: null,\n iError: false\n }\n case 'new':\n return { form: state.form, selected: null, isNew: true, iError: false }\n case 'form':\n return {\n form: action.form,\n selected: action.form.code,\n isNew: true,\n iError: false\n }\n case 'error':\n return R.merge(state, { innerError: true })\n case 'reset':\n return initialState\n default:\n throw new Error()\n }\n}\n\nconst WizardStep = ({\n type,\n name,\n step,\n error,\n lastStep,\n onContinue,\n filled,\n unfilled,\n getValue\n}) => {\n const classes = useStyles()\n const [{ innerError, selected, form, isNew }, dispatch] = useReducer(\n reducer,\n initialState\n )\n\n useEffect(() => {\n dispatch({ type: 'reset' })\n }, [step])\n\n const innerContinue = (config, account) => {\n if (!config || !config[type]) {\n return dispatch({ type: 'error' })\n }\n onContinue(config, account)\n }\n\n const label = lastStep ? 'Finish' : 'Next'\n const displayName = name ?? type\n const subtitleClass = {\n [classes.subtitle]: true,\n [classes.error]: innerError\n }\n\n return (\n <>\n {startCase(type)}\n \n

\n Select a {displayName} or set up a new one\n

\n {\n dispatch({ type: 'select', selected: it })\n }}\n labelClassName={classes.radioLabel}\n radioClassName={classes.radio}\n />\n
\n {!R.isEmpty(unfilled) && !R.isNil(unfilled) && (\n {\n dispatch({ type: 'new' })\n }}\n labelClassName={classes.radioLabel}\n radioClassName={classes.radio}\n options={[{ display: 'Set up new', code: true }]}\n />\n )}\n {isNew && (\n {\n dispatch({ type: 'form', form: it })\n }}\n />\n )}\n
\n {form && (\n innerContinue({ [type]: form.code }, { [form.code]: it })}\n elements={schema[form.code].elements}\n validationSchema={schema[form.code].validationSchema}\n value={getValue(form.code)}\n buttonLabel={label}\n />\n )}\n {!form && (\n
\n {error && Failed to save}\n innerContinue({ [type]: selected })}>\n {label}\n \n
\n )}\n \n )\n}\n\nexport default WizardStep\n","import * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport Modal from 'src/components/Modal'\nimport schema from 'src/pages/Services/schemas'\nimport { toNamespace } from 'src/utils/config'\n\nimport WizardSplash from './WizardSplash'\nimport WizardStep from './WizardStep'\n\nconst LAST_STEP = 4\nconst MODAL_WIDTH = 554\n\nconst contains = crypto => R.compose(R.contains(crypto), R.prop('cryptos'))\nconst sameClass = type => R.propEq('class', type)\nconst filterConfig = (crypto, type) =>\n R.filter(it => sameClass(type)(it) && contains(crypto)(it))\n\nconst getItems = (accountsConfig, accounts, type, crypto) => {\n const fConfig = filterConfig(crypto, type)(accountsConfig)\n const find = code => accounts && accounts[code]\n\n const [filled, unfilled] = R.partition(({ code }) => {\n const account = find(code)\n if (!schema[code]) return true\n\n const { validationSchema } = schema[code]\n return validationSchema.isValidSync(account)\n })(fConfig)\n\n return { filled, unfilled }\n}\n\nconst Wizard = ({ coin, onClose, accountsConfig, accounts, save, error }) => {\n const [{ step, config, accountsToSave }, setState] = useState({\n step: 0,\n config: { active: true },\n accountsToSave: {}\n })\n\n const title = `Enable ${coin.display}`\n const isLastStep = step === LAST_STEP\n\n const tickers = { filled: filterConfig(coin.code, 'ticker')(accountsConfig) }\n const wallets = getItems(accountsConfig, accounts, 'wallet', coin.code)\n const exchanges = getItems(accountsConfig, accounts, 'exchange', coin.code)\n const zeroConfs = getItems(accountsConfig, accounts, 'zeroConf', coin.code)\n\n const getValue = code => R.find(R.propEq('code', code))(accounts)\n\n const onContinue = async (stepConfig, stepAccount) => {\n const newConfig = R.merge(config, stepConfig)\n const newAccounts = stepAccount\n ? R.merge(accountsToSave, stepAccount)\n : accountsToSave\n\n if (isLastStep) {\n return save(toNamespace(coin.code, newConfig), newAccounts)\n }\n\n setState({\n step: step + 1,\n config: newConfig,\n accountsToSave: newAccounts\n })\n }\n\n const getStepData = () => {\n switch (step) {\n case 1:\n return { type: 'ticker', ...tickers }\n case 2:\n return { type: 'wallet', ...wallets }\n case 3:\n return { type: 'exchange', ...exchanges }\n case 4:\n return { type: 'zeroConf', name: 'zero conf', ...zeroConfs }\n default:\n return null\n }\n }\n\n return (\n \n {step === 0 && (\n onContinue()}\n />\n )}\n {step !== 0 && (\n \n )}\n \n )\n}\n\nexport default Wizard\n","import * as R from 'ramda'\nimport * as Yup from 'yup'\n\nimport Autocomplete from 'src/components/inputs/formik/Autocomplete.js'\n\nconst filterClass = type => R.filter(it => it.class === type)\nconst filterCoins = ({ id }) => R.filter(it => R.contains(id)(it.cryptos))\n\nconst WalletSchema = Yup.object().shape({\n ticker: Yup.string().required(),\n wallet: Yup.string().required(),\n exchange: Yup.string().required(),\n zeroConf: Yup.string().required()\n})\n\nconst getElements = (cryptoCurrencies, accounts, onChange, wizard = false) => {\n const widthAdjust = wizard ? 11 : 0\n const viewCryptoCurrency = it =>\n R.compose(\n R.prop(['display']),\n R.find(R.propEq('code', it))\n )(cryptoCurrencies)\n\n const filterOptions = type => filterClass(type)(accounts || [])\n\n const getDisplayName = type => it =>\n R.compose(\n R.prop('display'),\n R.find(R.propEq('code', it))\n )(filterOptions(type))\n\n const getOptions = R.curry((option, it) =>\n filterCoins(it)(filterOptions(option))\n )\n\n return [\n {\n name: 'id',\n header: 'Cryptocurrency',\n width: 180 - widthAdjust,\n view: viewCryptoCurrency,\n size: 'sm',\n editable: false\n },\n {\n name: 'ticker',\n size: 'sm',\n stripe: true,\n view: getDisplayName('ticker'),\n width: 190 - widthAdjust,\n input: Autocomplete,\n inputProps: {\n options: getOptions('ticker'),\n valueProp: 'code',\n getLabel: R.path(['display']),\n optionsLimit: null\n }\n },\n {\n name: 'wallet',\n size: 'sm',\n stripe: true,\n view: getDisplayName('wallet'),\n width: 190 - widthAdjust,\n input: Autocomplete,\n inputProps: {\n options: getOptions('wallet'),\n valueProp: 'code',\n getLabel: R.path(['display']),\n optionsLimit: null,\n onChange\n }\n },\n {\n name: 'exchange',\n size: 'sm',\n stripe: true,\n view: getDisplayName('exchange'),\n width: 190 - widthAdjust,\n input: Autocomplete,\n inputProps: {\n options: getOptions('exchange'),\n valueProp: 'code',\n getLabel: R.path(['display']),\n optionsLimit: null,\n onChange\n }\n },\n {\n name: 'zeroConf',\n size: 'sm',\n stripe: true,\n view: getDisplayName('zeroConf'),\n input: Autocomplete,\n width: 190 - widthAdjust,\n inputProps: {\n options: getOptions('zeroConf'),\n valueProp: 'code',\n getLabel: R.path(['display']),\n optionsLimit: null,\n onChange\n }\n }\n ]\n}\n\nexport { WalletSchema, getElements, filterClass }\n","import * as R from 'ramda'\nimport * as Yup from 'yup'\n\nimport Autocomplete from 'src/components/inputs/formik/Autocomplete.js'\n\nconst getFields = (getData, names, onChange, auxElements = []) => {\n return R.filter(\n it => R.includes(it.name, names),\n allFields(getData, onChange, auxElements)\n )\n}\n\nconst allFields = (getData, onChange, auxElements = []) => {\n const getView = (data, code, compare) => it => {\n if (!data) return ''\n\n return R.compose(\n R.prop(code),\n R.find(R.propEq(compare ?? 'code', it))\n )(data)\n }\n\n const displayCodeArray = data => it => {\n if (!it) return it\n\n return R.compose(R.join(', '), R.map(getView(data, 'code')))(it)\n }\n\n const overridenMachines = R.map(override => override.machine, auxElements)\n\n const suggestionFilter = it =>\n R.differenceWith((x, y) => x.deviceId === y, it, overridenMachines)\n\n const machineData = getData(['machines'])\n const countryData = getData(['countries'])\n const currencyData = getData(['currencies'])\n const languageData = getData(['languages'])\n const cryptoData = getData(['cryptoCurrencies'])\n\n const findSuggestion = it => {\n const machine = R.find(R.propEq('deviceId', it.machine))(machineData)\n return machine ? [machine] : []\n }\n\n return [\n {\n name: 'machine',\n width: 200,\n size: 'sm',\n view: getView(machineData, 'name', 'deviceId'),\n input: Autocomplete,\n inputProps: {\n options: it =>\n R.concat(findSuggestion(it))(suggestionFilter(machineData)),\n valueProp: 'deviceId',\n getLabel: R.path(['name'])\n }\n },\n {\n name: 'country',\n width: 200,\n size: 'sm',\n view: getView(countryData, 'display'),\n input: Autocomplete,\n inputProps: {\n options: countryData,\n valueProp: 'code',\n getLabel: R.path(['display'])\n }\n },\n {\n name: 'fiatCurrency',\n width: 150,\n size: 'sm',\n view: getView(currencyData, 'code'),\n input: Autocomplete,\n inputProps: {\n options: currencyData,\n valueProp: 'code',\n getLabel: R.path(['code'])\n }\n },\n {\n name: 'languages',\n width: 240,\n size: 'sm',\n view: displayCodeArray(languageData),\n input: Autocomplete,\n inputProps: {\n options: languageData,\n valueProp: 'code',\n getLabel: R.path(['display']),\n multiple: true\n }\n },\n {\n name: 'cryptoCurrencies',\n width: 290,\n size: 'sm',\n view: displayCodeArray(cryptoData),\n input: Autocomplete,\n inputProps: {\n options: cryptoData,\n valueProp: 'code',\n getLabel: R.path(['code']),\n multiple: true,\n optionsLimit: null,\n onChange\n }\n }\n ]\n}\n\nconst mainFields = (auxData, configureCoin) => {\n const getData = R.path(R.__, auxData)\n\n return getFields(\n getData,\n ['country', 'fiatCurrency', 'languages', 'cryptoCurrencies'],\n configureCoin\n )\n}\n\nconst overrides = (auxData, auxElements, configureCoin) => {\n const getData = R.path(R.__, auxData)\n\n return getFields(\n getData,\n ['machine', 'country', 'languages', 'cryptoCurrencies'],\n configureCoin,\n auxElements\n )\n}\n\nconst LocaleSchema = Yup.object().shape({\n country: Yup.string()\n .label('Country')\n .required(),\n fiatCurrency: Yup.string()\n .label('Fiat Currency')\n .required(),\n languages: Yup.array()\n .label('Languages')\n .required()\n .max(4),\n cryptoCurrencies: Yup.array()\n .label('Crypto Currencies')\n .required()\n})\n\nconst OverridesSchema = Yup.object().shape({\n machine: Yup.string()\n .label('Machine')\n .required(),\n country: Yup.string()\n .label('Country')\n .required(),\n languages: Yup.array()\n .label('Languages')\n .required(),\n cryptoCurrencies: Yup.array()\n .label('Crypto Currencies')\n .required()\n})\n\nconst localeDefaults = {\n country: '',\n fiatCurrency: '',\n languages: [],\n cryptoCurrencies: []\n}\n\nconst overridesDefaults = {\n machine: '',\n country: '',\n languages: [],\n cryptoCurrencies: []\n}\n\nexport {\n mainFields,\n overrides,\n LocaleSchema,\n OverridesSchema,\n localeDefaults,\n overridesDefaults\n}\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core/styles'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport Modal from 'src/components/Modal'\nimport { Link } from 'src/components/buttons'\nimport { Table as EditableTable } from 'src/components/editableTable'\nimport Section from 'src/components/layout/Section'\nimport TitleSection from 'src/components/layout/TitleSection'\nimport { P } from 'src/components/typography'\nimport Wizard from 'src/pages/Wallet/Wizard'\nimport { WalletSchema } from 'src/pages/Wallet/helper'\nimport { fromNamespace, toNamespace, namespaces } from 'src/utils/config'\n\nimport { styles } from './Locales.styles'\nimport {\n mainFields,\n overrides,\n LocaleSchema,\n OverridesSchema,\n localeDefaults,\n overridesDefaults\n} from './helper'\n\nconst useStyles = makeStyles(styles)\n\nconst GET_DATA = gql`\n query getData {\n config\n accounts\n accountsConfig {\n code\n display\n class\n cryptos\n }\n currencies {\n code\n display\n }\n countries {\n code\n display\n }\n cryptoCurrencies {\n code\n display\n }\n languages {\n code\n display\n }\n machines {\n name\n deviceId\n }\n }\n`\n\nconst SAVE_CONFIG = gql`\n mutation Save($config: JSONObject) {\n saveConfig(config: $config)\n }\n`\n\nconst FiatCurrencyChangeAlert = ({ open, close, save }) => {\n const classes = useStyles()\n\n return (\n \n

\n Please note that all values you set that were based on your prior fiat\n currency are still the same. If you need to adjust these to reflect the\n new fiat currency (such as minimum transaction amounts, fixed fees, and\n compliance triggers, for example), please do so now.\n

\n

\n Also, if you have cash-out enabled, you must define new dispenser bill\n counts for the new currency for cash-out on the new currency to work.\n

\n
\n \n Cancel\n \n \n Save\n \n
\n \n )\n}\n\nconst Locales = ({ name: SCREEN_KEY }) => {\n const [wizard, setWizard] = useState(false)\n const [onChangeFunction, setOnChangeFunction] = useState(null)\n const [isEditingDefault, setEditingDefault] = useState(false)\n const [isEditingOverrides, setEditingOverrides] = useState(false)\n const { data } = useQuery(GET_DATA)\n const [saveConfig, { error }] = useMutation(SAVE_CONFIG, {\n onCompleted: () => setWizard(false),\n refetchQueries: () => ['getData']\n })\n\n const [dataToSave, setDataToSave] = useState(null)\n\n const config = data?.config && fromNamespace(SCREEN_KEY)(data.config)\n const wallets = data?.config && fromNamespace(namespaces.WALLETS)(data.config)\n\n const accountsConfig = data?.accountsConfig\n const accounts = data?.accounts ?? []\n const cryptoCurrencies = data?.cryptoCurrencies ?? []\n const locale = config && !R.isEmpty(config) ? config : localeDefaults\n const localeOverrides = locale.overrides ?? []\n\n const handleSave = it => {\n const newConfig = toNamespace(SCREEN_KEY)(it.locale[0])\n\n if (\n config.fiatCurrency &&\n newConfig.locale_fiatCurrency !== config.fiatCurrency\n )\n return setDataToSave(newConfig)\n\n return save(newConfig)\n }\n\n const save = config => {\n setDataToSave(null)\n return saveConfig({ variables: { config } })\n }\n\n const saveOverrides = it => {\n const config = toNamespace(SCREEN_KEY)(it)\n return saveConfig({ variables: { config } })\n }\n\n const onChangeCoin = (prev, curr, setValue) => {\n const coin = R.difference(curr, prev)[0]\n if (!coin) return setValue(curr)\n\n const namespaced = fromNamespace(coin)(wallets)\n if (!WalletSchema.isValidSync(namespaced)) {\n setOnChangeFunction(() => () => setValue(curr))\n setWizard(coin)\n return\n }\n\n setValue(curr)\n }\n\n const onEditingDefault = (it, editing) => setEditingDefault(editing)\n const onEditingOverrides = (it, editing) => setEditingOverrides(editing)\n\n const wizardSave = it =>\n save(toNamespace(namespaces.WALLETS)(it)).then(it => {\n onChangeFunction()\n setOnChangeFunction(null)\n return it\n })\n\n return (\n <>\n setDataToSave(null)}\n save={() => dataToSave && save(dataToSave)}\n />\n \n
\n \n
\n
\n m.deviceId) ?? [],\n localeOverrides?.map(o => o.machine) ?? []\n )}\n setEditing={onEditingOverrides}\n forceDisable={isEditingDefault}\n />\n
\n {wizard && (\n setWizard(false)}\n save={wizardSave}\n error={error?.message}\n cryptoCurrencies={cryptoCurrencies}\n userAccounts={data?.config?.accounts}\n accounts={accounts}\n accountsConfig={accountsConfig}\n />\n )}\n \n )\n}\n\nexport default Locales\n","const styles = {\n rightAligned: {\n marginTop: '20px',\n marginLeft: 'auto',\n marginBottom: '20px'\n },\n rightLink: {\n marginLeft: '20px'\n }\n}\n\nexport { styles }\n","import Locales from './Locales'\n\nexport default Locales\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Symbols\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"pop-up/action/download-logs/date-range-copy-3\",\n transform: \"translate(-117.000000, -116.000000)\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"arrow-download-logs\",\n transform: \"translate(128.500000, 124.500000) rotate(-90.000000) translate(-128.500000, -124.500000) translate(121.000000, 114.000000)\"\n}, /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Path-3\",\n points: \"0 13.3571429 7.14285714 20.5 14.2857143 13.3571429\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 7.14285714,\n y1: 0.142857143,\n x2: 7.14285714,\n y2: 20.1428571,\n id: \"Path-4\"\n}))));\n\nfunction SvgDownloadLogs(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"23px\",\n height: \"17px\",\n viewBox: \"0 0 23 17\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"arrow download logs\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgDownloadLogs);\nexport default __webpack_public_path__ + \"static/media/download_logs.219c88ac.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/download/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/sf-small/wizzard\",\n stroke: \"#FFFFFF\"\n}, /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Path-3\",\n points: \"3.6 5.4 6 7.8 8.4 5.4\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 6,\n y1: 0.5,\n x2: 6,\n y2: 7.4,\n id: \"Path-4\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0,10 L0,10 C0,10.9942 0.8058,11.8 1.8,11.8 L10.2,11.8 C11.1942,11.8 12,10.9942 12,10\",\n id: \"Stroke-1\"\n})));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.81edd31f.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/download/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/sf-small/wizzard\",\n stroke: \"#1B2559\"\n}, /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Path-3\",\n points: \"3.6 5.4 6 7.8 8.4 5.4\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 6,\n y1: 0.5,\n x2: 6,\n y2: 7.4,\n id: \"Path-4\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0,10 L0,10 C0,10.9942 0.8058,11.8 1.8,11.8 L10.2,11.8 C11.1942,11.8 12,10.9942 12,10\",\n id: \"Stroke-1\"\n})));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.13543418.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Symbols\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"pop-up/action/download-logs/date-range-copy-2\",\n transform: \"translate(-20.000000, -187.000000)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/sf-contain-b-copy-5\",\n transform: \"translate(30.000000, 197.000000) rotate(-270.000000) translate(-30.000000, -197.000000) translate(20.000000, 187.000000)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/sf-small/wizzard\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(6.666667, 6.000000)\",\n id: \"Group\"\n}, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Path-3\",\n stroke: \"#1B2559\",\n strokeWidth: 2,\n points: \"0 4.83333333 3.33333333 8.16666667 6.66666667 4.83333333\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 3.33333333,\n y1: 0.25,\n x2: 3.33333333,\n y2: 6.5,\n id: \"Path-4\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n})))))));\n\nfunction SvgMonthChange(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgMonthChange);\nexport default __webpack_public_path__ + \"static/media/month_change.58940268.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Symbols\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"pop-up/action/download-logs/date-range-copy-2\",\n transform: \"translate(-20.000000, -187.000000)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/sf-contain-b-copy-5\",\n transform: \"translate(30.000000, 197.000000) rotate(270.000000) translate(-30.000000, -197.000000) translate(20.000000, 187.000000)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/sf-small/wizzard\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(6.666667, 6.000000)\",\n id: \"Group\"\n}, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Path-3\",\n stroke: \"#1B2559\",\n strokeWidth: 2,\n points: \"0 4.83333333 3.33333333 8.16666667 6.66666667 4.83333333\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 3.33333333,\n y1: 0.25,\n x2: 3.33333333,\n y2: 6.5,\n id: \"Path-4\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n})))))));\n\nfunction SvgMonthChangeRight(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgMonthChangeRight);\nexport default __webpack_public_path__ + \"static/media/month_change_right.0c3eb9a1.svg\";\nexport { ForwardRef as ReactComponent };","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React from 'react'\n\nimport typographyStyles from 'src/components/typography/styles'\nimport {\n primaryColor,\n spring2,\n spring3,\n disabledColor\n} from 'src/styling/variables'\n\nconst { label1 } = typographyStyles\n\nconst styles = {\n wrapper: {\n height: 26,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'relative',\n overflow: 'hidden'\n },\n button: {\n outline: 'none',\n extend: label1,\n border: 'none',\n cursor: 'pointer',\n backgroundColor: 'transparent',\n color: primaryColor,\n zIndex: 2\n },\n lowerBound: {\n left: '50%'\n },\n upperBound: {\n right: '50%'\n },\n selected: {\n width: 26,\n height: 26,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: spring2,\n borderRadius: '50%',\n position: 'absolute',\n zIndex: 1\n },\n between: {\n position: 'absolute',\n width: '100%',\n height: '100%',\n zIndex: 0,\n backgroundColor: spring3\n },\n disabled: {\n color: disabledColor,\n cursor: 'default'\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst Tile = ({\n isLowerBound,\n isUpperBound,\n isBetween,\n isDisabled,\n children,\n ...props\n}) => {\n const classes = useStyles()\n const selected = isLowerBound || isUpperBound\n\n const rangeClasses = {\n [classes.between]: isBetween && !(isLowerBound && isUpperBound),\n [classes.lowerBound]: isLowerBound && !isUpperBound,\n [classes.upperBound]: isUpperBound && !isLowerBound\n }\n\n const buttonWrapperClasses = {\n [classes.wrapper]: true,\n [classes.selected]: selected\n }\n\n const buttonClasses = {\n [classes.button]: true,\n [classes.disabled]: isDisabled\n }\n\n return (\n
\n
\n
\n \n
\n
\n )\n}\n\nexport default Tile\n","import { makeStyles } from '@material-ui/core/styles'\nimport moment from 'moment'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport typographyStyles from 'src/components/typography/styles'\nimport { ReactComponent as Arrow } from 'src/styling/icons/arrow/month_change.svg'\nimport { ReactComponent as RightArrow } from 'src/styling/icons/arrow/month_change_right.svg'\nimport { primaryColor, zircon } from 'src/styling/variables'\n\nimport Tile from './Tile'\n\nconst { p, label2 } = typographyStyles\n\nconst styles = {\n wrapper: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center'\n },\n button: {\n outline: 'none'\n },\n navbar: {\n extend: p,\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n width: '100%',\n padding: [[15, 15]],\n color: primaryColor,\n '& button': {\n display: 'flex',\n alignItems: 'center',\n padding: 0,\n border: 'none',\n backgroundColor: zircon,\n cursor: 'pointer',\n borderRadius: '50%',\n width: 20,\n height: 20,\n position: 'relative',\n overflow: 'hidden',\n '& svg': {\n position: 'absolute',\n left: 0\n }\n }\n },\n table: {\n borderCollapse: 'collapse',\n width: '100%',\n color: primaryColor,\n '& tr': {\n '&:first-child': {\n paddingLeft: 5\n },\n '&:last-child': {\n paddingRight: 5\n }\n },\n '& th, & td': {\n margin: 0,\n padding: [[3, 0, 3, 0]]\n },\n '& th': {\n extend: label2\n }\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst Calendar = ({ minDate, maxDate, handleSelect, ...props }) => {\n const [currentDisplayedMonth, setCurrentDisplayedMonth] = useState(moment())\n\n const classes = useStyles()\n\n const weekdays = moment.weekdaysMin().map(day => day.slice(0, 1))\n const monthLength = month =>\n Number.parseInt(\n moment(month)\n .endOf('month')\n .format('D')\n )\n\n const monthdays = month => {\n const lastMonth = moment(month).subtract(1, 'month')\n const lastMonthRange = R.range(\n 0,\n moment(month)\n .startOf('month')\n .weekday()\n ).reverse()\n const lastMonthDays = R.map(i =>\n moment(lastMonth)\n .endOf('month')\n .subtract(i, 'days')\n )(lastMonthRange)\n\n const thisMonthRange = R.range(0, monthLength(month))\n const thisMonthDays = R.map(i =>\n moment(month)\n .startOf('month')\n .add(i, 'days')\n )(thisMonthRange)\n\n const nextMonth = moment(month).add(1, 'month')\n const nextMonthRange = R.range(\n 0,\n 42 - lastMonthDays.length - thisMonthDays.length\n )\n const nextMonthDays = R.map(i =>\n moment(nextMonth)\n .startOf('month')\n .add(i, 'days')\n )(nextMonthRange)\n\n return R.concat(R.concat(lastMonthDays, thisMonthDays), nextMonthDays)\n }\n\n const getRow = (month, row) => monthdays(month).slice(row * 7 - 7, row * 7)\n\n const handleNavPrev = currentMonth => {\n const prevMonth = moment(currentMonth).subtract(1, 'month')\n if (!minDate) setCurrentDisplayedMonth(prevMonth)\n else {\n setCurrentDisplayedMonth(\n prevMonth.isSameOrAfter(minDate, 'month')\n ? prevMonth\n : currentDisplayedMonth\n )\n }\n }\n const handleNavNext = currentMonth => {\n const nextMonth = moment(currentMonth).add(1, 'month')\n if (!maxDate) setCurrentDisplayedMonth(nextMonth)\n else {\n setCurrentDisplayedMonth(\n nextMonth.isSameOrBefore(maxDate, 'month')\n ? nextMonth\n : currentDisplayedMonth\n )\n }\n }\n\n return (\n
\n
\n handleNavPrev(currentDisplayedMonth)}>\n \n \n \n {`${currentDisplayedMonth.format(\n 'MMMM'\n )} ${currentDisplayedMonth.format('YYYY')}`}\n \n handleNavNext(currentDisplayedMonth)}>\n \n \n
\n \n \n \n {weekdays.map((day, key) => (\n \n ))}\n \n \n \n {R.range(1, 8).map((row, key) => (\n \n {getRow(currentDisplayedMonth, row).map((day, key) => (\n handleSelect(day, minDate, maxDate)}>\n \n {day.format('D')}\n \n \n ))}\n \n ))}\n \n
{day}
\n
\n )\n}\n\nexport default Calendar\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React, { useState, useEffect } from 'react'\n\nimport Calendar from './Calendar'\n\nconst styles = {\n wrapper: {\n backgroundColor: 'white',\n borderRadius: 10\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst DateRangePicker = ({ minDate, maxDate, className, onRangeChange }) => {\n const [from, setFrom] = useState(null)\n const [to, setTo] = useState(null)\n\n useEffect(() => {\n onRangeChange(from, to)\n }, [from, onRangeChange, to])\n\n const classes = useStyles()\n\n const handleSelect = (day, minDate, maxDate) => {\n if (\n (maxDate && day.isAfter(maxDate, 'day')) ||\n (minDate && day.isBefore(minDate, 'day'))\n )\n return\n\n if (from && !to && day.isBefore(from, 'day')) {\n setTo(from)\n setFrom(day)\n return\n }\n\n if (from && !to && day.isSameOrAfter(from, 'day')) {\n setTo(day)\n return\n }\n\n setFrom(day)\n setTo(null)\n }\n\n return (\n <>\n
\n \n
\n \n )\n}\n\nexport default DateRangePicker\n","import { useLazyQuery } from '@apollo/react-hooks'\nimport { makeStyles, ClickAwayListener } from '@material-ui/core'\nimport classnames from 'classnames'\nimport FileSaver from 'file-saver'\nimport moment from 'moment'\nimport * as R from 'ramda'\nimport React, { useState, useCallback } from 'react'\n\nimport { FeatureButton, Link } from 'src/components/buttons'\nimport { ReactComponent as Arrow } from 'src/styling/icons/arrow/download_logs.svg'\nimport { ReactComponent as DownloadInverseIcon } from 'src/styling/icons/button/download/white.svg'\nimport { ReactComponent as Download } from 'src/styling/icons/button/download/zodiac.svg'\nimport { primaryColor, offColor, zircon } from 'src/styling/variables'\n\nimport Popper from './Popper'\nimport DateRangePicker from './date-range-picker/DateRangePicker'\nimport { RadioGroup } from './inputs'\nimport typographyStyles from './typography/styles'\n\nconst { info1, label1, label2, h4 } = typographyStyles\n\nconst dateContainerStyles = {\n wrapper: {\n height: 46,\n width: 99\n },\n container: {\n display: 'flex'\n },\n monthWeekDayContainer: {\n display: 'flex',\n flexDirection: 'column'\n },\n label: {\n extend: label1,\n lineHeight: 1.33,\n color: primaryColor\n },\n bigNumber: {\n extend: info1,\n lineHeight: 1,\n marginRight: 7\n },\n monthYear: {\n extend: label2,\n lineHeight: 1.17,\n color: primaryColor\n },\n weekDay: {\n extend: label1,\n lineHeight: 1.33,\n color: offColor\n }\n}\n\nconst dateContainerUseStyles = makeStyles(dateContainerStyles)\n\nconst DateContainer = ({ date, children, ...props }) => {\n const classes = dateContainerUseStyles()\n\n return (\n
\n
{children}
\n {date && (\n <>\n
\n
{date.format('D')}
\n
\n {`${date.format(\n 'MMM'\n )} ${date.format('YYYY')}`}\n {date.format('dddd')}\n
\n
\n \n )}\n
\n )\n}\n\nconst styles = {\n popoverContent: {\n width: 280\n },\n popoverHeader: {\n extend: h4,\n padding: [[15, 15, 0, 15]]\n },\n radioButtonsContainer: {\n padding: [[5, 15, 5, 15]]\n },\n radioButtons: {\n display: 'flex',\n justifyContent: 'space-between',\n flexDirection: 'row',\n color: primaryColor\n },\n dateRangePickerShowing: {\n display: 'block',\n height: '100%'\n },\n dateRangePickerHidden: {\n display: 'none',\n height: 0\n },\n download: {\n padding: [[10, 15]]\n },\n dateContainerWrapper: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n position: 'relative',\n backgroundColor: zircon,\n padding: [[0, 15]],\n minHeight: 70\n },\n arrowContainer: {\n position: 'absolute',\n left: 125,\n top: 26\n },\n arrow: {\n margin: 'auto'\n }\n}\n\nconst useStyles = makeStyles(styles)\nconst ALL = 'all'\nconst RANGE = 'range'\n\nconst LogsDownloaderPopover = ({ name, query, args, title, getLogs }) => {\n const [selectedRadio, setSelectedRadio] = useState(ALL)\n const [range, setRange] = useState({ from: null, until: null })\n const [anchorEl, setAnchorEl] = useState(null)\n const [fetchLogs] = useLazyQuery(query, {\n onCompleted: data => createLogsFile(getLogs(data), range)\n })\n\n const classes = useStyles()\n\n const dateRangePickerClasses = {\n [classes.dateRangePickerShowing]: selectedRadio === RANGE,\n [classes.dateRangePickerHidden]: selectedRadio === ALL\n }\n\n const handleRadioButtons = evt => {\n const selectedRadio = R.path(['target', 'value'])(evt)\n setSelectedRadio(selectedRadio)\n if (selectedRadio === ALL) setRange({ from: null, until: null })\n }\n\n const handleRangeChange = useCallback(\n (from, until) => {\n setRange({ from, until })\n },\n [setRange]\n )\n\n const downloadLogs = (range, args, fetchLogs) => {\n if (selectedRadio === ALL) {\n fetchLogs({\n variables: {\n ...args\n }\n })\n }\n\n if (!range || !range.from) return\n if (range.from && !range.until) range.until = moment()\n\n if (selectedRadio === RANGE) {\n fetchLogs({\n variables: {\n ...args,\n from: range.from,\n until: range.until\n }\n })\n }\n }\n\n const createLogsFile = (logs, range) => {\n const formatDateFile = date => {\n return moment(date).format('YYYY-MM-DD_HH-mm')\n }\n\n const blob = new window.Blob([logs], {\n type: 'text/plain;charset=utf-8'\n })\n\n FileSaver.saveAs(\n blob,\n selectedRadio === ALL\n ? `${formatDateFile(new Date())}_${name}`\n : `${formatDateFile(range.from)}_${formatDateFile(range.until)}_${name}`\n )\n }\n\n const handleOpenRangePicker = event => {\n setAnchorEl(anchorEl ? null : event.currentTarget)\n }\n\n const handleClickAway = () => {\n setAnchorEl(null)\n }\n\n const radioButtonOptions = [\n { display: 'All logs', code: ALL },\n { display: 'Date range', code: RANGE }\n ]\n\n const open = Boolean(anchorEl)\n const id = open ? 'date-range-popover' : undefined\n\n return (\n \n
\n \n \n
\n
{title}
\n
\n \n
\n {selectedRadio === RANGE && (\n
\n
\n {range && (\n <>\n From\n
\n \n
\n To\n \n )}\n
\n \n
\n )}\n
\n downloadLogs(range, args, fetchLogs)}>\n Download\n \n
\n
\n
\n
\n
\n )\n}\n\nexport default LogsDownloaderPopover\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React, { memo } from 'react'\n\nconst useStyles = makeStyles({\n table: {\n // backgroundColor: tableHeaderColor,\n tableLayout: 'fixed',\n borderCollapse: 'separate',\n borderSpacing: '0 0'\n }\n})\n\nconst Table = memo(({ className, children, ...props }) => {\n const classes = useStyles()\n return (\n \n {children}\n
\n )\n})\n\nexport default Table\n","import React, { memo } from 'react'\n\nconst TableBody = memo(({ children, ...props }) => (\n {children}\n))\n\nexport default TableBody\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React, { memo } from 'react'\n\nimport { spacer } from 'src/styling/variables'\n\nconst useStyles = makeStyles({\n td: {\n padding: [[0, spacer * 3]]\n },\n alignRight: {\n textAlign: 'right'\n }\n})\n\nconst TableCell = memo(\n ({ colspan, rightAlign, className, children, ...props }) => {\n const classes = useStyles()\n const styles = {\n [classes.td]: true,\n [classes.alignRight]: rightAlign\n }\n\n return (\n \n {children}\n \n )\n }\n)\n\nexport default TableCell\n","import React, { memo } from 'react'\n\nconst TableHead = memo(({ children, ...props }) => (\n {children}\n))\n\nexport default TableHead\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React, { memo } from 'react'\n\nimport typographyStyles from 'src/components/typography/styles'\nimport {\n tableHeaderColor,\n tableHeaderHeight,\n spacer,\n white\n} from 'src/styling/variables'\n\nconst { tl2 } = typographyStyles\n\nconst useStyles = makeStyles({\n th: {\n extend: tl2,\n backgroundColor: tableHeaderColor,\n height: tableHeaderHeight,\n textAlign: 'left',\n color: white,\n padding: `0 ${spacer * 3}px`\n },\n alignRight: {\n textAlign: 'right'\n }\n})\n\nconst TableHeaderCell = memo(\n ({ rightAlign, children, className, ...props }) => {\n const classes = useStyles()\n const styles = {\n [classes.th]: true,\n [classes.alignRight]: rightAlign\n }\n\n return (\n \n {children}\n \n )\n }\n)\n\nexport default TableHeaderCell\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React, { memo } from 'react'\n\nimport typographyStyles from 'src/components/typography/styles'\nimport {\n tableCellColor,\n tableCellHeight,\n tableSmCellHeight,\n tableLgCellHeight,\n tableErrorColor,\n tableSuccessColor\n} from 'src/styling/variables'\n\nconst { info2, p } = typographyStyles\n\nconst useStyles = makeStyles({\n tr: {\n extend: p,\n padding: 4,\n height: tableCellHeight,\n backgroundColor: tableCellColor\n },\n lg: {\n extend: info2,\n height: tableLgCellHeight\n },\n sm: {\n height: tableSmCellHeight\n },\n error: {\n backgroundColor: tableErrorColor\n },\n success: {\n backgroundColor: tableSuccessColor\n }\n})\n\nconst TableRow = memo(\n ({ className, children, header, error, success, size = 'sm', ...props }) => {\n const classes = useStyles()\n const classnamesObj = {\n [classes.tr]: !header,\n [classes.sm]: !header && size === 'sm',\n [classes.lg]: !header && size === 'lg',\n [classes.error]: error,\n [classes.success]: success\n }\n\n return (\n \n {children}\n \n )\n }\n)\n\nexport default TableRow\n","import { useQuery } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core/styles'\nimport gql from 'graphql-tag'\nimport moment from 'moment'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport LogsDowloaderPopover from 'src/components/LogsDownloaderPopper'\nimport Title from 'src/components/Title'\nimport Sidebar from 'src/components/layout/Sidebar'\nimport {\n Table,\n TableHead,\n TableRow,\n TableHeader,\n TableBody,\n TableCell\n} from 'src/components/table'\nimport { Info3 } from 'src/components/typography'\n\nimport styles from './Logs.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst GET_MACHINES = gql`\n {\n machines {\n name\n deviceId\n }\n }\n`\n\nconst NUM_LOG_RESULTS = 500\n\nconst GET_MACHINE_LOGS_CSV = gql`\n query MachineLogs($deviceId: ID!, $limit: Int, $from: Date, $until: Date) {\n machineLogsCsv(\n deviceId: $deviceId\n limit: $limit\n from: $from\n until: $until\n )\n }\n`\n\nconst GET_MACHINE_LOGS = gql`\n query MachineLogs($deviceId: ID!, $limit: Int, $from: Date, $until: Date) {\n machineLogs(\n deviceId: $deviceId\n limit: $limit\n from: $from\n until: $until\n ) {\n logLevel\n id\n timestamp\n message\n }\n }\n`\n\nconst formatDate = date => {\n return moment(date).format('YYYY-MM-DD HH:mm')\n}\n\nconst Logs = () => {\n const classes = useStyles()\n\n const [selected, setSelected] = useState(null)\n const [saveMessage, setSaveMessage] = useState(null)\n\n const deviceId = selected?.deviceId\n\n const { data: machineResponse } = useQuery(GET_MACHINES)\n\n const { data: logsResponse } = useQuery(GET_MACHINE_LOGS, {\n variables: { deviceId, limit: NUM_LOG_RESULTS },\n skip: !selected,\n onCompleted: () => setSaveMessage('')\n })\n\n if (machineResponse?.machines?.length && !selected) {\n setSelected(machineResponse?.machines[0])\n }\n\n const isSelected = it => {\n return R.path(['deviceId'])(selected) === it.deviceId\n }\n\n return (\n <>\n
\n
\n Machine Logs\n {logsResponse && (\n
\n R.path(['machineLogsCsv'])(logs)}\n />\n {saveMessage}\n
\n )}\n
\n
\n
\n it.name}\n data={machineResponse?.machines || []}\n isSelected={isSelected}\n onClick={setSelected}\n />\n
\n \n \n \n Date\n Level\n \n \n \n \n {logsResponse &&\n logsResponse.machineLogs.map((log, idx) => (\n \n {formatDate(log.timestamp)}\n {log.logLevel}\n {log.message}\n \n ))}\n \n
\n
\n
\n \n )\n}\n\nexport default Logs\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core'\nimport gql from 'graphql-tag'\nimport React from 'react'\nimport * as Yup from 'yup'\n\nimport { Table as EditableTable } from 'src/components/editableTable'\nimport { CashOut } from 'src/components/inputs/cashbox/Cashbox'\nimport { NumberInput } from 'src/components/inputs/formik'\nimport TitleSection from 'src/components/layout/TitleSection'\nimport { fromNamespace } from 'src/utils/config'\n\nimport styles from './CashCassettes.styles.js'\n\nconst useStyles = makeStyles(styles)\n\nconst ValidationSchema = Yup.object().shape({\n name: Yup.string().required(),\n cassette1: Yup.number()\n .label('Cassette 1 (top)')\n .required()\n .integer()\n .min(0)\n .max(500),\n cassette2: Yup.number()\n .label('Cassette 2 (bottom)')\n .required()\n .integer()\n .min(0)\n .max(500)\n})\n\nconst GET_MACHINES_AND_CONFIG = gql`\n query getData {\n machines {\n name\n id: deviceId\n cassette1\n cassette2\n }\n config\n }\n`\n\nconst RESET_CASHOUT_BILLS = gql`\n mutation MachineAction(\n $deviceId: ID!\n $action: MachineAction!\n $cassette1: Int!\n $cassette2: Int!\n ) {\n machineAction(\n deviceId: $deviceId\n action: $action\n cassette1: $cassette1\n cassette2: $cassette2\n ) {\n deviceId\n cassette1\n cassette2\n }\n }\n`\n\nconst CashCassettes = () => {\n const classes = useStyles()\n\n const { data } = useQuery(GET_MACHINES_AND_CONFIG)\n\n const [resetCashOut, { error }] = useMutation(RESET_CASHOUT_BILLS, {\n refetchQueries: () => ['getData']\n })\n\n const cashout = data?.config && fromNamespace('cashOut')(data.config)\n const locale = data?.config && fromNamespace('locale')(data.config)\n const fiatCurrency = locale?.fiatCurrency\n\n const onSave = (...[, { id, cassette1, cassette2 }]) => {\n return resetCashOut({\n variables: {\n action: 'resetCashOutBills',\n deviceId: id,\n cassette1,\n cassette2\n }\n })\n }\n\n const getCashoutSettings = id => fromNamespace(id)(cashout)\n const isCashOutDisabled = ({ id }) => !getCashoutSettings(id).active\n\n const elements = [\n {\n name: 'name',\n header: 'Machine',\n width: 254,\n view: name => <>{name},\n input: ({ field: { value: name } }) => <>{name}\n },\n {\n name: 'cassette1',\n header: 'Cassette 1 (Top)',\n width: 265,\n stripe: true,\n view: (value, { id }) => (\n \n ),\n input: NumberInput,\n inputProps: {\n decimalPlaces: 0\n }\n },\n {\n name: 'cassette2',\n header: 'Cassette 2 (Bottom)',\n width: 265,\n stripe: true,\n view: (value, { id }) => (\n \n ),\n input: NumberInput,\n inputProps: {\n decimalPlaces: 0\n }\n }\n ]\n\n return (\n <>\n \n\n \n \n )\n}\n\nexport default CashCassettes\n","export default {\n cashbox: {\n width: 80,\n height: 36\n }\n}\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 12,\n height: 12,\n rx: 3,\n ry: 3,\n fill: \"#ff7311\"\n});\n\nfunction SvgPumpkin(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 12,\n height: 12,\n viewBox: \"0 0 12 12\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgPumpkin);\nexport default __webpack_public_path__ + \"static/media/pumpkin.877c3432.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 12,\n height: 12,\n rx: 3,\n ry: 3,\n fill: \"#ff584a\"\n});\n\nfunction SvgTomato(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 12,\n height: 12,\n viewBox: \"0 0 12 12\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgTomato);\nexport default __webpack_public_path__ + \"static/media/tomato.b3903800.svg\";\nexport { ForwardRef as ReactComponent };","import {\n Dialog,\n DialogActions,\n DialogContent,\n makeStyles\n} from '@material-ui/core'\nimport React, { memo, useState } from 'react'\n\nimport { Button, IconButton } from 'src/components/buttons'\nimport { TextInput } from 'src/components/inputs'\nimport { H4, P } from 'src/components/typography'\nimport { ReactComponent as CloseIcon } from 'src/styling/icons/action/close/zodiac.svg'\nimport { spacer } from 'src/styling/variables'\n\nimport ErrorMessage from './ErrorMessage'\n\nconst useStyles = makeStyles({\n dialogContent: {\n width: 434,\n padding: spacer * 2,\n paddingRight: spacer * 3.5\n },\n dialogTitle: {\n padding: spacer * 2,\n paddingRight: spacer * 1.5,\n display: 'flex',\n 'justify-content': 'space-between',\n '& > h4': {\n margin: 0\n },\n '& > button': {\n padding: 0,\n marginTop: -(spacer / 2)\n }\n },\n dialogActions: {\n padding: spacer * 4,\n paddingTop: spacer * 2\n }\n})\n\nexport const DialogTitle = ({ children, onClose }) => {\n const classes = useStyles()\n return (\n
\n {children}\n {onClose && (\n \n \n \n )}\n
\n )\n}\n\nexport const ConfirmDialog = memo(\n ({\n title = 'Confirm action',\n errorMessage = 'This action requires confirmation',\n open,\n toBeConfirmed,\n saveButtonAlwaysEnabled = false,\n message,\n confirmationMessage = `Write '${toBeConfirmed}' to confirm this action`,\n onConfirmed,\n onDissmised,\n initialValue = '',\n ...props\n }) => {\n const classes = useStyles()\n const [value, setValue] = useState(initialValue)\n const [error, setError] = useState(false)\n const handleChange = event => setValue(event.target.value)\n\n const innerOnClose = () => {\n setValue('')\n setError(false)\n onDissmised()\n }\n\n const isOnErrorState =\n (!saveButtonAlwaysEnabled && toBeConfirmed !== value) || value === ''\n\n return (\n \n \n

{title}

\n
\n {errorMessage && (\n \n \n {errorMessage.split(':').map(error => (\n <>\n {error}\n
\n \n ))}\n
\n
\n )}\n \n {message &&

{message}

}\n setError(isOnErrorState)}\n />\n
\n \n onConfirmed(value)}>\n Confirm\n \n \n
\n )\n }\n)\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/edit/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0,10 L0,10 C0,10.9942 0.8058,11.8 1.8,11.8 L10.2,11.8 C11.1942,11.8 12,10.9942 12,10\",\n id: \"Stroke-1\",\n stroke: \"#FFFFFF\"\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Stroke-3\",\n stroke: \"#FFFFFF\",\n points: \"3 6.86666667 8.86666667 1 11 3.13333333 5.13333333 9 3 9\"\n}));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.958fe55d.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/edit/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0,10 L0,10 C0,10.9942 0.8058,11.8 1.8,11.8 L10.2,11.8 C11.1942,11.8 12,10.9942 12,10\",\n id: \"Stroke-1\",\n stroke: \"#1B2559\"\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Stroke-3\",\n stroke: \"#1B2559\",\n points: \"3 6.86666667 8.86666667 1 11 3.13333333 5.13333333 9 3 9\"\n}));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.1bc04c23.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/link/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-7\",\n stroke: \"#1B2559\",\n strokeWidth: 1.2\n}, /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-1\",\n points: \"12 6.66678 12 12.00018 0 12.00018 0 0.00018 5.3334 0.00018\"\n}), /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-3\",\n points: \"8.66658 0 12.00018 0 12.00018 3.3336\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 6,\n y1: 6,\n x2: 12,\n y2: 0,\n id: \"Stroke-5\"\n})));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.cdf82496.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/reboot/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-3\",\n stroke: \"#FFFFFF\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-2\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.57419317,11.1560104 C2.91506589,10.8661403 2.29620875,10.4522182 1.75493083,9.91362078 C-0.568892549,7.60089351 -0.587250991,3.86936104 1.71406849,1.57845195 C2.03057585,1.26367293 2.37407977,0.992496226 2.73740775,0.764921841\",\n id: \"Stroke-1\"\n}), /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-3\",\n points: \"3.37563213 1.84831169 3.36911784 0.595324675 2.18174122 4.15223411e-14\"\n})), /*#__PURE__*/React.createElement(\"line\", {\n x1: 5.92223784,\n y1: 7.57277922,\n x2: 5.92223784,\n y2: 3.98212987,\n id: \"Stroke-9\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-2\",\n transform: \"translate(9.818105, 6.000000) scale(-1, -1) translate(-9.818105, -6.000000) translate(7.636287, 0.000000)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.57419317,11.1560104 C2.91506589,10.8661403 2.29620875,10.4522182 1.75493083,9.91362078 C-0.568892549,7.60089351 -0.587250991,3.86936104 1.71406849,1.57845195 C2.03057585,1.26367293 2.37407977,0.992496226 2.73740775,0.764921841\",\n id: \"Stroke-1\"\n}), /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-3\",\n points: \"3.37563213 1.84831169 3.36911784 0.595324675 2.18174122 4.15223411e-14\"\n}))));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"-0.493 -0.5 12.993 13\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.fe6ed797.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/reboot/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-3\",\n stroke: \"#1B2559\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-2\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.57419317,11.1560104 C2.91506589,10.8661403 2.29620875,10.4522182 1.75493083,9.91362078 C-0.568892549,7.60089351 -0.587250991,3.86936104 1.71406849,1.57845195 C2.03057585,1.26367293 2.37407977,0.992496226 2.73740775,0.764921841\",\n id: \"Stroke-1\"\n}), /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-3\",\n points: \"3.37563213 1.84831169 3.36911784 0.595324675 2.18174122 4.15223411e-14\"\n})), /*#__PURE__*/React.createElement(\"line\", {\n x1: 5.92223784,\n y1: 7.57277922,\n x2: 5.92223784,\n y2: 3.98212987,\n id: \"Stroke-9\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-2\",\n transform: \"translate(9.818105, 6.000000) scale(-1, -1) translate(-9.818105, -6.000000) translate(7.636287, 0.000000)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.57419317,11.1560104 C2.91506589,10.8661403 2.29620875,10.4522182 1.75493083,9.91362078 C-0.568892549,7.60089351 -0.587250991,3.86936104 1.71406849,1.57845195 C2.03057585,1.26367293 2.37407977,0.992496226 2.73740775,0.764921841\",\n id: \"Stroke-1\"\n}), /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-3\",\n points: \"3.37563213 1.84831169 3.36911784 0.595324675 2.18174122 4.15223411e-14\"\n}))));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"-0.493 -0.5 12.993 13\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.9cfc97dd.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/shut-down/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-5\",\n transform: \"translate(1.000000, 0.000000)\",\n stroke: \"#FFFFFF\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.7735,2 C9.116,2.89710351 10,4.4271328 10,6.16330077 C10,8.92665975 7.7615,11.1666667 5,11.1666667 C2.2385,11.1666667 0,8.92665975 0,6.16330077 C0,4.43663919 0.8745,2.91361461 2.204,2.01450976\",\n id: \"Stroke-1\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 5,\n y1: 0.75,\n x2: 5,\n y2: 3.25,\n id: \"Stroke-3\"\n})));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.fa4681e8.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/shut-down/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-5\",\n transform: \"translate(1.000000, 0.000000)\",\n stroke: \"#1B2559\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.7735,2 C9.116,2.89710351 10,4.4271328 10,6.16330077 C10,8.92665975 7.7615,11.1666667 5,11.1666667 C2.2385,11.1666667 0,8.92665975 0,6.16330077 C0,4.43663919 0.8745,2.91361461 2.204,2.01450976\",\n id: \"Stroke-1\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 5,\n y1: 0.75,\n x2: 5,\n y2: 3.25,\n id: \"Stroke-3\"\n})));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.b27733af.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/unpair/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-12\",\n stroke: \"#FFFFFF\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-5\"\n}, /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-1\",\n points: \"3.75 6 2.25 6 0 3.75 3.75 0 6.75 3\"\n}), /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-3\",\n points: \"8.25 6 9.75 6 12 8.25 8.25 12 5.25 9\"\n})), /*#__PURE__*/React.createElement(\"line\", {\n x1: 8.25,\n y1: 3,\n x2: 8.25,\n y2: 1.5,\n id: \"Stroke-6\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 9.75,\n y1: 3,\n x2: 10.5,\n y2: 2.25,\n id: \"Stroke-7\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 9.75,\n y1: 4.5,\n x2: 11.25,\n y2: 4.5,\n id: \"Stroke-8\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 2.25,\n y1: 7.5,\n x2: 0.75,\n y2: 7.5,\n id: \"Stroke-9\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 2.25,\n y1: 9,\n x2: 1.5,\n y2: 9.75,\n id: \"Stroke-10\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 3.75,\n y1: 9,\n x2: 3.75,\n y2: 10.5,\n id: \"Stroke-11\"\n})));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.f97c75d2.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/unpair/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-12\",\n stroke: \"#1B2559\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-5\"\n}, /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-1\",\n points: \"3.75 6 2.25 6 0 3.75 3.75 0 6.75 3\"\n}), /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-3\",\n points: \"8.25 6 9.75 6 12 8.25 8.25 12 5.25 9\"\n})), /*#__PURE__*/React.createElement(\"line\", {\n x1: 8.25,\n y1: 3,\n x2: 8.25,\n y2: 1.5,\n id: \"Stroke-6\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 9.75,\n y1: 3,\n x2: 10.5,\n y2: 2.25,\n id: \"Stroke-7\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 9.75,\n y1: 4.5,\n x2: 11.25,\n y2: 4.5,\n id: \"Stroke-8\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 2.25,\n y1: 7.5,\n x2: 0.75,\n y2: 7.5,\n id: \"Stroke-9\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 2.25,\n y1: 9,\n x2: 1.5,\n y2: 9.75,\n id: \"Stroke-10\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 3.75,\n y1: 9,\n x2: 3.75,\n y2: 10.5,\n id: \"Stroke-11\"\n})));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.aa028a2c.svg\";\nexport { ForwardRef as ReactComponent };","import { fade } from '@material-ui/core/styles/colorManipulator'\n\nimport {\n detailsRowStyles,\n labelStyles\n} from 'src/pages/Transactions/Transactions.styles'\nimport { spacer, comet, primaryColor, fontSize4 } from 'src/styling/variables'\n\nconst machineDetailsStyles = {\n ...detailsRowStyles,\n colDivider: {\n width: 1,\n margin: [[spacer * 2, spacer * 4]],\n backgroundColor: comet,\n border: 'none'\n },\n inlineChip: {\n marginInlineEnd: '0.25em'\n },\n stack: {\n display: 'flex',\n flexDirection: 'row'\n },\n wrapper: {\n display: 'flex',\n marginTop: 24,\n marginBottom: 32,\n fontSize: fontSize4\n },\n row: {\n display: 'flex',\n flexDirection: 'row',\n marginBottom: 36\n },\n list: {\n padding: 0,\n margin: 0,\n listStyle: 'none'\n },\n item: {\n height: spacer * 3,\n marginBottom: spacer * 1.5\n },\n link: {\n color: primaryColor,\n textDecoration: 'none'\n },\n divider: {\n margin: '0 1rem'\n },\n mr: {\n marginRight: spacer\n },\n separator: {\n width: 1,\n height: 170,\n zIndex: 1,\n marginRight: 60,\n marginLeft: 'auto',\n background: fade(comet, 0.5)\n }\n}\n\nexport { labelStyles, machineDetailsStyles }\n","import { useMutation } from '@apollo/react-hooks'\nimport { Grid, Divider } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\nimport gql from 'graphql-tag'\nimport moment from 'moment'\nimport React, { useState } from 'react'\n\nimport { ConfirmDialog } from 'src/components/ConfirmDialog'\nimport { Status } from 'src/components/Status'\nimport ActionButton from 'src/components/buttons/ActionButton'\nimport { ReactComponent as EditReversedIcon } from 'src/styling/icons/button/edit/white.svg'\nimport { ReactComponent as EditIcon } from 'src/styling/icons/button/edit/zodiac.svg'\nimport { ReactComponent as LinkIcon } from 'src/styling/icons/button/link/zodiac.svg'\nimport { ReactComponent as RebootReversedIcon } from 'src/styling/icons/button/reboot/white.svg'\nimport { ReactComponent as RebootIcon } from 'src/styling/icons/button/reboot/zodiac.svg'\nimport { ReactComponent as ShutdownReversedIcon } from 'src/styling/icons/button/shut down/white.svg'\nimport { ReactComponent as ShutdownIcon } from 'src/styling/icons/button/shut down/zodiac.svg'\nimport { ReactComponent as UnpairReversedIcon } from 'src/styling/icons/button/unpair/white.svg'\nimport { ReactComponent as UnpairIcon } from 'src/styling/icons/button/unpair/zodiac.svg'\n\nimport { labelStyles, machineDetailsStyles } from './MachineDetailsCard.styles'\n\nconst MACHINE_ACTION = gql`\n mutation MachineAction(\n $deviceId: ID!\n $action: MachineAction!\n $newName: String\n ) {\n machineAction(deviceId: $deviceId, action: $action, newName: $newName) {\n deviceId\n }\n }\n`\n\nconst supportArtices = [\n {\n // Default article for non-maped statuses\n code: undefined,\n label: 'Troubleshooting',\n article:\n 'https://support.lamassu.is/hc/en-us/categories/115000075249-Troubleshooting'\n }\n // TODO add Stuck and Fully Functional statuses articles for the new-admins\n]\n\nconst article = ({ code: status }) =>\n supportArtices.find(({ code: article }) => article === status)\n\nconst useLStyles = makeStyles(labelStyles)\n\nconst Label = ({ children }) => {\n const classes = useLStyles()\n\n return
{children}
\n}\n\nconst useMDStyles = makeStyles(machineDetailsStyles)\n\nconst Container = ({ children, ...props }) => (\n \n {children}\n \n)\n\nconst Item = ({ children, ...props }) => (\n \n {children}\n \n)\n\nconst MachineDetailsRow = ({ it: machine, onActionSuccess }) => {\n const [action, setAction] = useState(null)\n const [errorMessage, setErrorMessage] = useState(null)\n const classes = useMDStyles()\n\n const [machineAction, { loading }] = useMutation(MACHINE_ACTION, {\n onError: ({ message }) => {\n const errorMessage = message ?? 'An error ocurred'\n setErrorMessage(errorMessage)\n },\n onCompleted: () => {\n onActionSuccess && onActionSuccess()\n setAction(null)\n }\n })\n\n const confirmDialogOpen = Boolean(action)\n\n return (\n <>\n \n \n \n \n \n
    \n {machine.statuses.map((status, index) => (\n
  • \n \n
  • \n ))}\n
\n
\n \n \n
    \n {machine.statuses\n .map(article)\n .map(({ label, article }, index) => (\n
  • \n \n '{label}' \n \n
  • \n ))}\n
\n
\n
\n
\n \n {\n setErrorMessage(null)\n machineAction({\n variables: {\n deviceId: machine.deviceId,\n action: `${action?.command}`.toLowerCase(),\n ...(action?.command === 'Rename' && { newName: value })\n }\n })\n }}\n onDissmised={() => {\n setAction(null)\n setErrorMessage(null)\n }}\n />\n \n \n \n \n {machine.model}\n \n \n \n \n {moment(machine.pairedAt).format('YYYY-MM-DD HH:mm:ss')}\n \n \n \n \n \n \n
\n \n setAction({\n command: 'Rename',\n confirmationMessage: 'Write the new name for this machine'\n })\n }>\n Rename\n \n \n setAction({\n command: 'Unpair'\n })\n }>\n Unpair\n \n \n setAction({\n command: 'Reboot'\n })\n }>\n Reboot\n \n \n setAction({\n command: 'Shutdown',\n message:\n 'In order to bring it back online, the machine will need to be visited and its power reset.'\n })\n }>\n Shutdown\n \n
\n
\n
\n
\n
\n \n )\n}\n\nexport default MachineDetailsRow\n","import { useQuery } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core'\nimport gql from 'graphql-tag'\nimport moment from 'moment'\nimport * as R from 'ramda'\nimport React from 'react'\nimport { useLocation } from 'react-router-dom'\n\nimport { MainStatus } from 'src/components/Status'\nimport Title from 'src/components/Title'\nimport DataTable from 'src/components/tables/DataTable'\nimport { mainStyles } from 'src/pages/Transactions/Transactions.styles'\nimport { ReactComponent as WarningIcon } from 'src/styling/icons/status/pumpkin.svg'\nimport { ReactComponent as ErrorIcon } from 'src/styling/icons/status/tomato.svg'\n\nimport MachineDetailsRow from './MachineDetailsCard'\n\nconst GET_MACHINES = gql`\n {\n machines {\n name\n deviceId\n lastPing\n pairedAt\n version\n paired\n cashbox\n cassette1\n cassette2\n version\n model\n statuses {\n label\n type\n }\n }\n }\n`\n\nconst useStyles = makeStyles(mainStyles)\n\nconst MachineStatus = () => {\n const classes = useStyles()\n const { state } = useLocation()\n const addedMachineId = state?.id\n const { data: machinesResponse, refetch } = useQuery(GET_MACHINES)\n\n const elements = [\n {\n header: 'Machine Name',\n width: 250,\n size: 'sm',\n textAlign: 'left',\n view: m => m.name\n },\n {\n header: 'Status',\n width: 350,\n size: 'sm',\n textAlign: 'left',\n view: m => \n },\n {\n header: 'Last ping',\n width: 200,\n size: 'sm',\n textAlign: 'left',\n view: m => (m.lastPing ? moment(m.lastPing).fromNow() : 'unknown')\n },\n {\n header: 'Software Version',\n width: 200,\n size: 'sm',\n textAlign: 'left',\n view: m => m.version || 'unknown'\n }\n ]\n\n const machines = R.path(['machines'])(machinesResponse) ?? []\n const expandedIndex = R.findIndex(R.propEq('deviceId', addedMachineId))(\n machines\n )\n\n const InnerMachineDetailsRow = ({ it }) => (\n \n )\n\n return (\n <>\n
\n
\n Machine Status\n
\n
\n
\n \n Warning\n
\n
\n \n Error\n
\n
\n
\n \n \n )\n}\n\nexport default MachineStatus\n","import React from 'react'\n\nexport default React.createContext()\n","import _ from 'lodash/fp'\n\nconst transformNumber = value =>\n _.isNumber(value) && !_.isNaN(value) ? value : null\n\nexport { transformNumber }\n","import { makeStyles } from '@material-ui/core'\nimport React from 'react'\n\nimport { Link, IconButton } from 'src/components/buttons'\nimport { H4 } from 'src/components/typography'\nimport { ReactComponent as DisabledEditIcon } from 'src/styling/icons/action/edit/disabled.svg'\nimport { ReactComponent as EditIcon } from 'src/styling/icons/action/edit/enabled.svg'\n\nimport styles from './EditHeader.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst Header = ({ title, editing, disabled, setEditing }) => {\n const classes = useStyles()\n\n return (\n
\n

{title}

\n {!editing && (\n setEditing(true)}\n className={classes.button}\n disabled={disabled}>\n {disabled ? : }\n \n )}\n {editing && (\n
\n \n Save\n \n \n Cancel\n \n
\n )}\n
\n )\n}\n\nexport default Header\n","export default {\n header: {\n display: 'flex',\n alignItems: 'center',\n marginBottom: 16,\n height: 26,\n margin: 0\n },\n title: {\n flexShrink: 2,\n margin: 0,\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis'\n },\n button: {\n border: 'none',\n backgroundColor: 'transparent',\n cursor: 'pointer',\n marginLeft: 8\n },\n editingButtons: {\n display: 'flex',\n flexShrink: 0,\n marginLeft: 16,\n justifyContent: 'space-between',\n width: 110\n }\n}\n","import { makeStyles } from '@material-ui/core'\nimport classnames from 'classnames'\nimport { useFormikContext, Field as FormikField } from 'formik'\nimport React from 'react'\n\nimport { NumberInput } from 'src/components/inputs/formik'\nimport { Label1, Info1, TL2 } from 'src/components/typography'\n\nimport styles from './EditableNumber.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst EditableNumber = ({\n label,\n name,\n editing,\n displayValue,\n decoration,\n className,\n decimalPlaces = 0,\n width = 80\n}) => {\n const classes = useStyles({ width, editing })\n const { values } = useFormikContext()\n\n const classNames = {\n [classes.fieldWrapper]: true,\n className\n }\n\n return (\n
\n {label && {label}}\n
\n {!editing && (\n {displayValue(values[name])}\n )}\n {editing && (\n \n )}\n {decoration}\n
\n
\n )\n}\n\nexport default EditableNumber\n","export default {\n text: {\n margin: [[7, 0, 7, 1]]\n },\n fieldWrapper: {\n height: 53\n },\n valueWrapper: {\n display: 'flex',\n alignItems: 'baseline'\n },\n label: {\n margin: 0\n },\n decoration: {\n margin: [[0, 0, 0, 7]]\n }\n}\n","import { Form, Formik } from 'formik'\nimport React, { useContext, useState } from 'react'\nimport * as Yup from 'yup'\n\nimport PromptWhenDirty from 'src/components/PromptWhenDirty'\n\nimport NotificationsCtx from '../NotificationsContext'\nimport { transformNumber } from '../helper'\n\nimport Header from './EditHeader'\nimport EditableNumber from './EditableNumber'\n\nconst SingleFieldEditableNumber = ({\n title,\n label,\n width = 80,\n min = 0,\n max = 9999999,\n name,\n section,\n className\n}) => {\n const [saving, setSaving] = useState(false)\n\n const innerSave = async (section, value) => {\n if (saving) return\n\n setSaving(true)\n\n // no response means the save failed\n await save(section, value)\n\n setSaving(false)\n }\n\n const {\n save,\n data,\n currency,\n isEditing,\n isDisabled,\n setEditing\n } = useContext(NotificationsCtx)\n\n const schema = Yup.object().shape({\n [name]: Yup.number()\n .transform(transformNumber)\n .integer()\n .min(min)\n .max(max)\n .nullable()\n })\n\n return (\n innerSave(section, schema.cast(it))}\n onReset={() => {\n setEditing(name, false)\n }}>\n
\n \n setEditing(name, it)}\n />\n (x === '' ? '-' : x)}\n decoration={currency}\n />\n \n \n )\n}\n\nexport default SingleFieldEditableNumber\n","import { makeStyles } from '@material-ui/core'\nimport React, { useContext } from 'react'\n\nimport NotificationsCtx from '../NotificationsContext'\nimport SingleFieldEditableNumber from '../components/SingleFieldEditableNumber'\n\nimport styles from './CryptoBalanceAlerts.styles'\n\nconst LOW_BALANCE_KEY = 'cryptoLowBalance'\nconst HIGH_BALANCE_KEY = 'cryptoHighBalance'\n\nconst useStyles = makeStyles(styles)\n\nconst CryptoBalanceAlerts = ({ section, fieldWidth }) => {\n const classes = useStyles()\n\n const {\n data,\n save,\n currency,\n setEditing,\n isEditing,\n isDisabled\n } = useContext(NotificationsCtx)\n\n return (\n
\n setEditing(LOW_BALANCE_KEY, it)}\n width={fieldWidth}\n />\n\n
\n\n setEditing(HIGH_BALANCE_KEY, it)}\n width={fieldWidth}\n />\n
\n )\n}\n\nexport default CryptoBalanceAlerts\n","export default {\n cryptoBalanceAlerts: {\n display: 'flex',\n marginBottom: 36,\n height: 135,\n alignItems: 'center'\n },\n cryptoBalanceAlertsForm: {\n width: 222,\n marginRight: 32\n },\n cryptoBalanceAlertsSecondForm: {\n marginLeft: 50\n },\n vertSeparator: {\n width: 1,\n height: '100%',\n borderRight: [[1, 'solid', 'black']]\n }\n}\n","import * as R from 'ramda'\nimport React, { useContext } from 'react'\nimport * as Yup from 'yup'\n\nimport { Table as EditableTable } from 'src/components/editableTable'\nimport { NumberInput } from 'src/components/inputs/formik'\nimport Autocomplete from 'src/components/inputs/formik/Autocomplete.js'\n\nimport NotificationsCtx from '../NotificationsContext'\nimport { transformNumber } from '../helper'\n\nconst HIGH_BALANCE_KEY = 'highBalance'\nconst LOW_BALANCE_KEY = 'lowBalance'\nconst CRYPTOCURRENCY_KEY = 'cryptoCurrency'\nconst NAME = 'cryptoBalanceOverrides'\n\nconst CryptoBalanceOverrides = ({ section }) => {\n const {\n cryptoCurrencies = [],\n data,\n save,\n currency,\n isDisabled,\n setEditing\n } = useContext(NotificationsCtx)\n const setupValues = data?.cryptoBalanceOverrides ?? []\n const innerSetEditing = it => setEditing(NAME, it)\n\n const onDelete = id => {\n const newOverrides = {\n cryptoBalanceOverrides: R.reject(it => it.id === id, setupValues)\n }\n return save(newOverrides)\n }\n\n const overridenCryptos = R.map(R.prop(CRYPTOCURRENCY_KEY))(setupValues)\n const suggestionFilter = R.filter(\n it => !R.contains(it.code, overridenCryptos)\n )\n const suggestions = suggestionFilter(cryptoCurrencies)\n\n const findSuggestion = it => {\n const coin = R.compose(R.find(R.propEq('code', it?.cryptoCurrency)))(\n cryptoCurrencies\n )\n return coin ? [coin] : []\n }\n\n const initialValues = {\n [CRYPTOCURRENCY_KEY]: null,\n [LOW_BALANCE_KEY]: '',\n [HIGH_BALANCE_KEY]: ''\n }\n\n const notesMin = 0\n const currencyMax = 9999999\n const validationSchema = Yup.object().shape(\n {\n [CRYPTOCURRENCY_KEY]: Yup.string()\n .label('Cryptocurrency')\n .nullable()\n .required(),\n [LOW_BALANCE_KEY]: Yup.number()\n .label('Low Balance')\n .when(HIGH_BALANCE_KEY, {\n is: HIGH_BALANCE_KEY => !HIGH_BALANCE_KEY,\n then: Yup.number().required()\n })\n .transform(transformNumber)\n .integer()\n .min(notesMin)\n .max(currencyMax)\n .nullable(),\n [HIGH_BALANCE_KEY]: Yup.number()\n .label('High Balance')\n .when(LOW_BALANCE_KEY, {\n is: LOW_BALANCE_KEY => !LOW_BALANCE_KEY,\n then: Yup.number().required()\n })\n .transform(transformNumber)\n .integer()\n .min(notesMin)\n .max(currencyMax)\n .nullable()\n },\n [LOW_BALANCE_KEY, HIGH_BALANCE_KEY]\n )\n\n const viewCrypto = it =>\n R.compose(\n R.path(['display']),\n R.find(R.propEq('code', it))\n )(cryptoCurrencies)\n\n const elements = [\n {\n name: CRYPTOCURRENCY_KEY,\n header: 'Cryptocurrency',\n width: 166,\n size: 'sm',\n view: viewCrypto,\n input: Autocomplete,\n inputProps: {\n options: it => R.concat(suggestions, findSuggestion(it)),\n optionsLimit: null,\n valueProp: 'code',\n getLabel: R.path(['display'])\n }\n },\n {\n name: LOW_BALANCE_KEY,\n width: 155,\n textAlign: 'right',\n bold: true,\n input: NumberInput,\n suffix: currency,\n inputProps: {\n decimalPlaces: 2\n }\n },\n {\n name: HIGH_BALANCE_KEY,\n width: 155,\n textAlign: 'right',\n bold: true,\n input: NumberInput,\n suffix: currency,\n inputProps: {\n decimalPlaces: 2\n }\n }\n ]\n\n return (\n save(section, it)}\n initialValues={initialValues}\n validationSchema={validationSchema}\n forceDisable={isDisabled(NAME) || !cryptoCurrencies}\n data={setupValues}\n elements={elements}\n disableAdd={!suggestions?.length}\n onDelete={onDelete}\n setEditing={innerSetEditing}\n />\n )\n}\n\nexport default CryptoBalanceOverrides\n","import { makeStyles } from '@material-ui/core'\nimport { Form, Formik } from 'formik'\nimport React, { useContext } from 'react'\nimport * as Yup from 'yup'\n\nimport PromptWhenDirty from 'src/components/PromptWhenDirty'\nimport { TL2 } from 'src/components/typography'\n\nimport { Cashbox } from '../../../components/inputs/cashbox/Cashbox'\nimport NotificationsCtx from '../NotificationsContext'\nimport Header from '../components/EditHeader'\nimport EditableNumber from '../components/EditableNumber'\nimport { transformNumber } from '../helper'\n\nimport styles from './FiatBalanceAlerts.styles.js'\n\nconst useStyles = makeStyles(styles)\n\nconst NAME = 'fiatBalanceAlerts'\n\nconst FiatBalance = ({\n section,\n min = 0,\n max = Number.MAX_SAFE_INTEGER,\n fieldWidth = 80\n}) => {\n const { isEditing, isDisabled, setEditing, data, save } = useContext(\n NotificationsCtx\n )\n const classes = useStyles()\n\n const editing = isEditing(NAME)\n\n const schema = Yup.object().shape({\n fiatBalanceCassette1: Yup.number()\n .transform(transformNumber)\n .integer()\n .min(min)\n .max(max)\n .nullable(),\n fiatBalanceCassette2: Yup.number()\n .transform(transformNumber)\n .integer()\n .min(min)\n .max(max)\n .nullable()\n })\n\n const fiatBalanceCassette1Percent =\n (100 * (data?.fiatBalanceCassette1 ?? 0)) / max\n const fiatBalanceCassette2Percent =\n (100 * (data?.fiatBalanceCassette2 ?? 0)) / max\n\n return (\n save(section, schema.cast(it))}\n onReset={() => {\n setEditing(NAME, false)\n }}>\n
\n \n setEditing(NAME, it)}\n />\n
\n
\n
\n \n
\n Cassette 1 (Top)\n (x === '' ? '-' : x)}\n decoration=\"notes\"\n width={fieldWidth}\n />\n
\n
\n
\n
\n \n
\n Cassette 2 (Bottom)\n (x === '' ? '-' : x)}\n decoration=\"notes\"\n width={fieldWidth}\n />\n
\n
\n
\n \n \n )\n}\n\nexport default FiatBalance\n","export default {\n wrapper: {\n display: 'flex'\n },\n form: {\n marginBottom: 36\n },\n first: {\n width: 236\n },\n title: {\n marginTop: 0\n },\n row: {\n width: 183,\n display: 'grid',\n gridTemplateColumns: 'repeat(2,1fr)',\n gridTemplateRows: '1fr',\n gridColumnGap: 18,\n gridRowGap: 0\n },\n col2: {\n width: 136\n }\n}\n","import * as R from 'ramda'\nimport React, { useContext } from 'react'\nimport * as Yup from 'yup'\n\nimport { Table as EditableTable } from 'src/components/editableTable'\nimport { NumberInput } from 'src/components/inputs/formik/'\nimport Autocomplete from 'src/components/inputs/formik/Autocomplete'\n\nimport NotificationsCtx from '../NotificationsContext'\nimport { transformNumber } from '../helper'\n\nconst CASSETTE_1_KEY = 'cassette1'\nconst CASSETTE_2_KEY = 'cassette2'\nconst MACHINE_KEY = 'machine'\nconst NAME = 'fiatBalanceOverrides'\n\nconst FiatBalanceOverrides = ({ section }) => {\n const { machines = [], data, save, isDisabled, setEditing } = useContext(\n NotificationsCtx\n )\n\n const setupValues = data?.fiatBalanceOverrides ?? []\n const innerSetEditing = it => setEditing(NAME, it)\n\n const overridenMachines = R.map(override => override.machine, setupValues)\n const suggestionFilter = R.filter(\n it => !R.contains(it.deviceId, overridenMachines)\n )\n const suggestions = suggestionFilter(machines)\n\n const findSuggestion = it => {\n const coin = R.compose(R.find(R.propEq('deviceId', it?.machine)))(machines)\n return coin ? [coin] : []\n }\n\n const initialValues = {\n [MACHINE_KEY]: null,\n [CASSETTE_1_KEY]: '',\n [CASSETTE_2_KEY]: ''\n }\n\n const notesMin = 0\n const notesMax = 9999999\n const validationSchema = Yup.object().shape(\n {\n [MACHINE_KEY]: Yup.string()\n .label('Machine')\n .nullable()\n .required(),\n [CASSETTE_1_KEY]: Yup.number()\n .label('Cassette 1 (top)')\n .when(CASSETTE_2_KEY, {\n is: CASSETTE_2_KEY => !CASSETTE_2_KEY,\n then: Yup.number().required()\n })\n .transform(transformNumber)\n .integer()\n .min(notesMin)\n .max(notesMax)\n .nullable(),\n [CASSETTE_2_KEY]: Yup.number()\n .label('Cassette 1 (bottom)')\n .when(CASSETTE_1_KEY, {\n is: CASSETTE_1_KEY => !CASSETTE_1_KEY,\n then: Yup.number().required()\n })\n .transform(transformNumber)\n .integer()\n .min(notesMin)\n .max(notesMax)\n .nullable()\n },\n [CASSETTE_1_KEY, CASSETTE_2_KEY]\n )\n\n const viewMachine = it =>\n R.compose(R.path(['name']), R.find(R.propEq('deviceId', it)))(machines)\n\n const elements = [\n {\n name: MACHINE_KEY,\n width: 238,\n size: 'sm',\n view: viewMachine,\n input: Autocomplete,\n inputProps: {\n options: it => R.concat(suggestions, findSuggestion(it)),\n valueProp: 'deviceId',\n getLabel: R.path(['name'])\n }\n },\n {\n name: CASSETTE_1_KEY,\n display: 'Cash-out 1',\n width: 155,\n textAlign: 'right',\n doubleHeader: 'Cash-out (Cassette Empty)',\n bold: true,\n input: NumberInput,\n suffix: 'notes',\n inputProps: {\n decimalPlaces: 0\n }\n },\n {\n name: CASSETTE_2_KEY,\n display: 'Cash-out 2',\n width: 155,\n textAlign: 'right',\n doubleHeader: 'Cash-out (Cassette Empty)',\n bold: true,\n input: NumberInput,\n suffix: 'notes',\n inputProps: {\n decimalPlaces: 0\n }\n }\n ]\n\n return (\n save(section, validationSchema.cast(it))}\n initialValues={initialValues}\n validationSchema={validationSchema}\n forceDisable={isDisabled(NAME) || !machines}\n data={setupValues}\n elements={elements}\n disableAdd={!suggestions?.length}\n setEditing={innerSetEditing}\n />\n )\n}\n\nexport default FiatBalanceOverrides\n","import { makeStyles } from '@material-ui/core'\nimport * as R from 'ramda'\nimport React, { useContext } from 'react'\n\nimport {\n Table,\n THead,\n TBody,\n Tr,\n Td,\n Th\n} from 'src/components/fake-table/Table'\nimport { Switch } from 'src/components/inputs'\nimport { fromNamespace, toNamespace } from 'src/utils/config'\nimport { startCase } from 'src/utils/string'\n\nimport NotificationsCtx from '../NotificationsContext'\n\nconst channelSize = 129\nconst sizes = {\n balance: 152,\n transactions: 184,\n compliance: 178,\n errors: 142,\n active: 263\n}\nconst width = R.sum(R.values(sizes)) + channelSize\n\nconst Row = ({ namespace, forceDisable }) => {\n const { data: rawData, save: rawSave } = useContext(NotificationsCtx)\n\n const save = R.compose(rawSave(null), toNamespace(namespace))\n const data = fromNamespace(namespace)(rawData)\n\n const disabled = forceDisable || !data || !data.active\n\n const Cell = ({ name, disabled }) => {\n const value = !!(data && data[name])\n\n return (\n \n {\n save({ [name]: event.target.checked })\n }}\n value={value}\n />\n \n )\n }\n\n return (\n \n {startCase(namespace)}\n \n \n \n \n \n \n )\n}\n\nconst useStyles = makeStyles({\n mainTable: {\n width\n },\n wizardTable: {\n width: 930\n }\n})\nconst Setup = ({ wizard, forceDisable }) => {\n const widthAdjust = wizard ? 20 : 0\n const classes = useStyles()\n return (\n \n \n \n {Object.keys(sizes).map(it => (\n \n ))}\n \n \n \n \n \n
Channel\n {startCase(it)}\n
\n )\n}\n\nexport default Setup\n","import React from 'react'\n\nimport SingleFieldEditableNumber from '../components/SingleFieldEditableNumber'\n\nconst NAME = 'highValueTransaction'\n\nconst TransactionAlerts = ({ section, fieldWidth }) => {\n return (\n \n )\n}\n\nexport default TransactionAlerts\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport TitleSection from 'src/components/layout/TitleSection'\nimport { fromNamespace, toNamespace, namespaces } from 'src/utils/config'\n\nimport Section from '../../components/layout/Section'\n\nimport NotificationsCtx from './NotificationsContext'\nimport CryptoBalanceAlerts from './sections/CryptoBalanceAlerts'\nimport CryptoBalanceOverrides from './sections/CryptoBalanceOverrides'\nimport FiatBalanceAlerts from './sections/FiatBalanceAlerts'\nimport FiatBalanceOverrides from './sections/FiatBalanceOverrides'\nimport Setup from './sections/Setup'\nimport TransactionAlerts from './sections/TransactionAlerts'\n\nconst GET_INFO = gql`\n query getData {\n config\n machines {\n name\n deviceId\n }\n cryptoCurrencies {\n code\n display\n }\n }\n`\n\nconst SAVE_CONFIG = gql`\n mutation Save($config: JSONObject) {\n saveConfig(config: $config)\n }\n`\n\nconst FIELDS_WIDTH = 130\n\nconst Notifications = ({\n name: SCREEN_KEY,\n displaySetup = true,\n displayTransactionAlerts = true,\n displayFiatAlerts = true,\n displayCryptoAlerts = true,\n displayOverrides = true,\n displayTitle = true,\n wizard = false\n}) => {\n const [section, setSection] = useState(null)\n const [error, setError] = useState(null)\n const [editingKey, setEditingKey] = useState(null)\n\n const { data } = useQuery(GET_INFO)\n\n const [saveConfig] = useMutation(SAVE_CONFIG, {\n refetchQueries: ['getData'],\n onCompleted: () => setEditingKey(null),\n onError: error => setError({ error })\n })\n\n const config = fromNamespace(SCREEN_KEY)(data?.config)\n const machines = data?.machines\n const cryptoCurrencies = data?.cryptoCurrencies\n\n const currency = R.path(['fiatCurrency'])(\n fromNamespace(namespaces.LOCALE)(data?.config)\n )\n\n const save = R.curry((section, rawConfig) => {\n const config = toNamespace(SCREEN_KEY)(rawConfig)\n setSection(section)\n setError(null)\n return saveConfig({ variables: { config } })\n })\n\n const setEditing = (key, state) => {\n if (!state) {\n setError(null)\n }\n setEditingKey(state ? key : null)\n }\n\n const isEditing = key => editingKey === key\n const isDisabled = key => editingKey && editingKey !== key\n\n const contextValue = {\n save,\n error,\n editingKey,\n data: config,\n currency,\n isEditing,\n isDisabled,\n setEditing,\n setSection,\n machines,\n cryptoCurrencies\n }\n\n return (\n \n {displayTitle && }\n {displaySetup && (\n
\n \n
\n )}\n {displayTransactionAlerts && (\n
\n \n
\n )}\n {displayFiatAlerts && (\n \n \n {displayOverrides && }\n \n )}\n {displayCryptoAlerts && (\n \n \n {displayOverrides && (\n \n )}\n \n )}\n
\n )\n}\n\nexport default Notifications\n","import baseStyles from 'src/pages/Logs.styles'\n\nconst { button } = baseStyles\n\nconst mainStyles = {\n button,\n content: {\n display: 'flex'\n },\n transparentButton: {\n '& > *': {\n margin: 'auto 10px'\n },\n '& button': {\n border: 'none',\n backgroundColor: 'transparent',\n cursor: 'pointer'\n }\n },\n titleWrapper: {\n display: 'flex',\n alignItems: 'center',\n flex: 'wrap'\n },\n rowWrapper: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between'\n },\n rowTextAndSwitch: {\n display: 'flex',\n flex: 'wrap',\n alignItems: 'center',\n justifyContent: 'space-between',\n width: 285\n },\n popoverContent: {\n width: 272,\n padding: [[10, 15]]\n }\n}\n\nexport { mainStyles }\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core/styles'\nimport gql from 'graphql-tag'\nimport React, { memo } from 'react'\n\nimport Tooltip from 'src/components/Tooltip'\nimport { Switch } from 'src/components/inputs'\nimport { H4, P, Label2 } from 'src/components/typography'\nimport { fromNamespace, toNamespace, namespaces } from 'src/utils/config'\n\nimport { mainStyles } from './CoinATMRadar.styles'\n\nconst useStyles = makeStyles(mainStyles)\n\nconst GET_CONFIG = gql`\n query getData {\n config\n }\n`\n\nconst SAVE_CONFIG = gql`\n mutation Save($config: JSONObject) {\n saveConfig(config: $config)\n }\n`\n\nconst Row = memo(({ title, disabled = false, checked, save, label }) => {\n const classes = useStyles()\n\n return (\n
\n
\n

{title}

\n save && save(event.target.checked)}\n />\n
\n {label && {label}}\n
\n )\n})\n\nconst CoinATMRadar = memo(() => {\n const classes = useStyles()\n\n const { data } = useQuery(GET_CONFIG)\n\n const [saveConfig] = useMutation(SAVE_CONFIG, {\n refetchQueries: ['getData']\n })\n\n const save = it =>\n saveConfig({\n variables: { config: toNamespace(namespaces.COIN_ATM_RADAR, it) }\n })\n\n const coinAtmRadarConfig =\n data?.config && fromNamespace(namespaces.COIN_ATM_RADAR, data.config)\n if (!coinAtmRadarConfig) return null\n\n return (\n
\n
\n
\n

Coin ATM Radar share settings

\n \n

\n For details on configuring this panel, please read the relevant\n knowledgebase article{' '}\n \n here\n \n .\n

\n
\n
\n save({ active: value })}\n label={coinAtmRadarConfig.active ? 'Yes' : 'No'}\n />\n

{'Machine info'}

\n save({ commissions: value })}\n />\n save({ limitsAndVerification: value })}\n />\n
\n
\n )\n})\n\nexport default CoinATMRadar\n","import CoinATMRadar from './CoinATMRadar'\n\nexport default CoinATMRadar\n","import { createMuiTheme } from '@material-ui/core/styles'\n\nimport typographyStyles from 'src/components/typography/styles'\n\nimport {\n backgroundColor,\n inputFontFamily,\n secondaryColor,\n fontColor,\n offColor,\n subheaderColor,\n fontSize3,\n fontSize5\n} from './variables'\n\nconst { p } = typographyStyles\n\nexport default createMuiTheme({\n typography: {\n fontFamily: inputFontFamily,\n body1: { ...p }\n },\n MuiButtonBase: {\n disableRipple: true\n },\n palette: {\n primary: {\n light: secondaryColor,\n dark: secondaryColor,\n main: secondaryColor\n },\n secondary: {\n light: secondaryColor,\n dark: secondaryColor,\n main: secondaryColor\n },\n background: {\n default: backgroundColor\n }\n },\n overrides: {\n MuiRadio: {\n colorSecondary: {\n color: secondaryColor\n }\n },\n MuiAutocomplete: {\n root: {\n color: fontColor\n },\n noOptions: {\n padding: [[6, 16]]\n },\n option: {\n '&[data-focus=\"true\"]': {\n backgroundColor: subheaderColor\n }\n },\n paper: {\n color: fontColor,\n margin: 0\n },\n listbox: {\n padding: 0\n },\n tag: {\n '&[data-tag-index=\"0\"]': {\n marginLeft: 0\n },\n margin: 2,\n backgroundColor: subheaderColor,\n borderRadius: 4,\n height: 18\n }\n },\n MuiChip: {\n label: {\n paddingLeft: 4,\n paddingRight: 4,\n color: fontColor,\n fontSize: fontSize5\n }\n },\n MuiInput: {\n root: {\n color: fontColor\n },\n underline: {\n '&:before': {\n borderBottom: [[2, 'solid', fontColor]]\n }\n }\n },\n MuiInputLabel: {\n root: {\n font: 'inherit',\n fontSize: fontSize3,\n color: offColor\n },\n shrink: {\n color: fontColor,\n transform: 'translate(0, 1.7px) scale(0.83)'\n }\n },\n MuiFormLabel: {\n root: {\n '&$focused': {\n color: fontColor\n }\n }\n }\n }\n})\n","import typographyStyles from 'src/components/typography/styles'\nimport theme from 'src/styling/theme'\nimport { offColor } from 'src/styling/variables'\n\nconst { p } = typographyStyles\n\nconst styles = {\n header: {\n display: 'flex',\n alignItems: 'center',\n position: 'relative',\n flex: 'wrap'\n },\n transparentButton: {\n '& > *': {\n margin: 'auto 12px'\n },\n '& button': {\n border: 'none',\n backgroundColor: 'transparent',\n cursor: 'pointer'\n }\n },\n section: {\n marginBottom: 52\n },\n row: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n marginBottom: 28,\n width: 600,\n '&:last-child': {\n marginBottom: 0\n }\n },\n switchRow: {\n display: 'flex',\n alignItems: 'center',\n marginBottom: 28,\n width: 600\n },\n switch: {\n display: 'flex',\n alignItems: 'center',\n marginLeft: 120\n },\n submit: {\n justifyContent: 'flex-start',\n alignItems: 'center',\n height: 19,\n padding: [[0, 4, 4, 4]],\n '& > button': {\n marginRight: 40\n }\n },\n singleButton: {\n marginTop: 50,\n paddingLeft: 0\n }\n}\n\nconst contactInfoStyles = {\n infoMessage: {\n display: 'flex',\n marginBottom: 52,\n '& > p': {\n width: 330,\n color: offColor,\n marginTop: 4,\n marginLeft: 16\n }\n },\n radioButtonsRow: {\n height: 60,\n marginBottom: 14\n },\n radioButtons: {\n display: 'flex',\n flexDirection: 'row',\n paddingLeft: 4\n },\n rowWrapper: {\n display: 'flex',\n alignItems: 'center',\n position: 'relative',\n flex: 'wrap'\n },\n transparentButton: {\n '& > *': {\n margin: 'auto 12px'\n },\n '& button': {\n border: 'none',\n backgroundColor: 'transparent',\n cursor: 'pointer'\n }\n }\n}\n\nconst termsConditionsStyles = {\n enable: {\n display: 'flex',\n alignItems: 'center',\n marginBottom: 22 - theme.spacing(1),\n '& > span:first-child': {\n extend: p,\n marginRight: 116 - theme.spacing(1)\n },\n '& > span:last-child': {\n marginLeft: 4\n }\n }\n}\n\nconst fieldStyles = {\n field: {\n position: 'relative',\n width: 280,\n padding: [[0, 4, 4, 0]]\n },\n notEditing: {\n display: 'flex',\n flexDirection: 'column'\n },\n notEditingSingleLine: {\n '& > p:first-child': {\n height: 16,\n lineHeight: '16px',\n transform: 'scale(0.75)',\n transformOrigin: 'left',\n paddingLeft: 0,\n margin: [[1, 0, 6, 0]]\n },\n '& > p:last-child': {\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n height: 25,\n margin: 0\n }\n },\n notEditingMultiline: {\n '& > p:first-child': {\n height: 16,\n lineHeight: '16px',\n transform: 'scale(0.75)',\n transformOrigin: 'left',\n paddingLeft: 0,\n margin: [[1, 0, 5, 0]]\n },\n '& > p:last-child': {\n width: 502,\n height: 121,\n overflowY: 'auto',\n lineHeight: '19px',\n wordWrap: 'anywhere',\n margin: 0\n }\n }\n}\n\nexport { styles, contactInfoStyles, termsConditionsStyles, fieldStyles }\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core'\nimport classnames from 'classnames'\nimport { Form, Formik, Field as FormikField } from 'formik'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\nimport * as Yup from 'yup'\n\nimport ErrorMessage from 'src/components/ErrorMessage'\nimport PromptWhenDirty from 'src/components/PromptWhenDirty'\nimport { Link, IconButton } from 'src/components/buttons'\nimport Switch from 'src/components/inputs/base/Switch'\nimport { TextInput } from 'src/components/inputs/formik'\nimport { P, H4, Info3, Label1, Label2, Label3 } from 'src/components/typography'\nimport { ReactComponent as EditIcon } from 'src/styling/icons/action/edit/enabled.svg'\nimport { ReactComponent as WarningIcon } from 'src/styling/icons/warning-icon/comet.svg'\nimport { fontSize5 } from 'src/styling/variables'\nimport { fromNamespace, toNamespace, namespaces } from 'src/utils/config'\n\nimport {\n styles as globalStyles,\n contactInfoStyles\n} from './OperatorInfo.styles'\n\nconst FIELD_WIDTH = 280\n\nconst fieldStyles = {\n field: {\n position: 'relative',\n width: 280,\n height: 48,\n padding: [[0, 4, 4, 0]]\n },\n notEditing: {\n display: 'flex',\n flexDirection: 'column',\n '& > p:first-child': {\n height: 16,\n lineHeight: '16px',\n fontSize: fontSize5,\n transformOrigin: 'left',\n paddingLeft: 0,\n margin: [[3, 0, 3, 0]]\n },\n '& > p:last-child': {\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n margin: 0\n }\n }\n}\n\nconst fieldUseStyles = makeStyles(fieldStyles)\n\nconst Field = ({ editing, field, displayValue, ...props }) => {\n const classes = fieldUseStyles()\n\n const classNames = {\n [classes.field]: true,\n [classes.notEditing]: !editing\n }\n\n return (\n
\n {!editing && (\n <>\n {field.label}\n {displayValue(field.value)}\n \n )}\n {editing && (\n \n )}\n
\n )\n}\n\nconst GET_CONFIG = gql`\n query getData {\n config\n }\n`\n\nconst SAVE_CONFIG = gql`\n mutation Save($config: JSONObject) {\n saveConfig(config: $config)\n }\n`\n\nconst styles = R.merge(globalStyles, contactInfoStyles)\n\nconst contactUseStyles = makeStyles(styles)\n\nconst ContactInfo = ({ wizard }) => {\n const classes = contactUseStyles()\n\n const [editing, setEditing] = useState(wizard || false)\n const [error, setError] = useState(null)\n\n const [saveConfig] = useMutation(SAVE_CONFIG, {\n onCompleted: () => setEditing(false),\n refetchQueries: () => ['getData'],\n onError: e => setError(e)\n })\n\n const { data } = useQuery(GET_CONFIG)\n\n const save = it => {\n return saveConfig({\n variables: { config: toNamespace(namespaces.OPERATOR_INFO, it) }\n })\n }\n\n const info =\n data?.config && fromNamespace(namespaces.OPERATOR_INFO, data.config)\n\n if (!info) return null\n\n const validationSchema = Yup.object().shape({\n active: Yup.boolean(),\n name: Yup.string(),\n phone: Yup.string(),\n email: Yup.string()\n .email('Please enter a valid email address')\n .required(),\n website: Yup.string(),\n companyNumber: Yup.string()\n })\n\n const fields = [\n {\n name: 'name',\n label: 'Full name',\n value: info.name ?? '',\n component: TextInput\n },\n {\n name: 'phone',\n label: 'Phone number',\n value: info.phone,\n component: TextInput\n },\n {\n name: 'email',\n label: 'Email',\n value: info.email ?? '',\n component: TextInput\n },\n {\n name: 'website',\n label: 'Website',\n value: info.website ?? '',\n component: TextInput\n },\n {\n name: 'companyNumber',\n label: 'Company number',\n value: info.companyNumber ?? '',\n component: TextInput\n }\n ]\n\n const findField = name => R.find(R.propEq('name', name))(fields)\n const findValue = name => findField(name).value\n\n const displayTextValue = value => value\n\n const form = {\n initialValues: {\n active: info.active,\n name: findValue('name'),\n phone: findValue('phone'),\n email: findValue('email'),\n website: findValue('website'),\n companyNumber: findValue('companyNumber')\n }\n }\n\n return (\n <>\n
\n

Contact information

\n
\n
\n

Info card enabled?

\n
\n \n save({\n active: event.target.checked\n })\n }\n />\n {info.active ? 'Yes' : 'No'}\n
\n
\n
\n
\n

Info card

\n {!editing && (\n setEditing(true)}>\n \n \n )}\n
\n save(validationSchema.cast(values))}\n onReset={() => {\n setEditing(false)\n setError(null)\n }}>\n
\n \n
\n setError(null)}\n />\n setError(null)}\n />\n
\n
\n setError(null)}\n />\n setError(null)}\n />\n
\n
\n setError(null)}\n />\n
\n
\n {editing && (\n <>\n \n Save\n \n \n Cancel\n \n {error && (\n \n Failed to save changes\n \n )}\n \n )}\n
\n \n \n
\n {!wizard && (\n
\n \n \n Sharing your information with your customers through your machines\n allows them to contact you in case there's a problem with a machine\n in your network or a transaction.\n \n
\n )}\n \n )\n}\n\nexport default ContactInfo\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/table/false\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-4\",\n stroke: \"#FF584A\",\n strokeWidth: 4\n}, /*#__PURE__*/React.createElement(\"line\", {\n x1: 13.5,\n y1: 0.5,\n x2: 0.995667,\n y2: 13.004333,\n id: \"Line-7\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 13.5,\n y1: 0.5,\n x2: 0.995667,\n y2: 13.004333,\n id: \"Line-7\",\n transform: \"translate(7.000000, 7.000000) scale(-1, 1) translate(-7.000000, -7.000000) \"\n})));\n\nfunction SvgFalse(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"14px\",\n height: \"14px\",\n viewBox: \"0 0 14 14\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgFalse);\nexport default __webpack_public_path__ + \"static/media/false.7f926859.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/table/true\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4.17451294,13.3251347 L0.599425104,9.29667256 C-0.199808368,8.3960844 -0.199808368,6.94040225 0.599425104,6.03981409 C1.39865858,5.13922593 2.69051421,5.13922593 3.48974768,6.03981409 L5.61967423,8.439847 L12.5102523,0.675441122 C13.3094858,-0.225147041 14.6033855,-0.225147041 15.4005749,0.675441122 C16.1998084,1.57372599 16.1998084,3.03171143 15.4005749,3.93229959 L7.06483552,13.3251347 C6.66624082,13.7742771 6.14295752,14 5.61967423,14 C5.09639093,14 4.57310763,13.7742771 4.17451294,13.3251347 Z\",\n id: \"Fill-1\",\n fill: \"#48F694\"\n}));\n\nfunction SvgTrue(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"16px\",\n height: \"14px\",\n viewBox: \"0 0 16 14\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgTrue);\nexport default __webpack_public_path__ + \"static/media/true.8e532da3.svg\";\nexport { ForwardRef as ReactComponent };","import baseStyles from 'src/pages/Logs.styles'\nimport { backgroundColor, zircon } from 'src/styling/variables'\n\nconst { fillColumn } = baseStyles\n\nconst booleanPropertiesTableStyles = {\n booleanPropertiesTableWrapper: {\n display: 'flex',\n flexDirection: 'column',\n width: 396\n },\n tableRow: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n '&:nth-child(even)': {\n backgroundColor: backgroundColor\n },\n '&:nth-child(odd)': {\n backgroundColor: zircon\n },\n minHeight: 32,\n height: 'auto',\n padding: [[8, 16, 8, 24]],\n boxShadow: '0 0 0 0 rgba(0, 0, 0, 0)'\n },\n leftTableCell: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'left',\n width: 200,\n padding: [0]\n },\n rightTableCell: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'right',\n padding: [0]\n },\n transparentButton: {\n '& > *': {\n margin: 'auto 12px'\n },\n '& button': {\n border: 'none',\n backgroundColor: 'transparent',\n cursor: 'pointer'\n }\n },\n rowWrapper: {\n display: 'flex',\n alignItems: 'center',\n position: 'relative',\n flex: 'wrap'\n },\n rightAligned: {\n marginLeft: 'auto'\n },\n radioButtons: {\n display: 'flex',\n flexDirection: 'row',\n margin: [-15]\n },\n rightLink: {\n marginLeft: '20px'\n },\n fillColumn,\n popoverContent: {\n width: 272,\n padding: [[10, 15]]\n }\n}\n\nexport { booleanPropertiesTableStyles }\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport { useFormikContext, Form, Formik, Field as FormikField } from 'formik'\nimport _ from 'lodash'\nimport React, { useState, memo } from 'react'\nimport * as Yup from 'yup'\n\nimport PromptWhenDirty from 'src/components/PromptWhenDirty'\nimport { Link, IconButton } from 'src/components/buttons'\nimport { RadioGroup } from 'src/components/inputs/formik'\nimport { Table, TableBody, TableRow, TableCell } from 'src/components/table'\nimport { H4 } from 'src/components/typography'\nimport { ReactComponent as EditIconDisabled } from 'src/styling/icons/action/edit/disabled.svg'\nimport { ReactComponent as EditIcon } from 'src/styling/icons/action/edit/enabled.svg'\nimport { ReactComponent as FalseIcon } from 'src/styling/icons/table/false.svg'\nimport { ReactComponent as TrueIcon } from 'src/styling/icons/table/true.svg'\n\nimport { booleanPropertiesTableStyles } from './BooleanPropertiesTable.styles'\n\nconst useStyles = makeStyles(booleanPropertiesTableStyles)\n\nconst BooleanCell = ({ name }) => {\n const { values } = useFormikContext()\n return values[name] === 'true' ? : \n}\n\nconst BooleanPropertiesTable = memo(\n ({ title, disabled, data, elements, save, forcedEditing = false }) => {\n const initialValues = _.fromPairs(elements.map(it => [it.name, '']))\n const schemaValidation = _.fromPairs(\n elements.map(it => [it.name, Yup.boolean().required()])\n )\n\n const [editing, setEditing] = useState(forcedEditing)\n\n const classes = useStyles()\n\n const innerSave = async value => {\n save(value)\n setEditing(false)\n }\n\n const innerCancel = () => setEditing(false)\n\n const radioButtonOptions = [\n { display: 'Yes', code: 'true' },\n { display: 'No', code: 'false' }\n ]\n\n return (\n
\n \n
\n
\n

{title}

\n {editing ? (\n
\n \n Save\n \n \n Cancel\n \n
\n ) : (\n setEditing(true)}>\n {disabled ? : }\n \n )}\n
\n \n \n \n {elements.map((it, idx) => (\n \n \n {it.display}\n \n \n {editing && (\n \n )}\n {!editing && }\n \n \n ))}\n \n
\n \n \n
\n )\n }\n)\n\nexport default BooleanPropertiesTable\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core/styles'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { memo } from 'react'\n\nimport { BooleanPropertiesTable } from 'src/components/booleanPropertiesTable'\nimport { Switch } from 'src/components/inputs'\nimport { H4, P, Label2 } from 'src/components/typography'\nimport { fromNamespace, toNamespace, namespaces } from 'src/utils/config'\n\nimport { mainStyles } from './ReceiptPrinting.styles'\n\nconst useStyles = makeStyles(mainStyles)\n\nconst GET_CONFIG = gql`\n query getData {\n config\n }\n`\n\nconst SAVE_CONFIG = gql`\n mutation Save($config: JSONObject) {\n saveConfig(config: $config)\n }\n`\n\nconst ReceiptPrinting = memo(({ wizard }) => {\n const classes = useStyles()\n\n const { data } = useQuery(GET_CONFIG)\n\n const [saveConfig] = useMutation(SAVE_CONFIG, {\n refetchQueries: () => ['getData']\n })\n\n const save = it =>\n saveConfig({\n variables: { config: toNamespace(namespaces.RECEIPT, it) }\n })\n\n const receiptPrintingConfig =\n data?.config && fromNamespace(namespaces.RECEIPT, data.config)\n if (!receiptPrintingConfig) return null\n\n return (\n <>\n
\n

Receipt options

\n
\n
\n

Enable receipt printing?

\n
\n \n saveConfig({\n variables: {\n config: toNamespace(\n namespaces.RECEIPT,\n R.merge(receiptPrintingConfig, {\n active: event.target.checked\n })\n )\n }\n })\n }\n />\n
\n {receiptPrintingConfig.active ? 'Yes' : 'No'}\n
\n \n \n )\n})\n\nexport default ReceiptPrinting\n","const mainStyles = {\n rowWrapper: {\n display: 'flex',\n alignItems: 'center',\n position: 'relative',\n flex: 'wrap'\n },\n switchWrapper: {\n display: 'flex',\n marginLeft: 120\n }\n}\n\nexport { mainStyles }\n","import ReceiptPrinting from './ReceiptPrinting'\n\nexport default ReceiptPrinting\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core'\nimport classnames from 'classnames'\nimport { Form, Formik, Field as FormikField } from 'formik'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\nimport * as Yup from 'yup'\n\nimport ErrorMessage from 'src/components/ErrorMessage'\nimport PromptWhenDirty from 'src/components/PromptWhenDirty'\nimport { Link, IconButton } from 'src/components/buttons'\nimport { Switch } from 'src/components/inputs'\nimport { TextInput } from 'src/components/inputs/formik'\nimport { H4, Info2, Info3, Label2, Label3 } from 'src/components/typography'\nimport { ReactComponent as EditIcon } from 'src/styling/icons/action/edit/enabled.svg'\nimport { fromNamespace, toNamespace, namespaces } from 'src/utils/config'\n\nimport {\n styles as globalStyles,\n termsConditionsStyles,\n fieldStyles\n} from './OperatorInfo.styles'\n\nconst useFieldStyles = makeStyles(fieldStyles)\n\nconst Field = ({\n editing,\n name,\n width,\n placeholder,\n label,\n value,\n multiline = false,\n rows,\n onFocus,\n ...props\n}) => {\n const classes = useFieldStyles()\n\n const classNames = {\n [classes.field]: true,\n [classes.notEditing]: !editing,\n [classes.notEditingSingleLine]: !editing && !multiline,\n [classes.notEditingMultiline]: !editing && multiline\n }\n\n return (\n
\n {!editing && (\n <>\n {label}\n {value}\n \n )}\n {editing && (\n \n )}\n
\n )\n}\n\nconst GET_CONFIG = gql`\n query getData {\n config\n }\n`\n\nconst SAVE_CONFIG = gql`\n mutation Save($config: JSONObject) {\n saveConfig(config: $config)\n }\n`\n\nconst styles = R.merge(globalStyles, termsConditionsStyles)\n\nconst useTermsConditionsStyles = makeStyles(styles)\n\nconst TermsConditions = () => {\n const [error, setError] = useState(null)\n const [editing, setEditing] = useState(false)\n const [saveConfig] = useMutation(SAVE_CONFIG, {\n onCompleted: () => {\n setError(null)\n setEditing(false)\n },\n refetchQueries: () => ['getData'],\n onError: e => setError(e)\n })\n\n const classes = useTermsConditionsStyles()\n\n const { data } = useQuery(GET_CONFIG)\n\n const termsAndConditions =\n data?.config && fromNamespace(namespaces.TERMS_CONDITIONS, data.config)\n const formData = termsAndConditions ?? {}\n const showOnScreen = termsAndConditions?.active ?? false\n\n const save = it =>\n saveConfig({\n variables: { config: toNamespace(namespaces.TERMS_CONDITIONS, it) }\n })\n\n const fields = [\n {\n name: 'title',\n label: 'Screen title',\n value: formData.title ?? '',\n width: 282\n },\n {\n name: 'text',\n label: 'Text content',\n value: formData.text ?? '',\n width: 502,\n multiline: true,\n rows: 6\n },\n {\n name: 'acceptButtonText',\n label: 'Accept button text',\n value: formData.acceptButtonText ?? '',\n placeholder: 'I accept',\n width: 282\n },\n {\n name: 'cancelButtonText',\n label: 'Cancel button text',\n value: formData.cancelButtonText ?? '',\n placeholder: 'Cancel',\n width: 282\n }\n ]\n\n const findField = name => R.find(R.propEq('name', name))(fields)\n const findValue = name => findField(name).value\n\n const initialValues = {\n title: findValue('title'),\n text: findValue('text'),\n acceptButtonText: findValue('acceptButtonText'),\n cancelButtonText: findValue('cancelButtonText')\n }\n\n const validationSchema = Yup.object().shape({\n title: Yup.string()\n .required()\n .max(50, 'Too long'),\n text: Yup.string().required(),\n acceptButtonText: Yup.string()\n .required()\n .max(50, 'Too long'),\n cancelButtonText: Yup.string()\n .required()\n .max(50, 'Too long')\n })\n\n return (\n <>\n
\n

Terms & Conditions

\n
\n
\n
\n Show on screen\n \n save({\n active: event.target.checked\n })\n }\n />\n {showOnScreen ? 'Yes' : 'No'}\n
\n
\n Info card\n {!editing && (\n setEditing(true)}>\n \n \n )}\n
\n save(values)}\n onReset={() => {\n setEditing(false)\n setError(null)\n }}>\n
\n \n {fields.map((f, idx) => (\n
\n setError(null)}\n />\n
\n ))}\n
\n {editing && (\n <>\n \n Save\n \n \n Cancel\n \n {error && (\n \n Failed to save changes\n \n )}\n \n )}\n
\n \n \n
\n \n )\n}\n\nexport default TermsConditions\n","import { makeStyles } from '@material-ui/core'\nimport Grid from '@material-ui/core/Grid'\nimport React from 'react'\nimport {\n Route,\n Switch,\n Redirect,\n useLocation,\n useHistory\n} from 'react-router-dom'\n\nimport Sidebar from 'src/components/layout/Sidebar'\nimport TitleSection from 'src/components/layout/TitleSection'\n\nimport CoinAtmRadar from './CoinATMRadar'\nimport ContactInfo from './ContactInfo'\nimport ReceiptPrinting from './ReceiptPrinting'\nimport TermsConditions from './TermsConditions'\n\nconst styles = {\n grid: {\n flex: 1,\n height: '100%'\n },\n content: {\n flex: 1,\n marginLeft: 48,\n paddingTop: 15\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst innerRoutes = [\n {\n label: 'Contact information',\n route: '/settings/operator-info/contact-info',\n component: ContactInfo\n },\n {\n label: 'Receipt',\n route: '/settings/operator-info/receipt-printing',\n component: ReceiptPrinting\n },\n {\n label: 'Coin ATM Radar',\n route: '/settings/operator-info/coin-atm-radar',\n component: CoinAtmRadar\n },\n {\n label: 'Terms & Conditions',\n route: '/settings/operator-info/terms-conditions',\n component: TermsConditions\n }\n]\n\nconst Routes = ({ wizard }) => (\n \n \n \n {innerRoutes.map(({ route, component: Page, key }) => (\n \n \n \n ))}\n \n)\n\nconst OperatorInfo = ({ wizard = false }) => {\n const classes = useStyles()\n const history = useHistory()\n const location = useLocation()\n\n const isSelected = it => location.pathname === it.route\n\n const onClick = it => history.push(it.route)\n\n return (\n <>\n \n \n it.label}\n onClick={onClick}\n />\n
\n \n
\n
\n \n )\n}\n\nexport default OperatorInfo\n","import { makeStyles } from '@material-ui/core'\nimport Chip from '@material-ui/core/Chip'\nimport * as R from 'ramda'\nimport React from 'react'\n\nimport {\n secondaryColorLighter,\n secondaryColorDarker,\n offErrorColor,\n errorColor,\n offColor,\n inputFontWeight,\n smallestFontSize,\n inputFontFamily,\n spacer\n} from 'src/styling/variables'\nimport { onlyFirstToUpper } from 'src/utils/string'\n\nimport typographyStyles from './typography/styles'\nconst { label1 } = typographyStyles\n\nconst colors = {\n running: secondaryColorDarker,\n notRunning: offErrorColor\n}\n\nconst backgroundColors = {\n running: secondaryColorLighter,\n notRunning: errorColor\n}\n\nconst styles = {\n uptimeContainer: {\n display: 'inline-block',\n minWidth: 104,\n margin: [[0, 20]]\n },\n name: {\n extend: label1,\n paddingLeft: 4,\n color: offColor\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst useChipStyles = makeStyles({\n root: {\n borderRadius: spacer / 2,\n marginTop: spacer / 2,\n marginRight: spacer / 4,\n marginBottom: spacer / 2,\n marginLeft: spacer / 4,\n height: spacer * 3,\n backgroundColor: ({ type }) => backgroundColors[type]\n },\n label: {\n fontSize: smallestFontSize,\n fontWeight: inputFontWeight,\n fontFamily: inputFontFamily,\n padding: [[spacer / 2, spacer]],\n color: ({ type }) => colors[type]\n }\n})\n\nconst Uptime = ({ process, ...props }) => {\n const classes = useStyles()\n\n const uptime = time => {\n if (time < 60) return `${time}s`\n if (time < 3600) return `${Math.floor(time / 60)}m`\n if (time < 86400) return `${Math.floor(time / 60 / 60)}h`\n return `${Math.floor(time / 60 / 60 / 24)}d`\n }\n\n return (\n
\n
{R.toLower(process.name)}
\n \n
\n )\n}\n\nexport default Uptime\n","import { useQuery } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core'\nimport gql from 'graphql-tag'\nimport moment from 'moment'\nimport * as R from 'ramda'\nimport React, { useState, useRef } from 'react'\n\nimport LogsDowloaderPopover from 'src/components/LogsDownloaderPopper'\nimport Title from 'src/components/Title'\nimport Uptime from 'src/components/Uptime'\nimport { Select } from 'src/components/inputs'\nimport {\n Table,\n TableHead,\n TableRow,\n TableHeader,\n TableBody,\n TableCell\n} from 'src/components/table'\nimport { Info3 } from 'src/components/typography'\nimport typographyStyles from 'src/components/typography/styles'\nimport { offColor } from 'src/styling/variables'\n\nimport logsStyles from './Logs.styles'\n\nconst { p } = typographyStyles\nconst { tableWrapper } = logsStyles\n\nconst localStyles = {\n serverTableWrapper: {\n extend: tableWrapper,\n maxWidth: '100%',\n marginLeft: 0\n },\n serverVersion: {\n extend: p,\n color: offColor,\n margin: 'auto 0 auto 0'\n },\n headerLine2: {\n display: 'flex',\n justifyContent: 'space-between',\n marginBottom: 24\n },\n uptimeContainer: {\n margin: 'auto 0 auto 0'\n }\n}\n\nconst styles = R.merge(logsStyles, localStyles)\n\nconst useStyles = makeStyles(styles)\n\nconst SHOW_ALL = 'Show all'\n\nconst formatDate = date => {\n return moment(date).format('YYYY-MM-DD HH:mm')\n}\n\nconst NUM_LOG_RESULTS = 500\n\nconst GET_CSV = gql`\n query ServerData($limit: Int, $from: Date, $until: Date) {\n serverLogsCsv(limit: $limit, from: $from, until: $until)\n }\n`\n\nconst GET_DATA = gql`\n query ServerData($limit: Int, $from: Date, $until: Date) {\n serverVersion\n uptime {\n name\n state\n uptime\n }\n serverLogs(limit: $limit, from: $from, until: $until) {\n logLevel\n id\n timestamp\n message\n }\n }\n`\n\nconst Logs = () => {\n const classes = useStyles()\n\n const tableEl = useRef()\n\n const [saveMessage, setSaveMessage] = useState(null)\n const [logLevel, setLogLevel] = useState(SHOW_ALL)\n\n const { data } = useQuery(GET_DATA, {\n onCompleted: () => setSaveMessage(''),\n variables: {\n limit: NUM_LOG_RESULTS\n }\n })\n\n const serverVersion = data?.serverVersion\n const processStates = data?.uptime ?? []\n\n const getLogLevels = R.compose(\n R.prepend(SHOW_ALL),\n R.uniq,\n R.concat(['error', 'info', 'debug']),\n R.map(R.path(['logLevel'])),\n R.path(['serverLogs'])\n )\n\n const handleLogLevelChange = logLevel => {\n if (tableEl.current) tableEl.current.scrollTo(0, 0)\n\n setLogLevel(logLevel)\n }\n\n return (\n <>\n
\n
\n Server\n {data && (\n
\n R.path(['serverLogsCsv'])(logs)}\n />\n {saveMessage}\n
\n )}\n
\n
\n {serverVersion && Server version: v{serverVersion}}\n
\n
\n
\n {data && (\n \n )}\n
\n {processStates &&\n processStates.map((process, idx) => (\n \n ))}\n
\n
\n
\n
\n \n \n \n Date\n Level\n \n \n \n \n {data &&\n data.serverLogs\n .filter(\n log => logLevel === SHOW_ALL || log.logLevel === logLevel\n )\n .map((log, idx) => (\n \n {formatDate(log.timestamp)}\n {log.logLevel}\n {log.message}\n \n ))}\n \n
\n
\n
\n \n )\n}\n\nexport default Logs\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/action/edit/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1,18 L1,18 C1,19.657 2.343,21 4,21 L18,21 C19.657,21 21,19.657 21,18\",\n id: \"Stroke-1\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Stroke-3\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2,\n points: \"6 12 17 1 21 5 10 16 6 16\"\n}));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"22px\",\n height: \"22px\",\n viewBox: \"0 0 22 22\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.5f161f2c.svg\";\nexport { ForwardRef as ReactComponent };","import typographyStyles from 'src/components/typography/styles'\nimport { offColor } from 'src/styling/variables'\n\nconst { label1, p } = typographyStyles\n\nexport default {\n tr: ({ height }) => ({\n margin: 0,\n height\n }),\n table: ({ width }) => ({\n width\n }),\n head: {\n display: 'flex',\n flex: 1,\n justifyContent: 'space-between',\n alignItems: 'center',\n paddingRight: 12\n },\n button: {\n marginBottom: 1\n },\n itemWrapper: {\n display: 'flex',\n flexDirection: 'column',\n marginTop: 16,\n minHeight: 35\n },\n label: {\n extend: label1,\n color: offColor,\n marginBottom: 4\n },\n item: {\n extend: p,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap'\n }\n}\n","import { makeStyles } from '@material-ui/core'\nimport classnames from 'classnames'\nimport React from 'react'\n\nimport { IconButton } from 'src/components/buttons'\nimport {\n Table,\n THead,\n TBody,\n Td,\n Th,\n Tr\n} from 'src/components/fake-table/Table'\nimport { ReactComponent as EditIcon } from 'src/styling/icons/action/edit/white.svg'\n\nimport styles from './SingleRowTable.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst SingleRowTable = ({\n width = 378,\n height = 128,\n title,\n items,\n onEdit,\n className\n}) => {\n const classes = useStyles({ width, height })\n\n return (\n <>\n \n \n \n \n \n \n \n \n \n
\n {title}\n \n \n \n
\n {items && (\n <>\n {items[0] && (\n
\n
{items[0].label}
\n
{items[0].value}
\n
\n )}\n {items[1] && (\n
\n
{items[1].label}
\n
{items[1].value}
\n
\n )}\n \n )}\n
\n \n )\n}\n\nexport default SingleRowTable\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles, Grid } from '@material-ui/core'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport Modal from 'src/components/Modal'\nimport TitleSection from 'src/components/layout/TitleSection'\nimport SingleRowTable from 'src/components/single-row-table/SingleRowTable'\nimport { formatLong } from 'src/utils/string'\n\nimport FormRenderer from './FormRenderer'\nimport schemas from './schemas'\n\nconst GET_INFO = gql`\n query getData {\n accounts\n }\n`\n\nconst SAVE_ACCOUNT = gql`\n mutation Save($accounts: JSONObject) {\n saveAccounts(accounts: $accounts)\n }\n`\n\nconst styles = {\n wrapper: {\n // widths + spacing is a little over 1200 on the design\n // this adjusts the margin after a small reduction on card size\n marginLeft: 1\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst Services = () => {\n const [editingSchema, setEditingSchema] = useState(null)\n\n const { data } = useQuery(GET_INFO)\n const [saveAccount] = useMutation(SAVE_ACCOUNT, {\n onCompleted: () => setEditingSchema(null),\n refetchQueries: ['getData']\n })\n\n const classes = useStyles()\n\n const accounts = data?.accounts ?? {}\n\n const getItems = (code, elements) => {\n const faceElements = R.filter(R.prop('face'))(elements)\n const values = accounts[code] || {}\n return R.map(({ display, code, long }) => ({\n label: display,\n value: long ? formatLong(values[code]) : values[code]\n }))(faceElements)\n }\n\n return (\n
\n \n \n {R.values(schemas).map(schema => (\n \n setEditingSchema(schema)}\n items={getItems(schema.code, schema.elements)}\n />\n \n ))}\n \n {editingSchema && (\n setEditingSchema(null)}\n open={true}>\n \n saveAccount({\n variables: { accounts: { [editingSchema.code]: it } }\n })\n }\n elements={editingSchema.elements}\n validationSchema={editingSchema.validationSchema}\n value={accounts[editingSchema.code]}\n />\n \n )}\n
\n )\n}\n\nexport default Services\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/ID/card/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Stroke-1\",\n stroke: \"#FFFFFF\",\n strokeWidth: 1.6,\n points: \"0 16 22 16 22 0 0 0\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 11.7857143,\n y1: 4,\n x2: 18.8571429,\n y2: 4,\n id: \"Stroke-3\",\n stroke: \"#FFFFFF\",\n strokeWidth: 1.6\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 11.7857143,\n y1: 7.2,\n x2: 18.8571429,\n y2: 7.2,\n id: \"Stroke-4\",\n stroke: \"#FFFFFF\",\n strokeWidth: 1.6\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Stroke-5\",\n stroke: \"#FFFFFF\",\n strokeWidth: 1.6,\n points: \"3.14285714 11.2 8.64285714 11.2 8.64285714 4 3.14285714 4\"\n}));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"22px\",\n height: \"16px\",\n viewBox: \"0 0 22 16\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.aa3a2aa4.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/ID/phone/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.47150618,12.52898 C9.939556,15.9970298 13.7804112,16.1146315 15.4756355,15.9586292 C16.0220434,15.9090285 16.5308507,15.6578249 16.9188563,15.2698193 L19.0004862,13.1881894 L17.0220577,11.210561 L15.0436293,10.5505516 L13.7244104,11.8697705 C13.7244104,11.8697705 12.4059914,13.1881894 9.10914407,9.89054208 C5.81229671,6.59449473 7.13071565,5.27527578 7.13071565,5.27527578 L8.4499346,3.95605683 L7.78992512,1.97842842 L5.81229671,0 L3.73066681,2.0816299 C3.34186123,2.46963548 3.09145763,2.97844279 3.04105691,3.52485063 C2.88585468,5.22007499 3.00345637,9.06013015 6.47150618,12.52898 Z\",\n id: \"Stroke-1-Copy\",\n stroke: \"#FFFFFF\",\n strokeWidth: 1.6\n}));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"22px\",\n height: \"16px\",\n viewBox: \"0 0 22 16\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.d630943a.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/ID/phone/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.47150618,12.52898 C9.939556,15.9970298 13.7804112,16.1146315 15.4756355,15.9586292 C16.0220434,15.9090285 16.5308507,15.6578249 16.9188563,15.2698193 L19.0004862,13.1881894 L17.0220577,11.210561 L15.0436293,10.5505516 L13.7244104,11.8697705 C13.7244104,11.8697705 12.4059914,13.1881894 9.10914407,9.89054208 C5.81229671,6.59449473 7.13071565,5.27527578 7.13071565,5.27527578 L8.4499346,3.95605683 L7.78992512,1.97842842 L5.81229671,0 L3.73066681,2.0816299 C3.34186123,2.46963548 3.09145763,2.97844279 3.04105691,3.52485063 C2.88585468,5.22007499 3.00345637,9.06013015 6.47150618,12.52898 Z\",\n id: \"Stroke-1-Copy\",\n stroke: \"#1B2559\",\n strokeWidth: 1.6\n}));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"22px\",\n height: \"16px\",\n viewBox: \"0 0 22 16\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.d95e9bb2.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/ID/photo/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11,13 C8.7912,13 7,11.2088 7,9 C7,6.7912 8.7912,5 11,5 C13.2088,5 15,6.7912 15,9 C15,11.2088 13.2088,13 11,13 Z M15.7142857,2.4 L13.3571429,0 L8.64285714,0 L6.28571429,2.4 L0,2.4 L0,16 L22,16 L22,2.4 L15.7142857,2.4 Z\",\n id: \"Stroke-1\",\n stroke: \"#FFFFFF\",\n strokeWidth: 1.6\n}));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"22px\",\n height: \"16px\",\n viewBox: \"0 0 22 16\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.024587b7.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/ID/photo/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11,13 C8.7912,13 7,11.2088 7,9 C7,6.7912 8.7912,5 11,5 C13.2088,5 15,6.7912 15,9 C15,11.2088 13.2088,13 11,13 Z M15.7142857,2.4 L13.3571429,0 L8.64285714,0 L6.28571429,2.4 L0,2.4 L0,16 L22,16 L22,2.4 L15.7142857,2.4 Z\",\n id: \"Stroke-1\",\n stroke: \"#1B2559\",\n strokeWidth: 1.6\n}));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"22px\",\n height: \"16px\",\n viewBox: \"0 0 22 16\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.4467d30c.svg\";\nexport { ForwardRef as ReactComponent };","import typographyStyles from 'src/components/typography/styles'\nimport { offColor } from 'src/styling/variables'\n\nconst { p } = typographyStyles\n\nexport default {\n wrapper: {\n display: 'flex',\n flexDirection: 'column',\n marginTop: 24\n },\n row: {\n display: 'flex',\n flexDirection: 'row',\n marginBottom: 36\n },\n secondRow: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n marginBottom: 36\n },\n lastRow: {\n display: 'flex',\n flexDirection: 'row',\n marginBottom: 32\n },\n label: {\n color: offColor,\n margin: [[0, 0, 6, 0]]\n },\n txIcon: {\n marginRight: 10\n },\n popover: {\n height: 164,\n width: 215\n },\n idButton: {\n marginRight: 4\n },\n idCardDataCard: {\n extend: p,\n display: 'flex',\n padding: [[11, 8]],\n // rework this into a proper component\n '& > div': {\n display: 'flex',\n flexDirection: 'column',\n '& > div': {\n width: 144,\n height: 37,\n marginBottom: 15,\n '&:last-child': {\n marginBottom: 0\n }\n }\n }\n },\n bold: {\n fontWeight: 700\n },\n direction: {\n width: 233\n },\n availableIds: {\n width: 232\n },\n exchangeRate: {\n width: 250\n },\n commission: {\n width: 217\n },\n address: {\n width: 280\n },\n transactionId: {\n width: 280\n },\n sessionId: {\n width: 215\n }\n}\n","const getCashOutStatus = it => {\n if (it.hasError) return 'Error'\n if (it.dispense) return 'Success'\n if (it.expired) return 'Expired'\n return 'Pending'\n}\n\nconst getCashInStatus = it => {\n if (it.operatorCompleted) return 'Cancelled'\n if (it.hasError) return 'Error'\n if (it.sendConfirmed) return 'Sent'\n if (it.expired) return 'Expired'\n return 'Pending'\n}\n\nconst getStatus = it => {\n if (it.txClass === 'cashOut') {\n return getCashOutStatus(it)\n }\n return getCashInStatus(it)\n}\n\nexport { getStatus }\n","import { makeStyles, Box } from '@material-ui/core'\nimport BigNumber from 'bignumber.js'\nimport moment from 'moment'\nimport React, { memo } from 'react'\n\nimport { IDButton } from 'src/components/buttons'\nimport { Label1 } from 'src/components/typography'\nimport { ReactComponent as CardIdInverseIcon } from 'src/styling/icons/ID/card/white.svg'\nimport { ReactComponent as CardIdIcon } from 'src/styling/icons/ID/card/zodiac.svg'\nimport { ReactComponent as PhoneIdInverseIcon } from 'src/styling/icons/ID/phone/white.svg'\nimport { ReactComponent as PhoneIdIcon } from 'src/styling/icons/ID/phone/zodiac.svg'\nimport { ReactComponent as CamIdInverseIcon } from 'src/styling/icons/ID/photo/white.svg'\nimport { ReactComponent as CamIdIcon } from 'src/styling/icons/ID/photo/zodiac.svg'\nimport { ReactComponent as TxInIcon } from 'src/styling/icons/direction/cash-in.svg'\nimport { ReactComponent as TxOutIcon } from 'src/styling/icons/direction/cash-out.svg'\nimport { URI } from 'src/utils/apollo'\nimport { toUnit, formatCryptoAddress } from 'src/utils/coin'\nimport { onlyFirstToUpper } from 'src/utils/string'\n\nimport CopyToClipboard from './CopyToClipboard'\nimport styles from './DetailsCard.styles'\nimport { getStatus } from './helper'\n\nconst useStyles = makeStyles(styles)\n\nconst formatAddress = (cryptoCode = '', address = '') =>\n formatCryptoAddress(cryptoCode, address).replace(/(.{5})/g, '$1 ')\n\nconst Label = ({ children }) => {\n const classes = useStyles()\n return {children}\n}\n\nconst DetailsRow = ({ it: tx }) => {\n const classes = useStyles()\n\n const fiat = Number.parseFloat(tx.fiat)\n const crypto = toUnit(new BigNumber(tx.cryptoAtoms), tx.cryptoCode)\n const commissionPercentage = Number.parseFloat(tx.commissionPercentage, 2)\n const commission = Number(fiat * commissionPercentage).toFixed(2)\n const exchangeRate = Number(fiat / crypto).toFixed(3)\n const displayExRate = `1 ${tx.cryptoCode} = ${exchangeRate} ${tx.fiatCode}`\n\n const customer = tx.customerIdCardData && {\n name: `${onlyFirstToUpper(\n tx.customerIdCardData.firstName\n )} ${onlyFirstToUpper(tx.customerIdCardData.lastName)}`,\n age: moment().diff(moment(tx.customerIdCardData.dateOfBirth), 'years'),\n country: tx.customerIdCardData.country,\n idCardNumber: tx.customerIdCardData.documentNumber,\n idCardExpirationDate: moment(tx.customerIdCardData.expirationDate).format(\n 'DD-MM-YYYY'\n )\n }\n\n return (\n
\n
\n
\n \n
\n \n {tx.txClass === 'cashOut' ? : }\n \n {tx.txClass === 'cashOut' ? 'Cash-out' : 'Cash-in'}\n
\n
\n\n
\n \n \n {tx.customerPhone && (\n \n {tx.customerPhone}\n \n )}\n {tx.customerIdCardPhotoPath && !tx.customerIdCardData && (\n \n \n \n )}\n {tx.customerIdCardData && (\n \n
\n
\n
\n \n
{customer.name}
\n
\n
\n \n
{customer.age}
\n
\n
\n \n
{customer.country}
\n
\n
\n
\n
\n \n
{customer.idCardNumber}
\n
\n
\n \n
{customer.idCardExpirationDate}
\n
\n
\n
\n \n )}\n {tx.customerFrontCameraPath && (\n \n \n \n )}\n
\n
\n
\n \n
{crypto > 0 ? displayExRate : '-'}
\n
\n
\n \n
\n {`${commission} ${tx.fiatCode} (${commissionPercentage * 100} %)`}\n
\n
\n
\n \n
\n {tx.txClass === 'cashIn'\n ? `${Number.parseFloat(tx.cashInFee)} ${tx.fiatCode}`\n : 'N/A'}\n
\n
\n
\n
\n
\n \n
\n \n {formatAddress(tx.cryptoCode, tx.toAddress)}\n \n
\n
\n
\n \n
\n {tx.txClass === 'cashOut' ? (\n 'N/A'\n ) : (\n {tx.txHash}\n )}\n
\n
\n
\n \n {tx.id}\n
\n
\n
\n
\n \n {getStatus(tx)}\n
\n
\n
\n )\n}\n\nexport default memo(DetailsRow, (prev, next) => prev.id === next.id)\n","import { useQuery } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core'\nimport BigNumber from 'bignumber.js'\nimport gql from 'graphql-tag'\nimport moment from 'moment'\nimport * as R from 'ramda'\nimport React from 'react'\n\nimport LogsDowloaderPopover from 'src/components/LogsDownloaderPopper'\nimport Title from 'src/components/Title'\nimport DataTable from 'src/components/tables/DataTable'\nimport { ReactComponent as TxInIcon } from 'src/styling/icons/direction/cash-in.svg'\nimport { ReactComponent as TxOutIcon } from 'src/styling/icons/direction/cash-out.svg'\nimport { toUnit, formatCryptoAddress } from 'src/utils/coin'\n\nimport DetailsRow from './DetailsCard'\nimport { mainStyles } from './Transactions.styles'\nimport { getStatus } from './helper'\n\nconst useStyles = makeStyles(mainStyles)\n\nconst NUM_LOG_RESULTS = 1000\n\nconst GET_TRANSACTIONS_CSV = gql`\n query transactions($limit: Int, $from: Date, $until: Date) {\n transactionsCsv(limit: $limit, from: $from, until: $until)\n }\n`\n\nconst GET_TRANSACTIONS = gql`\n query transactions($limit: Int, $from: Date, $until: Date) {\n transactions(limit: $limit, from: $from, until: $until) {\n id\n txClass\n txHash\n toAddress\n commissionPercentage\n expired\n machineName\n operatorCompleted\n sendConfirmed\n dispense\n hasError: error\n deviceId\n fiat\n cashInFee\n fiatCode\n cryptoAtoms\n cryptoCode\n toAddress\n created\n customerName\n customerIdCardData\n customerIdCardPhotoPath\n customerFrontCameraPath\n customerPhone\n }\n }\n`\n\nconst Transactions = () => {\n const classes = useStyles()\n\n const { data: txResponse, loading } = useQuery(GET_TRANSACTIONS, {\n variables: {\n limit: NUM_LOG_RESULTS\n }\n })\n\n const formatCustomerName = customer => {\n const { firstName, lastName } = customer\n\n return `${R.o(R.toUpper, R.head)(firstName)}. ${lastName}`\n }\n\n const getCustomerDisplayName = tx => {\n if (tx.customerName) return tx.customerName\n if (tx.customerIdCardData) return formatCustomerName(tx.customerIdCardData)\n return tx.customerPhone\n }\n\n const elements = [\n {\n header: '',\n width: 62,\n size: 'sm',\n view: it => (it.txClass === 'cashOut' ? : )\n },\n {\n header: 'Machine',\n name: 'machineName',\n width: 180,\n size: 'sm',\n view: R.path(['machineName'])\n },\n {\n header: 'Customer',\n width: 162,\n size: 'sm',\n view: getCustomerDisplayName\n },\n {\n header: 'Cash',\n width: 144,\n textAlign: 'right',\n size: 'sm',\n view: it => `${Number.parseFloat(it.fiat)} ${it.fiatCode}`\n },\n {\n header: 'Crypto',\n width: 144,\n textAlign: 'right',\n size: 'sm',\n view: it =>\n `${toUnit(new BigNumber(it.cryptoAtoms), it.cryptoCode).toFormat(5)} ${\n it.cryptoCode\n }`\n },\n {\n header: 'Address',\n view: it => formatCryptoAddress(it.cryptoCode, it.toAddress),\n className: classes.overflowTd,\n size: 'sm',\n width: 140\n },\n {\n header: 'Date (UTC)',\n view: it => moment.utc(it.created).format('YYYY-MM-DD HH:mm:ss'),\n textAlign: 'right',\n size: 'sm',\n width: 200\n },\n {\n header: 'Status',\n view: it => getStatus(it),\n size: 'sm',\n width: 80\n }\n ]\n\n return (\n <>\n
\n
\n Transactions\n {txResponse && (\n
\n R.path(['transactionsCsv'])(logs)}\n />\n
\n )}\n
\n
\n
\n \n Cash-out\n
\n
\n \n Cash-in\n
\n
\n
\n \n \n )\n}\n\nexport default Transactions\n","import { makeStyles, Box } from '@material-ui/core'\nimport classnames from 'classnames'\nimport { Field, useFormikContext } from 'formik'\nimport * as R from 'ramda'\nimport React, { memo } from 'react'\nimport * as Yup from 'yup'\n\nimport { TextInput, RadioGroup } from 'src/components/inputs/formik'\nimport { H4, Label2, Label1, Info2 } from 'src/components/typography'\n// import { ReactComponent as TxInIcon } from 'src/styling/icons/direction/cash-in.svg'\n// import { ReactComponent as TxOutIcon } from 'src/styling/icons/direction/cash-out.svg'\nimport { errorColor } from 'src/styling/variables'\n\nconst useStyles = makeStyles({\n radioLabel: {\n height: 40,\n padding: [[0, 10]]\n },\n radio: {\n padding: 4,\n margin: 4\n },\n radioGroup: {\n flexDirection: 'row'\n },\n error: {\n color: errorColor\n },\n specialLabel: {\n height: 40,\n padding: 0\n },\n specialGrid: {\n display: 'grid',\n gridTemplateColumns: [[182, 162, 141]]\n },\n directionIcon: {\n marginRight: 2\n },\n directionName: {\n marginLeft: 6\n },\n thresholdWrapper: {\n display: 'flex'\n },\n thresholdField: {\n margin: 10,\n width: 208\n },\n space: {\n marginLeft: 6,\n marginRight: 6\n },\n lastSpace: {\n marginLeft: 6\n },\n suspensionDays: {\n width: 34\n },\n input: {\n marginTop: -2\n },\n limitedInput: {\n width: 50\n },\n daysInput: {\n width: 60\n }\n})\n\n// const direction = Yup.string().required()\nconst triggerType = Yup.string().required()\nconst threshold = Yup.object().shape({\n threshold: Yup.number(),\n thresholdDays: Yup.number()\n})\nconst requirement = Yup.object().shape({\n requirement: Yup.string().required(),\n suspensionDays: Yup.number()\n})\n\nconst Schema = Yup.object().shape({\n triggerType,\n requirement,\n threshold\n // direction\n})\n\n// Direction V2 only\n// const directionSchema = Yup.object().shape({ direction })\n\n// const directionOptions = [\n// {\n// display: 'Both',\n// code: 'both'\n// },\n// {\n// display: 'Only cash-in',\n// code: 'cashIn'\n// },\n// {\n// display: 'Only cash-out',\n// code: 'cashOut'\n// }\n// ]\n\n// const directionOptions2 = [\n// {\n// display: (\n// <>\n// in\n// \n// ),\n// code: 'cashIn'\n// },\n// {\n// display: (\n// <>\n// out\n// \n// ),\n// code: 'cashOut'\n// },\n// {\n// display: (\n// <>\n// \n// \n// \n// \n// \n// \n// \n// \n// \n// ),\n// code: 'both'\n// }\n// ]\n\n// const Direction = () => {\n// const classes = useStyles()\n// const { errors } = useFormikContext()\n\n// const titleClass = {\n// [classes.error]: errors.direction\n// }\n\n// return (\n// <>\n// \n//

\n// In which type of transactions will it trigger?\n//

\n//
\n// \n// \n// )\n// }\n\n// const txDirection = {\n// schema: directionSchema,\n// options: directionOptions,\n// Component: Direction,\n// initialValues: { direction: '' }\n// }\n\n// TYPE\nconst typeSchema = Yup.object().shape({\n triggerType,\n threshold\n})\n\nconst typeOptions = [\n { display: 'Transaction amount', code: 'txAmount' },\n { display: 'Transaction volume', code: 'txVolume' },\n { display: 'Transaction velocity', code: 'txVelocity' },\n { display: 'Consecutive days', code: 'consecutiveDays' }\n]\n\nconst Type = () => {\n const classes = useStyles()\n const { errors, touched, values } = useFormikContext()\n\n const typeClass = {\n [classes.error]: errors.triggerType && touched.triggerType\n }\n\n const containsType = R.contains(values?.triggerType)\n const isThresholdEnabled = containsType([\n 'txAmount',\n 'txVolume',\n 'txVelocity'\n ])\n\n const isThresholdDaysEnabled = containsType([\n 'txVolume',\n 'txVelocity',\n 'consecutiveDays'\n ])\n\n return (\n <>\n \n

Choose trigger type

\n
\n \n\n
\n {isThresholdEnabled && (\n \n )}\n {isThresholdDaysEnabled && (\n \n )}\n
\n \n )\n}\n\nconst type = {\n schema: typeSchema,\n options: typeOptions,\n Component: Type,\n initialValues: { triggerType: '', threshold: '' }\n}\n\nconst requirementSchema = Yup.object().shape({\n requirement\n})\n\nconst requirementOptions = [\n { display: 'SMS verification', code: 'sms' },\n { display: 'ID card image', code: 'idCardPhoto' },\n { display: 'ID data', code: 'idCardData' },\n { display: 'Customer camera', code: 'facephoto' },\n { display: 'Sanctions', code: 'sanctions' },\n { display: 'US SSN', code: 'usSsn' },\n // { display: 'Super user', code: 'superuser' },\n { display: 'Suspend', code: 'suspend' },\n { display: 'Block', code: 'block' }\n]\n\nconst Requirement = () => {\n const classes = useStyles()\n const { errors, values } = useFormikContext()\n\n const titleClass = {\n [classes.error]: errors.requirement\n }\n\n const isSuspend = values?.requirement?.requirement === 'suspend'\n\n return (\n <>\n \n

Choose a requirement

\n
\n \n\n {isSuspend && (\n \n )}\n \n )\n}\n\nconst requirements = {\n schema: requirementSchema,\n options: requirementOptions,\n Component: Requirement,\n initialValues: { requirement: '' }\n}\n\nconst getView = (data, code, compare) => it => {\n if (!data) return ''\n\n return R.compose(R.prop(code), R.find(R.propEq(compare ?? 'code', it)))(data)\n}\n\n// const DirectionDisplay = ({ code }) => {\n// const classes = useStyles()\n// const displayName = getView(directionOptions, 'display')(code)\n// const showCashIn = code === 'cashIn' || code === 'both'\n// const showCashOut = code === 'cashOut' || code === 'both'\n\n// return (\n//
\n// {showCashOut && }\n// {showCashIn && }\n// {displayName}\n//
\n// )\n// }\n\nconst RequirementInput = () => {\n const { values } = useFormikContext()\n const classes = useStyles()\n\n const requirement = values?.requirement?.requirement\n const isSuspend = requirement === 'suspend'\n\n const display = getView(requirementOptions, 'display')(requirement)\n\n return (\n \n {`${display} ${isSuspend ? 'for' : ''}`}\n {isSuspend && (\n \n )}\n {isSuspend && 'days'}\n \n )\n}\n\nconst RequirementView = ({ requirement, suspensionDays }) => {\n const classes = useStyles()\n const display = getView(requirementOptions, 'display')(requirement)\n const isSuspend = requirement === 'suspend'\n\n return (\n \n {`${display} ${isSuspend ? 'for' : ''}`}\n {isSuspend && (\n \n {suspensionDays}\n \n )}\n {isSuspend && 'days'}\n \n )\n}\n\nconst DisplayThreshold = ({ config, currency, isEdit }) => {\n const classes = useStyles()\n\n const inputClasses = {\n [classes.input]: true,\n [classes.limitedInput]: config?.triggerType === 'txVelocity',\n [classes.daysInput]: config?.triggerType === 'consecutiveDays'\n }\n\n const threshold = config?.threshold?.threshold\n const thresholdDays = config?.threshold?.thresholdDays\n\n const Threshold = isEdit ? (\n \n ) : (\n {threshold}\n )\n const ThresholdDays = isEdit ? (\n \n ) : (\n {thresholdDays}\n )\n\n switch (config?.triggerType) {\n case 'txAmount':\n return (\n \n {Threshold}\n \n {currency}\n \n \n )\n case 'txVolume':\n return (\n \n {Threshold}\n \n {currency}\n \n \n in\n \n {ThresholdDays}\n \n days\n \n \n )\n case 'txVelocity':\n return (\n \n {Threshold}\n \n transactions in\n \n {ThresholdDays}\n \n days\n \n \n )\n case 'consecutiveDays':\n return (\n \n {ThresholdDays}\n \n days\n \n \n )\n default:\n return ''\n }\n}\n\nconst ThresholdInput = memo(({ currency }) => {\n const { values } = useFormikContext()\n\n return \n})\n\nconst ThresholdView = ({ config, currency }) => {\n return \n}\n\nconst getElements = (currency, classes) => [\n {\n name: 'triggerType',\n size: 'sm',\n width: 230,\n input: ({ field: { value: name } }) => (\n <>{getView(typeOptions, 'display')(name)}\n ),\n view: getView(typeOptions, 'display'),\n inputProps: {\n options: typeOptions,\n valueProp: 'code',\n getLabel: R.path(['display']),\n optionsLimit: null\n }\n },\n {\n name: 'requirement',\n size: 'sm',\n width: 230,\n bypassField: true,\n input: RequirementInput,\n view: it => \n },\n {\n name: 'threshold',\n size: 'sm',\n width: 284,\n textAlign: 'right',\n input: () => ,\n view: (it, config) => \n }\n // {\n // name: 'direction',\n // size: 'sm',\n // width: 282,\n // view: it => ,\n // input: RadioGroup,\n // inputProps: {\n // labelClassName: classes.tableRadioLabel,\n // className: classes.tableRadioGroup,\n // options: directionOptions2\n // }\n // }\n]\n\nconst triggerOrder = R.map(R.prop('code'))(typeOptions)\nconst sortBy = [\n R.comparator(\n (a, b) =>\n triggerOrder.indexOf(a.triggerType) < triggerOrder.indexOf(b.triggerType)\n )\n]\n\nconst fromServer = triggers =>\n R.map(\n ({ requirement, suspensionDays, threshold, thresholdDays, ...rest }) => ({\n requirement: {\n requirement,\n suspensionDays\n },\n threshold: {\n threshold,\n thresholdDays\n },\n ...rest\n })\n )(triggers)\n\nconst toServer = triggers =>\n R.map(({ requirement, threshold, ...rest }) => ({\n requirement: requirement.requirement,\n suspensionDays: requirement.suspensionDays,\n threshold: threshold.threshold,\n thresholdDays: threshold.thresholdDays,\n ...rest\n }))(triggers)\n\nexport {\n Schema,\n getElements,\n // txDirection,\n type,\n requirements,\n sortBy,\n fromServer,\n toServer\n}\n","import { makeStyles } from '@material-ui/core'\nimport { Form, Formik, useFormikContext } from 'formik'\nimport * as R from 'ramda'\nimport React, { useState, Fragment, useEffect } from 'react'\n\nimport ErrorMessage from 'src/components/ErrorMessage'\nimport Modal from 'src/components/Modal'\nimport Stepper from 'src/components/Stepper'\nimport { Button } from 'src/components/buttons'\nimport { H5, Info3 } from 'src/components/typography'\nimport { comet } from 'src/styling/variables'\n\nimport { type, requirements } from './helper'\n\nconst LAST_STEP = 2\n\nconst styles = {\n stepper: {\n margin: [[16, 0, 14, 0]]\n },\n submit: {\n display: 'flex',\n flexDirection: 'row',\n margin: [['auto', 0, 24]]\n },\n button: {\n marginLeft: 'auto'\n },\n form: {\n height: '100%',\n display: 'flex',\n flexDirection: 'column'\n },\n infoTitle: {\n margin: [[18, 0, 20, 0]]\n },\n infoCurrentText: {\n color: comet\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst getStep = step => {\n switch (step) {\n // case 1:\n // return txDirection\n case 1:\n return type\n case 2:\n return requirements\n default:\n return Fragment\n }\n}\n\nconst getText = (step, config, currency) => {\n switch (step) {\n // case 1:\n // return `In ${getDirectionText(config)} transactions`\n case 1:\n return `If the user ${getTypeText(config, currency)}`\n case 2:\n return `the user will be ${getRequirementText(config)}.`\n default:\n return ''\n }\n}\n\nconst orUnderline = value => {\n return R.isEmpty(value) || R.isNil(value) ? '⎼⎼⎼⎼⎼ ' : value\n}\n\n// const getDirectionText = config => {\n// switch (config.direction) {\n// case 'both':\n// return 'both cash-in and cash-out'\n// case 'cashIn':\n// return 'cash-in'\n// case 'cashOut':\n// return 'cash-out'\n// default:\n// return orUnderline(null)\n// }\n// }\n\nconst getTypeText = (config, currency) => {\n switch (config.triggerType) {\n case 'txAmount':\n return `makes a single transaction over ${orUnderline(\n config.threshold.threshold\n )} ${currency}`\n case 'txVolume':\n return `makes transactions over ${orUnderline(\n config.threshold.threshold\n )} ${currency} in ${orUnderline(config.threshold.thresholdDays)} days`\n case 'txVelocity':\n return `makes ${orUnderline(\n config.threshold.threshold\n )} transactions in ${orUnderline(config.threshold.thresholdDays)} days`\n case 'consecutiveDays':\n return `at least one transaction every day for ${orUnderline(\n config.threshold.thresholdDays\n )} days`\n default:\n return ''\n }\n}\n\nconst getRequirementText = config => {\n switch (config.requirement?.requirement) {\n case 'sms':\n return 'asked to enter code provided through SMS verification'\n case 'idCardPhoto':\n return 'asked to scan a ID with photo'\n case 'idCardData':\n return 'asked to scan a ID'\n case 'facephoto':\n return 'asked to have a photo taken'\n case 'usSsn':\n return 'asked to input his social security number'\n case 'sanctions':\n return 'matched against the OFAC sanctions list'\n case 'superuser':\n return ''\n case 'suspend':\n return `suspended for ${orUnderline(\n config.requirement.suspensionDays\n )} days`\n case 'block':\n return 'blocked'\n default:\n return orUnderline(null)\n }\n}\n\nconst InfoPanel = ({ step, config = {}, liveValues = {}, currency }) => {\n const classes = useStyles()\n\n const oldText = R.range(1, step)\n .map(it => getText(it, config, currency))\n .join(', ')\n const newText = getText(step, liveValues, currency)\n const isLastStep = step === LAST_STEP\n\n return (\n <>\n
Trigger overview so far
\n \n {oldText}\n {step !== 1 && ', '}\n {newText}\n {!isLastStep && '...'}\n \n \n )\n}\n\nconst GetValues = ({ setValues }) => {\n const { values } = useFormikContext()\n useEffect(() => {\n setValues && values && setValues(values)\n }, [setValues, values])\n\n return null\n}\n\nconst Wizard = ({ onClose, save, error, currency }) => {\n const classes = useStyles()\n\n const [liveValues, setLiveValues] = useState({})\n const [{ step, config }, setState] = useState({\n step: 1\n })\n\n const isLastStep = step === LAST_STEP\n const stepOptions = getStep(step)\n\n const onContinue = async it => {\n const newConfig = R.merge(config, stepOptions.schema.cast(it))\n\n if (isLastStep) {\n return save(newConfig)\n }\n\n setState({\n step: step + 1,\n config: newConfig\n })\n }\n\n return (\n <>\n \n }\n infoPanelHeight={172}\n open={true}>\n \n \n
\n \n \n
\n {error && Failed to save}\n \n
\n \n \n \n \n )\n}\n\nexport default Wizard\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles, Box } from '@material-ui/core'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\nimport { v4 } from 'uuid'\n\nimport Tooltip from 'src/components/Tooltip'\nimport { Link, Button } from 'src/components/buttons'\nimport { Table as EditableTable } from 'src/components/editableTable'\nimport { Switch } from 'src/components/inputs'\nimport TitleSection from 'src/components/layout/TitleSection'\nimport { P, Label2, H2 } from 'src/components/typography'\nimport { fromNamespace, toNamespace, namespaces } from 'src/utils/config'\n\nimport styles from './Triggers.styles'\nimport Wizard from './Wizard'\nimport { Schema, getElements, sortBy, fromServer, toServer } from './helper'\n\nconst useStyles = makeStyles(styles)\n\nconst SAVE_CONFIG = gql`\n mutation Save($config: JSONObject) {\n saveConfig(config: $config)\n }\n`\n\nconst GET_INFO = gql`\n query getData {\n config\n }\n`\n\nconst Triggers = () => {\n const classes = useStyles()\n const [wizard, setWizard] = useState(false)\n\n const { data, loading } = useQuery(GET_INFO)\n const triggers = fromServer(data?.config?.triggers ?? [])\n\n const complianceConfig =\n data?.config && fromNamespace('compliance')(data.config)\n const rejectAddressReuse = complianceConfig?.rejectAddressReuse ?? false\n\n const [saveConfig, { error }] = useMutation(SAVE_CONFIG, {\n onCompleted: () => setWizard(false),\n refetchQueries: () => ['getData']\n })\n\n const add = rawConfig => {\n const toSave = R.concat([{ id: v4(), direction: 'both', ...rawConfig }])(\n triggers\n )\n return saveConfig({ variables: { config: { triggers: toServer(toSave) } } })\n }\n\n const addressReuseSave = rawConfig => {\n const config = toNamespace('compliance')(rawConfig)\n return saveConfig({ variables: { config } })\n }\n\n const save = config => {\n return saveConfig({\n variables: { config: { triggers: toServer(config.triggers) } }\n })\n }\n\n const currency = R.path(['fiatCurrency'])(\n fromNamespace(namespaces.LOCALE)(data?.config)\n )\n\n return (\n <>\n \n \n \n

Reject reused addresses

\n {\n addressReuseSave({ rejectAddressReuse: event.target.checked })\n }}\n value={rejectAddressReuse}\n />\n \n {rejectAddressReuse ? 'On' : 'Off'}\n \n \n

\n This option requires a user to scan a different cryptocurrency\n address if they attempt to scan one that had been previously\n used for a transaction in your network\n

\n
\n
\n \n
\n \n {!loading && !R.isEmpty(triggers) && (\n setWizard(true)}>\n + Add new trigger\n \n )}\n \n \n {wizard && (\n setWizard(null)}\n />\n )}\n {!loading && R.isEmpty(triggers) && (\n \n

\n It seems there are no active compliance triggers on your network\n

\n \n
\n )}\n \n )\n}\n\nexport default Triggers\n","export default {\n switchLabel: {\n margin: 6,\n width: 24\n },\n tableRadioGroup: {\n flexDirection: 'row',\n justifyContent: 'space-between'\n },\n tableRadioLabel: {\n marginRight: 0\n },\n tableWidth: {\n width: 918\n }\n}\n","import Triggers from './Triggers'\n\nexport default Triggers\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport Modal from 'src/components/Modal'\nimport { NamespacedTable as EditableTable } from 'src/components/editableTable'\nimport TitleSection from 'src/components/layout/TitleSection'\nimport FormRenderer from 'src/pages/Services/FormRenderer'\nimport schemas from 'src/pages/Services/schemas'\nimport { fromNamespace, toNamespace } from 'src/utils/config'\n\nimport Wizard from './Wizard'\nimport { WalletSchema, getElements } from './helper'\n\nconst SAVE_CONFIG = gql`\n mutation Save($config: JSONObject, $accounts: JSONObject) {\n saveConfig(config: $config)\n saveAccounts(accounts: $accounts)\n }\n`\n\nconst SAVE_ACCOUNT = gql`\n mutation Save($accounts: JSONObject) {\n saveAccounts(accounts: $accounts)\n }\n`\n\nconst GET_INFO = gql`\n query getData {\n config\n accounts\n accountsConfig {\n code\n display\n class\n cryptos\n }\n cryptoCurrencies {\n code\n display\n }\n }\n`\n\nconst Wallet = ({ name: SCREEN_KEY }) => {\n const [editingSchema, setEditingSchema] = useState(null)\n const [onChangeFunction, setOnChangeFunction] = useState(null)\n const [wizard, setWizard] = useState(false)\n const { data } = useQuery(GET_INFO)\n\n const [saveConfig, { error }] = useMutation(SAVE_CONFIG, {\n onCompleted: () => setWizard(false),\n refetchQueries: () => ['getData']\n })\n\n const [saveAccount] = useMutation(SAVE_ACCOUNT, {\n onCompleted: () => setEditingSchema(null),\n refetchQueries: () => ['getData']\n })\n\n const save = (rawConfig, accounts) => {\n const config = toNamespace(SCREEN_KEY)(rawConfig)\n return saveConfig({ variables: { config, accounts } })\n }\n\n const config = data?.config && fromNamespace(SCREEN_KEY)(data.config)\n const accountsConfig = data?.accountsConfig\n const cryptoCurrencies = data?.cryptoCurrencies ?? []\n const accounts = data?.accounts ?? []\n\n const onChange = (previous, current, setValue) => {\n if (!current) return setValue(current)\n\n if (!accounts[current] && schemas[current]) {\n setEditingSchema(schemas[current])\n setOnChangeFunction(() => () => setValue(current))\n return\n }\n\n setValue(current)\n }\n\n const shouldOverrideEdit = it => {\n const namespaced = fromNamespace(it)(config)\n return !WalletSchema.isValidSync(namespaced)\n }\n\n const wizardSave = it =>\n saveAccount({\n variables: { accounts: { [editingSchema.code]: it } }\n }).then(it => {\n onChangeFunction()\n setOnChangeFunction(null)\n return it\n })\n\n return (\n <>\n \n !WalletSchema.isValidSync(it)}\n enableEdit\n shouldOverrideEdit={shouldOverrideEdit}\n editOverride={setWizard}\n editWidth={174}\n save={save}\n validationSchema={WalletSchema}\n elements={getElements(cryptoCurrencies, accountsConfig, onChange)}\n />\n {wizard && (\n setWizard(false)}\n save={save}\n error={error?.message}\n cryptoCurrencies={cryptoCurrencies}\n userAccounts={data?.config?.accounts}\n accounts={accounts}\n accountsConfig={accountsConfig}\n />\n )}\n {editingSchema && (\n setEditingSchema(null)}\n open={true}>\n \n \n )}\n \n )\n}\n\nexport default Wallet\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React from 'react'\n\nimport { Table as EditableTable } from 'src/components/editableTable'\nimport Section from 'src/components/layout/Section'\nimport TitleSection from 'src/components/layout/TitleSection'\nimport styles from 'src/pages/AddMachine/styles'\nimport { mainFields, defaults, schema } from 'src/pages/Commissions/helper'\nimport { fromNamespace, toNamespace, namespaces } from 'src/utils/config'\n\nconst useStyles = makeStyles(styles)\n\nconst GET_DATA = gql`\n query getData {\n config\n }\n`\nconst SAVE_CONFIG = gql`\n mutation Save($config: JSONObject) {\n saveConfig(config: $config)\n }\n`\n\nfunction Commissions({ isActive, doContinue }) {\n const classes = useStyles()\n const { data } = useQuery(GET_DATA)\n\n const [saveConfig] = useMutation(SAVE_CONFIG, {\n onCompleted: doContinue\n })\n\n const save = it => {\n const config = toNamespace('commissions')(it.commissions[0])\n return saveConfig({ variables: { config } })\n }\n\n const currency = R.path(['fiatCurrency'])(\n fromNamespace(namespaces.LOCALE)(data?.config)\n )\n\n return (\n
\n \n
\n \n
\n
\n )\n}\n\nexport default Commissions\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React from 'react'\n\nimport { Table as EditableTable } from 'src/components/editableTable'\nimport Section from 'src/components/layout/Section'\nimport TitleSection from 'src/components/layout/TitleSection'\nimport styles from 'src/pages/AddMachine/styles'\nimport {\n mainFields,\n localeDefaults as defaults,\n LocaleSchema as schema\n} from 'src/pages/Locales/helper'\nimport { toNamespace } from 'src/utils/config'\n\nimport { getConfiguredCoins } from '../helper'\n\nconst useStyles = makeStyles(styles)\n\nconst GET_DATA = gql`\n query getData {\n config\n accounts\n currencies {\n code\n display\n }\n countries {\n code\n display\n }\n cryptoCurrencies {\n code\n display\n }\n languages {\n code\n display\n }\n machines {\n name\n deviceId\n }\n }\n`\n\nconst SAVE_CONFIG = gql`\n mutation Save($config: JSONObject) {\n saveConfig(config: $config)\n }\n`\n\nfunction Locales({ isActive, doContinue }) {\n const classes = useStyles()\n const { data } = useQuery(GET_DATA)\n\n const [saveConfig] = useMutation(SAVE_CONFIG, {\n onCompleted: doContinue\n })\n\n const save = it => {\n const config = toNamespace('locale')(it.locale[0])\n return saveConfig({ variables: { config } })\n }\n\n const cryptoCurrencies = getConfiguredCoins(\n data?.config || {},\n data?.cryptoCurrencies || []\n )\n\n const onChangeCoin = (prev, curr, setValue) => setValue(curr)\n\n return (\n
\n \n
\n \n
\n
\n )\n}\n\nexport default Locales\n","import { Box, makeStyles } from '@material-ui/core'\nimport React from 'react'\n\nimport { Label1 } from 'src/components/typography'\nimport { ReactComponent as WarningIcon } from 'src/styling/icons/warning-icon/comet.svg'\n\nconst useStyles = makeStyles({\n message: ({ width }) => ({\n width,\n marginTop: 4,\n marginLeft: 16\n })\n})\n\nconst InfoMessage = ({ children, width = 330, className }) => {\n const classes = useStyles({ width })\n\n return (\n \n \n {children}\n \n )\n}\n\nexport default InfoMessage\n","import { errorColor, spacer, primaryColor } from 'src/styling/variables'\n\nconst LABEL_WIDTH = 150\n\nexport default {\n radioGroup: {\n flexDirection: 'row',\n width: 600\n },\n radioLabel: {\n width: LABEL_WIDTH,\n height: 48\n },\n mdForm: {\n width: 385\n },\n infoMessage: {\n display: 'flex',\n marginBottom: 20,\n '& > p': {\n width: 330,\n marginTop: 4,\n marginLeft: 16\n }\n },\n actionButton: {\n marginBottom: spacer * 4\n },\n actionButtonLink: {\n textDecoration: 'none',\n color: primaryColor\n },\n error: {\n color: errorColor\n },\n button: {\n marginTop: spacer * 5\n },\n formButton: {\n margin: [[spacer * 3, 0, 0]]\n }\n}\n","import { useMutation, useQuery } from '@apollo/react-hooks'\nimport { makeStyles, Box } from '@material-ui/core'\nimport classnames from 'classnames'\nimport gql from 'graphql-tag'\nimport React, { useState } from 'react'\n\nimport InfoMessage from 'src/components/InfoMessage'\nimport Tooltip from 'src/components/Tooltip'\nimport { Button, SupportLinkButton } from 'src/components/buttons'\nimport { RadioGroup } from 'src/components/inputs'\nimport { H1, H4, P } from 'src/components/typography'\nimport FormRenderer from 'src/pages/Services/FormRenderer'\nimport twilio from 'src/pages/Services/schemas/twilio'\n\nimport styles from './Wallet/Shared.styles'\n\nconst GET_CONFIG = gql`\n {\n config\n accounts\n }\n`\n\nconst SAVE_ACCOUNTS = gql`\n mutation Save($accounts: JSONObject) {\n saveAccounts(accounts: $accounts)\n }\n`\n\nconst useStyles = makeStyles({\n ...styles,\n content: {\n width: 820\n },\n radioLabel: {\n ...styles.radioLabel,\n width: 280\n },\n wrapper: {\n width: 1200,\n height: 100,\n margin: [[0, 'auto']]\n },\n title: {\n marginLeft: 8,\n marginBottom: 5\n },\n info: {\n marginTop: 20,\n marginBottom: 20\n }\n})\n\nconst options = [\n {\n code: 'enable',\n display: 'Yes, I will'\n },\n {\n code: 'disable',\n display: 'No, not for now'\n }\n]\n\nfunction Twilio({ doContinue }) {\n const classes = useStyles()\n const [selected, setSelected] = useState(null)\n const [error, setError] = useState(false)\n\n const { data, refetch } = useQuery(GET_CONFIG)\n const [saveAccounts] = useMutation(SAVE_ACCOUNTS, {\n onCompleted: doContinue\n })\n\n const accounts = data?.accounts ?? []\n\n const onSelect = e => {\n setSelected(e.target.value)\n setError(false)\n }\n\n const clickContinue = () => {\n if (!selected) return setError(true)\n doContinue()\n }\n\n const save = twilio => {\n const accounts = { twilio }\n return saveAccounts({ variables: { accounts } }).then(() => refetch())\n }\n\n const titleClasses = {\n [classes.title]: true,\n [classes.error]: error\n }\n\n return (\n
\n
\n

Twilio (SMS service)

\n \n

\n Will you setup a two way machine or compliance?\n

\n \n

\n Two-way machines allow your customers not only to buy (cash-in)\n but also sell cryptocurrencies (cash-out).\n

\n

\n You’ll need an SMS service for cash-out transactions and for any\n compliance triggers\n

\n
\n
\n\n \n\n \n To set up Twilio please read the instructions from our support portal.\n \n \n\n {selected === 'enable' && (\n <>\n

Enter credentials

\n \n \n )}\n {selected !== 'enable' && (\n \n )}\n
\n
\n )\n}\n\nexport default Twilio\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport { Button } from 'src/components/buttons'\nimport { NamespacedTable as EditableTable } from 'src/components/editableTable'\nimport { P, H4 } from 'src/components/typography'\nimport { getElements, WalletSchema } from 'src/pages/Wallet/helper'\nimport { toNamespace, namespaces } from 'src/utils/config'\n\nimport styles from './Shared.styles'\n\nconst useStyles = makeStyles(styles)\nconst GET_INFO = gql`\n query getData {\n config\n accounts\n accountsConfig {\n code\n display\n class\n cryptos\n }\n cryptoCurrencies {\n code\n display\n }\n }\n`\n\nconst SAVE_CONFIG = gql`\n mutation Save($config: JSONObject, $accounts: JSONObject) {\n saveConfig(config: $config)\n saveAccounts(accounts: $accounts)\n }\n`\n\nconst AllSet = ({ data: currentData, doContinue }) => {\n const classes = useStyles()\n\n const { data } = useQuery(GET_INFO)\n const [saveConfig] = useMutation(SAVE_CONFIG, {\n onCompleted: doContinue\n })\n\n const [error, setError] = useState(false)\n\n const coin = currentData?.coin\n\n const accountsConfig = data?.accountsConfig\n const cryptoCurrencies = data?.cryptoCurrencies ?? []\n\n const save = () => {\n if (!WalletSchema.isValidSync(currentData)) return setError(true)\n\n const withCoin = toNamespace(coin, R.omit('coin', currentData))\n const config = toNamespace(namespaces.WALLETS)(withCoin)\n setError(false)\n return saveConfig({ variables: { config } })\n }\n\n return (\n <>\n

All set

\n

\n These are your wallet settings. You can later edit these and add\n additional coins.\n

\n \n \n \n )\n}\n\nexport default AllSet\n","import { useMutation, useQuery } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core'\nimport gql from 'graphql-tag'\nimport React, { useState } from 'react'\n\nimport { SupportLinkButton, Button } from 'src/components/buttons'\nimport { RadioGroup } from 'src/components/inputs'\nimport { P, H4 } from 'src/components/typography'\nimport FormRenderer from 'src/pages/Services/FormRenderer'\nimport schema from 'src/pages/Services/schemas'\n\nimport styles from './Shared.styles'\n\nconst useStyles = makeStyles({\n ...styles,\n radioGroup: styles.radioGroup,\n radioLabel: {\n ...styles.radioLabel,\n width: 200\n }\n})\n\nconst GET_CONFIG = gql`\n {\n accounts\n }\n`\nconst SAVE_ACCOUNTS = gql`\n mutation SaveAccountsBC($accounts: JSONObject) {\n saveAccounts(accounts: $accounts)\n }\n`\n\nconst options = [\n {\n code: 'enable',\n display: 'I will enable cash-out'\n },\n {\n code: 'disable',\n display: \"I won't enable cash-out\"\n }\n]\n\nconst Blockcypher = ({ addData }) => {\n const classes = useStyles()\n\n const { data } = useQuery(GET_CONFIG)\n const [saveConfig] = useMutation(SAVE_ACCOUNTS, {\n onCompleted: () => addData({ zeroConf: 'blockcypher' })\n })\n\n const [selected, setSelected] = useState(null)\n const [error, setError] = useState(false)\n\n const accounts = data?.accounts ?? []\n\n const onSelect = e => {\n setSelected(e.target.value)\n setError(false)\n }\n\n const save = blockcypher => {\n const accounts = { blockcypher }\n return saveConfig({ variables: { accounts } })\n }\n\n return (\n <>\n

Blockcypher

\n

\n If you are enabling cash-out services, create a Blockcypher account.\n

\n \n \n
\n {selected === 'disable' && (\n addData({ zeroConf: 'all-zero-conf' })}\n className={classes.button}>\n Continue\n \n )}\n {selected === 'enable' && (\n \n )}\n
\n \n )\n}\n\nexport default Blockcypher\n","import { useQuery } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core'\nimport { Formik, Form, Field } from 'formik'\nimport gql from 'graphql-tag'\nimport React, { useState } from 'react'\nimport * as Yup from 'yup'\n\nimport PromptWhenDirty from 'src/components/PromptWhenDirty'\nimport { Button } from 'src/components/buttons'\nimport { RadioGroup } from 'src/components/inputs/formik'\nimport { H4 } from 'src/components/typography'\n\nimport styles from './Shared.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst GET_CONFIG = gql`\n {\n cryptoCurrencies {\n code\n display\n }\n }\n`\n\nconst schema = Yup.object().shape({\n coin: Yup.string().required()\n})\n\nconst ChooseCoin = ({ addData }) => {\n const classes = useStyles()\n const [error, setError] = useState(false)\n\n const { data } = useQuery(GET_CONFIG)\n const cryptoCurrencies = data?.cryptoCurrencies ?? []\n\n const onSubmit = it => {\n if (!schema.isValidSync(it)) return setError(true)\n\n if (it.coin !== 'BTC') {\n return addData({ coin: it.coin, zeroConf: 'all-zero-conf' })\n }\n\n addData(it)\n }\n\n return (\n <>\n

\n Choose your first cryptocurrency\n

\n\n \n
setError(false)}>\n \n \n {\n \n }\n \n \n \n )\n}\n\nexport default ChooseCoin\n","import * as R from 'ramda'\n\nimport schema from 'src/pages/Services/schemas'\nconst contains = crypto => R.compose(R.contains(crypto), R.prop('cryptos'))\nconst sameClass = type => R.propEq('class', type)\nconst filterConfig = (crypto, type) =>\n R.filter(it => sameClass(type)(it) && contains(crypto)(it))\nexport const getItems = (accountsConfig, accounts, type, crypto) => {\n const fConfig = filterConfig(crypto, type)(accountsConfig)\n const find = code => accounts && accounts[code]\n\n const [filled, unfilled] = R.partition(({ code }) => {\n const account = find(code)\n if (!schema[code]) return true\n\n const { validationSchema } = schema[code]\n return validationSchema.isValidSync(account)\n })(fConfig)\n\n return { filled, unfilled }\n}\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport { Button, SupportLinkButton } from 'src/components/buttons'\nimport { RadioGroup } from 'src/components/inputs'\nimport { H4, Info3 } from 'src/components/typography'\nimport FormRenderer from 'src/pages/Services/FormRenderer'\nimport schema from 'src/pages/Services/schemas'\nimport { ReactComponent as WarningIcon } from 'src/styling/icons/warning-icon/comet.svg'\n\nimport styles from './Shared.styles'\nimport { getItems } from './getItems'\n\nconst useStyles = makeStyles(styles)\n\nconst GET_CONFIG = gql`\n {\n accounts\n accountsConfig {\n code\n display\n class\n cryptos\n }\n cryptoCurrencies {\n code\n display\n }\n }\n`\n\nconst SAVE_ACCOUNTS = gql`\n mutation Save($accounts: JSONObject) {\n saveAccounts(accounts: $accounts)\n }\n`\n\nconst isConfigurable = it => R.contains(it)(['kraken', 'itbit', 'bitstamp'])\n\nconst ChooseExchange = ({ data: currentData, addData }) => {\n const classes = useStyles()\n const { data } = useQuery(GET_CONFIG)\n const [saveAccounts] = useMutation(SAVE_ACCOUNTS, {\n onCompleted: () => submit()\n })\n\n const [selected, setSelected] = useState(null)\n const [error, setError] = useState(false)\n\n const accounts = data?.accounts ?? []\n const accountsConfig = data?.accountsConfig ?? []\n\n const coin = currentData.coin\n const exchanges = getItems(accountsConfig, accounts, 'exchange', coin)\n\n const submit = () => {\n if (!selected) return setError(true)\n addData({ exchange: selected })\n }\n\n const saveExchange = name => exchange => {\n const accounts = { [name]: exchange }\n return saveAccounts({ variables: { accounts } })\n }\n\n const onSelect = e => {\n setSelected(e.target.value)\n setError(false)\n }\n\n const supportArticles = {\n kraken:\n 'https://support.lamassu.is/hc/en-us/articles/115001206891-Kraken-trading',\n itbit:\n 'https://support.lamassu.is/hc/en-us/articles/360026195032-itBit-trading',\n bitstamp:\n 'https://support.lamassu.is/hc/en-us/articles/115001206911-Bitstamp-trading'\n }\n\n return (\n
\n

Choose your exchange

\n \n {!isConfigurable(selected) && (\n \n )}\n {isConfigurable(selected) && (\n <>\n
\n \n \n Make sure you set up {schema[selected].name} to enter the\n necessary information below. Please follow the instructions on our\n support page if you haven’t.\n \n
\n \n\n

Enter exchange information

\n \n \n )}\n
\n )\n}\n\nexport default ChooseExchange\n","import { useQuery } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport { Button } from 'src/components/buttons'\nimport { RadioGroup } from 'src/components/inputs'\nimport { H4 } from 'src/components/typography'\n\nimport styles from './Shared.styles'\nimport { getItems } from './getItems'\n\nconst useStyles = makeStyles(styles)\n\nconst GET_CONFIG = gql`\n {\n accountsConfig {\n code\n display\n class\n cryptos\n }\n }\n`\n\nconst ChooseTicker = ({ data: currentData, addData }) => {\n const classes = useStyles()\n const { data } = useQuery(GET_CONFIG)\n\n const [selected, setSelected] = useState(null)\n const [error, setError] = useState(false)\n\n const accounts = data?.accounts ?? []\n const accountsConfig = data?.accountsConfig ?? []\n\n const coin = currentData.coin\n const tickers = getItems(accountsConfig, accounts, 'ticker', coin)\n\n const submit = () => {\n if (!selected) return setError(true)\n addData({ ticker: selected })\n }\n\n const onSelect = e => {\n setSelected(e.target.value)\n setError(false)\n }\n\n return (\n
\n

Choose your ticker

\n \n \n
\n )\n}\n\nexport default ChooseTicker\n","import * as Yup from 'yup'\n\nimport {\n TextInput,\n SecretInput,\n Autocomplete\n} from 'src/components/inputs/formik'\n\nexport default code => ({\n code: 'bitgo',\n name: 'BitGo',\n title: 'BitGo (Wallet)',\n elements: [\n {\n code: 'token',\n display: 'API Token',\n component: TextInput,\n face: true,\n long: true\n },\n {\n code: 'environment',\n display: 'Environment',\n component: Autocomplete,\n inputProps: {\n options: ['prod', 'test']\n },\n face: true\n },\n {\n code: `${code}WalletId`,\n display: `${code} Wallet ID`,\n component: TextInput\n },\n {\n code: `${code}WalletPassphrase`,\n display: `${code} Wallet Passphrase`,\n component: SecretInput\n }\n ],\n validationSchema: Yup.object().shape({\n token: Yup.string()\n .max(100, 'Too long')\n .required(),\n environment: Yup.string()\n .matches(/(prod|test)/)\n .required(),\n [`${code}WalletId`]: Yup.string()\n .max(100, 'Too long')\n .required(),\n [`${code}WalletPassphrase`]: Yup.string()\n .max(100, 'Too long')\n .required()\n })\n})\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport { Button, SupportLinkButton } from 'src/components/buttons'\nimport { RadioGroup } from 'src/components/inputs'\nimport { H4, Info3 } from 'src/components/typography'\nimport FormRenderer from 'src/pages/Services/FormRenderer'\nimport schema from 'src/pages/Services/schemas'\nimport bitgo from 'src/pages/Services/schemas/singlebitgo'\nimport { ReactComponent as WarningIcon } from 'src/styling/icons/warning-icon/comet.svg'\n\nimport styles from './Shared.styles'\nimport { getItems } from './getItems'\n\nconst useStyles = makeStyles(styles)\n\nconst GET_CONFIG = gql`\n {\n accounts\n accountsConfig {\n code\n display\n class\n cryptos\n }\n cryptoCurrencies {\n code\n display\n }\n }\n`\n\nconst SAVE_ACCOUNTS = gql`\n mutation Save($accounts: JSONObject) {\n saveAccounts(accounts: $accounts)\n }\n`\n\nconst isConfigurable = it => R.contains(it)(['infura', 'bitgo'])\n\nconst isLocalHosted = it =>\n R.contains(it)([\n 'bitcoind',\n 'geth',\n 'litecoind',\n 'dashd',\n 'zcashd',\n 'bitcoincashd'\n ])\n\nconst ChooseWallet = ({ data: currentData, addData }) => {\n const classes = useStyles()\n const { data } = useQuery(GET_CONFIG)\n const [saveAccounts] = useMutation(SAVE_ACCOUNTS, {\n onCompleted: () => submit()\n })\n\n const [selected, setSelected] = useState(null)\n const [error, setError] = useState(false)\n\n const accounts = data?.accounts ?? []\n const accountsConfig = data?.accountsConfig ?? []\n\n const coin = currentData.coin\n const wallets = getItems(accountsConfig, accounts, 'wallet', coin)\n\n const saveWallet = name => wallet => {\n const accounts = { [name]: wallet }\n return saveAccounts({ variables: { accounts } })\n }\n\n const submit = () => {\n if (!selected) return setError(true)\n addData({ wallet: selected })\n }\n\n const onSelect = e => {\n setSelected(e.target.value)\n setError(false)\n }\n\n return (\n
\n

Choose your wallet

\n \n {isLocalHosted(selected) && (\n <>\n
\n \n \n To set up {selected} please read the node wallet instructions from\n our support portal.\n \n
\n \n \n )}\n {!isConfigurable(selected) && (\n \n )}\n {selected === 'bitgo' && (\n <>\n
\n \n \n Make sure you set up a BitGo wallet to enter the necessary\n information below. Please follow the instructions on our support\n page if you haven’t.\n \n
\n \n

Enter wallet information

\n \n \n )}\n {selected === 'infura' && (\n <>\n

Enter wallet information

\n \n \n )}\n
\n )\n}\n\nexport default ChooseWallet\n","import { makeStyles } from '@material-ui/core'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport Sidebar, { Stepper } from 'src/components/layout/Sidebar'\nimport TitleSection from 'src/components/layout/TitleSection'\nimport styles from 'src/pages/AddMachine/styles'\n\nimport AllSet from './AllSet'\nimport Blockcypher from './Blockcypher'\nimport ChooseCoin from './ChooseCoin'\nimport ChooseExchange from './ChooseExchange'\nimport ChooseTicker from './ChooseTicker'\nimport ChooseWallet from './ChooseWallet'\n\nconst useStyles = makeStyles(styles)\n\nconst steps = [\n {\n label: 'Choose cryptocurrency',\n component: ChooseCoin\n },\n {\n label: 'Choose wallet',\n component: ChooseWallet\n },\n {\n label: 'Choose ticker',\n component: ChooseTicker\n },\n {\n label: 'Exchange',\n component: ChooseExchange\n },\n {\n label: 'Blockcypher',\n component: Blockcypher\n },\n {\n label: 'All set',\n component: AllSet\n }\n]\n\nconst Wallet = ({ doContinue }) => {\n const [step, setStep] = useState(0)\n const [data, setData] = useState({})\n\n const classes = useStyles()\n const mySteps = data?.coin === 'BTC' ? steps : R.remove(4, 1, steps)\n\n const Component = mySteps[step].component\n\n const addData = it => {\n setData(R.merge(data, it))\n setStep(step + 1)\n }\n\n return (\n
\n
\n \n
\n
\n \n {mySteps.map((it, idx) => (\n \n ))}\n \n
\n \n
\n
\n
\n )\n}\n\nexport default Wallet\n","import { makeStyles } from '@material-ui/core'\nimport React from 'react'\n\nimport { Button } from 'src/components/buttons'\nimport { H1, P } from 'src/components/typography'\nimport { comet } from 'src/styling/variables'\n\nconst styles = {\n welcome: {\n textAlign: 'center',\n paddingTop: 256\n },\n title: {\n lineHeight: 1,\n fontSize: 48\n },\n getStarted: {\n fontSize: 24,\n fontWeight: 500,\n marginBottom: 54,\n color: comet\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nfunction Welcome({ doContinue }) {\n const classes = useStyles()\n\n return (\n
\n

Welcome to Lamassu Admin

\n

\n To get started, we’ve put together wizard that will\n
\n help set up you need before start adding machines.\n

\n \n
\n )\n}\n\nexport default Welcome\n","import * as R from 'ramda'\nimport React from 'react'\n\nimport { schema as CommissionsSchema } from 'src/pages/Commissions/helper'\nimport { LocaleSchema } from 'src/pages/Locales/helper'\nimport { WalletSchema } from 'src/pages/Wallet/helper'\nimport { fromNamespace, namespaces } from 'src/utils/config'\n\nimport Commissions from './components/Commissions'\nimport Locale from './components/Locales'\n// import Notifications from './components/Notifications'\n// import WizardOperatorInfo from './components/OperatorInfo'\nimport Twilio from './components/Twilio'\nimport Wallet from './components/Wallet/Wallet'\nimport Welcome from './components/Welcome'\n\nconst getConfiguredCoins = (config, crypto) => {\n const wallet = fromNamespace(namespaces.WALLETS, config)\n return R.filter(it =>\n WalletSchema.isValidSync(fromNamespace(it.code, wallet))\n )(crypto)\n}\n\nconst hasValidWallet = (config, crypto) => {\n const wallet = fromNamespace(namespaces.WALLETS, config)\n const coins = R.map(it => fromNamespace(it.code, wallet))(crypto)\n\n const hasValidConfig = R.compose(\n R.any(R.identity),\n R.map(it => WalletSchema.isValidSync(it))\n )(coins)\n\n return hasValidConfig\n}\n\nconst hasValidLocale = config => {\n const locale = fromNamespace(namespaces.LOCALE, config)\n return LocaleSchema.isValidSync(locale)\n}\n\nconst hasValidCommissions = config => {\n const commission = fromNamespace(namespaces.COMMISSIONS, config)\n return CommissionsSchema.isValidSync(commission)\n}\n\nconst getWizardStep = (config, crypto) => {\n if (!config) return 0\n\n const validWallet = hasValidWallet(config, crypto)\n if (!validWallet) return 1\n\n const validLocale = hasValidLocale(config)\n if (!validLocale) return 2\n\n const validCommission = hasValidCommissions(config)\n if (!validCommission) return 3\n\n return 0\n}\n\nconst STEPS = [\n {\n id: 'welcome',\n Component: Welcome\n },\n {\n id: 'wallet',\n Component: Wallet,\n exImage: '/assets/wizard/fullexample.wallet.png',\n subtitle: 'Wallet settings',\n text: `Your wallet settings are the first step for this wizard. \n We'll start by setting up one of cryptocurrencies to get you up and running,\n but you can later set up as many as you want.`\n },\n {\n id: 'locale',\n Component: Locale,\n exImage: '/assets/wizard/fullexample.locale.png',\n subtitle: 'Locales',\n text: `From the Locales page, you can define some important default settings\n of your machines. These values will be the default values of all\n machines you'll later add to your network. Default settings keep you\n from having to enther the same values everytime you add a new machine.\n Once a machine is added, you may override some of these values in the\n overrides section.`\n },\n {\n id: 'twilio',\n Component: Twilio,\n exImage: '/assets/wizard/fullexample.twilio.png',\n subtitle: 'Twilio (SMS service)',\n text: (\n <>\n Twilio is used for SMS operator notifications, phone number collection\n for compliance, and 1-confirmation redemptions on cash-out transactions.\n
\n You'll need to configure Twilio if you're offering cash-out or any\n compliance options\n \n )\n },\n {\n id: 'commissions',\n Component: Commissions,\n exImage: '/assets/wizard/fullexample.commissions.png',\n subtitle: 'Commissions',\n text: `From the Commissions page, you can define all the commissions of your\n machines. The values set here will be default values of all machines\n you'll later add to your network. Default settings keep you from\n having to enter the same values everytime you add a new machine. Once\n a machine is added, you may override these values per machine and per\n cryptocurrency in the overrides section.`\n }\n // {\n // id: 'notifications',\n // Component: Notifications,\n // exImage: '/assets/wizard/fullexample.notifications.png',\n // subtitle: 'Notifications',\n // text: `Your notification settings will allow customize what notifications you\n // get and where. You can later override all default balance alerts setup\n // here.`\n // },\n // {\n // id: 'operatorInfo',\n // Component: WizardOperatorInfo,\n // exImage: '/assets/wizard/fullexample.operatorinfo.png',\n // subtitle: 'Operator info',\n // text: `Your contact information is important for your customer to be able\n // to contact you in case there’s a problem with one of your machines.\n // In this page, you also be able to set up what you want to share with\n // Coin ATM Radar and add the Terms & Services text that is displayed by your machines.`\n // }\n]\n\nexport { getWizardStep, STEPS, getConfiguredCoins }\n","import { makeStyles, Drawer, Grid } from '@material-ui/core'\nimport classnames from 'classnames'\nimport React, { useState } from 'react'\n\nimport Modal from 'src/components/Modal'\nimport Stepper from 'src/components/Stepper'\nimport { Button, Link } from 'src/components/buttons'\nimport { P, H2, Info2 } from 'src/components/typography'\nimport { spacer } from 'src/styling/variables'\n\nconst useStyles = makeStyles(() => ({\n drawer: {\n borderTop: 'none',\n boxShadow: '0 0 4px 0 rgba(0, 0, 0, 0.08)'\n },\n wrapper: {\n padding: '32px 0',\n flexGrow: 1,\n height: 264\n },\n smallWrapper: {\n height: 84\n },\n title: {\n margin: [[0, spacer * 4, 0, 0]]\n },\n subtitle: {\n marginTop: spacer,\n marginBottom: 6,\n lineHeight: 1.25,\n display: 'inline'\n },\n modal: {\n background: 'none',\n boxShadow: 'none'\n }\n}))\n\nfunction Footer({ currentStep, steps, subtitle, text, exImage, open, start }) {\n const classes = useStyles()\n const [fullExample, setFullExample] = useState(false)\n\n const wrapperClassNames = {\n [classes.wrapper]: true,\n [classes.smallWrapper]: !open\n }\n\n return (\n \n
\n \n \n

Setup Lamassu Admin

\n {subtitle}\n {open &&

{text}

}\n
\n \n \n {steps && currentStep && (\n \n )}\n \n \n \n {open && (\n \n \n {\n setFullExample(true)\n }}>\n See full example\n \n \n \n \n \n \n \n \n )}\n
\n {\n setFullExample(false)\n }}\n open={fullExample}>\n \"\"\n \n \n )\n}\n\nexport default Footer\n","import { useQuery } from '@apollo/react-hooks'\nimport { makeStyles, Dialog, DialogContent } from '@material-ui/core'\nimport classnames from 'classnames'\nimport gql from 'graphql-tag'\nimport React, { useState, useContext } from 'react'\nimport { useHistory } from 'react-router-dom'\n\nimport { AppContext } from 'src/App'\nimport { getWizardStep, STEPS } from 'src/pages/Wizard/helper'\nimport { backgroundColor } from 'src/styling/variables'\n\nimport Footer from './components/Footer'\n\nconst useStyles = makeStyles({\n wrapper: {\n display: 'flex',\n padding: [[16, 0]],\n flexDirection: 'column',\n justifyContent: 'space-between',\n backgroundColor: backgroundColor\n },\n welcomeBackground: {\n background: 'url(/wizard-background.svg) no-repeat center center fixed',\n backgroundColor: backgroundColor,\n backgroundSize: 'cover'\n },\n blurred: {\n filter: 'blur(4px)',\n pointerEvents: 'none'\n }\n})\n\nconst GET_DATA = gql`\n query getData {\n config\n accounts\n cryptoCurrencies {\n code\n display\n }\n }\n`\n\nconst Wizard = ({ fromAuthRegister }) => {\n const classes = useStyles()\n const { data, loading } = useQuery(GET_DATA)\n const history = useHistory()\n const { setWizardTested } = useContext(AppContext)\n\n const [step, setStep] = useState(0)\n const [open, setOpen] = useState(true)\n\n const [footerExp, setFooterExp] = useState(false)\n\n if (loading) {\n return <>\n }\n\n const wizardStep = getWizardStep(data?.config, data?.cryptoCurrencies)\n\n const shouldGoBack =\n history.length && !history.location.state?.fromAuthRegister\n\n if (wizardStep === 0) {\n setWizardTested(true)\n shouldGoBack ? history.goBack() : history.push('/')\n }\n\n const isWelcome = step === 0\n const classNames = {\n [classes.blurred]: footerExp,\n [classes.wrapper]: true,\n [classes.welcomeBackground]: isWelcome\n }\n\n const start = () => {\n setFooterExp(false)\n }\n\n const doContinue = () => {\n if (step >= STEPS.length - 1) {\n setOpen(false)\n history.push('/')\n }\n\n const nextStep = step === 0 && wizardStep ? wizardStep : step + 1\n\n setFooterExp(true)\n setStep(nextStep)\n }\n\n const current = STEPS[step]\n\n return (\n \n \n \n \n {!isWelcome && (\n \n )}\n \n )\n}\n\nexport default Wizard\n","import Wizard from './Wizard'\n\nexport default Wizard\n","import * as R from 'ramda'\nimport React, { useContext } from 'react'\nimport {\n Route,\n Redirect,\n Switch,\n useHistory,\n useLocation\n} from 'react-router-dom'\n\nimport { AppContext } from 'src/App'\nimport AuthRegister from 'src/pages/AuthRegister'\nimport Cashout from 'src/pages/Cashout'\nimport Commissions from 'src/pages/Commissions'\nimport { Customers, CustomerProfile } from 'src/pages/Customers'\nimport Funding from 'src/pages/Funding'\nimport Locales from 'src/pages/Locales'\nimport MachineLogs from 'src/pages/MachineLogs'\nimport CashCassettes from 'src/pages/Maintenance/CashCassettes'\nimport MachineStatus from 'src/pages/Maintenance/MachineStatus'\nimport Notifications from 'src/pages/Notifications/Notifications'\nimport OperatorInfo from 'src/pages/OperatorInfo/OperatorInfo'\nimport ServerLogs from 'src/pages/ServerLogs'\nimport Services from 'src/pages/Services/Services'\nimport Transactions from 'src/pages/Transactions/Transactions'\nimport Triggers from 'src/pages/Triggers'\nimport WalletSettings from 'src/pages/Wallet/Wallet'\nimport Wizard from 'src/pages/Wizard'\nimport { namespaces } from 'src/utils/config'\n\nconst tree = [\n {\n key: 'transactions',\n label: 'Transactions',\n route: '/transactions',\n component: Transactions\n },\n {\n key: 'maintenance',\n label: 'Maintenance',\n route: '/maintenance',\n get component() {\n return () => \n },\n children: [\n {\n key: 'cash_cassettes',\n label: 'Cash Cassettes',\n route: '/maintenance/cash-cassettes',\n component: CashCassettes\n },\n {\n key: 'funding',\n label: 'Funding',\n route: '/maintenance/funding',\n component: Funding\n },\n {\n key: 'logs',\n label: 'Machine Logs',\n route: '/maintenance/logs',\n component: MachineLogs\n },\n {\n key: 'machine-status',\n label: 'Machine Status',\n route: '/maintenance/machine-status',\n component: MachineStatus\n },\n {\n key: 'server-logs',\n label: 'Server',\n route: '/maintenance/server-logs',\n component: ServerLogs\n }\n ]\n },\n {\n key: 'settings',\n label: 'Settings',\n route: '/settings',\n get component() {\n return () => \n },\n children: [\n {\n key: namespaces.COMMISSIONS,\n label: 'Commissions',\n route: '/settings/commissions',\n component: Commissions\n },\n {\n key: namespaces.LOCALE,\n label: 'Locales',\n route: '/settings/locale',\n component: Locales\n },\n {\n key: namespaces.CASH_OUT,\n label: 'Cash-out',\n route: '/settings/cash-out',\n component: Cashout\n },\n {\n key: namespaces.NOTIFICATIONS,\n label: 'Notifications',\n route: '/settings/notifications',\n component: Notifications\n },\n {\n key: 'services',\n label: '3rd party services',\n route: '/settings/3rd-party-services',\n component: Services\n },\n {\n key: namespaces.WALLETS,\n label: 'Wallet',\n route: '/settings/wallet-settings',\n component: WalletSettings\n },\n {\n key: namespaces.OPERATOR_INFO,\n label: 'Operator Info',\n route: '/settings/operator-info',\n component: OperatorInfo\n }\n ]\n },\n {\n key: 'compliance',\n label: 'Compliance',\n route: '/compliance',\n get component() {\n return () => \n },\n children: [\n {\n key: 'triggers',\n label: 'Triggers',\n route: '/compliance/triggers',\n component: Triggers\n },\n {\n key: 'customers',\n label: 'Customers',\n route: '/compliance/customers',\n component: Customers\n },\n {\n key: 'customer',\n route: '/compliance/customer/:id',\n component: CustomerProfile\n }\n ]\n }\n]\n\nconst map = R.map(R.when(R.has('children'), R.prop('children')))\nconst leafRoutes = R.compose(R.flatten, map)(tree)\nconst parentRoutes = R.filter(R.has('children'))(tree)\nconst flattened = R.concat(leafRoutes, parentRoutes)\n\nconst Routes = () => {\n const history = useHistory()\n const location = useLocation()\n const { wizardTested } = useContext(AppContext)\n\n const dontTriggerPages = ['/404', '/register', '/wizard']\n\n if (!wizardTested && !R.contains(location.pathname)(dontTriggerPages)) {\n history.push('/wizard')\n }\n\n return (\n \n \n \n \n \n \n {flattened.map(({ route, component: Page, key }) => (\n \n \n \n ))}\n \n \n \n \n \n )\n}\nexport { tree, Routes }\n","import { mainWidth } from 'src/styling/variables'\n\nimport fonts from './fonts'\n\nconst fill = '100%'\n\nexport default {\n '@global': {\n ...fonts,\n '#root': {\n width: fill,\n minHeight: fill\n },\n html: {\n height: fill\n },\n body: {\n width: mainWidth,\n display: 'flex',\n minHeight: fill,\n '@media screen and (min-width: 1200px)': {\n width: 'auto'\n }\n },\n [`a::-moz-focus-inner,\n 'input[type=\"submit\"]::-moz-focus-inner,\n input[type=\"button\"]::-moz-focus-inner`]: {\n border: 0\n },\n [`a::-moz-focus-inner,\n input[type=\"submit\"]::-moz-focus-inner,\n input[type=\"button\"]::-moz-focus-inner`]: {\n border: 0\n },\n [`a,\n a:visited,\n a:focus,\n a:active,\n a:hover`]: {\n outline: '0 none'\n },\n 'button::-moz-focus-inner': {\n border: 0\n },\n // forcing styling onto inner container\n '.ReactVirtualized__Grid__innerScrollContainer': {\n overflow: 'inherit !important'\n }\n }\n}\n","export default {\n // /*!\n // * Web Fonts from Fontspring.com\n // *\n // * All OpenType features and all extended glyphs have been removed.\n // * Fully installable fonts can be purchased at http://www.fontspring.com\n // *\n // * The fonts included in this stylesheet are subject to the End User License you purchased\n // * from Fontspring. The fonts are protected under domestic and international trademark and\n // * copyright law. You are prohibited from modifying, reverse engineering, duplicating, or\n // * distributing this font software.\n // *\n // * (c) 2010-2018 Fontspring\n // *\n // *\n // *\n // *\n // * The fonts included are copyrighted by the vendor listed below.\n // *\n // * Vendor: Fontfabric\n // * License URL: https://www.fontspring.com/licenses/fontfabric/webfont\n // *\n // *\n // */\n\n '@font-face': [\n {\n fontFamily: 'Mont',\n src: [\n 'url(\"/fonts/MontHeavy/mont-heavy-webfont.woff2\") format(\"woff2\")',\n 'url(\"/fonts/MontHeavy/mont-heavy-webfont.woff\") format(\"woff\")'\n ],\n fontWeight: 900,\n fontStyle: 'normal'\n },\n {\n fontFamily: 'Mont',\n src: [\n 'url(\"/fonts/MontHeavy/mont-bold-webfont.woff2\") format(\"woff2\")',\n 'url(\"/fonts/MontHeavy/mont-bold-webfont.woff\") format(\"woff\")'\n ],\n fontWeight: 700,\n fontStyle: 'normal'\n },\n // /*!\n // * Web Fonts from Fontspring.com\n // *\n // * All OpenType features and all extended glyphs have been removed.\n // * Fully installable fonts can be purchased at http://www.fontspring.com\n // *\n // * The fonts included in this stylesheet are subject to the End User License you purchased\n // * from Fontspring. The fonts are protected under domestic and international trademark and\n // * copyright law. You are prohibited from modifying, reverse engineering, duplicating, or\n // * distributing this font software.\n // *\n // * (c) 2010-2018 Fontspring\n // *\n // *\n // *\n // *\n // * The fonts included are copyrighted by the vendor listed below.\n // *\n // * Vendor: exljbris Font Foundry\n // * License URL: https://www.fontspring.com/licenses/exljbris/webfont\n // *\n // *\n // */\n {\n fontFamily: 'MuseoSans',\n src: [\n 'url(\"/fonts/MuseoSans/MuseoSans_500-webfont.woff2\") format(\"woff2\")',\n 'url(\"/fonts/MuseoSans/MuseoSans_500-webfont.woff\") format(\"woff\")'\n ],\n fontWeight: 500,\n fontStyle: 'normal'\n },\n {\n fontFamily: 'MuseoSans',\n src: [\n 'url(\"/fonts/MuseoSans/MuseoSans_700-webfont.woff2\") format(\"woff2\")',\n 'url(\"/fonts/MuseoSans/MuseoSans_700-webfont.woff\") format(\"woff\")'\n ],\n fontWeight: 700,\n fontStyle: 'normal'\n },\n\n // // BP-mono Freely distributed at http://backpacker.gr/fonts/5\n {\n fontFamily: 'BPmono',\n src: 'url(\"/fonts/BPmono/BPmono.ttf\") format(\"truetype\")',\n fontWeight: 500,\n fontStyle: 'normal'\n }\n ]\n}\n","import CssBaseline from '@material-ui/core/CssBaseline'\nimport {\n StylesProvider,\n jssPreset,\n MuiThemeProvider,\n makeStyles\n} from '@material-ui/core/styles'\nimport { create } from 'jss'\nimport extendJss from 'jss-plugin-extend'\nimport React, { createContext, useContext, useState } from 'react'\nimport { useLocation, BrowserRouter as Router } from 'react-router-dom'\n\nimport ApolloProvider from 'src/utils/apollo'\n\nimport Header from './components/layout/Header'\nimport { tree, Routes } from './routing/routes'\nimport global from './styling/global'\nimport theme from './styling/theme'\nimport { backgroundColor, mainWidth } from './styling/variables'\n\nif (process.env.NODE_ENV !== 'production') {\n const whyDidYouRender = require('@welldone-software/why-did-you-render')\n whyDidYouRender(React)\n}\n\nconst jss = create({\n plugins: [extendJss(), ...jssPreset().plugins]\n})\n\nconst fill = '100%'\nconst flexDirection = 'column'\n\nconst useStyles = makeStyles({\n ...global,\n root: {\n backgroundColor,\n width: fill,\n minHeight: fill,\n display: 'flex',\n flexDirection\n },\n wrapper: {\n width: mainWidth,\n height: fill,\n margin: '0 auto',\n flex: 1,\n display: 'flex',\n flexDirection\n }\n})\n\nconst AppContext = createContext()\n\nconst Main = () => {\n const classes = useStyles()\n const location = useLocation()\n const { wizardTested } = useContext(AppContext)\n\n const is404 = location.pathname === '/404'\n\n return (\n
\n {!is404 && wizardTested &&
}\n
\n \n
\n
\n )\n}\n\nconst App = () => {\n const [wizardTested, setWizardTested] = useState(false)\n\n return (\n \n \n \n \n \n \n
\n \n \n \n \n \n )\n}\n\nexport default App\nexport { AppContext }\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n)\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href)\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config)\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n )\n })\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config)\n }\n })\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing\n if (installingWorker == null) {\n return\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n )\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration)\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.')\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration)\n }\n }\n }\n }\n }\n })\n .catch(error => {\n console.error('Error during service worker registration:', error)\n })\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type')\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload()\n })\n })\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config)\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n )\n })\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister()\n })\n }\n}\n","import React from 'react'\nimport ReactDOM from 'react-dom'\n\nimport App from './App'\nimport * as serviceWorker from './serviceWorker'\n\nReactDOM.render(, document.getElementById('root'))\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.unregister()\n"],"sourceRoot":""} \ No newline at end of file diff --git a/public/static/js/main.4f43f678.chunk.js b/public/static/js/main.d0c68b02.chunk.js similarity index 61% rename from public/static/js/main.4f43f678.chunk.js rename to public/static/js/main.d0c68b02.chunk.js index 5ef4e187..d0050a01 100644 --- a/public/static/js/main.4f43f678.chunk.js +++ b/public/static/js/main.d0c68b02.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonplamassu-admin"]=this["webpackJsonplamassu-admin"]||[]).push([[0],{445:function(e,t,n){"use strict";n.r(t);var a=n(0),r=n.n(a),l=n(38),i=n.n(l),o=n(3),c=n(24),s=n(340),u=n(540),d=n(542),m=n(487),f=n(562),p=n(539),h=n(303),b=n(304),g=n(122),v=n(67),y=n(59),E=n(341),O=n(123),w=n(64),x=n(308),j=n(342),C="",k=function(e){var t=e.children,n=function(e,t){return new O.a({link:w.a.from([Object(x.a)((function(n){var a=n.graphQLErrors,r=n.networkError;a&&a.forEach((function(n){var a=n.message,r=n.locations,l=n.path,i=n.extensions;"UNAUTHENTICATED"===(null===i||void 0===i?void 0:i.code)&&"/404"!==t.pathname&&e.push("/404"),console.log("[GraphQL error]: Message: ".concat(a,", Location: ").concat(r,", Path: ").concat(l))})),r&&console.log("[Network error]: ".concat(r))})),new j.a({credentials:"include",uri:"".concat(C,"/graphql")})]),cache:new E.a,defaultOptions:{watchQuery:{fetchPolicy:"no-cache",errorPolicy:"ignore"},query:{fetchPolicy:"no-cache",errorPolicy:"all"},mutate:{errorPolicy:"all"}}})}(Object(g.h)(),Object(g.i)());return r.a.createElement(y.a,{client:n},t)},S=n(5),N=n.n(S),I=n(1),L=n(10),B="#5f668a",P="#44e188",F="#ecfbef",D="#3fd07e",T="#ebefff",W="#dbdfed",R="#ffffff",z="#ff584a",A="#ffeceb",M="#1b2559",q="#48f694",$=P,H=D,V="#fafbff",Y=T,G=W,Z="#dddddd",_="#f2f2f2",U=M,J=B,K="#72799d",Q=B,X=z,ee=1200,te=q,ne="Mont",ae="MuseoSans",re=24,le=20,ie=16,oe=14,ce=13;var se=ce,ue=oe,de=ie,me=re,fe=ae,pe=32,he=48;var be=2*pe,ge=M,ve=A,ye={lineHeight:"120%",color:U},Ee={h1:{extend:ye,fontSize:re,fontFamily:ne,fontWeight:900},h2:{extend:ye,fontSize:le,fontFamily:ne,fontWeight:900},h3:{extend:ye,fontSize:oe,fontFamily:ne,fontWeight:900},h4:{extend:ye,fontSize:oe,fontFamily:ne,fontWeight:700},h5:{extend:ye,fontSize:ie,fontFamily:ne,fontWeight:700},p:{extend:ye,fontSize:oe,fontFamily:ae,fontWeight:500},tl1:{extend:ye,fontSize:le,fontFamily:ae,fontWeight:700},tl2:{extend:ye,fontSize:oe,fontFamily:ae,fontWeight:700},info1:{extend:ye,fontSize:re,fontFamily:ae,fontWeight:700},info2:{extend:ye,fontSize:ie,fontFamily:ae,fontWeight:700},info3:{extend:ye,fontSize:ie,fontFamily:ae,fontWeight:500},mono:{extend:ye,fontSize:oe,fontFamily:"BPmono",fontWeight:500},monoBold:{fontWeight:700},monoSmall:{fontSize:ce},inputFont:{fontSize:le,fontFamily:ae,fontWeight:500,lineHeight:"110%",color:U},regularLabel:{fontSize:oe,fontFamily:ae,fontWeight:500,lineHeight:"110%"},label1:{fontSize:ce,fontFamily:ae,fontWeight:500,color:U},label2:{fontSize:ce,fontFamily:ae,fontWeight:700,color:U},label3:{fontSize:oe,fontFamily:ae,fontWeight:500,color:U},inline:{display:"inline"},noMargin:{margin:0}},Oe=function(e,t,n){return{backgroundColor:e,"&:hover":{backgroundColor:t},"&:active":{backgroundColor:n}}},we={actionButton:{extend:Ee.p,cursor:"pointer",border:"none",height:28,outline:0,borderRadius:6,padding:"0 8px",display:"flex",alignItems:"center"},primary:{extend:Oe(Y,G,J),"&:active":{color:R,"& $actionButtonIcon":{display:"none"},"& $actionButtonIconActive":{display:"flex"}},"& $actionButtonIconActive":{display:"none"}},secondary:{extend:Oe(J,K,R),color:R,"&:active":{color:U,"& $actionButtonIcon":{display:"flex"},"& $actionButtonIconActive":{display:"none"}},"& $actionButtonIcon":{display:"none"},"& $actionButtonIconActive":{display:"flex"}},actionButtonIcon:{display:"flex",paddingRight:7,"@global":{svg:{width:14,height:14}}},actionButtonIconActive:{}},xe=Object(m.a)(we),je=Object(a.memo)((function(e){var t,n=e.className,a=e.Icon,l=e.InverseIcon,i=e.color,o=e.children,c=Object(L.a)(e,["className","Icon","InverseIcon","color","children"]),s=xe(),u=(t={},Object(I.a)(t,s.actionButton,!0),Object(I.a)(t,s.primary,"primary"===i),Object(I.a)(t,s.secondary,"secondary"===i),t);return r.a.createElement("button",Object.assign({className:N()(u,n)},c),a&&r.a.createElement("div",{className:s.actionButtonIcon},r.a.createElement(a,null)),l&&r.a.createElement("div",{className:N()(s.actionButtonIcon,s.actionButtonIconActive)},r.a.createElement(l,null)),o&&r.a.createElement("div",null,o))}));function Ce(){return(Ce=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var Se=a.createElement("desc",null,"Created with Sketch."),Ne=a.createElement("g",{id:"icon/button/add/zodiac",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},a.createElement("path",{d:"M11.5384615,6 C11.5384615,9.05815385 9.05815385,11.5384615 6,11.5384615 C2.94184615,11.5384615 0.461538462,9.05815385 0.461538462,6 C0.461538462,2.94184615 2.94184615,0.461538462 6,0.461538462 C9.05815385,0.461538462 11.5384615,2.94184615 11.5384615,6 Z",id:"Stroke-1",stroke:"#1B2559"}),a.createElement("line",{x1:6,y1:3.69230769,x2:6,y2:8.30769231,id:"Stroke-3",stroke:"#1B2559"}),a.createElement("line",{x1:3.69230769,y1:6,x2:8.30769231,y2:6,id:"Stroke-5",stroke:"#1B2559"}));function Ie(e,t){var n=e.title,r=e.titleId,l=ke(e,["title","titleId"]);return a.createElement("svg",Ce({width:"12px",height:"12px",viewBox:"0 0 12 12",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,Se,Ne)}var Le=a.forwardRef(Ie),Be=(n.p,{button:{extend:Ee.p,border:"none",backgroundColor:T,cursor:"pointer",outline:0,display:"flex",justifyContent:"center",alignItems:"center",width:167,height:48,color:U,"&:hover":{backgroundColor:W},"&:active":{backgroundColor:B,color:R,"& svg g *":{stroke:R}},"& svg":{marginRight:8}}}),Pe=Object(m.a)(Be),Fe=Object(a.memo)((function(e){var t=e.className,n=e.children,a=Object(L.a)(e,["className","children"]),l=Pe();return r.a.createElement("button",Object.assign({className:N()(l.button,t)},a),r.a.createElement(Le,null),n)})),De=Ee.h1,Te=Ee.h3,We=function(e){switch(e){case"xl":return 61;case"sm":return 32;case"lg":default:return 40}},Re={wrapper:function(e){var t=e.size,n=We(t);return{height:n+n/12/2}},button:function(e){var t=e.size,n=We(t),a="xl"===t?3:n/12;return{extend:"xl"===t?De:Te,border:"none",color:R,cursor:"pointer",fontWeight:900,outline:0,backgroundColor:q,"&:disabled":{backgroundColor:Z,boxShadow:"none","&:hover":{backgroundColor:Z,boxShadow:"none"},"&:active":{marginTop:0}},shadowSize:a,height:n,padding:"0 ".concat("xl"===t?20:n/2,"px"),borderRadius:n/4,boxShadow:"0 ".concat(a,"px ").concat($),"&:hover":{backgroundColor:$,boxShadow:"0 ".concat(a,"px ").concat(H)},"&:active":{marginTop:a/2,backgroundColor:$,boxShadow:"0 ".concat(a/2,"px ").concat(H)}}}},ze=Object(m.a)(Re),Ae=Object(a.memo)((function(e){var t=e.size,n=void 0===t?"lg":t,a=e.children,l=e.className,i=Object(L.a)(e,["size","children","className"]),o=ze({size:n});return r.a.createElement("div",{className:N()(l,o.wrapper)},r.a.createElement("button",Object.assign({className:o.button},i),a))})),Me=function(e,t,n){return{backgroundColor:e,"&:hover":{backgroundColor:t},"&:active":{backgroundColor:n}}},qe={baseButton:{extend:Me(Y,G,J),cursor:"pointer",border:"none",outline:0,height:32,color:U,"&:active":{color:R}},primary:{extend:Me(Y,G,J),"&:active":{color:R,"& $buttonIcon":{display:"none"},"& $buttonIconActive":{display:"block"}},"& $buttonIconActive":{display:"none"}},secondary:{extend:Me(J,K,R),color:R,"&:active":{color:U,"& $buttonIcon":{display:"flex"},"& $buttonIconActive":{display:"none"}},"& $buttonIcon":{display:"none"},"& $buttonIconActive":{display:"flex"}}},$e=qe.baseButton,He=qe.primary,Ve={featureButton:{extend:$e,width:$e.height,borderRadius:$e.height/2,display:"flex",padding:0},primary:He,buttonIcon:{margin:"auto","& svg":{width:16,height:16,overflow:"visible","& g":{strokeWidth:1.8}}},buttonIconActive:{}},Ye=Object(m.a)(Ve),Ge=Object(a.memo)((function(e){var t,n=e.className,a=e.Icon,l=e.InverseIcon,i=e.children,o=Object(L.a)(e,["className","Icon","InverseIcon","children"]),c=Ye(),s=(t={},Object(I.a)(t,c.featureButton,!0),Object(I.a)(t,c.primary,!0),t);return r.a.createElement("button",Object.assign({className:N()(s,n)},o),a&&r.a.createElement("div",{className:c.buttonIcon},r.a.createElement(a,null)),l&&r.a.createElement("div",{className:N()(c.buttonIcon,c.buttonIconActive)},r.a.createElement(l,null)),i)})),Ze=n(490),_e=n(346),Ue=n(489),Je=function(e){var t,n=e.children,l=e.bgColor,i=void 0===l?R:l,c=e.arrowSize,s=void 0===c?6:c,u=e.className,d=Object(L.a)(e,["children","bgColor","arrowSize","className"]),f=Object(a.useState)(null),p=Object(o.a)(f,2),h=p[0],b=p[1],g={popover:{zIndex:3e3,backgroundColor:i,borderRadius:4},arrow:{position:"absolute",fontSize:s,width:"3em",height:"3em"},arrowBottom:{top:0,width:0,height:0,borderLeft:[["2em","solid","transparent"]],borderRight:[["2em","solid","transparent"]],borderBottom:[["2em","solid",i]],marginTop:"-1.9em","&:after":{zIndex:-10,content:'""',position:"absolute",width:3*s,height:3*s,marginLeft:0,bottom:0,top:"calc(50% - 0px)",left:0,border:"5px solid #fff",borderColor:"transparent transparent #fff #fff",transformOrigin:"0 0",transform:"rotate(45deg)",boxShadow:"0px 2px 1px -1px rgba(0,0,0,0.2),0px 1px 1px 0px rgba(0,0,0,0.14),0px 1px 3px 0px rgba(0,0,0,0.12)"}},arrowTop:{bottom:0,width:0,height:0,borderLeft:[["2em","solid","transparent"]],borderRight:[["2em","solid","transparent"]],borderTop:[["2em","solid",i]],marginBottom:"-1.9em","&:after":{zIndex:-10,content:'""',position:"absolute",width:3*s,height:3*s,marginLeft:0,bottom:0,top:-(4*s+2),left:0,border:"5px solid #fff",borderColor:"transparent transparent #fff #fff",transformOrigin:"0 0",transform:"rotate(45deg)",boxShadow:"0px 2px 1px -1px rgba(0,0,0,0.2),0px 1px 1px 0px rgba(0,0,0,0.14),0px 1px 3px 0px rgba(0,0,0,0.12)"}},arrowRight:{left:0,width:0,height:0,borderTop:[["2em","solid","transparent"]],borderBottom:[["2em","solid","transparent"]],borderRight:[["2em","solid",i]],marginLeft:"-1.9em"},arrowLeft:{right:0,width:0,height:0,borderTop:[["2em","solid","transparent"]],borderBottom:[["2em","solid","transparent"]],borderLeft:[["2em","solid",i]],marginRight:"-1.9em"},root:{backgroundColor:i}},v=Object(m.a)(g)(),y=(t={},Object(I.a)(t,v.arrow,!0),Object(I.a)(t,v.arrowBottom,"bottom"===d.placement),Object(I.a)(t,v.arrowTop,"top"===d.placement),Object(I.a)(t,v.arrowRight,"right"===d.placement),Object(I.a)(t,v.arrowLeft,"left"===d.placement),t),E=Ue.a(d.modifiers,{flip:{enabled:!1},preventOverflow:{enabled:!0,boundariesElement:"scrollParent"},offset:{enabled:!0,offset:"0, 10"},arrow:{enabled:!0,element:h},computeStyle:{gpuAcceleration:!1}});return r.a.createElement(r.a.Fragment,null,r.a.createElement(Ze.a,Object.assign({disablePortal:!1,modifiers:E,className:v.popover},d),r.a.createElement(_e.a,{className:N()(v.root,u)},r.a.createElement("span",{className:N()(y),ref:b}),n)))},Ke=Ee.info2,Qe=function(e,t,n){return{backgroundColor:e,"&:hover":{backgroundColor:t},"&:active":{backgroundColor:n}}},Xe={idButton:{width:34,height:28,display:"flex",borderRadius:4,padding:0,border:"none",cursor:"pointer"},buttonIcon:{margin:"auto",lineHeight:1,"& svg":{overflow:"visible"}},closed:{extend:Qe(Y,G,J)},open:{extend:Qe(J,J,J)},popoverContent:{extend:Ke,padding:8,display:"flex",justifyContent:"center",alignItems:"center",borderRadius:4,"& img":{maxHeight:145}}},et=Object(m.a)(Xe),tt=Object(a.memo)((function(e){var t,n=e.name,l=e.className,i=e.Icon,c=e.InverseIcon,s=(e.popoverWidth,e.children),u=e.popoverClassname,d=Object(L.a)(e,["name","className","Icon","InverseIcon","popoverWidth","children","popoverClassname"]),m=Object(a.useState)(null),f=Object(o.a)(m,2),p=f[0],h=f[1],b=et(),g=Boolean(p),v=g?"simple-popper-".concat(n):void 0,y=(t={},Object(I.a)(t,b.idButton,!0),Object(I.a)(t,b.primary,!0),Object(I.a)(t,b.open,g),Object(I.a)(t,b.closed,!g),t),E=Object(I.a)({},b.buttonIcon,!0);return r.a.createElement(r.a.Fragment,null,r.a.createElement("button",Object.assign({"aria-describedby":v,onClick:function(e){h(p?null:e.currentTarget)},className:N()(y,l)},d),i&&!g&&r.a.createElement("div",{className:N()(E)},r.a.createElement(i,null)),c&&g&&r.a.createElement("div",{className:N()(E)},r.a.createElement(c,null))),r.a.createElement(Je,{className:u,id:v,open:g,anchorEl:p,onClose:function(){h(null)},arrowSize:3,placement:"top"},r.a.createElement("div",{className:b.popoverContent},r.a.createElement("div",null,s))))})),nt=n(448),at={label:function(e){var t=e.size;return{width:t,height:t}},root:{"& svg":{flex:1},"&:hover":{backgroundColor:"inherit"},"&:hover rect":{stroke:B},"&:hover polygon":{stroke:B},"&:hover path":{stroke:B}}},rt=Object(m.a)(at),lt=function(e){var t=e.size,n=e.children,a=e.onClick,l=Object(L.a)(e,["size","children","onClick"]),i=rt({size:t});return r.a.createElement(nt.a,Object.assign({},l,{size:"small",classes:{root:i.root,label:i.label},disableRipple:!0,onClick:a}),n)},it=n(173),ot=function(e){return{boxShadow:"inset 0 -4px 0 0 ".concat(Object(it.fade)(e,.8)),"&:hover":{boxShadow:"none",backgroundColor:Object(it.fade)(e,.8)}}},ct={link:{extend:Ee.h4,textDecoration:"none",border:"none",backgroundColor:"transparent",cursor:"pointer",padding:"0",height:"100%"},primary:{extend:ot(te)},secondary:{extend:ot("#ff584a"),"&:hover":{color:R}},noColor:{extend:ot(R)},action:{extend:ot(te),color:T}},st=Object(m.a)(ct),ut=Object(a.memo)((function(e){var t,n=e.submit,a=e.className,l=e.children,i=e.color,o=void 0===i?"primary":i,c=Object(L.a)(e,["submit","className","children","color"]),s=st(),u=(t={},Object(I.a)(t,s.link,!0),Object(I.a)(t,s.primary,"primary"===o),Object(I.a)(t,s.secondary,"secondary"===o),Object(I.a)(t,s.noColor,"noColor"===o),Object(I.a)(t,s.action,"action"===o),t);return r.a.createElement("button",Object.assign({type:n?"submit":"button",className:N()(u,a)},c),l)})),dt=qe.baseButton,mt=qe.primary,ft={button:{extend:dt,borderRadius:dt.height/2,outline:0,padding:"0 20px"},primary:mt,buttonIcon:{marginTop:4,marginRight:4,"& svg":{width:20,height:20,overflow:"visible"}},buttonIconActive:{}};Object(m.a)(ft);function pt(){return(pt=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var bt=a.createElement("desc",null,"Created with Sketch."),gt=a.createElement("g",{id:"icon/button/cancel/white",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},a.createElement("g",{id:"Group-5",transform:"translate(1.000000, 1.000000)",stroke:"#FFFFFF"},a.createElement("line",{x1:10,y1:0,x2:0,y2:10,id:"Stroke-1"}),a.createElement("line",{x1:0,y1:0,x2:10,y2:10,id:"Stroke-3"})));function vt(e,t){var n=e.title,r=e.titleId,l=ht(e,["title","titleId"]);return a.createElement("svg",pt({width:"12px",height:"12px",viewBox:"0 0 12 12",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,bt,gt)}var yt=a.forwardRef(vt),Et=(n.p,qe.baseButton),Ot={button:{extend:Et,padding:0,color:R,borderRadius:Et.height/2},normalButton:{width:Et.height},activeButton:{display:"flex",flexDirection:"row",alignItems:"center",backgroundColor:J,fontWeight:"bold",padding:"0 5px","&:hover":{backgroundColor:J}},buttonIcon:{"& svg":{width:16,height:16,overflow:"visible","& g":{strokeWidth:1.8}}},buttonIconActiveLeft:{marginRight:12},buttonIconActiveRight:{marginRight:5,marginLeft:20}},wt=Object(m.a)(Ot),xt=Object(a.memo)((function(e){var t,n=e.className,l=e.Icon,i=e.InverseIcon,c=e.toggle,s=e.children,u=Object(a.useState)(!1),d=Object(o.a)(u,2),m=d[0],f=d[1],p=wt(),h=(t={},Object(I.a)(t,p.button,!0),Object(I.a)(t,p.normalButton,!m),Object(I.a)(t,p.activeButton,m),t),b=r.a.createElement(l,{className:p.buttonIcon}),g=r.a.createElement(r.a.Fragment,null,r.a.createElement(i,{className:N()(p.buttonIcon,p.buttonIconActiveLeft)}),s,r.a.createElement(yt,{className:N()(p.buttonIcon,p.buttonIconActiveRight)}));return r.a.createElement("button",{className:N()(h,n),onClick:function(){var e=!m;c(e),f(e)}},m?g:b)}));function jt(){return(jt=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var kt=a.createElement("desc",null,"Created with Sketch."),St=a.createElement("g",{id:"icon/action/external-link/white",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},a.createElement("polyline",{id:"Stroke-1",stroke:"#FFFFFF",strokeWidth:2,points:"20 12.1113 20 21.0003 0 21.0003 0 1.0003 8.889 1.0003"}),a.createElement("polyline",{id:"Stroke-3",stroke:"#FFFFFF",strokeWidth:2,points:"14.4443 1 20.0003 1 20.0003 6.556"}),a.createElement("line",{x1:10,y1:11,x2:20,y2:1,id:"Stroke-5",stroke:"#FFFFFF",strokeWidth:2}));function Nt(e,t){var n=e.title,r=e.titleId,l=Ct(e,["title","titleId"]);return a.createElement("svg",jt({width:"20px",height:"20px",viewBox:"0 0 20 20",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,kt,St)}var It=a.forwardRef(Nt);n.p;function Lt(){return(Lt=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var Pt=a.createElement("desc",null,"Created with Sketch."),Ft=a.createElement("g",{id:"icon/action/external-link/zodiac",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},a.createElement("g",{id:"Group-7",transform:"translate(0.000000, 1.000000)",stroke:"#1B2559",strokeWidth:2},a.createElement("polyline",{id:"Stroke-1",points:"20 11.1113 20 20.0003 0 20.0003 0 0.0003 8.889 0.0003"}),a.createElement("polyline",{id:"Stroke-3",points:"14.4443 0 20.0003 0 20.0003 5.556"}),a.createElement("line",{x1:10,y1:10,x2:20,y2:0,id:"Stroke-5"})));function Dt(e,t){var n=e.title,r=e.titleId,l=Bt(e,["title","titleId"]);return a.createElement("svg",Lt({width:"20px",height:"20px",viewBox:"0 0 20 20",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,Pt,Ft)}var Tt=a.forwardRef(Dt),Wt=(n.p,Object(m.a)({actionButton:{marginBottom:32},actionButtonLink:{textDecoration:"none",color:M}})),Rt=function(e){var t=e.link,n=e.label,a=Wt();return r.a.createElement("a",{className:a.actionButtonLink,target:"_blank",rel:"noopener noreferrer",href:t},r.a.createElement(je,{className:a.actionButton,color:"primary",Icon:Tt,InverseIcon:It},n))},zt=Object(m.a)(Ee);function At(e){var t,n=e.children,a=e.noMargin,l=e.className,i=Object(L.a)(e,["children","noMargin","className"]),o=zt(),c=(t={},Object(I.a)(t,o.h1,!0),Object(I.a)(t,o.noMargin,a),Object(I.a)(t,l,!!l),t);return r.a.createElement("h1",Object.assign({className:N()(c)},i),n)}function Mt(e){var t,n=e.children,a=e.noMargin,l=e.className,i=Object(L.a)(e,["children","noMargin","className"]),o=zt(),c=(t={},Object(I.a)(t,o.h2,!0),Object(I.a)(t,o.noMargin,a),Object(I.a)(t,l,!!l),t);return r.a.createElement("h2",Object.assign({className:N()(c)},i),n)}function qt(e){var t,n=e.children,a=e.noMargin,l=e.className,i=Object(L.a)(e,["children","noMargin","className"]),o=zt(),c=(t={},Object(I.a)(t,o.h3,!0),Object(I.a)(t,o.noMargin,a),Object(I.a)(t,l,!!l),t);return r.a.createElement("h3",Object.assign({className:N()(c)},i),n)}function $t(e){var t,n=e.children,a=e.noMargin,l=e.className,i=Object(L.a)(e,["children","noMargin","className"]),o=zt(),c=(t={},Object(I.a)(t,o.h4,!0),Object(I.a)(t,o.noMargin,a),Object(I.a)(t,l,!!l),t);return r.a.createElement("h4",Object.assign({className:N()(c)},i),n)}function Ht(e){var t,n=e.children,a=e.noMargin,l=e.className,i=Object(L.a)(e,["children","noMargin","className"]),o=zt(),c=(t={},Object(I.a)(t,o.h5,!0),Object(I.a)(t,o.noMargin,a),Object(I.a)(t,l,!!l),t);return r.a.createElement("h5",Object.assign({className:N()(c)},i),n)}var Vt=en("p"),Yt=en("info1"),Gt=en("info2"),Zt=en("info3"),_t=en("mono"),Ut=en("tl1"),Jt=en("tl2"),Kt=en("label1"),Qt=en("label2"),Xt=en("label3");function en(e){return function(t){var n,a=t.inline,l=t.noMargin,i=t.className,o=t.children,c=Object(L.a)(t,["inline","noMargin","className","children"]),s=zt(),u=(n={},Object(I.a)(n,i,!!i),Object(I.a)(n,s[e],e),Object(I.a)(n,s.inline,a),Object(I.a)(n,s.noMargin,l),n);return r.a.createElement("p",Object.assign({className:N()(u)},c),o)}}var tn=n(14),nn=n(13),an=n(500),rn=n(501),ln=n(216),on=n(18),cn=n(15),sn=n.n(cn),un=n(213),dn=n.n(un),mn=n(339),fn=n(498),pn=n(499),hn=n(4),bn=Object(m.a)({title:{marginTop:24,marginBottom:24}}),gn=Object(a.memo)((function(e){var t=e.children,n=bn();return r.a.createElement(At,{className:n.title},t)})),vn=n(264),yn=n(544),En=n(345),On=n(553),wn=n(493),xn=n(320),jn=n(343),Cn=n(492),kn=n(494),Sn=n(552),Nn=n(321),In=n(495),Ln=n(541),Bn=function(e){switch(e){case"sm":return{fontSize:ue};case"lg":return{fontSize:me,fontWeight:700};default:return{fontSize:de}}},Pn={fontWeight:700},Fn={size:function(e){var t=e.size;return Object(c.a)({marginTop:"lg"===t?0:2},Bn(t))},bold:Pn,root:function(e){return{width:e.width,"& input":{textAlign:e.textAlign}}},underline:{"&:before":{borderBottomColor:q},"&:hover:not(.Mui-disabled)::before":{borderBottomColor:q}}},Dn=Object(m.a)(Fn),Tn=Object(a.memo)((function(e){var t=e.name,n=e.onChange,a=e.onBlur,l=e.value,i=e.error,o=(e.suffix,e.textAlign),s=e.width,u=e.size,d=e.bold,m=e.className,f=e.InputProps,p=Object(L.a)(e,["name","onChange","onBlur","value","error","suffix","textAlign","width","size","bold","className","InputProps"]),h=Dn({textAlign:o,width:s,size:u}),b=!i&&!Cn.a(l)&&!Sn.a(l),g=Object(I.a)({},h.bold,d);return r.a.createElement(Ln.a,Object.assign({id:t,onChange:n,onBlur:a,error:i,value:l,classes:{root:h.root},className:m,InputProps:Object(c.a)({className:N()(g),classes:{root:h.size,underline:b?h.underline:null}},f)},p))})),Wn=function(e){e.optionsLimit;var t=e.limit,n=e.options,a=e.label,l=e.valueProp,i=e.multiple,o=e.onChange,c=e.getLabel,s=e.value,u=e.error,d=e.fullWidth,m=e.textAlign,f=e.size,p=e.autoFocus,h=Object(L.a)(e,["optionsLimit","limit","options","label","valueProp","multiple","onChange","getLabel","value","error","fullWidth","textAlign","size","autoFocus"]),b=function(e){return function(t){return On.a(wn.a(l,t))(e)}},g=xn.a(l),v=l?(i?jn.a(b(n)):b(n))(s):s,y=function(){return Cn.a(v)?[]:i?v:[v]};return r.a.createElement(yn.a,Object.assign({options:n,multiple:i,value:v,onChange:function(e,t){if(!l)return o(e,t);var n=i?jn.a(g)(t):g(t);o(e,n)},getOptionLabel:c,forcePopupIcon:!1,filterOptions:function(e,n){var a=n.inputValue;return kn.a(Sn.a(a)?y():[],function(e,t){return Object(En.a)(e,t,{keys:["code","display"]})}(e,a)).slice(0,Nn.a(void 0)(t)&&Math.max(t,Sn.a(a)?y().length:0))},openOnFocus:!0,autoHighlight:!0,disableClearable:!0,ChipProps:{onDelete:null},clearOnEscape:!0,getOptionSelected:In.a(l)},h,{renderInput:function(e){return r.a.createElement(Tn,Object.assign({},e,{autoFocus:p,label:a,value:s,error:u,size:f,fullWidth:d,textAlign:m}))}}))},Rn=(n(548),n(324),n(323),Object(m.a)({root:{color:q,"&$checked":{color:q}},checked:{}}),n(325)),zn=Object(a.memo)((function(e){var t=e.name,n=e.onChange,a=e.onBlur,l=e.value,i=e.error,o=e.suffix,c=e.textAlign,s=e.width,u=e.size,d=e.bold,m=e.className,f=e.decimalPlaces,p=(e.InputProps,Object(L.a)(e,["name","onChange","onBlur","value","error","suffix","textAlign","width","size","bold","className","decimalPlaces","InputProps"]));return r.a.createElement(Rn.a,Object.assign({name:t,onChange:n,onBlur:a,value:l,error:i,suffix:o,textAlign:c,width:s,size:u,bold:d,className:m,customInput:Tn,decimalScale:f,onValueChange:function(e){n({target:{id:t,value:e.floatValue}})}},p))})),An=n(564),Mn=n(496),qn=n(547),$n=Object(m.a)({label:{height:16,lineHeight:"16px",margin:[[0,0,4,0]],paddingLeft:3}}),Hn=function(e){var t=e.name,n=e.label,a=e.value,l=e.options,i=e.onChange,o=e.className,c=e.labelClassName,s=e.radioClassName,u=$n();return r.a.createElement(r.a.Fragment,null,n&&r.a.createElement(Kt,{className:u.label},n),r.a.createElement(An.a,{name:t,value:a,onChange:i,className:N()(o)},l.map((function(e,t){return r.a.createElement(Mn.a,{key:t,value:e.code,control:r.a.createElement(qn.a,{className:s}),label:e.display,className:N()(c)})}))))},Vn=Object(a.memo)((function(e){var t=e.value,n=e.onFocus,l=e.onBlur,i=Object(L.a)(e,["value","onFocus","onBlur"]),c=Object(a.useState)(!1),s=Object(o.a)(c,2),u=s[0],d=s[1],m=!!t,f=m?"":t;return r.a.createElement(Tn,Object.assign({},i,{type:"password",onFocus:function(e){d(!0),n&&n(e)},onBlur:function(e){d(!1),l&&l(e)},value:t,InputProps:{value:u?t:f},InputLabelProps:{shrink:m||u},placeholder:m?"\u26ac \u26ac \u26ac This field is set \u26ac \u26ac \u26ac":""}))})),Yn=n(497),Gn=Object(m.a)((function(e){return{root:{width:32,height:20,padding:0,margin:e.spacing(1)},switchBase:{padding:2,"&$disabled":{color:_,"& + $track":{backgroundColor:Z,opacity:1}},"&$checked":{transform:"translateX(58%)",color:e.palette.common.white,"&$disabled":{color:_},"& + $track":{backgroundColor:q,opacity:1,border:"none"}},"&$focusVisible $thumb":{border:"6px solid #fff"}},thumb:{width:16,height:16},track:{borderRadius:17,border:"none",backgroundColor:J,opacity:1,transition:e.transitions.create(["background-color","border"])},disabled:{},checked:{},focusVisible:{}}})),Zn=Object(a.memo)((function(e){var t=Object.assign({},e),n=Gn();return r.a.createElement(Yn.a,Object.assign({focusVisibleClassName:n.focusVisible,disableRipple:!0,classes:{root:n.root,switchBase:n.switchBase,thumb:n.thumb,track:n.track,checked:n.checked,disabled:n.disabled}},t))})),_n=function(e){var t=e.options,n=e.onChange,l=Object(L.a)(e,["options","onChange"]),i=Object(a.useState)(!1),c=Object(o.a)(i,2),s=c[0],u=c[1],d=l.field,m=d.name,f=d.onBlur,p=d.value,h=l.form,b=h.touched,g=h.errors,v=h.setFieldValue,y=h.setFieldTouched,E=!(!b[m]||!g[m]),O=Object(on.e)(),w=O.initialValues,x=O.values,j="Function"===vn.a(t)?t(w,x):t,C=function(e){return v(m,e)};return r.a.createElement(Wn,Object.assign({name:m,onChange:function(e,t){if(n)return n(p,t,C);v(m,t)},onBlur:function(e){m&&y(m,!0),f&&f(e)},value:p,error:E,open:s,options:j,onOpen:function(){if(!l.multiple)return u(!0);u((null===p||void 0===p?void 0:p.length)!==l.limit)},onClose:function(){return u(!1)}},l))},Un=Object(a.memo)((function(e){var t=e.decimalPlaces,n=Object(L.a)(e,["decimalPlaces"]),a=n.field,l=a.name,i=a.onChange,o=a.onBlur,c=a.value,s=n.form,u=s.touched,d=s.errors,m=!(!u[l]||!d[l]);return r.a.createElement(zn,Object.assign({name:l,onChange:i,onBlur:o,value:c,error:m,decimalPlaces:t},n))})),Jn=Object(a.memo)((function(e){var t=e.label,n=Object(L.a)(e,["label"]),a=n.field,l=a.name,i=a.onChange,o=a.value;return r.a.createElement(Hn,Object.assign({name:l,label:t,value:o,options:n.options,ariaLabel:l,onChange:function(e){i(e),n.resetError&&n.resetError()},className:n.className},n))})),Kn=Object(a.memo)((function(e){var t=Object.assign({},e),n=t.field,a=n.name,l=n.onChange,i=n.onBlur,o=n.value,c=t.form,s=c.touched,u=c.errors,d=!(!s[a]||!u[a]);return r.a.createElement(Vn,Object.assign({name:a,onChange:l,onBlur:i,value:o,error:d},t))})),Qn=Object(a.memo)((function(e){var t=Object.assign({},e),n=t.field,a=n.name,l=n.onChange,i=n.onBlur,o=n.value,c=t.form,s=c.touched,u=c.errors,d=!(!s[a]||!u[a]);return r.a.createElement(Tn,Object.assign({name:a,onChange:l,onBlur:i,value:o,error:d},t))}));function Xn(){return(Xn=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var ta=a.createElement("desc",null,"Created with Sketch."),na=a.createElement("g",{id:"icon/stage/zodiac/complete",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd"},a.createElement("circle",{id:"Oval",stroke:"#1B2559",transform:"translate(9.000000, 9.000000) rotate(-270.000000) translate(-9.000000, -9.000000) ",cx:9,cy:9,r:8}),a.createElement("path",{d:"M7.80983711,12 C7.54819546,12 7.28655382,11.9032616 7.08725647,11.710772 L5.29971255,9.98428824 C4.90009582,9.59832189 4.90009582,8.97445811 5.29971255,8.58849175 C5.69932929,8.2025254 6.34525711,8.2025254 6.74487384,8.58849175 L7.80983711,9.61707728 L11.2551262,6.28947477 C11.6547429,5.90350841 12.3016927,5.90350841 12.7002874,6.28947477 C13.0999042,6.674454 13.0999042,7.2993049 12.7002874,7.68527125 L8.53241776,11.710772 C8.33312041,11.9032616 8.07147876,12 7.80983711,12",id:"Path",fill:"#1B2559"}));function aa(e,t){var n=e.title,r=e.titleId,l=ea(e,["title","titleId"]);return a.createElement("svg",Xn({width:"18px",height:"18px",viewBox:"0 0 18 18",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,ta,na)}var ra=a.forwardRef(aa);n.p;function la(){return(la=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var oa=a.createElement("desc",null,"Created with Sketch."),ca=a.createElement("g",{id:"icon/stage/zodiac/current",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd"},a.createElement("circle",{id:"Oval-2-Copy",fill:"#1B2559",cx:9,cy:9,r:4}),a.createElement("circle",{id:"Oval-Copy-5",stroke:"#1B2559",strokeWidth:2,transform:"translate(9.000000, 9.000000) rotate(-270.000000) translate(-9.000000, -9.000000) ",cx:9,cy:9,r:8}));function sa(e,t){var n=e.title,r=e.titleId,l=ia(e,["title","titleId"]);return a.createElement("svg",la({width:"18px",height:"18px",viewBox:"0 0 18 18",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,oa,ca)}var ua=a.forwardRef(sa);n.p;function da(){return(da=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var fa=a.createElement("desc",null,"Created with Sketch."),pa=a.createElement("g",{id:"icon/stage/zodiac/empty",stroke:"none",strokeWidth:2,fill:"none",fillRule:"evenodd"},a.createElement("circle",{id:"Oval-Copy-6",stroke:"#5F668A",transform:"translate(9.000000, 9.000000) rotate(-270.000000) translate(-9.000000, -9.000000) ",cx:9,cy:9,r:8}));function ha(e,t){var n=e.title,r=e.titleId,l=ma(e,["title","titleId"]);return a.createElement("svg",da({width:"18px",height:"18px",viewBox:"0 0 18 18",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,fa,pa)}var ba,ga=a.forwardRef(ha),va=(n.p,Ee.tl2),ya=Ee.p,Ea=T,Oa={sidebar:Object(I.a)({display:"flex",backgroundColor:Ea,width:520,marginLeft:-300,boxShadow:"-500px 0px 0px 0px ".concat(Ea),borderRadius:"0 20px 0 0",alignItems:"flex-end",padding:24,flexDirection:"column"},(ba=1440,"@media only screen and (max-width: ".concat(ba,")")),{width:"auto",marginLeft:0,minWidth:250,boxShadow:"-200px 0px 0px 0px ".concat(Ea)}),link:{extend:ya,position:"relative",color:Q,margin:"12px 24px 12px 0",cursor:"pointer","&:hover::after":{height:"140%"},"&:after":{content:'""',display:"block",background:M,width:4,height:0,left:"100%",marginLeft:20,bottom:-2,position:"absolute",borderRadius:1e3,transition:"all 0.2s cubic-bezier(0.95, 0.1, 0.45, 0.94)"}},activeLink:{extend:va,color:M,"&::after":{height:"140%"}},customRenderLink:{"&:hover::after":{height:"100%"},"&:after":{bottom:0}},customRenderActiveLink:{"&::after":{height:"100%"}},item:{position:"relative",margin:"12px 0 12px 0",display:"flex"},itemText:{extend:ya,color:Q,marginRight:24},itemTextActive:{extend:va,color:M},itemTextPast:{color:M},stepperPath:{position:"absolute",height:25,width:1,border:[[1,"solid",Q]],right:8,top:18},stepperPast:{border:[[1,"solid",M]]}},wa=Object(m.a)(Oa),xa=function(e){var t=e.data,n=e.displayName,a=e.isSelected,l=e.onClick,i=e.children,o=e.itemRender,c=wa();return r.a.createElement("div",{className:c.sidebar},t&&t.map((function(e,t){var i;return r.a.createElement("div",{key:t,className:N()((i={},Object(I.a)(i,c.activeLink,a(e)),Object(I.a)(i,c.customRenderActiveLink,o&&a(e)),Object(I.a)(i,c.customRenderLink,o),Object(I.a)(i,c.link,!0),i)),onClick:function(){return l(e)}},o?o(e,a(e)):n(e))})),i)},ja=function(e){var t,n,a=e.step,l=e.it,i=e.idx,o=e.steps,c=wa(),s=a===i,u=ia;return r.a.createElement("div",{className:c.item},r.a.createElement("span",{className:N()((t={},Object(I.a)(t,c.itemText,!0),Object(I.a)(t,c.itemTextActive,s),Object(I.a)(t,c.itemTextPast,u),t))},l.label),s&&r.a.createElement(ua,null),u&&r.a.createElement(ra,null),d&&r.a.createElement(ga,null),i=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var Sa=a.createElement("style",{type:"text/css"},"\n\t.st0{fill-rule:evenodd;clip-rule:evenodd;fill:#1B2559;}\n"),Na=a.createElement("desc",null,"Created with Sketch."),Ia=a.createElement("g",{id:"color_x2F_primary_x2F_zodiac",transform:"translate(-0.000000, 0.000000)"},a.createElement("g",{id:"Mask"},a.createElement("path",{id:"path-1_1_",className:"st0",d:"M11.1,9l6.5,6.5c0.6,0.6,0.6,1.5,0,2.1c-0.3,0.3-0.7,0.4-1.1,0.4c-0.4,0-0.8-0.2-1.1-0.4 L9,11.1l-6.5,6.5C2.3,17.8,1.9,18,1.5,18c-0.4,0-0.8-0.2-1.1-0.4c-0.6-0.6-0.6-1.5,0-2.1L6.9,9L0.4,2.5C-0.1,2-0.1,1,0.4,0.4 C1-0.1,2-0.1,2.5,0.4L9,6.9l6.5-6.5c0.6-0.6,1.5-0.6,2.1,0c0.6,0.6,0.6,1.5,0,2.1L11.1,9z"})));function La(e,t){var n=e.title,r=e.titleId,l=ka(e,["title","titleId"]);return a.createElement("svg",Ca({id:"Layer_1",x:"0px",y:"0px",viewBox:"0 0 18 18",style:{enableBackground:"new 0 0 18 18"},xmlSpace:"preserve",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,Sa,Na,Ia)}var Ba=a.forwardRef(La);n.p;function Pa(){return(Pa=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var Da=a.createElement("desc",null,"Created with Sketch."),Ta=a.createElement("g",{id:"Symbols",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd"},a.createElement("g",{id:"icon/warning-icon/comet"},a.createElement("rect",{id:"Rectangle",stroke:"#5F668A",strokeWidth:2,x:1,y:1,width:22,height:22,rx:11}),a.createElement("path",{d:"M11.2971429,14.4857143 L11.1085714,5.82857143 L13.3714286,5.82857143 L13.2,14.4857143 L11.2971429,14.4857143 Z M11.1942857,18 L11.1942857,15.9771429 L13.3028571,15.9771429 L13.3028571,18 L11.1942857,18 Z",id:"!",fill:"#5F668A",fillRule:"nonzero"})));function Wa(e,t){var n=e.title,r=e.titleId,l=Fa(e,["title","titleId"]);return a.createElement("svg",Pa({width:"24px",height:"24px",viewBox:"0 0 24 24",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,Da,Ta)}var Ra=a.forwardRef(Wa),za=(n.p,"100%"),Aa="column",Ma={dialog:{backgroundColor:V,width:za,minHeight:za,display:"flex",flexDirection:Aa,padding:0},wrapper:{width:ee,height:za,margin:"0 auto",flex:1,display:"flex",flexDirection:Aa},contentDiv:{display:"flex",flex:1,flexDirection:"row"},headerDiv:{display:"flex",justifyContent:"space-between",alignItems:"center"},contentWrapper:{marginLeft:48},button:{marginTop:64},nameTitle:{marginTop:16,marginBottom:25},qrTitle:{marginTop:12,marginBottom:40},qrCodeWrapper:{display:"flex"},qrTextWrapper:{width:381,marginLeft:80,display:"flex",flexDirection:"column",alignItems:"center"},qrTextIcon:{marginRight:16},qrText:{marginTop:0},item:{position:"relative",margin:"12px 0 12px 0",display:"flex"},itemText:{extend:Ee.p,color:Q,marginRight:24},itemTextActive:{extend:Ee.tl2,color:M},itemTextPast:{color:M},stepperPath:{position:"absolute",height:25,width:1,border:[[1,"solid",Q]],right:8,top:18},stepperPast:{border:[[1,"solid",M]]}};function qa(){var e=Object(tn.a)(["\n {\n machines {\n name\n deviceId\n }\n }\n"]);return qa=function(){return e},e}function $a(){var e=Object(tn.a)(["\n mutation createPairingTotem($name: String!) {\n createPairingTotem(name: $name)\n }\n"]);return $a=function(){return e},e}var Ha=sn()($a()),Va=sn()(qa()),Ya=Object(m.a)(Ma),Ga=mn.a(fn.a,pn.a([],["machines"])),Za={name:""},_a=hn.d().shape({name:hn.e().required().max(50)}),Ua=[{label:"Machine name",component:function(e){var t=e.nextStep,n=e.classes,a=e.setQrCode,l=e.setName,i=Object(nn.b)(Ha,{onCompleted:function(e){var n=e.createPairingTotem;a(n),t()},onError:function(e){return console.log(e)}}),c=Object(o.a)(i,1)[0];return r.a.createElement(r.a.Fragment,null,r.a.createElement(Gt,{className:n.nameTitle},"Machine Name (ex: Coffee shop 01)"),r.a.createElement(on.d,{initialValues:Za,validationSchema:_a,onSubmit:function(e){var t=e.name;l(t),c({variables:{name:t}})}},r.a.createElement(on.c,{className:n.form},r.a.createElement("div",null,r.a.createElement(on.a,{name:"name",label:"Enter machine name",component:Qn})),r.a.createElement("div",{className:n.button},r.a.createElement(Ae,{type:"submit"},"Submit")))))}},{label:"Scan QR code",component:function(e){var t,n=e.classes,a=e.qrCode,l=e.name,i=e.count,o=e.onPaired,c=Object(nn.c)(Va,{pollInterval:1e4}).data,s=null===c||void 0===c||null===(t=c.machines)||void 0===t?void 0:t.find((function(e){return e.name===l}));return Ga(c)>i&&s&&o(s),r.a.createElement(r.a.Fragment,null,r.a.createElement(Gt,{className:n.qrTitle},"Scan QR code with your new cryptomat"),r.a.createElement("div",{className:n.qrCodeWrapper},r.a.createElement("div",null,r.a.createElement(dn.a,{size:240,fgColor:M,value:a})),r.a.createElement("div",{className:n.qrTextWrapper},r.a.createElement("div",{className:n.qrCodeWrapper},r.a.createElement("div",{className:n.qrTextIcon},r.a.createElement(Ra,null)),r.a.createElement(Vt,{className:n.qrText},"To pair the machine you need scan the QR code with your machine. To do this either snap a picture of this QR code or download it through the button above and scan it with the scanning bay on your machine.")))))}}],Ja=Object(a.memo)((function(e){var t=e.close,n=e.onPaired,l=Ya(),i=Object(nn.c)(Va).data,c=Object(a.useState)(""),s=Object(o.a)(c,2),u=s[0],d=s[1],m=Object(a.useState)(""),f=Object(o.a)(m,2),p=f[0],h=f[1],b=Object(a.useState)(0),g=Object(o.a)(b,2),v=g[0],y=g[1],E=Ga(i),O=Ua[v].component;return r.a.createElement("div",null,r.a.createElement(an.a,{fullScreen:!0,className:l.dialog,open:!0,"aria-labelledby":"form-dialog-title"},r.a.createElement(rn.a,{className:l.dialog},r.a.createElement("div",{className:l.wrapper},r.a.createElement("div",{className:l.headerDiv},r.a.createElement(gn,null,"Add Machine"),r.a.createElement(nt.a,{disableRipple:!0,onClick:t},r.a.createElement(ln.a,{color:"error"},r.a.createElement(Ba,null)))),r.a.createElement("div",{className:l.contentDiv},r.a.createElement(xa,null,Ua.map((function(e,t){return function(e,t,n,a){var l,i,o=e===n,c=ne;return r.a.createElement("div",{className:a.item},r.a.createElement("span",{className:N()((l={},Object(I.a)(l,a.itemText,!0),Object(I.a)(l,a.itemTextActive,o),Object(I.a)(l,a.itemTextPast,c),l))},t.label),o&&r.a.createElement(ua,null),c&&r.a.createElement(ra,null),s&&r.a.createElement(ga,null),n=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var Xa=a.createElement("desc",null,"Created with Sketch."),er=a.createElement("defs",null,a.createElement("path",{d:"M17.8413132,12.8764646 C17.8413132,12.8764646 16.6555879,12.5091919 15.661533,12.2855556 C15.661533,12.2855556 15.3477198,10.3246465 14.8939121,8.23646465 C14.8939121,8.23646465 15.1560495,8.21373737 15.3383242,8.8710101 L16.0223242,12.0219192 C16.0223242,12.0219192 17.2343571,12.2991919 18.1795549,12.6537374 L17.8413132,12.8764646 Z M15.2603407,6.10282828 L15.5328132,5.80555556 C16.0627253,5.87828283 16.3483516,6.02828283 16.3483516,6.02828283 L16.291978,6.11191919 L16.3972088,6.9310101 C16.2440604,6.93646465 16.0091703,7.05919192 16.0091703,7.05919192 L15.8315934,6.95010101 L15.8315934,6.38282828 C15.3026209,6.29919192 15.2556429,6.21828283 15.2556429,6.21828283 L15.2603407,6.10282828 Z M12.4557527,18.2873737 C11.2831813,18.4964646 9.84565385,18.2237374 9.84565385,18.2237374 L9.89732967,17.9991919 C9.89732967,17.9991919 11.6496099,18.1955556 12.6248736,17.8973737 C12.5553462,18.0628283 12.5356154,18.1137374 12.4557527,18.2873737 L12.4557527,18.2873737 Z M9.18984066,14.5464646 C8.379,15.1364646 7.56064286,15.6791919 7.00442308,16.1091919 C6.9705989,16.6955556 6.91516484,17.6464646 6.91516484,17.6464646 L5.46448352,18.5182828 L5.22207692,18.3737374 C5.27845055,17.9219192 5.34891758,17.5882828 5.34891758,17.5882828 L5.55186264,17.4410101 C5.50676374,17.7282828 5.48515385,18.1346465 5.48515385,18.1346465 L6.5928956,17.440101 C6.63705495,16.7019192 6.72443407,15.960101 6.72443407,15.960101 C6.9705989,15.7373737 8.73697253,14.5237374 10.0100803,13.6864646 C10.0100803,13.6864646 10.018533,13.9437374 9.18984066,14.5464646 L9.18984066,14.5464646 Z M14.977533,0.195555556 C15.2612802,0.167373737 15.5065055,0.184646465 15.7103901,0.228282828 L15.7103901,0.228282828 L15.8813901,0.697373737 L16.1003077,0.361919192 C16.2694286,0.447373737 16.3746593,0.547373737 16.4056648,0.624646465 C16.4056648,0.624646465 16.3615055,0.909191919 16.4319725,1.36464646 C16.5005604,1.80373737 16.6988077,2.78191919 16.6988077,2.78191919 C16.9740989,3.00646465 17.2850934,3.51282828 17.2850934,3.51282828 C17.4758242,4.41737374 17.4645495,5.04919192 17.4636099,5.1210101 C16.6734396,4.68646465 15.6173736,4.58555556 15.6173736,4.58555556 L15.6173736,4.58555556 L15.2481264,4.90828283 C15.9753462,5.00828283 16.8792033,5.26555556 17.1122143,5.44555556 C17.2484505,5.74737374 17.3386484,6.22828283 17.3386484,6.22828283 L17.3386484,6.22828283 L17.0445659,6.58919192 L17.3198571,6.8810101 C17.3386484,7.22464646 17.2183846,7.56919192 17.2183846,7.56919192 C17.7905769,7.93010101 17.9512418,8.79373737 18.3101538,10.250101 C18.6700055,11.7064646 18.9903956,12.9055556 18.9903956,12.9055556 L18.9903956,12.9055556 L18.4567253,13.2019192 C19.1623352,15.7282828 18.444511,17.7391919 17.5378352,19.0664646 C16.6320989,20.3946465 16.0862143,21.7137374 16.1031264,22.8910101 L16.1031264,22.8910101 L16.5475385,23.2346465 L16.7749121,23.9491919 L14.3048077,23.9491919 L14.293533,23.2728283 C14.2925934,21.5619192 14.9230385,20.1328283 14.9230385,20.1328283 C15.2857088,20.0473737 15.6596538,19.7628283 15.6596538,19.7628283 C15.0733681,19.8828283 14.3414505,19.7964646 14.3414505,19.7964646 C14.8676044,18.8537374 15.0292088,18.1773737 15.0292088,18.1773737 L15.0292088,18.1773737 L14.7811648,18.1228283 C14.6956648,18.310101 14.6073462,18.4937374 14.5133901,18.6710101 C13.8754286,19.8864646 13.1735769,20.6628283 12.7554725,22.4055556 L12.7554725,22.4055556 L13.1933077,22.7455556 L13.6987912,23.9491919 L10.8509835,23.9491919 C10.8340714,21.8246465 11.495522,20.2273737 11.7341703,19.7628283 C10.2233571,19.9264646 8.42128022,19.1782828 6.99314835,19.4664646 C6.60041209,21.9473737 4.59257143,22.4355556 3.65019231,22.300101 L3.65019231,22.300101 L2.97652747,23.4146465 L3.58724176,23.9491919 L1.33135714,23.9491919 C1.32008242,23.8546465 1.2918956,23.7537374 1.22988462,23.6591919 C1.22988462,23.6591919 1.97401648,22.5882828 2.48231868,21.150101 C2.89008791,21.3255556 3.75166484,20.9928283 3.78736813,20.1055556 C3.82401099,19.2191919 3.67086264,17.8419192 4.46854945,16.7891919 C5.2652967,15.7355556 6.12687363,15.1655556 7.25152747,14.3328283 C7.98250549,13.7910101 9.22084615,12.8755556 9.99974176,12.3010101 L9.99974176,12.3010101 L9.61546154,12.3864646 L6.81087363,14.6491919 L5.82997253,14.6491919 L8.66368681,12.1164646 L8.29725824,12.1091919 L5.33576374,14.6491919 L4.34170879,14.6491919 L7.27313736,11.720101 L6.9208022,11.7173737 L3.88038462,14.6491919 L2.86565934,14.6491919 L5.8093022,11.3037374 L5.46918132,11.3055556 L2.43534066,14.6491919 L1.36706044,14.6491919 L4.22614286,10.8528283 L3.89635714,10.8573737 L0.963989011,14.6491919 L0,14.6491919 C0,14.6491919 4.11809341,8.22464646 4.92893407,7.00737374 C5.73883516,5.79010101 6.6192033,4.62282828 8.06894505,4.38464646 C9.53465934,4.14282828 10.5343516,4.46646465 11.2502967,5.63373737 C11.636456,6.2610101 12.1034176,6.97828283 12.4698462,7.55919192 C12.0968407,8.1510101 11.6298791,8.6110101 11.5857198,9.32282828 C11.534044,10.1419192 12.0921429,10.6373737 12.6558791,10.6773737 C12.2321374,10.5282828 11.8976538,10.0337374 12.0489231,9.37646465 C12.2058297,8.69737374 12.7554725,8.35191919 13.1726374,7.80282828 C13.5315495,7.32828283 13.5371868,6.63282828 13.5108791,6.4010101 C13.4836319,6.16919192 13.2167967,5.98828283 13.2167967,5.98828283 C13.2167967,5.98828283 13.2252527,5.52373737 13.2167967,5.01646465 C13.2083407,4.51010101 13.4300769,4.21828283 13.4300769,4.21828283 C13.4300769,4.21828283 13.4216209,3.4610101 13.3943736,2.57646465 C13.3671264,1.72555556 13.2863242,1.46828283 13.205522,1.35464646 C13.205522,1.35464646 13.2694121,1.10919192 13.5099396,0.844646465 L13.5099396,0.844646465 L13.7542253,1.06282828 L13.8284505,0.571919192 C13.9825385,0.469191919 14.1723297,0.375555556 14.4072198,0.307373737 C14.4325879,0.30010101 14.4570165,0.294646465 14.4823846,0.288282828 L14.4823846,0.288282828 L14.7896209,0.644646465 Z M7.71628243,19.8937938 C8.32897736,19.8402566 9.02386307,19.9393405 9.75797621,20.0432188 L9.75797621,20.0432188 L9.86538462,20.058401 C9.7449004,20.8103202 9.02106112,21.7691969 7.79193531,22.0896215 L7.79193531,22.0896215 L9.01358923,23.5151515 L7.36136769,23.5151515 C7.15589073,23.2226941 6.50396838,22.32135 6.16586538,21.9681638 C6.72065317,21.6525335 7.42954868,21.0388524 7.71628243,19.8937938 Z",id:"path-1"})),tr=a.createElement("g",{id:"Symbols",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd"},a.createElement("g",{id:"nav-/-primary-/-1440",transform:"translate(-128.000000, -14.000000)"},a.createElement("g",{id:"icon/lamassu-logo",transform:"translate(128.000000, 14.000000)"},a.createElement("g",{id:"color/amaz/default"},a.createElement("mask",{id:"mask-2",fill:"white"},a.createElement("use",{xlinkHref:"#path-1"})),a.createElement("use",{id:"Mask",fill:"#16D6D3",xlinkHref:"#path-1"})))));function nr(e,t){var n=e.title,r=e.titleId,l=Qa(e,["title","titleId"]);return a.createElement("svg",Ka({width:"19px",height:"24px",viewBox:"0 0 19 24",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,Xa,er,tr)}var ar=a.forwardRef(nr),rr=(n.p,Ee.tl2),lr=Ee.p,ir=56,or=40;var cr={header:{backgroundColor:M,color:R,height:ir,display:"flex"},content:{maxWidth:ee,flex:1,display:"flex",alignItems:"center",margin:"0 auto"},nav:{flex:1,display:"flex",alignItems:"center",justifyContent:"space-between"},ul:{display:"flex",paddingLeft:36,height:56,margin:0},li:{listStyle:"none",color:R,margin:[[20,20,0,20]],"&:hover":{color:R},"&:hover::after":{width:"50%",marginLeft:"-25%"},position:"relative","&:after":{content:'""',display:"block",background:R,width:0,height:4,left:"50%",marginLeft:0,bottom:-8,position:"absolute",borderRadius:1e3,transition:[["all","0.2s","cubic-bezier(0.95, 0.1, 0.45, 0.94)"]]}},link:{extend:lr,textDecoration:"none",border:"none",color:R,backgroundColor:"transparent"},forceSize:{display:"inline-block",textAlign:"center","&:after":{display:"block",content:"attr(forcesize)",fontWeight:700,height:0,overflow:"hidden",visibility:"hidden"}},activeLink:{color:R,"& li::after":{width:"50%",marginLeft:"-25%"}},addMachine:{marginLeft:"auto"},subheader:{backgroundColor:Y,color:R,height:or,display:"flex"},subheaderUl:{display:"flex",paddingLeft:0},subheaderLi:{extend:rr,display:"flex",alignItems:"center",height:24,listStyle:"none",padding:[[0,20]],"&:first-child":{paddingLeft:0}},subheaderLink:{extend:lr,textDecoration:"none",border:"none",color:Q},activeSubheaderLink:{extend:rr,color:U},white:{color:R},logo:{display:"flex",alignItems:"center","& > svg":{marginRight:16}}},sr=Object(m.a)(cr),ur=function(e){var t=e.item,n=e.classes;return r.a.createElement("div",{className:n.subheader},r.a.createElement("div",{className:n.content},r.a.createElement("nav",null,r.a.createElement("ul",{className:n.subheaderUl},t.children.map((function(e,t){return r.a.createElement("li",{key:t,className:n.subheaderLi},r.a.createElement(v.b,{to:e.route,className:n.subheaderLink,activeClassName:n.activeSubheaderLink},e.label))}))))))},dr=Object(a.memo)((function(e){var t=e.tree,n=Object(a.useState)(!1),l=Object(o.a)(n,2),i=l[0],c=l[1],s=Object(a.useState)(),u=Object(o.a)(s,2),d=u[0],m=u[1],f=Object(g.h)(),p=sr();return r.a.createElement("header",null,r.a.createElement("div",{className:p.header},r.a.createElement("div",{className:p.content},r.a.createElement("div",{className:p.logo},r.a.createElement(ar,null),r.a.createElement($t,{className:p.white},"Lamassu Admin")),r.a.createElement("nav",{className:p.nav},r.a.createElement("ul",{className:p.ul},t.map((function(e,t){return r.a.createElement(v.b,{key:t,to:e.route||e.children[0].route,isActive:function(t){return!!t&&(m(e),!0)},className:N()(p.link,p.whiteLink),activeClassName:p.activeLink},r.a.createElement("li",{className:p.li},r.a.createElement("span",{className:p.forceSize,forcesize:e.label},e.label)))}))),r.a.createElement(ut,{color:"action",onClick:function(){return c(!0)}},"Add Machine")))),d&&d.children&&r.a.createElement(ur,{item:d,classes:p}),i&&r.a.createElement(Ja,{close:function(){return c(!1)},onPaired:function(e){c(!1),f.push("/maintenance/machine-status",{id:e.deviceId})}}))})),mr=n(538),fr=n(554),pr=n(557),hr=n(233),br=n(530),gr=n(523),vr=n(326),yr=n.n(vr),Er=function(){var e=Object(g.h)(),t=new URLSearchParams(Object(g.i)().search);return yr()({url:"".concat("","/api/register?otp=").concat(t.get("otp")),method:"GET",options:{withCredentials:!0},trigger:[],customHandler:function(t,n){t||n&&e.push("/wizard",{fromAuthRegister:!0})}}),r.a.createElement("span",null,"registering...")},Or=n(219),wr=n(518),xr=n(502);function jr(){return(jr=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var kr=a.createElement("desc",null,"Created with Sketch."),Sr=a.createElement("g",{id:"icon/action/help/zodiac",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd"},a.createElement("path",{d:"M20.0004,11 C20.0004,6.03028475 15.9701153,2 11.0004,2 C6.03004556,2 2.0004,6.02992391 2.0004,11 C2.0004,15.9700761 6.03004556,20 11.0004,20 C15.9701153,20 20.0004,15.9697153 20.0004,11 Z M22.0004,11 C22.0004,17.0742847 17.0746847,22 11.0004,22 C4.92544514,22 0.000400000001,17.0746147 0.000400000001,11 C0.000400000001,4.92538534 4.92544514,0 11.0004,0 C17.0746847,0 22.0004,4.92571525 22.0004,11 Z",id:"Stroke-1",fill:"#1B2559",fillRule:"nonzero"}),a.createElement("path",{d:"M9.9164,8.9063 C9.9164,9.45858475 9.46868475,9.9063 8.9164,9.9063 C8.36411525,9.9063 7.9164,9.45858475 7.9164,8.9063 C7.9164,6.89094438 9.72972438,5.35290249 11.7463843,5.7072003 C13.0663562,5.93764844 14.1348314,7.00654285 14.3652323,8.32479116 C14.6130182,9.7312185 13.941375,11.0876584 12.732214,11.7545735 C12.370484,11.9534687 12.1664,12.2664153 12.1664,12.5913 L12.1664,12.6563 C12.1664,13.2085847 11.7186847,13.6563 11.1664,13.6563 C10.6141153,13.6563 10.1664,13.2085847 10.1664,12.6563 L10.1664,12.5913 C10.1664,11.5009567 10.7946963,10.5375141 11.7674377,10.0026589 C12.2360927,9.74417086 12.493064,9.22519581 12.3953326,8.67046887 C12.3098185,8.1811985 11.8915858,7.76280177 11.4013649,7.67721566 C10.6126181,7.53864454 9.9164,8.1291691 9.9164,8.9063 Z",id:"Stroke-3",fill:"#1B2559",fillRule:"nonzero"}),a.createElement("path",{d:"M10.1039,15.2188 C10.1039,14.6318 10.5799,14.1568 11.1659,14.1568 C11.7529,14.1568 12.2289,14.6318 12.2289,15.2188 C12.2289,15.8058 11.7529,16.2808 11.1659,16.2808 C10.5799,16.2808 10.1039,15.8058 10.1039,15.2188",id:"Fill-5",fill:"#1B2559"}));function Nr(e,t){var n=e.title,r=e.titleId,l=Cr(e,["title","titleId"]);return a.createElement("svg",jr({width:"22px",height:"22px",viewBox:"0 0 22 22",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,kr,Sr)}var Ir=a.forwardRef(Nr),Lr=(n.p,Object(m.a)({transparentButton:{border:"none",backgroundColor:"transparent",marginTop:4,outline:"none",cursor:"pointer"},popoverContent:function(e){return{width:e.width,padding:[[10,15]]}}})),Br=Object(a.memo)((function(e){var t=e.children,n=e.width,l=e.Icon,i=void 0===l?Ir:l,c=Lr({width:n}),s=Object(a.useState)(null),u=Object(o.a)(s,2),d=u[0],m=u[1],f=Boolean(d);return r.a.createElement(xr.a,{onClickAway:function(){m(null)}},r.a.createElement("div",null,r.a.createElement("button",{className:c.transparentButton,onClick:function(e){m(d?null:e.currentTarget)}},r.a.createElement(i,null)),r.a.createElement(Je,{open:f,anchorEl:d,placement:"bottom"},r.a.createElement("div",{className:c.popoverContent},t))))})),Pr=n(516),Fr=n(503),Dr=n(504),Tr=n(327),Wr=n(505),Rr=n(549),zr="cashOut",Ar="wallets",Mr="operatorInfo",qr="notifications",$r="locale",Hr="commissions",Vr="receipt",Yr="coinAtmRadar",Gr="termsConditions",Zr=Fr.a((function(e,t){return Dr.a(jn.a(Tr.a(0,e),Wr.a(t)))})),_r=Fr.a((function(e,t){return Dr.a(hr.a((function(t){return e(t[0])}),Wr.a(t)))})),Ur=Fr.a((function(e,t){return Rr.a(e,t)?t.slice(e.length):t})),Jr=Fr.a((function(e,t){return mn.a(function(e){return Zr(Ur("".concat(e,"_")))}(e),function(e){return _r(Rr.a("".concat(e,"_")))}(e))(t)})),Kr=Fr.a((function(e,t){return Zr((function(t){return"".concat(e,"_").concat(t)}))(t)})),Qr=n(54),Xr=n.n(Qr),el=n(77),tl=n(152),nl=n(328),al=n(555),rl=n(556),ll=n(514),il=n(95),ol=n(234),cl=n(515),sl=n(550),ul=function(e){var t=e.message,n=void 0===t?"You have unsaved changes on this page. Are you sure you want to leave?":t,a=Object(on.e)();return r.a.createElement(g.a,{when:a.dirty&&0===a.submitCount,message:n})},dl=n(506),ml=n(507),fl=Ee.tl2,pl=Ee.label1,hl={size:function(e){var t=e.size;return Bn(t)},bold:Pn,header:{extend:fl,backgroundColor:ge,height:pe,textAlign:"left",color:R,display:"flex",alignItems:"center"},doubleHeader:{extend:fl,backgroundColor:ge,height:be,color:R,display:"table-row"},thDoubleLevel:function(e){return{width:e.width,display:"table-cell","& > :first-child":{margin:[[0,10]],extend:pl,fontWeight:700,display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:J,color:R,borderRadius:[[0,0,8,8]],height:28},"& > :last-child":{padding:[[0,11]],display:"table-cell",verticalAlign:"middle",height:be-28}}},cellDoubleLevel:{display:"flex",padding:[[0,16]]},td:function(e){var t=e.textAlign;return{width:e.width,padding:[[1,24,0,24]],textAlign:t}},tdHeader:{verticalAlign:"middle",display:"table-cell",padding:[[0,24]]},trError:{backgroundColor:ve},mainContent:function(e){return{display:"flex",alignItems:"center",minHeight:"lg"===e.size?68:48}},cardContentRoot:{margin:0,padding:0,"&:last-child":{padding:0}},card:{extend:Ee.p,"&:before":{height:0},margin:[[4,0,0,0]],width:"100%",boxShadow:[[0,0,4,0,"rgba(0, 0, 0, 0.08)"]]},actionCol:{marginLeft:"auto"},errorContent:{padding:[[12,0,12,24]],color:X}},bl=Object(m.a)(hl),gl=function(e){var t=e.children,n=e.className,a=Object(L.a)(e,["children","className"]);return r.a.createElement("div",Object.assign({className:N()(n)},a),t)},vl=function(e){var t=e.children,n=e.className,a=bl();return r.a.createElement("div",{className:N()(n,a.header)},t)},yl=function(e){var t=e.children,n=e.className,a=bl();return r.a.createElement("div",{className:N()(n,a.doubleHeader)},t)},El=function(e){var t=e.children,n=e.className;return r.a.createElement("div",{className:N()(n)},t)},Ol=function(e){var t,n=e.children,a=e.header,l=e.className,i=e.width,o=void 0===i?100:i,c=e.size,s=e.bold,u=e.textAlign,d=e.action,m=bl({textAlign:u,width:o,size:c}),f=(t={},Object(I.a)(t,m.td,!0),Object(I.a)(t,m.tdHeader,a),Object(I.a)(t,m.actionCol,d),Object(I.a)(t,m.size,!a),Object(I.a)(t,m.bold,!a&&s),t);return r.a.createElement("div",{className:N()(l,f)},n)},wl=function(e){var t=e.children,n=Object(L.a)(e,["children"]);return r.a.createElement(Ol,Object.assign({header:!0},n),t)},xl=function(e){var t=e.title,n=e.children,a=e.className,l=e.width,i=bl({width:l});return r.a.createElement("div",{className:N()(a,i.thDoubleLevel)},r.a.createElement("div",null,t),r.a.createElement("div",null,n))},jl=function(e){var t,n=e.onClick,a=e.error,l=e.errorMessage,i=e.children,o=e.className,c=e.size,s=bl({size:c}),u={root:s.cardContentRoot},d=(t={},Object(I.a)(t,s.tr,!0),Object(I.a)(t,s.trError,a),Object(I.a)(t,s.card,!0),Object(I.a)(t,"className",o),t);return r.a.createElement(r.a.Fragment,null,r.a.createElement(dl.a,{className:N()(d,o),onClick:n},r.a.createElement(ml.a,{classes:u},r.a.createElement("div",{className:s.mainContent},i),a&&r.a.createElement("div",{className:s.errorContent},l))))},Cl=r.a.createContext(),kl=n(546),Sl=n(509),Nl=n(510),Il=n(511),Ll=n(508),Bl=n(227),Pl=Bl.create({checkTypes:!1,env:Bl.env}),Fl=Pl.compose(Pl.joinWith(""))(Tr.a(0,Pl.toLower)),Dl=Pl.compose(Pl.joinWith(""))(Tr.a(0,Pl.toUpper)),Tl=Pl.compose(Dl)(Pl.toLower),Wl=mn.a(Pl.splitOn(" "),Ll.a(/([A-Z])/g," $1"),Fl),Rl=mn.a(Pl.joinWith(" "),Pl.map(Tl),Wl),zl=function(){var e=Object(a.useContext)(Cl),t=e.elements,n=e.enableEdit,l=e.editWidth,i=e.enableDelete,c=e.deleteWidth,s=e.enableToggle,u=e.toggleWidth,d=e.DEFAULT_COL_SIZE,m=function(e,t){var n=e.name,a=e.width,l=void 0===a?d:a,i=e.header,o=e.textAlign;return r.a.createElement(Ol,{header:!0,key:t,width:l,textAlign:o},i||Rl(n))},f=function(e){var t=kl.a(fr.a("doubleHeader"))(e),n=Object(o.a)(t,2),a=n[0],r=n[1];if(!a.length)return[e,vl];var l=Sl.a(a[0],e),i=mn.a(Nl.a,jn.a(Or.a(["width"])))(a);return[Il.a(l,{width:i,elements:a,name:a[0].doubleHeader},r),yl]}(t),p=Object(o.a)(f,2),h=p[0],b=p[1];return r.a.createElement(b,null,h.map((function(e,t){var n=e.width,a=e.elements,l=e.name;return a&&a.length?r.a.createElement(xl,{key:t,width:n,title:l},a.map(m)):m(e,t)})),n&&r.a.createElement(Ol,{header:!0,width:l,textAlign:"center"},"Edit"),i&&r.a.createElement(Ol,{header:!0,width:c,textAlign:"center"},"Delete"),s&&r.a.createElement(Ol,{header:!0,width:u,textAlign:"center"},"Enable"))},Al=n(512),Ml=n(81),ql=n(513),$l=n(338);function Hl(){return(Hl=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var Yl=a.createElement("desc",null,"Created with Sketch."),Gl=a.createElement("defs",null,a.createElement("path",{id:"arrow-path",d:"M5.3501239,7.53208616 L0.473798314,2.73082122 C-0.158421727,2.1051411 -0.158421727,1.0952488 0.476737158,0.466675069 C1.11220338,-0.155816755 2.1378971,-0.155816755 2.77494316,0.468226909 L6.49990857,4.13723769 L10.2264532,0.466675069 C10.8619195,-0.155816755 11.8876132,-0.155816755 12.5260183,0.469568675 C13.1582383,1.0952488 13.1582383,2.1051411 12.5245507,2.73226987 L7.64673876,7.53497972 C7.33802629,7.83583835 6.92590837,8 6.49990828,8 C6.0739082,8 5.66179027,7.83583835 5.3501239,7.53208616 Z"})),Zl=a.createElement("g",{id:"Styleguide",stroke:"none",strokeWidth:1,fillRule:"evenodd"},a.createElement("g",{id:"icon/action/arrow/regular"},a.createElement("mask",{id:"mask-2",fill:"white"},a.createElement("use",{xlinkHref:"#path-1"})),a.createElement("use",{id:"Mask",fillRule:"nonzero",xlinkHref:"#arrow-path"})));function _l(e,t){var n=e.title,r=e.titleId,l=Vl(e,["title","titleId"]);return a.createElement("svg",Hl({width:"13px",height:"8px",viewBox:"0 0 13 8",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,Yl,Gl,Zl)}var Ul=a.forwardRef(_l),Jl=(n.p,Ee.p),Kl=152,Ql={selectedItem:{width:111,display:"block",whiteSpace:"nowrap",overflow:"hidden"},select:{width:Kl,zIndex:2,"& label":{extend:Ee.label1,color:J,paddingLeft:10},"& button":{extend:Jl,position:"relative",border:0,backgroundColor:Y,width:Kl,padding:[[6,0,6,12]],borderRadius:20,lineHeight:"1.14",textAlign:"left",color:J,cursor:"pointer",outline:"0 none"},"& ul":{maxHeight:"200px",width:Kl,overflowY:"auto",position:"absolute",margin:0,borderTop:0,padding:0,borderRadius:[[0,0,8,8]],backgroundColor:Y,outline:"0 none","& li":{extend:Jl,listStyleType:"none",padding:[[6,12]],cursor:"pointer","& span":{width:"100%",display:"block",overflow:"hidden",whiteSpace:"nowrap"}},"& li:hover":{backgroundColor:J,color:R}},"& svg":{position:"absolute",top:12,right:14,fill:J}},selectFiltered:{"& button":{backgroundColor:J,color:R},"& ul":{"& li":{backgroundColor:J,color:R},"& li:hover":{backgroundColor:Y,color:J}},"& svg":{fill:[[R],"!important"]}},open:{"& button":{borderRadius:[[8,8,0,0]]}}},Xl=Object(m.a)(Ql);var ei=function(e){var t,n=e.label,a=e.items,l=Object(L.a)(e,["label","items"]),i=Xl(),o=Object($l.a)({items:a,selectedItem:l.selectedItem,onSelectedItemChange:function(e){l.onSelectedItemChange(e.selectedItem)}}),c=o.isOpen,s=o.selectedItem,u=o.getToggleButtonProps,d=o.getLabelProps,m=o.getMenuProps,f=o.getItemProps,p=(t={},Object(I.a)(t,i.select,!0),Object(I.a)(t,i.selectFiltered,s!==l.default),Object(I.a)(t,i.open,c),t);return r.a.createElement("div",{className:N()(p)},r.a.createElement("label",d(),Rl(n)),r.a.createElement("button",u(),r.a.createElement("span",{className:i.selectedItem},Rl(s)),r.a.createElement(Ul,null)),r.a.createElement("ul",m(),c&&a.map((function(e,t){return r.a.createElement("li",Object.assign({key:"".concat(e).concat(t)},f({item:e,index:t})),r.a.createElement("span",null,Rl(e)))}))))},ti=n(563),ni=n(16),ai=Object(a.memo)((function(e){var t=e.classes,n=Object(L.a)(e,["classes"]);return r.a.createElement(ti.a,Object.assign({size:"small",classes:t},n))})),ri=Object(ni.a)((function(e){return{root:{backgroundColor:Y,borderRadius:4,margin:e.spacing(.5,.25),height:18},label:{fontSize:se,color:U,fontWeight:500,fontFamily:fe,paddingRight:4,paddingLeft:4}}}))(ai),li={cashOut:{empty:z,full:M},cashIn:{empty:M,full:z}},ii=function(e){var t=e.percent,n=e.cashOut;return li[n?"cashOut":"cashIn"][t>=50?"full":"empty"]},oi={cashbox:{borderColor:ii,backgroundColor:ii,height:118,width:80,border:"2px solid",textAlign:"end",display:"inline-block"},emptyPart:{backgroundColor:"white",height:function(e){var t=e.percent;return"".concat(100-t,"%")},position:"relative","& > p":{color:ii,display:"inline-block",position:"absolute",margin:0,bottom:0,right:0}},fullPart:{backgroundColor:ii,"& > p":{color:"white",display:"inline"}}},ci={row:{display:"flex",justifyContent:"space-between"},innerRow:{display:"flex",justifyContent:"flex-start"},col2:{marginLeft:16},noMarginText:{marginTop:0,marginBottom:0},link:{marginTop:8},chip:{margin:[[0,0,0,7]]}},si=Object(m.a)(oi),ui=Object(m.a)(ci),di=function(e){var t=e.percent,n=void 0===t?0:t,a=e.cashOut,l=void 0!==a&&a,i=e.className,o=si({percent:n,cashOut:l});return r.a.createElement("div",{className:N()(i,o.cashbox)},r.a.createElement("div",{className:o.emptyPart},n<=51&&r.a.createElement(Qt,null,n.toFixed(0),"%")),r.a.createElement("div",{className:o.fullPart},n>51&&r.a.createElement(Qt,null,n.toFixed(0),"%")))},mi=function(e){var t=e.capacity,n=void 0===t?500:t,a=e.denomination,l=void 0===a?0:a,i=e.currency,o=e.notes,c=e.className,s=100*o/n,u=ui();return r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:u.row},r.a.createElement("div",{className:u.col},r.a.createElement(di,{className:c,percent:s,cashOut:!0})),r.a.createElement("div",{className:u.col2},r.a.createElement("div",{className:u.innerRow},r.a.createElement(Gt,{className:u.noMarginText},o),r.a.createElement(ri,{className:u.chip,label:"".concat(l," ").concat(i.code)})),r.a.createElement("div",{className:u.innerRow},r.a.createElement(Kt,{className:u.noMarginText},o*l," ",i.code)))))};function fi(){return(fi=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var hi=a.createElement("defs",null,a.createElement("path",{id:"a",d:"M0 0h22v22H0z"})),bi=a.createElement("g",{fill:"none",fillRule:"evenodd"},a.createElement("mask",{id:"b",fill:"#fff"},a.createElement("use",{xlinkHref:"#a"})),a.createElement("path",{stroke:"#9B9B9B",strokeWidth:2,strokeLinecap:"round",mask:"url(#b)",d:"M9 9v9M13 9v9"}),a.createElement("g",{mask:"url(#b)",stroke:"#9B9B9B",strokeLinecap:"round",strokeWidth:2},a.createElement("path",{strokeLinejoin:"round",d:"M3 6l2 15h12l2-15"}),a.createElement("path",{d:"M1 5h20M14 4a3 3 0 10-6 0"})));function gi(e,t){var n=e.title,r=e.titleId,l=pi(e,["title","titleId"]);return a.createElement("svg",fi({width:22,height:22,ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,hi,bi)}var vi=a.forwardRef(gi);n.p;function yi(){return(yi=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var Oi=a.createElement("desc",null,"Created with Sketch."),wi=a.createElement("g",{id:"icon/action/delete/enabled",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd",strokeLinecap:"round"},a.createElement("line",{x1:9,y1:9,x2:9,y2:18,id:"Stroke-1",stroke:"#1B2559",strokeWidth:2}),a.createElement("line",{x1:13,y1:9,x2:13,y2:18,id:"Stroke-2",stroke:"#1B2559",strokeWidth:2}),a.createElement("polyline",{id:"Stroke-3",stroke:"#1B2559",strokeWidth:2,strokeLinejoin:"round",points:"3 6 5 21 17 21 19 6"}),a.createElement("line",{x1:1,y1:5,x2:21,y2:5,id:"Stroke-5",stroke:"#1B2559",strokeWidth:2}),a.createElement("path",{d:"M14,4 C14,2.343 12.657,1 11,1 C9.343,1 8,2.343 8,4",id:"Stroke-7",stroke:"#1B2559",strokeWidth:2}));function xi(e,t){var n=e.title,r=e.titleId,l=Ei(e,["title","titleId"]);return a.createElement("svg",yi({width:"22px",height:"22px",viewBox:"0 0 22 22",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,Oi,wi)}var ji=a.forwardRef(xi);n.p;function Ci(){return(Ci=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var Si=a.createElement("desc",null,"Created with Sketch."),Ni=a.createElement("g",{id:"icon/action/edit/disabled",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},a.createElement("path",{d:"M1,18 L1,18 C1,19.657 2.343,21 4,21 L18,21 C19.657,21 21,19.657 21,18",id:"Stroke-1",stroke:"#9B9B9B",strokeWidth:2}),a.createElement("polygon",{id:"Stroke-3",stroke:"#9B9B9B",strokeWidth:2,points:"6 12 17 1 21 5 10 16 6 16"}));function Ii(e,t){var n=e.title,r=e.titleId,l=ki(e,["title","titleId"]);return a.createElement("svg",Ci({width:"22px",height:"22px",viewBox:"0 0 22 22",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,Si,Ni)}var Li=a.forwardRef(Ii);n.p;function Bi(){return(Bi=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var Fi=a.createElement("desc",null,"Created with Sketch."),Di=a.createElement("g",{id:"icon/action/edit/enabled",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},a.createElement("path",{d:"M1,18 L1,18 C1,19.657 2.343,21 4,21 L18,21 C19.657,21 21,19.657 21,18",id:"Stroke-1",stroke:"#1B2559",strokeWidth:2}),a.createElement("polygon",{id:"Stroke-3",stroke:"#1B2559",strokeWidth:2,points:"6 12 17 1 21 5 10 16 6 16"}));function Ti(e,t){var n=e.title,r=e.titleId,l=Pi(e,["title","titleId"]);return a.createElement("svg",Bi({width:"22px",height:"22px",viewBox:"0 0 22 22",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,Fi,Di)}var Wi=a.forwardRef(Ti);n.p;function Ri(){return(Ri=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var Ai=a.createElement("defs",null,a.createElement("pattern",{id:"pattern_68JiZ",patternUnits:"userSpaceOnUse",width:5.5,height:5.5,patternTransform:"rotate(45)"},a.createElement("line",{x1:0,y:0,x2:0,y2:5.5,stroke:"#DBDFED",strokeWidth:3}))),Mi=a.createElement("rect",{width:"100%",height:"100%",fill:"url(#pattern_68JiZ)",opacity:1});function qi(e,t){var n=e.title,r=e.titleId,l=zi(e,["title","titleId"]);return a.createElement("svg",Ri({width:"100%",height:"36px",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,Ai,"{' '}\n ",Mi)}var $i=a.forwardRef(qi),Hi=(n.p,{saveButton:{marginRight:20},lastOfGroup:{marginBottom:24},extraPadding:{paddingLeft:35,paddingRight:30},extraPaddingRight:{paddingRight:39},withSuffix:function(e){var t=e.textAlign;return{display:"flex",alignItems:"baseline",justifyContent:"right"===t?"end":t}},suffix:{marginLeft:7},size:function(e){var t=e.size;return Bn(t)},bold:Pn}),Vi=Object(m.a)(Hi),Yi=function(e){var t=e.disabled,n=e.editing,l=Vi(),i=Object(on.e)(),o=i.values,c=i.submitForm,s=i.resetForm,u=Object(a.useContext)(Cl),d=u.editWidth,m=u.onEdit,f=u.enableEdit,p=u.enableDelete,h=u.disableRowEdit,b=u.onDelete,g=u.deleteWidth,v=u.enableToggle,y=u.onToggle,E=u.toggleWidth,O=u.forceAdd,w=u.clearError,x=u.actionColSize,j=t||h&&h(o);return r.a.createElement(r.a.Fragment,null,n&&r.a.createElement(Ol,{textAlign:"center",width:x},r.a.createElement(ut,{className:l.saveButton,type:"submit",color:"primary",onClick:c},"Save"),!O&&r.a.createElement(ut,{color:"secondary",onClick:function(){w(),s()}},"Cancel")),!n&&f&&r.a.createElement(Ol,{textAlign:"center",width:d},r.a.createElement(lt,{disabled:j,className:l.editButton,onClick:function(){return m&&m(o.id)}},j?r.a.createElement(Li,null):r.a.createElement(Wi,null))),!n&&p&&r.a.createElement(Ol,{textAlign:"center",width:g},r.a.createElement(lt,{disabled:t,onClick:function(){return b(o.id)}},t?r.a.createElement(vi,null):r.a.createElement(ji,null))),!n&&v&&r.a.createElement(Ol,{textAlign:"center",width:E},r.a.createElement(Zn,{checked:!!o.active,value:!!o.active,disabled:t,onChange:function(){return y(o.id)}})))},Gi=function(e){var t,n=e.editing,a=e.focus,l=e.config,i=e.extraPaddingRight,o=e.extraPadding,s=l.name,u=l.bypassField,d=l.input,m=l.editable,f=void 0===m||m,p=l.size,h=l.bold,b=l.width,g=l.textAlign,v=l.suffix,y=l.SuffixComponent,E=void 0===y?Jt:y,O=l.view,w=void 0===O?function(e){return null===e||void 0===e?void 0:e.toString()}:O,x=l.inputProps,j=void 0===x?{}:x,C=Object(on.e)().values,k=Vi({textAlign:g,size:p}),S=Object(c.a)({fullWidth:!0,autoFocus:a,size:p,bold:h,textAlign:g},j);S.options&&!S.getLabel&&(S.getLabel=w);var N=n&&f,L=!u;return r.a.createElement(Ol,{className:(t={},Object(I.a)(t,k.extraPaddingRight,i),Object(I.a)(t,k.extraPadding,o),Object(I.a)(t,k.withSuffix,v),t),width:b,size:p,bold:h,textAlign:g},N&&L&&r.a.createElement(on.b,Object.assign({name:s,component:d},S)),N&&!L&&r.a.createElement(l.input,{name:s}),!N&&C&&r.a.createElement(r.a.Fragment,null,w(C[s],C)),v&&r.a.createElement(E,{className:k.suffix},v))},Zi=function(e){var t=e.editing,n=e.disabled,l=e.lastOfGroup,i=Object(on.e)(),c=i.touched,s=i.errors,u=i.values,d=Object(a.useContext)(Cl),m=d.elements,f=d.enableEdit,p=d.enableDelete,h=d.error,b=d.enableToggle,g=d.rowSize,v=d.stripeWhen,y=Vi(),E=v&&v(u)&&!t?function(e){var t=kl.a(fr.a("stripe"))(e),n=Object(o.a)(t,2),a=n[0],l=n[1];if(!a.length)return e;var i=Sl.a(a[0],e),c=mn.a(Nl.a,jn.a(Or.a(["width"])))(a);return Il.a(i,{width:c,editable:!1,view:function(){return r.a.createElement($i,null)}},l)}(m):m,O=kl.a(fr.a("doubleHeader"))(m),w=Object(o.a)(O,1)[0],x=(null===w||void 0===w?void 0:w.length)?Sl.a(w[0],m):-1,j=(null===w||void 0===w?void 0:w.length)?Sl.a(w[w.length-1],m):-1,C=E.findIndex((function(e){return void 0===e.editable||e.editable})),k=Object(I.a)({},y.lastOfGroup,l),S=Al.a(Ml.a(c),s),L=S&&Ml.a(S).length>0||!!h,B=h||S&&ql.a(S).join(", ");return r.a.createElement(jl,{className:N()(k),size:g,error:t&&L,errorMessage:B},E.map((function(e,n){return r.a.createElement(Gi,{key:n,config:e,editing:t,focus:n===C&&t,extraPaddingRight:j===n,extraPadding:x===n})})),(f||p||b)&&r.a.createElement(Yi,{disabled:n,editing:t}))},_i={wrapper:function(e){return{width:e.width}},addLink:{marginLeft:"auto"},title:{margin:0,color:J},outerHeader:{minHeight:16,marginBottom:24,display:"flex",justifyContent:"space-between",alignItems:"center"}},Ui=Object(m.a)(_i),Ji=mn.a(tl.a(nl.a)(0),jn.a((function(e){var t;return null!==(t=e.width)&&void 0!==t?t:100}))),Ki=function(e){var t,n,l,i=e.name,s=e.title,u=e.titleLg,d=e.elements,m=void 0===d?[]:d,f=e.data,p=void 0===f?[]:f,h=e.save,b=e.error,g=e.rowSize,v=void 0===g?"md":g,y=e.validationSchema,E=e.enableCreate,O=e.enableEdit,w=e.editWidth,x=e.enableDelete,j=e.deleteWidth,C=void 0===j?87:j,k=e.enableToggle,S=e.toggleWidth,N=void 0===S?87:S,L=e.onToggle,B=e.forceDisable,P=e.disableAdd,F=e.initialValues,D=e.setEditing,T=e.shouldOverrideEdit,W=e.editOverride,R=e.stripeWhen,z=e.disableRowEdit,A=e.groupBy,M=e.sortBy,q=e.createText,$=void 0===q?"Add override":q,H=e.forceAdd,V=void 0!==H&&H,Y=Object(a.useState)(null),G=Object(o.a)(Y,2),Z=G[0],_=G[1],U=Object(a.useState)(!1),J=Object(o.a)(U,2),K=J[0],Q=J[1],X=Object(a.useState)(!1),ee=Object(o.a)(X,2),te=ee[0],ne=ee[1],ae=Object(a.useState)(null),re=Object(o.a)(ae,2),le=re[0],ie=re[1];Object(a.useEffect)((function(){return ie(b)}),[b]),Object(a.useEffect)((function(){ie(null),Q(V)}),[V]);var oe=function(){var e=Object(el.a)(Xr.a.mark((function e(t){var n,a,r;return Xr.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!te){e.next=2;break}return e.abrupt("return");case 2:if(ne(!0),n=y.cast(t),a=al.a(wn.a("id",n.id))(p),r=-1!==a?rl.a(a,n,p):ll.a(n,p),il.a(p[a],n)){e.next=16;break}return e.prev=7,e.next=10,h(Object(I.a)({},i,r),n);case 10:e.next=16;break;case 12:return e.prev=12,e.t0=e.catch(7),ne(!1),e.abrupt("return");case 16:Q(!1),_(null),D&&D(!1),ne(!1);case 20:case"end":return e.stop()}}),e,null,[[7,12]])})));return function(t){return e.apply(this,arguments)}}(),ce=function(){Q(!1),_(null),D&&D(!1)},se=function(){Q(!0),ie(null),D&&D(!0,!0)},ue=x||k?87:174,de=Nn.a(ue)(w),me=(null!==(t=x&&C)&&void 0!==t?t:0)+(null!==(n=O&&de)&&void 0!==n?n:0)+(null!==(l=k&&N)&&void 0!==l?l:0),fe=Ji(m)+me,pe=Ui({width:fe}),he=!p.length&&E&&!K,be=!B&&!Z&&!P&&!K,ge=K||0!==p.length,ve=M?cl.a(M)(p):p,ye={elements:m,enableEdit:O,onEdit:function(e){if(T&&T(e))return W(e);_(e),ie(null),D&&D(e,!0)},clearError:function(){return ie(null)},error:le,disableRowEdit:z,editWidth:de,enableDelete:x,onDelete:function(e){var t=ol.a((function(t){return t.id===e}),p);return h(Object(I.a)({},i,t))},deleteWidth:C,enableToggle:k,rowSize:v,onToggle:L,toggleWidth:N,actionColSize:me,stripeWhen:R,forceAdd:V,DEFAULT_COL_SIZE:100};return r.a.createElement(Cl.Provider,{value:ye},r.a.createElement("div",{className:pe.wrapper},he&&be&&r.a.createElement(Fe,{onClick:se},$),ge&&r.a.createElement(r.a.Fragment,null,(s||E)&&r.a.createElement("div",{className:pe.outerHeader},s&&u&&r.a.createElement(Ut,{className:pe.title},s),s&&!u&&r.a.createElement(Gt,{className:pe.title},s),E&&be&&r.a.createElement(ut,{className:pe.addLink,onClick:se},$)),r.a.createElement(gl,null,r.a.createElement(zl,null),r.a.createElement(El,null,K&&r.a.createElement(on.d,{initialValues:Object(c.a)({id:Object(sl.a)()},F),onReset:ce,validationSchema:y,onSubmit:oe},r.a.createElement(on.c,null,r.a.createElement(ul,null),r.a.createElement(Zi,{editing:!0,disabled:B}))),ve.map((function(e,t){var n,a=ve[t+1],l=!!A&&a,i="Function"===vn.a(A)?A:xn.a(A),o=l&&i(e)!==i(a);return r.a.createElement(on.d,{key:null!==(n=e.id)&&void 0!==n?n:t,enableReinitialize:!0,initialValues:e,onReset:ce,validationSchema:y,onSubmit:oe},r.a.createElement(on.c,null,r.a.createElement(ul,null),r.a.createElement(Zi,{lastOfGroup:o,editing:Z===e.id,disabled:B||Z&&Z!==e.id||K})))})))))))},Qi=function(e){var t=e.name,n=e.save,a=e.data,l=void 0===a?{}:a,i=e.namespaces,o=void 0===i?[]:i,s=Object(L.a)(e,["name","save","data","namespaces"]),u=jn.a((function(e){return Object(c.a)({id:e},Jr(e)(l))}))(o);return r.a.createElement(Ki,Object.assign({name:t,data:u,save:function(){for(var e=arguments.length,t=new Array(e),a=0;a=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var no=a.createElement("desc",null,"Created with Sketch."),ao=a.createElement("g",{id:"Symbols",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd"},a.createElement("g",{id:"icon/warning-icon/tomato"},a.createElement("rect",{id:"Rectangle",stroke:"#FF584A",strokeWidth:2,x:1,y:1,width:22,height:22,rx:11}),a.createElement("path",{d:"M11.2971429,14.4857143 L11.1085714,5.82857143 L13.3714286,5.82857143 L13.2,14.4857143 L11.2971429,14.4857143 Z M11.1942857,18 L11.1942857,15.9771429 L13.3028571,15.9771429 L13.3028571,18 L11.1942857,18 Z",id:"!",fill:"#FF584A",fillRule:"nonzero"})));function ro(e,t){var n=e.title,r=e.titleId,l=to(e,["title","titleId"]);return a.createElement("svg",eo({width:"24px",height:"24px",viewBox:"0 0 24 24",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,no,ao)}var lo=a.forwardRef(ro),io=(n.p,{wrapper:{display:"flex",alignItems:"center","& > svg":{marginRight:10}},message:{display:"flex",alignItems:"center",color:X,margin:0,whiteSpace:"break-spaces"}}),oo=Object(m.a)(io),co=function(e){var t=e.className,n=e.children,a=(Object(L.a)(e,["className","children"]),oo());return r.a.createElement("div",{className:N()(a.wrapper,t)},r.a.createElement(lo,null),r.a.createElement(Zt,{className:a.message},n))},so=Object(m.a)({titleWrapper:{display:"flex",justifyContent:"space-between",alignItems:"center",flexDirection:"row"},titleAndButtonsContainer:{display:"flex"},error:{marginLeft:12},icon:{marginRight:6},label:{marginRight:24}}),uo=function(e){var t=e.className,n=e.title,a=e.error,l=e.labels,i=e.children,o=so();return r.a.createElement("div",{className:N()(o.titleWrapper,t)},r.a.createElement("div",{className:o.titleAndButtonsContainer},r.a.createElement(gn,null,n),a&&r.a.createElement(co,{className:o.error},"Failed to save")),r.a.createElement(Xi.a,{display:"flex",flexDirection:"row"},(null!==l&&void 0!==l?l:[]).map((function(e,t){var n=e.icon,a=e.label;return r.a.createElement(Xi.a,{key:t,display:"flex",alignItems:"center"},r.a.createElement("div",{className:o.icon},n),r.a.createElement(Kt,{className:o.label},a))}))),i)},mo=n(453),fo=Object(m.a)({modal:{display:"flex",justifyContent:"center",flexDirection:"column",alignItems:"center"},wrapper:function(e){var t=e.width,n=e.height;return{width:t,height:n,display:"flex",flexDirection:"column",minHeight:null!==n&&void 0!==n?n:400,maxHeight:"90vh",overflowY:"auto",borderRadius:8,outline:0}},infoPanelWrapper:function(e){var t=e.width,n=e.infoPanelHeight;return{width:t,height:n,marginTop:16,display:"flex",flexDirection:"column",minHeight:null!==n&&void 0!==n?n:200,maxHeight:"90vh",overflowY:"auto",borderRadius:8,outline:0}},panelContent:{width:"100%",display:"flex",flexDirection:"column",flex:1,padding:[[0,24]]},content:function(e){var t=e.small;return{width:"100%",display:"flex",flexDirection:"column",flex:1,padding:e.xl?[[0,88]]:t?[[0,16]]:[[0,32]]}},button:function(e){var t=e.small,n=e.xl;return{padding:[[0,0,n?26:0,0]],margin:n?[[0,0,"auto","auto"]]:t?[[12,12,"auto","auto"]]:[[16,16,"auto","auto"]]}},header:{display:"flex"},title:function(e){return{margin:e.small?[[20,0,8,16]]:[[28,0,8,32]]}}}),po=function(e){var t=e.width,n=e.height,a=e.infoPanelHeight,l=e.title,i=e.small,o=e.xl,c=e.infoPanel,s=e.handleClose,u=e.children,d=(e.secondaryModal,e.className),m=e.closeOnEscape,f=e.closeOnBackdropClick,p=Object(L.a)(e,["width","height","infoPanelHeight","title","small","xl","infoPanel","handleClose","children","secondaryModal","className","closeOnEscape","closeOnBackdropClick"]),h=fo({width:t,height:n,small:i,infoPanelHeight:a,xl:o}),b=i?$t:At,g=o?28:i?16:20;return r.a.createElement(mo.a,Object.assign({onClose:function(e,t){(f||"backdropClick"!==t)&&(m||"escapeKeyDown"!==t)&&s()},className:h.modal},p),r.a.createElement(r.a.Fragment,null,r.a.createElement(_e.a,{className:N()(h.wrapper,d)},r.a.createElement("div",{className:h.header},l&&r.a.createElement(b,{className:h.title},l),r.a.createElement(lt,{size:g,className:h.button,onClick:function(){return s()}},r.a.createElement(Ba,null))),r.a.createElement("div",{className:h.content},u)),c&&r.a.createElement(_e.a,{className:N()(h.infoPanelWrapper,d)},r.a.createElement("div",{className:h.panelContent},c))))},ho={AUD:{5:130,10:137,20:144,50:151,100:158},BBD:{2:150,5:150,10:150,20:150,50:150,100:150},CAD:{5:152,10:152,20:152,50:152,100:152},CHF:{10:126,20:137,50:148,100:159,200:170,1e3:181},DKK:{50:125,100:135,200:145,500:155,1e3:165},EUR:{5:120,10:127,20:133,50:140,100:147,200:153,500:160},GBP:{5:135,10:142,20:149,50:156},HKD:{10:134,20:143,50:148,100:153,500:158,1e3:163},HUF:{200:154,500:154,1e3:154,2e3:154,5e3:154,1e4:154,2e4:154},ILS:{20:129,50:136,100:143,200:150},JMD:{50:145,100:145,500:145,1e3:145,5e3:145},JPY:{1e3:150,2e3:154,5e3:156,1e4:160},KZT:{200:126,500:130,1e3:134,2e3:139,5e3:144,1e4:155,2e4:155},MXN:{20:120,50:127,100:134,200:141,500:148,1e3:155},MYR:{1:120,5:135,10:140,20:145,50:145,100:150},NZD:{5:135,10:140,20:145,50:150,100:155},PHP:{20:160,50:160,100:160,200:160,500:160,1e3:160},PLN:{10:120,20:126,50:132,100:138,200:144,500:150},SGD:{2:126,5:133,10:141,50:156,100:162,1e3:170},TWD:{100:145,200:150,500:155,1e3:160,2e3:165},UAH:{1:118,2:118,5:118,10:124,20:130,50:136,100:142,200:148,500:154},USD:{1:156,5:156,10:156,20:156,50:156,100:156},VND:{1e4:132,2e4:136,5e4:140,1e5:144,2e5:148,5e5:152},ZAR:{10:128,20:134,50:140,100:146,200:152}};function bo(){return(bo=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var vo=a.createElement("desc",null,"Created with Sketch."),yo=a.createElement("g",{id:"Styleguide",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd"},a.createElement("g",{id:"icon/direction/cash-out",transform:"translate(-1.000000, 0.000000)",fill:"#5A67FF"},a.createElement("path",{d:"M3.99134364,0.321790399 L10.1430099,4.40569595 C11.0271728,4.99266501 11.2660914,6.1822461 10.6766494,7.06269968 C10.5357408,7.27317585 10.3543728,7.45378298 10.1430099,7.59410043 L3.99134364,11.678006 C3.10718075,12.264975 1.91258801,12.0270588 1.32314609,11.1466052 C1.11243854,10.8318699 1,10.4620686 1,10.0838037 L1,1.91599264 C1,0.857819122 1.86143307,0 2.92406462,0 C3.30392305,0 3.67528233,0.11196683 3.99134364,0.321790399 Z",id:"Path-3",transform:"translate(6.000000, 6.000000) scale(-1, 1) translate(-6.000000, -6.000000) "})));function Eo(e,t){var n=e.title,r=e.titleId,l=go(e,["title","titleId"]);return a.createElement("svg",bo({width:"10px",height:"12px",viewBox:"0 0 10 12",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,vo,yo)}var Oo=a.forwardRef(Eo),wo=(n.p,{logo:{maxHeight:80,maxWidth:200},subtitle:{margin:0,marginBottom:42,textAlign:"center"},text:{margin:0},button:{margin:[[0,"auto"]]},modalContent:{display:"flex",flexDirection:"column",justifyContent:"space-between",flex:1,padding:[[0,34,107,34]]},innerContent:{paddingBottom:72},title:{color:"#5a67ff",marginBottom:12,marginTop:30,textAlign:"center"},titleDecorator:{verticalAlign:"bottom",marginRight:12,width:24,height:26}}),xo=Object(m.a)(wo),jo=function(e){var t=e.name,n=e.onContinue,a=xo();return r.a.createElement("div",{className:a.modalContent},r.a.createElement("div",{className:a.innerContent},r.a.createElement(At,{className:a.title},r.a.createElement(Oo,{className:a.titleDecorator}),r.a.createElement("span",null,"Enable cash-out")),r.a.createElement(Gt,{className:a.subtitle},t),r.a.createElement(Vt,null,"You are about to activate cash-out functionality on your ",t," ","machine which will allow your customers to sell crypto to you."),r.a.createElement(Vt,null,"In order to activate cash-out for this machine, please enter the denominations for the machine.")),r.a.createElement(Ae,{className:a.button,onClick:n},"Start configuration"))},Co=n(517);function ko(){return(ko=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var No=a.createElement("desc",null,"Created with Sketch."),Io=a.createElement("g",{id:"icon/stage/spring/complete",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd"},a.createElement("circle",{id:"Oval",stroke:"#48F694",strokeWidth:2,transform:"translate(9.000000, 9.000000) rotate(-270.000000) translate(-9.000000, -9.000000) ",cx:9,cy:9,r:8}),a.createElement("path",{d:"M7.80983711,12 C7.54819546,12 7.28655382,11.9032616 7.08725647,11.710772 L5.29971255,9.98428824 C4.90009582,9.59832189 4.90009582,8.97445811 5.29971255,8.58849175 C5.69932929,8.2025254 6.34525711,8.2025254 6.74487384,8.58849175 L7.80983711,9.61707728 L11.2551262,6.28947477 C11.6547429,5.90350841 12.3016927,5.90350841 12.7002874,6.28947477 C13.0999042,6.674454 13.0999042,7.2993049 12.7002874,7.68527125 L8.53241776,11.710772 C8.33312041,11.9032616 8.07147876,12 7.80983711,12",id:"Path",fill:"#48F694"}));function Lo(e,t){var n=e.title,r=e.titleId,l=So(e,["title","titleId"]);return a.createElement("svg",ko({width:"18px",height:"18px",viewBox:"0 0 18 18",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,No,Io)}var Bo=a.forwardRef(Lo);n.p;function Po(){return(Po=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var Do=a.createElement("desc",null,"Created with Sketch."),To=a.createElement("g",{id:"icon/stage/spring/current",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd"},a.createElement("circle",{id:"Oval-2-Copy",fill:"#48F694",cx:9,cy:9,r:4}),a.createElement("circle",{id:"Oval-Copy-5",stroke:"#48F694",strokeWidth:2,transform:"translate(9.000000, 9.000000) rotate(-270.000000) translate(-9.000000, -9.000000) ",cx:9,cy:9,r:8}));function Wo(e,t){var n=e.title,r=e.titleId,l=Fo(e,["title","titleId"]);return a.createElement("svg",Po({width:"18px",height:"18px",viewBox:"0 0 18 18",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,Do,To)}var Ro=a.forwardRef(Wo);n.p;function zo(){return(zo=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var Mo=a.createElement("desc",null,"Created with Sketch."),qo=a.createElement("g",{id:"icon/stage/spring/empty",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd"},a.createElement("circle",{id:"Oval-Copy-6",stroke:"#DDDDDD",strokeWidth:2,transform:"translate(9.000000, 9.000000) rotate(-270.000000) translate(-9.000000, -9.000000) ",cx:9,cy:9,r:8}));function $o(e,t){var n=e.title,r=e.titleId,l=Ao(e,["title","titleId"]);return a.createElement("svg",zo({width:"18px",height:"18px",viewBox:"0 0 18 18",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,Mo,qo)}var Ho=a.forwardRef($o),Vo=(n.p,{stages:{display:"flex",alignItems:"center"},wrapper:{display:"flex",alignItems:"center",margin:0},stage:{display:"flex",height:28,width:28,zIndex:2,"& > svg":{height:"100%",width:"100%",overflow:"visible"}},separator:{width:28,height:2,border:[[2,"solid"]],zIndex:1},separatorSpring:{borderColor:q},separatorZodiac:{borderColor:M},separatorSpringEmpty:{borderColor:Z},separatorZodiacEmpty:{borderColor:J}}),Yo=Object(m.a)(Vo),Go=Object(a.memo)((function(e){var t,n,a=e.steps,l=e.currentStep,i=e.color,o=void 0===i?"spring":i,c=e.className;if(l<1||l>a)throw Error("Value of currentStage is invalid");if(a<1)throw Error("Value of stages is invalid");var s=Yo(),u=(t={},Object(I.a)(t,s.separator,!0),Object(I.a)(t,s.separatorSpring,"spring"===o),Object(I.a)(t,s.separatorZodiac,"zodiac"===o),t),d=(n={},Object(I.a)(n,s.separator,!0),Object(I.a)(n,s.separatorSpringEmpty,"spring"===o),Object(I.a)(n,s.separatorZodiacEmpty,"zodiac"===o),n);return r.a.createElement("div",{className:N()(c,s.stages)},Co.a(1,l).map((function(e){return r.a.createElement("div",{key:e,className:s.wrapper},e>1&&r.a.createElement("div",{className:N()(u)}),r.a.createElement("div",{className:s.stage},"spring"===o&&r.a.createElement(Bo,null),"zodiac"===o&&r.a.createElement(ra,null)))})),r.a.createElement("div",{className:s.wrapper},l>1&&r.a.createElement("div",{className:N()(u)}),r.a.createElement("div",{className:s.stage},"spring"===o&&r.a.createElement(Ro,null),"zodiac"===o&&r.a.createElement(ua,null))),Co.a(l+1,a+1).map((function(e){return r.a.createElement("div",{key:e,className:s.wrapper},r.a.createElement("div",{className:N()(d)}),r.a.createElement("div",{className:s.stage},"spring"===o&&r.a.createElement(Ho,null),"zodiac"===o&&r.a.createElement(ga,null)))})))})),Zo=n.p+"static/media/cashout-cassette-1.fac6c691.svg",_o=n.p+"static/media/cashout-cassette-2.34a98cfa.svg",Uo={title:{margin:[[0,0,12,0]]},titleDiv:{paddingBottom:32},subtitle:{margin:[[32,0,21,0]]},edit:{margin:[[0,0,0,0]]},error:{color:X},bill:{width:131,display:"flex",alignItems:"center",justifyContent:"end"},billInput:{width:"100%"},suffix:{paddingLeft:16},button:{marginLeft:"auto"},submit:{float:"right"},picker:{width:150},header:{display:"flex",paddingBottom:95},thirdStepHeader:{display:"flex",paddingBottom:188},step:{flex:1},stepImage:{position:"relative",top:-20,right:14},content:{display:"flex",flexDirection:"column",justifyContent:"space-between",flex:1,paddingBottom:32},disclaimer:{display:"flex",flex:1,flexDirection:"column",justifyContent:"space-between"},disclaimerIcon:{float:"left",margin:[[-4,16,48,0]]}},Jo=Object(m.a)(Uo),Ko=function(e){var t=e.name,n=e.step,a=e.schema,l=e.error,i=e.lastStep,o=e.onContinue,c=e.steps,s=e.fiatCurrency,u=e.options,d=Jo(),m=i?"Finish":"Next",f={1:Zo,2:_o};return r.a.createElement("div",{className:d.content},r.a.createElement("div",{className:d.titleDiv},r.a.createElement(Gt,{className:d.title},t),r.a.createElement(Go,{steps:4,currentStep:n})),n<=2&&r.a.createElement(on.d,{onSubmit:o,initialValues:{top:"",bottom:""},enableReinitialize:!0,validationSchema:a},r.a.createElement(on.c,null,r.a.createElement("div",{className:d.header},c.map((function(e,t){var a=e.type,l=e.display,i=e.component;return 1+t===n&&r.a.createElement("div",{key:t,className:d.step},r.a.createElement($t,{className:d.edit},"Edit ",l),r.a.createElement(Kt,null,"Choose bill denomination"),r.a.createElement("div",{className:d.bill},r.a.createElement(on.b,{className:d.billInput,type:"text",size:"lg",autoFocus:1+t===n,component:(null===u||void 0===u?void 0:u.length)>0?i:Un,fullWidth:!0,decimalPlaces:0,name:a,options:u,valueProp:"code",getLabel:Or.a(["display"])}),r.a.createElement(Yt,{noMargin:!0,className:d.suffix},s)))})),r.a.createElement("img",{className:d.stepImage,alt:"cassette",width:"148",height:"196",src:f[n]})),r.a.createElement(Ae,{className:d.submit,type:"submit"},m))),3===n&&r.a.createElement(on.d,{onSubmit:o,initialValues:{zeroConfLimit:""},enableReinitialize:!0,validationSchema:c[n-1].schema},r.a.createElement(on.c,null,r.a.createElement("div",{className:d.thirdStepHeader},r.a.createElement("div",{className:d.step},r.a.createElement($t,{className:d.edit},"Edit 0-conf Limit"),r.a.createElement(Kt,null,"Choose a limit"),r.a.createElement("div",{className:d.bill},r.a.createElement(on.b,{className:d.billInput,type:"text",size:"lg",autoFocus:!0,component:Un,fullWidth:!0,decimalPlaces:0,name:c[n-1].type}),r.a.createElement(Yt,{noMargin:!0,className:d.suffix},s)))),r.a.createElement(Ae,{className:d.submit,type:"submit"},m))),i&&r.a.createElement("div",{className:d.disclaimer},r.a.createElement(Gt,{className:d.title},"Cash-out Bill Count"),r.a.createElement(Vt,null,r.a.createElement(Ra,{className:d.disclaimerIcon}),"When enabling cash-out, your bill count will be automatically set to zero. Make sure you physically put cash inside the cash cassettes to allow the machine to dispense it to your users. If you already did, make sure you set the correct cash-out bill count for this machine on your Cash Cassettes tab under Maintenance."),r.a.createElement(Gt,{className:d.title},"Default Commissions"),r.a.createElement(Vt,null,r.a.createElement(Ra,{className:d.disclaimerIcon}),"When enabling cash-out, default commissions will be set. To change commissions for this machine, please go to the Commissions tab under Settings where you can set exceptions for each of the available cryptocurrencies."),r.a.createElement("div",null,l&&r.a.createElement(co,null,"Failed to save"),r.a.createElement(Ae,{className:d.submit,onClick:function(){return o()}},m))))},Qo=999999999,Xo=hn.d().shape({top:hn.c().label("Cassette 1 (Top)").required().min(0).max(Qo),bottom:hn.c().label("Cassette 2 (Bottom)").required().min(0).max(Qo),zeroConfLimit:hn.c().label("0-conf Limit").required().min(0).max(Qo)}),ec=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.fiatCurrency;return[{name:"id",header:"Machine",width:200,view:function(t){return e.find((function(e){return e.deviceId===t})).name},size:"sm",editable:!1},{name:"top",header:"Cassette 1 (Top)",size:"sm",stripe:!0,width:200,textAlign:"right",input:Un,inputProps:{decimalPlaces:0},suffix:n},{name:"bottom",header:"Cassette 2 (Bottom)",size:"sm",stripe:!0,textAlign:"right",width:200,input:Un,inputProps:{decimalPlaces:0},suffix:n},{name:"zeroConfLimit",header:"0-conf Limit",size:"sm",stripe:!0,textAlign:"right",width:200,input:Un,inputProps:{decimalPlaces:0},suffix:n}]},tc=Fr.a((function(e,t){var n=xn.a("fiatCurrency")(e);return mn.a(jn.a((function(e){return{code:e,display:e}})),Ml.a,Or.a([n]))(t)})),nc=function(e){var t=e.machine,n=e.locale,l=e.onClose,i=e.save,c=e.error,s=Object(a.useState)({step:0,config:{active:!0}}),u=Object(o.a)(s,2),d=u[0],m=d.step,f=d.config,p=u[1],h=tc(n,ho),b=4===m,g=function(){var e=Object(el.a)(Xr.a.mark((function e(n){var a;return Xr.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!b){e.next=2;break}return e.abrupt("return",i(Kr(t.deviceId,Xo.cast(f))));case 2:a=Ue.a(f,n),p({step:m+1,config:a});case 4:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),v=[{type:"top",display:"Cassette 1 (Top)",component:_n},{type:"bottom",display:"Cassette 2",component:_n},{type:"zeroConfLimit",display:"0-conf Limit",schema:hn.d().shape({zeroConfLimit:hn.c().required()})}];return r.a.createElement(po,{title:0===m?null:"Enable cash-out",handleClose:l,width:554,height:520,open:!0},0===m&&r.a.createElement(jo,{name:t.name,onContinue:function(){return g()}}),0!==m&&r.a.createElement(Ko,{step:m,name:t.name,error:c,lastStep:b,steps:v,fiatCurrency:n.fiatCurrency,options:h,schema:hn.d().shape({top:hn.c().required(),bottom:m>=2?hn.c().required():hn.c()}),onContinue:g}))};function ac(){var e=Object(tn.a)(["\n query getData {\n machines {\n name\n deviceId\n cashbox\n cassette1\n cassette2\n }\n config\n }\n"]);return ac=function(){return e},e}function rc(){var e=Object(tn.a)(["\n mutation Save($config: JSONObject) {\n saveConfig(config: $config)\n }\n"]);return rc=function(){return e},e}var lc=Object(m.a)({fudgeFactor:{display:"flex",alignItems:"center",marginRight:156},switchLabel:{margin:6,width:24}}),ic=sn()(rc()),oc=sn()(ac()),cc=function(e){var t,n,l=e.name,i=lc(),c=Object(a.useState)(!1),s=Object(o.a)(c,2),u=s[0],d=s[1],m=Object(nn.c)(oc).data,f=Object(nn.b)(ic,{onCompleted:function(){return d(!1)},refetchQueries:function(){return["getData"]}}),p=Object(o.a)(f,2),h=p[0],b=p[1].error,g=function(e,t){var n=Kr(l)(e);return h({variables:{config:n,accounts:t}})},v=(null===m||void 0===m?void 0:m.config)&&Jr(l)(m.config),y=null!==(t=null===v||void 0===v?void 0:v.fudgeFactorActive)&&void 0!==t&&t,E=(null===m||void 0===m?void 0:m.config)&&Jr("locale")(m.config),O=null!==(n=null===m||void 0===m?void 0:m.machines)&&void 0!==n?n:[];return r.a.createElement(r.a.Fragment,null,r.a.createElement(uo,{title:"Cash-out"},r.a.createElement("div",{className:i.fudgeFactor},r.a.createElement(Vt,null,"Transaction fudge factor"),r.a.createElement(Zn,{checked:y,onChange:function(e){g({fudgeFactorActive:e.target.checked})},value:y}),r.a.createElement(Qt,{className:i.switchLabel},y?"On":"Off"),r.a.createElement(Br,{width:304},r.a.createElement(Vt,null,"Automatically accept customer deposits as complete if their received amount is 10 crypto atoms or less."),r.a.createElement(Vt,null,"(Crypto atoms are the smallest unit in each cryptocurrency. E.g., satoshis in Bitcoin, or wei in Ethereum.)")))),r.a.createElement(Qi,{namespaces:jn.a(Or.a(["deviceId"]))(O),data:v,stripeWhen:function(e){return!Xo.isValidSync(e)},enableEdit:!0,editWidth:134,enableToggle:!0,toggleWidth:109,onToggle:function(e){var t=Jr(e)(v);if(!Xo.isValidSync(t))return d(e);g(Kr(e,{active:!(null===t||void 0===t?void 0:t.active)}))},save:g,error:null===b||void 0===b?void 0:b.message,validationSchema:Xo,disableRowEdit:mn.a(wr.a,Or.a(["active"])),elements:ec(O,E)}),u&&r.a.createElement(nc,{machine:On.a(wn.a("deviceId",u))(O),onClose:function(){return d(!1)},save:g,error:null===b||void 0===b?void 0:b.message,locale:E}))},sc=n(524),uc=n(559),dc=Object(m.a)({subtitle:{color:J,marginTop:16,marginBottom:16},extraMarginTop:{marginTop:72}}),mc=Object(a.memo)((function(e){var t,n=e.children,a=e.className,l=e.extraMarginTop,i=dc(),o=(t={},Object(I.a)(t,i.subtitle,!0),Object(I.a)(t,i.extraMarginTop,l),t);return r.a.createElement(Ut,{className:N()(o,a)},n)})),fc=Object(m.a)({section:{marginBottom:72},sectionHeader:{display:"flex",alignItems:"center"},sectionTitle:{margin:[[16,20,23,0]]}}),pc=function(e){var t=e.error,n=e.children,a=e.title,l=fc();return r.a.createElement("div",{className:l.section},(a||t)&&r.a.createElement("div",{className:l.sectionHeader},r.a.createElement(mc,{className:l.sectionTitle},a),t&&r.a.createElement(co,null,"Failed to save changes")),n)},hc=n(519),bc=n(520),gc=n(521),vc=n(232),yc=n(522),Ec=n(558);function Oc(){return(Oc=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var xc=a.createElement("desc",null,"Created with Sketch."),jc=a.createElement("g",{id:"Styleguide",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd"},a.createElement("g",{id:"icon/direction/cash-in",transform:"translate(-1.000000, 0.000000)",fill:"#16D6D3"},a.createElement("path",{d:"M3.99134364,0.321790399 L10.1430099,4.40569595 C11.0271728,4.99266501 11.2660914,6.1822461 10.6766494,7.06269968 C10.5357408,7.27317585 10.3543728,7.45378298 10.1430099,7.59410043 L3.99134364,11.678006 C3.10718075,12.264975 1.91258801,12.0270588 1.32314609,11.1466052 C1.11243854,10.8318699 1,10.4620686 1,10.0838037 L1,1.91599264 C1,0.857819122 1.86143307,0 2.92406462,0 C3.30392305,0 3.67528233,0.11196683 3.99134364,0.321790399 Z",id:"Path-3"})));function Cc(e,t){var n=e.title,r=e.titleId,l=wc(e,["title","titleId"]);return a.createElement("svg",Oc({width:"10px",height:"12px",viewBox:"0 0 10 12",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,xc,jc)}var kc=a.forwardRef(Cc),Sc=(n.p,{name:"All Machines",deviceId:"ALL_MACHINES"}),Nc={display:"All Coins",code:"ALL_COINS"},Ic={marginLeft:6},Lc=r.a.createElement("div",null,r.a.createElement(kc,null),r.a.createElement("span",{style:Ic},"Cash-in")),Bc=r.a.createElement("div",null,r.a.createElement(Oo,null),r.a.createElement("span",{style:Ic},"Cash-out")),Pc=function(e,t,n){return function(a){return e?mn.a(xn.a(t),On.a(wn.a(null!==n&&void 0!==n?n:"code",a)))(e):""}},Fc=function(e){return function(t){return t?mn.a(hc.a(", "),jn.a(Pc(e,"display")))(t):t}},Dc=function(e,t,n){var a=bc.a(Nc.code)(t),r=bc.a(Nc.code)(e);return a&&r&&fn.a(t)>1?n(ol.a(il.a(Nc.code))(t)):a&&!r?n([Nc.code]):void n(t)},Tc=function(e){return[{header:Lc,name:"cashIn",display:"Cash-in",width:169,size:"lg",input:Un,suffix:"%",inputProps:{decimalPlaces:3}},{header:Bc,name:"cashOut",display:"Cash-out",width:169,size:"lg",input:Un,suffix:"%",inputProps:{decimalPlaces:3}},{name:"fixedFee",display:"Fixed fee",width:169,size:"lg",doubleHeader:"Cash-in only",textAlign:"center",input:Un,suffix:e,inputProps:{decimalPlaces:2}},{name:"minimumTx",display:"Minimun Tx",width:169,size:"lg",doubleHeader:"Cash-in only",textAlign:"center",input:Un,suffix:e,inputProps:{decimalPlaces:2}}]},Wc=function(e,t,n){return function(e,t,n){var a=[Sc].concat(e(["machines"])),r=e(["cryptoCurrencies"]),l=[Nc].concat(jn.a((function(e){return{display:e.code,code:e.code}}))(null!==r&&void 0!==r?r:[]));return[{name:"machine",width:196,size:"sm",view:Pc(a,"name","deviceId"),input:_n,inputProps:{options:a,valueProp:"deviceId",getLabel:Or.a(["name"])}},{name:"cryptoCurrencies",width:280,size:"sm",view:Fc(l),input:_n,inputProps:{options:l,valueProp:"code",getLabel:Or.a(["display"]),multiple:!0,onChange:Dc}},{header:Lc,name:"cashIn",display:"Cash-in",width:130,input:Un,textAlign:"right",suffix:"%",inputProps:{decimalPlaces:3}},{header:Bc,name:"cashOut",display:"Cash-out",width:130,input:Un,textAlign:"right",suffix:"%",inputProps:{decimalPlaces:3}},{name:"fixedFee",display:"Fixed fee",width:144,input:Un,doubleHeader:"Cash-in only",textAlign:"right",suffix:t,inputProps:{decimalPlaces:2}},{name:"minimumTx",display:"Minimun Tx",width:144,input:Un,doubleHeader:"Cash-in only",textAlign:"right",suffix:t,inputProps:{decimalPlaces:2}}]}(Or.a(gc.a,e),t)},Rc=100,zc=9999999,Ac=hn.d().shape({cashIn:hn.c().label("Cash-in").min(0).max(Rc).required(),cashOut:hn.c().label("Cash-out").min(0).max(Rc).required(),fixedFee:hn.c().label("Fixed Fee").min(0).max(zc).required(),minimumTx:hn.c().label("Minimum Tx").min(0).max(zc).required()}),Mc=function(e,t){var n=Or.a(gc.a,t),a=[Sc].concat(n(["machines"])),r=n(["cryptoCurrencies"]),l=[Nc].concat(jn.a((function(e){return{display:e.code,code:e.code}}))(null!==r&&void 0!==r?r:[]));return hn.d().shape({machine:hn.e().nullable().label("Machine").required(),cryptoCurrencies:hn.a().test({test:function(){var t=this.parent,n=t.id,r=t.machine,i=t.cryptoCurrencies,o=function(e,t,n){var a=xn.a("cryptoCurrencies"),r=xn.a("machine"),l=hr.a(wn.a("machine",t))(n),i=On.a(wn.a("id",e))(n),o=a(i),c=r(i),s=mn.a(vc.a,pr.a,jn.a(a))(l);return t!==c?null!==s&&void 0!==s?s:[]:yc.a(s,o)}(n,r,e),c=r===Sc.deviceId,s=bc.a(Nc.code,i);if(c&&s)return this.createError({message:"All machines and all coins should be configured in the default setup table"});var u=Ec.a(o,i);if(!Sn.a(u)){var d=Fc(l)(u),m=Pc(a,"name","deviceId")(r),f="".concat(d," already overriden for machine: ").concat(m);return this.createError({message:f})}return!0}}).label("Crypto Currencies").required(),cashIn:hn.c().label("Cash-in").min(0).max(Rc).required(),cashOut:hn.c().label("Cash-out").min(0).max(Rc).required(),fixedFee:hn.c().label("Fixed Fee").min(0).max(zc).required(),minimumTx:hn.c().label("Minimum Tx").min(0).max(zc).required()})},qc={cashIn:"",cashOut:"",fixedFee:"",minimumTx:""},$c={machine:null,cryptoCurrencies:[],cashIn:"",cashOut:"",fixedFee:"",minimumTx:""},Hc=function(e){var t=e.machine,n=e.cryptoCurrencies,a=t===Sc.deviceId,r=gr.a(Nc.code,n);return a&&r?0:a?1:r?2:3};function Vc(){var e=Object(tn.a)(["\n mutation Save($config: JSONObject) {\n saveConfig(config: $config)\n }\n"]);return Vc=function(){return e},e}function Yc(){var e=Object(tn.a)(["\n query getData {\n config\n cryptoCurrencies {\n code\n display\n }\n machines {\n name\n deviceId\n }\n }\n"]);return Yc=function(){return e},e}var Gc=sn()(Yc()),Zc=sn()(Vc()),_c=function(e){var t,n=e.name,l=Object(a.useState)(!1),i=Object(o.a)(l,2),c=i[0],s=i[1],u=Object(a.useState)(!1),d=Object(o.a)(u,2),m=d[0],f=d[1],p=Object(nn.c)(Gc).data,h=Object(nn.b)(Zc,{refetchQueries:function(){return["getData"]}}),b=Object(o.a)(h,2),g=b[0],v=b[1].error,y=(null===p||void 0===p?void 0:p.config)&&Jr(n)(p.config),E=Or.a(["fiatCurrency"])(Jr($r)(null===p||void 0===p?void 0:p.config)),O=y&&!Sn.a(y)?y:qc,w=null!==(t=null===O||void 0===O?void 0:O.overrides)&&void 0!==t?t:[],x=cl.a([sc.a(Hc),sc.a(xn.a("machine"))])(w);return r.a.createElement(r.a.Fragment,null,r.a.createElement(uo,{title:"Commissions"}),r.a.createElement(pc,null,r.a.createElement(Ki,{error:null===v||void 0===v?void 0:v.message,title:"Default setup",rowSize:"lg",titleLg:!0,name:"commissions",enableEdit:!0,initialValues:O,save:function(e){var t=Kr(n)(e.commissions[0]);return g({variables:{config:t}})},validationSchema:Ac,data:uc.a(O),elements:Tc(E),setEditing:function(e,t){return s(t)},forceDisable:m})),r.a.createElement(pc,null,r.a.createElement(Ki,{error:null===v||void 0===v?void 0:v.message,title:"Overrides",titleLg:!0,name:"overrides",enableDelete:!0,enableEdit:!0,enableCreate:!0,groupBy:Hc,initialValues:$c,save:function(e){var t=Kr(n)(e);return g({variables:{config:t}})},validationSchema:Mc(x,p),data:x,elements:Wc(p,E),setEditing:function(e,t){return f(t)},forceDisable:c})))},Uc=n(551),Jc=n(334),Kc=n.n(Jc),Qc=n(525),Xc=n(526),es={error:z,warning:"#ff7311",success:H,neutral:M},ts={error:A,warning:"#fbf3ec",success:F,neutral:T},ns=Object(m.a)({root:{borderRadius:4,marginTop:4,marginRight:2,marginBottom:4,marginLeft:2,height:24,backgroundColor:function(e){var t=e.type;return ts[t]}},label:{fontSize:se,fontWeight:500,fontFamily:fe,paddingRight:4,paddingLeft:4,color:function(e){var t=e.type;return es[t]}}}),as=function(e){var t=e.status,n=ns({type:t.type});return r.a.createElement(ti.a,{type:t.type,label:t.label,classes:n})},rs=function(e){var t=e.statuses,n=t.find((function(e){return"error"===e.type}))||t.find((function(e){return"warning"===e.type}))||t[0],a={label:"+".concat(t.length-1),type:n.type};return r.a.createElement("div",null,r.a.createElement(as,{status:n}),t.length>1&&r.a.createElement(as,{status:a}))};function ls(){return(ls=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var os=a.createElement("desc",null,"Created with Sketch."),cs=a.createElement("g",{id:"icon/button/authorize/white",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd"},a.createElement("circle",{id:"Oval",stroke:"#FFFFFF",cx:6,cy:6,r:5}),a.createElement("polyline",{id:"Stroke-13",stroke:"#FFFFFF",strokeLinecap:"round",strokeLinejoin:"round",points:"4 6.66666667 5 8 8 4"}));function ss(e,t){var n=e.title,r=e.titleId,l=is(e,["title","titleId"]);return a.createElement("svg",ls({viewBox:"0 0 12 12",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,os,cs)}var us=a.forwardRef(ss);n.p;function ds(){return(ds=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var fs=a.createElement("desc",null,"Created with Sketch."),ps=a.createElement("g",{id:"icon/button/authorize/zodiac",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd"},a.createElement("g",{id:"Group-9",stroke:"#1B2559"},a.createElement("circle",{id:"Oval",cx:6,cy:6,r:5})),a.createElement("polyline",{id:"Stroke-13",stroke:"#1B2559",strokeLinecap:"round",strokeLinejoin:"round",points:"4 6.66666667 5 8 8 4"}));function hs(e,t){var n=e.title,r=e.titleId,l=ms(e,["title","titleId"]);return a.createElement("svg",ds({viewBox:"0 0 12 12",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,fs,ps)}var bs=a.forwardRef(hs);n.p;function gs(){return(gs=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var ys=a.createElement("desc",null,"Created with Sketch."),Es=a.createElement("g",{id:"icon/button/cancel/zodiac",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},a.createElement("g",{id:"Group-5",stroke:"#1B2559",strokeWidth:1.2},a.createElement("line",{x1:12,y1:0,x2:0,y2:12,id:"Stroke-1"}),a.createElement("line",{x1:0,y1:0,x2:12,y2:12,id:"Stroke-3"})));function Os(e,t){var n=e.title,r=e.titleId,l=vs(e,["title","titleId"]);return a.createElement("svg",gs({width:"12px",height:"12px",viewBox:"0 0 12 12",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,ys,Es)}var ws=a.forwardRef(Os),xs=(n.p,{label1:{display:"flex",marginBottom:2,marginTop:"auto",width:85},label1Pending:{color:B},label1Rejected:{color:z},label1Accepted:{color:D},cardActionButton:{display:"flex",height:28,marginRight:"auto",marginLeft:12},propertyCardTopRow:{display:"flex",margin:[[0,10,5,0]]},propertyCardBottomRow:{display:"flex",flexDirection:"row",height:45},propertyCard:{display:"flex",flexDirection:"column",borderRadius:8,width:"100%",height:100,padding:[[20]],boxSizing:"border-box",boxShadow:"0 0 8px 0 rgba(0, 0, 0, 0.04)",border:"solid 0",backgroundColor:R,margin:[[20,0,0,0]]},rowSpaceBetween:{display:"flex",flexFlow:"row nowrap",alignItems:"center",justifyContent:"space-between"},columnSpaceBetween:{display:"flex",flexFlow:"column nowrap",alignItems:"center",justifyContent:"space-between",width:90},buttonsWrapper:{display:"flex",flexDirection:"row",justifyContent:"flex-end",marginLeft:"auto",marginTop:"auto"}}),js=Object(m.a)(xs),Cs="automatic",ks="verified",Ss="blocked",Ns=Object(a.memo)((function(e){var t,n=e.className,a=e.title,l=e.state,i=e.authorize,o=e.reject,c=e.children,s=js(),u=(t={},Object(I.a)(t,s.label1,!0),Object(I.a)(t,s.label1Pending,l===Cs),Object(I.a)(t,s.label1Rejected,l===Ss),Object(I.a)(t,s.label1Accepted,l===ks),t),d=l===Cs?{label:"Pending",type:"neutral"}:l===Ss?{label:"Rejected",type:"error"}:{label:"Accepted",type:"success"};return r.a.createElement(_e.a,{className:N()(s.propertyCard,n),elevation:0},r.a.createElement(qt,{className:s.propertyCardTopRow},a),r.a.createElement("div",{className:s.propertyCardBottomRow},r.a.createElement("div",{className:N()(u)},r.a.createElement(rs,{statuses:[d]})),c,r.a.createElement("div",{className:s.buttonsWrapper},i&&l!==ks&&r.a.createElement(je,{className:s.cardActionButton,color:"secondary",Icon:bs,InverseIcon:us,onClick:function(){return i()}},"Authorize"),o&&l!==Ss&&r.a.createElement(je,{className:s.cardActionButton,color:"secondary",Icon:ws,InverseIcon:yt,onClick:function(){return o()}},"Reject"))))}));function Is(){return(Is=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var Bs=a.createElement("desc",null,"Created with Sketch."),Ps=a.createElement("g",{id:"icon/button/block/white",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},a.createElement("g",{id:"Group-5",stroke:"#FFFFFF"},a.createElement("circle",{id:"Oval",cx:6,cy:6,r:5}),a.createElement("line",{x1:9,y1:3,x2:3,y2:9,id:"Stroke-3"})));function Fs(e,t){var n=e.title,r=e.titleId,l=Ls(e,["title","titleId"]);return a.createElement("svg",Is({viewBox:"0 0 12 12",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,Bs,Ps)}var Ds=a.forwardRef(Fs);n.p;function Ts(){return(Ts=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var Rs=a.createElement("desc",null,"Created with Sketch."),zs=a.createElement("g",{id:"icon/button/block/zodiac",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},a.createElement("g",{id:"Group-5",stroke:"#1B2559"},a.createElement("circle",{id:"Oval",cx:6,cy:6,r:5}),a.createElement("line",{x1:9,y1:3,x2:3,y2:9,id:"Stroke-3"})));function As(e,t){var n=e.title,r=e.titleId,l=Ws(e,["title","titleId"]);return a.createElement("svg",Ts({viewBox:"0 0 12 12",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,Rs,zs)}var Ms=a.forwardRef(As),qs=(n.p,{labelLink:{cursor:"pointer",color:B},breadcrumbs:{margin:[[20,0]]},actionLabel:{color:B,margin:[[4,0]]},customerDetails:{marginBottom:18}});function $s(){return($s=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var Vs=a.createElement("desc",null,"Created with Sketch."),Ys=a.createElement("g",{id:"icon/sf-small/search/white",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd"},a.createElement("path",{d:"M15.8635238,8.17028571 C15.8635238,12.4198095 12.4187619,15.8645714 8.1692381,15.8645714 C3.92066667,15.8645714 0.475904762,12.4198095 0.475904762,8.17028571 C0.475904762,3.9207619 3.92066667,0.476 8.1692381,0.476 C12.4187619,0.476 15.8635238,3.9207619 15.8635238,8.17028571 Z",id:"Stroke-1",stroke:"#FFFFFF",strokeWidth:2}),a.createElement("line",{x1:13.7035238,y1:13.7046667,x2:19.4844762,y2:19.485619,id:"Stroke-3",stroke:"#FFFFFF",strokeWidth:2,strokeLinecap:"round"}));function Gs(e,t){var n=e.title,r=e.titleId,l=Hs(e,["title","titleId"]);return a.createElement("svg",$s({width:"20px",height:"20px",viewBox:"0 0 20 20",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,Vs,Ys)}var Zs=a.forwardRef(Gs);n.p;function _s(){return(_s=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var Js=a.createElement("desc",null,"Created with Sketch."),Ks=a.createElement("g",{id:"icon/sf-small/search/zodiac",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd"},a.createElement("path",{d:"M15.8635238,8.17028571 C15.8635238,12.4198095 12.4187619,15.8645714 8.1692381,15.8645714 C3.92066667,15.8645714 0.475904762,12.4198095 0.475904762,8.17028571 C0.475904762,3.9207619 3.92066667,0.476 8.1692381,0.476 C12.4187619,0.476 15.8635238,3.9207619 15.8635238,8.17028571 Z",id:"Stroke-1",stroke:"#1B2559",strokeWidth:2}),a.createElement("line",{x1:13.7035238,y1:13.7046667,x2:19.4844762,y2:19.485619,id:"Stroke-3",stroke:"#1B2559",strokeWidth:2,strokeLinecap:"round"}));function Qs(e,t){var n=e.title,r=e.titleId,l=Us(e,["title","titleId"]);return a.createElement("svg",_s({width:"20px",height:"20px",viewBox:"0 0 20 20",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,Js,Ks)}var Xs=a.forwardRef(Qs),eu=(n.p,Object(m.a)({row:{display:"flex",flexDirection:"row"},image:function(e){return{objectFit:"cover",borderRadius:"8px 0px 0px 8px",width:e.width,height:e.height}},popupImage:function(e){return{objectFit:"cover",width:e.popupWidth,height:e.popupHeight}},button:function(e){return{borderRadius:"0px 8px 8px 0px",height:e.height}},popoverContent:{display:"block",padding:[[10,15]]}})),tu=Object(a.memo)((function(e){var t=e.className,n=e.width,l=e.height,i=e.popupWidth,c=e.popupHeight,s=e.src,u=eu({width:n,height:l,popupWidth:i,popupHeight:c}),d=Object(a.useState)(null),m=Object(o.a)(d,2),f=m[0],p=m[1],h=Boolean(f),b=function(e){var t=e.className;return r.a.createElement("img",{className:N()(t),src:s,alt:""})};return r.a.createElement(xr.a,{onClickAway:function(){p(null)}},r.a.createElement("div",{className:N()(u.row,t)},r.a.createElement(b,{className:u.image}),r.a.createElement(Ge,{Icon:Xs,InverseIcon:Zs,className:u.button,onClick:function(e){p(f?null:e.currentTarget)}}),r.a.createElement(Je,{open:h,anchorEl:f,placement:"top"},r.a.createElement("div",{className:u.popoverContent},r.a.createElement(b,{className:u.popupImage})))))}));function nu(){return(nu=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var ru=a.createElement("desc",null,"Created with Sketch."),lu=a.createElement("g",{id:"icon/crossed-camera",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd"},a.createElement("g",{id:"crossed-camera"},a.createElement("g",{id:"Group-2"},a.createElement("g",{id:"icon/ID/cam/zodiac",transform:"translate(0.000000, 3.657143)",fill:"#1B2559",fillRule:"nonzero"},a.createElement("path",{d:"M16,19.1876029 C12.4482116,19.1876029 9.56809571,16.389776 9.56809571,12.9394673 C9.56809571,9.48915858 12.4482116,6.69133172 16,6.69133172 C19.5517884,6.69133172 22.4319043,9.48915858 22.4319043,12.9394673 C22.4319043,16.389776 19.5517884,19.1876029 16,19.1876029 Z M16,17.104891 C18.3677075,17.104891 20.2879362,15.239526 20.2879362,12.9394673 C20.2879362,10.6394086 18.3677075,8.77404358 16,8.77404358 C13.6322925,8.77404358 11.7120638,10.6394086 11.7120638,12.9394673 C11.7120638,15.239526 13.6322925,17.104891 16,17.104891 Z M22.7667469,3.30692494 L30.7397807,3.30692494 C31.3318211,3.30692494 31.8117647,3.77315587 31.8117647,4.34828087 L31.8117647,22.0513317 C31.8117647,22.6264567 31.3318211,23.0926877 30.7397807,23.0926877 L1.26021934,23.0926877 C0.6681789,23.0926877 0.188235294,22.6264567 0.188235294,22.0513317 L0.188235294,4.34828087 C0.188235294,3.77315587 0.6681789,3.30692494 1.26021934,3.30692494 L9.23325311,3.30692494 L12.0766705,0.494526627 C12.2782333,0.295162767 12.5538198,0.182857143 12.8414756,0.182857143 L19.1585244,0.182857143 C19.4461802,0.182857143 19.7217667,0.295162767 19.9233295,0.494526627 L22.7667469,3.30692494 Z M29.6677966,5.3896368 L22.3170489,5.3896368 C22.0293931,5.3896368 21.7538065,5.27733118 21.5522438,5.07796732 L18.7088264,2.26556901 L13.2911736,2.26556901 L10.4477562,5.07796732 C10.2461935,5.27733118 9.97060695,5.3896368 9.68295115,5.3896368 L2.33220339,5.3896368 L2.33220339,21.0099758 L29.6677966,21.0099758 L29.6677966,5.3896368 Z",id:"Stroke-1"})),a.createElement("line",{x1:32,y1:0,x2:0,y2:32,id:"Line",stroke:"#FF584A",strokeWidth:2,strokeLinecap:"square"}))));function iu(e,t){var n=e.title,r=e.titleId,l=au(e,["title","titleId"]);return a.createElement("svg",nu({width:"32px",height:"32px",viewBox:"0 0 32 32",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,ru,lu)}var ou=a.forwardRef(iu),cu=(n.p,Object(m.a)({field:{height:46},label:{color:B,margin:[[0,3]]},value:{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",margin:0,paddingLeft:4}})),su=Object(a.memo)((function(e){var t=e.label,n=e.display,a=e.size,l=e.className,i=cu();return r.a.createElement("div",{className:N()(i.field,l),style:{width:a}},r.a.createElement(Kt,{className:i.label},t),r.a.createElement(Zt,{className:i.value},n))})),uu=Object(m.a)({complianceDetailsGrid:{display:"flex",flexDirection:"row"},firstColumn:{display:"flex",flexDirection:"column",width:"100%",marginRight:10},lastColumn:{display:"flex",flexDirection:"column",width:"100%",marginLeft:10},photoWrapper:function(e){return{display:"flex",justifyContent:"center",width:e.width}}}),du=function(e){var t=e.show,n=e.src,a=uu({width:165});return r.a.createElement(r.a.Fragment,null,t?r.a.createElement(tu,{src:n,width:165,height:45,popupWidth:360,popupHeight:240}):r.a.createElement("div",{className:a.photoWrapper},r.a.createElement(ou,null)))},mu=function(e){var t=e.customer,n=e.updateCustomer,a=uu({width:165}),l=Or.a(["sanctions"])(t),i=Or.a(["sanctionsAt"])(t)?l?"Passed":"Failed":"Not checked yet";return r.a.createElement("div",null,r.a.createElement(qt,null,"Compliance details"),r.a.createElement("div",null,r.a.createElement($u,{customerData:t,updateCustomer:n}),r.a.createElement(Xi.a,{className:a.complianceDetailsGrid},r.a.createElement(Xi.a,{className:a.firstColumn},r.a.createElement(Ns,{title:"ID photo",state:Or.a(["idCardPhotoOverride"])(t),authorize:function(){return n({idCardPhotoOverride:ks})},reject:function(){return n({idCardPhotoOverride:Ss})}},r.a.createElement(du,{show:t.idCardPhotoPath,src:"".concat(C,"/id-card-photo/").concat(Or.a(["idCardPhotoPath"])(t))})),r.a.createElement(Ns,{title:"Front facing camera",state:Or.a(["frontCameraOverride"])(t),authorize:function(){return n({frontCameraOverride:ks})},reject:function(){return n({frontCameraOverride:Ss})}},r.a.createElement(du,{show:t.frontCameraPath,src:"".concat(C,"/front-camera-photo/").concat(Or.a(["frontCameraPath"])(t))}))),r.a.createElement(Xi.a,{className:a.lastColumn},r.a.createElement(Ns,{title:"US SSN",state:Or.a(["usSsnOverride"])(t),authorize:function(){return n({usSsnOverride:ks})},reject:function(){return n({usSsnOverride:Ss})}},r.a.createElement(su,{label:"US SSN",display:t.usSsn})),r.a.createElement(Ns,{title:"Sanctions check",state:Or.a(["sanctionsOverride"])(t),authorize:function(){return n({sanctionsOverride:ks})},reject:function(){return n({sanctionsOverride:Ss})}},r.a.createElement(Zt,null,i))))))};function fu(){return(fu=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var hu=a.createElement("desc",null,"Created with Sketch."),bu=a.createElement("g",{id:"icon/ID/card/zodiac",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},a.createElement("g",{id:"Group-2",stroke:"#1B2559",strokeWidth:1.6},a.createElement("g",{id:"id-copy"},a.createElement("polygon",{id:"Stroke-1",points:"0 16 22 16 22 0 0 0"}),a.createElement("line",{x1:11.7857143,y1:4,x2:18.8571429,y2:4,id:"Stroke-3"}),a.createElement("line",{x1:11.7857143,y1:7.2,x2:18.8571429,y2:7.2,id:"Stroke-4"}),a.createElement("polygon",{id:"Stroke-5",points:"3.14285714 11.2 8.64285714 11.2 8.64285714 4 3.14285714 4"}))));function gu(e,t){var n=e.title,r=e.titleId,l=pu(e,["title","titleId"]);return a.createElement("svg",fu({width:"22px",height:"16px",viewBox:"0 0 22 16",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,hu,bu)}var vu=a.forwardRef(gu);n.p;function yu(){return(yu=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var Ou=a.createElement("g",{id:"icon/sf-small/law/white",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"bevel"},a.createElement("line",{x1:8.4141,y1:7.4648,x2:14.0711,y2:1.8078,id:"Stroke-1",stroke:"#FFFFFF",strokeWidth:2}),a.createElement("line",{x1:12.6568,y1:.3936,x2:15.4858,y2:3.2216,id:"Stroke-3",stroke:"#FFFFFF",strokeWidth:2}),a.createElement("line",{x1:7,y1:6.0498,x2:9.829,y2:8.8788,id:"Stroke-6",stroke:"#FFFFFF",strokeWidth:2}),a.createElement("line",{x1:11.2427,y1:4.6357,x2:19.2427,y2:12.6357,id:"Stroke-7",stroke:"#FFFFFF",strokeWidth:2}),a.createElement("line",{x1:3,y1:16.5,x2:10,y2:16.5,id:"Stroke-9",stroke:"#FFFFFF",strokeWidth:2}),a.createElement("line",{x1:0,y1:19.5,x2:13,y2:19.5,id:"Stroke-10",stroke:"#FFFFFF",strokeWidth:2}));function wu(e,t){var n=e.title,r=e.titleId,l=Eu(e,["title","titleId"]);return a.createElement("svg",yu({width:"20px",height:"20px",viewBox:"0 0 20 20",ref:t,"aria-labelledby":r},l),void 0===n?a.createElement("title",{id:r},"icon/sf-small/law/white"):n?a.createElement("title",{id:r},n):null,Ou)}var xu=a.forwardRef(wu);n.p;function ju(){return(ju=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var ku=a.createElement("g",{id:"icon/sf-small/law/zodiac",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"bevel"},a.createElement("line",{x1:8.4141,y1:7.4648,x2:14.0711,y2:1.8078,id:"Stroke-1",stroke:"#1B2559",strokeWidth:2}),a.createElement("line",{x1:12.6568,y1:.3936,x2:15.4858,y2:3.2216,id:"Stroke-3",stroke:"#1B2559",strokeWidth:2}),a.createElement("line",{x1:7,y1:6.0498,x2:9.829,y2:8.8788,id:"Stroke-6",stroke:"#1B2559",strokeWidth:2}),a.createElement("line",{x1:11.2427,y1:4.6357,x2:19.2427,y2:12.6357,id:"Stroke-7",stroke:"#1B2559",strokeWidth:2}),a.createElement("line",{x1:3,y1:16.5,x2:10,y2:16.5,id:"Stroke-9",stroke:"#1B2559",strokeWidth:2}),a.createElement("line",{x1:0,y1:19.5,x2:13,y2:19.5,id:"Stroke-10",stroke:"#1B2559",strokeWidth:2}));function Su(e,t){var n=e.title,r=e.titleId,l=Cu(e,["title","titleId"]);return a.createElement("svg",ju({width:"20px",height:"20px",viewBox:"0 0 20 20",ref:t,"aria-labelledby":r},l),void 0===n?a.createElement("title",{id:r},"icon/sf-small/law/zodiac"):n?a.createElement("title",{id:r},n):null,ku)}var Nu=a.forwardRef(Su),Iu=(n.p,{titleWrapper:{display:"flex",justifyContent:"space-between",alignItems:"center",flexDirection:"row"},wrapper:{flex:1,display:"flex",flexDirection:"row",height:"100%"},tableWrapper:{flex:1,marginLeft:40,display:"block",overflowX:"auto",width:"100%",maxWidth:"78%",maxHeight:"70vh"},table:{whiteSpace:"nowrap",display:"block","& th":{position:"sticky",top:0}},dateColumn:{minWidth:160},levelColumn:{minWidth:100},fillColumn:{width:"100%"},shareButton:{margin:8,display:"flex",alignItems:"center",fontSize:ce,padding:[[0,12]]},shareIcon:{marginRight:6},button:{margin:8},titleAndButtonsContainer:{display:"flex"},buttonsWrapper:{display:"flex",marginLeft:16,"& > *":{margin:"auto 6px"}}}),Lu={titleWrapper:Iu.titleWrapper,titleAndButtonsContainer:Iu.titleAndButtonsContainer,row:{display:"flex",flexFlow:"row nowrap"},rowSpaceBetween:{display:"flex",flexFlow:"row nowrap",alignItems:"center",justifyContent:"space-between"},column:{display:"flex",flexFlow:"column nowrap",width:"100%",height:"100%",justifyContent:"space-between"},textInput:{width:144},p:{fontFamily:"MuseoSans",fontSize:oe,fontWeight:500,fontStretch:"normal",fontStyle:"normal",lineHeight:1.14,letterSpacing:"normal",color:M},txId:{fontFamily:"MuseoSans",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},txClassIconLeft:{marginRight:11},txClassIconRight:{marginLeft:11},headerLabels:{display:"flex",flexDirection:"row","& div":{display:"flex",alignItems:"center"},"& > div:first-child":{marginRight:24},"& span":{extend:Ee.label1,marginLeft:6}},photo:{width:92,height:92,borderRadius:8,backgroundColor:T,margin:[[0,28,0,0]],alignItems:"center",justifyContent:"center",display:"flex"},img:{width:80},customerName:{marginBottom:32},icon:{marginRight:11},name:{display:"flex",flexDirection:"row",alignItems:"center"},value:{height:16},label:{marginBottom:4,color:B},idIcon:{marginRight:10},subpageButton:{marginLeft:16}},Bu=n(336),Pu=function(e){return"blocked"===e.authorizedOverride?{label:"Blocked",type:"error"}:e.daysSuspended>0?{label:"".concat(e.daysSuspended," day suspension"),type:"warning"}:{label:"Authorized",type:"success"}},Fu=function(e,t){return e&&t?Object(Bu.a)(e,t).formatInternational():""},Du=function(e){var t,n,a=Or.a(["idCardData"])(e);return"".concat(null!==(t=Or.a(["firstName"])(a))&&void 0!==t?t:""," ").concat(null!==(n=Or.a(["lastName"])(a))&&void 0!==n?n:"").trim()},Tu=Object(m.a)(Lu),Wu=Object(a.memo)((function(e){var t=e.frontCameraPath,n=Tu();return r.a.createElement(_e.a,{className:n.photo,elevation:0},t?r.a.createElement("img",{className:n.img,src:"".concat(C,"/front-camera-photo/").concat(t),alt:""}):r.a.createElement(ou,null))})),Ru=Object(m.a)(Lu),zu=Object(a.memo)((function(e){var t,n,a=e.customer,l=e.locale,i=e.setShowCompliance,o=Ru(),c=[{header:"Phone number",size:172,value:Fu(a.phone,l.country)},{header:"ID number",size:172,value:null!==(t=Or.a(["idCardData","documentNumber"])(a))&&void 0!==t?t:""},{header:"US SSN",size:127,value:null!==(n=Or.a(["usSsn"])(a))&&void 0!==n?n:""}],s=Du(a);return r.a.createElement(Xi.a,{display:"flex"},r.a.createElement(Wu,{frontCameraPath:Or.a(["frontCameraPath"])(a)}),r.a.createElement(Xi.a,{display:"flex",flexDirection:"column"},r.a.createElement("div",{className:o.name},r.a.createElement(vu,{className:o.idIcon}),r.a.createElement(Mt,{noMargin:!0},s.length?s:Fu(Or.a(["phone"])(a),l.country)),r.a.createElement(xt,{className:o.subpageButton,Icon:Nu,InverseIcon:xu,toggle:i},"Compliance details")),r.a.createElement(Xi.a,{display:"flex",mt:"auto"},c.map((function(e,t){var n=e.size,a=e.header;return r.a.createElement(Kt,{noMargin:!0,key:t,className:o.label,style:{width:n}},a)}))),r.a.createElement(Xi.a,{display:"flex"},c.map((function(e,t){var n=e.size,a=e.value;return r.a.createElement(Vt,{noMargin:!0,key:t,className:o.value,style:{width:n}},a)})))))})),Au=n(27),Mu=n.n(Au),qu=function(e,t){return Cn.a(e)?"":t},$u=Object(a.memo)((function(e){var t=e.customerData,n=e.updateCustomer,a=Or.a(["idCardData"])(t),l=Or.a(["expirationDate"])(a),i=Or.a(["country"])(a),o=Or.a(["dateOfBirth"])(a),c=[{header:"Name",display:"".concat(Or.a(["firstName"])(a)," ").concat(Or.a(["lastName"])(a)),size:190},{header:"ID number",display:Or.a(["documentNumber"])(a),size:160},{header:"Birth Date",display:qu(o,Mu.a.utc(o).format("YYYY-MM-DD")),size:110},{header:"Age",display:qu(o,Mu.a.utc().diff(Mu.a.utc(o).format("YYYY-MM-DD"),"years")),size:50},{header:"Gender",display:Or.a(["gender"])(a),size:80},{header:"Canada"===i?"Province":"State",display:Or.a(["state"])(a),size:120},{header:"Expiration Date",display:qu(l,Mu.a.utc(l).format("YYYY-MM-DD"))}];return r.a.createElement(Ns,{title:"ID data",state:Or.a(["idCardDataOverride"])(t),authorize:function(){return n({idCardDataOverride:ks})},reject:function(){return n({idCardDataOverride:Ss})}},r.a.createElement(Xi.a,{display:"flex",alignItems:"center"},c.map((function(e,t){var n=e.header,a=e.display,l=e.size;return r.a.createElement(su,{key:t,label:n,display:a,size:l})}))))})),Hu=n(83),Vu=n.n(Hu),Yu=n(179);function Gu(){return(Gu=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var _u=a.createElement("desc",null,"Created with Sketch."),Uu=a.createElement("g",{id:"Styleguide",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd"},a.createElement("g",{id:"icon/action/expand/closed",transform:"translate(1.000000, 1.000000)",stroke:"#1B2559",strokeWidth:1.5},a.createElement("circle",{id:"Oval-4",cx:14,cy:2,r:2}),a.createElement("circle",{id:"Oval-4-Copy",cx:8,cy:2,r:2}),a.createElement("circle",{id:"Oval-4-Copy-2",cx:2,cy:2,r:2})));function Ju(e,t){var n=e.title,r=e.titleId,l=Zu(e,["title","titleId"]);return a.createElement("svg",Gu({width:"18px",height:"6px",viewBox:"0 0 18 6",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,_u,Uu)}var Ku=a.forwardRef(Ju);n.p;function Qu(){return(Qu=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var ed=a.createElement("desc",null,"Created with Sketch."),td=a.createElement("g",{id:"Styleguide",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd"},a.createElement("g",{id:"icon/action/expand/open",transform:"translate(1.000000, 1.000000)",fill:"#1B2559",stroke:"#1B2559",strokeWidth:1.5},a.createElement("circle",{id:"Oval-4",cx:14,cy:2,r:2}),a.createElement("circle",{id:"Oval-4-Copy",cx:8,cy:2,r:2}),a.createElement("circle",{id:"Oval-4-Copy-2",cx:2,cy:2,r:2})));function nd(e,t){var n=e.title,r=e.titleId,l=Xu(e,["title","titleId"]);return a.createElement("svg",Qu({width:"18px",height:"6px",viewBox:"0 0 18 6",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,ed,td)}var ad=a.forwardRef(nd),rd=(n.p,{expandButton:{outline:"none",border:"none",backgroundColor:"transparent",cursor:"pointer",padding:4},rowWrapper:{padding:1},row:{border:[[2,"solid","transparent"]],borderRadius:0},expanded:{border:[[2,"solid",T]],boxShadow:"0 0 8px 0 rgba(0,0,0,0.08)"},before:{paddingTop:12},after:{paddingBottom:12},pointer:{cursor:"pointer"},body:{flex:[[1,1,"auto"]]},table:function(e){return{marginBottom:30,minHeight:200,width:e.width,flex:1,display:"flex",flexDirection:"column"}}}),ld=Object(m.a)(rd),id=function(e){var t,n=e.id,a=e.elements,l=e.data,i=e.width,o=e.Details,c=e.expanded,s=e.expandRow,u=e.expWidth,d=e.expandable,m=e.onClick,f=ld(),p=m||d,h=(t={},Object(I.a)(t,f.pointer,p),Object(I.a)(t,f.row,!0),Object(I.a)(t,f.expanded,c),t);return r.a.createElement("div",{className:f.rowWrapper},r.a.createElement("div",{className:N()(Object(I.a)({},f.before,c&&0!==n))},r.a.createElement(jl,{className:N()(h),onClick:function(){d&&s(n),m&&m(l)},error:l.error,errorMessage:l.errorMessage},a.map((function(e,t){var n=e.view,a=void 0===n?function(e){return null===e||void 0===e?void 0:e.toString()}:n,i=Object(L.a)(e,["view"]);return r.a.createElement(Ol,Object.assign({key:t},i),a(l))})),d&&r.a.createElement(Ol,{width:u,textAlign:"center"},r.a.createElement("button",{onClick:function(){return s(n)},className:f.expandButton},c&&r.a.createElement(ad,null),!c&&r.a.createElement(Ku,null))))),d&&c&&r.a.createElement("div",{className:f.after},r.a.createElement(jl,{className:N()(Object(I.a)({},f.expanded,c))},r.a.createElement(Ol,{width:i},r.a.createElement(o,{it:l})))))},od=function(e){var t=e.elements,n=void 0===t?[]:t,l=e.data,i=void 0===l?[]:l,c=e.Details,s=(e.className,e.expandable),u=e.initialExpanded,d=e.onClick,m=e.loading,f=e.emptyText,p=Object(L.a)(e,["elements","data","Details","className","expandable","initialExpanded","onClick","loading","emptyText"]),h=Object(a.useState)(u),b=Object(o.a)(h,2),g=b[0],v=b[1];Object(a.useEffect)((function(){return v(u)}),[u]);var y=mn.a(Nl.a,jn.a(xn.a("width")))(n),E=1200-y,O=y+(s?E:0),w=ld({width:O}),x=function(e){v(e===g?null:e)},j=new Yu.c({defaultHeight:62,fixedWidth:!0});function C(e){var t=e.index,a=e.key,l=e.parent,o=e.style;return r.a.createElement(Yu.b,{cache:j,columnIndex:0,key:a,parent:l,rowIndex:t},r.a.createElement("div",{style:o},r.a.createElement(id,{width:O,id:t,expWidth:E,elements:n,data:i[t],Details:c,expanded:t===g,expandRow:x,expandable:s,onClick:d})))}return r.a.createElement(Xi.a,{display:"flex",flex:"1",flexDirection:"column"},r.a.createElement(gl,{className:w.table},r.a.createElement(vl,null,n.map((function(e,t){var n=e.width,a=e.className,l=e.textAlign,i=e.header;return r.a.createElement(wl,{key:t,width:n,className:a,textAlign:l},i)})),s&&r.a.createElement(wl,{width:E})),r.a.createElement(El,{className:w.body},m&&r.a.createElement($t,null,"Loading..."),!m&&Sn.a(i)&&r.a.createElement($t,null,f),r.a.createElement(Yu.a,{disableWidth:!0},(function(e){var t=e.height;return r.a.createElement(Yu.d,Object.assign({style:{overflow:"inherit",outline:"none"}},p,{height:m?0:t,width:O,rowCount:i.length,rowHeight:j.rowHeight,rowRenderer:C,overscanRowCount:50,deferredMeasurementCache:j}))})))))},cd=[{cryptoCode:"BTC",display:"Bitcoin",code:"bitcoin",unitScale:8},{cryptoCode:"ETH",display:"Ethereum",code:"ethereum",unitScale:18},{cryptoCode:"LTC",display:"Litecoin",code:"litecoin",unitScale:8},{cryptoCode:"DASH",display:"Dash",code:"dash",unitScale:8},{cryptoCode:"ZEC",display:"Zcash",code:"zcash",unitScale:8},{cryptoCode:"BCH",display:"Bitcoin Cash",code:"bitcoincash",unitScale:8}];function sd(e,t){var n=function(e){var t=On.a(wn.a("cryptoCode",e))(cd);if(!t)throw new Error("Unsupported crypto: ".concat(e));return t}(t).unitScale;return e.shiftedBy(-n)}function ud(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return"BCH"===e?t.replace("bitcoincash:",""):t}var dd=n(333);function md(){return(md=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var pd=a.createElement("desc",null,"Created with Sketch."),hd=a.createElement("g",{id:"Styleguide",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd",strokeLinejoin:"round"},a.createElement("g",{id:"icon/action/copy",transform:"translate(1.000000, 1.000000)",stroke:"#1B2559"},a.createElement("g",{id:"Group-5-Copy-2"},a.createElement("polyline",{id:"Stroke-1",strokeWidth:2,points:"6 1.2 6 -0.00024 16 -0.00024 16 13.06376 12 13.06376"}),a.createElement("polygon",{id:"Stroke-3",strokeWidth:2,strokeLinecap:"round",points:"0 15.9368 10 15.9368 10 2.9368 0 2.9368"}))));function bd(e,t){var n=e.title,r=e.titleId,l=fd(e,["title","titleId"]);return a.createElement("svg",md({width:"18px",height:"18px",viewBox:"0 0 18 18",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,pd,hd)}var gd=a.forwardRef(bd),vd=(n.p,Ee.label1),yd={wrapper:{extend:Ee.mono,display:"flex",alignItems:"center",height:32},address:{lineBreak:"anywhere"},buttonWrapper:{"& button":{border:"none",backgroundColor:"transparent",cursor:"pointer"}},popoverContent:{extend:vd,display:"flex",justifyContent:"center",alignItems:"center",color:R,borderRadius:4,padding:[[5,9]]}},Ed={idCardDataCard:{extend:Ee.p,display:"flex",padding:[[11,8]],"& > div":{display:"flex",flexDirection:"column","& > div":{width:144,height:37,marginBottom:15,"&:last-child":{marginBottom:0}}}}},Od={label:{extend:vd,color:J,marginBottom:4}},wd={titleWrapper:Iu.titleWrapper,titleAndButtonsContainer:Iu.titleAndButtonsContainer,buttonsWrapper:Iu.buttonsWrapper,headerLabels:{display:"flex",flexDirection:"row","& div":{display:"flex",alignItems:"center"},"& > div:first-child":{marginRight:24},"& span":{extend:vd,marginLeft:6}},overflowTd:{overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis"}},xd=Object(m.a)(yd),jd=function(e){var t=e.className,n=e.buttonClassname,l=e.children,i=(Object(L.a)(e,["className","buttonClassname","children"]),Object(a.useState)(null)),c=Object(o.a)(i,2),s=c[0],u=c[1];Object(a.useEffect)((function(){s&&setTimeout((function(){return u(null)}),3e3)}),[s]);var d=xd(),m=Boolean(s),f=m?"simple-popper":void 0;return r.a.createElement("div",{className:d.wrapper},l&&r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:N()(d.address,t)},l),r.a.createElement("div",{className:N()(d.buttonWrapper,n)},r.a.createElement(dd.CopyToClipboard,{text:Ll.a(/\s/g,"")(l)},r.a.createElement("button",{"aria-describedby":f,onClick:function(e){return function(e){u(s?null:e.currentTarget)}(e)}},r.a.createElement(gd,null)))),r.a.createElement(Je,{id:f,open:m,anchorEl:s,onClose:function(){u(null)},arrowSize:3,bgColor:B,placement:"top"},r.a.createElement("div",{className:d.popoverContent},r.a.createElement("div",null,"Copied to clipboard!")))))},Cd=Object(m.a)(Lu),kd=function(e){var t=e.customer,n=e.data,a=e.loading,l=Cd(),i="cashOut"===t.lastTxClass?Oo:kc,o=!(Sn.a(n)||Cn.a(n)),c=[{header:"Transactions",size:127,value:qu(t.totalTxs,"".concat(Number.parseInt(t.totalTxs)))},{header:"Transaction volume",size:167,value:qu(t.totalSpent,"".concat(Number.parseFloat(t.totalSpent)," ").concat(t.lastTxFiatCode))},{header:"Last active",size:142,value:qu(t.lastActive,Mu.a.utc(t.lastActive).format("YYYY-MM-D"))},{header:"Last transaction",size:198,value:qu(t.lastTxFiat,r.a.createElement(r.a.Fragment,null,r.a.createElement(i,{className:l.icon}),"".concat(Number.parseFloat(t.lastTxFiat)," \n ").concat(t.lastTxFiatCode)))}],s=[{header:"Direction",width:207,view:function(e){return r.a.createElement(r.a.Fragment,null,"cashOut"===e.txClass?r.a.createElement(Oo,{className:l.txClassIconLeft}):r.a.createElement(kc,{className:l.txClassIconLeft}),"cashOut"===e.txClass?"Cach-out":"Cash-in")}},{header:"Transaction ID",width:414,view:function(e){return r.a.createElement(jd,{className:l.txId},e.id)}},{header:"Cash",width:146,textAlign:"right",view:function(e){return r.a.createElement(r.a.Fragment,null,"".concat(Number.parseFloat(e.fiat)," "),r.a.createElement(Qt,{inline:!0},e.fiatCode))}},{header:"Crypto",width:142,textAlign:"right",view:function(e){return r.a.createElement(r.a.Fragment,null,"".concat(sd(new Vu.a(e.cryptoAtoms),e.cryptoCode).toFormat(5)," "),r.a.createElement(Qt,{inline:!0},e.cryptoCode))}},{header:"Date",width:157,view:function(e){return Mu.a.utc(e.created).format("YYYY-MM-D")}},{header:"Time (h:m:s)",width:134,view:function(e){return Mu.a.utc(e.created).format("hh:mm:ss")}}];return r.a.createElement(r.a.Fragment,null,r.a.createElement(qt,null,"Transactions"),r.a.createElement(Xi.a,{display:"flex",flexDirection:"column"},r.a.createElement(Xi.a,{display:"flex",mt:"auto"},c.map((function(e,t){var n=e.size,a=e.header;return r.a.createElement(Kt,{noMargin:!0,key:t,className:l.label,style:{width:n}},a)}))),r.a.createElement(Xi.a,{display:"flex"},c.map((function(e,t){var n=e.size,a=e.value;return r.a.createElement(Vt,{noMargin:!0,key:t,className:l.value,style:{width:n}},a)})))),r.a.createElement("div",{className:l.titleWrapper},r.a.createElement("div",{className:l.titleAndButtonsContainer},r.a.createElement($t,null,a?"Loading":o?"All transactions from this customer":"No transactions so far"))),o&&r.a.createElement(od,{elements:s,data:n}))};function Sd(){var e=Object(tn.a)(["\n mutation setCustomer($customerId: ID!, $customerInput: CustomerInput) {\n setCustomer(customerId: $customerId, customerInput: $customerInput) {\n id\n authorizedOverride\n frontCameraPath\n frontCameraOverride\n phone\n smsOverride\n idCardData\n idCardDataOverride\n idCardDataExpiration\n idCardPhotoPath\n idCardPhotoOverride\n usSsn\n usSsnOverride\n sanctions\n sanctionsAt\n sanctionsOverride\n totalTxs\n totalSpent\n lastActive\n lastTxFiat\n lastTxFiatCode\n lastTxClass\n }\n }\n"]);return Sd=function(){return e},e}function Nd(){var e=Object(tn.a)(["\n query customer($customerId: ID!) {\n config\n customer(customerId: $customerId) {\n id\n authorizedOverride\n frontCameraPath\n frontCameraOverride\n phone\n smsOverride\n idCardData\n idCardDataOverride\n idCardDataExpiration\n idCardPhotoPath\n idCardPhotoOverride\n usSsn\n usSsnOverride\n sanctions\n sanctionsAt\n sanctionsOverride\n totalTxs\n totalSpent\n lastActive\n lastTxFiat\n lastTxFiatCode\n lastTxClass\n transactions {\n txClass\n id\n fiat\n fiatCode\n cryptoAtoms\n cryptoCode\n created\n errorMessage: error\n error: errorCode\n }\n }\n }\n"]);return Nd=function(){return e},e}var Id=Object(m.a)(qs),Ld=sn()(Nd()),Bd=sn()(Sd()),Pd=Object(a.memo)((function(){var e,t,n,l=Id(),i=Object(g.h)(),c=Object(a.useState)(!1),s=Object(o.a)(c,2),u=s[0],d=s[1],m=Object(g.j)().id,f=Object(nn.c)(Ld,{variables:{customerId:m}}),p=f.data,h=f.refetch,b=f.loading,v=Object(nn.b)(Bd,{onCompleted:function(){return h()}}),y=Object(o.a)(v,1)[0],E=function(e){return y({variables:{customerId:m,customerInput:e}})},O=null!==(e=Or.a(["config"])(p))&&void 0!==e?e:[],w=O&&Jr($r,O),x=null!==(t=Or.a(["customer"])(p))&&void 0!==t?t:[],j=null!==(n=Or.a(["transactions"])(x))&&void 0!==n?n:[],C=Qc.a(Xc.a(xn.a("cryptoAtoms")))(j),k=Du(x),S=Or.a(["authorizedOverride"])(x)===Ss;return r.a.createElement(r.a.Fragment,null,r.a.createElement(Uc.a,{classes:{root:l.breadcrumbs},separator:r.a.createElement(Kc.a,{fontSize:"small"}),"aria-label":"breadcrumb"},r.a.createElement(Kt,{noMargin:!0,className:l.labelLink,onClick:function(){return i.push("/compliance/customers")}},"Customers"),r.a.createElement(Qt,{noMargin:!0,className:l.labelLink},k.length?k:Fu(Or.a(["phone"])(x),w.country))),r.a.createElement("div",null,r.a.createElement(Xi.a,{className:l.customerDetails,display:"flex",justifyContent:"space-between"},r.a.createElement(zu,{customer:x,locale:w,setShowCompliance:function(){return d(!u)}}),r.a.createElement("div",null,r.a.createElement(Kt,{className:l.actionLabel},"Actions"),r.a.createElement(je,{color:"primary",Icon:S?bs:Ms,InverseIcon:S?us:Ds,onClick:function(){return E({authorizedOverride:S?ks:Ss})}},"".concat(S?"Authorize":"Block"," customer"))))),!u&&r.a.createElement(kd,{customer:x,data:C,loading:b}),u&&r.a.createElement(mu,{customer:x,updateCustomer:E}))})),Fd=Object(m.a)(Lu),Dd=function(e){var t=e.data,n=e.locale,a=e.onClick,l=e.loading,i=Fd(),o=[{header:"Phone",width:172,view:function(e){return Fu(e.phone,n.country)}},{header:"Name",width:241,view:Du},{header:"Total TXs",width:126,textAlign:"right",view:function(e){return"".concat(Number.parseInt(e.totalTxs))}},{header:"Total spent",width:152,textAlign:"right",view:function(e){var t;return"".concat(Number.parseFloat(e.totalSpent)," ").concat(null!==(t=e.lastTxFiatCode)&&void 0!==t?t:"")}},{header:"Last active",width:133,view:function(e){return qu(e.lastActive,Mu.a.utc(e.lastActive).format("YYYY-MM-D"))}},{header:"Last transaction",width:161,textAlign:"right",view:function(e){var t,n=!Cn.a(e.lastTxFiatCode),a="cashOut"===e.lastTxClass?Oo:kc,l=r.a.createElement(a,{className:i.txClassIconRight});return r.a.createElement(r.a.Fragment,null,n&&"".concat(parseFloat(e.lastTxFiat)," ").concat(null!==(t=e.lastTxFiatCode)&&void 0!==t?t:""),n&&l)}},{header:"Status",width:188,view:function(e){return r.a.createElement(rs,{statuses:[Pu(e)]})}}];return r.a.createElement(r.a.Fragment,null,r.a.createElement(uo,{title:"Customers",labels:[{label:"Cash-in",icon:r.a.createElement(kc,null)},{label:"Cash-out",icon:r.a.createElement(Oo,null)}]}),r.a.createElement(od,{loading:l,emptyText:"No customers so far",elements:o,data:t,onClick:a}))};function Td(){var e=Object(tn.a)(["\n {\n config\n customers {\n id\n idCardData\n phone\n totalTxs\n totalSpent\n lastActive\n lastTxFiat\n lastTxFiatCode\n lastTxClass\n authorizedOverride\n daysSuspended\n }\n }\n"]);return Td=function(){return e},e}var Wd=sn()(Td()),Rd=function(){var e,t,n=Object(g.h)(),a=Object(nn.c)(Wd),l=a.data,i=a.loading,o=null!==(e=Or.a(["config"])(l))&&void 0!==e?e:[],c=o&&Jr($r,o),s=cl.a([Xc.a(xn.a("lastActive"))])(null!==(t=Or.a(["customers"])(l))&&void 0!==t?t:[]);return r.a.createElement(Dd,{data:s,locale:c,onClick:function(e){return n.push("/compliance/customer/".concat(e.id))},loading:i})},zd=n(451),Ad=Object(zd.a)({wrapper:{display:"flex",alignItems:"center"},colorIndicator:{borderRadius:3,height:12,width:12,marginRight:8}}),Md=function(e){var t=e.className,n=e.label,a=e.color,l=Object(L.a)(e,["className","label","color"]),i=Ad();return r.a.createElement("div",Object.assign({className:N()(i.wrapper,t)},l),a&&r.a.createElement("div",{className:i.colorIndicator,style:{backgroundColor:a}}),r.a.createElement(Kt,l,n))},qd=Ee.label1,$d={wrapper:{display:"flex",flex:1,flexDirection:"row",height:"100%"},main:{display:"flex",flex:1},firstSide:{margin:"0 ".concat(64,"px 0 ").concat(48,"px")},secondSide:{marginTop:-29},error:{color:X},coinTotal:{margin:"".concat(12,"px 0")},leftSpacer:{marginLeft:8},topSpacer:{marginTop:40},addressWrapper:{display:"flex",flexDirection:"column",flex:1,backgroundColor:Y},address:{width:375,margin:"".concat(12,"px ").concat(24,"px")},itemWrapper:{textAlign:"end"},item:{extend:qd,margin:2},inactiveItem:{color:B},firstItem:{fontWeight:700,margin:2},total:{marginTop:"auto",textAlign:"right",marginRight:24},totalPending:{marginTop:2},totalTitle:{color:Q,marginBottom:2},table:{marginTop:8,marginLeft:48},tableLabel:{justifyContent:"end",marginTop:-38},pending:{backgroundColor:_},copyToClipboard:{marginLeft:"auto",paddingTop:6,paddingLeft:15,marginRight:-11}};function Hd(){var e=Object(tn.a)(["\n {\n funding {\n cryptoCode\n errorMsg\n fundingAddress\n fundingAddressUrl\n confirmedBalance\n pending\n fiatConfirmedBalance\n fiatPending\n fiatCode\n display\n unitScale\n }\n }\n"]);return Hd=function(){return e},e}var Vd,Yd=Object(m.a)($d),Gd=165,Zd=140,_d=130,Ud=sn()(Hd()),Jd=function(e,t){return e.plus(t)},Kd=function(e){return new Vu.a(e).toFormat(2)},Qd=function(){var e,t,n=Object(a.useState)(null),l=Object(o.a)(n,2),i=l[0],c=l[1],s=Object(a.useState)(!1),u=Object(o.a)(s,1)[0],d=Yd(),m=[{cryptoAmount:2,balance:10.23,fiatValue:1e3,date:new Date,performedBy:null,pending:!0},{cryptoAmount:10,balance:12.23,fiatValue:12e3,date:new Date,performedBy:null},{cryptoAmount:5,balance:5,fiatValue:5e4,date:new Date,performedBy:null}],f=Object(nn.c)(Ud).data;(null===f||void 0===f||null===(e=f.funding)||void 0===e?void 0:e.length)&&!i&&c(null===f||void 0===f?void 0:f.funding[0]);var p,h=(p=(null===f||void 0===f?void 0:f.funding)||[],Kd(p.filter((function(e){return!e.errorMsg})).map((function(e){return new Vu.a(e.fiatPending)})).reduce(Jd,new Vu.a(0)))),b=function(e){return e>=0?"+":""};return r.a.createElement(r.a.Fragment,null,r.a.createElement("div",null,r.a.createElement(gn,null,"Funding")),r.a.createElement("div",{className:d.wrapper},r.a.createElement(xa,{data:null===f||void 0===f?void 0:f.funding,isSelected:function(e){return i&&i.cryptoCode===e.cryptoCode},onClick:c,displayName:function(e){return e.display},itemRender:function(e,t){var n,a,l=(n={},Object(I.a)(n,d.item,!0),Object(I.a)(n,d.inactiveItem,!t),n),i=(a={},Object(I.a)(a,d.itemWrapper,!0),Object(I.a)(a,d.error,e.errorMsg),a);return r.a.createElement("div",{className:N()(i)},r.a.createElement("div",{className:d.firstItem},e.display),!e.errorMsg&&r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:N()(l)},e.fiatConfirmedBalance," ",e.fiatCode),r.a.createElement("div",{className:N()(l)},e.confirmedBalance," ",e.cryptoCode)))}},(null===f||void 0===f?void 0:f.funding)&&(null===f||void 0===f||null===(t=f.funding)||void 0===t?void 0:t.length)&&r.a.createElement("div",{className:d.total},r.a.createElement(Kt,{className:d.totalTitle},"Total Crypto Balance"),r.a.createElement(Yt,{noMargin:!0},function(e){return Kd(e.filter((function(e){return!e.errorMsg})).map((function(e){return new Vu.a(e.fiatConfirmedBalance)})).reduce(Jd,new Vu.a(0)))}(f.funding),f.funding[0].fiatCode),r.a.createElement(Kt,{className:d.totalPending},"(",b(h)," ",h," pending)"))),i&&!u&&i.errorMsg&&r.a.createElement("div",{className:d.main},r.a.createElement("div",{className:d.firstSide},r.a.createElement(Zt,{className:d.error},i.errorMsg))),i&&!u&&!i.errorMsg&&r.a.createElement("div",{className:d.main},r.a.createElement("div",{className:d.firstSide},r.a.createElement(qt,null,"Balance (",i.display,")"),r.a.createElement("div",{className:d.coinTotal},r.a.createElement(Yt,{inline:!0,noMargin:!0},"".concat(i.confirmedBalance," ").concat(i.cryptoCode)),r.a.createElement(Gt,{inline:!0,noMargin:!0,className:d.leftSpacer},"(".concat(b(i.pending)," ").concat(i.pending," pending)"))),r.a.createElement("div",{className:d.coinTotal},r.a.createElement(Zt,{inline:!0,noMargin:!0},"= ".concat(Kd(i.fiatConfirmedBalance)," ").concat(i.fiatCode)),r.a.createElement(Xt,{inline:!0,noMargin:!0,className:d.leftSpacer},"(".concat(b(i.fiatPending)," ").concat(Kd(i.fiatPending)," pending)"))),r.a.createElement(qt,{className:d.topSpacer},"Address"),r.a.createElement("div",{className:d.addressWrapper},r.a.createElement(_t,{className:d.address},r.a.createElement("strong",null,r.a.createElement(jd,{buttonClassname:d.copyToClipboard},function(){return ud(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",arguments.length>1&&void 0!==arguments[1]?arguments[1]:"").replace(/(.{4})/g,"$1 ")}(i.cryptoCode,i.fundingAddress)))))),r.a.createElement("div",{className:d.secondSide},r.a.createElement(Kt,null,"Scan to send ",i.display),r.a.createElement(dn.a,{size:240,fgColor:M,value:i.fundingAddressUrl}))),i&&u&&r.a.createElement("div",null,r.a.createElement(Md,{className:d.tableLabel,label:"Pending",color:"#cacaca"}),r.a.createElement(gl,{className:d.table},r.a.createElement(vl,null,r.a.createElement(Ol,{header:!0,width:Gd},"Amount Entered"),r.a.createElement(Ol,{header:!0,width:Gd},"Balance After"),r.a.createElement(Ol,{header:!0,width:Gd},"Cash Value"),r.a.createElement(Ol,{header:!0,width:_d},"Date"),r.a.createElement(Ol,{header:!0,width:Zd},"Time (h:m:s)"),r.a.createElement(Ol,{header:!0,width:Gd},"Performed By")),r.a.createElement(El,null,m.map((function(e,t){return r.a.createElement(jl,{key:t,className:N()(Object(I.a)({},d.pending,e.pending))},r.a.createElement(Ol,{width:Gd},e.cryptoAmount," ",i.cryptoCode),r.a.createElement(Ol,{width:Gd},e.balance," ",i.cryptoCode),r.a.createElement(Ol,{width:Gd},e.fiatValue," ",i.fiatCode),r.a.createElement(Ol,{width:_d},Mu()(e.date).format("YYYY-MM-DD")),r.a.createElement(Ol,{width:Zd},Mu()(e.date).format("hh:mm:ss")),r.a.createElement(Ol,{width:Gd},"add"))})))))))},Xd=function(e){return e&&e.length},em={code:"bitgo",name:"BitGo",title:"BitGo (Wallet)",elements:[{code:"token",display:"API Token",component:Qn,face:!0,long:!0},{code:"environment",display:"Environment",component:_n,inputProps:{options:["prod","test"]},face:!0},{code:"BTCWalletId",display:"BTC Wallet ID",component:Qn},{code:"BTCWalletPassphrase",display:"BTC Wallet Passphrase",component:Kn},{code:"LTCWalletId",display:"LTC Wallet ID",component:Qn},{code:"LTCWalletPassphrase",display:"LTC Wallet Passphrase",component:Kn},{code:"ZECWalletId",display:"ZEC Wallet ID",component:Qn},{code:"ZECWalletPassphrase",display:"ZEC Wallet Passphrase",component:Kn},{code:"BCHWalletId",display:"BCH Wallet ID",component:Qn},{code:"BCHWalletPassphrase",display:"BCH Wallet Passphrase",component:Kn},{code:"DASHWalletId",display:"DASH Wallet ID",component:Qn},{code:"DASHWalletPassphrase",display:"DASH Wallet Passphrase",component:Kn}],validationSchema:hn.d().shape({token:hn.e().max(100,"Too long").required(),BTCWalletId:hn.e().max(100,"Too long"),BTCWalletPassphrase:hn.e().max(100,"Too long").when("BTCWalletId",{is:Xd,then:hn.e().required()}),LTCWalletId:hn.e().max(100,"Too long"),LTCWalletPassphrase:hn.e().max(100,"Too long").when("LTCWalletId",{is:Xd,then:hn.e().required()}),ZECWalletId:hn.e().max(100,"Too long"),ZECWalletPassphrase:hn.e().max(100,"Too long").when("ZECWalletId",{is:Xd,then:hn.e().required()}),BCHWalletId:hn.e().max(100,"Too long"),BCHWalletPassphrase:hn.e().max(100,"Too long").when("BCHWalletId",{is:Xd,then:hn.e().required()}),DASHWalletId:hn.e().max(100,"Too long"),DASHWalletPassphrase:hn.e().max(100,"Too long").when("DASHWalletId",{is:Xd,then:hn.e().required()}),environment:hn.e().matches(/(prod|test)/).required()})},tm={code:"bitstamp",name:"Bitstamp",title:"Bitstamp (Exchange)",elements:[{code:"clientId",display:"Client ID",component:Qn,face:!0,long:!0},{code:"key",display:"API Key",component:Qn,face:!0,long:!0},{code:"secret",display:"API Secret",component:Kn}],validationSchema:hn.d().shape({clientId:hn.e().max(100,"Too long").required(),key:hn.e().max(100,"Too long").required(),secret:hn.e().max(100,"Too long").required()})},nm={code:"blockcypher",name:"Blockcypher",title:"Blockcypher (Payments)",elements:[{code:"token",display:"API Token",component:Qn,face:!0,long:!0},{code:"confidenceFactor",display:"Confidence Factor",component:Qn,face:!0}],validationSchema:hn.d().shape({token:hn.e().max(100,"Too long").required(),confidenceFactor:hn.c().integer("Please input a positive integer").positive("Please input a positive integer").required()})},am={code:"infura",name:"Infura",title:"Infura (Wallet)",elements:[{code:"apiKey",display:"Project ID",component:Qn,face:!0,long:!0},{code:"apiSecret",display:"Project Secret",component:Kn},{code:"endpoint",display:"Endpoint",component:Qn,face:!0}],validationSchema:hn.d().shape({apiKey:hn.e().max(100,"Too long").required(),apiSecret:hn.e().max(100,"Too long").required(),endpoint:hn.e().max(100,"Too long").required()})},rm={code:"itbit",name:"itBit",title:"itBit (Exchange)",elements:[{code:"userId",display:"User ID",component:Qn,face:!0,long:!0},{code:"walletId",display:"Wallet ID",component:Qn,face:!0,long:!0},{code:"clientKey",display:"Client Key",component:Qn},{code:"clientSecret",display:"Client Secret",component:Kn}],validationSchema:hn.d().shape({userId:hn.e().max(100,"Too long").required(),walletId:hn.e().max(100,"Too long").required(),clientKey:hn.e().max(100,"Too long").required(),clientSecret:hn.e().max(100,"Too long").required()})},lm={code:"kraken",name:"Kraken",title:"Kraken (Exchange)",elements:[{code:"apiKey",display:"API Key",component:Qn,face:!0,long:!0},{code:"privateKey",display:"Private Key",component:Kn}],validationSchema:hn.d().shape({apiKey:hn.e().max(100,"Too long").required(),privateKey:hn.e().max(100,"Too long").required()})},im={code:"mailgun",name:"Mailgun",title:"Mailgun (Email)",elements:[{code:"apiKey",display:"API Key",component:Qn},{code:"domain",display:"Domain",component:Qn},{code:"fromEmail",display:"From Email",component:Qn,face:!0},{code:"toEmail",display:"To Email",component:Qn,face:!0}],validationSchema:hn.d().shape({apiKey:hn.e().max(100,"Too long").required(),domain:hn.e().max(100,"Too long").required(),fromEmail:hn.e().max(100,"Too long").email("Please input a valid email address").required(),toEmail:hn.e().max(100,"Too long").email("Please input a valid email address").required()})},om={code:"twilio",name:"Twilio",title:"Twilio (SMS)",elements:[{code:"accountSid",display:"Account SID",component:Qn},{code:"authToken",display:"Auth Token",component:Kn},{code:"fromNumber",display:"Twilio Number (international format)",component:Qn,face:!0},{code:"toNumber",display:"Notifications Number (international format)",component:Qn,face:!0}],validationSchema:hn.d().shape({accountSid:hn.e().max(100,"Too long").required(),authToken:hn.e().max(100,"Too long").required(),fromNumber:hn.e().max(100,"Too long").required(),toNumber:hn.e().max(100,"Too long").required()})},cm=(Vd={},Object(I.a)(Vd,em.code,em),Object(I.a)(Vd,tm.code,tm),Object(I.a)(Vd,nm.code,nm),Object(I.a)(Vd,am.code,am),Object(I.a)(Vd,rm.code,rm),Object(I.a)(Vd,lm.code,lm),Object(I.a)(Vd,im.code,im),Object(I.a)(Vd,om.code,om),Vd);function sm(){return(sm=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var dm=a.createElement("circle",{cx:52,cy:32,r:32,fill:"#F7931A"}),mm=a.createElement("path",{d:"m66.1 27.4c0.6-4.3-2.6-6.5-7-8.1l1.4-5.8-3.5-0.9-1.4 5.6c-0.9-0.2-1.9-0.4-2.8-0.7l1.4-5.7-3.5-0.9-1.4 5.8c-0.8-0.2-1.5-0.3-2.2-0.5l0 0-4.8-1.2-0.9 3.8s2.6 0.6 2.6 0.6c1.4 0.4 1.7 1.3 1.6 2l-1.6 6.6c0.1 0 0.2 0.1 0.4 0.1-0.1 0-0.2-0.1-0.4-0.1l-2.3 9.2c-0.2 0.4-0.6 1.1-1.6 0.8 0 0.1-2.6-0.6-2.6-0.6l-1.7 4 4.6 1.1c0.9 0.2 1.7 0.4 2.5 0.6l-1.5 5.8 3.5 0.9 1.4-5.8c1 0.3 1.9 0.5 2.8 0.7l-1.4 5.7 3.5 0.9 1.5-5.8c6 1.1 10.5 0.7 12.4-4.7 1.5-4.4-0.1-6.9-3.2-8.5 2.3-0.5 4-2 4.5-5.2zm-8 11.2c-1.1 4.4-8.4 2-10.8 1.4l1.9-7.7c2.4 0.6 10 1.8 8.9 6.3zm1.1-11.3c-1 4-7.1 2-9.1 1.5l1.7-7c2 0.5 8.4 1.4 7.3 5.6z",fill:"#FFF"});function fm(e,t){var n=e.title,r=e.titleId,l=um(e,["title","titleId"]);return a.createElement("svg",sm({width:104,height:64,ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,dm,mm)}var pm=a.forwardRef(fm);n.p;function hm(){return(hm=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var gm=a.createElement("path",{fill:"#F7931A",d:"m0,0l29.7,0a39,39,0,0,0,0,64l-29.7,0zm52,0a32,32,0,0,0,0,64a32,32,0,0,0,0,-64m52,0l-29.7,0a39,39,0,0,1,0,64l29.7,0z"}),vm=a.createElement("path",{fill:"#FFF",transform:"rotate(-28 52 32)",d:"m66.103,27.444c0.637-4.258-2.605-6.547-7.038-8.074l1.438-5.768-3.511-0.875-1.4,5.616c-0.923-0.23-1.871-0.447-2.813-0.662l1.41-5.653-3.509-0.875-1.439,5.766c-0.764-0.174-1.514-0.346-2.242-0.527l0.004-0.018-4.842-1.209-0.934,3.75s2.605,0.597,2.55,0.634c1.422,0.355,1.679,1.296,1.636,2.042l-1.638,6.571c0.098,0.025,0.225,0.061,0.365,0.117-0.117-0.029-0.242-0.061-0.371-0.092l-2.296,9.205c-0.174,0.432-0.615,1.08-1.609,0.834,0.035,0.051-2.552-0.637-2.552-0.637l-1.743,4.019,4.569,1.139c0.85,0.213,1.683,0.436,2.503,0.646l-1.453,5.834,3.507,0.875,1.439-5.772c0.958,0.26,1.888,0.5,2.798,0.726l-1.434,5.745,3.511,0.875,1.453-5.823c5.987,1.133,10.489,0.676,12.384-4.739,1.527-4.36-0.076-6.875-3.226-8.515,2.294-0.529,4.022-2.038,4.483-5.155zm-8.022,11.249c-1.085,4.36-8.426,2.003-10.806,1.412l1.928-7.729c2.38,0.594,10.012,1.77,8.878,6.317zm1.086-11.312c-0.99,3.966-7.1,1.951-9.082,1.457l1.748-7.01c1.982,0.494,8.365,1.416,7.334,5.553z"});function ym(e,t){var n=e.title,r=e.titleId,l=bm(e,["title","titleId"]);return a.createElement("svg",hm({width:104,height:64,ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,gm,vm)}var Em=a.forwardRef(ym);n.p;function Om(){return(Om=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var xm=a.createElement("circle",{cx:1e3,cy:1e3,r:1e3,fill:"#2573c2"}),jm=a.createElement("g",{fill:"#fff"},a.createElement("path",{d:"M1652.6 736.8a143.65 143.65 0 0 0-19.2-63.6c-10-20-27.8-35.6-48.6-43.6a143.51 143.51 0 0 0-68.4-15H628.8l-63.6 190.6h804.2l-127 389.6h-804l-63.6 190.6h891.8a246.33 246.33 0 0 0 77.8-15c25-14.2 53.6-28.6 77.8-48.6a382.69 382.69 0 0 0 63.6-63.6 432.2 432.2 0 0 0 39.2-73.4l117.8-370.4a137.38 137.38 0 0 0 9.8-77.6z"}),a.createElement("path",{d:"M882.2 911.6H409l-63.6 176.2h478z"}));function Cm(e,t){var n=e.title,r=e.titleId,l=wm(e,["title","titleId"]);return a.createElement("svg",Om({viewBox:"0 0 2000 2000",width:2500,height:2500,ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,xm,jm)}var km=a.forwardRef(Cm);n.p;function Sm(){return(Sm=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var Im=a.createElement("g",null,a.createElement("polygon",{fill:"#343434",points:"127.9611 0 125.1661 9.5 125.1661 285.168 127.9611 287.958 255.9231 212.32"}),a.createElement("polygon",{fill:"#8C8C8C",points:"127.962 0 0 212.32 127.962 287.959 127.962 154.158"}),a.createElement("polygon",{fill:"#3C3C3B",points:"127.9611 312.1866 126.3861 314.1066 126.3861 412.3056 127.9611 416.9066 255.9991 236.5866"}),a.createElement("polygon",{fill:"#8C8C8C",points:"127.962 416.9052 127.962 312.1852 0 236.5852"}),a.createElement("polygon",{fill:"#141414",points:"127.9611 287.9577 255.9211 212.3207 127.9611 154.1587"}),a.createElement("polygon",{fill:"#393939",points:"0.0009 212.3208 127.9609 287.9578 127.9609 154.1588"}));function Lm(e,t){var n=e.title,r=e.titleId,l=Nm(e,["title","titleId"]);return a.createElement("svg",Sm({width:"256px",height:"417px",viewBox:"0 0 256 417",preserveAspectRatio:"xMidYMid",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,Im)}var Bm=a.forwardRef(Lm);n.p;function Pm(){return(Pm=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var Dm=a.createElement("circle",{fill:"#989898",cx:52,cy:32,r:32}),Tm=a.createElement("path",{fill:"#FFF",d:"m46.92598,12.31703l-4.97801,18.8088l-3.42705,1.32711l-1.64691,6.17189l3.42705,-1.29514l-2.8461,10.76083l30.60893,0l2.09993,-7.98401l-18.42505,0l2.09993,-7.82412l3.3631,-1.26316l1.6469,-6.17188l-3.36309,1.29513l3.6509,-13.83611l-12.21053,0z"});function Wm(e,t){var n=e.title,r=e.titleId,l=Fm(e,["title","titleId"]);return a.createElement("svg",Pm({width:104,height:64,ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,Dm,Tm)}var Rm=a.forwardRef(Wm);n.p;function zm(){return(zm=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var Mm=a.createElement("style",{type:"text/css"},"\n\t.st0{fill:#231F20;}\n\t.st1{fill:#F4B728;}\n"),qm=a.createElement("path",{className:"st0",d:"M245.4,20C121.1,20,20,121.1,20,245.4s101.1,225.4,225.4,225.4s225.4-101.1,225.4-225.4S369.7,20,245.4,20z M245.4,433.6c-103.8,0-188.2-84.4-188.2-188.2S141.6,57.2,245.4,57.2s188.2,84.4,188.2,188.2S349.2,433.6,245.4,433.6z"}),$m=a.createElement("circle",{className:"st1",cx:245.4,cy:245.4,r:177.6}),Hm=a.createElement("polygon",{className:"st0",points:"165,315.5 165,349.9 226.5,349.9 226.5,387.6 264.3,387.6 264.3,349.9 325.8,349.9 325.8,304.4 230.4,304.4 325.8,175 325.8,140.6 264.3,140.6 264.3,103 226.5,103 226.5,140.6 165,140.6 165,186.2 260.4,186.2 "});function Vm(e,t){var n=e.title,r=e.titleId,l=Am(e,["title","titleId"]);return a.createElement("svg",zm({id:"Layer_1",x:"0px",y:"0px",viewBox:"0 0 493.3 490.2",style:{enableBackground:"new 0 0 493.3 490.2"},xmlSpace:"preserve",ref:t,"aria-labelledby":r},l),Mm,void 0===n?a.createElement("title",{id:r},"headerArtboard 7"):n?a.createElement("title",{id:r},n):null,qm,$m,Hm)}var Ym=a.forwardRef(Vm),Gm=(n.p,Object(m.a)({logo:{maxHeight:80,maxWidth:200},title:{margin:[[24,0,32,0]]},text:{margin:0},button:{marginTop:"auto",marginBottom:58},modalContent:{display:"flex",flexDirection:"column",alignItems:"center",padding:[[0,42]],flex:1}})),Zm=function(e){var t=e.code,n=e.name,a=e.onContinue,l=Gm(),i=function(e){switch(e){case"BTC":return pm;case"BCH":return Em;case"DASH":return km;case"ETH":return Bm;case"LTC":return Rm;case"ZEC":return Ym;default:return null}}(t);return r.a.createElement("div",{className:l.modalContent},r.a.createElement(i,{className:l.logo}),r.a.createElement(At,{className:l.title},"Enable ",n),r.a.createElement(Vt,{className:l.text},"You are about to enable ",n," on your system. This will allow you to use this cryptocurrency on your machines. To be able to do that, you\u2019ll have to set up all the necessary 3rd party services."),r.a.createElement(Ae,{className:l.button,onClick:a},"Start configuration"))},_m=n(528),Um=n(527),Jm=Object(m.a)({button:{margin:[["auto",0,32,"auto"]]},form:{flex:1,display:"flex",flexDirection:"column"},grid:{marginBottom:24,marginTop:12}}),Km=function(e){var t=e.validationSchema,n=e.elements,a=e.value,l=e.save,i=e.buttonLabel,o=void 0===i?"Save changes":i,c=e.buttonClass,s=e.xs,u=void 0===s?12:s,d=Jm(),m=mn.a(Um.a,jn.a((function(e){var t,n=e.code;return Object(I.a)({},n,null!==(t=a&&a[n])&&void 0!==t?t:"")})))(n),f=Ue.a(m,a);return r.a.createElement(on.d,{enableReinitialize:!0,initialValues:f,validationSchema:t,onSubmit:l},r.a.createElement(on.c,{className:d.form},r.a.createElement(_m.a,{container:!0,spacing:3,className:d.grid},n.map((function(e){var t=e.component,n=e.code,a=e.display,l=e.inputProps;return r.a.createElement(_m.a,{item:!0,xs:u,key:n},r.a.createElement(on.a,Object.assign({component:t},l,{name:n,label:a,fullWidth:!0})))}))),r.a.createElement(Ae,{className:N()(d.button,c),type:"submit"},o)))},Qm={title:{margin:[[0,0,12,0]]},subtitle:{margin:[[32,0,21,0]]},error:{color:X},button:{marginLeft:"auto"},submit:{display:"flex",flexDirection:"row",margin:[["auto",0,24]]},radioGroup:{flexDirection:"row"},radioLabel:{width:150,height:48},radio:{padding:4,margin:4},setupNew:{display:"flex",alignItems:"center",height:48},picker:{width:150}},Xm=Object(m.a)(Qm),ef={form:null,selected:null,isNew:!1,iError:!1},tf=function(e,t){switch(t.type){case"select":return{form:null,selected:t.selected,isNew:null,iError:!1};case"new":return{form:e.form,selected:null,isNew:!0,iError:!1};case"form":return{form:t.form,selected:t.form.code,isNew:!0,iError:!1};case"error":return Ue.a(e,{innerError:!0});case"reset":return ef;default:throw new Error}},nf=function(e){var t,n=e.type,l=e.name,i=e.step,c=e.error,s=e.lastStep,u=e.onContinue,d=e.filled,m=e.unfilled,f=e.getValue,p=Xm(),h=Object(a.useReducer)(tf,ef),b=Object(o.a)(h,2),g=b[0],v=g.innerError,y=g.selected,E=g.form,O=g.isNew,w=b[1];Object(a.useEffect)((function(){w({type:"reset"})}),[i]);var x=function(e,t){if(!e||!e[n])return w({type:"error"});u(e,t)},j=s?"Finish":"Next",C=null!==l&&void 0!==l?l:n,k=(t={},Object(I.a)(t,p.subtitle,!0),Object(I.a)(t,p.error,v),t);return r.a.createElement(r.a.Fragment,null,r.a.createElement(Gt,{className:p.title},Rl(n)),r.a.createElement(Go,{steps:4,currentStep:i}),r.a.createElement($t,{className:N()(k)},"Select a ",C," or set up a new one"),r.a.createElement(Hn,{options:d,value:y,className:p.radioGroup,onChange:function(e,t){w({type:"select",selected:t})},labelClassName:p.radioLabel,radioClassName:p.radio}),r.a.createElement("div",{className:p.setupNew},!Sn.a(m)&&!Cn.a(m)&&r.a.createElement(Hn,{value:O,onChange:function(e,t){w({type:"new"})},labelClassName:p.radioLabel,radioClassName:p.radio,options:[{display:"Set up new",code:!0}]}),O&&r.a.createElement(Wn,{fullWidth:!0,label:"Select ".concat(C),className:p.picker,getOptionSelected:In.a("code"),getLabel:Or.a(["display"]),options:m,onChange:function(e,t){w({type:"form",form:t})}})),E&&r.a.createElement(Km,{save:function(e){return x(Object(I.a)({},n,E.code),Object(I.a)({},E.code,e))},elements:cm[E.code].elements,validationSchema:cm[E.code].validationSchema,value:f(E.code),buttonLabel:j}),!E&&r.a.createElement("div",{className:p.submit},c&&r.a.createElement(co,null,"Failed to save"),r.a.createElement(Ae,{className:p.button,onClick:function(){return x(Object(I.a)({},n,y))}},j)))},af=function(e,t){return hr.a((function(n){return function(e){return wn.a("class",e)}(t)(n)&&function(e){return mn.a(gr.a(e),xn.a("cryptos"))}(e)(n)}))},rf=function(e,t,n,a){var r=af(a,n)(e),l=kl.a((function(e){var n=e.code,a=function(e){return t&&t[e]}(n);return!cm[n]||cm[n].validationSchema.isValidSync(a)}))(r),i=Object(o.a)(l,2);return{filled:i[0],unfilled:i[1]}},lf=function(e){var t=e.coin,n=e.onClose,l=e.accountsConfig,i=e.accounts,s=e.save,u=e.error,d=Object(a.useState)({step:0,config:{active:!0},accountsToSave:{}}),m=Object(o.a)(d,2),f=m[0],p=f.step,h=f.config,b=f.accountsToSave,g=m[1],v="Enable ".concat(t.display),y=4===p,E={filled:af(t.code,"ticker")(l)},O=rf(l,i,"wallet",t.code),w=rf(l,i,"exchange",t.code),x=rf(l,i,"zeroConf",t.code),j=function(){var e=Object(el.a)(Xr.a.mark((function e(n,a){var r,l;return Xr.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=Ue.a(h,n),l=a?Ue.a(b,a):b,!y){e.next=4;break}return e.abrupt("return",s(Kr(t.code,r),l));case 4:g({step:p+1,config:r,accountsToSave:l});case 5:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}();return r.a.createElement(po,{title:0===p?null:v,handleClose:n,width:554,open:!0},0===p&&r.a.createElement(Zm,{code:t.code,name:t.display,onContinue:function(){return j()}}),0!==p&&r.a.createElement(nf,Object.assign({step:p,error:u,lastStep:y},function(){switch(p){case 1:return Object(c.a)({type:"ticker"},E);case 2:return Object(c.a)({type:"wallet"},O);case 3:return Object(c.a)({type:"exchange"},w);case 4:return Object(c.a)({type:"zeroConf",name:"zero conf"},x);default:return null}}(),{onContinue:j,getValue:function(e){return On.a(wn.a("code",e))(i)}})))},of=function(e){return hr.a((function(t){return t.class===e}))},cf=function(e){var t=e.id;return hr.a((function(e){return gr.a(t)(e.cryptos)}))},sf=hn.d().shape({ticker:hn.e().required(),wallet:hn.e().required(),exchange:hn.e().required(),zeroConf:hn.e().required()}),uf=function(e,t,n){var a=arguments.length>3&&void 0!==arguments[3]&&arguments[3],r=a?11:0,l=function(t){return mn.a(xn.a(["display"]),On.a(wn.a("code",t)))(e)},i=function(e){return of(e)(t||[])},o=function(e){return function(t){return mn.a(xn.a("display"),On.a(wn.a("code",t)))(i(e))}},c=Fr.a((function(e,t){return cf(t)(i(e))}));return[{name:"id",header:"Cryptocurrency",width:180-r,view:l,size:"sm",editable:!1},{name:"ticker",size:"sm",stripe:!0,view:o("ticker"),width:190-r,input:_n,inputProps:{options:c("ticker"),valueProp:"code",getLabel:Or.a(["display"]),optionsLimit:null}},{name:"wallet",size:"sm",stripe:!0,view:o("wallet"),width:190-r,input:_n,inputProps:{options:c("wallet"),valueProp:"code",getLabel:Or.a(["display"]),optionsLimit:null,onChange:n}},{name:"exchange",size:"sm",stripe:!0,view:o("exchange"),width:190-r,input:_n,inputProps:{options:c("exchange"),valueProp:"code",getLabel:Or.a(["display"]),optionsLimit:null,onChange:n}},{name:"zeroConf",size:"sm",stripe:!0,view:o("zeroConf"),input:_n,width:190-r,inputProps:{options:c("zeroConf"),valueProp:"code",getLabel:Or.a(["display"]),optionsLimit:null,onChange:n}}]},df=n(529),mf=function(e,t,n){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[];return hr.a((function(e){return bc.a(e.name,t)}),ff(e,n,a))},ff=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],a=function(e,t,n){return function(a){return e?mn.a(xn.a(t),On.a(wn.a(null!==n&&void 0!==n?n:"code",a)))(e):""}},r=function(e){return function(t){return t?mn.a(hc.a(", "),jn.a(a(e,"code")))(t):t}},l=jn.a((function(e){return e.machine}),n),i=function(e){return df.a((function(e,t){return e.deviceId===t}),e,l)},o=e(["machines"]),c=e(["countries"]),s=e(["currencies"]),u=e(["languages"]),d=e(["cryptoCurrencies"]),m=function(e){var t=On.a(wn.a("deviceId",e.machine))(o);return t?[t]:[]};return[{name:"machine",width:200,size:"sm",view:a(o,"name","deviceId"),input:_n,inputProps:{options:function(e){return br.a(m(e))(i(o))},valueProp:"deviceId",getLabel:Or.a(["name"])}},{name:"country",width:200,size:"sm",view:a(c,"display"),input:_n,inputProps:{options:c,valueProp:"code",getLabel:Or.a(["display"])}},{name:"fiatCurrency",width:150,size:"sm",view:a(s,"code"),input:_n,inputProps:{options:s,valueProp:"code",getLabel:Or.a(["code"])}},{name:"languages",width:240,size:"sm",view:r(u),input:_n,inputProps:{options:u,valueProp:"code",getLabel:Or.a(["display"]),multiple:!0}},{name:"cryptoCurrencies",width:290,size:"sm",view:r(d),input:_n,inputProps:{options:d,valueProp:"code",getLabel:Or.a(["code"]),multiple:!0,optionsLimit:null,onChange:t}}]},pf=function(e,t){var n=Or.a(gc.a,e);return mf(n,["country","fiatCurrency","languages","cryptoCurrencies"],t)},hf=function(e,t,n){var a=Or.a(gc.a,e);return mf(a,["machine","country","languages","cryptoCurrencies"],n,t)},bf=hn.d().shape({country:hn.e().label("Country").required(),fiatCurrency:hn.e().label("Fiat Currency").required(),languages:hn.a().label("Languages").required().max(4),cryptoCurrencies:hn.a().label("Crypto Currencies").required()}),gf=hn.d().shape({machine:hn.e().label("Machine").required(),country:hn.e().label("Country").required(),languages:hn.a().label("Languages").required(),cryptoCurrencies:hn.a().label("Crypto Currencies").required()}),vf={country:"",fiatCurrency:"",languages:[],cryptoCurrencies:[]},yf={machine:"",country:"",languages:[],cryptoCurrencies:[]};function Ef(){var e=Object(tn.a)(["\n mutation Save($config: JSONObject) {\n saveConfig(config: $config)\n }\n"]);return Ef=function(){return e},e}function Of(){var e=Object(tn.a)(["\n query getData {\n config\n accounts\n accountsConfig {\n code\n display\n class\n cryptos\n }\n currencies {\n code\n display\n }\n countries {\n code\n display\n }\n cryptoCurrencies {\n code\n display\n }\n languages {\n code\n display\n }\n machines {\n name\n deviceId\n }\n }\n"]);return Of=function(){return e},e}var wf=Object(m.a)({rightAligned:{marginTop:"20px",marginLeft:"auto",marginBottom:"20px"},rightLink:{marginLeft:"20px"}}),xf=sn()(Of()),jf=sn()(Ef()),Cf=function(e){var t=e.open,n=e.close,a=e.save,l=wf();return r.a.createElement(po,{title:"Change fiat currency?",handleClose:n,width:450,height:310,open:t},r.a.createElement(Vt,null,"Please note that all values you set that were based on your prior fiat currency are still the same. If you need to adjust these to reflect the new fiat currency (such as minimum transaction amounts, fixed fees, and compliance triggers, for example), please do so now."),r.a.createElement(Vt,null,"Also, if you have cash-out enabled, you must define new dispenser bill counts for the new currency for cash-out on the new currency to work."),r.a.createElement("div",{className:l.rightAligned},r.a.createElement(ut,{onClick:n,color:"secondary"},"Cancel"),r.a.createElement(ut,{className:l.rightLink,onClick:a,color:"primary"},"Save")))},kf=function(e){var t,n,l,i,c,s,u=e.name,d=Object(a.useState)(!1),m=Object(o.a)(d,2),f=m[0],p=m[1],h=Object(a.useState)(null),b=Object(o.a)(h,2),g=b[0],v=b[1],y=Object(a.useState)(!1),E=Object(o.a)(y,2),O=E[0],w=E[1],x=Object(a.useState)(!1),j=Object(o.a)(x,2),C=j[0],k=j[1],S=Object(nn.c)(xf).data,N=Object(nn.b)(jf,{onCompleted:function(){return p(!1)},refetchQueries:function(){return["getData"]}}),I=Object(o.a)(N,2),L=I[0],B=I[1].error,P=Object(a.useState)(null),F=Object(o.a)(P,2),D=F[0],T=F[1],W=(null===S||void 0===S?void 0:S.config)&&Jr(u)(S.config),R=(null===S||void 0===S?void 0:S.config)&&Jr(Ar)(S.config),z=null===S||void 0===S?void 0:S.accountsConfig,A=null!==(t=null===S||void 0===S?void 0:S.accounts)&&void 0!==t?t:[],M=null!==(n=null===S||void 0===S?void 0:S.cryptoCurrencies)&&void 0!==n?n:[],q=W&&!Sn.a(W)?W:vf,$=null!==(l=q.overrides)&&void 0!==l?l:[],H=function(e){return T(null),L({variables:{config:e}})},V=function(e,t,n){var a=yc.a(t,e)[0];if(!a)return n(t);var r=Jr(a)(R);if(!sf.isValidSync(r))return v((function(){return function(){return n(t)}})),void p(a);n(t)};return r.a.createElement(r.a.Fragment,null,r.a.createElement(Cf,{open:D,close:function(){return T(null)},save:function(){return D&&H(D)}}),r.a.createElement(uo,{title:"Locales"}),r.a.createElement(pc,null,r.a.createElement(Ki,{title:"Default settings",error:null===B||void 0===B?void 0:B.message,titleLg:!0,name:"locale",enableEdit:!0,initialValues:q,save:function(e){var t=Kr(u)(e.locale[0]);return W.fiatCurrency&&t.locale_fiatCurrency!==W.fiatCurrency?T(t):H(t)},validationSchema:bf,data:uc.a(q),elements:pf(S,V),setEditing:function(e,t){return w(t)},forceDisable:C})),r.a.createElement(pc,null,r.a.createElement(Ki,{error:null===B||void 0===B?void 0:B.message,title:"Overrides",titleLg:!0,name:"overrides",enableDelete:!0,enableEdit:!0,enableCreate:!0,initialValues:yf,save:function(e){var t=Kr(u)(e);return L({variables:{config:t}})},validationSchema:gf,data:null!==$&&void 0!==$?$:[],elements:hf(S,$,V),disableAdd:mn.a(Sn.a,yc.a)(null!==(i=null===S||void 0===S?void 0:S.machines.map((function(e){return e.deviceId})))&&void 0!==i?i:[],null!==(c=null===$||void 0===$?void 0:$.map((function(e){return e.machine})))&&void 0!==c?c:[]),setEditing:function(e,t){return k(t)},forceDisable:O})),f&&r.a.createElement(lf,{coin:On.a(wn.a("code",f))(M),onClose:function(){return p(!1)},save:function(e){return H(Kr(Ar)(e)).then((function(e){return g(),v(null),e}))},error:null===B||void 0===B?void 0:B.message,cryptoCurrencies:M,userAccounts:null===S||void 0===S||null===(s=S.config)||void 0===s?void 0:s.accounts,accounts:A,accountsConfig:z}))},Sf=n(335),Nf=n.n(Sf);function If(){return(If=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var Bf=a.createElement("desc",null,"Created with Sketch."),Pf=a.createElement("g",{id:"Symbols",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},a.createElement("g",{id:"pop-up/action/download-logs/date-range-copy-3",transform:"translate(-117.000000, -116.000000)",stroke:"#1B2559",strokeWidth:2},a.createElement("g",{id:"arrow-download-logs",transform:"translate(128.500000, 124.500000) rotate(-90.000000) translate(-128.500000, -124.500000) translate(121.000000, 114.000000)"},a.createElement("polyline",{id:"Path-3",points:"0 13.3571429 7.14285714 20.5 14.2857143 13.3571429"}),a.createElement("line",{x1:7.14285714,y1:.142857143,x2:7.14285714,y2:20.1428571,id:"Path-4"}))));function Ff(e,t){var n=e.title,r=e.titleId,l=Lf(e,["title","titleId"]);return a.createElement("svg",If({width:"23px",height:"17px",viewBox:"0 0 23 17",ref:t,"aria-labelledby":r},l),void 0===n?a.createElement("title",{id:r},"arrow download logs"):n?a.createElement("title",{id:r},n):null,Bf,Pf)}var Df=a.forwardRef(Ff);n.p;function Tf(){return(Tf=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var Rf=a.createElement("desc",null,"Created with Sketch."),zf=a.createElement("g",{id:"icon/button/download/white",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},a.createElement("g",{id:"icon/sf-small/wizzard",stroke:"#FFFFFF"},a.createElement("polyline",{id:"Path-3",points:"3.6 5.4 6 7.8 8.4 5.4"}),a.createElement("line",{x1:6,y1:.5,x2:6,y2:7.4,id:"Path-4"}),a.createElement("path",{d:"M0,10 L0,10 C0,10.9942 0.8058,11.8 1.8,11.8 L10.2,11.8 C11.1942,11.8 12,10.9942 12,10",id:"Stroke-1"})));function Af(e,t){var n=e.title,r=e.titleId,l=Wf(e,["title","titleId"]);return a.createElement("svg",Tf({width:"12px",height:"12px",viewBox:"0 0 12 12",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,Rf,zf)}var Mf=a.forwardRef(Af);n.p;function qf(){return(qf=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var Hf=a.createElement("desc",null,"Created with Sketch."),Vf=a.createElement("g",{id:"icon/button/download/zodiac",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},a.createElement("g",{id:"icon/sf-small/wizzard",stroke:"#1B2559"},a.createElement("polyline",{id:"Path-3",points:"3.6 5.4 6 7.8 8.4 5.4"}),a.createElement("line",{x1:6,y1:.5,x2:6,y2:7.4,id:"Path-4"}),a.createElement("path",{d:"M0,10 L0,10 C0,10.9942 0.8058,11.8 1.8,11.8 L10.2,11.8 C11.1942,11.8 12,10.9942 12,10",id:"Stroke-1"})));function Yf(e,t){var n=e.title,r=e.titleId,l=$f(e,["title","titleId"]);return a.createElement("svg",qf({width:"12px",height:"12px",viewBox:"0 0 12 12",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,Hf,Vf)}var Gf=a.forwardRef(Yf);n.p;function Zf(){return(Zf=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var Uf=a.createElement("desc",null,"Created with Sketch."),Jf=a.createElement("g",{id:"Symbols",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd"},a.createElement("g",{id:"pop-up/action/download-logs/date-range-copy-2",transform:"translate(-20.000000, -187.000000)"},a.createElement("g",{id:"icon/sf-contain-b-copy-5",transform:"translate(30.000000, 197.000000) rotate(-270.000000) translate(-30.000000, -197.000000) translate(20.000000, 187.000000)"},a.createElement("g",{id:"icon/sf-small/wizzard",strokeLinecap:"round",strokeLinejoin:"round"},a.createElement("g",{transform:"translate(6.666667, 6.000000)",id:"Group"},a.createElement("g",null,a.createElement("polyline",{id:"Path-3",stroke:"#1B2559",strokeWidth:2,points:"0 4.83333333 3.33333333 8.16666667 6.66666667 4.83333333"}),a.createElement("line",{x1:3.33333333,y1:.25,x2:3.33333333,y2:6.5,id:"Path-4",stroke:"#1B2559",strokeWidth:2})))))));function Kf(e,t){var n=e.title,r=e.titleId,l=_f(e,["title","titleId"]);return a.createElement("svg",Zf({width:"20px",height:"20px",viewBox:"0 0 20 20",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,Uf,Jf)}var Qf=a.forwardRef(Kf);n.p;function Xf(){return(Xf=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var tp=a.createElement("desc",null,"Created with Sketch."),np=a.createElement("g",{id:"Symbols",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd"},a.createElement("g",{id:"pop-up/action/download-logs/date-range-copy-2",transform:"translate(-20.000000, -187.000000)"},a.createElement("g",{id:"icon/sf-contain-b-copy-5",transform:"translate(30.000000, 197.000000) rotate(270.000000) translate(-30.000000, -197.000000) translate(20.000000, 187.000000)"},a.createElement("g",{id:"icon/sf-small/wizzard",strokeLinecap:"round",strokeLinejoin:"round"},a.createElement("g",{transform:"translate(6.666667, 6.000000)",id:"Group"},a.createElement("g",null,a.createElement("polyline",{id:"Path-3",stroke:"#1B2559",strokeWidth:2,points:"0 4.83333333 3.33333333 8.16666667 6.66666667 4.83333333"}),a.createElement("line",{x1:3.33333333,y1:.25,x2:3.33333333,y2:6.5,id:"Path-4",stroke:"#1B2559",strokeWidth:2})))))));function ap(e,t){var n=e.title,r=e.titleId,l=ep(e,["title","titleId"]);return a.createElement("svg",Xf({width:"20px",height:"20px",viewBox:"0 0 20 20",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,tp,np)}var rp=a.forwardRef(ap),lp=(n.p,{wrapper:{height:26,display:"flex",alignItems:"center",justifyContent:"center",position:"relative",overflow:"hidden"},button:{outline:"none",extend:Ee.label1,border:"none",cursor:"pointer",backgroundColor:"transparent",color:M,zIndex:2},lowerBound:{left:"50%"},upperBound:{right:"50%"},selected:{width:26,height:26,display:"flex",alignItems:"center",justifyContent:"center",backgroundColor:P,borderRadius:"50%",position:"absolute",zIndex:1},between:{position:"absolute",width:"100%",height:"100%",zIndex:0,backgroundColor:F},disabled:{color:Z,cursor:"default"}}),ip=Object(m.a)(lp),op=function(e){var t,n,a,l=e.isLowerBound,i=e.isUpperBound,o=e.isBetween,c=e.isDisabled,s=e.children,u=(Object(L.a)(e,["isLowerBound","isUpperBound","isBetween","isDisabled","children"]),ip()),d=l||i,m=(t={},Object(I.a)(t,u.between,o&&!(l&&i)),Object(I.a)(t,u.lowerBound,l&&!i),Object(I.a)(t,u.upperBound,i&&!l),t),f=(n={},Object(I.a)(n,u.wrapper,!0),Object(I.a)(n,u.selected,d),n),p=(a={},Object(I.a)(a,u.button,!0),Object(I.a)(a,u.disabled,c),a);return r.a.createElement("div",{className:u.wrapper},r.a.createElement("div",{className:N()(m)}),r.a.createElement("div",{className:N()(f)},r.a.createElement("button",{className:N()(p)},s)))},cp={wrapper:{display:"flex",flexDirection:"column",alignItems:"center"},button:{outline:"none"},navbar:{extend:Ee.p,display:"flex",justifyContent:"space-between",alignItems:"center",width:"100%",padding:[[15,15]],color:M,"& button":{display:"flex",alignItems:"center",padding:0,border:"none",backgroundColor:T,cursor:"pointer",borderRadius:"50%",width:20,height:20,position:"relative",overflow:"hidden","& svg":{position:"absolute",left:0}}},table:{borderCollapse:"collapse",width:"100%",color:M,"& tr":{"&:first-child":{paddingLeft:5},"&:last-child":{paddingRight:5}},"& th, & td":{margin:0,padding:[[3,0,3,0]]},"& th":{extend:Ee.label2}}},sp=Object(m.a)(cp),up=function(e){var t=e.minDate,n=e.maxDate,l=e.handleSelect,i=Object(L.a)(e,["minDate","maxDate","handleSelect"]),c=Object(a.useState)(Mu()()),s=Object(o.a)(c,2),u=s[0],d=s[1],m=sp(),f=Mu.a.weekdaysMin().map((function(e){return e.slice(0,1)})),p=function(e){var t=Mu()(e).subtract(1,"month"),n=Co.a(0,Mu()(e).startOf("month").weekday()).reverse(),a=jn.a((function(e){return Mu()(t).endOf("month").subtract(e,"days")}))(n),r=Co.a(0,function(e){return Number.parseInt(Mu()(e).endOf("month").format("D"))}(e)),l=jn.a((function(t){return Mu()(e).startOf("month").add(t,"days")}))(r),i=Mu()(e).add(1,"month"),o=Co.a(0,42-a.length-l.length),c=jn.a((function(e){return Mu()(i).startOf("month").add(e,"days")}))(o);return br.a(br.a(a,l),c)};return r.a.createElement("div",{className:m.wrapper},r.a.createElement("div",{className:m.navbar},r.a.createElement("button",{className:m.button,onClick:function(){return function(e){var n=Mu()(e).subtract(1,"month");d(t?n.isSameOrAfter(t,"month")?n:u:n)}(u)}},r.a.createElement(Qf,null)),r.a.createElement("span",null,"".concat(u.format("MMMM")," ").concat(u.format("YYYY"))),r.a.createElement("button",{className:m.button,onClick:function(){return function(e){var t=Mu()(e).add(1,"month");d(n?t.isSameOrBefore(n,"month")?t:u:t)}(u)}},r.a.createElement(rp,null))),r.a.createElement("table",{className:m.table},r.a.createElement("thead",null,r.a.createElement("tr",null,f.map((function(e,t){return r.a.createElement("th",{key:t},e)})))),r.a.createElement("tbody",null,Co.a(1,8).map((function(e,a){return r.a.createElement("tr",{key:a},function(e,t){return p(e).slice(7*t-7,7*t)}(u,e).map((function(e,a){return r.a.createElement("td",{key:a,onClick:function(){return l(e,t,n)}},r.a.createElement(op,{isDisabled:n&&e.isAfter(n,"day")||t&&e.isBefore(t,"day"),isLowerBound:e.isSame(i.from,"day"),isUpperBound:e.isSame(i.to,"day"),isBetween:e.isBetween(i.from,i.to,"day",[])},e.format("D")))})))})))))},dp=Object(m.a)({wrapper:{backgroundColor:"white",borderRadius:10}}),mp=function(e){var t=e.minDate,n=e.maxDate,l=e.className,i=e.onRangeChange,c=Object(a.useState)(null),s=Object(o.a)(c,2),u=s[0],d=s[1],m=Object(a.useState)(null),f=Object(o.a)(m,2),p=f[0],h=f[1];Object(a.useEffect)((function(){i(u,p)}),[u,i,p]);var b=dp();return r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:N()(b.wrapper,l)},r.a.createElement(up,{from:u,to:p,minDate:t,maxDate:n,handleSelect:function(e,t,n){if(!(n&&e.isAfter(n,"day")||t&&e.isBefore(t,"day")))return u&&!p&&e.isBefore(u,"day")?(h(u),void d(e)):void(u&&!p&&e.isSameOrAfter(u,"day")?h(e):(d(e),h(null)))}})))},fp=Ee.label1,pp=Ee.h4,hp={wrapper:{height:46,width:99},container:{display:"flex"},monthWeekDayContainer:{display:"flex",flexDirection:"column"},label:{extend:fp,lineHeight:1.33,color:M},bigNumber:{extend:Ee.info1,lineHeight:1,marginRight:7},monthYear:{extend:Ee.label2,lineHeight:1.17,color:M},weekDay:{extend:fp,lineHeight:1.33,color:J}},bp=Object(m.a)(hp),gp=function(e){var t=e.date,n=e.children,a=(Object(L.a)(e,["date","children"]),bp());return r.a.createElement("div",{className:a.wrapper},r.a.createElement("div",{className:a.label},n),t&&r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:a.container},r.a.createElement("div",{className:a.bigNumber},t.format("D")),r.a.createElement("div",{className:a.monthWeekDayContainer},r.a.createElement("span",{className:a.monthYear},"".concat(t.format("MMM")," ").concat(t.format("YYYY"))),r.a.createElement("span",{className:a.weekDay},t.format("dddd"))))))},vp={popoverContent:{width:280},popoverHeader:{extend:pp,padding:[[15,15,0,15]]},radioButtonsContainer:{padding:[[5,15,5,15]]},radioButtons:{display:"flex",justifyContent:"space-between",flexDirection:"row",color:M},dateRangePickerShowing:{display:"block",height:"100%"},dateRangePickerHidden:{display:"none",height:0},download:{padding:[[10,15]]},dateContainerWrapper:{display:"flex",justifyContent:"space-between",alignItems:"center",position:"relative",backgroundColor:T,padding:[[0,15]],minHeight:70},arrowContainer:{position:"absolute",left:125,top:26},arrow:{margin:"auto"}},yp=Object(m.a)(vp),Ep="all",Op="range",wp=function(e){var t,n=e.name,l=e.query,i=e.args,s=e.title,u=e.getLogs,d=Object(a.useState)(Ep),m=Object(o.a)(d,2),f=m[0],p=m[1],h=Object(a.useState)({from:null,until:null}),b=Object(o.a)(h,2),g=b[0],v=b[1],y=Object(a.useState)(null),E=Object(o.a)(y,2),O=E[0],w=E[1],x=Object(nn.a)(l,{onCompleted:function(e){return L(u(e),g)}}),j=Object(o.a)(x,1)[0],C=yp(),k=(t={},Object(I.a)(t,C.dateRangePickerShowing,f===Op),Object(I.a)(t,C.dateRangePickerHidden,f===Ep),t),S=Object(a.useCallback)((function(e,t){v({from:e,until:t})}),[v]),L=function(e,t){var a=function(e){return Mu()(e).format("YYYY-MM-DD_HH-mm")},r=new window.Blob([e],{type:"text/plain;charset=utf-8"});Nf.a.saveAs(r,f===Ep?"".concat(a(new Date),"_").concat(n):"".concat(a(t.from),"_").concat(a(t.until),"_").concat(n))},B=[{display:"All logs",code:Ep},{display:"Date range",code:Op}],P=Boolean(O),F=P?"date-range-popover":void 0;return r.a.createElement(xr.a,{onClickAway:function(){w(null)}},r.a.createElement("div",null,r.a.createElement(Ge,{Icon:Gf,InverseIcon:Mf,onClick:function(e){w(O?null:e.currentTarget)},variant:"contained"}),r.a.createElement(Je,{id:F,open:P,anchorEl:O,placement:"bottom"},r.a.createElement("div",{className:C.popoverContent},r.a.createElement("div",{className:C.popoverHeader},s),r.a.createElement("div",{className:C.radioButtonsContainer},r.a.createElement(Hn,{name:"logs-select",value:f,options:B,ariaLabel:"logs-select",onChange:function(e){var t=Or.a(["target","value"])(e);p(t),t===Ep&&v({from:null,until:null})},className:C.radioButtons})),f===Op&&r.a.createElement("div",{className:N()(k)},r.a.createElement("div",{className:C.dateContainerWrapper},g&&r.a.createElement(r.a.Fragment,null,r.a.createElement(gp,{date:g.from},"From"),r.a.createElement("div",{className:C.arrowContainer},r.a.createElement(Df,{className:C.arrow})),r.a.createElement(gp,{date:g.until},"To"))),r.a.createElement(mp,{maxDate:Mu()(),onRangeChange:S})),r.a.createElement("div",{className:C.download},r.a.createElement(ut,{color:"primary",onClick:function(){return function(e,t,n){f===Ep&&n({variables:Object(c.a)({},t)}),e&&e.from&&(e.from&&!e.until&&(e.until=Mu()()),f===Op&&n({variables:Object(c.a)(Object(c.a)({},t),{},{from:e.from,until:e.until})}))}(g,i,j)}},"Download"))))))},xp=Object(m.a)({table:{tableLayout:"fixed",borderCollapse:"separate",borderSpacing:"0 0"}}),jp=Object(a.memo)((function(e){var t=e.className,n=e.children,a=Object(L.a)(e,["className","children"]),l=xp();return r.a.createElement("table",Object.assign({},a,{className:N()(l.table,t)}),n)})),Cp=Object(a.memo)((function(e){var t=e.children,n=Object(L.a)(e,["children"]);return r.a.createElement("tbody",n,t)})),kp=Object(m.a)({td:{padding:[[0,24]]},alignRight:{textAlign:"right"}}),Sp=Object(a.memo)((function(e){var t,n=e.colspan,a=e.rightAlign,l=e.className,i=e.children,o=Object(L.a)(e,["colspan","rightAlign","className","children"]),c=kp(),s=(t={},Object(I.a)(t,c.td,!0),Object(I.a)(t,c.alignRight,a),t);return r.a.createElement("td",Object.assign({colSpan:n,className:N()(s,l)},o),i)})),Np=Object(a.memo)((function(e){var t=e.children,n=Object(L.a)(e,["children"]);return r.a.createElement("thead",n,t)})),Ip=Ee.tl2,Lp=Object(m.a)({th:{extend:Ip,backgroundColor:ge,height:pe,textAlign:"left",color:R,padding:"0 ".concat(24,"px")},alignRight:{textAlign:"right"}}),Bp=Object(a.memo)((function(e){var t,n=e.rightAlign,a=e.children,l=e.className,i=Object(L.a)(e,["rightAlign","children","className"]),o=Lp(),c=(t={},Object(I.a)(t,o.th,!0),Object(I.a)(t,o.alignRight,n),t);return r.a.createElement("th",Object.assign({},i,{className:N()(c,l)}),a)})),Pp=Ee.info2,Fp=Ee.p,Dp=Object(m.a)({tr:{extend:Fp,padding:4,height:he,backgroundColor:"#ffffff"},lg:{extend:Pp,height:76},sm:{height:30},error:{backgroundColor:ve},success:{backgroundColor:"#ecfbef"}}),Tp=Object(a.memo)((function(e){var t,n=e.className,a=e.children,l=e.header,i=e.error,o=e.success,c=e.size,s=void 0===c?"sm":c,u=Object(L.a)(e,["className","children","header","error","success","size"]),d=Dp(),m=(t={},Object(I.a)(t,d.tr,!l),Object(I.a)(t,d.sm,!l&&"sm"===s),Object(I.a)(t,d.lg,!l&&"lg"===s),Object(I.a)(t,d.error,i),Object(I.a)(t,d.success,o),t);return r.a.createElement("tr",Object.assign({className:N()(m,n)},u),a)}));function Wp(){var e=Object(tn.a)(["\n query MachineLogs($deviceId: ID!, $limit: Int, $from: Date, $until: Date) {\n machineLogs(\n deviceId: $deviceId\n limit: $limit\n from: $from\n until: $until\n ) {\n logLevel\n id\n timestamp\n message\n }\n }\n"]);return Wp=function(){return e},e}function Rp(){var e=Object(tn.a)(["\n query MachineLogs($deviceId: ID!, $limit: Int, $from: Date, $until: Date) {\n machineLogsCsv(\n deviceId: $deviceId\n limit: $limit\n from: $from\n until: $until\n )\n }\n"]);return Rp=function(){return e},e}function zp(){var e=Object(tn.a)(["\n {\n machines {\n name\n deviceId\n }\n }\n"]);return zp=function(){return e},e}var Ap=Object(m.a)(Iu),Mp=sn()(zp()),qp=sn()(Rp()),$p=sn()(Wp()),Hp=function(){var e,t=Ap(),n=Object(a.useState)(null),l=Object(o.a)(n,2),i=l[0],c=l[1],s=Object(a.useState)(null),u=Object(o.a)(s,2),d=u[0],m=u[1],f=null===i||void 0===i?void 0:i.deviceId,p=Object(nn.c)(Mp).data,h=Object(nn.c)($p,{variables:{deviceId:f,limit:500},skip:!i,onCompleted:function(){return m("")}}).data;(null===p||void 0===p||null===(e=p.machines)||void 0===e?void 0:e.length)&&!i&&c(null===p||void 0===p?void 0:p.machines[0]);return r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:t.titleWrapper},r.a.createElement("div",{className:t.titleAndButtonsContainer},r.a.createElement(gn,null,"Machine Logs"),h&&r.a.createElement("div",{className:t.buttonsWrapper},r.a.createElement(wp,{title:"Download logs",name:"machine-logs",query:qp,args:{deviceId:f},getLogs:function(e){return Or.a(["machineLogsCsv"])(e)}}),r.a.createElement(Zt,null,d)))),r.a.createElement("div",{className:t.wrapper},r.a.createElement(xa,{displayName:function(e){return e.name},data:(null===p||void 0===p?void 0:p.machines)||[],isSelected:function(e){return Or.a(["deviceId"])(i)===e.deviceId},onClick:c}),r.a.createElement("div",{className:t.tableWrapper},r.a.createElement(jp,{className:t.table},r.a.createElement(Np,null,r.a.createElement(Tp,{header:!0},r.a.createElement(Bp,{className:t.dateColumn},"Date"),r.a.createElement(Bp,{className:t.levelColumn},"Level"),r.a.createElement(Bp,{className:t.fillColumn}))),r.a.createElement(Cp,null,h&&h.machineLogs.map((function(e,t){return r.a.createElement(Tp,{key:t,size:"sm"},r.a.createElement(Sp,null,(n=e.timestamp,Mu()(n).format("YYYY-MM-DD HH:mm"))),r.a.createElement(Sp,null,e.logLevel),r.a.createElement(Sp,null,e.message));var n})))))))};function Vp(){var e=Object(tn.a)(["\n mutation MachineAction(\n $deviceId: ID!\n $action: MachineAction!\n $cassette1: Int!\n $cassette2: Int!\n ) {\n machineAction(\n deviceId: $deviceId\n action: $action\n cassette1: $cassette1\n cassette2: $cassette2\n ) {\n deviceId\n cassette1\n cassette2\n }\n }\n"]);return Vp=function(){return e},e}function Yp(){var e=Object(tn.a)(["\n query getData {\n machines {\n name\n id: deviceId\n cassette1\n cassette2\n }\n config\n }\n"]);return Yp=function(){return e},e}var Gp=Object(m.a)({cashbox:{width:80,height:36}}),Zp=hn.d().shape({name:hn.e().required(),cassette1:hn.c().label("Cassette 1 (top)").required().integer().min(0).max(500),cassette2:hn.c().label("Cassette 2 (bottom)").required().integer().min(0).max(500)}),_p=sn()(Yp()),Up=sn()(Vp()),Jp=function(){var e=Gp(),t=Object(nn.c)(_p).data,n=Object(nn.b)(Up,{refetchQueries:function(){return["getData"]}}),a=Object(o.a)(n,2),l=a[0],i=a[1].error,c=(null===t||void 0===t?void 0:t.config)&&Jr("cashOut")(t.config),s=(null===t||void 0===t?void 0:t.config)&&Jr("locale")(t.config),u=null===s||void 0===s?void 0:s.fiatCurrency,d=function(e){return Jr(e)(c)},m=function(e){var t=e.id;return!d(t).active},f=[{name:"name",header:"Machine",width:254,view:function(e){return r.a.createElement(r.a.Fragment,null,e)},input:function(e){var t=e.field.value;return r.a.createElement(r.a.Fragment,null,t)}},{name:"cassette1",header:"Cassette 1 (Top)",width:265,stripe:!0,view:function(t,n){var a,l=n.id;return r.a.createElement(mi,{className:e.cashbox,denomination:null===(a=d(l))||void 0===a?void 0:a.top,currency:{code:u},notes:t})},input:Un,inputProps:{decimalPlaces:0}},{name:"cassette2",header:"Cassette 2 (Bottom)",width:265,stripe:!0,view:function(t,n){var a,l=n.id;return r.a.createElement(mi,{className:e.cashbox,denomination:null===(a=d(l))||void 0===a?void 0:a.bottom,currency:{code:u},notes:t})},input:Un,inputProps:{decimalPlaces:0}}];return r.a.createElement(r.a.Fragment,null,r.a.createElement(uo,{title:"Cash Cassettes"}),r.a.createElement(Ki,{error:null===i||void 0===i?void 0:i.message,name:"cashboxes",enableEdit:!0,stripeWhen:m,disableRowEdit:m,elements:f,data:t&&t.machines,save:function(){for(var e=arguments.length,t=new Array(e),n=0;n=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var Xp=a.createElement("rect",{width:12,height:12,rx:3,ry:3,fill:"#ff7311"});function eh(e,t){var n=e.title,r=e.titleId,l=Qp(e,["title","titleId"]);return a.createElement("svg",Kp({width:12,height:12,viewBox:"0 0 12 12",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,Xp)}var th=a.forwardRef(eh);n.p;function nh(){return(nh=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var rh=a.createElement("rect",{width:12,height:12,rx:3,ry:3,fill:"#ff584a"});function lh(e,t){var n=e.title,r=e.titleId,l=ah(e,["title","titleId"]);return a.createElement("svg",nh({width:12,height:12,viewBox:"0 0 12 12",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,rh)}var ih=a.forwardRef(lh),oh=(n.p,n(532)),ch=n(531),sh=Object(m.a)({dialogContent:{width:434,padding:16,paddingRight:28},dialogTitle:{padding:16,paddingRight:12,display:"flex","justify-content":"space-between","& > h4":{margin:0},"& > button":{padding:0,marginTop:-4}},dialogActions:{padding:32,paddingTop:16}}),uh=function(e){var t=e.children,n=e.onClose,a=sh();return r.a.createElement("div",{className:a.dialogTitle},t,n&&r.a.createElement(lt,{size:16,"aria-label":"close",onClick:n},r.a.createElement(Ba,null)))},dh=Object(a.memo)((function(e){var t=e.title,n=void 0===t?"Confirm action":t,l=e.errorMessage,i=void 0===l?"This action requires confirmation":l,c=e.open,s=e.toBeConfirmed,u=e.saveButtonAlwaysEnabled,d=void 0!==u&&u,m=e.message,f=e.confirmationMessage,p=void 0===f?"Write '".concat(s,"' to confirm this action"):f,h=e.onConfirmed,b=e.onDissmised,g=e.initialValue,v=void 0===g?"":g,y=Object(L.a)(e,["title","errorMessage","open","toBeConfirmed","saveButtonAlwaysEnabled","message","confirmationMessage","onConfirmed","onDissmised","initialValue"]),E=sh(),O=Object(a.useState)(v),w=Object(o.a)(O,2),x=w[0],j=w[1],C=Object(a.useState)(!1),k=Object(o.a)(C,2),S=k[0],N=k[1],I=!d&&s!==x||""===x;return r.a.createElement(an.a,Object.assign({open:c,"aria-labelledby":"form-dialog-title"},y),r.a.createElement(uh,{id:"customized-dialog-title",onClose:function(){j(""),N(!1),b()}},r.a.createElement($t,null,n)),i&&r.a.createElement(uh,null,r.a.createElement(co,null,i.split(":").map((function(e){return r.a.createElement(r.a.Fragment,null,e,r.a.createElement("br",null))})))),r.a.createElement(rn.a,{className:E.dialogContent},m&&r.a.createElement(Vt,null,m),r.a.createElement(Tn,{label:p,name:"confirm-input",autoFocus:!0,id:"confirm-input",type:"text",size:"sm",fullWidth:!0,value:x,touched:{},error:S,InputLabelProps:{shrink:!0},onChange:function(e){return j(e.target.value)},onBlur:function(){return N(I)}})),r.a.createElement(ch.a,{className:E.dialogActions},r.a.createElement(Ae,{color:"green",disabled:I,onClick:function(){return h(x)}},"Confirm")))}));function mh(){return(mh=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var ph=a.createElement("desc",null,"Created with Sketch."),hh=a.createElement("g",{id:"icon/button/edit/white",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},a.createElement("path",{d:"M0,10 L0,10 C0,10.9942 0.8058,11.8 1.8,11.8 L10.2,11.8 C11.1942,11.8 12,10.9942 12,10",id:"Stroke-1",stroke:"#FFFFFF"}),a.createElement("polygon",{id:"Stroke-3",stroke:"#FFFFFF",points:"3 6.86666667 8.86666667 1 11 3.13333333 5.13333333 9 3 9"}));function bh(e,t){var n=e.title,r=e.titleId,l=fh(e,["title","titleId"]);return a.createElement("svg",mh({width:"12px",height:"12px",viewBox:"0 0 12 12",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,ph,hh)}var gh=a.forwardRef(bh);n.p;function vh(){return(vh=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var Eh=a.createElement("desc",null,"Created with Sketch."),Oh=a.createElement("g",{id:"icon/button/edit/zodiac",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},a.createElement("path",{d:"M0,10 L0,10 C0,10.9942 0.8058,11.8 1.8,11.8 L10.2,11.8 C11.1942,11.8 12,10.9942 12,10",id:"Stroke-1",stroke:"#1B2559"}),a.createElement("polygon",{id:"Stroke-3",stroke:"#1B2559",points:"3 6.86666667 8.86666667 1 11 3.13333333 5.13333333 9 3 9"}));function wh(e,t){var n=e.title,r=e.titleId,l=yh(e,["title","titleId"]);return a.createElement("svg",vh({width:"12px",height:"12px",viewBox:"0 0 12 12",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,Eh,Oh)}var xh=a.forwardRef(wh);n.p;function jh(){return(jh=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var kh=a.createElement("desc",null,"Created with Sketch."),Sh=a.createElement("g",{id:"icon/button/link/zodiac",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},a.createElement("g",{id:"Group-7",stroke:"#1B2559",strokeWidth:1.2},a.createElement("polyline",{id:"Stroke-1",points:"12 6.66678 12 12.00018 0 12.00018 0 0.00018 5.3334 0.00018"}),a.createElement("polyline",{id:"Stroke-3",points:"8.66658 0 12.00018 0 12.00018 3.3336"}),a.createElement("line",{x1:6,y1:6,x2:12,y2:0,id:"Stroke-5"})));function Nh(e,t){var n=e.title,r=e.titleId,l=Ch(e,["title","titleId"]);return a.createElement("svg",jh({width:"12px",height:"12px",viewBox:"0 0 12 12",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,kh,Sh)}var Ih=a.forwardRef(Nh);n.p;function Lh(){return(Lh=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var Ph=a.createElement("desc",null,"Created with Sketch."),Fh=a.createElement("g",{id:"icon/button/reboot/white",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},a.createElement("g",{id:"Group-3",stroke:"#FFFFFF"},a.createElement("g",{id:"Group-2"},a.createElement("path",{d:"M3.57419317,11.1560104 C2.91506589,10.8661403 2.29620875,10.4522182 1.75493083,9.91362078 C-0.568892549,7.60089351 -0.587250991,3.86936104 1.71406849,1.57845195 C2.03057585,1.26367293 2.37407977,0.992496226 2.73740775,0.764921841",id:"Stroke-1"}),a.createElement("polyline",{id:"Stroke-3",points:"3.37563213 1.84831169 3.36911784 0.595324675 2.18174122 4.15223411e-14"})),a.createElement("line",{x1:5.92223784,y1:7.57277922,x2:5.92223784,y2:3.98212987,id:"Stroke-9"}),a.createElement("g",{id:"Group-2",transform:"translate(9.818105, 6.000000) scale(-1, -1) translate(-9.818105, -6.000000) translate(7.636287, 0.000000)"},a.createElement("path",{d:"M3.57419317,11.1560104 C2.91506589,10.8661403 2.29620875,10.4522182 1.75493083,9.91362078 C-0.568892549,7.60089351 -0.587250991,3.86936104 1.71406849,1.57845195 C2.03057585,1.26367293 2.37407977,0.992496226 2.73740775,0.764921841",id:"Stroke-1"}),a.createElement("polyline",{id:"Stroke-3",points:"3.37563213 1.84831169 3.36911784 0.595324675 2.18174122 4.15223411e-14"}))));function Dh(e,t){var n=e.title,r=e.titleId,l=Bh(e,["title","titleId"]);return a.createElement("svg",Lh({width:"12px",height:"12px",viewBox:"-0.493 -0.5 12.993 13",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,Ph,Fh)}var Th=a.forwardRef(Dh);n.p;function Wh(){return(Wh=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var zh=a.createElement("desc",null,"Created with Sketch."),Ah=a.createElement("g",{id:"icon/button/reboot/zodiac",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},a.createElement("g",{id:"Group-3",stroke:"#1B2559"},a.createElement("g",{id:"Group-2"},a.createElement("path",{d:"M3.57419317,11.1560104 C2.91506589,10.8661403 2.29620875,10.4522182 1.75493083,9.91362078 C-0.568892549,7.60089351 -0.587250991,3.86936104 1.71406849,1.57845195 C2.03057585,1.26367293 2.37407977,0.992496226 2.73740775,0.764921841",id:"Stroke-1"}),a.createElement("polyline",{id:"Stroke-3",points:"3.37563213 1.84831169 3.36911784 0.595324675 2.18174122 4.15223411e-14"})),a.createElement("line",{x1:5.92223784,y1:7.57277922,x2:5.92223784,y2:3.98212987,id:"Stroke-9"}),a.createElement("g",{id:"Group-2",transform:"translate(9.818105, 6.000000) scale(-1, -1) translate(-9.818105, -6.000000) translate(7.636287, 0.000000)"},a.createElement("path",{d:"M3.57419317,11.1560104 C2.91506589,10.8661403 2.29620875,10.4522182 1.75493083,9.91362078 C-0.568892549,7.60089351 -0.587250991,3.86936104 1.71406849,1.57845195 C2.03057585,1.26367293 2.37407977,0.992496226 2.73740775,0.764921841",id:"Stroke-1"}),a.createElement("polyline",{id:"Stroke-3",points:"3.37563213 1.84831169 3.36911784 0.595324675 2.18174122 4.15223411e-14"}))));function Mh(e,t){var n=e.title,r=e.titleId,l=Rh(e,["title","titleId"]);return a.createElement("svg",Wh({width:"12px",height:"12px",viewBox:"-0.493 -0.5 12.993 13",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,zh,Ah)}var qh=a.forwardRef(Mh);n.p;function $h(){return($h=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var Vh=a.createElement("desc",null,"Created with Sketch."),Yh=a.createElement("g",{id:"icon/button/shut-down/white",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},a.createElement("g",{id:"Group-5",transform:"translate(1.000000, 0.000000)",stroke:"#FFFFFF"},a.createElement("path",{d:"M7.7735,2 C9.116,2.89710351 10,4.4271328 10,6.16330077 C10,8.92665975 7.7615,11.1666667 5,11.1666667 C2.2385,11.1666667 0,8.92665975 0,6.16330077 C0,4.43663919 0.8745,2.91361461 2.204,2.01450976",id:"Stroke-1"}),a.createElement("line",{x1:5,y1:.75,x2:5,y2:3.25,id:"Stroke-3"})));function Gh(e,t){var n=e.title,r=e.titleId,l=Hh(e,["title","titleId"]);return a.createElement("svg",$h({width:"12px",height:"12px",viewBox:"0 0 12 12",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,Vh,Yh)}var Zh=a.forwardRef(Gh);n.p;function _h(){return(_h=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var Jh=a.createElement("desc",null,"Created with Sketch."),Kh=a.createElement("g",{id:"icon/button/shut-down/zodiac",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},a.createElement("g",{id:"Group-5",transform:"translate(1.000000, 0.000000)",stroke:"#1B2559"},a.createElement("path",{d:"M7.7735,2 C9.116,2.89710351 10,4.4271328 10,6.16330077 C10,8.92665975 7.7615,11.1666667 5,11.1666667 C2.2385,11.1666667 0,8.92665975 0,6.16330077 C0,4.43663919 0.8745,2.91361461 2.204,2.01450976",id:"Stroke-1"}),a.createElement("line",{x1:5,y1:.75,x2:5,y2:3.25,id:"Stroke-3"})));function Qh(e,t){var n=e.title,r=e.titleId,l=Uh(e,["title","titleId"]);return a.createElement("svg",_h({width:"12px",height:"12px",viewBox:"0 0 12 12",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,Jh,Kh)}var Xh=a.forwardRef(Qh);n.p;function eb(){return(eb=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var nb=a.createElement("desc",null,"Created with Sketch."),ab=a.createElement("g",{id:"icon/button/unpair/white",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},a.createElement("g",{id:"Group-12",stroke:"#FFFFFF"},a.createElement("g",{id:"Group-5"},a.createElement("polyline",{id:"Stroke-1",points:"3.75 6 2.25 6 0 3.75 3.75 0 6.75 3"}),a.createElement("polyline",{id:"Stroke-3",points:"8.25 6 9.75 6 12 8.25 8.25 12 5.25 9"})),a.createElement("line",{x1:8.25,y1:3,x2:8.25,y2:1.5,id:"Stroke-6"}),a.createElement("line",{x1:9.75,y1:3,x2:10.5,y2:2.25,id:"Stroke-7"}),a.createElement("line",{x1:9.75,y1:4.5,x2:11.25,y2:4.5,id:"Stroke-8"}),a.createElement("line",{x1:2.25,y1:7.5,x2:.75,y2:7.5,id:"Stroke-9"}),a.createElement("line",{x1:2.25,y1:9,x2:1.5,y2:9.75,id:"Stroke-10"}),a.createElement("line",{x1:3.75,y1:9,x2:3.75,y2:10.5,id:"Stroke-11"})));function rb(e,t){var n=e.title,r=e.titleId,l=tb(e,["title","titleId"]);return a.createElement("svg",eb({width:"12px",height:"12px",viewBox:"0 0 12 12",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,nb,ab)}var lb=a.forwardRef(rb);n.p;function ib(){return(ib=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var cb=a.createElement("desc",null,"Created with Sketch."),sb=a.createElement("g",{id:"icon/button/unpair/zodiac",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},a.createElement("g",{id:"Group-12",stroke:"#1B2559"},a.createElement("g",{id:"Group-5"},a.createElement("polyline",{id:"Stroke-1",points:"3.75 6 2.25 6 0 3.75 3.75 0 6.75 3"}),a.createElement("polyline",{id:"Stroke-3",points:"8.25 6 9.75 6 12 8.25 8.25 12 5.25 9"})),a.createElement("line",{x1:8.25,y1:3,x2:8.25,y2:1.5,id:"Stroke-6"}),a.createElement("line",{x1:9.75,y1:3,x2:10.5,y2:2.25,id:"Stroke-7"}),a.createElement("line",{x1:9.75,y1:4.5,x2:11.25,y2:4.5,id:"Stroke-8"}),a.createElement("line",{x1:2.25,y1:7.5,x2:.75,y2:7.5,id:"Stroke-9"}),a.createElement("line",{x1:2.25,y1:9,x2:1.5,y2:9.75,id:"Stroke-10"}),a.createElement("line",{x1:3.75,y1:9,x2:3.75,y2:10.5,id:"Stroke-11"})));function ub(e,t){var n=e.title,r=e.titleId,l=ob(e,["title","titleId"]);return a.createElement("svg",ib({width:"12px",height:"12px",viewBox:"0 0 12 12",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,cb,sb)}var db=a.forwardRef(ub),mb=(n.p,Object(c.a)(Object(c.a)({},Ed),{},{colDivider:{width:1,margin:[[16,32]],backgroundColor:B,border:"none"},inlineChip:{marginInlineEnd:"0.25em"},stack:{display:"flex",flexDirection:"row"},wrapper:{display:"flex",marginTop:24,marginBottom:32,fontSize:oe},row:{display:"flex",flexDirection:"row",marginBottom:36},list:{padding:0,margin:0,listStyle:"none"},item:{height:24,marginBottom:12},link:{color:M,textDecoration:"none"},divider:{margin:"0 1rem"},mr:{marginRight:8},separator:{width:1,height:170,zIndex:1,marginRight:60,marginLeft:"auto",background:Object(it.fade)(B,.5)}}));function fb(){var e=Object(tn.a)(["\n mutation MachineAction(\n $deviceId: ID!\n $action: MachineAction!\n $newName: String\n ) {\n machineAction(deviceId: $deviceId, action: $action, newName: $newName) {\n deviceId\n }\n }\n"]);return fb=function(){return e},e}var pb=sn()(fb()),hb=[{code:void 0,label:"Troubleshooting",article:"https://support.lamassu.is/hc/en-us/categories/115000075249-Troubleshooting"}],bb=function(e){var t=e.code;return hb.find((function(e){return e.code===t}))},gb=Object(m.a)(Od),vb=function(e){var t=e.children,n=gb();return r.a.createElement("div",{className:n.label},t)},yb=Object(m.a)(mb),Eb=function(e){var t=e.children,n=Object(L.a)(e,["children"]);return r.a.createElement(_m.a,Object.assign({container:!0,spacing:4},n),t)},Ob=function(e){var t=e.children,n=Object(L.a)(e,["children"]);return r.a.createElement(_m.a,Object.assign({item:!0,xs:!0},n),t)},wb=function(e){var t=e.it,n=e.onActionSuccess,l=Object(a.useState)(null),i=Object(o.a)(l,2),s=i[0],u=i[1],d=Object(a.useState)(null),m=Object(o.a)(d,2),f=m[0],p=m[1],h=yb(),b=Object(nn.b)(pb,{onError:function(e){var t=e.message;p(null!==t&&void 0!==t?t:"An error ocurred")},onCompleted:function(){n&&n(),u(null)}}),g=Object(o.a)(b,2),v=g[0],y=g[1].loading,E=Boolean(s);return r.a.createElement(r.a.Fragment,null,r.a.createElement(Eb,{className:h.wrapper},r.a.createElement(Ob,{xs:5},r.a.createElement(Eb,null,r.a.createElement(Ob,null,r.a.createElement(vb,null,"Statuses"),r.a.createElement("ul",{className:h.list},t.statuses.map((function(e,t){return r.a.createElement("li",{className:h.item,key:t},r.a.createElement(as,{status:e}))})))),r.a.createElement(Ob,null,r.a.createElement(vb,null,"Lamassu Support article"),r.a.createElement("ul",{className:h.list},t.statuses.map(bb).map((function(e,t){var n=e.label,a=e.article;return r.a.createElement("li",{className:h.item,key:t},r.a.createElement("a",{className:h.link,target:"_blank",rel:"noopener noreferrer",href:a},"'",n,"' ",r.a.createElement(Ih,null)))})))))),r.a.createElement(oh.a,{orientation:"vertical",flexItem:!0,className:h.separator}),r.a.createElement(dh,{open:E,title:"".concat(null===s||void 0===s?void 0:s.command," this machine?"),errorMessage:f,toBeConfirmed:t.name,message:null===s||void 0===s?void 0:s.message,confirmationMessage:null===s||void 0===s?void 0:s.confirmationMessage,saveButtonAlwaysEnabled:"Rename"===(null===s||void 0===s?void 0:s.command),onConfirmed:function(e){p(null),v({variables:Object(c.a)({deviceId:t.deviceId,action:"".concat(null===s||void 0===s?void 0:s.command).toLowerCase()},"Rename"===(null===s||void 0===s?void 0:s.command)&&{newName:e})})},onDissmised:function(){u(null),p(null)}}),r.a.createElement(Ob,{xs:!0},r.a.createElement(Eb,{className:h.row},r.a.createElement(Ob,{xs:4},r.a.createElement(vb,null,"Machine Model"),r.a.createElement("span",null,t.model)),r.a.createElement(Ob,{xs:4},r.a.createElement(vb,null,"Paired at"),r.a.createElement("span",null,Mu()(t.pairedAt).format("YYYY-MM-DD HH:mm:ss")))),r.a.createElement(Eb,null,r.a.createElement(Ob,null,r.a.createElement(vb,null,"Actions"),r.a.createElement("div",{className:h.stack},r.a.createElement(je,{className:h.mr,disabled:y,color:"primary",Icon:xh,InverseIcon:gh,onClick:function(){return u({command:"Rename",confirmationMessage:"Write the new name for this machine"})}},"Rename"),r.a.createElement(je,{color:"primary",className:h.mr,Icon:db,InverseIcon:lb,disabled:y,onClick:function(){return u({command:"Unpair"})}},"Unpair"),r.a.createElement(je,{color:"primary",className:h.mr,Icon:qh,InverseIcon:Th,disabled:y,onClick:function(){return u({command:"Reboot"})}},"Reboot"),r.a.createElement(je,{className:h.inlineChip,disabled:y,color:"primary",Icon:Xh,InverseIcon:Zh,onClick:function(){return u({command:"Shutdown",message:"In order to bring it back online, the machine will need to be visited and its power reset."})}},"Shutdown")))))))};function xb(){var e=Object(tn.a)(["\n {\n machines {\n name\n deviceId\n lastPing\n pairedAt\n version\n paired\n cashbox\n cassette1\n cassette2\n version\n model\n statuses {\n label\n type\n }\n }\n }\n"]);return xb=function(){return e},e}var jb=sn()(xb()),Cb=Object(m.a)(wd),kb=function(){var e,t=Cb(),n=Object(g.i)().state,a=null===n||void 0===n?void 0:n.id,l=Object(nn.c)(jb),i=l.data,o=l.refetch,c=[{header:"Machine Name",width:250,size:"sm",textAlign:"left",view:function(e){return e.name}},{header:"Status",width:350,size:"sm",textAlign:"left",view:function(e){return r.a.createElement(rs,{statuses:e.statuses})}},{header:"Last ping",width:200,size:"sm",textAlign:"left",view:function(e){return e.lastPing?Mu()(e.lastPing).fromNow():"unknown"}},{header:"Software Version",width:200,size:"sm",textAlign:"left",view:function(e){return e.version||"unknown"}}],s=null!==(e=Or.a(["machines"])(i))&&void 0!==e?e:[],u=al.a(wn.a("deviceId",a))(s);return r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:t.titleWrapper},r.a.createElement("div",{className:t.titleAndButtonsContainer},r.a.createElement(gn,null,"Machine Status")),r.a.createElement("div",{className:t.headerLabels},r.a.createElement("div",null,r.a.createElement(th,null),r.a.createElement("span",null,"Warning")),r.a.createElement("div",null,r.a.createElement(ih,null),r.a.createElement("span",null,"Error")))),r.a.createElement(od,{elements:c,data:s,Details:function(e){var t=e.it;return r.a.createElement(wb,{it:t,onActionSuccess:o})},initialExpanded:u,expandable:!0}))},Sb=r.a.createContext(),Nb=n(266),Ib=n.n(Nb),Lb=function(e){return Ib.a.isNumber(e)&&!Ib.a.isNaN(e)?e:null},Bb=Object(m.a)({header:{display:"flex",alignItems:"center",marginBottom:16,height:26,margin:0},title:{flexShrink:2,margin:0,overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis"},button:{border:"none",backgroundColor:"transparent",cursor:"pointer",marginLeft:8},editingButtons:{display:"flex",flexShrink:0,marginLeft:16,justifyContent:"space-between",width:110}}),Pb=function(e){var t=e.title,n=e.editing,a=e.disabled,l=e.setEditing,i=Bb();return r.a.createElement("div",{className:i.header},r.a.createElement($t,{className:i.title},t),!n&&r.a.createElement(lt,{onClick:function(){return l(!0)},className:i.button,disabled:a},a?r.a.createElement(Li,null):r.a.createElement(Wi,null)),n&&r.a.createElement("div",{className:i.editingButtons},r.a.createElement(ut,{color:"primary",type:"submit"},"Save"),r.a.createElement(ut,{color:"secondary",type:"reset"},"Cancel")))},Fb=Object(m.a)({text:{margin:[[7,0,7,1]]},fieldWrapper:{height:53},valueWrapper:{display:"flex",alignItems:"baseline"},label:{margin:0},decoration:{margin:[[0,0,0,7]]}}),Db=function(e){var t,n=e.label,a=e.name,l=e.editing,i=e.displayValue,o=e.decoration,c=e.className,s=e.decimalPlaces,u=void 0===s?0:s,d=e.width,m=void 0===d?80:d,f=Fb({width:m,editing:l}),p=Object(on.e)().values,h=(t={},Object(I.a)(t,f.fieldWrapper,!0),Object(I.a)(t,"className",c),t);return r.a.createElement("div",{className:N()(h)},n&&r.a.createElement(Kt,{className:f.label},n),r.a.createElement("div",{className:f.valueWrapper},!l&&r.a.createElement(Yt,{className:f.text},i(p[a])),l&&r.a.createElement(on.b,{id:a,size:"lg",fullWidth:!0,name:a,component:Un,textAlign:"right",width:m,decimalPlaces:u}),r.a.createElement(Jt,{className:f.decoration},o)))},Tb=function(e){var t,n=e.title,l=e.label,i=e.width,c=void 0===i?80:i,s=e.min,u=void 0===s?0:s,d=e.max,m=void 0===d?9999999:d,f=e.name,p=e.section,h=e.className,b=Object(a.useState)(!1),g=Object(o.a)(b,2),v=g[0],y=g[1],E=function(){var e=Object(el.a)(Xr.a.mark((function e(t,n){return Xr.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!v){e.next=2;break}return e.abrupt("return");case 2:return y(!0),e.next=5,w(t,n);case 5:y(!1);case 6:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}(),O=Object(a.useContext)(Sb),w=O.save,x=O.data,j=O.currency,C=O.isEditing,k=O.isDisabled,S=O.setEditing,N=hn.d().shape(Object(I.a)({},f,hn.c().transform(Lb).integer().min(u).max(m).nullable()));return r.a.createElement(on.d,{enableReinitialize:!0,initialValues:Object(I.a)({},f,null!==(t=x&&x[f])&&void 0!==t?t:""),validationSchema:N,onSubmit:function(e){return E(p,N.cast(e))},onReset:function(){S(f,!1)}},r.a.createElement(on.c,{className:h},r.a.createElement(ul,null),r.a.createElement(Pb,{title:n,editing:C(f),disabled:k(f),setEditing:function(e){return S(f,e)}}),r.a.createElement(Db,{label:l,name:f,editing:C(f),width:c,displayValue:function(e){return""===e?"-":e},decoration:j})))},Wb="cryptoLowBalance",Rb="cryptoHighBalance",zb=Object(m.a)({cryptoBalanceAlerts:{display:"flex",marginBottom:36,height:135,alignItems:"center"},cryptoBalanceAlertsForm:{width:222,marginRight:32},cryptoBalanceAlertsSecondForm:{marginLeft:50},vertSeparator:{width:1,height:"100%",borderRight:[[1,"solid","black"]]}}),Ab=function(e){var t=e.section,n=e.fieldWidth,l=zb(),i=Object(a.useContext)(Sb),o=i.data,c=i.save,s=i.currency,u=i.setEditing,d=i.isEditing,m=i.isDisabled;return r.a.createElement("div",{className:l.cryptoBalanceAlerts},r.a.createElement(Tb,{name:Wb,data:o,save:c,section:t,decoration:s,className:l.cryptoBalanceAlertsForm,title:"Default (Low Balance)",label:"Alert me under",editing:d(Wb),disabled:m(Wb),setEditing:function(e){return u(Wb,e)},width:n}),r.a.createElement("div",{className:l.vertSeparator}),r.a.createElement(Tb,{name:Rb,data:o,section:t,save:c,decoration:s,className:l.cryptoBalanceAlertsSecondForm,title:"Default (High Balance)",label:"Alert me over",editing:d(Rb),disabled:m(Rb),setEditing:function(e){return u(Rb,e)},width:n}))},Mb="highBalance",qb="lowBalance",$b="cryptoCurrency",Hb="cryptoBalanceOverrides",Vb=function(e){var t,n,l,i=e.section,o=Object(a.useContext)(Sb),c=o.cryptoCurrencies,s=void 0===c?[]:c,u=o.data,d=o.save,m=o.currency,f=o.isDisabled,p=o.setEditing,h=null!==(t=null===u||void 0===u?void 0:u.cryptoBalanceOverrides)&&void 0!==t?t:[],b=jn.a(xn.a($b))(h),g=hr.a((function(e){return!gr.a(e.code,b)}))(s),v=(n={},Object(I.a)(n,$b,null),Object(I.a)(n,qb,""),Object(I.a)(n,Mb,""),n),y=9999999,E=hn.d().shape((l={},Object(I.a)(l,$b,hn.e().label("Cryptocurrency").nullable().required()),Object(I.a)(l,qb,hn.c().label("Low Balance").when(Mb,{is:function(e){return!e},then:hn.c().required()}).transform(Lb).integer().min(0).max(y).nullable()),Object(I.a)(l,Mb,hn.c().label("High Balance").when(qb,{is:function(e){return!e},then:hn.c().required()}).transform(Lb).integer().min(0).max(y).nullable()),l),[qb,Mb]),O=[{name:$b,header:"Cryptocurrency",width:166,size:"sm",view:function(e){return mn.a(Or.a(["display"]),On.a(wn.a("code",e)))(s)},input:_n,inputProps:{options:function(e){return br.a(g,function(e){var t=mn.a(On.a(wn.a("code",null===e||void 0===e?void 0:e.cryptoCurrency)))(s);return t?[t]:[]}(e))},optionsLimit:null,valueProp:"code",getLabel:Or.a(["display"])}},{name:qb,width:155,textAlign:"right",bold:!0,input:Un,suffix:m,inputProps:{decimalPlaces:2}},{name:Mb,width:155,textAlign:"right",bold:!0,input:Un,suffix:m,inputProps:{decimalPlaces:2}}];return r.a.createElement(Ki,{name:Hb,title:"Overrides",enableDelete:!0,enableEdit:!0,enableCreate:!0,save:function(e){return d(i,e)},initialValues:v,validationSchema:E,forceDisable:f(Hb)||!s,data:h,elements:O,disableAdd:!(null===g||void 0===g?void 0:g.length),onDelete:function(e){var t={cryptoBalanceOverrides:ol.a((function(t){return t.id===e}),h)};return d(t)},setEditing:function(e){return p(Hb,e)}})},Yb=Object(m.a)({wrapper:{display:"flex"},form:{marginBottom:36},first:{width:236},title:{marginTop:0},row:{width:183,display:"grid",gridTemplateColumns:"repeat(2,1fr)",gridTemplateRows:"1fr",gridColumnGap:18,gridRowGap:0},col2:{width:136}}),Gb="fiatBalanceAlerts",Zb=function(e){var t,n,l,i,o=e.section,c=e.min,s=void 0===c?0:c,u=e.max,d=void 0===u?Number.MAX_SAFE_INTEGER:u,m=e.fieldWidth,f=void 0===m?80:m,p=Object(a.useContext)(Sb),h=p.isEditing,b=p.isDisabled,g=p.setEditing,v=p.data,y=p.save,E=Yb(),O=h(Gb),w=hn.d().shape({fiatBalanceCassette1:hn.c().transform(Lb).integer().min(s).max(d).nullable(),fiatBalanceCassette2:hn.c().transform(Lb).integer().min(s).max(d).nullable()}),x=100*(null!==(t=null===v||void 0===v?void 0:v.fiatBalanceCassette1)&&void 0!==t?t:0)/d,j=100*(null!==(n=null===v||void 0===v?void 0:v.fiatBalanceCassette2)&&void 0!==n?n:0)/d;return r.a.createElement(on.d,{enableReinitialize:!0,initialValues:{fiatBalanceCassette1:null!==(l=null===v||void 0===v?void 0:v.fiatBalanceCassette1)&&void 0!==l?l:"",fiatBalanceCassette2:null!==(i=null===v||void 0===v?void 0:v.fiatBalanceCassette2)&&void 0!==i?i:""},validationSchema:w,onSubmit:function(e){return y(o,w.cast(e))},onReset:function(){g(Gb,!1)}},r.a.createElement(on.c,{className:E.form},r.a.createElement(ul,null),r.a.createElement(Pb,{title:"Cash out (Empty)",editing:O,disabled:b(Gb),setEditing:function(e){return g(Gb,e)}}),r.a.createElement("div",{className:E.wrapper},r.a.createElement("div",{className:E.first},r.a.createElement("div",{className:E.row},r.a.createElement(di,{percent:x,cashOut:!0}),r.a.createElement("div",{className:E.col2},r.a.createElement(Jt,{className:E.title},"Cassette 1 (Top)"),r.a.createElement(Db,{label:"Alert me under",name:"fiatBalanceCassette1",editing:O,displayValue:function(e){return""===e?"-":e},decoration:"notes",width:f})))),r.a.createElement("div",{className:E.row},r.a.createElement(di,{percent:j,cashOut:!0}),r.a.createElement("div",{className:E.col2},r.a.createElement(Jt,{className:E.title},"Cassette 2 (Bottom)"),r.a.createElement(Db,{label:"Alert me under",name:"fiatBalanceCassette2",editing:O,displayValue:function(e){return""===e?"-":e},decoration:"notes",width:f}))))))},_b="cassette1",Ub="cassette2",Jb="machine",Kb="fiatBalanceOverrides",Qb=function(e){var t,n,l,i=e.section,o=Object(a.useContext)(Sb),c=o.machines,s=void 0===c?[]:c,u=o.data,d=o.save,m=o.isDisabled,f=o.setEditing,p=null!==(t=null===u||void 0===u?void 0:u.fiatBalanceOverrides)&&void 0!==t?t:[],h=jn.a((function(e){return e.machine}),p),b=hr.a((function(e){return!gr.a(e.deviceId,h)}))(s),g=(n={},Object(I.a)(n,Jb,null),Object(I.a)(n,_b,""),Object(I.a)(n,Ub,""),n),v=9999999,y=hn.d().shape((l={},Object(I.a)(l,Jb,hn.e().label("Machine").nullable().required()),Object(I.a)(l,_b,hn.c().label("Cassette 1 (top)").when(Ub,{is:function(e){return!e},then:hn.c().required()}).transform(Lb).integer().min(0).max(v).nullable()),Object(I.a)(l,Ub,hn.c().label("Cassette 1 (bottom)").when(_b,{is:function(e){return!e},then:hn.c().required()}).transform(Lb).integer().min(0).max(v).nullable()),l),[_b,Ub]),E=[{name:Jb,width:238,size:"sm",view:function(e){return mn.a(Or.a(["name"]),On.a(wn.a("deviceId",e)))(s)},input:_n,inputProps:{options:function(e){return br.a(b,function(e){var t=mn.a(On.a(wn.a("deviceId",null===e||void 0===e?void 0:e.machine)))(s);return t?[t]:[]}(e))},valueProp:"deviceId",getLabel:Or.a(["name"])}},{name:_b,display:"Cash-out 1",width:155,textAlign:"right",doubleHeader:"Cash-out (Cassette Empty)",bold:!0,input:Un,suffix:"notes",inputProps:{decimalPlaces:0}},{name:Ub,display:"Cash-out 2",width:155,textAlign:"right",doubleHeader:"Cash-out (Cassette Empty)",bold:!0,input:Un,suffix:"notes",inputProps:{decimalPlaces:0}}];return r.a.createElement(Ki,{name:Kb,title:"Overrides",enableDelete:!0,enableEdit:!0,enableCreate:!0,save:function(e){return d(i,y.cast(e))},initialValues:g,validationSchema:y,forceDisable:m(Kb)||!s,data:p,elements:E,disableAdd:!(null===b||void 0===b?void 0:b.length),setEditing:function(e){return f(Kb,e)}})},Xb={balance:152,transactions:184,compliance:178,errors:142,active:263},eg=Nl.a(ql.a(Xb))+129,tg=function(e){var t=e.namespace,n=e.forceDisable,l=Object(a.useContext)(Sb),i=l.data,o=l.save,c=mn.a(o(null),Kr(t)),s=Jr(t)(i),u=n||!s||!s.active,d=function(e){var t=e.name,n=e.disabled,a=!(!s||!s[t]);return r.a.createElement(Ol,{width:Xb[t],textAlign:"center"},r.a.createElement(Zn,{disabled:n,checked:a,onChange:function(e){c(Object(I.a)({},t,e.target.checked))},value:a}))};return r.a.createElement(jl,null,r.a.createElement(Ol,{width:129},Rl(t)),r.a.createElement(d,{name:"balance",disabled:u}),r.a.createElement(d,{name:"transactions",disabled:u}),r.a.createElement(d,{name:"compliance",disabled:u}),r.a.createElement(d,{name:"errors",disabled:u}),r.a.createElement(d,{name:"active",disabled:n}))},ng=Object(m.a)({mainTable:{width:eg},wizardTable:{width:930}}),ag=function(e){var t=e.wizard,n=e.forceDisable,a=t?20:0,l=ng();return r.a.createElement(gl,{className:t?l.wizardTable:l.mainTable},r.a.createElement(vl,null,r.a.createElement(wl,{width:129-a},"Channel"),Object.keys(Xb).map((function(e){return r.a.createElement(wl,{key:e,width:Xb[e]-a,textAlign:"center"},Rl(e))}))),r.a.createElement(El,null,r.a.createElement(tg,{namespace:"email",forceDisable:n}),r.a.createElement(tg,{namespace:"sms",forceDisable:n})))},rg=function(e){var t=e.section,n=e.fieldWidth;return r.a.createElement(Tb,{section:t,title:"High value transaction",label:"Alert me over",name:"highValueTransaction",width:n})};function lg(){var e=Object(tn.a)(["\n mutation Save($config: JSONObject) {\n saveConfig(config: $config)\n }\n"]);return lg=function(){return e},e}function ig(){var e=Object(tn.a)(["\n query getData {\n config\n machines {\n name\n deviceId\n }\n cryptoCurrencies {\n code\n display\n }\n }\n"]);return ig=function(){return e},e}var og=sn()(ig()),cg=sn()(lg()),sg=function(e){var t=e.name,n=e.displaySetup,l=void 0===n||n,i=e.displayTransactionAlerts,c=void 0===i||i,s=e.displayFiatAlerts,u=void 0===s||s,d=e.displayCryptoAlerts,m=void 0===d||d,f=e.displayOverrides,p=void 0===f||f,h=e.displayTitle,b=void 0===h||h,g=e.wizard,v=void 0!==g&&g,y=Object(a.useState)(null),E=Object(o.a)(y,2),O=E[0],w=E[1],x=Object(a.useState)(null),j=Object(o.a)(x,2),C=j[0],k=j[1],S=Object(a.useState)(null),N=Object(o.a)(S,2),I=N[0],L=N[1],B=Object(nn.c)(og).data,P=Object(nn.b)(cg,{refetchQueries:["getData"],onCompleted:function(){return L(null)},onError:function(e){return k({error:e})}}),F=Object(o.a)(P,1)[0],D=Jr(t)(null===B||void 0===B?void 0:B.config),T=null===B||void 0===B?void 0:B.machines,W=null===B||void 0===B?void 0:B.cryptoCurrencies,R=Or.a(["fiatCurrency"])(Jr($r)(null===B||void 0===B?void 0:B.config)),z={save:Fr.a((function(e,n){var a=Kr(t)(n);return w(e),k(null),F({variables:{config:a}})})),error:C,editingKey:I,data:D,currency:R,isEditing:function(e){return I===e},isDisabled:function(e){return I&&I!==e},setEditing:function(e,t){t||k(null),L(t?e:null)},setSection:w,machines:T,cryptoCurrencies:W};return r.a.createElement(Sb.Provider,{value:z},b&&r.a.createElement(uo,{title:"Notifications"}),l&&r.a.createElement(pc,{title:"Setup",error:C&&!O},r.a.createElement(ag,{forceDisable:!!I,wizard:v})),c&&r.a.createElement(pc,{title:"Transaction alerts",error:C&&"tx"===O},r.a.createElement(rg,{section:"tx",fieldWidth:130})),u&&r.a.createElement(pc,{title:"Fiat balance alerts",error:C&&"fiat"===O},r.a.createElement(Zb,{section:"fiat",max:500,fieldWidth:50}),p&&r.a.createElement(Qb,{section:"fiat"})),m&&r.a.createElement(pc,{title:"Crypto balance alerts",error:C&&"crypto"===O},r.a.createElement(Ab,{section:"crypto",fieldWidth:130}),p&&r.a.createElement(Vb,{section:"crypto",fieldWidth:130})))},ug={button:Iu.button,content:{display:"flex"},transparentButton:{"& > *":{margin:"auto 10px"},"& button":{border:"none",backgroundColor:"transparent",cursor:"pointer"}},titleWrapper:{display:"flex",alignItems:"center",flex:"wrap"},rowWrapper:{display:"flex",alignItems:"center",justifyContent:"space-between"},rowTextAndSwitch:{display:"flex",flex:"wrap",alignItems:"center",justifyContent:"space-between",width:285},popoverContent:{width:272,padding:[[10,15]]}};function dg(){var e=Object(tn.a)(["\n mutation Save($config: JSONObject) {\n saveConfig(config: $config)\n }\n"]);return dg=function(){return e},e}function mg(){var e=Object(tn.a)(["\n query getData {\n config\n }\n"]);return mg=function(){return e},e}var fg=Object(m.a)(ug),pg=sn()(mg()),hg=sn()(dg()),bg=Object(a.memo)((function(e){var t=e.title,n=e.disabled,a=void 0!==n&&n,l=e.checked,i=e.save,o=e.label,c=fg();return r.a.createElement("div",{className:c.rowWrapper},r.a.createElement("div",{className:c.rowTextAndSwitch},r.a.createElement(Vt,null,t),r.a.createElement(Zn,{disabled:a,checked:l,onChange:function(e){return i&&i(e.target.checked)}})),o&&r.a.createElement(Qt,null,o))})),gg=Object(a.memo)((function(){var e=fg(),t=Object(nn.c)(pg).data,n=Object(nn.b)(hg,{refetchQueries:["getData"]}),a=Object(o.a)(n,1)[0],l=function(e){return a({variables:{config:Kr(Yr,e)}})},i=(null===t||void 0===t?void 0:t.config)&&Jr(Yr,t.config);return i?r.a.createElement("div",{className:e.content},r.a.createElement("div",null,r.a.createElement("div",{className:e.titleWrapper},r.a.createElement($t,null,"Coin ATM Radar share settings"),r.a.createElement(Br,{width:304},r.a.createElement(Vt,null,"For details on configuring this panel, please read the relevant knowledgebase article"," ",r.a.createElement("a",{target:"_blank",rel:"noopener noreferrer",href:"https://support.lamassu.is/hc/en-us/articles/360023720472-Coin-ATM-Radar"},"here"),"."))),r.a.createElement(bg,{title:"Share information?",checked:i.active,save:function(e){return l({active:e})},label:i.active?"Yes":"No"}),r.a.createElement($t,null,"Machine info"),r.a.createElement(bg,{title:"Commissions",disabled:!i.active,checked:i.commissions,save:function(e){return l({commissions:e})}}),r.a.createElement(bg,{title:"Limits and verification",disabled:!i.active,checked:i.limitsAndVerification,save:function(e){return l({limitsAndVerification:e})}}))):null})),vg=n(337),yg=Ee.p,Eg=Object(vg.a)({typography:{fontFamily:fe,body1:Object(c.a)({},yg)},MuiButtonBase:{disableRipple:!0},palette:{primary:{light:q,dark:q,main:q},secondary:{light:q,dark:q,main:q},background:{default:V}},overrides:{MuiRadio:{colorSecondary:{color:q}},MuiAutocomplete:{root:{color:U},noOptions:{padding:[[6,16]]},option:{'&[data-focus="true"]':{backgroundColor:Y}},paper:{color:U,margin:0},listbox:{padding:0},tag:{'&[data-tag-index="0"]':{marginLeft:0},margin:2,backgroundColor:Y,borderRadius:4,height:18}},MuiChip:{label:{paddingLeft:4,paddingRight:4,color:U,fontSize:ce}},MuiInput:{root:{color:U},underline:{"&:before":{borderBottom:[[2,"solid",U]]}}},MuiInputLabel:{root:{font:"inherit",fontSize:ie,color:J},shrink:{color:U,transform:"translate(0, 1.7px) scale(0.83)"}},MuiFormLabel:{root:{"&$focused":{color:U}}}}}),Og=Ee.p,wg={header:{display:"flex",alignItems:"center",position:"relative",flex:"wrap"},transparentButton:{"& > *":{margin:"auto 12px"},"& button":{border:"none",backgroundColor:"transparent",cursor:"pointer"}},section:{marginBottom:52},row:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:28,width:600,"&:last-child":{marginBottom:0}},switchRow:{display:"flex",alignItems:"center",marginBottom:28,width:600},switch:{display:"flex",alignItems:"center",marginLeft:120},submit:{justifyContent:"flex-start",alignItems:"center",height:19,padding:[[0,4,4,4]],"& > button":{marginRight:40}},singleButton:{marginTop:50,paddingLeft:0}},xg={infoMessage:{display:"flex",marginBottom:52,"& > p":{width:330,color:J,marginTop:4,marginLeft:16}},radioButtonsRow:{height:60,marginBottom:14},radioButtons:{display:"flex",flexDirection:"row",paddingLeft:4},rowWrapper:{display:"flex",alignItems:"center",position:"relative",flex:"wrap"},transparentButton:{"& > *":{margin:"auto 12px"},"& button":{border:"none",backgroundColor:"transparent",cursor:"pointer"}}},jg={enable:{display:"flex",alignItems:"center",marginBottom:22-Eg.spacing(1),"& > span:first-child":{extend:Og,marginRight:116-Eg.spacing(1)},"& > span:last-child":{marginLeft:4}}};function Cg(){var e=Object(tn.a)(["\n mutation Save($config: JSONObject) {\n saveConfig(config: $config)\n }\n"]);return Cg=function(){return e},e}function kg(){var e=Object(tn.a)(["\n query getData {\n config\n }\n"]);return kg=function(){return e},e}var Sg={field:{position:"relative",width:280,height:48,padding:[[0,4,4,0]]},notEditing:{display:"flex",flexDirection:"column","& > p:first-child":{height:16,lineHeight:"16px",fontSize:ce,transformOrigin:"left",paddingLeft:0,margin:[[3,0,3,0]]},"& > p:last-child":{overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis",margin:0}}},Ng=Object(m.a)(Sg),Ig=function(e){var t,n=e.editing,a=e.field,l=e.displayValue,i=Object(L.a)(e,["editing","field","displayValue"]),o=Ng(),c=(t={},Object(I.a)(t,o.field,!0),Object(I.a)(t,o.notEditing,!n),t);return r.a.createElement("div",{className:N()(c)},!n&&r.a.createElement(r.a.Fragment,null,r.a.createElement(Xt,null,a.label),r.a.createElement(Zt,null,l(a.value))),n&&r.a.createElement(on.b,Object.assign({id:a.name,name:a.name,component:a.component,placeholder:a.placeholder,type:a.type,label:a.label,width:280},i)))},Lg=sn()(kg()),Bg=sn()(Cg()),Pg=Ue.a(wg,xg),Fg=Object(m.a)(Pg),Dg=function(e){var t,n,l,i,c=e.wizard,s=Fg(),u=Object(a.useState)(c||!1),d=Object(o.a)(u,2),m=d[0],f=d[1],p=Object(a.useState)(null),h=Object(o.a)(p,2),b=h[0],g=h[1],v=Object(nn.b)(Bg,{onCompleted:function(){return f(!1)},refetchQueries:function(){return["getData"]},onError:function(e){return g(e)}}),y=Object(o.a)(v,1)[0],E=Object(nn.c)(Lg).data,O=function(e){return y({variables:{config:Kr(Mr,e)}})},w=(null===E||void 0===E?void 0:E.config)&&Jr(Mr,E.config);if(!w)return null;var x=hn.d().shape({active:hn.b(),name:hn.e(),phone:hn.e(),email:hn.e().email("Please enter a valid email address").required(),website:hn.e(),companyNumber:hn.e()}),j=[{name:"name",label:"Full name",value:null!==(t=w.name)&&void 0!==t?t:"",component:Qn},{name:"phone",label:"Phone number",value:w.phone,component:Qn},{name:"email",label:"Email",value:null!==(n=w.email)&&void 0!==n?n:"",component:Qn},{name:"website",label:"Website",value:null!==(l=w.website)&&void 0!==l?l:"",component:Qn},{name:"companyNumber",label:"Company number",value:null!==(i=w.companyNumber)&&void 0!==i?i:"",component:Qn}],C=function(e){return On.a(wn.a("name",e))(j)},k=function(e){return C(e).value},S=function(e){return e},I={initialValues:{active:w.active,name:k("name"),phone:k("phone"),email:k("email"),website:k("website"),companyNumber:k("companyNumber")}};return r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:s.rowWrapper},r.a.createElement($t,null,"Contact information")),r.a.createElement("div",{className:s.rowWrapper},r.a.createElement(Vt,null,"Info card enabled?"),r.a.createElement("div",{className:s.switch},r.a.createElement(Zn,{checked:w.active,onChange:function(e){return O({active:e.target.checked})}}),r.a.createElement(Qt,null,w.active?"Yes":"No"))),r.a.createElement("div",{className:s.section},r.a.createElement("div",{className:s.rowWrapper},r.a.createElement($t,null,"Info card"),!m&&r.a.createElement(lt,{className:s.transparentButton,onClick:function(){return f(!0)}},r.a.createElement(Wi,null))),r.a.createElement(on.d,{enableReinitialize:!0,initialValues:I.initialValues,validationSchema:x,onSubmit:function(e){return O(x.cast(e))},onReset:function(){f(!1),g(null)}},r.a.createElement(on.c,null,r.a.createElement(ul,null),r.a.createElement("div",{className:s.row},r.a.createElement(Ig,{field:C("name"),editing:m,displayValue:S,onFocus:function(){return g(null)}}),r.a.createElement(Ig,{field:C("phone"),editing:m,displayValue:S,onFocus:function(){return g(null)}})),r.a.createElement("div",{className:s.row},r.a.createElement(Ig,{field:C("email"),editing:m,displayValue:S,onFocus:function(){return g(null)}}),r.a.createElement(Ig,{field:C("website"),editing:m,displayValue:S,onFocus:function(){return g(null)}})),r.a.createElement("div",{className:s.row},r.a.createElement(Ig,{field:C("companyNumber"),editing:m,displayValue:S,onFocus:function(){return g(null)}})),r.a.createElement("div",{className:N()(s.row,s.submit)},m&&r.a.createElement(r.a.Fragment,null,r.a.createElement(ut,{color:"primary",type:"submit"},"Save"),r.a.createElement(ut,{color:"secondary",type:"reset"},"Cancel"),b&&r.a.createElement(co,{className:s.errorMessage},"Failed to save changes")))))),!c&&r.a.createElement("div",{className:N()(s.section,s.infoMessage)},r.a.createElement(Ra,null),r.a.createElement(Kt,null,"Sharing your information with your customers through your machines allows them to contact you in case there's a problem with a machine in your network or a transaction.")))},Tg=n(267),Wg=n.n(Tg);function Rg(){return(Rg=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var Ag=a.createElement("desc",null,"Created with Sketch."),Mg=a.createElement("g",{id:"icon/table/false",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd"},a.createElement("g",{id:"Group-4",stroke:"#FF584A",strokeWidth:4},a.createElement("line",{x1:13.5,y1:.5,x2:.995667,y2:13.004333,id:"Line-7"}),a.createElement("line",{x1:13.5,y1:.5,x2:.995667,y2:13.004333,id:"Line-7",transform:"translate(7.000000, 7.000000) scale(-1, 1) translate(-7.000000, -7.000000) "})));function qg(e,t){var n=e.title,r=e.titleId,l=zg(e,["title","titleId"]);return a.createElement("svg",Rg({width:"14px",height:"14px",viewBox:"0 0 14 14",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,Ag,Mg)}var $g=a.forwardRef(qg);n.p;function Hg(){return(Hg=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var Yg=a.createElement("desc",null,"Created with Sketch."),Gg=a.createElement("g",{id:"icon/table/true",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd"},a.createElement("path",{d:"M4.17451294,13.3251347 L0.599425104,9.29667256 C-0.199808368,8.3960844 -0.199808368,6.94040225 0.599425104,6.03981409 C1.39865858,5.13922593 2.69051421,5.13922593 3.48974768,6.03981409 L5.61967423,8.439847 L12.5102523,0.675441122 C13.3094858,-0.225147041 14.6033855,-0.225147041 15.4005749,0.675441122 C16.1998084,1.57372599 16.1998084,3.03171143 15.4005749,3.93229959 L7.06483552,13.3251347 C6.66624082,13.7742771 6.14295752,14 5.61967423,14 C5.09639093,14 4.57310763,13.7742771 4.17451294,13.3251347 Z",id:"Fill-1",fill:"#48F694"}));function Zg(e,t){var n=e.title,r=e.titleId,l=Vg(e,["title","titleId"]);return a.createElement("svg",Hg({width:"16px",height:"14px",viewBox:"0 0 16 14",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,Yg,Gg)}var _g=a.forwardRef(Zg),Ug=(n.p,{booleanPropertiesTableWrapper:{display:"flex",flexDirection:"column",width:396},tableRow:{display:"flex",alignItems:"center",justifyContent:"space-between","&:nth-child(even)":{backgroundColor:V},"&:nth-child(odd)":{backgroundColor:T},minHeight:32,height:"auto",padding:[[8,16,8,24]],boxShadow:"0 0 0 0 rgba(0, 0, 0, 0)"},leftTableCell:{display:"flex",alignItems:"center",justifyContent:"left",width:200,padding:[0]},rightTableCell:{display:"flex",alignItems:"center",justifyContent:"right",padding:[0]},transparentButton:{"& > *":{margin:"auto 12px"},"& button":{border:"none",backgroundColor:"transparent",cursor:"pointer"}},rowWrapper:{display:"flex",alignItems:"center",position:"relative",flex:"wrap"},rightAligned:{marginLeft:"auto"},radioButtons:{display:"flex",flexDirection:"row",margin:[-15]},rightLink:{marginLeft:"20px"},fillColumn:Iu.fillColumn,popoverContent:{width:272,padding:[[10,15]]}}),Jg=Object(m.a)(Ug),Kg=function(e){var t=e.name;return"true"===Object(on.e)().values[t]?r.a.createElement(_g,null):r.a.createElement($g,null)},Qg=Object(a.memo)((function(e){var t=e.title,n=e.disabled,l=e.data,i=e.elements,c=e.save,s=e.forcedEditing,u=void 0!==s&&s,d=Wg.a.fromPairs(i.map((function(e){return[e.name,""]}))),m=Wg.a.fromPairs(i.map((function(e){return[e.name,hn.b().required()]}))),f=Object(a.useState)(u),p=Object(o.a)(f,2),h=p[0],b=p[1],g=Jg(),v=function(){var e=Object(el.a)(Xr.a.mark((function e(t){return Xr.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:c(t),b(!1);case 2:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),y=[{display:"Yes",code:"true"},{display:"No",code:"false"}];return r.a.createElement("div",{className:g.booleanPropertiesTableWrapper},r.a.createElement(on.d,{enableReinitialize:!0,onSubmit:v,initialValues:l||d,schemaValidation:m},r.a.createElement(on.c,null,r.a.createElement("div",{className:g.rowWrapper},r.a.createElement($t,null,t),h?r.a.createElement("div",{className:g.rightAligned},r.a.createElement(ut,{type:"submit",color:"primary"},"Save"),r.a.createElement(ut,{className:g.rightLink,onClick:function(){return b(!1)},color:"secondary"},"Cancel")):r.a.createElement(lt,{className:g.transparentButton,onClick:function(){return b(!0)}},n?r.a.createElement(Li,null):r.a.createElement(Wi,null))),r.a.createElement(ul,null),r.a.createElement(jp,{className:g.fillColumn},r.a.createElement(Cp,{className:g.fillColumn},i.map((function(e,t){return r.a.createElement(Tp,{key:t,size:"sm",className:g.tableRow},r.a.createElement(Sp,{className:g.leftTableCell},e.display),r.a.createElement(Sp,{className:g.rightTableCell},h&&r.a.createElement(on.b,{component:Jn,name:e.name,options:y,className:N()(g.radioButtons,g.rightTableCell)}),!h&&r.a.createElement(Kg,{name:e.name})))})))))))}));function Xg(){var e=Object(tn.a)(["\n mutation Save($config: JSONObject) {\n saveConfig(config: $config)\n }\n"]);return Xg=function(){return e},e}function ev(){var e=Object(tn.a)(["\n query getData {\n config\n }\n"]);return ev=function(){return e},e}var tv=Object(m.a)({rowWrapper:{display:"flex",alignItems:"center",position:"relative",flex:"wrap"},switchWrapper:{display:"flex",marginLeft:120}}),nv=sn()(ev()),av=sn()(Xg()),rv=Object(a.memo)((function(e){var t=e.wizard,n=tv(),a=Object(nn.c)(nv).data,l=Object(nn.b)(av,{refetchQueries:function(){return["getData"]}}),i=Object(o.a)(l,1)[0],c=(null===a||void 0===a?void 0:a.config)&&Jr(Vr,a.config);return c?r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:n.rowWrapper},r.a.createElement($t,null,"Receipt options")),r.a.createElement("div",{className:n.rowWrapper},r.a.createElement(Vt,null,"Enable receipt printing?"),r.a.createElement("div",{className:n.switchWrapper},r.a.createElement(Zn,{checked:c.active,onChange:function(e){return i({variables:{config:Kr(Vr,Ue.a(c,{active:e.target.checked}))}})}})),r.a.createElement(Qt,null,c.active?"Yes":"No")),r.a.createElement(Qg,{editing:t,title:"Visible on the receipt (options)",data:c,elements:[{name:"operatorWebsite",display:"Operator website"},{name:"operatorEmail",display:"Operator email"},{name:"operatorPhone",display:"Operator phone"},{name:"companyNumber",display:"Company number"},{name:"machineLocation",display:"Machine location"},{name:"customerNameOrPhoneNumber",display:"Customer name or phone number (if known)"},{name:"exchangeRate",display:"Exchange rate"},{name:"addressQRCode",display:"Address QR code"}],save:function(e){return i({variables:{config:Kr(Vr,e)}})}})):null}));function lv(){var e=Object(tn.a)(["\n mutation Save($config: JSONObject) {\n saveConfig(config: $config)\n }\n"]);return lv=function(){return e},e}function iv(){var e=Object(tn.a)(["\n query getData {\n config\n }\n"]);return iv=function(){return e},e}var ov=Object(m.a)({field:{position:"relative",width:280,padding:[[0,4,4,0]]},notEditing:{display:"flex",flexDirection:"column"},notEditingSingleLine:{"& > p:first-child":{height:16,lineHeight:"16px",transform:"scale(0.75)",transformOrigin:"left",paddingLeft:0,margin:[[1,0,6,0]]},"& > p:last-child":{overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis",height:25,margin:0}},notEditingMultiline:{"& > p:first-child":{height:16,lineHeight:"16px",transform:"scale(0.75)",transformOrigin:"left",paddingLeft:0,margin:[[1,0,5,0]]},"& > p:last-child":{width:502,height:121,overflowY:"auto",lineHeight:"19px",wordWrap:"anywhere",margin:0}}}),cv=function(e){var t,n=e.editing,a=e.name,l=e.width,i=e.placeholder,o=e.label,c=e.value,s=e.multiline,u=void 0!==s&&s,d=e.rows,m=e.onFocus,f=Object(L.a)(e,["editing","name","width","placeholder","label","value","multiline","rows","onFocus"]),p=ov(),h=(t={},Object(I.a)(t,p.field,!0),Object(I.a)(t,p.notEditing,!n),Object(I.a)(t,p.notEditingSingleLine,!n&&!u),Object(I.a)(t,p.notEditingMultiline,!n&&u),t);return r.a.createElement("div",{className:N()(h)},!n&&r.a.createElement(r.a.Fragment,null,r.a.createElement(Xt,null,o),r.a.createElement(Zt,{className:p.multiLineText},c)),n&&r.a.createElement(on.b,Object.assign({id:a,name:a,component:Qn,width:l,placeholder:i,type:"text",label:o,multiline:u,rows:d,rowsMax:"6",onFocus:m},f)))},sv=sn()(iv()),uv=sn()(lv()),dv=Ue.a(wg,jg),mv=Object(m.a)(dv),fv=function(){var e,t,n,l,i,c=Object(a.useState)(null),s=Object(o.a)(c,2),u=s[0],d=s[1],m=Object(a.useState)(!1),f=Object(o.a)(m,2),p=f[0],h=f[1],b=Object(nn.b)(uv,{onCompleted:function(){d(null),h(!1)},refetchQueries:function(){return["getData"]},onError:function(e){return d(e)}}),g=Object(o.a)(b,1)[0],v=mv(),y=Object(nn.c)(sv).data,E=(null===y||void 0===y?void 0:y.config)&&Jr(Gr,y.config),O=null!==E&&void 0!==E?E:{},w=null!==(e=null===E||void 0===E?void 0:E.active)&&void 0!==e&&e,x=function(e){return g({variables:{config:Kr(Gr,e)}})},j=[{name:"title",label:"Screen title",value:null!==(t=O.title)&&void 0!==t?t:"",width:282},{name:"text",label:"Text content",value:null!==(n=O.text)&&void 0!==n?n:"",width:502,multiline:!0,rows:6},{name:"acceptButtonText",label:"Accept button text",value:null!==(l=O.acceptButtonText)&&void 0!==l?l:"",placeholder:"I accept",width:282},{name:"cancelButtonText",label:"Cancel button text",value:null!==(i=O.cancelButtonText)&&void 0!==i?i:"",placeholder:"Cancel",width:282}],C=function(e){return function(e){return On.a(wn.a("name",e))(j)}(e).value},k={title:C("title"),text:C("text"),acceptButtonText:C("acceptButtonText"),cancelButtonText:C("cancelButtonText")},S=hn.d().shape({title:hn.e().required().max(50,"Too long"),text:hn.e().required(),acceptButtonText:hn.e().required().max(50,"Too long"),cancelButtonText:hn.e().required().max(50,"Too long")});return r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:v.rowWrapper},r.a.createElement($t,null,"Terms & Conditions")),r.a.createElement("div",{className:v.section},r.a.createElement("div",{className:v.enable},r.a.createElement("span",null,"Show on screen"),r.a.createElement(Zn,{checked:w,onChange:function(e){return x({active:e.target.checked})}}),r.a.createElement(Qt,null,w?"Yes":"No")),r.a.createElement("div",{className:v.header},r.a.createElement(Gt,null,"Info card"),!p&&r.a.createElement(lt,{className:v.transparentButton,onClick:function(){return h(!0)}},r.a.createElement(Wi,null))),r.a.createElement(on.d,{enableReinitialize:!0,initialValues:k,validationSchema:S,onSubmit:function(e){return x(e)},onReset:function(){h(!1),d(null)}},r.a.createElement(on.c,null,r.a.createElement(ul,null),j.map((function(e,t){return r.a.createElement("div",{className:v.row,key:t},r.a.createElement(cv,{editing:p,name:e.name,width:e.width,placeholder:e.placeholder,label:e.label,value:e.value,multiline:e.multiline,rows:e.rows,onFocus:function(){return d(null)}}))})),r.a.createElement("div",{className:N()(v.row,v.submit)},p&&r.a.createElement(r.a.Fragment,null,r.a.createElement(ut,{color:"primary",type:"submit"},"Save"),r.a.createElement(ut,{color:"secondary",type:"reset"},"Cancel"),u&&r.a.createElement(co,{className:v.errorMessage},"Failed to save changes")))))))},pv=Object(m.a)({grid:{flex:1,height:"100%"},content:{flex:1,marginLeft:48,paddingTop:15}}),hv=[{label:"Contact information",route:"/settings/operator-info/contact-info",component:Dg},{label:"Receipt",route:"/settings/operator-info/receipt-printing",component:rv},{label:"Coin ATM Radar",route:"/settings/operator-info/coin-atm-radar",component:gg},{label:"Terms & Conditions",route:"/settings/operator-info/terms-conditions",component:fv}],bv=function(e){var t=e.wizard;return r.a.createElement(g.e,null,r.a.createElement(g.b,{exact:!0,from:"/settings/operator-info",to:"/settings/operator-info/contact-info"}),r.a.createElement(g.c,{exact:!0,path:"/"}),hv.map((function(e){var n=e.route,a=e.component,l=e.key;return r.a.createElement(g.c,{path:n,key:l},r.a.createElement(a,{name:l,wizard:t}))})))},gv=function(e){var t=e.wizard,n=void 0!==t&&t,a=pv(),l=Object(g.h)(),i=Object(g.i)();return r.a.createElement(r.a.Fragment,null,r.a.createElement(uo,{title:"Operator information"}),r.a.createElement(_m.a,{container:!0,className:a.grid},r.a.createElement(xa,{data:hv,isSelected:function(e){return i.pathname===e.route},displayName:function(e){return e.label},onClick:function(e){return l.push(e.route)}}),r.a.createElement("div",{className:a.content},r.a.createElement(bv,{wizard:n}))))},vv=n(533),yv={running:H,notRunning:"#ffeceb"},Ev={running:"#ecfbef",notRunning:X},Ov={uptimeContainer:{display:"inline-block",minWidth:104,margin:[[0,20]]},name:{extend:Ee.label1,paddingLeft:4,color:J}},wv=Object(m.a)(Ov),xv=Object(m.a)({root:{borderRadius:4,marginTop:4,marginRight:2,marginBottom:4,marginLeft:2,height:24,backgroundColor:function(e){var t=e.type;return Ev[t]}},label:{fontSize:se,fontWeight:500,fontFamily:fe,padding:[[4,8]],color:function(e){var t=e.type;return yv[t]}}}),jv=function(e){var t,n=e.process,a=(Object(L.a)(e,["process"]),wv());return r.a.createElement("div",{className:a.uptimeContainer},r.a.createElement("div",{className:a.name},vv.a(n.name)),r.a.createElement(ti.a,{label:"RUNNING"===n.state?"Running for ".concat((t=n.uptime,t<60?"".concat(t,"s"):t<3600?"".concat(Math.floor(t/60),"m"):t<86400?"".concat(Math.floor(t/60/60),"h"):"".concat(Math.floor(t/60/60/24),"d"))):Tl(n.state),classes:xv({type:"RUNNING"===n.state?"running":"notRunning"})}))};function Cv(){var e=Object(tn.a)(["\n query ServerData($limit: Int, $from: Date, $until: Date) {\n serverVersion\n uptime {\n name\n state\n uptime\n }\n serverLogs(limit: $limit, from: $from, until: $until) {\n logLevel\n id\n timestamp\n message\n }\n }\n"]);return Cv=function(){return e},e}function kv(){var e=Object(tn.a)(["\n query ServerData($limit: Int, $from: Date, $until: Date) {\n serverLogsCsv(limit: $limit, from: $from, until: $until)\n }\n"]);return kv=function(){return e},e}var Sv={serverTableWrapper:{extend:Iu.tableWrapper,maxWidth:"100%",marginLeft:0},serverVersion:{extend:Ee.p,color:J,margin:"auto 0 auto 0"},headerLine2:{display:"flex",justifyContent:"space-between",marginBottom:24},uptimeContainer:{margin:"auto 0 auto 0"}},Nv=Ue.a(Iu,Sv),Iv=Object(m.a)(Nv),Lv="Show all",Bv=sn()(kv()),Pv=sn()(Cv()),Fv=function(){var e,t=Iv(),n=Object(a.useRef)(),l=Object(a.useState)(null),i=Object(o.a)(l,2),c=i[0],s=i[1],u=Object(a.useState)(Lv),d=Object(o.a)(u,2),m=d[0],f=d[1],p=Object(nn.c)(Pv,{onCompleted:function(){return s("")},variables:{limit:500}}).data,h=null===p||void 0===p?void 0:p.serverVersion,b=null!==(e=null===p||void 0===p?void 0:p.uptime)&&void 0!==e?e:[],g=mn.a(ll.a(Lv),vc.a,br.a(["error","info","debug"]),jn.a(Or.a(["logLevel"])),Or.a(["serverLogs"]));return r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:t.titleWrapper},r.a.createElement("div",{className:t.titleAndButtonsContainer},r.a.createElement(gn,null,"Server"),p&&r.a.createElement("div",{className:t.buttonsWrapper},r.a.createElement(wp,{title:"Download logs",name:"server-logs",query:Bv,logs:p.serverLogs,getLogs:function(e){return Or.a(["serverLogsCsv"])(e)}}),r.a.createElement(Zt,null,c))),r.a.createElement("div",{className:t.serverVersion},h&&r.a.createElement("span",null,"Server version: v",h))),r.a.createElement("div",{className:t.headerLine2},p&&r.a.createElement(ei,{onSelectedItemChange:function(e){n.current&&n.current.scrollTo(0,0),f(e)},label:"Level",items:g(p),default:Lv,selectedItem:m}),r.a.createElement("div",{className:t.uptimeContainer},b&&b.map((function(e,t){return r.a.createElement(jv,{key:t,process:e})})))),r.a.createElement("div",{className:t.wrapper},r.a.createElement("div",{ref:n,className:t.serverTableWrapper},r.a.createElement(jp,{className:t.table},r.a.createElement(Np,null,r.a.createElement(Tp,{header:!0},r.a.createElement(Bp,{className:t.dateColumn},"Date"),r.a.createElement(Bp,{className:t.levelColumn},"Level"),r.a.createElement(Bp,{className:t.fillColumn}))),r.a.createElement(Cp,null,p&&p.serverLogs.filter((function(e){return m===Lv||e.logLevel===m})).map((function(e,t){return r.a.createElement(Tp,{key:t,size:"sm"},r.a.createElement(Sp,null,(n=e.timestamp,Mu()(n).format("YYYY-MM-DD HH:mm"))),r.a.createElement(Sp,null,e.logLevel),r.a.createElement(Sp,null,e.message));var n})))))))};function Dv(){return(Dv=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var Wv=a.createElement("desc",null,"Created with Sketch."),Rv=a.createElement("g",{id:"icon/action/edit/white",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},a.createElement("path",{d:"M1,18 L1,18 C1,19.657 2.343,21 4,21 L18,21 C19.657,21 21,19.657 21,18",id:"Stroke-1",stroke:"#FFFFFF",strokeWidth:2}),a.createElement("polygon",{id:"Stroke-3",stroke:"#FFFFFF",strokeWidth:2,points:"6 12 17 1 21 5 10 16 6 16"}));function zv(e,t){var n=e.title,r=e.titleId,l=Tv(e,["title","titleId"]);return a.createElement("svg",Dv({width:"22px",height:"22px",viewBox:"0 0 22 22",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,Wv,Rv)}var Av=a.forwardRef(zv),Mv=(n.p,{tr:function(e){return{margin:0,height:e.height}},table:function(e){return{width:e.width}},head:{display:"flex",flex:1,justifyContent:"space-between",alignItems:"center",paddingRight:12},button:{marginBottom:1},itemWrapper:{display:"flex",flexDirection:"column",marginTop:16,minHeight:35},label:{extend:Ee.label1,color:J,marginBottom:4},item:{extend:Ee.p,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}}),qv=Object(m.a)(Mv),$v=function(e){var t=e.width,n=void 0===t?378:t,a=e.height,l=void 0===a?128:a,i=e.title,o=e.items,c=e.onEdit,s=e.className,u=qv({width:n,height:l});return r.a.createElement(r.a.Fragment,null,r.a.createElement(gl,{className:N()(s,u.table)},r.a.createElement(vl,null,r.a.createElement(wl,{className:u.head},i,r.a.createElement(lt,{onClick:c,className:u.button},r.a.createElement(Av,null)))),r.a.createElement(El,null,r.a.createElement(jl,{className:u.tr},r.a.createElement(Ol,{width:n},o&&r.a.createElement(r.a.Fragment,null,o[0]&&r.a.createElement("div",{className:u.itemWrapper},r.a.createElement("div",{className:u.label},o[0].label),r.a.createElement("div",{className:u.item},o[0].value)),o[1]&&r.a.createElement("div",{className:u.itemWrapper},r.a.createElement("div",{className:u.label},o[1].label),r.a.createElement("div",{className:u.item},o[1].value))))))))};function Hv(){var e=Object(tn.a)(["\n mutation Save($accounts: JSONObject) {\n saveAccounts(accounts: $accounts)\n }\n"]);return Hv=function(){return e},e}function Vv(){var e=Object(tn.a)(["\n query getData {\n accounts\n }\n"]);return Vv=function(){return e},e}var Yv=sn()(Vv()),Gv=sn()(Hv()),Zv=Object(m.a)({wrapper:{marginLeft:1}}),_v=function(){var e,t=Object(a.useState)(null),n=Object(o.a)(t,2),l=n[0],i=n[1],c=Object(nn.c)(Yv).data,s=Object(nn.b)(Gv,{onCompleted:function(){return i(null)},refetchQueries:["getData"]}),u=Object(o.a)(s,1)[0],d=Zv(),m=null!==(e=null===c||void 0===c?void 0:c.accounts)&&void 0!==e?e:{},f=function(e,t){var n=hr.a(xn.a("face"))(t),a=m[e]||{};return jn.a((function(e){var t,n=e.display,r=e.code;return{label:n,value:e.long?(t=a[r],!t||t.length<=20?t:"".concat(t.slice(0,8),"(...)").concat(t.slice(t.length-8,t.length))):a[r]}}))(n)};return r.a.createElement("div",{className:d.wrapper},r.a.createElement(uo,{title:"3rd Party Services"}),r.a.createElement(_m.a,{container:!0,spacing:4},ql.a(cm).map((function(e){return r.a.createElement(_m.a,{item:!0,key:e.code},r.a.createElement($v,{editMessage:"Configure "+e.title,title:e.title,onEdit:function(){return i(e)},items:f(e.code,e.elements)}))}))),l&&r.a.createElement(po,{title:"Edit ".concat(l.name),width:478,handleClose:function(){return i(null)},open:!0},r.a.createElement(Km,{save:function(e){return u({variables:{accounts:Object(I.a)({},l.code,e)}})},elements:l.elements,validationSchema:l.validationSchema,value:m[l.code]})))},Uv=n(534),Jv=n(535),Kv=n(560);function Qv(){return(Qv=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var ey=a.createElement("desc",null,"Created with Sketch."),ty=a.createElement("g",{id:"icon/ID/card/white",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},a.createElement("polygon",{id:"Stroke-1",stroke:"#FFFFFF",strokeWidth:1.6,points:"0 16 22 16 22 0 0 0"}),a.createElement("line",{x1:11.7857143,y1:4,x2:18.8571429,y2:4,id:"Stroke-3",stroke:"#FFFFFF",strokeWidth:1.6}),a.createElement("line",{x1:11.7857143,y1:7.2,x2:18.8571429,y2:7.2,id:"Stroke-4",stroke:"#FFFFFF",strokeWidth:1.6}),a.createElement("polygon",{id:"Stroke-5",stroke:"#FFFFFF",strokeWidth:1.6,points:"3.14285714 11.2 8.64285714 11.2 8.64285714 4 3.14285714 4"}));function ny(e,t){var n=e.title,r=e.titleId,l=Xv(e,["title","titleId"]);return a.createElement("svg",Qv({width:"22px",height:"16px",viewBox:"0 0 22 16",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,ey,ty)}var ay=a.forwardRef(ny);n.p;function ry(){return(ry=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var iy=a.createElement("desc",null,"Created with Sketch."),oy=a.createElement("g",{id:"icon/ID/phone/white",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},a.createElement("path",{d:"M6.47150618,12.52898 C9.939556,15.9970298 13.7804112,16.1146315 15.4756355,15.9586292 C16.0220434,15.9090285 16.5308507,15.6578249 16.9188563,15.2698193 L19.0004862,13.1881894 L17.0220577,11.210561 L15.0436293,10.5505516 L13.7244104,11.8697705 C13.7244104,11.8697705 12.4059914,13.1881894 9.10914407,9.89054208 C5.81229671,6.59449473 7.13071565,5.27527578 7.13071565,5.27527578 L8.4499346,3.95605683 L7.78992512,1.97842842 L5.81229671,0 L3.73066681,2.0816299 C3.34186123,2.46963548 3.09145763,2.97844279 3.04105691,3.52485063 C2.88585468,5.22007499 3.00345637,9.06013015 6.47150618,12.52898 Z",id:"Stroke-1-Copy",stroke:"#FFFFFF",strokeWidth:1.6}));function cy(e,t){var n=e.title,r=e.titleId,l=ly(e,["title","titleId"]);return a.createElement("svg",ry({width:"22px",height:"16px",viewBox:"0 0 22 16",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,iy,oy)}var sy=a.forwardRef(cy);n.p;function uy(){return(uy=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var my=a.createElement("desc",null,"Created with Sketch."),fy=a.createElement("g",{id:"icon/ID/phone/zodiac",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},a.createElement("path",{d:"M6.47150618,12.52898 C9.939556,15.9970298 13.7804112,16.1146315 15.4756355,15.9586292 C16.0220434,15.9090285 16.5308507,15.6578249 16.9188563,15.2698193 L19.0004862,13.1881894 L17.0220577,11.210561 L15.0436293,10.5505516 L13.7244104,11.8697705 C13.7244104,11.8697705 12.4059914,13.1881894 9.10914407,9.89054208 C5.81229671,6.59449473 7.13071565,5.27527578 7.13071565,5.27527578 L8.4499346,3.95605683 L7.78992512,1.97842842 L5.81229671,0 L3.73066681,2.0816299 C3.34186123,2.46963548 3.09145763,2.97844279 3.04105691,3.52485063 C2.88585468,5.22007499 3.00345637,9.06013015 6.47150618,12.52898 Z",id:"Stroke-1-Copy",stroke:"#1B2559",strokeWidth:1.6}));function py(e,t){var n=e.title,r=e.titleId,l=dy(e,["title","titleId"]);return a.createElement("svg",uy({width:"22px",height:"16px",viewBox:"0 0 22 16",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,my,fy)}var hy=a.forwardRef(py);n.p;function by(){return(by=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var vy=a.createElement("desc",null,"Created with Sketch."),yy=a.createElement("g",{id:"icon/ID/photo/white",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},a.createElement("path",{d:"M11,13 C8.7912,13 7,11.2088 7,9 C7,6.7912 8.7912,5 11,5 C13.2088,5 15,6.7912 15,9 C15,11.2088 13.2088,13 11,13 Z M15.7142857,2.4 L13.3571429,0 L8.64285714,0 L6.28571429,2.4 L0,2.4 L0,16 L22,16 L22,2.4 L15.7142857,2.4 Z",id:"Stroke-1",stroke:"#FFFFFF",strokeWidth:1.6}));function Ey(e,t){var n=e.title,r=e.titleId,l=gy(e,["title","titleId"]);return a.createElement("svg",by({width:"22px",height:"16px",viewBox:"0 0 22 16",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,vy,yy)}var Oy=a.forwardRef(Ey);n.p;function wy(){return(wy=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var jy=a.createElement("desc",null,"Created with Sketch."),Cy=a.createElement("g",{id:"icon/ID/photo/zodiac",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},a.createElement("path",{d:"M11,13 C8.7912,13 7,11.2088 7,9 C7,6.7912 8.7912,5 11,5 C13.2088,5 15,6.7912 15,9 C15,11.2088 13.2088,13 11,13 Z M15.7142857,2.4 L13.3571429,0 L8.64285714,0 L6.28571429,2.4 L0,2.4 L0,16 L22,16 L22,2.4 L15.7142857,2.4 Z",id:"Stroke-1",stroke:"#1B2559",strokeWidth:1.6}));function ky(e,t){var n=e.title,r=e.titleId,l=xy(e,["title","titleId"]);return a.createElement("svg",wy({width:"22px",height:"16px",viewBox:"0 0 22 16",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,jy,Cy)}var Sy=a.forwardRef(ky),Ny=(n.p,{wrapper:{display:"flex",flexDirection:"column",marginTop:24},row:{display:"flex",flexDirection:"row",marginBottom:36},secondRow:{display:"flex",flexDirection:"row",justifyContent:"space-between",marginBottom:36},lastRow:{display:"flex",flexDirection:"row",marginBottom:32},label:{color:J,margin:[[0,0,6,0]]},txIcon:{marginRight:10},popover:{height:164,width:215},idButton:{marginRight:4},idCardDataCard:{extend:Ee.p,display:"flex",padding:[[11,8]],"& > div":{display:"flex",flexDirection:"column","& > div":{width:144,height:37,marginBottom:15,"&:last-child":{marginBottom:0}}}},bold:{fontWeight:700},direction:{width:233},availableIds:{width:232},exchangeRate:{width:250},commission:{width:217},address:{width:280},transactionId:{width:280},sessionId:{width:215}}),Iy=function(e){return"cashOut"===e.txClass?function(e){return e.hasError?"Error":e.dispense?"Success":e.expired?"Expired":"Pending"}(e):function(e){return e.operatorCompleted?"Cancelled":e.hasError?"Error":e.sendConfirmed?"Sent":e.expired?"Expired":"Pending"}(e)},Ly=Object(m.a)(Ny),By=function(e){var t=e.children,n=Ly();return r.a.createElement(Kt,{className:n.label},t)},Py=function(e){var t=e.it,n=Ly(),a=Number.parseFloat(t.fiat),l=sd(new Vu.a(t.cryptoAtoms),t.cryptoCode),i=Number.parseFloat(t.commissionPercentage,2),o=Number(a*i).toFixed(2),c=Number(a/l).toFixed(3),s="1 ".concat(t.cryptoCode," = ").concat(c," ").concat(t.fiatCode),u=t.customerIdCardData&&{name:"".concat(Tl(t.customerIdCardData.firstName)," ").concat(Tl(t.customerIdCardData.lastName)),age:Mu()().diff(Mu()(t.customerIdCardData.dateOfBirth),"years"),country:t.customerIdCardData.country,idCardNumber:t.customerIdCardData.documentNumber,idCardExpirationDate:Mu()(t.customerIdCardData.expirationDate).format("DD-MM-YYYY")};return r.a.createElement("div",{className:n.wrapper},r.a.createElement("div",{className:n.row},r.a.createElement("div",{className:n.direction},r.a.createElement(By,null,"Direction"),r.a.createElement("div",null,r.a.createElement("span",{className:n.txIcon},"cashOut"===t.txClass?r.a.createElement(Oo,null):r.a.createElement(kc,null)),r.a.createElement("span",null,"cashOut"===t.txClass?"Cash-out":"Cash-in"))),r.a.createElement("div",{className:n.availableIds},r.a.createElement(By,null,"Available IDs"),r.a.createElement(Xi.a,{display:"flex",flexDirection:"row"},t.customerPhone&&r.a.createElement(tt,{className:n.idButton,name:"phone",Icon:hy,InverseIcon:sy},t.customerPhone),t.customerIdCardPhotoPath&&!t.customerIdCardData&&r.a.createElement(tt,{popoverClassname:n.popover,className:n.idButton,name:"card",Icon:vu,InverseIcon:ay},r.a.createElement("img",{className:n.idCardPhoto,src:"".concat(C,"/id-card-photo/").concat(t.customerIdCardPhotoPath),alt:""})),t.customerIdCardData&&r.a.createElement(tt,{className:n.idButton,name:"card",Icon:vu,InverseIcon:ay},r.a.createElement("div",{className:n.idCardDataCard},r.a.createElement("div",null,r.a.createElement("div",null,r.a.createElement(By,null,"Name"),r.a.createElement("div",null,u.name)),r.a.createElement("div",null,r.a.createElement(By,null,"Age"),r.a.createElement("div",null,u.age)),r.a.createElement("div",null,r.a.createElement(By,null,"Country"),r.a.createElement("div",null,u.country))),r.a.createElement("div",null,r.a.createElement("div",null,r.a.createElement(By,null,"ID number"),r.a.createElement("div",null,u.idCardNumber)),r.a.createElement("div",null,r.a.createElement(By,null,"Expiration date"),r.a.createElement("div",null,u.idCardExpirationDate))))),t.customerFrontCameraPath&&r.a.createElement(tt,{name:"cam",Icon:Sy,InverseIcon:Oy},r.a.createElement("img",{src:"".concat(C,"/front-camera-photo/").concat(t.customerFrontCameraPath),alt:""})))),r.a.createElement("div",{className:n.exchangeRate},r.a.createElement(By,null,"Exchange rate"),r.a.createElement("div",null,l>0?s:"-")),r.a.createElement("div",{className:n.commission},r.a.createElement(By,null,"Commission"),r.a.createElement("div",null,"".concat(o," ").concat(t.fiatCode," (").concat(100*i," %)"))),r.a.createElement("div",null,r.a.createElement(By,null,"Fixed fee"),r.a.createElement("div",null,"cashIn"===t.txClass?"".concat(Number.parseFloat(t.cashInFee)," ").concat(t.fiatCode):"N/A"))),r.a.createElement("div",{className:n.secondRow},r.a.createElement("div",{className:n.address},r.a.createElement(By,null,"Address"),r.a.createElement("div",null,r.a.createElement(jd,null,function(){return ud(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",arguments.length>1&&void 0!==arguments[1]?arguments[1]:"").replace(/(.{5})/g,"$1 ")}(t.cryptoCode,t.toAddress)))),r.a.createElement("div",{className:n.transactionId},r.a.createElement(By,null,"Transaction ID"),r.a.createElement("div",null,"cashOut"===t.txClass?"N/A":r.a.createElement(jd,null,t.txHash))),r.a.createElement("div",{className:n.sessionId},r.a.createElement(By,null,"Session ID"),r.a.createElement(jd,null,t.id))),r.a.createElement("div",{className:n.lastRow},r.a.createElement("div",null,r.a.createElement(By,null,"Transaction status"),r.a.createElement("span",{className:n.bold},Iy(t)))))},Fy=Object(a.memo)(Py,(function(e,t){return e.id===t.id}));function Dy(){var e=Object(tn.a)(["\n query transactions($limit: Int, $from: Date, $until: Date) {\n transactions(limit: $limit, from: $from, until: $until) {\n id\n txClass\n txHash\n toAddress\n commissionPercentage\n expired\n machineName\n operatorCompleted\n sendConfirmed\n dispense\n hasError: error\n deviceId\n fiat\n cashInFee\n fiatCode\n cryptoAtoms\n cryptoCode\n toAddress\n created\n customerName\n customerIdCardData\n customerIdCardPhotoPath\n customerFrontCameraPath\n customerPhone\n }\n }\n"]);return Dy=function(){return e},e}function Ty(){var e=Object(tn.a)(["\n query transactions($limit: Int, $from: Date, $until: Date) {\n transactionsCsv(limit: $limit, from: $from, until: $until)\n }\n"]);return Ty=function(){return e},e}var Wy=Object(m.a)(wd),Ry=sn()(Ty()),zy=sn()(Dy()),Ay=function(){var e=Wy(),t=Object(nn.c)(zy,{variables:{limit:1e3}}),n=t.data,a=t.loading,l=[{header:"",width:62,size:"sm",view:function(e){return"cashOut"===e.txClass?r.a.createElement(Oo,null):r.a.createElement(kc,null)}},{header:"Machine",name:"machineName",width:180,size:"sm",view:Or.a(["machineName"])},{header:"Customer",width:162,size:"sm",view:function(e){return e.customerName?e.customerName:e.customerIdCardData?function(e){var t=e.firstName,n=e.lastName;return"".concat(Uv.a(Jv.a,Kv.a)(t),". ").concat(n)}(e.customerIdCardData):e.customerPhone}},{header:"Cash",width:144,textAlign:"right",size:"sm",view:function(e){return"".concat(Number.parseFloat(e.fiat)," ").concat(e.fiatCode)}},{header:"Crypto",width:144,textAlign:"right",size:"sm",view:function(e){return"".concat(sd(new Vu.a(e.cryptoAtoms),e.cryptoCode).toFormat(5)," ").concat(e.cryptoCode)}},{header:"Address",view:function(e){return ud(e.cryptoCode,e.toAddress)},className:e.overflowTd,size:"sm",width:140},{header:"Date (UTC)",view:function(e){return Mu.a.utc(e.created).format("YYYY-MM-DD HH:mm:ss")},textAlign:"right",size:"sm",width:200},{header:"Status",view:function(e){return Iy(e)},size:"sm",width:80}];return r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:e.titleWrapper},r.a.createElement("div",{className:e.titleAndButtonsContainer},r.a.createElement(gn,null,"Transactions"),n&&r.a.createElement("div",{className:e.buttonsWrapper},r.a.createElement(wp,{title:"Download logs",name:"transactions",query:Ry,getLogs:function(e){return Or.a(["transactionsCsv"])(e)}}))),r.a.createElement("div",{className:e.headerLabels},r.a.createElement("div",null,r.a.createElement(Oo,null),r.a.createElement("span",null,"Cash-out")),r.a.createElement("div",null,r.a.createElement(kc,null),r.a.createElement("span",null,"Cash-in")))),r.a.createElement(od,{loading:a,emptyText:"No transactions so far",elements:l,data:Or.a(["transactions"])(n),Details:Fy,expandable:!0}))},My=n(536),qy=Object(m.a)({radioLabel:{height:40,padding:[[0,10]]},radio:{padding:4,margin:4},radioGroup:{flexDirection:"row"},error:{color:X},specialLabel:{height:40,padding:0},specialGrid:{display:"grid",gridTemplateColumns:[[182,162,141]]},directionIcon:{marginRight:2},directionName:{marginLeft:6},thresholdWrapper:{display:"flex"},thresholdField:{margin:10,width:208},space:{marginLeft:6,marginRight:6},lastSpace:{marginLeft:6},suspensionDays:{width:34},input:{marginTop:-2},limitedInput:{width:50},daysInput:{width:60}}),$y=hn.e().required(),Hy=hn.d().shape({threshold:hn.c(),thresholdDays:hn.c()}),Vy=hn.d().shape({requirement:hn.e().required(),suspensionDays:hn.c()}),Yy=hn.d().shape({triggerType:$y,requirement:Vy,threshold:Hy}),Gy=hn.d().shape({triggerType:$y,threshold:Hy}),Zy=[{display:"Transaction amount",code:"txAmount"},{display:"Transaction volume",code:"txVolume"},{display:"Transaction velocity",code:"txVelocity"},{display:"Consecutive days",code:"consecutiveDays"}],_y={schema:Gy,options:Zy,Component:function(){var e=qy(),t=Object(on.e)(),n=t.errors,a=t.touched,l=t.values,i=Object(I.a)({},e.error,n.triggerType&&a.triggerType),o=gr.a(null===l||void 0===l?void 0:l.triggerType),c=o(["txAmount","txVolume","txVelocity"]),s=o(["txVolume","txVelocity","consecutiveDays"]);return r.a.createElement(r.a.Fragment,null,r.a.createElement(Xi.a,{display:"flex",alignItems:"center"},r.a.createElement($t,{className:N()(i)},"Choose trigger type")),r.a.createElement(on.b,{component:Jn,name:"triggerType",options:Zy,labelClassName:e.radioLabel,radioClassName:e.radio,className:e.radioGroup}),r.a.createElement("div",{className:e.thresholdWrapper},c&&r.a.createElement(on.b,{className:e.thresholdField,component:Qn,label:"Threshold",size:"lg",name:"threshold.threshold"}),s&&r.a.createElement(on.b,{className:e.thresholdField,component:Qn,label:"Threshold Days",size:"lg",name:"threshold.thresholdDays"})))},initialValues:{triggerType:"",threshold:""}},Uy=hn.d().shape({requirement:Vy}),Jy=[{display:"SMS verification",code:"sms"},{display:"ID card image",code:"idCardPhoto"},{display:"ID data",code:"idCardData"},{display:"Customer camera",code:"facephoto"},{display:"Sanctions",code:"sanctions"},{display:"US SSN",code:"usSsn"},{display:"Suspend",code:"suspend"},{display:"Block",code:"block"}],Ky={schema:Uy,options:Jy,Component:function(){var e,t=qy(),n=Object(on.e)(),a=n.errors,l=n.values,i=Object(I.a)({},t.error,a.requirement),o="suspend"===(null===l||void 0===l||null===(e=l.requirement)||void 0===e?void 0:e.requirement);return r.a.createElement(r.a.Fragment,null,r.a.createElement(Xi.a,{display:"flex",alignItems:"center"},r.a.createElement($t,{className:N()(i)},"Choose a requirement")),r.a.createElement(on.b,{component:Jn,name:"requirement.requirement",options:Jy,labelClassName:t.specialLabel,radioClassName:t.radio,className:N()(t.radioGroup,t.specialGrid)}),o&&r.a.createElement(on.b,{className:t.thresholdField,component:Qn,label:"Days",size:"lg",name:"requirement.suspensionDays"}))},initialValues:{requirement:""}},Qy=function(e,t,n){return function(a){return e?mn.a(xn.a(t),On.a(wn.a(null!==n&&void 0!==n?n:"code",a)))(e):""}},Xy=function(){var e,t=Object(on.e)().values,n=qy(),a=null===t||void 0===t||null===(e=t.requirement)||void 0===e?void 0:e.requirement,l="suspend"===a,i=Qy(Jy,"display")(a);return r.a.createElement(Xi.a,{display:"flex",alignItems:"baseline"},"".concat(i," ").concat(l?"for":""),l&&r.a.createElement(on.b,{bold:!0,className:n.suspensionDays,name:"requirement.suspensionDays",component:Qn,textAlign:"center"}),l&&"days")},eE=function(e){var t=e.requirement,n=e.suspensionDays,a=qy(),l=Qy(Jy,"display")(t),i="suspend"===t;return r.a.createElement(Xi.a,{display:"flex",alignItems:"baseline"},"".concat(l," ").concat(i?"for":""),i&&r.a.createElement(Gt,{className:a.space,noMargin:!0},n),i&&"days")},tE=function(e){var t,n,a,l=e.config,i=e.currency,o=e.isEdit,c=qy(),s=(t={},Object(I.a)(t,c.input,!0),Object(I.a)(t,c.limitedInput,"txVelocity"===(null===l||void 0===l?void 0:l.triggerType)),Object(I.a)(t,c.daysInput,"consecutiveDays"===(null===l||void 0===l?void 0:l.triggerType)),t),u=null===l||void 0===l||null===(n=l.threshold)||void 0===n?void 0:n.threshold,d=null===l||void 0===l||null===(a=l.threshold)||void 0===a?void 0:a.thresholdDays,m=o?r.a.createElement(on.b,{bold:!0,className:N()(s),name:"threshold.threshold",component:Qn,textAlign:"right"}):r.a.createElement(Gt,{noMargin:!0},u),f=o?r.a.createElement(on.b,{bold:!0,className:N()(s),name:"threshold.thresholdDays",component:Qn,textAlign:"right"}):r.a.createElement(Gt,{noMargin:!0},d);switch(null===l||void 0===l?void 0:l.triggerType){case"txAmount":return r.a.createElement(Xi.a,{display:"flex",alignItems:"baseline",justifyContent:"right"},m,r.a.createElement(Qt,{noMargin:!0,className:c.lastSpace},i));case"txVolume":return r.a.createElement(Xi.a,{display:"flex",alignItems:"baseline",justifyContent:"right"},m,r.a.createElement(Qt,{noMargin:!0,className:c.lastSpace},i),r.a.createElement(Kt,{noMargin:!0,className:c.space},"in"),f,r.a.createElement(Kt,{noMargin:!0,className:c.lastSpace},"days"));case"txVelocity":return r.a.createElement(Xi.a,{display:"flex",alignItems:"baseline",justifyContent:"right"},m,r.a.createElement(Kt,{className:c.space,noMargin:!0},"transactions in"),f,r.a.createElement(Kt,{className:c.lastSpace,noMargin:!0},"days"));case"consecutiveDays":return r.a.createElement(Xi.a,{display:"flex",alignItems:"baseline",justifyContent:"right"},f,r.a.createElement(Kt,{className:c.lastSpace,noMargin:!0},"days"));default:return""}},nE=Object(a.memo)((function(e){var t=e.currency,n=Object(on.e)().values;return r.a.createElement(tE,{isEdit:!0,config:n,currency:t})})),aE=function(e){var t=e.config,n=e.currency;return r.a.createElement(tE,{config:t,currency:n})},rE=function(e,t){return[{name:"triggerType",size:"sm",width:230,input:function(e){var t=e.field.value;return r.a.createElement(r.a.Fragment,null,Qy(Zy,"display")(t))},view:Qy(Zy,"display"),inputProps:{options:Zy,valueProp:"code",getLabel:Or.a(["display"]),optionsLimit:null}},{name:"requirement",size:"sm",width:230,bypassField:!0,input:Xy,view:function(e){return r.a.createElement(eE,e)}},{name:"threshold",size:"sm",width:284,textAlign:"right",input:function(){return r.a.createElement(nE,{currency:e})},view:function(t,n){return r.a.createElement(aE,{config:n,currency:e})}}]},lE=jn.a(xn.a("code"))(Zy),iE=[My.a((function(e,t){return lE.indexOf(e.triggerType) p":{width:330,marginTop:4,marginLeft:16}},actionButton:{marginBottom:32},actionButtonLink:{textDecoration:"none",color:M},error:{color:X},button:{marginTop:40},formButton:{margin:[[24,0,0]]}};function ZE(){var e=Object(tn.a)(["\n mutation Save($accounts: JSONObject) {\n saveAccounts(accounts: $accounts)\n }\n"]);return ZE=function(){return e},e}function _E(){var e=Object(tn.a)(["\n {\n config\n accounts\n }\n"]);return _E=function(){return e},e}var UE=sn()(_E()),JE=sn()(ZE()),KE=Object(m.a)(Object(c.a)(Object(c.a)({},GE),{},{content:{width:820},radioLabel:Object(c.a)(Object(c.a)({},GE.radioLabel),{},{width:280}),wrapper:{width:1200,height:100,margin:[[0,"auto"]]},title:{marginLeft:8,marginBottom:5},info:{marginTop:20,marginBottom:20}})),QE=[{code:"enable",display:"Yes, I will"},{code:"disable",display:"No, not for now"}];var XE=function(e){var t,n,l=e.doContinue,i=KE(),c=Object(a.useState)(null),s=Object(o.a)(c,2),u=s[0],d=s[1],m=Object(a.useState)(!1),f=Object(o.a)(m,2),p=f[0],h=f[1],b=Object(nn.c)(UE),g=b.data,v=b.refetch,y=Object(nn.b)(JE,{onCompleted:l}),E=Object(o.a)(y,1)[0],O=null!==(t=null===g||void 0===g?void 0:g.accounts)&&void 0!==t?t:[],w=(n={},Object(I.a)(n,i.title,!0),Object(I.a)(n,i.error,p),n);return r.a.createElement("div",{className:i.wrapper},r.a.createElement("div",{className:i.content},r.a.createElement(At,null,"Twilio (SMS service)"),r.a.createElement(Xi.a,{display:"flex",alignItems:"end"},r.a.createElement($t,{noMargin:!0,className:N()(w)},"Will you setup a two way machine or compliance?"),r.a.createElement(Br,{width:304},r.a.createElement(Vt,null,"Two-way machines allow your customers not only to buy (cash-in) but also sell cryptocurrencies (cash-out)."),r.a.createElement(Vt,null,"You\u2019ll need an SMS service for cash-out transactions and for any compliance triggers"))),r.a.createElement(Hn,{labelClassName:i.radioLabel,className:i.radioGroup,options:QE,value:u,onChange:function(e){d(e.target.value),h(!1)}}),r.a.createElement(YE,{className:i.info},"To set up Twilio please read the instructions from our support portal."),r.a.createElement(Rt,{link:"https://support.lamassu.is/hc/en-us/articles/115001203951-Twilio-for-SMS",label:"Twilio for SMS"}),"enable"===u&&r.a.createElement(r.a.Fragment,null,r.a.createElement($t,{noMargin:!0},"Enter credentials"),r.a.createElement(Km,{xs:6,save:function(e){return E({variables:{accounts:{twilio:e}}}).then((function(){return v()}))},value:O.twilio,elements:om.elements,validationSchema:om.validationSchema,buttonLabel:"Continue",buttonClass:i.formButton})),"enable"!==u&&r.a.createElement(Ae,{size:"lg",onClick:function(){if(!u)return h(!0);l()},className:i.button},"Continue")))},eO=n(537);function tO(){var e=Object(tn.a)(["\n mutation Save($config: JSONObject, $accounts: JSONObject) {\n saveConfig(config: $config)\n saveAccounts(accounts: $accounts)\n }\n"]);return tO=function(){return e},e}function nO(){var e=Object(tn.a)(["\n query getData {\n config\n accounts\n accountsConfig {\n code\n display\n class\n cryptos\n }\n cryptoCurrencies {\n code\n display\n }\n }\n"]);return nO=function(){return e},e}var aO=Object(m.a)(GE),rO=sn()(nO()),lO=sn()(tO()),iO=function(e){var t,n=e.data,l=e.doContinue,i=aO(),c=Object(nn.c)(rO).data,s=Object(nn.b)(lO,{onCompleted:l}),u=Object(o.a)(s,1)[0],d=Object(a.useState)(!1),m=Object(o.a)(d,2),f=m[0],p=m[1],h=null===n||void 0===n?void 0:n.coin,b=null===c||void 0===c?void 0:c.accountsConfig,g=null!==(t=null===c||void 0===c?void 0:c.cryptoCurrencies)&&void 0!==t?t:[];return r.a.createElement(r.a.Fragment,null,r.a.createElement($t,{className:f&&i.error},"All set"),r.a.createElement(Vt,null,"These are your wallet settings. You can later edit these and add additional coins."),r.a.createElement(Qi,{rowSize:"lg",titleLg:!0,name:"All set",namespaces:[h],data:Kr(h,Pr.a("coin",n)),elements:uf(g,b,!0)}),r.a.createElement(Ae,{size:"lg",onClick:function(){if(!sf.isValidSync(n))return p(!0);var e=Kr(h,Pr.a("coin",n)),t=Kr(Ar)(e);return p(!1),u({variables:{config:t}})},className:i.button},"Continue"))};function oO(){var e=Object(tn.a)(["\n mutation SaveAccountsBC($accounts: JSONObject) {\n saveAccounts(accounts: $accounts)\n }\n"]);return oO=function(){return e},e}function cO(){var e=Object(tn.a)(["\n {\n accounts\n }\n"]);return cO=function(){return e},e}var sO=Object(m.a)(Object(c.a)(Object(c.a)({},GE),{},{radioGroup:GE.radioGroup,radioLabel:Object(c.a)(Object(c.a)({},GE.radioLabel),{},{width:200})})),uO=sn()(cO()),dO=sn()(oO()),mO=[{code:"enable",display:"I will enable cash-out"},{code:"disable",display:"I won't enable cash-out"}],fO=function(e){var t,n=e.addData,l=sO(),i=Object(nn.c)(uO).data,c=Object(nn.b)(dO,{onCompleted:function(){return n({zeroConf:"blockcypher"})}}),s=Object(o.a)(c,1)[0],u=Object(a.useState)(null),d=Object(o.a)(u,2),m=d[0],f=d[1],p=Object(a.useState)(!1),h=Object(o.a)(p,2),b=h[0],g=h[1],v=null!==(t=null===i||void 0===i?void 0:i.accounts)&&void 0!==t?t:[];return r.a.createElement(r.a.Fragment,null,r.a.createElement($t,{className:b&&l.error},"Blockcypher"),r.a.createElement(Vt,null,"If you are enabling cash-out services, create a Blockcypher account."),r.a.createElement(Rt,{link:"https://support.lamassu.is/hc/en-us/articles/115001209472-Blockcypher",label:"Configuring Blockcypher"}),r.a.createElement(Hn,{labelClassName:l.radioLabel,className:l.radioGroup,options:mO,value:m,onChange:function(e){f(e.target.value),g(!1)}}),r.a.createElement("div",{className:l.mdForm},"disable"===m&&r.a.createElement(Ae,{size:"lg",onClick:function(){return n({zeroConf:"all-zero-conf"})},className:l.button},"Continue"),"enable"===m&&r.a.createElement(Km,{value:v.blockcypher,save:function(e){return s({variables:{accounts:{blockcypher:e}}})},elements:cm.blockcypher.elements,validationSchema:cm.blockcypher.validationSchema,buttonLabel:"Continue",buttonClass:l.formButton})))};function pO(){var e=Object(tn.a)(["\n {\n cryptoCurrencies {\n code\n display\n }\n }\n"]);return pO=function(){return e},e}var hO=Object(m.a)(GE),bO=sn()(pO()),gO=hn.d().shape({coin:hn.e().required()}),vO=function(e){var t,n=e.addData,l=hO(),i=Object(a.useState)(!1),c=Object(o.a)(i,2),s=c[0],u=c[1],d=Object(nn.c)(bO).data,m=null!==(t=null===d||void 0===d?void 0:d.cryptoCurrencies)&&void 0!==t?t:[];return r.a.createElement(r.a.Fragment,null,r.a.createElement($t,{className:s&&l.error},"Choose your first cryptocurrency"),r.a.createElement(on.d,{enableReinitialize:!0,initialValues:{coin:""},onSubmit:function(e){return gO.isValidSync(e)?"BTC"!==e.coin?n({coin:e.coin,zeroConf:"all-zero-conf"}):void n(e):u(!0)}},r.a.createElement(on.c,{onChange:function(){return u(!1)}},r.a.createElement(ul,null),r.a.createElement(on.b,{component:Jn,name:"coin",labelClassName:l.radioLabel,className:l.radioGroup,options:m}),r.a.createElement(Ae,{size:"lg",type:"submit",className:l.button},"Continue"))))},yO=function(e,t){return hr.a((function(n){return function(e){return wn.a("class",e)}(t)(n)&&function(e){return mn.a(gr.a(e),xn.a("cryptos"))}(e)(n)}))},EO=function(e,t,n,a){var r=yO(a,n)(e),l=kl.a((function(e){var n=e.code,a=function(e){return t&&t[e]}(n);return!cm[n]||cm[n].validationSchema.isValidSync(a)}))(r),i=Object(o.a)(l,2);return{filled:i[0],unfilled:i[1]}};function OO(){var e=Object(tn.a)(["\n mutation Save($accounts: JSONObject) {\n saveAccounts(accounts: $accounts)\n }\n"]);return OO=function(){return e},e}function wO(){var e=Object(tn.a)(["\n {\n accounts\n accountsConfig {\n code\n display\n class\n cryptos\n }\n cryptoCurrencies {\n code\n display\n }\n }\n"]);return wO=function(){return e},e}var xO=Object(m.a)(GE),jO=sn()(wO()),CO=sn()(OO()),kO=function(e){return gr.a(e)(["kraken","itbit","bitstamp"])},SO=function(e){var t,n,l,i=e.data,c=e.addData,s=xO(),u=Object(nn.c)(jO).data,d=Object(nn.b)(CO,{onCompleted:function(){return C()}}),m=Object(o.a)(d,1)[0],f=Object(a.useState)(null),p=Object(o.a)(f,2),h=p[0],b=p[1],g=Object(a.useState)(!1),v=Object(o.a)(g,2),y=v[0],E=v[1],O=null!==(t=null===u||void 0===u?void 0:u.accounts)&&void 0!==t?t:[],w=null!==(n=null===u||void 0===u?void 0:u.accountsConfig)&&void 0!==n?n:[],x=i.coin,j=EO(w,O,"exchange",x),C=function(){if(!h)return E(!0);c({exchange:h})};return r.a.createElement("div",{className:s.mdForm},r.a.createElement($t,{className:y&&s.error},"Choose your exchange"),r.a.createElement(Hn,{labelClassName:s.radioLabel,className:s.radioGroup,options:kn.a(j.filled,j.unfilled),value:h,onChange:function(e){b(e.target.value),E(!1)}}),!kO(h)&&r.a.createElement(Ae,{size:"lg",onClick:C,className:s.button},"Continue"),kO(h)&&r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:s.infoMessage},r.a.createElement(Ra,null),r.a.createElement(Zt,null,"Make sure you set up ",cm[h].name," to enter the necessary information below. Please follow the instructions on our support page if you haven\u2019t.")),r.a.createElement(Rt,{link:{kraken:"https://support.lamassu.is/hc/en-us/articles/115001206891-Kraken-trading",itbit:"https://support.lamassu.is/hc/en-us/articles/360026195032-itBit-trading",bitstamp:"https://support.lamassu.is/hc/en-us/articles/115001206911-Bitstamp-trading"}[h],label:"".concat(cm[h].name," trading")}),r.a.createElement($t,{noMargin:!0},"Enter exchange information"),r.a.createElement(Km,{value:O[h],save:(l=h,function(e){var t=Object(I.a)({},l,e);return m({variables:{accounts:t}})}),elements:cm[h].elements,validationSchema:cm[h].validationSchema,buttonLabel:"Continue",buttonClass:s.formButton})))};function NO(){var e=Object(tn.a)(["\n {\n accountsConfig {\n code\n display\n class\n cryptos\n }\n }\n"]);return NO=function(){return e},e}var IO=Object(m.a)(GE),LO=sn()(NO()),BO=function(e){var t,n,l=e.data,i=e.addData,c=IO(),s=Object(nn.c)(LO).data,u=Object(a.useState)(null),d=Object(o.a)(u,2),m=d[0],f=d[1],p=Object(a.useState)(!1),h=Object(o.a)(p,2),b=h[0],g=h[1],v=null!==(t=null===s||void 0===s?void 0:s.accounts)&&void 0!==t?t:[],y=null!==(n=null===s||void 0===s?void 0:s.accountsConfig)&&void 0!==n?n:[],E=l.coin,O=EO(y,v,"ticker",E);return r.a.createElement("div",{className:c.mdForm},r.a.createElement($t,{className:b&&c.error},"Choose your ticker"),r.a.createElement(Hn,{labelClassName:c.radioLabel,className:c.radioGroup,options:kn.a(O.filled,O.unfilled),value:m,onChange:function(e){f(e.target.value),g(!1)}}),r.a.createElement(Ae,{size:"lg",onClick:function(){if(!m)return g(!0);i({ticker:m})},className:c.button},"Continue"))},PO=function(e){var t;return{code:"bitgo",name:"BitGo",title:"BitGo (Wallet)",elements:[{code:"token",display:"API Token",component:Qn,face:!0,long:!0},{code:"environment",display:"Environment",component:_n,inputProps:{options:["prod","test"]},face:!0},{code:"".concat(e,"WalletId"),display:"".concat(e," Wallet ID"),component:Qn},{code:"".concat(e,"WalletPassphrase"),display:"".concat(e," Wallet Passphrase"),component:Kn}],validationSchema:hn.d().shape((t={token:hn.e().max(100,"Too long").required(),environment:hn.e().matches(/(prod|test)/).required()},Object(I.a)(t,"".concat(e,"WalletId"),hn.e().max(100,"Too long").required()),Object(I.a)(t,"".concat(e,"WalletPassphrase"),hn.e().max(100,"Too long").required()),t))}};function FO(){var e=Object(tn.a)(["\n mutation Save($accounts: JSONObject) {\n saveAccounts(accounts: $accounts)\n }\n"]);return FO=function(){return e},e}function DO(){var e=Object(tn.a)(["\n {\n accounts\n accountsConfig {\n code\n display\n class\n cryptos\n }\n cryptoCurrencies {\n code\n display\n }\n }\n"]);return DO=function(){return e},e}var TO=Object(m.a)(GE),WO=sn()(DO()),RO=sn()(FO()),zO=function(e){var t,n,l,i=e.data,c=e.addData,s=TO(),u=Object(nn.c)(WO).data,d=Object(nn.b)(RO,{onCompleted:function(){return k()}}),m=Object(o.a)(d,1)[0],f=Object(a.useState)(null),p=Object(o.a)(f,2),h=p[0],b=p[1],g=Object(a.useState)(!1),v=Object(o.a)(g,2),y=v[0],E=v[1],O=null!==(t=null===u||void 0===u?void 0:u.accounts)&&void 0!==t?t:[],w=null!==(n=null===u||void 0===u?void 0:u.accountsConfig)&&void 0!==n?n:[],x=i.coin,j=EO(w,O,"wallet",x),C=function(e){return function(t){var n=Object(I.a)({},e,t);return m({variables:{accounts:n}})}},k=function(){if(!h)return E(!0);c({wallet:h})};return r.a.createElement("div",{className:s.mdForm},r.a.createElement($t,{className:y&&s.error},"Choose your wallet"),r.a.createElement(Hn,{labelClassName:s.radioLabel,className:s.radioGroup,options:kn.a(j.filled,j.unfilled),value:h,onChange:function(e){b(e.target.value),E(!1)}}),(l=h,gr.a(l)(["bitcoind","geth","litecoind","dashd","zcashd","bitcoincashd"])&&r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:s.infoMessage},r.a.createElement(Ra,null),r.a.createElement(Zt,null,"To set up ",h," please read the node wallet instructions from our support portal.")),r.a.createElement(Rt,{link:"https://support.lamassu.is/hc/en-us/articles/115001209552-Setting-up-your-node-wallets",label:"Support article"}))),!function(e){return gr.a(e)(["infura","bitgo"])}(h)&&r.a.createElement(Ae,{size:"lg",onClick:k,className:s.button},"Continue"),"bitgo"===h&&r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:s.infoMessage},r.a.createElement(Ra,null),r.a.createElement(Zt,null,"Make sure you set up a BitGo wallet to enter the necessary information below. Please follow the instructions on our support page if you haven\u2019t.")),r.a.createElement(Rt,{link:"https://support.lamassu.is/hc/en-us/articles/360024455592-Setting-up-BitGo",label:"Support article"}),r.a.createElement($t,{noMargin:!0},"Enter wallet information"),r.a.createElement(Km,{value:O.bitgo,save:C(h),elements:PO(x).elements,validationSchema:PO(x).validationSchema,buttonLabel:"Continue",buttonClass:s.formButton})),"infura"===h&&r.a.createElement(r.a.Fragment,null,r.a.createElement($t,{noMargin:!0},"Enter wallet information"),r.a.createElement(Km,{value:O.infura,save:C(h),elements:cm.infura.elements,validationSchema:cm.infura.validationSchema,buttonLabel:"Continue",buttonClass:s.formButton})))},AO=Object(m.a)(Ma),MO=[{label:"Choose cryptocurrency",component:vO},{label:"Choose wallet",component:zO},{label:"Choose ticker",component:BO},{label:"Exchange",component:SO},{label:"Blockcypher",component:fO},{label:"All set",component:iO}],qO=function(e){var t=e.doContinue,n=Object(a.useState)(0),l=Object(o.a)(n,2),i=l[0],c=l[1],s=Object(a.useState)({}),u=Object(o.a)(s,2),d=u[0],m=u[1],f=AO(),p="BTC"===(null===d||void 0===d?void 0:d.coin)?MO:eO.a(4,1,MO),h=p[i].component;return r.a.createElement("div",{className:f.wrapper},r.a.createElement("div",{className:f.headerDiv},r.a.createElement(uo,{title:"Wallet settings"})),r.a.createElement("div",{className:f.contentDiv},r.a.createElement(xa,null,p.map((function(e,t){return r.a.createElement(ja,{key:t,step:i,it:e,idx:t,steps:p})}))),r.a.createElement("div",{className:f.contentWrapper},r.a.createElement(h,{data:d,addData:function(e){m(Ue.a(d,e)),c(i+1)},doContinue:t}))))},$O={welcome:{textAlign:"center",paddingTop:256},title:{lineHeight:1,fontSize:48},getStarted:{fontSize:24,fontWeight:500,marginBottom:54,color:B}},HO=Object(m.a)($O);var VO=function(e,t){var n=Jr(Ar,e);return hr.a((function(e){return sf.isValidSync(Jr(e.code,n))}))(t)},YO=function(e,t){return e?function(e,t){var n=Jr(Ar,e),a=jn.a((function(e){return Jr(e.code,n)}))(t);return mn.a(LE.a(BE.a),jn.a((function(e){return sf.isValidSync(e)})))(a)}(e,t)?function(e){var t=Jr($r,e);return bf.isValidSync(t)}(e)?function(e){var t=Jr(Hr,e);return Ac.isValidSync(t)}(e)?0:3:2:1:0},GO=[{id:"welcome",Component:function(e){var t=e.doContinue,n=HO();return r.a.createElement("div",{className:n.welcome},r.a.createElement(At,{className:n.title},"Welcome to Lamassu Admin"),r.a.createElement(Vt,{className:n.getStarted},"To get started, we\u2019ve put together wizard that will",r.a.createElement("br",null),"help set up you need before start adding machines."),r.a.createElement(Ae,{size:"xl",onClick:t},"Get started"))}},{id:"wallet",Component:qO,exImage:"/assets/wizard/fullexample.wallet.png",subtitle:"Wallet settings",text:"Your wallet settings are the first step for this wizard. \n We'll start by setting up one of cryptocurrencies to get you up and running,\n but you can later set up as many as you want."},{id:"locale",Component:HE,exImage:"/assets/wizard/fullexample.locale.png",subtitle:"Locales",text:"From the Locales page, you can define some important default settings\n of your machines. These values will be the default values of all\n machines you'll later add to your network. Default settings keep you\n from having to enther the same values everytime you add a new machine.\n Once a machine is added, you may override some of these values in the\n overrides section."},{id:"twilio",Component:XE,exImage:"/assets/wizard/fullexample.twilio.png",subtitle:"Twilio (SMS service)",text:r.a.createElement(r.a.Fragment,null,"Twilio is used for SMS operator notifications, phone number collection for compliance, and 1-confirmation redemptions on cash-out transactions.",r.a.createElement("br",null),"You'll need to configure Twilio if you're offering cash-out or any compliance options")},{id:"commissions",Component:RE,exImage:"/assets/wizard/fullexample.commissions.png",subtitle:"Commissions",text:"From the Commissions page, you can define all the commissions of your\n machines. The values set here will be default values of all machines\n you'll later add to your network. Default settings keep you from\n having to enter the same values everytime you add a new machine. Once\n a machine is added, you may override these values per machine and per\n cryptocurrency in the overrides section."}],ZO=n(565),_O=Object(m.a)((function(){return{drawer:{borderTop:"none",boxShadow:"0 0 4px 0 rgba(0, 0, 0, 0.08)"},wrapper:{padding:"32px 0",flexGrow:1,height:264},smallWrapper:{height:84},title:{margin:[[0,32,0,0]]},subtitle:{marginTop:8,marginBottom:6,lineHeight:1.25,display:"inline"},modal:{background:"none",boxShadow:"none"}}}));var UO=function(e){var t,n=e.currentStep,l=e.steps,i=e.subtitle,c=e.text,s=e.exImage,u=e.open,d=e.start,m=_O(),f=Object(a.useState)(!1),p=Object(o.a)(f,2),h=p[0],b=p[1],g=(t={},Object(I.a)(t,m.wrapper,!0),Object(I.a)(t,m.smallWrapper,!u),t);return r.a.createElement(ZO.a,{anchor:"bottom",open:!0,variant:"persistent",classes:{paperAnchorDockedBottom:m.drawer}},r.a.createElement("div",{className:N()(g)},r.a.createElement(_m.a,{container:!0,direction:"row",justify:"center",alignItems:"baseline"},r.a.createElement(_m.a,{item:!0,xs:5,container:!0,direction:u?"column":"row",justify:"flex-start",alignItems:"baseline"},r.a.createElement(Mt,{className:m.title},"Setup Lamassu Admin"),r.a.createElement(Gt,{className:m.subtitle},i),u&&r.a.createElement(Vt,null,c)),r.a.createElement(_m.a,{item:!0,xs:4,container:!0,direction:"column",justify:"flex-start",alignItems:"flex-end",spacing:5},r.a.createElement(_m.a,{item:!0,xs:12},l&&n&&r.a.createElement(Go,{currentStep:n,steps:l})))),u&&r.a.createElement(_m.a,{container:!0,direction:"row",justify:"center",alignItems:"baseline"},r.a.createElement(_m.a,{item:!0,xs:5,container:!0,direction:"column",justify:"flex-start",alignItems:"flex-start"},r.a.createElement(ut,{onClick:function(){b(!0)}},"See full example")),r.a.createElement(_m.a,{item:!0,xs:4,container:!0,direction:"column",justify:"flex-start",alignItems:"flex-end",spacing:5},r.a.createElement(_m.a,{item:!0},r.a.createElement(Ae,{size:"lg",onClick:d},"Get Started"))))),r.a.createElement(po,{closeOnEscape:!0,closeOnBackdropClick:!0,className:m.modal,xl:!0,width:1328,handleClose:function(){b(!1)},open:h},r.a.createElement("img",{width:1152,src:s,alt:""})))};function JO(){var e=Object(tn.a)(["\n query getData {\n config\n accounts\n cryptoCurrencies {\n code\n display\n }\n }\n"]);return JO=function(){return e},e}var KO,QO=Object(m.a)({wrapper:{display:"flex",padding:[[16,0]],flexDirection:"column",justifyContent:"space-between",backgroundColor:V},welcomeBackground:{background:"url(/wizard-background.svg) no-repeat center center fixed",backgroundColor:V,backgroundSize:"cover"},blurred:{filter:"blur(4px)",pointerEvents:"none"}}),XO=sn()(JO()),ew=function(e){e.fromAuthRegister;var t,n,l=QO(),i=Object(nn.c)(XO),c=i.data,s=i.loading,u=Object(g.h)(),d=Object(a.useContext)(fw).setWizardTested,m=Object(a.useState)(0),f=Object(o.a)(m,2),p=f[0],h=f[1],b=Object(a.useState)(!0),v=Object(o.a)(b,2),y=v[0],E=v[1],O=Object(a.useState)(!1),w=Object(o.a)(O,2),x=w[0],j=w[1];if(s)return r.a.createElement(r.a.Fragment,null);var C=YO(null===c||void 0===c?void 0:c.config,null===c||void 0===c?void 0:c.cryptoCurrencies),k=u.length&&!(null===(t=u.location.state)||void 0===t?void 0:t.fromAuthRegister);0===C&&(d(!0),k?u.goBack():u.push("/"));var S=0===p,L=(n={},Object(I.a)(n,l.blurred,x),Object(I.a)(n,l.wrapper,!0),Object(I.a)(n,l.welcomeBackground,S),n),B=GO[p];return r.a.createElement(an.a,{fullScreen:!0,open:y},r.a.createElement(rn.a,{className:N()(L)},r.a.createElement(B.Component,{doContinue:function(){p>=GO.length-1&&(E(!1),u.push("/"));var e=0===p&&C?C:p+1;j(!0),h(e)},isActive:!x})),!S&&r.a.createElement(UO,{currentStep:p,steps:GO.length-1,exImage:B.exImage,subtitle:B.subtitle,text:B.text,open:x,start:function(){j(!1)}}))},tw=[{key:"transactions",label:"Transactions",route:"/transactions",component:Ay},{key:"maintenance",label:"Maintenance",route:"/maintenance",get component(){var e=this;return function(){return r.a.createElement(g.b,{to:e.children[0].route})}},children:[{key:"cash_cassettes",label:"Cash Cassettes",route:"/maintenance/cash-cassettes",component:Jp},{key:"funding",label:"Funding",route:"/maintenance/funding",component:Qd},{key:"logs",label:"Machine Logs",route:"/maintenance/logs",component:Hp},{key:"machine-status",label:"Machine Status",route:"/maintenance/machine-status",component:kb},{key:"server-logs",label:"Server",route:"/maintenance/server-logs",component:Fv}]},{key:"settings",label:"Settings",route:"/settings",get component(){var e=this;return function(){return r.a.createElement(g.b,{to:e.children[0].route})}},children:[{key:Hr,label:"Commissions",route:"/settings/commissions",component:_c},{key:$r,label:"Locales",route:"/settings/locale",component:kf},{key:zr,label:"Cash-out",route:"/settings/cash-out",component:cc},{key:qr,label:"Notifications",route:"/settings/notifications",component:sg},{key:"services",label:"3rd party services",route:"/settings/3rd-party-services",component:_v},{key:Ar,label:"Wallet",route:"/settings/wallet-settings",component:IE},{key:Mr,label:"Operator Info",route:"/settings/operator-info",component:gv}]},{key:"compliance",label:"Compliance",route:"/compliance",get component(){var e=this;return function(){return r.a.createElement(g.b,{to:e.children[0].route})}},children:[{key:"triggers",label:"Triggers",route:"/compliance/triggers",component:wE},{key:"customers",label:"Customers",route:"/compliance/customers",component:Rd},{key:"customer",route:"/compliance/customer/:id",component:Pd}]}],nw=jn.a(mr.a(fr.a("children"),xn.a("children"))),aw=mn.a(pr.a,nw)(tw),rw=hr.a(fr.a("children"))(tw),lw=br.a(aw,rw),iw=function(){var e=Object(g.h)(),t=Object(g.i)();return Object(a.useContext)(fw).wizardTested||gr.a(t.pathname)(["/404","/register","/wizard"])||e.push("/wizard"),r.a.createElement(g.e,null,r.a.createElement(g.c,{exact:!0,path:"/"},r.a.createElement(g.b,{to:{pathname:"/transactions"}})),r.a.createElement(g.c,{path:"/wizard",component:ew}),r.a.createElement(g.c,{path:"/register",component:Er}),lw.map((function(e){var t=e.route,n=e.component,a=e.key;return r.a.createElement(g.c,{path:t,key:a},r.a.createElement(n,{name:a}))})),r.a.createElement(g.c,{path:"/404"}),r.a.createElement(g.c,{path:"*"},r.a.createElement(g.b,{to:{pathname:"/404"}})))},ow="100%",cw={"@global":Object(c.a)(Object(c.a)({},{"@font-face":[{fontFamily:"Mont",src:['url("/fonts/MontHeavy/mont-heavy-webfont.woff2") format("woff2")','url("/fonts/MontHeavy/mont-heavy-webfont.woff") format("woff")'],fontWeight:900,fontStyle:"normal"},{fontFamily:"Mont",src:['url("/fonts/MontHeavy/mont-bold-webfont.woff2") format("woff2")','url("/fonts/MontHeavy/mont-bold-webfont.woff") format("woff")'],fontWeight:700,fontStyle:"normal"},{fontFamily:"MuseoSans",src:['url("/fonts/MuseoSans/MuseoSans_500-webfont.woff2") format("woff2")','url("/fonts/MuseoSans/MuseoSans_500-webfont.woff") format("woff")'],fontWeight:500,fontStyle:"normal"},{fontFamily:"MuseoSans",src:['url("/fonts/MuseoSans/MuseoSans_700-webfont.woff2") format("woff2")','url("/fonts/MuseoSans/MuseoSans_700-webfont.woff") format("woff")'],fontWeight:700,fontStyle:"normal"},{fontFamily:"BPmono",src:'url("/fonts/BPmono/BPmono.ttf") format("truetype")',fontWeight:500,fontStyle:"normal"}]}),{},(KO={"#root":{width:ow,minHeight:ow},html:{height:ow},body:{width:ee,display:"flex",minHeight:ow,"@media screen and (min-width: 1200px)":{width:"auto"}}},Object(I.a)(KO,'a::-moz-focus-inner,\n \'input[type="submit"]::-moz-focus-inner,\n input[type="button"]::-moz-focus-inner',{border:0}),Object(I.a)(KO,'a::-moz-focus-inner,\n input[type="submit"]::-moz-focus-inner,\n input[type="button"]::-moz-focus-inner',{border:0}),Object(I.a)(KO,"a,\n a:visited,\n a:focus,\n a:active,\n a:hover",{outline:"0 none"}),Object(I.a)(KO,"button::-moz-focus-inner",{border:0}),Object(I.a)(KO,".ReactVirtualized__Grid__innerScrollContainer",{overflow:"inherit !important"}),KO))},sw=Object(h.a)({plugins:[Object(b.a)()].concat(Object(s.a)(Object(d.a)().plugins))}),uw="100%",dw="column",mw=Object(m.a)(Object(c.a)(Object(c.a)({},cw),{},{root:{backgroundColor:V,width:uw,minHeight:uw,display:"flex",flexDirection:dw},wrapper:{width:ee,height:uw,margin:"0 auto",flex:1,display:"flex",flexDirection:dw}})),fw=Object(a.createContext)(),pw=function(){var e=mw(),t=Object(g.i)(),n=Object(a.useContext)(fw).wizardTested,l="/404"===t.pathname;return r.a.createElement("div",{className:e.root},!l&&n&&r.a.createElement(dr,{tree:tw}),r.a.createElement("main",{className:e.wrapper},r.a.createElement(iw,null)))},hw=function(){var e=Object(a.useState)(!1),t=Object(o.a)(e,2),n=t[0],l=t[1];return r.a.createElement(fw.Provider,{value:{wizardTested:n,setWizardTested:l}},r.a.createElement(v.a,null,r.a.createElement(k,null,r.a.createElement(f.b,{jss:sw},r.a.createElement(p.a,{theme:Eg},r.a.createElement(u.a,null),r.a.createElement(pw,null))))))};Boolean("localhost"===window.location.hostname||"[::1]"===window.location.hostname||window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/));i.a.render(r.a.createElement(hw,null),document.getElementById("root")),"serviceWorker"in navigator&&navigator.serviceWorker.ready.then((function(e){e.unregister()}))}},[[445,1,2]]]); -//# sourceMappingURL=main.4f43f678.chunk.js.map \ No newline at end of file +(this["webpackJsonplamassu-admin"]=this["webpackJsonplamassu-admin"]||[]).push([[0],{445:function(e,t,n){"use strict";n.r(t);var a=n(0),r=n.n(a),l=n(38),i=n.n(l),o=n(3),c=n(24),s=n(340),u=n(540),d=n(542),m=n(487),f=n(562),p=n(539),h=n(303),b=n(304),g=n(122),v=n(67),y=n(59),E=n(341),O=n(123),w=n(64),x=n(308),j=n(342),C="",k=function(e){var t=e.children,n=function(e,t){return new O.a({link:w.a.from([Object(x.a)((function(n){var a=n.graphQLErrors,r=n.networkError;a&&a.forEach((function(n){var a=n.message,r=n.locations,l=n.path,i=n.extensions;"UNAUTHENTICATED"===(null===i||void 0===i?void 0:i.code)&&"/404"!==t.pathname&&e.push("/404"),console.log("[GraphQL error]: Message: ".concat(a,", Location: ").concat(r,", Path: ").concat(l))})),r&&console.log("[Network error]: ".concat(r))})),new j.a({credentials:"include",uri:"".concat(C,"/graphql")})]),cache:new E.a,defaultOptions:{watchQuery:{fetchPolicy:"no-cache",errorPolicy:"ignore"},query:{fetchPolicy:"no-cache",errorPolicy:"all"},mutate:{errorPolicy:"all"}}})}(Object(g.h)(),Object(g.i)());return r.a.createElement(y.a,{client:n},t)},S=n(5),N=n.n(S),I=n(1),L=n(10),B="#5f668a",P="#44e188",F="#ecfbef",D="#3fd07e",T="#ebefff",W="#dbdfed",R="#ffffff",z="#ff584a",A="#ffeceb",M="#1b2559",q="#48f694",$=P,H=D,V="#fafbff",Y=T,G=W,Z="#dddddd",_="#f2f2f2",U=M,J=B,K="#72799d",Q=B,X=z,ee=1200,te=q,ne="Mont",ae="MuseoSans",re=24,le=20,ie=16,oe=14,ce=13;var se=ce,ue=oe,de=ie,me=re,fe=ae,pe=32,he=48;var be=2*pe,ge=M,ve=A,ye={lineHeight:"120%",color:U},Ee={h1:{extend:ye,fontSize:re,fontFamily:ne,fontWeight:900},h2:{extend:ye,fontSize:le,fontFamily:ne,fontWeight:900},h3:{extend:ye,fontSize:oe,fontFamily:ne,fontWeight:900},h4:{extend:ye,fontSize:oe,fontFamily:ne,fontWeight:700},h5:{extend:ye,fontSize:ie,fontFamily:ne,fontWeight:700},p:{extend:ye,fontSize:oe,fontFamily:ae,fontWeight:500},tl1:{extend:ye,fontSize:le,fontFamily:ae,fontWeight:700},tl2:{extend:ye,fontSize:oe,fontFamily:ae,fontWeight:700},info1:{extend:ye,fontSize:re,fontFamily:ae,fontWeight:700},info2:{extend:ye,fontSize:ie,fontFamily:ae,fontWeight:700},info3:{extend:ye,fontSize:ie,fontFamily:ae,fontWeight:500},mono:{extend:ye,fontSize:oe,fontFamily:"BPmono",fontWeight:500},monoBold:{fontWeight:700},monoSmall:{fontSize:ce},inputFont:{fontSize:le,fontFamily:ae,fontWeight:500,lineHeight:"110%",color:U},regularLabel:{fontSize:oe,fontFamily:ae,fontWeight:500,lineHeight:"110%"},label1:{fontSize:ce,fontFamily:ae,fontWeight:500,color:U},label2:{fontSize:ce,fontFamily:ae,fontWeight:700,color:U},label3:{fontSize:oe,fontFamily:ae,fontWeight:500,color:U},inline:{display:"inline"},noMargin:{margin:0}},Oe=function(e,t,n){return{backgroundColor:e,"&:hover":{backgroundColor:t},"&:active":{backgroundColor:n}}},we={actionButton:{extend:Ee.p,cursor:"pointer",border:"none",height:28,outline:0,borderRadius:6,padding:"0 8px",display:"flex",alignItems:"center"},primary:{extend:Oe(Y,G,J),"&:active":{color:R,"& $actionButtonIcon":{display:"none"},"& $actionButtonIconActive":{display:"flex"}},"& $actionButtonIconActive":{display:"none"}},secondary:{extend:Oe(J,K,R),color:R,"&:active":{color:U,"& $actionButtonIcon":{display:"flex"},"& $actionButtonIconActive":{display:"none"}},"& $actionButtonIcon":{display:"none"},"& $actionButtonIconActive":{display:"flex"}},actionButtonIcon:{display:"flex",paddingRight:7,"@global":{svg:{width:14,height:14}}},actionButtonIconActive:{}},xe=Object(m.a)(we),je=Object(a.memo)((function(e){var t,n=e.className,a=e.Icon,l=e.InverseIcon,i=e.color,o=e.children,c=Object(L.a)(e,["className","Icon","InverseIcon","color","children"]),s=xe(),u=(t={},Object(I.a)(t,s.actionButton,!0),Object(I.a)(t,s.primary,"primary"===i),Object(I.a)(t,s.secondary,"secondary"===i),t);return r.a.createElement("button",Object.assign({className:N()(u,n)},c),a&&r.a.createElement("div",{className:s.actionButtonIcon},r.a.createElement(a,null)),l&&r.a.createElement("div",{className:N()(s.actionButtonIcon,s.actionButtonIconActive)},r.a.createElement(l,null)),o&&r.a.createElement("div",null,o))}));function Ce(){return(Ce=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var Se=a.createElement("desc",null,"Created with Sketch."),Ne=a.createElement("g",{id:"icon/button/add/zodiac",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},a.createElement("path",{d:"M11.5384615,6 C11.5384615,9.05815385 9.05815385,11.5384615 6,11.5384615 C2.94184615,11.5384615 0.461538462,9.05815385 0.461538462,6 C0.461538462,2.94184615 2.94184615,0.461538462 6,0.461538462 C9.05815385,0.461538462 11.5384615,2.94184615 11.5384615,6 Z",id:"Stroke-1",stroke:"#1B2559"}),a.createElement("line",{x1:6,y1:3.69230769,x2:6,y2:8.30769231,id:"Stroke-3",stroke:"#1B2559"}),a.createElement("line",{x1:3.69230769,y1:6,x2:8.30769231,y2:6,id:"Stroke-5",stroke:"#1B2559"}));function Ie(e,t){var n=e.title,r=e.titleId,l=ke(e,["title","titleId"]);return a.createElement("svg",Ce({width:"12px",height:"12px",viewBox:"0 0 12 12",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,Se,Ne)}var Le=a.forwardRef(Ie),Be=(n.p,{button:{extend:Ee.p,border:"none",backgroundColor:T,cursor:"pointer",outline:0,display:"flex",justifyContent:"center",alignItems:"center",width:167,height:48,color:U,"&:hover":{backgroundColor:W},"&:active":{backgroundColor:B,color:R,"& svg g *":{stroke:R}},"& svg":{marginRight:8}}}),Pe=Object(m.a)(Be),Fe=Object(a.memo)((function(e){var t=e.className,n=e.children,a=Object(L.a)(e,["className","children"]),l=Pe();return r.a.createElement("button",Object.assign({className:N()(l.button,t)},a),r.a.createElement(Le,null),n)})),De=Ee.h1,Te=Ee.h3,We=function(e){switch(e){case"xl":return 61;case"sm":return 32;case"lg":default:return 40}},Re={wrapper:function(e){var t=e.size,n=We(t);return{height:n+n/12/2}},button:function(e){var t=e.size,n=We(t),a="xl"===t?3:n/12;return{extend:"xl"===t?De:Te,border:"none",color:R,cursor:"pointer",fontWeight:900,outline:0,backgroundColor:q,"&:disabled":{backgroundColor:Z,boxShadow:"none","&:hover":{backgroundColor:Z,boxShadow:"none"},"&:active":{marginTop:0}},shadowSize:a,height:n,padding:"0 ".concat("xl"===t?20:n/2,"px"),borderRadius:n/4,boxShadow:"0 ".concat(a,"px ").concat($),"&:hover":{backgroundColor:$,boxShadow:"0 ".concat(a,"px ").concat(H)},"&:active":{marginTop:a/2,backgroundColor:$,boxShadow:"0 ".concat(a/2,"px ").concat(H)}}}},ze=Object(m.a)(Re),Ae=Object(a.memo)((function(e){var t=e.size,n=void 0===t?"lg":t,a=e.children,l=e.className,i=Object(L.a)(e,["size","children","className"]),o=ze({size:n});return r.a.createElement("div",{className:N()(l,o.wrapper)},r.a.createElement("button",Object.assign({className:o.button},i),a))})),Me=function(e,t,n){return{backgroundColor:e,"&:hover":{backgroundColor:t},"&:active":{backgroundColor:n}}},qe={baseButton:{extend:Me(Y,G,J),cursor:"pointer",border:"none",outline:0,height:32,color:U,"&:active":{color:R}},primary:{extend:Me(Y,G,J),"&:active":{color:R,"& $buttonIcon":{display:"none"},"& $buttonIconActive":{display:"block"}},"& $buttonIconActive":{display:"none"}},secondary:{extend:Me(J,K,R),color:R,"&:active":{color:U,"& $buttonIcon":{display:"flex"},"& $buttonIconActive":{display:"none"}},"& $buttonIcon":{display:"none"},"& $buttonIconActive":{display:"flex"}}},$e=qe.baseButton,He=qe.primary,Ve={featureButton:{extend:$e,width:$e.height,borderRadius:$e.height/2,display:"flex",padding:0},primary:He,buttonIcon:{margin:"auto","& svg":{width:16,height:16,overflow:"visible","& g":{strokeWidth:1.8}}},buttonIconActive:{}},Ye=Object(m.a)(Ve),Ge=Object(a.memo)((function(e){var t,n=e.className,a=e.Icon,l=e.InverseIcon,i=e.children,o=Object(L.a)(e,["className","Icon","InverseIcon","children"]),c=Ye(),s=(t={},Object(I.a)(t,c.featureButton,!0),Object(I.a)(t,c.primary,!0),t);return r.a.createElement("button",Object.assign({className:N()(s,n)},o),a&&r.a.createElement("div",{className:c.buttonIcon},r.a.createElement(a,null)),l&&r.a.createElement("div",{className:N()(c.buttonIcon,c.buttonIconActive)},r.a.createElement(l,null)),i)})),Ze=n(490),_e=n(346),Ue=n(489),Je=function(e){var t,n=e.children,l=e.bgColor,i=void 0===l?R:l,c=e.arrowSize,s=void 0===c?6:c,u=e.className,d=Object(L.a)(e,["children","bgColor","arrowSize","className"]),f=Object(a.useState)(null),p=Object(o.a)(f,2),h=p[0],b=p[1],g={popover:{zIndex:3e3,backgroundColor:i,borderRadius:4},arrow:{position:"absolute",fontSize:s,width:"3em",height:"3em"},arrowBottom:{top:0,width:0,height:0,borderLeft:[["2em","solid","transparent"]],borderRight:[["2em","solid","transparent"]],borderBottom:[["2em","solid",i]],marginTop:"-1.9em","&:after":{zIndex:-10,content:'""',position:"absolute",width:3*s,height:3*s,marginLeft:0,bottom:0,top:"calc(50% - 0px)",left:0,border:"5px solid #fff",borderColor:"transparent transparent #fff #fff",transformOrigin:"0 0",transform:"rotate(45deg)",boxShadow:"0px 2px 1px -1px rgba(0,0,0,0.2),0px 1px 1px 0px rgba(0,0,0,0.14),0px 1px 3px 0px rgba(0,0,0,0.12)"}},arrowTop:{bottom:0,width:0,height:0,borderLeft:[["2em","solid","transparent"]],borderRight:[["2em","solid","transparent"]],borderTop:[["2em","solid",i]],marginBottom:"-1.9em","&:after":{zIndex:-10,content:'""',position:"absolute",width:3*s,height:3*s,marginLeft:0,bottom:0,top:-(4*s+2),left:0,border:"5px solid #fff",borderColor:"transparent transparent #fff #fff",transformOrigin:"0 0",transform:"rotate(45deg)",boxShadow:"0px 2px 1px -1px rgba(0,0,0,0.2),0px 1px 1px 0px rgba(0,0,0,0.14),0px 1px 3px 0px rgba(0,0,0,0.12)"}},arrowRight:{left:0,width:0,height:0,borderTop:[["2em","solid","transparent"]],borderBottom:[["2em","solid","transparent"]],borderRight:[["2em","solid",i]],marginLeft:"-1.9em"},arrowLeft:{right:0,width:0,height:0,borderTop:[["2em","solid","transparent"]],borderBottom:[["2em","solid","transparent"]],borderLeft:[["2em","solid",i]],marginRight:"-1.9em"},root:{backgroundColor:i}},v=Object(m.a)(g)(),y=(t={},Object(I.a)(t,v.arrow,!0),Object(I.a)(t,v.arrowBottom,"bottom"===d.placement),Object(I.a)(t,v.arrowTop,"top"===d.placement),Object(I.a)(t,v.arrowRight,"right"===d.placement),Object(I.a)(t,v.arrowLeft,"left"===d.placement),t),E=Ue.a(d.modifiers,{flip:{enabled:!1},preventOverflow:{enabled:!0,boundariesElement:"scrollParent"},offset:{enabled:!0,offset:"0, 10"},arrow:{enabled:!0,element:h},computeStyle:{gpuAcceleration:!1}});return r.a.createElement(r.a.Fragment,null,r.a.createElement(Ze.a,Object.assign({disablePortal:!1,modifiers:E,className:v.popover},d),r.a.createElement(_e.a,{className:N()(v.root,u)},r.a.createElement("span",{className:N()(y),ref:b}),n)))},Ke=Ee.info2,Qe=function(e,t,n){return{backgroundColor:e,"&:hover":{backgroundColor:t},"&:active":{backgroundColor:n}}},Xe={idButton:{width:34,height:28,display:"flex",borderRadius:4,padding:0,border:"none",cursor:"pointer"},buttonIcon:{margin:"auto",lineHeight:1,"& svg":{overflow:"visible"}},closed:{extend:Qe(Y,G,J)},open:{extend:Qe(J,J,J)},popoverContent:{extend:Ke,padding:8,display:"flex",justifyContent:"center",alignItems:"center",borderRadius:4,"& img":{maxHeight:145}}},et=Object(m.a)(Xe),tt=Object(a.memo)((function(e){var t,n=e.name,l=e.className,i=e.Icon,c=e.InverseIcon,s=(e.popoverWidth,e.children),u=e.popoverClassname,d=Object(L.a)(e,["name","className","Icon","InverseIcon","popoverWidth","children","popoverClassname"]),m=Object(a.useState)(null),f=Object(o.a)(m,2),p=f[0],h=f[1],b=et(),g=Boolean(p),v=g?"simple-popper-".concat(n):void 0,y=(t={},Object(I.a)(t,b.idButton,!0),Object(I.a)(t,b.primary,!0),Object(I.a)(t,b.open,g),Object(I.a)(t,b.closed,!g),t),E=Object(I.a)({},b.buttonIcon,!0);return r.a.createElement(r.a.Fragment,null,r.a.createElement("button",Object.assign({"aria-describedby":v,onClick:function(e){h(p?null:e.currentTarget)},className:N()(y,l)},d),i&&!g&&r.a.createElement("div",{className:N()(E)},r.a.createElement(i,null)),c&&g&&r.a.createElement("div",{className:N()(E)},r.a.createElement(c,null))),r.a.createElement(Je,{className:u,id:v,open:g,anchorEl:p,onClose:function(){h(null)},arrowSize:3,placement:"top"},r.a.createElement("div",{className:b.popoverContent},r.a.createElement("div",null,s))))})),nt=n(448),at={label:function(e){var t=e.size;return{width:t,height:t}},root:{"& svg":{flex:1},"&:hover":{backgroundColor:"inherit"},"&:hover rect":{stroke:B},"&:hover polygon":{stroke:B},"&:hover path":{stroke:B}}},rt=Object(m.a)(at),lt=function(e){var t=e.size,n=e.children,a=e.onClick,l=Object(L.a)(e,["size","children","onClick"]),i=rt({size:t});return r.a.createElement(nt.a,Object.assign({},l,{size:"small",classes:{root:i.root,label:i.label},disableRipple:!0,onClick:a}),n)},it=n(173),ot=function(e){return{boxShadow:"inset 0 -4px 0 0 ".concat(Object(it.fade)(e,.8)),"&:hover":{boxShadow:"none",backgroundColor:Object(it.fade)(e,.8)}}},ct={link:{extend:Ee.h4,textDecoration:"none",border:"none",backgroundColor:"transparent",cursor:"pointer",padding:"0",height:"100%"},primary:{extend:ot(te)},secondary:{extend:ot("#ff584a"),"&:hover":{color:R}},noColor:{extend:ot(R)},action:{extend:ot(te),color:T}},st=Object(m.a)(ct),ut=Object(a.memo)((function(e){var t,n=e.submit,a=e.className,l=e.children,i=e.color,o=void 0===i?"primary":i,c=Object(L.a)(e,["submit","className","children","color"]),s=st(),u=(t={},Object(I.a)(t,s.link,!0),Object(I.a)(t,s.primary,"primary"===o),Object(I.a)(t,s.secondary,"secondary"===o),Object(I.a)(t,s.noColor,"noColor"===o),Object(I.a)(t,s.action,"action"===o),t);return r.a.createElement("button",Object.assign({type:n?"submit":"button",className:N()(u,a)},c),l)})),dt=qe.baseButton,mt=qe.primary,ft={button:{extend:dt,borderRadius:dt.height/2,outline:0,padding:"0 20px"},primary:mt,buttonIcon:{marginTop:4,marginRight:4,"& svg":{width:20,height:20,overflow:"visible"}},buttonIconActive:{}};Object(m.a)(ft);function pt(){return(pt=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var bt=a.createElement("desc",null,"Created with Sketch."),gt=a.createElement("g",{id:"icon/button/cancel/white",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},a.createElement("g",{id:"Group-5",transform:"translate(1.000000, 1.000000)",stroke:"#FFFFFF"},a.createElement("line",{x1:10,y1:0,x2:0,y2:10,id:"Stroke-1"}),a.createElement("line",{x1:0,y1:0,x2:10,y2:10,id:"Stroke-3"})));function vt(e,t){var n=e.title,r=e.titleId,l=ht(e,["title","titleId"]);return a.createElement("svg",pt({width:"12px",height:"12px",viewBox:"0 0 12 12",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,bt,gt)}var yt=a.forwardRef(vt),Et=(n.p,qe.baseButton),Ot={button:{extend:Et,padding:0,color:R,borderRadius:Et.height/2},normalButton:{width:Et.height},activeButton:{display:"flex",flexDirection:"row",alignItems:"center",backgroundColor:J,fontWeight:"bold",padding:"0 5px","&:hover":{backgroundColor:J}},buttonIcon:{"& svg":{width:16,height:16,overflow:"visible","& g":{strokeWidth:1.8}}},buttonIconActiveLeft:{marginRight:12},buttonIconActiveRight:{marginRight:5,marginLeft:20}},wt=Object(m.a)(Ot),xt=Object(a.memo)((function(e){var t,n=e.className,l=e.Icon,i=e.InverseIcon,c=e.toggle,s=e.children,u=Object(a.useState)(!1),d=Object(o.a)(u,2),m=d[0],f=d[1],p=wt(),h=(t={},Object(I.a)(t,p.button,!0),Object(I.a)(t,p.normalButton,!m),Object(I.a)(t,p.activeButton,m),t),b=r.a.createElement(l,{className:p.buttonIcon}),g=r.a.createElement(r.a.Fragment,null,r.a.createElement(i,{className:N()(p.buttonIcon,p.buttonIconActiveLeft)}),s,r.a.createElement(yt,{className:N()(p.buttonIcon,p.buttonIconActiveRight)}));return r.a.createElement("button",{className:N()(h,n),onClick:function(){var e=!m;c(e),f(e)}},m?g:b)}));function jt(){return(jt=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var kt=a.createElement("desc",null,"Created with Sketch."),St=a.createElement("g",{id:"icon/action/external-link/white",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},a.createElement("polyline",{id:"Stroke-1",stroke:"#FFFFFF",strokeWidth:2,points:"20 12.1113 20 21.0003 0 21.0003 0 1.0003 8.889 1.0003"}),a.createElement("polyline",{id:"Stroke-3",stroke:"#FFFFFF",strokeWidth:2,points:"14.4443 1 20.0003 1 20.0003 6.556"}),a.createElement("line",{x1:10,y1:11,x2:20,y2:1,id:"Stroke-5",stroke:"#FFFFFF",strokeWidth:2}));function Nt(e,t){var n=e.title,r=e.titleId,l=Ct(e,["title","titleId"]);return a.createElement("svg",jt({width:"20px",height:"20px",viewBox:"0 0 20 20",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,kt,St)}var It=a.forwardRef(Nt);n.p;function Lt(){return(Lt=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var Pt=a.createElement("desc",null,"Created with Sketch."),Ft=a.createElement("g",{id:"icon/action/external-link/zodiac",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},a.createElement("g",{id:"Group-7",transform:"translate(0.000000, 1.000000)",stroke:"#1B2559",strokeWidth:2},a.createElement("polyline",{id:"Stroke-1",points:"20 11.1113 20 20.0003 0 20.0003 0 0.0003 8.889 0.0003"}),a.createElement("polyline",{id:"Stroke-3",points:"14.4443 0 20.0003 0 20.0003 5.556"}),a.createElement("line",{x1:10,y1:10,x2:20,y2:0,id:"Stroke-5"})));function Dt(e,t){var n=e.title,r=e.titleId,l=Bt(e,["title","titleId"]);return a.createElement("svg",Lt({width:"20px",height:"20px",viewBox:"0 0 20 20",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,Pt,Ft)}var Tt=a.forwardRef(Dt),Wt=(n.p,Object(m.a)({actionButton:{marginBottom:32},actionButtonLink:{textDecoration:"none",color:M}})),Rt=function(e){var t=e.link,n=e.label,a=Wt();return r.a.createElement("a",{className:a.actionButtonLink,target:"_blank",rel:"noopener noreferrer",href:t},r.a.createElement(je,{className:a.actionButton,color:"primary",Icon:Tt,InverseIcon:It},n))},zt=Object(m.a)(Ee);function At(e){var t,n=e.children,a=e.noMargin,l=e.className,i=Object(L.a)(e,["children","noMargin","className"]),o=zt(),c=(t={},Object(I.a)(t,o.h1,!0),Object(I.a)(t,o.noMargin,a),Object(I.a)(t,l,!!l),t);return r.a.createElement("h1",Object.assign({className:N()(c)},i),n)}function Mt(e){var t,n=e.children,a=e.noMargin,l=e.className,i=Object(L.a)(e,["children","noMargin","className"]),o=zt(),c=(t={},Object(I.a)(t,o.h2,!0),Object(I.a)(t,o.noMargin,a),Object(I.a)(t,l,!!l),t);return r.a.createElement("h2",Object.assign({className:N()(c)},i),n)}function qt(e){var t,n=e.children,a=e.noMargin,l=e.className,i=Object(L.a)(e,["children","noMargin","className"]),o=zt(),c=(t={},Object(I.a)(t,o.h3,!0),Object(I.a)(t,o.noMargin,a),Object(I.a)(t,l,!!l),t);return r.a.createElement("h3",Object.assign({className:N()(c)},i),n)}function $t(e){var t,n=e.children,a=e.noMargin,l=e.className,i=Object(L.a)(e,["children","noMargin","className"]),o=zt(),c=(t={},Object(I.a)(t,o.h4,!0),Object(I.a)(t,o.noMargin,a),Object(I.a)(t,l,!!l),t);return r.a.createElement("h4",Object.assign({className:N()(c)},i),n)}function Ht(e){var t,n=e.children,a=e.noMargin,l=e.className,i=Object(L.a)(e,["children","noMargin","className"]),o=zt(),c=(t={},Object(I.a)(t,o.h5,!0),Object(I.a)(t,o.noMargin,a),Object(I.a)(t,l,!!l),t);return r.a.createElement("h5",Object.assign({className:N()(c)},i),n)}var Vt=en("p"),Yt=en("info1"),Gt=en("info2"),Zt=en("info3"),_t=en("mono"),Ut=en("tl1"),Jt=en("tl2"),Kt=en("label1"),Qt=en("label2"),Xt=en("label3");function en(e){return function(t){var n,a=t.inline,l=t.noMargin,i=t.className,o=t.children,c=Object(L.a)(t,["inline","noMargin","className","children"]),s=zt(),u=(n={},Object(I.a)(n,i,!!i),Object(I.a)(n,s[e],e),Object(I.a)(n,s.inline,a),Object(I.a)(n,s.noMargin,l),n);return r.a.createElement("p",Object.assign({className:N()(u)},c),o)}}var tn=n(14),nn=n(13),an=n(500),rn=n(501),ln=n(216),on=n(18),cn=n(15),sn=n.n(cn),un=n(213),dn=n.n(un),mn=n(339),fn=n(498),pn=n(499),hn=n(4),bn=Object(m.a)({title:{marginTop:24,marginBottom:24}}),gn=Object(a.memo)((function(e){var t=e.children,n=bn();return r.a.createElement(At,{className:n.title},t)})),vn=n(264),yn=n(544),En=n(345),On=n(553),wn=n(493),xn=n(320),jn=n(343),Cn=n(492),kn=n(494),Sn=n(552),Nn=n(321),In=n(495),Ln=n(541),Bn=function(e){switch(e){case"sm":return{fontSize:ue};case"lg":return{fontSize:me,fontWeight:700};default:return{fontSize:de}}},Pn={fontWeight:700},Fn={size:function(e){var t=e.size;return Object(c.a)({marginTop:"lg"===t?0:2},Bn(t))},bold:Pn,root:function(e){return{width:e.width,"& input":{textAlign:e.textAlign}}},underline:{"&:before":{borderBottomColor:q},"&:hover:not(.Mui-disabled)::before":{borderBottomColor:q}}},Dn=Object(m.a)(Fn),Tn=Object(a.memo)((function(e){var t=e.name,n=e.onChange,a=e.onBlur,l=e.value,i=e.error,o=(e.suffix,e.textAlign),s=e.width,u=e.size,d=e.bold,m=e.className,f=e.InputProps,p=Object(L.a)(e,["name","onChange","onBlur","value","error","suffix","textAlign","width","size","bold","className","InputProps"]),h=Dn({textAlign:o,width:s,size:u}),b=!i&&!Cn.a(l)&&!Sn.a(l),g=Object(I.a)({},h.bold,d);return r.a.createElement(Ln.a,Object.assign({id:t,onChange:n,onBlur:a,error:i,value:l,classes:{root:h.root},className:m,InputProps:Object(c.a)({className:N()(g),classes:{root:h.size,underline:b?h.underline:null}},f)},p))})),Wn=function(e){e.optionsLimit;var t=e.limit,n=e.options,a=e.label,l=e.valueProp,i=e.multiple,o=e.onChange,c=e.getLabel,s=e.value,u=e.error,d=e.fullWidth,m=e.textAlign,f=e.size,p=e.autoFocus,h=Object(L.a)(e,["optionsLimit","limit","options","label","valueProp","multiple","onChange","getLabel","value","error","fullWidth","textAlign","size","autoFocus"]),b=function(e){return function(t){return On.a(wn.a(l,t))(e)}},g=xn.a(l),v=l?(i?jn.a(b(n)):b(n))(s):s,y=function(){return Cn.a(v)?[]:i?v:[v]};return r.a.createElement(yn.a,Object.assign({options:n,multiple:i,value:v,onChange:function(e,t){if(!l)return o(e,t);var n=i?jn.a(g)(t):g(t);o(e,n)},getOptionLabel:c,forcePopupIcon:!1,filterOptions:function(e,n){var a=n.inputValue;return kn.a(Sn.a(a)?y():[],function(e,t){return Object(En.a)(e,t,{keys:["code","display"]})}(e,a)).slice(0,Nn.a(void 0)(t)&&Math.max(t,Sn.a(a)?y().length:0))},openOnFocus:!0,autoHighlight:!0,disableClearable:!0,ChipProps:{onDelete:null},clearOnEscape:!0,getOptionSelected:In.a(l)},h,{renderInput:function(e){return r.a.createElement(Tn,Object.assign({},e,{autoFocus:p,label:a,value:s,error:u,size:f,fullWidth:d,textAlign:m}))}}))},Rn=(n(548),n(324),n(323),Object(m.a)({root:{color:q,"&$checked":{color:q}},checked:{}}),n(325)),zn=Object(a.memo)((function(e){var t=e.name,n=e.onChange,a=e.onBlur,l=e.value,i=e.error,o=e.suffix,c=e.textAlign,s=e.width,u=e.size,d=e.bold,m=e.className,f=e.decimalPlaces,p=(e.InputProps,Object(L.a)(e,["name","onChange","onBlur","value","error","suffix","textAlign","width","size","bold","className","decimalPlaces","InputProps"]));return r.a.createElement(Rn.a,Object.assign({name:t,onChange:n,onBlur:a,value:l,error:i,suffix:o,textAlign:c,width:s,size:u,bold:d,className:m,customInput:Tn,decimalScale:f,onValueChange:function(e){n({target:{id:t,value:e.floatValue}})}},p))})),An=n(564),Mn=n(496),qn=n(547),$n=Object(m.a)({label:{height:16,lineHeight:"16px",margin:[[0,0,4,0]],paddingLeft:3}}),Hn=function(e){var t=e.name,n=e.label,a=e.value,l=e.options,i=e.onChange,o=e.className,c=e.labelClassName,s=e.radioClassName,u=$n();return r.a.createElement(r.a.Fragment,null,n&&r.a.createElement(Kt,{className:u.label},n),r.a.createElement(An.a,{name:t,value:a,onChange:i,className:N()(o)},l.map((function(e,t){return r.a.createElement(Mn.a,{key:t,value:e.code,control:r.a.createElement(qn.a,{className:s}),label:e.display,className:N()(c)})}))))},Vn=Object(a.memo)((function(e){var t=e.value,n=e.onFocus,l=e.onBlur,i=Object(L.a)(e,["value","onFocus","onBlur"]),c=Object(a.useState)(!1),s=Object(o.a)(c,2),u=s[0],d=s[1],m=!!t,f=m?"":t;return r.a.createElement(Tn,Object.assign({},i,{type:"password",onFocus:function(e){d(!0),n&&n(e)},onBlur:function(e){d(!1),l&&l(e)},value:t,InputProps:{value:u?t:f},InputLabelProps:{shrink:m||u},placeholder:m?"\u26ac \u26ac \u26ac This field is set \u26ac \u26ac \u26ac":""}))})),Yn=n(497),Gn=Object(m.a)((function(e){return{root:{width:32,height:20,padding:0,margin:e.spacing(1)},switchBase:{padding:2,"&$disabled":{color:_,"& + $track":{backgroundColor:Z,opacity:1}},"&$checked":{transform:"translateX(58%)",color:e.palette.common.white,"&$disabled":{color:_},"& + $track":{backgroundColor:q,opacity:1,border:"none"}},"&$focusVisible $thumb":{border:"6px solid #fff"}},thumb:{width:16,height:16},track:{borderRadius:17,border:"none",backgroundColor:J,opacity:1,transition:e.transitions.create(["background-color","border"])},disabled:{},checked:{},focusVisible:{}}})),Zn=Object(a.memo)((function(e){var t=Object.assign({},e),n=Gn();return r.a.createElement(Yn.a,Object.assign({focusVisibleClassName:n.focusVisible,disableRipple:!0,classes:{root:n.root,switchBase:n.switchBase,thumb:n.thumb,track:n.track,checked:n.checked,disabled:n.disabled}},t))})),_n=function(e){var t=e.options,n=e.onChange,l=Object(L.a)(e,["options","onChange"]),i=Object(a.useState)(!1),c=Object(o.a)(i,2),s=c[0],u=c[1],d=l.field,m=d.name,f=d.onBlur,p=d.value,h=l.form,b=h.touched,g=h.errors,v=h.setFieldValue,y=h.setFieldTouched,E=!(!b[m]||!g[m]),O=Object(on.e)(),w=O.initialValues,x=O.values,j="Function"===vn.a(t)?t(w,x):t,C=function(e){return v(m,e)};return r.a.createElement(Wn,Object.assign({name:m,onChange:function(e,t){if(n)return n(p,t,C);v(m,t)},onBlur:function(e){m&&y(m,!0),f&&f(e)},value:p,error:E,open:s,options:j,onOpen:function(){if(!l.multiple)return u(!0);u((null===p||void 0===p?void 0:p.length)!==l.limit)},onClose:function(){return u(!1)}},l))},Un=Object(a.memo)((function(e){var t=e.decimalPlaces,n=Object(L.a)(e,["decimalPlaces"]),a=n.field,l=a.name,i=a.onChange,o=a.onBlur,c=a.value,s=n.form,u=s.touched,d=s.errors,m=!(!u[l]||!d[l]);return r.a.createElement(zn,Object.assign({name:l,onChange:i,onBlur:o,value:c,error:m,decimalPlaces:t},n))})),Jn=Object(a.memo)((function(e){var t=e.label,n=Object(L.a)(e,["label"]),a=n.field,l=a.name,i=a.onChange,o=a.value;return r.a.createElement(Hn,Object.assign({name:l,label:t,value:o,options:n.options,ariaLabel:l,onChange:function(e){i(e),n.resetError&&n.resetError()},className:n.className},n))})),Kn=Object(a.memo)((function(e){var t=Object.assign({},e),n=t.field,a=n.name,l=n.onChange,i=n.onBlur,o=n.value,c=t.form,s=c.touched,u=c.errors,d=!(!s[a]||!u[a]);return r.a.createElement(Vn,Object.assign({name:a,onChange:l,onBlur:i,value:o,error:d},t))})),Qn=Object(a.memo)((function(e){var t=Object.assign({},e),n=t.field,a=n.name,l=n.onChange,i=n.onBlur,o=n.value,c=t.form,s=c.touched,u=c.errors,d=!(!s[a]||!u[a]);return r.a.createElement(Tn,Object.assign({name:a,onChange:l,onBlur:i,value:o,error:d},t))}));function Xn(){return(Xn=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var ta=a.createElement("desc",null,"Created with Sketch."),na=a.createElement("g",{id:"icon/stage/zodiac/complete",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd"},a.createElement("circle",{id:"Oval",stroke:"#1B2559",transform:"translate(9.000000, 9.000000) rotate(-270.000000) translate(-9.000000, -9.000000) ",cx:9,cy:9,r:8}),a.createElement("path",{d:"M7.80983711,12 C7.54819546,12 7.28655382,11.9032616 7.08725647,11.710772 L5.29971255,9.98428824 C4.90009582,9.59832189 4.90009582,8.97445811 5.29971255,8.58849175 C5.69932929,8.2025254 6.34525711,8.2025254 6.74487384,8.58849175 L7.80983711,9.61707728 L11.2551262,6.28947477 C11.6547429,5.90350841 12.3016927,5.90350841 12.7002874,6.28947477 C13.0999042,6.674454 13.0999042,7.2993049 12.7002874,7.68527125 L8.53241776,11.710772 C8.33312041,11.9032616 8.07147876,12 7.80983711,12",id:"Path",fill:"#1B2559"}));function aa(e,t){var n=e.title,r=e.titleId,l=ea(e,["title","titleId"]);return a.createElement("svg",Xn({width:"18px",height:"18px",viewBox:"0 0 18 18",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,ta,na)}var ra=a.forwardRef(aa);n.p;function la(){return(la=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var oa=a.createElement("desc",null,"Created with Sketch."),ca=a.createElement("g",{id:"icon/stage/zodiac/current",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd"},a.createElement("circle",{id:"Oval-2-Copy",fill:"#1B2559",cx:9,cy:9,r:4}),a.createElement("circle",{id:"Oval-Copy-5",stroke:"#1B2559",strokeWidth:2,transform:"translate(9.000000, 9.000000) rotate(-270.000000) translate(-9.000000, -9.000000) ",cx:9,cy:9,r:8}));function sa(e,t){var n=e.title,r=e.titleId,l=ia(e,["title","titleId"]);return a.createElement("svg",la({width:"18px",height:"18px",viewBox:"0 0 18 18",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,oa,ca)}var ua=a.forwardRef(sa);n.p;function da(){return(da=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var fa=a.createElement("desc",null,"Created with Sketch."),pa=a.createElement("g",{id:"icon/stage/zodiac/empty",stroke:"none",strokeWidth:2,fill:"none",fillRule:"evenodd"},a.createElement("circle",{id:"Oval-Copy-6",stroke:"#5F668A",transform:"translate(9.000000, 9.000000) rotate(-270.000000) translate(-9.000000, -9.000000) ",cx:9,cy:9,r:8}));function ha(e,t){var n=e.title,r=e.titleId,l=ma(e,["title","titleId"]);return a.createElement("svg",da({width:"18px",height:"18px",viewBox:"0 0 18 18",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,fa,pa)}var ba,ga=a.forwardRef(ha),va=(n.p,Ee.tl2),ya=Ee.p,Ea=T,Oa={sidebar:Object(I.a)({display:"flex",backgroundColor:Ea,width:520,marginLeft:-300,boxShadow:"-500px 0px 0px 0px ".concat(Ea),borderRadius:"0 20px 0 0",alignItems:"flex-end",padding:24,flexDirection:"column"},(ba=1440,"@media only screen and (max-width: ".concat(ba,")")),{width:"auto",marginLeft:0,minWidth:250,boxShadow:"-200px 0px 0px 0px ".concat(Ea)}),link:{extend:ya,position:"relative",color:Q,margin:"12px 24px 12px 0",cursor:"pointer","&:hover::after":{height:"140%"},"&:after":{content:'""',display:"block",background:M,width:4,height:0,left:"100%",marginLeft:20,bottom:-2,position:"absolute",borderRadius:1e3,transition:"all 0.2s cubic-bezier(0.95, 0.1, 0.45, 0.94)"}},activeLink:{extend:va,color:M,"&::after":{height:"140%"}},customRenderLink:{"&:hover::after":{height:"100%"},"&:after":{bottom:0}},customRenderActiveLink:{"&::after":{height:"100%"}},item:{position:"relative",margin:"12px 0 12px 0",display:"flex"},itemText:{extend:ya,color:Q,marginRight:24},itemTextActive:{extend:va,color:M},itemTextPast:{color:M},stepperPath:{position:"absolute",height:25,width:1,border:[[1,"solid",Q]],right:8,top:18},stepperPast:{border:[[1,"solid",M]]}},wa=Object(m.a)(Oa),xa=function(e){var t=e.data,n=e.displayName,a=e.isSelected,l=e.onClick,i=e.children,o=e.itemRender,c=wa();return r.a.createElement("div",{className:c.sidebar},t&&t.map((function(e,t){var i;return r.a.createElement("div",{key:t,className:N()((i={},Object(I.a)(i,c.activeLink,a(e)),Object(I.a)(i,c.customRenderActiveLink,o&&a(e)),Object(I.a)(i,c.customRenderLink,o),Object(I.a)(i,c.link,!0),i)),onClick:function(){return l(e)}},o?o(e,a(e)):n(e))})),i)},ja=function(e){var t,n,a=e.step,l=e.it,i=e.idx,o=e.steps,c=wa(),s=a===i,u=ia;return r.a.createElement("div",{className:c.item},r.a.createElement("span",{className:N()((t={},Object(I.a)(t,c.itemText,!0),Object(I.a)(t,c.itemTextActive,s),Object(I.a)(t,c.itemTextPast,u),t))},l.label),s&&r.a.createElement(ua,null),u&&r.a.createElement(ra,null),d&&r.a.createElement(ga,null),i=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var Sa=a.createElement("style",{type:"text/css"},"\n\t.st0{fill-rule:evenodd;clip-rule:evenodd;fill:#1B2559;}\n"),Na=a.createElement("desc",null,"Created with Sketch."),Ia=a.createElement("g",{id:"color_x2F_primary_x2F_zodiac",transform:"translate(-0.000000, 0.000000)"},a.createElement("g",{id:"Mask"},a.createElement("path",{id:"path-1_1_",className:"st0",d:"M11.1,9l6.5,6.5c0.6,0.6,0.6,1.5,0,2.1c-0.3,0.3-0.7,0.4-1.1,0.4c-0.4,0-0.8-0.2-1.1-0.4 L9,11.1l-6.5,6.5C2.3,17.8,1.9,18,1.5,18c-0.4,0-0.8-0.2-1.1-0.4c-0.6-0.6-0.6-1.5,0-2.1L6.9,9L0.4,2.5C-0.1,2-0.1,1,0.4,0.4 C1-0.1,2-0.1,2.5,0.4L9,6.9l6.5-6.5c0.6-0.6,1.5-0.6,2.1,0c0.6,0.6,0.6,1.5,0,2.1L11.1,9z"})));function La(e,t){var n=e.title,r=e.titleId,l=ka(e,["title","titleId"]);return a.createElement("svg",Ca({id:"Layer_1",x:"0px",y:"0px",viewBox:"0 0 18 18",style:{enableBackground:"new 0 0 18 18"},xmlSpace:"preserve",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,Sa,Na,Ia)}var Ba=a.forwardRef(La);n.p;function Pa(){return(Pa=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var Da=a.createElement("desc",null,"Created with Sketch."),Ta=a.createElement("g",{id:"Symbols",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd"},a.createElement("g",{id:"icon/warning-icon/comet"},a.createElement("rect",{id:"Rectangle",stroke:"#5F668A",strokeWidth:2,x:1,y:1,width:22,height:22,rx:11}),a.createElement("path",{d:"M11.2971429,14.4857143 L11.1085714,5.82857143 L13.3714286,5.82857143 L13.2,14.4857143 L11.2971429,14.4857143 Z M11.1942857,18 L11.1942857,15.9771429 L13.3028571,15.9771429 L13.3028571,18 L11.1942857,18 Z",id:"!",fill:"#5F668A",fillRule:"nonzero"})));function Wa(e,t){var n=e.title,r=e.titleId,l=Fa(e,["title","titleId"]);return a.createElement("svg",Pa({width:"24px",height:"24px",viewBox:"0 0 24 24",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,Da,Ta)}var Ra=a.forwardRef(Wa),za=(n.p,"100%"),Aa="column",Ma={dialog:{backgroundColor:V,width:za,minHeight:za,display:"flex",flexDirection:Aa,padding:0},wrapper:{width:ee,height:za,margin:"0 auto",flex:1,display:"flex",flexDirection:Aa},contentDiv:{display:"flex",flex:1,flexDirection:"row"},headerDiv:{display:"flex",justifyContent:"space-between",alignItems:"center"},contentWrapper:{marginLeft:48},button:{marginTop:64},nameTitle:{marginTop:16,marginBottom:25},qrTitle:{marginTop:12,marginBottom:40},qrCodeWrapper:{display:"flex"},qrTextWrapper:{width:381,marginLeft:80,display:"flex",flexDirection:"column",alignItems:"center"},qrTextIcon:{marginRight:16},qrText:{marginTop:0},item:{position:"relative",margin:"12px 0 12px 0",display:"flex"},itemText:{extend:Ee.p,color:Q,marginRight:24},itemTextActive:{extend:Ee.tl2,color:M},itemTextPast:{color:M},stepperPath:{position:"absolute",height:25,width:1,border:[[1,"solid",Q]],right:8,top:18},stepperPast:{border:[[1,"solid",M]]}};function qa(){var e=Object(tn.a)(["\n {\n machines {\n name\n deviceId\n }\n }\n"]);return qa=function(){return e},e}function $a(){var e=Object(tn.a)(["\n mutation createPairingTotem($name: String!) {\n createPairingTotem(name: $name)\n }\n"]);return $a=function(){return e},e}var Ha=sn()($a()),Va=sn()(qa()),Ya=Object(m.a)(Ma),Ga=mn.a(fn.a,pn.a([],["machines"])),Za={name:""},_a=hn.d().shape({name:hn.e().required().max(50)}),Ua=[{label:"Machine name",component:function(e){var t=e.nextStep,n=e.classes,a=e.setQrCode,l=e.setName,i=Object(nn.b)(Ha,{onCompleted:function(e){var n=e.createPairingTotem;a(n),t()},onError:function(e){return console.log(e)}}),c=Object(o.a)(i,1)[0];return r.a.createElement(r.a.Fragment,null,r.a.createElement(Gt,{className:n.nameTitle},"Machine Name (ex: Coffee shop 01)"),r.a.createElement(on.d,{initialValues:Za,validationSchema:_a,onSubmit:function(e){var t=e.name;l(t),c({variables:{name:t}})}},r.a.createElement(on.c,{className:n.form},r.a.createElement("div",null,r.a.createElement(on.a,{name:"name",label:"Enter machine name",component:Qn})),r.a.createElement("div",{className:n.button},r.a.createElement(Ae,{type:"submit"},"Submit")))))}},{label:"Scan QR code",component:function(e){var t,n=e.classes,a=e.qrCode,l=e.name,i=e.count,o=e.onPaired,c=Object(nn.c)(Va,{pollInterval:1e4}).data,s=null===c||void 0===c||null===(t=c.machines)||void 0===t?void 0:t.find((function(e){return e.name===l}));return Ga(c)>i&&s&&o(s),r.a.createElement(r.a.Fragment,null,r.a.createElement(Gt,{className:n.qrTitle},"Scan QR code with your new cryptomat"),r.a.createElement("div",{className:n.qrCodeWrapper},r.a.createElement("div",null,r.a.createElement(dn.a,{size:240,fgColor:M,value:a})),r.a.createElement("div",{className:n.qrTextWrapper},r.a.createElement("div",{className:n.qrCodeWrapper},r.a.createElement("div",{className:n.qrTextIcon},r.a.createElement(Ra,null)),r.a.createElement(Vt,{className:n.qrText},"To pair the machine you need scan the QR code with your machine. To do this either snap a picture of this QR code or download it through the button above and scan it with the scanning bay on your machine.")))))}}],Ja=Object(a.memo)((function(e){var t=e.close,n=e.onPaired,l=Ya(),i=Object(nn.c)(Va).data,c=Object(a.useState)(""),s=Object(o.a)(c,2),u=s[0],d=s[1],m=Object(a.useState)(""),f=Object(o.a)(m,2),p=f[0],h=f[1],b=Object(a.useState)(0),g=Object(o.a)(b,2),v=g[0],y=g[1],E=Ga(i),O=Ua[v].component;return r.a.createElement("div",null,r.a.createElement(an.a,{fullScreen:!0,className:l.dialog,open:!0,"aria-labelledby":"form-dialog-title"},r.a.createElement(rn.a,{className:l.dialog},r.a.createElement("div",{className:l.wrapper},r.a.createElement("div",{className:l.headerDiv},r.a.createElement(gn,null,"Add Machine"),r.a.createElement(nt.a,{disableRipple:!0,onClick:t},r.a.createElement(ln.a,{color:"error"},r.a.createElement(Ba,null)))),r.a.createElement("div",{className:l.contentDiv},r.a.createElement(xa,null,Ua.map((function(e,t){return function(e,t,n,a){var l,i,o=e===n,c=ne;return r.a.createElement("div",{className:a.item},r.a.createElement("span",{className:N()((l={},Object(I.a)(l,a.itemText,!0),Object(I.a)(l,a.itemTextActive,o),Object(I.a)(l,a.itemTextPast,c),l))},t.label),o&&r.a.createElement(ua,null),c&&r.a.createElement(ra,null),s&&r.a.createElement(ga,null),n=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var Xa=a.createElement("desc",null,"Created with Sketch."),er=a.createElement("defs",null,a.createElement("path",{d:"M17.8413132,12.8764646 C17.8413132,12.8764646 16.6555879,12.5091919 15.661533,12.2855556 C15.661533,12.2855556 15.3477198,10.3246465 14.8939121,8.23646465 C14.8939121,8.23646465 15.1560495,8.21373737 15.3383242,8.8710101 L16.0223242,12.0219192 C16.0223242,12.0219192 17.2343571,12.2991919 18.1795549,12.6537374 L17.8413132,12.8764646 Z M15.2603407,6.10282828 L15.5328132,5.80555556 C16.0627253,5.87828283 16.3483516,6.02828283 16.3483516,6.02828283 L16.291978,6.11191919 L16.3972088,6.9310101 C16.2440604,6.93646465 16.0091703,7.05919192 16.0091703,7.05919192 L15.8315934,6.95010101 L15.8315934,6.38282828 C15.3026209,6.29919192 15.2556429,6.21828283 15.2556429,6.21828283 L15.2603407,6.10282828 Z M12.4557527,18.2873737 C11.2831813,18.4964646 9.84565385,18.2237374 9.84565385,18.2237374 L9.89732967,17.9991919 C9.89732967,17.9991919 11.6496099,18.1955556 12.6248736,17.8973737 C12.5553462,18.0628283 12.5356154,18.1137374 12.4557527,18.2873737 L12.4557527,18.2873737 Z M9.18984066,14.5464646 C8.379,15.1364646 7.56064286,15.6791919 7.00442308,16.1091919 C6.9705989,16.6955556 6.91516484,17.6464646 6.91516484,17.6464646 L5.46448352,18.5182828 L5.22207692,18.3737374 C5.27845055,17.9219192 5.34891758,17.5882828 5.34891758,17.5882828 L5.55186264,17.4410101 C5.50676374,17.7282828 5.48515385,18.1346465 5.48515385,18.1346465 L6.5928956,17.440101 C6.63705495,16.7019192 6.72443407,15.960101 6.72443407,15.960101 C6.9705989,15.7373737 8.73697253,14.5237374 10.0100803,13.6864646 C10.0100803,13.6864646 10.018533,13.9437374 9.18984066,14.5464646 L9.18984066,14.5464646 Z M14.977533,0.195555556 C15.2612802,0.167373737 15.5065055,0.184646465 15.7103901,0.228282828 L15.7103901,0.228282828 L15.8813901,0.697373737 L16.1003077,0.361919192 C16.2694286,0.447373737 16.3746593,0.547373737 16.4056648,0.624646465 C16.4056648,0.624646465 16.3615055,0.909191919 16.4319725,1.36464646 C16.5005604,1.80373737 16.6988077,2.78191919 16.6988077,2.78191919 C16.9740989,3.00646465 17.2850934,3.51282828 17.2850934,3.51282828 C17.4758242,4.41737374 17.4645495,5.04919192 17.4636099,5.1210101 C16.6734396,4.68646465 15.6173736,4.58555556 15.6173736,4.58555556 L15.6173736,4.58555556 L15.2481264,4.90828283 C15.9753462,5.00828283 16.8792033,5.26555556 17.1122143,5.44555556 C17.2484505,5.74737374 17.3386484,6.22828283 17.3386484,6.22828283 L17.3386484,6.22828283 L17.0445659,6.58919192 L17.3198571,6.8810101 C17.3386484,7.22464646 17.2183846,7.56919192 17.2183846,7.56919192 C17.7905769,7.93010101 17.9512418,8.79373737 18.3101538,10.250101 C18.6700055,11.7064646 18.9903956,12.9055556 18.9903956,12.9055556 L18.9903956,12.9055556 L18.4567253,13.2019192 C19.1623352,15.7282828 18.444511,17.7391919 17.5378352,19.0664646 C16.6320989,20.3946465 16.0862143,21.7137374 16.1031264,22.8910101 L16.1031264,22.8910101 L16.5475385,23.2346465 L16.7749121,23.9491919 L14.3048077,23.9491919 L14.293533,23.2728283 C14.2925934,21.5619192 14.9230385,20.1328283 14.9230385,20.1328283 C15.2857088,20.0473737 15.6596538,19.7628283 15.6596538,19.7628283 C15.0733681,19.8828283 14.3414505,19.7964646 14.3414505,19.7964646 C14.8676044,18.8537374 15.0292088,18.1773737 15.0292088,18.1773737 L15.0292088,18.1773737 L14.7811648,18.1228283 C14.6956648,18.310101 14.6073462,18.4937374 14.5133901,18.6710101 C13.8754286,19.8864646 13.1735769,20.6628283 12.7554725,22.4055556 L12.7554725,22.4055556 L13.1933077,22.7455556 L13.6987912,23.9491919 L10.8509835,23.9491919 C10.8340714,21.8246465 11.495522,20.2273737 11.7341703,19.7628283 C10.2233571,19.9264646 8.42128022,19.1782828 6.99314835,19.4664646 C6.60041209,21.9473737 4.59257143,22.4355556 3.65019231,22.300101 L3.65019231,22.300101 L2.97652747,23.4146465 L3.58724176,23.9491919 L1.33135714,23.9491919 C1.32008242,23.8546465 1.2918956,23.7537374 1.22988462,23.6591919 C1.22988462,23.6591919 1.97401648,22.5882828 2.48231868,21.150101 C2.89008791,21.3255556 3.75166484,20.9928283 3.78736813,20.1055556 C3.82401099,19.2191919 3.67086264,17.8419192 4.46854945,16.7891919 C5.2652967,15.7355556 6.12687363,15.1655556 7.25152747,14.3328283 C7.98250549,13.7910101 9.22084615,12.8755556 9.99974176,12.3010101 L9.99974176,12.3010101 L9.61546154,12.3864646 L6.81087363,14.6491919 L5.82997253,14.6491919 L8.66368681,12.1164646 L8.29725824,12.1091919 L5.33576374,14.6491919 L4.34170879,14.6491919 L7.27313736,11.720101 L6.9208022,11.7173737 L3.88038462,14.6491919 L2.86565934,14.6491919 L5.8093022,11.3037374 L5.46918132,11.3055556 L2.43534066,14.6491919 L1.36706044,14.6491919 L4.22614286,10.8528283 L3.89635714,10.8573737 L0.963989011,14.6491919 L0,14.6491919 C0,14.6491919 4.11809341,8.22464646 4.92893407,7.00737374 C5.73883516,5.79010101 6.6192033,4.62282828 8.06894505,4.38464646 C9.53465934,4.14282828 10.5343516,4.46646465 11.2502967,5.63373737 C11.636456,6.2610101 12.1034176,6.97828283 12.4698462,7.55919192 C12.0968407,8.1510101 11.6298791,8.6110101 11.5857198,9.32282828 C11.534044,10.1419192 12.0921429,10.6373737 12.6558791,10.6773737 C12.2321374,10.5282828 11.8976538,10.0337374 12.0489231,9.37646465 C12.2058297,8.69737374 12.7554725,8.35191919 13.1726374,7.80282828 C13.5315495,7.32828283 13.5371868,6.63282828 13.5108791,6.4010101 C13.4836319,6.16919192 13.2167967,5.98828283 13.2167967,5.98828283 C13.2167967,5.98828283 13.2252527,5.52373737 13.2167967,5.01646465 C13.2083407,4.51010101 13.4300769,4.21828283 13.4300769,4.21828283 C13.4300769,4.21828283 13.4216209,3.4610101 13.3943736,2.57646465 C13.3671264,1.72555556 13.2863242,1.46828283 13.205522,1.35464646 C13.205522,1.35464646 13.2694121,1.10919192 13.5099396,0.844646465 L13.5099396,0.844646465 L13.7542253,1.06282828 L13.8284505,0.571919192 C13.9825385,0.469191919 14.1723297,0.375555556 14.4072198,0.307373737 C14.4325879,0.30010101 14.4570165,0.294646465 14.4823846,0.288282828 L14.4823846,0.288282828 L14.7896209,0.644646465 Z M7.71628243,19.8937938 C8.32897736,19.8402566 9.02386307,19.9393405 9.75797621,20.0432188 L9.75797621,20.0432188 L9.86538462,20.058401 C9.7449004,20.8103202 9.02106112,21.7691969 7.79193531,22.0896215 L7.79193531,22.0896215 L9.01358923,23.5151515 L7.36136769,23.5151515 C7.15589073,23.2226941 6.50396838,22.32135 6.16586538,21.9681638 C6.72065317,21.6525335 7.42954868,21.0388524 7.71628243,19.8937938 Z",id:"path-1"})),tr=a.createElement("g",{id:"Symbols",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd"},a.createElement("g",{id:"nav-/-primary-/-1440",transform:"translate(-128.000000, -14.000000)"},a.createElement("g",{id:"icon/lamassu-logo",transform:"translate(128.000000, 14.000000)"},a.createElement("g",{id:"color/amaz/default"},a.createElement("mask",{id:"mask-2",fill:"white"},a.createElement("use",{xlinkHref:"#path-1"})),a.createElement("use",{id:"Mask",fill:"#16D6D3",xlinkHref:"#path-1"})))));function nr(e,t){var n=e.title,r=e.titleId,l=Qa(e,["title","titleId"]);return a.createElement("svg",Ka({width:"19px",height:"24px",viewBox:"0 0 19 24",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,Xa,er,tr)}var ar=a.forwardRef(nr),rr=(n.p,Ee.tl2),lr=Ee.p,ir=56,or=40;var cr={header:{backgroundColor:M,color:R,height:ir,display:"flex"},content:{maxWidth:ee,flex:1,display:"flex",alignItems:"center",margin:"0 auto"},nav:{flex:1,display:"flex",alignItems:"center",justifyContent:"space-between"},ul:{display:"flex",paddingLeft:36,height:56,margin:0},li:{listStyle:"none",color:R,margin:[[20,20,0,20]],"&:hover":{color:R},"&:hover::after":{width:"50%",marginLeft:"-25%"},position:"relative","&:after":{content:'""',display:"block",background:R,width:0,height:4,left:"50%",marginLeft:0,bottom:-8,position:"absolute",borderRadius:1e3,transition:[["all","0.2s","cubic-bezier(0.95, 0.1, 0.45, 0.94)"]]}},link:{extend:lr,textDecoration:"none",border:"none",color:R,backgroundColor:"transparent"},forceSize:{display:"inline-block",textAlign:"center","&:after":{display:"block",content:"attr(forcesize)",fontWeight:700,height:0,overflow:"hidden",visibility:"hidden"}},activeLink:{color:R,"& li::after":{width:"50%",marginLeft:"-25%"}},addMachine:{marginLeft:"auto"},subheader:{backgroundColor:Y,color:R,height:or,display:"flex"},subheaderUl:{display:"flex",paddingLeft:0},subheaderLi:{extend:rr,display:"flex",alignItems:"center",height:24,listStyle:"none",padding:[[0,20]],"&:first-child":{paddingLeft:0}},subheaderLink:{extend:lr,textDecoration:"none",border:"none",color:Q},activeSubheaderLink:{extend:rr,color:U},white:{color:R},logo:{display:"flex",alignItems:"center","& > svg":{marginRight:16}}},sr=Object(m.a)(cr),ur=function(e){var t=e.item,n=e.classes;return r.a.createElement("div",{className:n.subheader},r.a.createElement("div",{className:n.content},r.a.createElement("nav",null,r.a.createElement("ul",{className:n.subheaderUl},t.children.map((function(e,t){return r.a.createElement("li",{key:t,className:n.subheaderLi},r.a.createElement(v.b,{to:e.route,className:n.subheaderLink,activeClassName:n.activeSubheaderLink},e.label))}))))))},dr=Object(a.memo)((function(e){var t=e.tree,n=Object(a.useState)(!1),l=Object(o.a)(n,2),i=l[0],c=l[1],s=Object(a.useState)(),u=Object(o.a)(s,2),d=u[0],m=u[1],f=Object(g.h)(),p=sr();return r.a.createElement("header",null,r.a.createElement("div",{className:p.header},r.a.createElement("div",{className:p.content},r.a.createElement("div",{className:p.logo},r.a.createElement(ar,null),r.a.createElement($t,{className:p.white},"Lamassu Admin")),r.a.createElement("nav",{className:p.nav},r.a.createElement("ul",{className:p.ul},t.map((function(e,t){return r.a.createElement(v.b,{key:t,to:e.route||e.children[0].route,isActive:function(t){return!!t&&(m(e),!0)},className:N()(p.link,p.whiteLink),activeClassName:p.activeLink},r.a.createElement("li",{className:p.li},r.a.createElement("span",{className:p.forceSize,forcesize:e.label},e.label)))}))),r.a.createElement(ut,{color:"action",onClick:function(){return c(!0)}},"Add Machine")))),d&&d.children&&r.a.createElement(ur,{item:d,classes:p}),i&&r.a.createElement(Ja,{close:function(){return c(!1)},onPaired:function(e){c(!1),f.push("/maintenance/machine-status",{id:e.deviceId})}}))})),mr=n(538),fr=n(554),pr=n(557),hr=n(233),br=n(530),gr=n(523),vr=n(326),yr=n.n(vr),Er=function(){var e=Object(g.h)(),t=new URLSearchParams(Object(g.i)().search);return yr()({url:"".concat("","/api/register?otp=").concat(t.get("otp")),method:"GET",options:{withCredentials:!0},trigger:[],customHandler:function(t,n){t||n&&e.push("/wizard",{fromAuthRegister:!0})}}),r.a.createElement("span",null,"registering...")},Or=n(219),wr=n(518),xr=n(502);function jr(){return(jr=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var kr=a.createElement("desc",null,"Created with Sketch."),Sr=a.createElement("g",{id:"icon/action/help/zodiac",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd"},a.createElement("path",{d:"M20.0004,11 C20.0004,6.03028475 15.9701153,2 11.0004,2 C6.03004556,2 2.0004,6.02992391 2.0004,11 C2.0004,15.9700761 6.03004556,20 11.0004,20 C15.9701153,20 20.0004,15.9697153 20.0004,11 Z M22.0004,11 C22.0004,17.0742847 17.0746847,22 11.0004,22 C4.92544514,22 0.000400000001,17.0746147 0.000400000001,11 C0.000400000001,4.92538534 4.92544514,0 11.0004,0 C17.0746847,0 22.0004,4.92571525 22.0004,11 Z",id:"Stroke-1",fill:"#1B2559",fillRule:"nonzero"}),a.createElement("path",{d:"M9.9164,8.9063 C9.9164,9.45858475 9.46868475,9.9063 8.9164,9.9063 C8.36411525,9.9063 7.9164,9.45858475 7.9164,8.9063 C7.9164,6.89094438 9.72972438,5.35290249 11.7463843,5.7072003 C13.0663562,5.93764844 14.1348314,7.00654285 14.3652323,8.32479116 C14.6130182,9.7312185 13.941375,11.0876584 12.732214,11.7545735 C12.370484,11.9534687 12.1664,12.2664153 12.1664,12.5913 L12.1664,12.6563 C12.1664,13.2085847 11.7186847,13.6563 11.1664,13.6563 C10.6141153,13.6563 10.1664,13.2085847 10.1664,12.6563 L10.1664,12.5913 C10.1664,11.5009567 10.7946963,10.5375141 11.7674377,10.0026589 C12.2360927,9.74417086 12.493064,9.22519581 12.3953326,8.67046887 C12.3098185,8.1811985 11.8915858,7.76280177 11.4013649,7.67721566 C10.6126181,7.53864454 9.9164,8.1291691 9.9164,8.9063 Z",id:"Stroke-3",fill:"#1B2559",fillRule:"nonzero"}),a.createElement("path",{d:"M10.1039,15.2188 C10.1039,14.6318 10.5799,14.1568 11.1659,14.1568 C11.7529,14.1568 12.2289,14.6318 12.2289,15.2188 C12.2289,15.8058 11.7529,16.2808 11.1659,16.2808 C10.5799,16.2808 10.1039,15.8058 10.1039,15.2188",id:"Fill-5",fill:"#1B2559"}));function Nr(e,t){var n=e.title,r=e.titleId,l=Cr(e,["title","titleId"]);return a.createElement("svg",jr({width:"22px",height:"22px",viewBox:"0 0 22 22",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,kr,Sr)}var Ir=a.forwardRef(Nr),Lr=(n.p,Object(m.a)({transparentButton:{border:"none",backgroundColor:"transparent",marginTop:4,outline:"none",cursor:"pointer"},popoverContent:function(e){return{width:e.width,padding:[[10,15]]}}})),Br=Object(a.memo)((function(e){var t=e.children,n=e.width,l=e.Icon,i=void 0===l?Ir:l,c=Lr({width:n}),s=Object(a.useState)(null),u=Object(o.a)(s,2),d=u[0],m=u[1],f=Boolean(d);return r.a.createElement(xr.a,{onClickAway:function(){m(null)}},r.a.createElement("div",null,r.a.createElement("button",{className:c.transparentButton,onClick:function(e){m(d?null:e.currentTarget)}},r.a.createElement(i,null)),r.a.createElement(Je,{open:f,anchorEl:d,placement:"bottom"},r.a.createElement("div",{className:c.popoverContent},t))))})),Pr=n(516),Fr=n(503),Dr=n(504),Tr=n(327),Wr=n(505),Rr=n(549),zr="cashOut",Ar="wallets",Mr="operatorInfo",qr="notifications",$r="locale",Hr="commissions",Vr="receipt",Yr="coinAtmRadar",Gr="termsConditions",Zr=Fr.a((function(e,t){return Dr.a(jn.a(Tr.a(0,e),Wr.a(t)))})),_r=Fr.a((function(e,t){return Dr.a(hr.a((function(t){return e(t[0])}),Wr.a(t)))})),Ur=Fr.a((function(e,t){return Rr.a(e,t)?t.slice(e.length):t})),Jr=Fr.a((function(e,t){return mn.a(function(e){return Zr(Ur("".concat(e,"_")))}(e),function(e){return _r(Rr.a("".concat(e,"_")))}(e))(t)})),Kr=Fr.a((function(e,t){return Zr((function(t){return"".concat(e,"_").concat(t)}))(t)})),Qr=n(54),Xr=n.n(Qr),el=n(77),tl=n(152),nl=n(328),al=n(555),rl=n(556),ll=n(514),il=n(95),ol=n(234),cl=n(515),sl=n(550),ul=function(e){var t=e.message,n=void 0===t?"You have unsaved changes on this page. Are you sure you want to leave?":t,a=Object(on.e)();return r.a.createElement(g.a,{when:a.dirty&&0===a.submitCount,message:n})},dl=n(506),ml=n(507),fl=Ee.tl2,pl=Ee.label1,hl={size:function(e){var t=e.size;return Bn(t)},bold:Pn,header:{extend:fl,backgroundColor:ge,height:pe,textAlign:"left",color:R,display:"flex",alignItems:"center"},doubleHeader:{extend:fl,backgroundColor:ge,height:be,color:R,display:"table-row"},thDoubleLevel:function(e){return{width:e.width,display:"table-cell","& > :first-child":{margin:[[0,10]],extend:pl,fontWeight:700,display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:J,color:R,borderRadius:[[0,0,8,8]],height:28},"& > :last-child":{padding:[[0,11]],display:"table-cell",verticalAlign:"middle",height:be-28}}},cellDoubleLevel:{display:"flex",padding:[[0,16]]},td:function(e){var t=e.textAlign;return{width:e.width,padding:[[1,24,0,24]],textAlign:t}},tdHeader:{verticalAlign:"middle",display:"table-cell",padding:[[0,24]]},trError:{backgroundColor:ve},mainContent:function(e){return{display:"flex",alignItems:"center",minHeight:"lg"===e.size?68:48}},cardContentRoot:{margin:0,padding:0,"&:last-child":{padding:0}},card:{extend:Ee.p,"&:before":{height:0},margin:[[4,0,0,0]],width:"100%",boxShadow:[[0,0,4,0,"rgba(0, 0, 0, 0.08)"]]},actionCol:{marginLeft:"auto"},errorContent:{padding:[[12,0,12,24]],color:X}},bl=Object(m.a)(hl),gl=function(e){var t=e.children,n=e.className,a=Object(L.a)(e,["children","className"]);return r.a.createElement("div",Object.assign({className:N()(n)},a),t)},vl=function(e){var t=e.children,n=e.className,a=bl();return r.a.createElement("div",{className:N()(n,a.header)},t)},yl=function(e){var t=e.children,n=e.className,a=bl();return r.a.createElement("div",{className:N()(n,a.doubleHeader)},t)},El=function(e){var t=e.children,n=e.className;return r.a.createElement("div",{className:N()(n)},t)},Ol=function(e){var t,n=e.children,a=e.header,l=e.className,i=e.width,o=void 0===i?100:i,c=e.size,s=e.bold,u=e.textAlign,d=e.action,m=bl({textAlign:u,width:o,size:c}),f=(t={},Object(I.a)(t,m.td,!0),Object(I.a)(t,m.tdHeader,a),Object(I.a)(t,m.actionCol,d),Object(I.a)(t,m.size,!a),Object(I.a)(t,m.bold,!a&&s),t);return r.a.createElement("div",{className:N()(l,f)},n)},wl=function(e){var t=e.children,n=Object(L.a)(e,["children"]);return r.a.createElement(Ol,Object.assign({header:!0},n),t)},xl=function(e){var t=e.title,n=e.children,a=e.className,l=e.width,i=bl({width:l});return r.a.createElement("div",{className:N()(a,i.thDoubleLevel)},r.a.createElement("div",null,t),r.a.createElement("div",null,n))},jl=function(e){var t,n=e.onClick,a=e.error,l=e.errorMessage,i=e.children,o=e.className,c=e.size,s=bl({size:c}),u={root:s.cardContentRoot},d=(t={},Object(I.a)(t,s.tr,!0),Object(I.a)(t,s.trError,a),Object(I.a)(t,s.card,!0),Object(I.a)(t,"className",o),t);return r.a.createElement(r.a.Fragment,null,r.a.createElement(dl.a,{className:N()(d,o),onClick:n},r.a.createElement(ml.a,{classes:u},r.a.createElement("div",{className:s.mainContent},i),a&&r.a.createElement("div",{className:s.errorContent},l))))},Cl=r.a.createContext(),kl=n(546),Sl=n(509),Nl=n(510),Il=n(511),Ll=n(508),Bl=n(227),Pl=Bl.create({checkTypes:!1,env:Bl.env}),Fl=Pl.compose(Pl.joinWith(""))(Tr.a(0,Pl.toLower)),Dl=Pl.compose(Pl.joinWith(""))(Tr.a(0,Pl.toUpper)),Tl=Pl.compose(Dl)(Pl.toLower),Wl=mn.a(Pl.splitOn(" "),Ll.a(/([A-Z])/g," $1"),Fl),Rl=mn.a(Pl.joinWith(" "),Pl.map(Tl),Wl),zl=function(){var e=Object(a.useContext)(Cl),t=e.elements,n=e.enableEdit,l=e.editWidth,i=e.enableDelete,c=e.deleteWidth,s=e.enableToggle,u=e.toggleWidth,d=e.DEFAULT_COL_SIZE,m=function(e,t){var n=e.name,a=e.width,l=void 0===a?d:a,i=e.header,o=e.textAlign;return r.a.createElement(Ol,{header:!0,key:t,width:l,textAlign:o},i||Rl(n))},f=function(e){var t=kl.a(fr.a("doubleHeader"))(e),n=Object(o.a)(t,2),a=n[0],r=n[1];if(!a.length)return[e,vl];var l=Sl.a(a[0],e),i=mn.a(Nl.a,jn.a(Or.a(["width"])))(a);return[Il.a(l,{width:i,elements:a,name:a[0].doubleHeader},r),yl]}(t),p=Object(o.a)(f,2),h=p[0],b=p[1];return r.a.createElement(b,null,h.map((function(e,t){var n=e.width,a=e.elements,l=e.name;return a&&a.length?r.a.createElement(xl,{key:t,width:n,title:l},a.map(m)):m(e,t)})),n&&r.a.createElement(Ol,{header:!0,width:l,textAlign:"center"},"Edit"),i&&r.a.createElement(Ol,{header:!0,width:c,textAlign:"center"},"Delete"),s&&r.a.createElement(Ol,{header:!0,width:u,textAlign:"center"},"Enable"))},Al=n(512),Ml=n(81),ql=n(513),$l=n(338);function Hl(){return(Hl=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var Yl=a.createElement("desc",null,"Created with Sketch."),Gl=a.createElement("defs",null,a.createElement("path",{id:"arrow-path",d:"M5.3501239,7.53208616 L0.473798314,2.73082122 C-0.158421727,2.1051411 -0.158421727,1.0952488 0.476737158,0.466675069 C1.11220338,-0.155816755 2.1378971,-0.155816755 2.77494316,0.468226909 L6.49990857,4.13723769 L10.2264532,0.466675069 C10.8619195,-0.155816755 11.8876132,-0.155816755 12.5260183,0.469568675 C13.1582383,1.0952488 13.1582383,2.1051411 12.5245507,2.73226987 L7.64673876,7.53497972 C7.33802629,7.83583835 6.92590837,8 6.49990828,8 C6.0739082,8 5.66179027,7.83583835 5.3501239,7.53208616 Z"})),Zl=a.createElement("g",{id:"Styleguide",stroke:"none",strokeWidth:1,fillRule:"evenodd"},a.createElement("g",{id:"icon/action/arrow/regular"},a.createElement("mask",{id:"mask-2",fill:"white"},a.createElement("use",{xlinkHref:"#path-1"})),a.createElement("use",{id:"Mask",fillRule:"nonzero",xlinkHref:"#arrow-path"})));function _l(e,t){var n=e.title,r=e.titleId,l=Vl(e,["title","titleId"]);return a.createElement("svg",Hl({width:"13px",height:"8px",viewBox:"0 0 13 8",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,Yl,Gl,Zl)}var Ul=a.forwardRef(_l),Jl=(n.p,Ee.p),Kl=152,Ql={selectedItem:{width:111,display:"block",whiteSpace:"nowrap",overflow:"hidden"},select:{width:Kl,zIndex:2,"& label":{extend:Ee.label1,color:J,paddingLeft:10},"& button":{extend:Jl,position:"relative",border:0,backgroundColor:Y,width:Kl,padding:[[6,0,6,12]],borderRadius:20,lineHeight:"1.14",textAlign:"left",color:J,cursor:"pointer",outline:"0 none"},"& ul":{maxHeight:"200px",width:Kl,overflowY:"auto",position:"absolute",margin:0,borderTop:0,padding:0,borderRadius:[[0,0,8,8]],backgroundColor:Y,outline:"0 none","& li":{extend:Jl,listStyleType:"none",padding:[[6,12]],cursor:"pointer","& span":{width:"100%",display:"block",overflow:"hidden",whiteSpace:"nowrap"}},"& li:hover":{backgroundColor:J,color:R}},"& svg":{position:"absolute",top:12,right:14,fill:J}},selectFiltered:{"& button":{backgroundColor:J,color:R},"& ul":{"& li":{backgroundColor:J,color:R},"& li:hover":{backgroundColor:Y,color:J}},"& svg":{fill:[[R],"!important"]}},open:{"& button":{borderRadius:[[8,8,0,0]]}}},Xl=Object(m.a)(Ql);var ei=function(e){var t,n=e.label,a=e.items,l=Object(L.a)(e,["label","items"]),i=Xl(),o=Object($l.a)({items:a,selectedItem:l.selectedItem,onSelectedItemChange:function(e){l.onSelectedItemChange(e.selectedItem)}}),c=o.isOpen,s=o.selectedItem,u=o.getToggleButtonProps,d=o.getLabelProps,m=o.getMenuProps,f=o.getItemProps,p=(t={},Object(I.a)(t,i.select,!0),Object(I.a)(t,i.selectFiltered,s!==l.default),Object(I.a)(t,i.open,c),t);return r.a.createElement("div",{className:N()(p)},r.a.createElement("label",d(),Rl(n)),r.a.createElement("button",u(),r.a.createElement("span",{className:i.selectedItem},Rl(s)),r.a.createElement(Ul,null)),r.a.createElement("ul",m(),c&&a.map((function(e,t){return r.a.createElement("li",Object.assign({key:"".concat(e).concat(t)},f({item:e,index:t})),r.a.createElement("span",null,Rl(e)))}))))},ti=n(563),ni=n(16),ai=Object(a.memo)((function(e){var t=e.classes,n=Object(L.a)(e,["classes"]);return r.a.createElement(ti.a,Object.assign({size:"small",classes:t},n))})),ri=Object(ni.a)((function(e){return{root:{backgroundColor:Y,borderRadius:4,margin:e.spacing(.5,.25),height:18},label:{fontSize:se,color:U,fontWeight:500,fontFamily:fe,paddingRight:4,paddingLeft:4}}}))(ai),li={cashOut:{empty:z,full:M},cashIn:{empty:M,full:z}},ii=function(e){var t=e.percent,n=e.cashOut;return li[n?"cashOut":"cashIn"][t>=50?"full":"empty"]},oi={cashbox:{borderColor:ii,backgroundColor:ii,height:118,width:80,border:"2px solid",textAlign:"end",display:"inline-block"},emptyPart:{backgroundColor:"white",height:function(e){var t=e.percent;return"".concat(100-t,"%")},position:"relative","& > p":{color:ii,display:"inline-block",position:"absolute",margin:0,bottom:0,right:0}},fullPart:{backgroundColor:ii,"& > p":{color:"white",display:"inline"}}},ci={row:{display:"flex",justifyContent:"space-between"},innerRow:{display:"flex",justifyContent:"flex-start"},col2:{marginLeft:16},noMarginText:{marginTop:0,marginBottom:0},link:{marginTop:8},chip:{margin:[[0,0,0,7]]}},si=Object(m.a)(oi),ui=Object(m.a)(ci),di=function(e){var t=e.percent,n=void 0===t?0:t,a=e.cashOut,l=void 0!==a&&a,i=e.className,o=si({percent:n,cashOut:l});return r.a.createElement("div",{className:N()(i,o.cashbox)},r.a.createElement("div",{className:o.emptyPart},n<=51&&r.a.createElement(Qt,null,n.toFixed(0),"%")),r.a.createElement("div",{className:o.fullPart},n>51&&r.a.createElement(Qt,null,n.toFixed(0),"%")))},mi=function(e){var t=e.capacity,n=void 0===t?500:t,a=e.denomination,l=void 0===a?0:a,i=e.currency,o=e.notes,c=e.className,s=100*o/n,u=ui();return r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:u.row},r.a.createElement("div",{className:u.col},r.a.createElement(di,{className:c,percent:s,cashOut:!0})),r.a.createElement("div",{className:u.col2},r.a.createElement("div",{className:u.innerRow},r.a.createElement(Gt,{className:u.noMarginText},o),r.a.createElement(ri,{className:u.chip,label:"".concat(l," ").concat(i.code)})),r.a.createElement("div",{className:u.innerRow},r.a.createElement(Kt,{className:u.noMarginText},o*l," ",i.code)))))};function fi(){return(fi=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var hi=a.createElement("defs",null,a.createElement("path",{id:"a",d:"M0 0h22v22H0z"})),bi=a.createElement("g",{fill:"none",fillRule:"evenodd"},a.createElement("mask",{id:"b",fill:"#fff"},a.createElement("use",{xlinkHref:"#a"})),a.createElement("path",{stroke:"#9B9B9B",strokeWidth:2,strokeLinecap:"round",mask:"url(#b)",d:"M9 9v9M13 9v9"}),a.createElement("g",{mask:"url(#b)",stroke:"#9B9B9B",strokeLinecap:"round",strokeWidth:2},a.createElement("path",{strokeLinejoin:"round",d:"M3 6l2 15h12l2-15"}),a.createElement("path",{d:"M1 5h20M14 4a3 3 0 10-6 0"})));function gi(e,t){var n=e.title,r=e.titleId,l=pi(e,["title","titleId"]);return a.createElement("svg",fi({width:22,height:22,ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,hi,bi)}var vi=a.forwardRef(gi);n.p;function yi(){return(yi=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var Oi=a.createElement("desc",null,"Created with Sketch."),wi=a.createElement("g",{id:"icon/action/delete/enabled",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd",strokeLinecap:"round"},a.createElement("line",{x1:9,y1:9,x2:9,y2:18,id:"Stroke-1",stroke:"#1B2559",strokeWidth:2}),a.createElement("line",{x1:13,y1:9,x2:13,y2:18,id:"Stroke-2",stroke:"#1B2559",strokeWidth:2}),a.createElement("polyline",{id:"Stroke-3",stroke:"#1B2559",strokeWidth:2,strokeLinejoin:"round",points:"3 6 5 21 17 21 19 6"}),a.createElement("line",{x1:1,y1:5,x2:21,y2:5,id:"Stroke-5",stroke:"#1B2559",strokeWidth:2}),a.createElement("path",{d:"M14,4 C14,2.343 12.657,1 11,1 C9.343,1 8,2.343 8,4",id:"Stroke-7",stroke:"#1B2559",strokeWidth:2}));function xi(e,t){var n=e.title,r=e.titleId,l=Ei(e,["title","titleId"]);return a.createElement("svg",yi({width:"22px",height:"22px",viewBox:"0 0 22 22",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,Oi,wi)}var ji=a.forwardRef(xi);n.p;function Ci(){return(Ci=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var Si=a.createElement("desc",null,"Created with Sketch."),Ni=a.createElement("g",{id:"icon/action/edit/disabled",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},a.createElement("path",{d:"M1,18 L1,18 C1,19.657 2.343,21 4,21 L18,21 C19.657,21 21,19.657 21,18",id:"Stroke-1",stroke:"#9B9B9B",strokeWidth:2}),a.createElement("polygon",{id:"Stroke-3",stroke:"#9B9B9B",strokeWidth:2,points:"6 12 17 1 21 5 10 16 6 16"}));function Ii(e,t){var n=e.title,r=e.titleId,l=ki(e,["title","titleId"]);return a.createElement("svg",Ci({width:"22px",height:"22px",viewBox:"0 0 22 22",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,Si,Ni)}var Li=a.forwardRef(Ii);n.p;function Bi(){return(Bi=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var Fi=a.createElement("desc",null,"Created with Sketch."),Di=a.createElement("g",{id:"icon/action/edit/enabled",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},a.createElement("path",{d:"M1,18 L1,18 C1,19.657 2.343,21 4,21 L18,21 C19.657,21 21,19.657 21,18",id:"Stroke-1",stroke:"#1B2559",strokeWidth:2}),a.createElement("polygon",{id:"Stroke-3",stroke:"#1B2559",strokeWidth:2,points:"6 12 17 1 21 5 10 16 6 16"}));function Ti(e,t){var n=e.title,r=e.titleId,l=Pi(e,["title","titleId"]);return a.createElement("svg",Bi({width:"22px",height:"22px",viewBox:"0 0 22 22",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,Fi,Di)}var Wi=a.forwardRef(Ti);n.p;function Ri(){return(Ri=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var Ai=a.createElement("defs",null,a.createElement("pattern",{id:"pattern_68JiZ",patternUnits:"userSpaceOnUse",width:5.5,height:5.5,patternTransform:"rotate(45)"},a.createElement("line",{x1:0,y:0,x2:0,y2:5.5,stroke:"#DBDFED",strokeWidth:3}))),Mi=a.createElement("rect",{width:"100%",height:"100%",fill:"url(#pattern_68JiZ)",opacity:1});function qi(e,t){var n=e.title,r=e.titleId,l=zi(e,["title","titleId"]);return a.createElement("svg",Ri({width:"100%",height:"36px",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,Ai,"{' '}\n ",Mi)}var $i=a.forwardRef(qi),Hi=(n.p,{saveButton:{marginRight:20},lastOfGroup:{marginBottom:24},extraPadding:{paddingLeft:35,paddingRight:30},extraPaddingRight:{paddingRight:39},withSuffix:function(e){var t=e.textAlign;return{display:"flex",alignItems:"baseline",justifyContent:"right"===t?"end":t}},suffix:{marginLeft:7},size:function(e){var t=e.size;return Bn(t)},bold:Pn}),Vi=Object(m.a)(Hi),Yi=function(e){var t=e.disabled,n=e.editing,l=Vi(),i=Object(on.e)(),o=i.values,c=i.submitForm,s=i.resetForm,u=Object(a.useContext)(Cl),d=u.editWidth,m=u.onEdit,f=u.enableEdit,p=u.enableDelete,h=u.disableRowEdit,b=u.onDelete,g=u.deleteWidth,v=u.enableToggle,y=u.onToggle,E=u.toggleWidth,O=u.forceAdd,w=u.clearError,x=u.actionColSize,j=t||h&&h(o);return r.a.createElement(r.a.Fragment,null,n&&r.a.createElement(Ol,{textAlign:"center",width:x},r.a.createElement(ut,{className:l.saveButton,type:"submit",color:"primary",onClick:c},"Save"),!O&&r.a.createElement(ut,{color:"secondary",onClick:function(){w(),s()}},"Cancel")),!n&&f&&r.a.createElement(Ol,{textAlign:"center",width:d},r.a.createElement(lt,{disabled:j,className:l.editButton,onClick:function(){return m&&m(o.id)}},j?r.a.createElement(Li,null):r.a.createElement(Wi,null))),!n&&p&&r.a.createElement(Ol,{textAlign:"center",width:g},r.a.createElement(lt,{disabled:t,onClick:function(){return b(o.id)}},t?r.a.createElement(vi,null):r.a.createElement(ji,null))),!n&&v&&r.a.createElement(Ol,{textAlign:"center",width:E},r.a.createElement(Zn,{checked:!!o.active,value:!!o.active,disabled:t,onChange:function(){return y(o.id)}})))},Gi=function(e){var t,n=e.editing,a=e.focus,l=e.config,i=e.extraPaddingRight,o=e.extraPadding,s=l.name,u=l.bypassField,d=l.input,m=l.editable,f=void 0===m||m,p=l.size,h=l.bold,b=l.width,g=l.textAlign,v=l.suffix,y=l.SuffixComponent,E=void 0===y?Jt:y,O=l.view,w=void 0===O?function(e){return null===e||void 0===e?void 0:e.toString()}:O,x=l.inputProps,j=void 0===x?{}:x,C=Object(on.e)().values,k=Vi({textAlign:g,size:p}),S=Object(c.a)({fullWidth:!0,autoFocus:a,size:p,bold:h,textAlign:g},j);S.options&&!S.getLabel&&(S.getLabel=w);var N=n&&f,L=!u;return r.a.createElement(Ol,{className:(t={},Object(I.a)(t,k.extraPaddingRight,i),Object(I.a)(t,k.extraPadding,o),Object(I.a)(t,k.withSuffix,v),t),width:b,size:p,bold:h,textAlign:g},N&&L&&r.a.createElement(on.b,Object.assign({name:s,component:d},S)),N&&!L&&r.a.createElement(l.input,{name:s}),!N&&C&&r.a.createElement(r.a.Fragment,null,w(C[s],C)),v&&r.a.createElement(E,{className:k.suffix},v))},Zi=function(e){var t=e.editing,n=e.disabled,l=e.lastOfGroup,i=Object(on.e)(),c=i.touched,s=i.errors,u=i.values,d=Object(a.useContext)(Cl),m=d.elements,f=d.enableEdit,p=d.enableDelete,h=d.error,b=d.enableToggle,g=d.rowSize,v=d.stripeWhen,y=Vi(),E=v&&v(u)&&!t?function(e){var t=kl.a(fr.a("stripe"))(e),n=Object(o.a)(t,2),a=n[0],l=n[1];if(!a.length)return e;var i=Sl.a(a[0],e),c=mn.a(Nl.a,jn.a(Or.a(["width"])))(a);return Il.a(i,{width:c,editable:!1,view:function(){return r.a.createElement($i,null)}},l)}(m):m,O=kl.a(fr.a("doubleHeader"))(m),w=Object(o.a)(O,1)[0],x=(null===w||void 0===w?void 0:w.length)?Sl.a(w[0],m):-1,j=(null===w||void 0===w?void 0:w.length)?Sl.a(w[w.length-1],m):-1,C=E.findIndex((function(e){return void 0===e.editable||e.editable})),k=Object(I.a)({},y.lastOfGroup,l),S=Al.a(Ml.a(c),s),L=S&&Ml.a(S).length>0||!!h,B=h||S&&ql.a(S).join(", ");return r.a.createElement(jl,{className:N()(k),size:g,error:t&&L,errorMessage:B},E.map((function(e,n){return r.a.createElement(Gi,{key:n,config:e,editing:t,focus:n===C&&t,extraPaddingRight:j===n,extraPadding:x===n})})),(f||p||b)&&r.a.createElement(Yi,{disabled:n,editing:t}))},_i={wrapper:function(e){return{width:e.width}},addLink:{marginLeft:"auto"},title:{margin:0,color:J},outerHeader:{minHeight:16,marginBottom:24,display:"flex",justifyContent:"space-between",alignItems:"center"}},Ui=Object(m.a)(_i),Ji=mn.a(tl.a(nl.a)(0),jn.a((function(e){var t;return null!==(t=e.width)&&void 0!==t?t:100}))),Ki=function(e){var t,n,l,i=e.name,s=e.title,u=e.titleLg,d=e.elements,m=void 0===d?[]:d,f=e.data,p=void 0===f?[]:f,h=e.save,b=e.error,g=e.rowSize,v=void 0===g?"md":g,y=e.validationSchema,E=e.enableCreate,O=e.enableEdit,w=e.editWidth,x=e.enableDelete,j=e.deleteWidth,C=void 0===j?87:j,k=e.enableToggle,S=e.toggleWidth,N=void 0===S?87:S,L=e.onToggle,B=e.forceDisable,P=e.disableAdd,F=e.initialValues,D=e.setEditing,T=e.shouldOverrideEdit,W=e.editOverride,R=e.stripeWhen,z=e.disableRowEdit,A=e.groupBy,M=e.sortBy,q=e.createText,$=void 0===q?"Add override":q,H=e.forceAdd,V=void 0!==H&&H,Y=Object(a.useState)(null),G=Object(o.a)(Y,2),Z=G[0],_=G[1],U=Object(a.useState)(!1),J=Object(o.a)(U,2),K=J[0],Q=J[1],X=Object(a.useState)(!1),ee=Object(o.a)(X,2),te=ee[0],ne=ee[1],ae=Object(a.useState)(null),re=Object(o.a)(ae,2),le=re[0],ie=re[1];Object(a.useEffect)((function(){return ie(b)}),[b]),Object(a.useEffect)((function(){ie(null),Q(V)}),[V]);var oe=function(){var e=Object(el.a)(Xr.a.mark((function e(t){var n,a,r;return Xr.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!te){e.next=2;break}return e.abrupt("return");case 2:if(ne(!0),n=y.cast(t),a=al.a(wn.a("id",n.id))(p),r=-1!==a?rl.a(a,n,p):ll.a(n,p),il.a(p[a],n)){e.next=16;break}return e.prev=7,e.next=10,h(Object(I.a)({},i,r),n);case 10:e.next=16;break;case 12:return e.prev=12,e.t0=e.catch(7),ne(!1),e.abrupt("return");case 16:Q(!1),_(null),D&&D(!1),ne(!1);case 20:case"end":return e.stop()}}),e,null,[[7,12]])})));return function(t){return e.apply(this,arguments)}}(),ce=function(){Q(!1),_(null),D&&D(!1)},se=function(){Q(!0),ie(null),D&&D(!0,!0)},ue=x||k?87:174,de=Nn.a(ue)(w),me=(null!==(t=x&&C)&&void 0!==t?t:0)+(null!==(n=O&&de)&&void 0!==n?n:0)+(null!==(l=k&&N)&&void 0!==l?l:0),fe=Ji(m)+me,pe=Ui({width:fe}),he=!p.length&&E&&!K,be=!B&&!Z&&!P&&!K,ge=K||0!==p.length,ve=M?cl.a(M)(p):p,ye={elements:m,enableEdit:O,onEdit:function(e){if(T&&T(e))return W(e);_(e),ie(null),D&&D(e,!0)},clearError:function(){return ie(null)},error:le,disableRowEdit:z,editWidth:de,enableDelete:x,onDelete:function(e){var t=ol.a((function(t){return t.id===e}),p);return h(Object(I.a)({},i,t))},deleteWidth:C,enableToggle:k,rowSize:v,onToggle:L,toggleWidth:N,actionColSize:me,stripeWhen:R,forceAdd:V,DEFAULT_COL_SIZE:100};return r.a.createElement(Cl.Provider,{value:ye},r.a.createElement("div",{className:pe.wrapper},he&&be&&r.a.createElement(Fe,{onClick:se},$),ge&&r.a.createElement(r.a.Fragment,null,(s||E)&&r.a.createElement("div",{className:pe.outerHeader},s&&u&&r.a.createElement(Ut,{className:pe.title},s),s&&!u&&r.a.createElement(Gt,{className:pe.title},s),E&&be&&r.a.createElement(ut,{className:pe.addLink,onClick:se},$)),r.a.createElement(gl,null,r.a.createElement(zl,null),r.a.createElement(El,null,K&&r.a.createElement(on.d,{initialValues:Object(c.a)({id:Object(sl.a)()},F),onReset:ce,validationSchema:y,onSubmit:oe},r.a.createElement(on.c,null,r.a.createElement(ul,null),r.a.createElement(Zi,{editing:!0,disabled:B}))),ve.map((function(e,t){var n,a=ve[t+1],l=!!A&&a,i="Function"===vn.a(A)?A:xn.a(A),o=l&&i(e)!==i(a);return r.a.createElement(on.d,{key:null!==(n=e.id)&&void 0!==n?n:t,enableReinitialize:!0,initialValues:e,onReset:ce,validationSchema:y,onSubmit:oe},r.a.createElement(on.c,null,r.a.createElement(ul,null),r.a.createElement(Zi,{lastOfGroup:o,editing:Z===e.id,disabled:B||Z&&Z!==e.id||K})))})))))))},Qi=function(e){var t=e.name,n=e.save,a=e.data,l=void 0===a?{}:a,i=e.namespaces,o=void 0===i?[]:i,s=Object(L.a)(e,["name","save","data","namespaces"]),u=jn.a((function(e){return Object(c.a)({id:e},Jr(e)(l))}))(o);return r.a.createElement(Ki,Object.assign({name:t,data:u,save:function(){for(var e=arguments.length,t=new Array(e),a=0;a=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var no=a.createElement("desc",null,"Created with Sketch."),ao=a.createElement("g",{id:"Symbols",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd"},a.createElement("g",{id:"icon/warning-icon/tomato"},a.createElement("rect",{id:"Rectangle",stroke:"#FF584A",strokeWidth:2,x:1,y:1,width:22,height:22,rx:11}),a.createElement("path",{d:"M11.2971429,14.4857143 L11.1085714,5.82857143 L13.3714286,5.82857143 L13.2,14.4857143 L11.2971429,14.4857143 Z M11.1942857,18 L11.1942857,15.9771429 L13.3028571,15.9771429 L13.3028571,18 L11.1942857,18 Z",id:"!",fill:"#FF584A",fillRule:"nonzero"})));function ro(e,t){var n=e.title,r=e.titleId,l=to(e,["title","titleId"]);return a.createElement("svg",eo({width:"24px",height:"24px",viewBox:"0 0 24 24",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,no,ao)}var lo=a.forwardRef(ro),io=(n.p,{wrapper:{display:"flex",alignItems:"center","& > svg":{marginRight:10}},message:{display:"flex",alignItems:"center",color:X,margin:0,whiteSpace:"break-spaces"}}),oo=Object(m.a)(io),co=function(e){var t=e.className,n=e.children,a=(Object(L.a)(e,["className","children"]),oo());return r.a.createElement("div",{className:N()(a.wrapper,t)},r.a.createElement(lo,null),r.a.createElement(Zt,{className:a.message},n))},so=Object(m.a)({titleWrapper:{display:"flex",justifyContent:"space-between",alignItems:"center",flexDirection:"row"},titleAndButtonsContainer:{display:"flex"},error:{marginLeft:12},icon:{marginRight:6},label:{marginRight:24}}),uo=function(e){var t=e.className,n=e.title,a=e.error,l=e.labels,i=e.children,o=so();return r.a.createElement("div",{className:N()(o.titleWrapper,t)},r.a.createElement("div",{className:o.titleAndButtonsContainer},r.a.createElement(gn,null,n),a&&r.a.createElement(co,{className:o.error},"Failed to save")),r.a.createElement(Xi.a,{display:"flex",flexDirection:"row"},(null!==l&&void 0!==l?l:[]).map((function(e,t){var n=e.icon,a=e.label;return r.a.createElement(Xi.a,{key:t,display:"flex",alignItems:"center"},r.a.createElement("div",{className:o.icon},n),r.a.createElement(Kt,{className:o.label},a))}))),i)},mo=n(453),fo=Object(m.a)({modal:{display:"flex",justifyContent:"center",flexDirection:"column",alignItems:"center"},wrapper:function(e){var t=e.width,n=e.height;return{width:t,height:n,display:"flex",flexDirection:"column",minHeight:null!==n&&void 0!==n?n:400,maxHeight:"90vh",overflowY:"auto",borderRadius:8,outline:0}},infoPanelWrapper:function(e){var t=e.width,n=e.infoPanelHeight;return{width:t,height:n,marginTop:16,display:"flex",flexDirection:"column",minHeight:null!==n&&void 0!==n?n:200,maxHeight:"90vh",overflowY:"auto",borderRadius:8,outline:0}},panelContent:{width:"100%",display:"flex",flexDirection:"column",flex:1,padding:[[0,24]]},content:function(e){var t=e.small;return{width:"100%",display:"flex",flexDirection:"column",flex:1,padding:e.xl?[[0,88]]:t?[[0,16]]:[[0,32]]}},button:function(e){var t=e.small,n=e.xl;return{padding:[[0,0,n?26:0,0]],margin:n?[[0,0,"auto","auto"]]:t?[[12,12,"auto","auto"]]:[[16,16,"auto","auto"]]}},header:{display:"flex"},title:function(e){return{margin:e.small?[[20,0,8,16]]:[[28,0,8,32]]}}}),po=function(e){var t=e.width,n=e.height,a=e.infoPanelHeight,l=e.title,i=e.small,o=e.xl,c=e.infoPanel,s=e.handleClose,u=e.children,d=(e.secondaryModal,e.className),m=e.closeOnEscape,f=e.closeOnBackdropClick,p=Object(L.a)(e,["width","height","infoPanelHeight","title","small","xl","infoPanel","handleClose","children","secondaryModal","className","closeOnEscape","closeOnBackdropClick"]),h=fo({width:t,height:n,small:i,infoPanelHeight:a,xl:o}),b=i?$t:At,g=o?28:i?16:20;return r.a.createElement(mo.a,Object.assign({onClose:function(e,t){(f||"backdropClick"!==t)&&(m||"escapeKeyDown"!==t)&&s()},className:h.modal},p),r.a.createElement(r.a.Fragment,null,r.a.createElement(_e.a,{className:N()(h.wrapper,d)},r.a.createElement("div",{className:h.header},l&&r.a.createElement(b,{className:h.title},l),r.a.createElement(lt,{size:g,className:h.button,onClick:function(){return s()}},r.a.createElement(Ba,null))),r.a.createElement("div",{className:h.content},u)),c&&r.a.createElement(_e.a,{className:N()(h.infoPanelWrapper,d)},r.a.createElement("div",{className:h.panelContent},c))))},ho={AUD:{5:130,10:137,20:144,50:151,100:158},BBD:{2:150,5:150,10:150,20:150,50:150,100:150},CAD:{5:152,10:152,20:152,50:152,100:152},CHF:{10:126,20:137,50:148,100:159,200:170,1e3:181},DKK:{50:125,100:135,200:145,500:155,1e3:165},EUR:{5:120,10:127,20:133,50:140,100:147,200:153,500:160},GBP:{5:135,10:142,20:149,50:156},HKD:{10:134,20:143,50:148,100:153,500:158,1e3:163},HUF:{200:154,500:154,1e3:154,2e3:154,5e3:154,1e4:154,2e4:154},ILS:{20:129,50:136,100:143,200:150},JMD:{50:145,100:145,500:145,1e3:145,5e3:145},JPY:{1e3:150,2e3:154,5e3:156,1e4:160},KZT:{200:126,500:130,1e3:134,2e3:139,5e3:144,1e4:155,2e4:155},MXN:{20:120,50:127,100:134,200:141,500:148,1e3:155},MYR:{1:120,5:135,10:140,20:145,50:145,100:150},NZD:{5:135,10:140,20:145,50:150,100:155},PHP:{20:160,50:160,100:160,200:160,500:160,1e3:160},PLN:{10:120,20:126,50:132,100:138,200:144,500:150},SGD:{2:126,5:133,10:141,50:156,100:162,1e3:170},TWD:{100:145,200:150,500:155,1e3:160,2e3:165},UAH:{1:118,2:118,5:118,10:124,20:130,50:136,100:142,200:148,500:154},USD:{1:156,5:156,10:156,20:156,50:156,100:156},VND:{1e4:132,2e4:136,5e4:140,1e5:144,2e5:148,5e5:152},ZAR:{10:128,20:134,50:140,100:146,200:152}};function bo(){return(bo=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var vo=a.createElement("desc",null,"Created with Sketch."),yo=a.createElement("g",{id:"Styleguide",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd"},a.createElement("g",{id:"icon/direction/cash-out",transform:"translate(-1.000000, 0.000000)",fill:"#5A67FF"},a.createElement("path",{d:"M3.99134364,0.321790399 L10.1430099,4.40569595 C11.0271728,4.99266501 11.2660914,6.1822461 10.6766494,7.06269968 C10.5357408,7.27317585 10.3543728,7.45378298 10.1430099,7.59410043 L3.99134364,11.678006 C3.10718075,12.264975 1.91258801,12.0270588 1.32314609,11.1466052 C1.11243854,10.8318699 1,10.4620686 1,10.0838037 L1,1.91599264 C1,0.857819122 1.86143307,0 2.92406462,0 C3.30392305,0 3.67528233,0.11196683 3.99134364,0.321790399 Z",id:"Path-3",transform:"translate(6.000000, 6.000000) scale(-1, 1) translate(-6.000000, -6.000000) "})));function Eo(e,t){var n=e.title,r=e.titleId,l=go(e,["title","titleId"]);return a.createElement("svg",bo({width:"10px",height:"12px",viewBox:"0 0 10 12",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,vo,yo)}var Oo=a.forwardRef(Eo),wo=(n.p,{logo:{maxHeight:80,maxWidth:200},subtitle:{margin:0,marginBottom:42,textAlign:"center"},text:{margin:0},button:{margin:[[0,"auto"]]},modalContent:{display:"flex",flexDirection:"column",justifyContent:"space-between",flex:1,padding:[[0,34,107,34]]},innerContent:{paddingBottom:72},title:{color:"#5a67ff",marginBottom:12,marginTop:30,textAlign:"center"},titleDecorator:{verticalAlign:"bottom",marginRight:12,width:24,height:26}}),xo=Object(m.a)(wo),jo=function(e){var t=e.name,n=e.onContinue,a=xo();return r.a.createElement("div",{className:a.modalContent},r.a.createElement("div",{className:a.innerContent},r.a.createElement(At,{className:a.title},r.a.createElement(Oo,{className:a.titleDecorator}),r.a.createElement("span",null,"Enable cash-out")),r.a.createElement(Gt,{className:a.subtitle},t),r.a.createElement(Vt,null,"You are about to activate cash-out functionality on your ",t," ","machine which will allow your customers to sell crypto to you."),r.a.createElement(Vt,null,"In order to activate cash-out for this machine, please enter the denominations for the machine.")),r.a.createElement(Ae,{className:a.button,onClick:n},"Start configuration"))},Co=n(517);function ko(){return(ko=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var No=a.createElement("desc",null,"Created with Sketch."),Io=a.createElement("g",{id:"icon/stage/spring/complete",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd"},a.createElement("circle",{id:"Oval",stroke:"#48F694",strokeWidth:2,transform:"translate(9.000000, 9.000000) rotate(-270.000000) translate(-9.000000, -9.000000) ",cx:9,cy:9,r:8}),a.createElement("path",{d:"M7.80983711,12 C7.54819546,12 7.28655382,11.9032616 7.08725647,11.710772 L5.29971255,9.98428824 C4.90009582,9.59832189 4.90009582,8.97445811 5.29971255,8.58849175 C5.69932929,8.2025254 6.34525711,8.2025254 6.74487384,8.58849175 L7.80983711,9.61707728 L11.2551262,6.28947477 C11.6547429,5.90350841 12.3016927,5.90350841 12.7002874,6.28947477 C13.0999042,6.674454 13.0999042,7.2993049 12.7002874,7.68527125 L8.53241776,11.710772 C8.33312041,11.9032616 8.07147876,12 7.80983711,12",id:"Path",fill:"#48F694"}));function Lo(e,t){var n=e.title,r=e.titleId,l=So(e,["title","titleId"]);return a.createElement("svg",ko({width:"18px",height:"18px",viewBox:"0 0 18 18",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,No,Io)}var Bo=a.forwardRef(Lo);n.p;function Po(){return(Po=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var Do=a.createElement("desc",null,"Created with Sketch."),To=a.createElement("g",{id:"icon/stage/spring/current",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd"},a.createElement("circle",{id:"Oval-2-Copy",fill:"#48F694",cx:9,cy:9,r:4}),a.createElement("circle",{id:"Oval-Copy-5",stroke:"#48F694",strokeWidth:2,transform:"translate(9.000000, 9.000000) rotate(-270.000000) translate(-9.000000, -9.000000) ",cx:9,cy:9,r:8}));function Wo(e,t){var n=e.title,r=e.titleId,l=Fo(e,["title","titleId"]);return a.createElement("svg",Po({width:"18px",height:"18px",viewBox:"0 0 18 18",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,Do,To)}var Ro=a.forwardRef(Wo);n.p;function zo(){return(zo=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var Mo=a.createElement("desc",null,"Created with Sketch."),qo=a.createElement("g",{id:"icon/stage/spring/empty",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd"},a.createElement("circle",{id:"Oval-Copy-6",stroke:"#DDDDDD",strokeWidth:2,transform:"translate(9.000000, 9.000000) rotate(-270.000000) translate(-9.000000, -9.000000) ",cx:9,cy:9,r:8}));function $o(e,t){var n=e.title,r=e.titleId,l=Ao(e,["title","titleId"]);return a.createElement("svg",zo({width:"18px",height:"18px",viewBox:"0 0 18 18",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,Mo,qo)}var Ho=a.forwardRef($o),Vo=(n.p,{stages:{display:"flex",alignItems:"center"},wrapper:{display:"flex",alignItems:"center",margin:0},stage:{display:"flex",height:28,width:28,zIndex:2,"& > svg":{height:"100%",width:"100%",overflow:"visible"}},separator:{width:28,height:2,border:[[2,"solid"]],zIndex:1},separatorSpring:{borderColor:q},separatorZodiac:{borderColor:M},separatorSpringEmpty:{borderColor:Z},separatorZodiacEmpty:{borderColor:J}}),Yo=Object(m.a)(Vo),Go=Object(a.memo)((function(e){var t,n,a=e.steps,l=e.currentStep,i=e.color,o=void 0===i?"spring":i,c=e.className;if(l<1||l>a)throw Error("Value of currentStage is invalid");if(a<1)throw Error("Value of stages is invalid");var s=Yo(),u=(t={},Object(I.a)(t,s.separator,!0),Object(I.a)(t,s.separatorSpring,"spring"===o),Object(I.a)(t,s.separatorZodiac,"zodiac"===o),t),d=(n={},Object(I.a)(n,s.separator,!0),Object(I.a)(n,s.separatorSpringEmpty,"spring"===o),Object(I.a)(n,s.separatorZodiacEmpty,"zodiac"===o),n);return r.a.createElement("div",{className:N()(c,s.stages)},Co.a(1,l).map((function(e){return r.a.createElement("div",{key:e,className:s.wrapper},e>1&&r.a.createElement("div",{className:N()(u)}),r.a.createElement("div",{className:s.stage},"spring"===o&&r.a.createElement(Bo,null),"zodiac"===o&&r.a.createElement(ra,null)))})),r.a.createElement("div",{className:s.wrapper},l>1&&r.a.createElement("div",{className:N()(u)}),r.a.createElement("div",{className:s.stage},"spring"===o&&r.a.createElement(Ro,null),"zodiac"===o&&r.a.createElement(ua,null))),Co.a(l+1,a+1).map((function(e){return r.a.createElement("div",{key:e,className:s.wrapper},r.a.createElement("div",{className:N()(d)}),r.a.createElement("div",{className:s.stage},"spring"===o&&r.a.createElement(Ho,null),"zodiac"===o&&r.a.createElement(ga,null)))})))})),Zo=n.p+"static/media/cashout-cassette-1.fac6c691.svg",_o=n.p+"static/media/cashout-cassette-2.34a98cfa.svg",Uo={title:{margin:[[0,0,12,0]]},titleDiv:{paddingBottom:32},subtitle:{margin:[[32,0,21,0]]},edit:{margin:[[0,0,0,0]]},error:{color:X},bill:{width:131,display:"flex",alignItems:"center",justifyContent:"end"},billInput:{width:"100%"},suffix:{paddingLeft:16},button:{marginLeft:"auto"},submit:{float:"right"},picker:{width:150},header:{display:"flex",paddingBottom:95},thirdStepHeader:{display:"flex",paddingBottom:188},step:{flex:1},stepImage:{position:"relative",top:-20,right:14},content:{display:"flex",flexDirection:"column",justifyContent:"space-between",flex:1,paddingBottom:32},disclaimer:{display:"flex",flex:1,flexDirection:"column",justifyContent:"space-between"},disclaimerIcon:{float:"left",margin:[[-4,16,48,0]]}},Jo=Object(m.a)(Uo),Ko=function(e){var t=e.name,n=e.step,a=e.schema,l=e.error,i=e.lastStep,o=e.onContinue,c=e.steps,s=e.fiatCurrency,u=e.options,d=Jo(),m=i?"Finish":"Next",f={1:Zo,2:_o};return r.a.createElement("div",{className:d.content},r.a.createElement("div",{className:d.titleDiv},r.a.createElement(Gt,{className:d.title},t),r.a.createElement(Go,{steps:4,currentStep:n})),n<=2&&r.a.createElement(on.d,{onSubmit:o,initialValues:{top:"",bottom:""},enableReinitialize:!0,validationSchema:a},r.a.createElement(on.c,null,r.a.createElement("div",{className:d.header},c.map((function(e,t){var a=e.type,l=e.display,i=e.component;return 1+t===n&&r.a.createElement("div",{key:t,className:d.step},r.a.createElement($t,{className:d.edit},"Edit ",l),r.a.createElement(Kt,null,"Choose bill denomination"),r.a.createElement("div",{className:d.bill},r.a.createElement(on.b,{className:d.billInput,type:"text",size:"lg",autoFocus:1+t===n,component:(null===u||void 0===u?void 0:u.length)>0?i:Un,fullWidth:!0,decimalPlaces:0,name:a,options:u,valueProp:"code",getLabel:Or.a(["display"])}),r.a.createElement(Yt,{noMargin:!0,className:d.suffix},s)))})),r.a.createElement("img",{className:d.stepImage,alt:"cassette",width:"148",height:"196",src:f[n]})),r.a.createElement(Ae,{className:d.submit,type:"submit"},m))),3===n&&r.a.createElement(on.d,{onSubmit:o,initialValues:{zeroConfLimit:""},enableReinitialize:!0,validationSchema:c[n-1].schema},r.a.createElement(on.c,null,r.a.createElement("div",{className:d.thirdStepHeader},r.a.createElement("div",{className:d.step},r.a.createElement($t,{className:d.edit},"Edit 0-conf Limit"),r.a.createElement(Kt,null,"Choose a limit"),r.a.createElement("div",{className:d.bill},r.a.createElement(on.b,{className:d.billInput,type:"text",size:"lg",autoFocus:!0,component:Un,fullWidth:!0,decimalPlaces:0,name:c[n-1].type}),r.a.createElement(Yt,{noMargin:!0,className:d.suffix},s)))),r.a.createElement(Ae,{className:d.submit,type:"submit"},m))),i&&r.a.createElement("div",{className:d.disclaimer},r.a.createElement(Gt,{className:d.title},"Cash-out Bill Count"),r.a.createElement(Vt,null,r.a.createElement(Ra,{className:d.disclaimerIcon}),"When enabling cash-out, your bill count will be automatically set to zero. Make sure you physically put cash inside the cash cassettes to allow the machine to dispense it to your users. If you already did, make sure you set the correct cash-out bill count for this machine on your Cash Cassettes tab under Maintenance."),r.a.createElement(Gt,{className:d.title},"Default Commissions"),r.a.createElement(Vt,null,r.a.createElement(Ra,{className:d.disclaimerIcon}),"When enabling cash-out, default commissions will be set. To change commissions for this machine, please go to the Commissions tab under Settings where you can set exceptions for each of the available cryptocurrencies."),r.a.createElement("div",null,l&&r.a.createElement(co,null,"Failed to save"),r.a.createElement(Ae,{className:d.submit,onClick:function(){return o()}},m))))},Qo=999999999,Xo=hn.d().shape({top:hn.c().label("Cassette 1 (Top)").required().min(0).max(Qo),bottom:hn.c().label("Cassette 2 (Bottom)").required().min(0).max(Qo),zeroConfLimit:hn.c().label("0-conf Limit").required().min(0).max(Qo)}),ec=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.fiatCurrency;return[{name:"id",header:"Machine",width:200,view:function(t){return e.find((function(e){return e.deviceId===t})).name},size:"sm",editable:!1},{name:"top",header:"Cassette 1 (Top)",size:"sm",stripe:!0,width:200,textAlign:"right",input:Un,inputProps:{decimalPlaces:0},suffix:n},{name:"bottom",header:"Cassette 2 (Bottom)",size:"sm",stripe:!0,textAlign:"right",width:200,input:Un,inputProps:{decimalPlaces:0},suffix:n},{name:"zeroConfLimit",header:"0-conf Limit",size:"sm",stripe:!0,textAlign:"right",width:200,input:Un,inputProps:{decimalPlaces:0},suffix:n}]},tc=Fr.a((function(e,t){var n=xn.a("fiatCurrency")(e);return mn.a(jn.a((function(e){return{code:e,display:e}})),Ml.a,Or.a([n]))(t)})),nc=function(e){var t=e.machine,n=e.locale,l=e.onClose,i=e.save,c=e.error,s=Object(a.useState)({step:0,config:{active:!0}}),u=Object(o.a)(s,2),d=u[0],m=d.step,f=d.config,p=u[1],h=tc(n,ho),b=4===m,g=function(){var e=Object(el.a)(Xr.a.mark((function e(n){var a;return Xr.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!b){e.next=2;break}return e.abrupt("return",i(Kr(t.deviceId,Xo.cast(f))));case 2:a=Ue.a(f,n),p({step:m+1,config:a});case 4:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),v=[{type:"top",display:"Cassette 1 (Top)",component:_n},{type:"bottom",display:"Cassette 2",component:_n},{type:"zeroConfLimit",display:"0-conf Limit",schema:hn.d().shape({zeroConfLimit:hn.c().required()})}];return r.a.createElement(po,{title:0===m?null:"Enable cash-out",handleClose:l,width:554,height:520,open:!0},0===m&&r.a.createElement(jo,{name:t.name,onContinue:function(){return g()}}),0!==m&&r.a.createElement(Ko,{step:m,name:t.name,error:c,lastStep:b,steps:v,fiatCurrency:n.fiatCurrency,options:h,schema:hn.d().shape({top:hn.c().required(),bottom:m>=2?hn.c().required():hn.c()}),onContinue:g}))};function ac(){var e=Object(tn.a)(["\n query getData {\n machines {\n name\n deviceId\n cashbox\n cassette1\n cassette2\n }\n config\n }\n"]);return ac=function(){return e},e}function rc(){var e=Object(tn.a)(["\n mutation Save($config: JSONObject) {\n saveConfig(config: $config)\n }\n"]);return rc=function(){return e},e}var lc=Object(m.a)({fudgeFactor:{display:"flex",alignItems:"center",marginRight:156},switchLabel:{margin:6,width:24}}),ic=sn()(rc()),oc=sn()(ac()),cc=function(e){var t,n,l=e.name,i=lc(),c=Object(a.useState)(!1),s=Object(o.a)(c,2),u=s[0],d=s[1],m=Object(nn.c)(oc).data,f=Object(nn.b)(ic,{onCompleted:function(){return d(!1)},refetchQueries:function(){return["getData"]}}),p=Object(o.a)(f,2),h=p[0],b=p[1].error,g=function(e,t){var n=Kr(l)(e);return h({variables:{config:n,accounts:t}})},v=(null===m||void 0===m?void 0:m.config)&&Jr(l)(m.config),y=null!==(t=null===v||void 0===v?void 0:v.fudgeFactorActive)&&void 0!==t&&t,E=(null===m||void 0===m?void 0:m.config)&&Jr("locale")(m.config),O=null!==(n=null===m||void 0===m?void 0:m.machines)&&void 0!==n?n:[];return r.a.createElement(r.a.Fragment,null,r.a.createElement(uo,{title:"Cash-out"},r.a.createElement("div",{className:i.fudgeFactor},r.a.createElement(Vt,null,"Transaction fudge factor"),r.a.createElement(Zn,{checked:y,onChange:function(e){g({fudgeFactorActive:e.target.checked})},value:y}),r.a.createElement(Qt,{className:i.switchLabel},y?"On":"Off"),r.a.createElement(Br,{width:304},r.a.createElement(Vt,null,"Automatically accept customer deposits as complete if their received amount is 10 crypto atoms or less."),r.a.createElement(Vt,null,"(Crypto atoms are the smallest unit in each cryptocurrency. E.g., satoshis in Bitcoin, or wei in Ethereum.)")))),r.a.createElement(Qi,{namespaces:jn.a(Or.a(["deviceId"]))(O),data:v,stripeWhen:function(e){return!Xo.isValidSync(e)},enableEdit:!0,editWidth:134,enableToggle:!0,toggleWidth:109,onToggle:function(e){var t=Jr(e)(v);if(!Xo.isValidSync(t))return d(e);g(Kr(e,{active:!(null===t||void 0===t?void 0:t.active)}))},save:g,error:null===b||void 0===b?void 0:b.message,validationSchema:Xo,disableRowEdit:mn.a(wr.a,Or.a(["active"])),elements:ec(O,E)}),u&&r.a.createElement(nc,{machine:On.a(wn.a("deviceId",u))(O),onClose:function(){return d(!1)},save:g,error:null===b||void 0===b?void 0:b.message,locale:E}))},sc=n(524),uc=n(559),dc=Object(m.a)({subtitle:{color:J,marginTop:16,marginBottom:16},extraMarginTop:{marginTop:72}}),mc=Object(a.memo)((function(e){var t,n=e.children,a=e.className,l=e.extraMarginTop,i=dc(),o=(t={},Object(I.a)(t,i.subtitle,!0),Object(I.a)(t,i.extraMarginTop,l),t);return r.a.createElement(Ut,{className:N()(o,a)},n)})),fc=Object(m.a)({section:{marginBottom:72},sectionHeader:{display:"flex",alignItems:"center"},sectionTitle:{margin:[[16,20,23,0]]}}),pc=function(e){var t=e.error,n=e.children,a=e.title,l=fc();return r.a.createElement("div",{className:l.section},(a||t)&&r.a.createElement("div",{className:l.sectionHeader},r.a.createElement(mc,{className:l.sectionTitle},a),t&&r.a.createElement(co,null,"Failed to save changes")),n)},hc=n(519),bc=n(520),gc=n(521),vc=n(232),yc=n(522),Ec=n(558);function Oc(){return(Oc=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var xc=a.createElement("desc",null,"Created with Sketch."),jc=a.createElement("g",{id:"Styleguide",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd"},a.createElement("g",{id:"icon/direction/cash-in",transform:"translate(-1.000000, 0.000000)",fill:"#16D6D3"},a.createElement("path",{d:"M3.99134364,0.321790399 L10.1430099,4.40569595 C11.0271728,4.99266501 11.2660914,6.1822461 10.6766494,7.06269968 C10.5357408,7.27317585 10.3543728,7.45378298 10.1430099,7.59410043 L3.99134364,11.678006 C3.10718075,12.264975 1.91258801,12.0270588 1.32314609,11.1466052 C1.11243854,10.8318699 1,10.4620686 1,10.0838037 L1,1.91599264 C1,0.857819122 1.86143307,0 2.92406462,0 C3.30392305,0 3.67528233,0.11196683 3.99134364,0.321790399 Z",id:"Path-3"})));function Cc(e,t){var n=e.title,r=e.titleId,l=wc(e,["title","titleId"]);return a.createElement("svg",Oc({width:"10px",height:"12px",viewBox:"0 0 10 12",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,xc,jc)}var kc=a.forwardRef(Cc),Sc=(n.p,{name:"All Machines",deviceId:"ALL_MACHINES"}),Nc={display:"All Coins",code:"ALL_COINS"},Ic={marginLeft:6},Lc=r.a.createElement("div",null,r.a.createElement(kc,null),r.a.createElement("span",{style:Ic},"Cash-in")),Bc=r.a.createElement("div",null,r.a.createElement(Oo,null),r.a.createElement("span",{style:Ic},"Cash-out")),Pc=function(e,t,n){return function(a){return e?mn.a(xn.a(t),On.a(wn.a(null!==n&&void 0!==n?n:"code",a)))(e):""}},Fc=function(e){return function(t){return t?mn.a(hc.a(", "),jn.a(Pc(e,"display")))(t):t}},Dc=function(e,t,n){var a=bc.a(Nc.code)(t),r=bc.a(Nc.code)(e);return a&&r&&fn.a(t)>1?n(ol.a(il.a(Nc.code))(t)):a&&!r?n([Nc.code]):void n(t)},Tc=function(e){return[{header:Lc,name:"cashIn",display:"Cash-in",width:169,size:"lg",input:Un,suffix:"%",inputProps:{decimalPlaces:3}},{header:Bc,name:"cashOut",display:"Cash-out",width:169,size:"lg",input:Un,suffix:"%",inputProps:{decimalPlaces:3}},{name:"fixedFee",display:"Fixed fee",width:169,size:"lg",doubleHeader:"Cash-in only",textAlign:"center",input:Un,suffix:e,inputProps:{decimalPlaces:2}},{name:"minimumTx",display:"Minimun Tx",width:169,size:"lg",doubleHeader:"Cash-in only",textAlign:"center",input:Un,suffix:e,inputProps:{decimalPlaces:2}}]},Wc=function(e,t,n){return function(e,t,n){var a=[Sc].concat(e(["machines"])),r=e(["cryptoCurrencies"]),l=[Nc].concat(jn.a((function(e){return{display:e.code,code:e.code}}))(null!==r&&void 0!==r?r:[]));return[{name:"machine",width:196,size:"sm",view:Pc(a,"name","deviceId"),input:_n,inputProps:{options:a,valueProp:"deviceId",getLabel:Or.a(["name"])}},{name:"cryptoCurrencies",width:280,size:"sm",view:Fc(l),input:_n,inputProps:{options:l,valueProp:"code",getLabel:Or.a(["display"]),multiple:!0,onChange:Dc}},{header:Lc,name:"cashIn",display:"Cash-in",width:130,input:Un,textAlign:"right",suffix:"%",inputProps:{decimalPlaces:3}},{header:Bc,name:"cashOut",display:"Cash-out",width:130,input:Un,textAlign:"right",suffix:"%",inputProps:{decimalPlaces:3}},{name:"fixedFee",display:"Fixed fee",width:144,input:Un,doubleHeader:"Cash-in only",textAlign:"right",suffix:t,inputProps:{decimalPlaces:2}},{name:"minimumTx",display:"Minimun Tx",width:144,input:Un,doubleHeader:"Cash-in only",textAlign:"right",suffix:t,inputProps:{decimalPlaces:2}}]}(Or.a(gc.a,e),t)},Rc=100,zc=9999999,Ac=hn.d().shape({cashIn:hn.c().label("Cash-in").min(0).max(Rc).required(),cashOut:hn.c().label("Cash-out").min(0).max(Rc).required(),fixedFee:hn.c().label("Fixed Fee").min(0).max(zc).required(),minimumTx:hn.c().label("Minimum Tx").min(0).max(zc).required()}),Mc=function(e,t){var n=Or.a(gc.a,t),a=[Sc].concat(n(["machines"])),r=n(["cryptoCurrencies"]),l=[Nc].concat(jn.a((function(e){return{display:e.code,code:e.code}}))(null!==r&&void 0!==r?r:[]));return hn.d().shape({machine:hn.e().nullable().label("Machine").required(),cryptoCurrencies:hn.a().test({test:function(){var t=this.parent,n=t.id,r=t.machine,i=t.cryptoCurrencies,o=function(e,t,n){var a=xn.a("cryptoCurrencies"),r=xn.a("machine"),l=hr.a(wn.a("machine",t))(n),i=On.a(wn.a("id",e))(n),o=a(i),c=r(i),s=mn.a(vc.a,pr.a,jn.a(a))(l);return t!==c?null!==s&&void 0!==s?s:[]:yc.a(s,o)}(n,r,e),c=r===Sc.deviceId,s=bc.a(Nc.code,i);if(c&&s)return this.createError({message:"All machines and all coins should be configured in the default setup table"});var u=Ec.a(o,i);if(!Sn.a(u)){var d=Fc(l)(u),m=Pc(a,"name","deviceId")(r),f="".concat(d," already overriden for machine: ").concat(m);return this.createError({message:f})}return!0}}).label("Crypto Currencies").required(),cashIn:hn.c().label("Cash-in").min(0).max(Rc).required(),cashOut:hn.c().label("Cash-out").min(0).max(Rc).required(),fixedFee:hn.c().label("Fixed Fee").min(0).max(zc).required(),minimumTx:hn.c().label("Minimum Tx").min(0).max(zc).required()})},qc={cashIn:"",cashOut:"",fixedFee:"",minimumTx:""},$c={machine:null,cryptoCurrencies:[],cashIn:"",cashOut:"",fixedFee:"",minimumTx:""},Hc=function(e){var t=e.machine,n=e.cryptoCurrencies,a=t===Sc.deviceId,r=gr.a(Nc.code,n);return a&&r?0:a?1:r?2:3};function Vc(){var e=Object(tn.a)(["\n mutation Save($config: JSONObject) {\n saveConfig(config: $config)\n }\n"]);return Vc=function(){return e},e}function Yc(){var e=Object(tn.a)(["\n query getData {\n config\n cryptoCurrencies {\n code\n display\n }\n machines {\n name\n deviceId\n }\n }\n"]);return Yc=function(){return e},e}var Gc=sn()(Yc()),Zc=sn()(Vc()),_c=function(e){var t,n=e.name,l=Object(a.useState)(!1),i=Object(o.a)(l,2),c=i[0],s=i[1],u=Object(a.useState)(!1),d=Object(o.a)(u,2),m=d[0],f=d[1],p=Object(nn.c)(Gc).data,h=Object(nn.b)(Zc,{refetchQueries:function(){return["getData"]}}),b=Object(o.a)(h,2),g=b[0],v=b[1].error,y=(null===p||void 0===p?void 0:p.config)&&Jr(n)(p.config),E=Or.a(["fiatCurrency"])(Jr($r)(null===p||void 0===p?void 0:p.config)),O=y&&!Sn.a(y)?y:qc,w=null!==(t=null===O||void 0===O?void 0:O.overrides)&&void 0!==t?t:[],x=cl.a([sc.a(Hc),sc.a(xn.a("machine"))])(w);return r.a.createElement(r.a.Fragment,null,r.a.createElement(uo,{title:"Commissions"}),r.a.createElement(pc,null,r.a.createElement(Ki,{error:null===v||void 0===v?void 0:v.message,title:"Default setup",rowSize:"lg",titleLg:!0,name:"commissions",enableEdit:!0,initialValues:O,save:function(e){var t=Kr(n)(e.commissions[0]);return g({variables:{config:t}})},validationSchema:Ac,data:uc.a(O),elements:Tc(E),setEditing:function(e,t){return s(t)},forceDisable:m})),r.a.createElement(pc,null,r.a.createElement(Ki,{error:null===v||void 0===v?void 0:v.message,title:"Overrides",titleLg:!0,name:"overrides",enableDelete:!0,enableEdit:!0,enableCreate:!0,groupBy:Hc,initialValues:$c,save:function(e){var t=Kr(n)(e);return g({variables:{config:t}})},validationSchema:Mc(x,p),data:x,elements:Wc(p,E),setEditing:function(e,t){return f(t)},forceDisable:c})))},Uc=n(551),Jc=n(334),Kc=n.n(Jc),Qc=n(525),Xc=n(526),es={error:z,warning:"#ff7311",success:H,neutral:M},ts={error:A,warning:"#fbf3ec",success:F,neutral:T},ns=Object(m.a)({root:{borderRadius:4,marginTop:4,marginRight:2,marginBottom:4,marginLeft:2,height:24,backgroundColor:function(e){var t=e.type;return ts[t]}},label:{fontSize:se,fontWeight:500,fontFamily:fe,paddingRight:4,paddingLeft:4,color:function(e){var t=e.type;return es[t]}}}),as=function(e){var t=e.status,n=ns({type:t.type});return r.a.createElement(ti.a,{type:t.type,label:t.label,classes:n})},rs=function(e){var t=e.statuses,n=t.find((function(e){return"error"===e.type}))||t.find((function(e){return"warning"===e.type}))||t[0],a={label:"+".concat(t.length-1),type:n.type};return r.a.createElement("div",null,r.a.createElement(as,{status:n}),t.length>1&&r.a.createElement(as,{status:a}))};function ls(){return(ls=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var os=a.createElement("desc",null,"Created with Sketch."),cs=a.createElement("g",{id:"icon/button/authorize/white",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd"},a.createElement("circle",{id:"Oval",stroke:"#FFFFFF",cx:6,cy:6,r:5}),a.createElement("polyline",{id:"Stroke-13",stroke:"#FFFFFF",strokeLinecap:"round",strokeLinejoin:"round",points:"4 6.66666667 5 8 8 4"}));function ss(e,t){var n=e.title,r=e.titleId,l=is(e,["title","titleId"]);return a.createElement("svg",ls({viewBox:"0 0 12 12",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,os,cs)}var us=a.forwardRef(ss);n.p;function ds(){return(ds=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var fs=a.createElement("desc",null,"Created with Sketch."),ps=a.createElement("g",{id:"icon/button/authorize/zodiac",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd"},a.createElement("g",{id:"Group-9",stroke:"#1B2559"},a.createElement("circle",{id:"Oval",cx:6,cy:6,r:5})),a.createElement("polyline",{id:"Stroke-13",stroke:"#1B2559",strokeLinecap:"round",strokeLinejoin:"round",points:"4 6.66666667 5 8 8 4"}));function hs(e,t){var n=e.title,r=e.titleId,l=ms(e,["title","titleId"]);return a.createElement("svg",ds({viewBox:"0 0 12 12",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,fs,ps)}var bs=a.forwardRef(hs);n.p;function gs(){return(gs=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var ys=a.createElement("desc",null,"Created with Sketch."),Es=a.createElement("g",{id:"icon/button/cancel/zodiac",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},a.createElement("g",{id:"Group-5",stroke:"#1B2559",strokeWidth:1.2},a.createElement("line",{x1:12,y1:0,x2:0,y2:12,id:"Stroke-1"}),a.createElement("line",{x1:0,y1:0,x2:12,y2:12,id:"Stroke-3"})));function Os(e,t){var n=e.title,r=e.titleId,l=vs(e,["title","titleId"]);return a.createElement("svg",gs({width:"12px",height:"12px",viewBox:"0 0 12 12",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,ys,Es)}var ws=a.forwardRef(Os),xs=(n.p,{label1:{display:"flex",marginBottom:2,marginTop:"auto",width:85},label1Pending:{color:B},label1Rejected:{color:z},label1Accepted:{color:D},cardActionButton:{display:"flex",height:28,marginRight:"auto",marginLeft:12},propertyCardTopRow:{display:"flex",margin:[[0,10,5,0]]},propertyCardBottomRow:{display:"flex",flexDirection:"row",height:45},propertyCard:{display:"flex",flexDirection:"column",borderRadius:8,width:"100%",height:100,padding:[[20]],boxSizing:"border-box",boxShadow:"0 0 8px 0 rgba(0, 0, 0, 0.04)",border:"solid 0",backgroundColor:R,margin:[[20,0,0,0]]},rowSpaceBetween:{display:"flex",flexFlow:"row nowrap",alignItems:"center",justifyContent:"space-between"},columnSpaceBetween:{display:"flex",flexFlow:"column nowrap",alignItems:"center",justifyContent:"space-between",width:90},buttonsWrapper:{display:"flex",flexDirection:"row",justifyContent:"flex-end",marginLeft:"auto",marginTop:"auto"}}),js=Object(m.a)(xs),Cs="automatic",ks="verified",Ss="blocked",Ns=Object(a.memo)((function(e){var t,n=e.className,a=e.title,l=e.state,i=e.authorize,o=e.reject,c=e.children,s=js(),u=(t={},Object(I.a)(t,s.label1,!0),Object(I.a)(t,s.label1Pending,l===Cs),Object(I.a)(t,s.label1Rejected,l===Ss),Object(I.a)(t,s.label1Accepted,l===ks),t),d=l===Cs?{label:"Pending",type:"neutral"}:l===Ss?{label:"Rejected",type:"error"}:{label:"Accepted",type:"success"};return r.a.createElement(_e.a,{className:N()(s.propertyCard,n),elevation:0},r.a.createElement(qt,{className:s.propertyCardTopRow},a),r.a.createElement("div",{className:s.propertyCardBottomRow},r.a.createElement("div",{className:N()(u)},r.a.createElement(rs,{statuses:[d]})),c,r.a.createElement("div",{className:s.buttonsWrapper},i&&l!==ks&&r.a.createElement(je,{className:s.cardActionButton,color:"secondary",Icon:bs,InverseIcon:us,onClick:function(){return i()}},"Authorize"),o&&l!==Ss&&r.a.createElement(je,{className:s.cardActionButton,color:"secondary",Icon:ws,InverseIcon:yt,onClick:function(){return o()}},"Reject"))))}));function Is(){return(Is=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var Bs=a.createElement("desc",null,"Created with Sketch."),Ps=a.createElement("g",{id:"icon/button/block/white",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},a.createElement("g",{id:"Group-5",stroke:"#FFFFFF"},a.createElement("circle",{id:"Oval",cx:6,cy:6,r:5}),a.createElement("line",{x1:9,y1:3,x2:3,y2:9,id:"Stroke-3"})));function Fs(e,t){var n=e.title,r=e.titleId,l=Ls(e,["title","titleId"]);return a.createElement("svg",Is({viewBox:"0 0 12 12",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,Bs,Ps)}var Ds=a.forwardRef(Fs);n.p;function Ts(){return(Ts=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var Rs=a.createElement("desc",null,"Created with Sketch."),zs=a.createElement("g",{id:"icon/button/block/zodiac",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},a.createElement("g",{id:"Group-5",stroke:"#1B2559"},a.createElement("circle",{id:"Oval",cx:6,cy:6,r:5}),a.createElement("line",{x1:9,y1:3,x2:3,y2:9,id:"Stroke-3"})));function As(e,t){var n=e.title,r=e.titleId,l=Ws(e,["title","titleId"]);return a.createElement("svg",Ts({viewBox:"0 0 12 12",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,Rs,zs)}var Ms=a.forwardRef(As),qs=(n.p,{labelLink:{cursor:"pointer",color:B},breadcrumbs:{margin:[[20,0]]},actionLabel:{color:B,margin:[[4,0]]},customerDetails:{marginBottom:18}});function $s(){return($s=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var Vs=a.createElement("desc",null,"Created with Sketch."),Ys=a.createElement("g",{id:"icon/sf-small/search/white",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd"},a.createElement("path",{d:"M15.8635238,8.17028571 C15.8635238,12.4198095 12.4187619,15.8645714 8.1692381,15.8645714 C3.92066667,15.8645714 0.475904762,12.4198095 0.475904762,8.17028571 C0.475904762,3.9207619 3.92066667,0.476 8.1692381,0.476 C12.4187619,0.476 15.8635238,3.9207619 15.8635238,8.17028571 Z",id:"Stroke-1",stroke:"#FFFFFF",strokeWidth:2}),a.createElement("line",{x1:13.7035238,y1:13.7046667,x2:19.4844762,y2:19.485619,id:"Stroke-3",stroke:"#FFFFFF",strokeWidth:2,strokeLinecap:"round"}));function Gs(e,t){var n=e.title,r=e.titleId,l=Hs(e,["title","titleId"]);return a.createElement("svg",$s({width:"20px",height:"20px",viewBox:"0 0 20 20",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,Vs,Ys)}var Zs=a.forwardRef(Gs);n.p;function _s(){return(_s=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var Js=a.createElement("desc",null,"Created with Sketch."),Ks=a.createElement("g",{id:"icon/sf-small/search/zodiac",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd"},a.createElement("path",{d:"M15.8635238,8.17028571 C15.8635238,12.4198095 12.4187619,15.8645714 8.1692381,15.8645714 C3.92066667,15.8645714 0.475904762,12.4198095 0.475904762,8.17028571 C0.475904762,3.9207619 3.92066667,0.476 8.1692381,0.476 C12.4187619,0.476 15.8635238,3.9207619 15.8635238,8.17028571 Z",id:"Stroke-1",stroke:"#1B2559",strokeWidth:2}),a.createElement("line",{x1:13.7035238,y1:13.7046667,x2:19.4844762,y2:19.485619,id:"Stroke-3",stroke:"#1B2559",strokeWidth:2,strokeLinecap:"round"}));function Qs(e,t){var n=e.title,r=e.titleId,l=Us(e,["title","titleId"]);return a.createElement("svg",_s({width:"20px",height:"20px",viewBox:"0 0 20 20",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,Js,Ks)}var Xs=a.forwardRef(Qs),eu=(n.p,Object(m.a)({row:{display:"flex",flexDirection:"row"},image:function(e){return{objectFit:"cover",borderRadius:"8px 0px 0px 8px",width:e.width,height:e.height}},popupImage:function(e){return{objectFit:"cover",width:e.popupWidth,height:e.popupHeight}},button:function(e){return{borderRadius:"0px 8px 8px 0px",height:e.height}},popoverContent:{display:"block",padding:[[10,15]]}})),tu=Object(a.memo)((function(e){var t=e.className,n=e.width,l=e.height,i=e.popupWidth,c=e.popupHeight,s=e.src,u=eu({width:n,height:l,popupWidth:i,popupHeight:c}),d=Object(a.useState)(null),m=Object(o.a)(d,2),f=m[0],p=m[1],h=Boolean(f),b=function(e){var t=e.className;return r.a.createElement("img",{className:N()(t),src:s,alt:""})};return r.a.createElement(xr.a,{onClickAway:function(){p(null)}},r.a.createElement("div",{className:N()(u.row,t)},r.a.createElement(b,{className:u.image}),r.a.createElement(Ge,{Icon:Xs,InverseIcon:Zs,className:u.button,onClick:function(e){p(f?null:e.currentTarget)}}),r.a.createElement(Je,{open:h,anchorEl:f,placement:"top"},r.a.createElement("div",{className:u.popoverContent},r.a.createElement(b,{className:u.popupImage})))))}));function nu(){return(nu=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var ru=a.createElement("desc",null,"Created with Sketch."),lu=a.createElement("g",{id:"icon/crossed-camera",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd"},a.createElement("g",{id:"crossed-camera"},a.createElement("g",{id:"Group-2"},a.createElement("g",{id:"icon/ID/cam/zodiac",transform:"translate(0.000000, 3.657143)",fill:"#1B2559",fillRule:"nonzero"},a.createElement("path",{d:"M16,19.1876029 C12.4482116,19.1876029 9.56809571,16.389776 9.56809571,12.9394673 C9.56809571,9.48915858 12.4482116,6.69133172 16,6.69133172 C19.5517884,6.69133172 22.4319043,9.48915858 22.4319043,12.9394673 C22.4319043,16.389776 19.5517884,19.1876029 16,19.1876029 Z M16,17.104891 C18.3677075,17.104891 20.2879362,15.239526 20.2879362,12.9394673 C20.2879362,10.6394086 18.3677075,8.77404358 16,8.77404358 C13.6322925,8.77404358 11.7120638,10.6394086 11.7120638,12.9394673 C11.7120638,15.239526 13.6322925,17.104891 16,17.104891 Z M22.7667469,3.30692494 L30.7397807,3.30692494 C31.3318211,3.30692494 31.8117647,3.77315587 31.8117647,4.34828087 L31.8117647,22.0513317 C31.8117647,22.6264567 31.3318211,23.0926877 30.7397807,23.0926877 L1.26021934,23.0926877 C0.6681789,23.0926877 0.188235294,22.6264567 0.188235294,22.0513317 L0.188235294,4.34828087 C0.188235294,3.77315587 0.6681789,3.30692494 1.26021934,3.30692494 L9.23325311,3.30692494 L12.0766705,0.494526627 C12.2782333,0.295162767 12.5538198,0.182857143 12.8414756,0.182857143 L19.1585244,0.182857143 C19.4461802,0.182857143 19.7217667,0.295162767 19.9233295,0.494526627 L22.7667469,3.30692494 Z M29.6677966,5.3896368 L22.3170489,5.3896368 C22.0293931,5.3896368 21.7538065,5.27733118 21.5522438,5.07796732 L18.7088264,2.26556901 L13.2911736,2.26556901 L10.4477562,5.07796732 C10.2461935,5.27733118 9.97060695,5.3896368 9.68295115,5.3896368 L2.33220339,5.3896368 L2.33220339,21.0099758 L29.6677966,21.0099758 L29.6677966,5.3896368 Z",id:"Stroke-1"})),a.createElement("line",{x1:32,y1:0,x2:0,y2:32,id:"Line",stroke:"#FF584A",strokeWidth:2,strokeLinecap:"square"}))));function iu(e,t){var n=e.title,r=e.titleId,l=au(e,["title","titleId"]);return a.createElement("svg",nu({width:"32px",height:"32px",viewBox:"0 0 32 32",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,ru,lu)}var ou=a.forwardRef(iu),cu=(n.p,Object(m.a)({field:{height:46},label:{color:B,margin:[[0,3]]},value:{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",margin:0,paddingLeft:4}})),su=Object(a.memo)((function(e){var t=e.label,n=e.display,a=e.size,l=e.className,i=cu();return r.a.createElement("div",{className:N()(i.field,l),style:{width:a}},r.a.createElement(Kt,{className:i.label},t),r.a.createElement(Zt,{className:i.value},n))})),uu=Object(m.a)({complianceDetailsGrid:{display:"flex",flexDirection:"row"},firstColumn:{display:"flex",flexDirection:"column",width:"100%",marginRight:10},lastColumn:{display:"flex",flexDirection:"column",width:"100%",marginLeft:10},photoWrapper:function(e){return{display:"flex",justifyContent:"center",width:e.width}}}),du=function(e){var t=e.show,n=e.src,a=uu({width:165});return r.a.createElement(r.a.Fragment,null,t?r.a.createElement(tu,{src:n,width:165,height:45,popupWidth:360,popupHeight:240}):r.a.createElement("div",{className:a.photoWrapper},r.a.createElement(ou,null)))},mu=function(e){var t=e.customer,n=e.updateCustomer,a=uu({width:165}),l=Or.a(["sanctions"])(t),i=Or.a(["sanctionsAt"])(t)?l?"Passed":"Failed":"Not checked yet";return r.a.createElement("div",null,r.a.createElement(qt,null,"Compliance details"),r.a.createElement("div",null,r.a.createElement($u,{customerData:t,updateCustomer:n}),r.a.createElement(Xi.a,{className:a.complianceDetailsGrid},r.a.createElement(Xi.a,{className:a.firstColumn},r.a.createElement(Ns,{title:"ID photo",state:Or.a(["idCardPhotoOverride"])(t),authorize:function(){return n({idCardPhotoOverride:ks})},reject:function(){return n({idCardPhotoOverride:Ss})}},r.a.createElement(du,{show:t.idCardPhotoPath,src:"".concat(C,"/id-card-photo/").concat(Or.a(["idCardPhotoPath"])(t))})),r.a.createElement(Ns,{title:"Front facing camera",state:Or.a(["frontCameraOverride"])(t),authorize:function(){return n({frontCameraOverride:ks})},reject:function(){return n({frontCameraOverride:Ss})}},r.a.createElement(du,{show:t.frontCameraPath,src:"".concat(C,"/front-camera-photo/").concat(Or.a(["frontCameraPath"])(t))}))),r.a.createElement(Xi.a,{className:a.lastColumn},r.a.createElement(Ns,{title:"US SSN",state:Or.a(["usSsnOverride"])(t),authorize:function(){return n({usSsnOverride:ks})},reject:function(){return n({usSsnOverride:Ss})}},r.a.createElement(su,{label:"US SSN",display:t.usSsn})),r.a.createElement(Ns,{title:"Sanctions check",state:Or.a(["sanctionsOverride"])(t),authorize:function(){return n({sanctionsOverride:ks})},reject:function(){return n({sanctionsOverride:Ss})}},r.a.createElement(Zt,null,i))))))};function fu(){return(fu=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var hu=a.createElement("desc",null,"Created with Sketch."),bu=a.createElement("g",{id:"icon/ID/card/zodiac",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},a.createElement("g",{id:"Group-2",stroke:"#1B2559",strokeWidth:1.6},a.createElement("g",{id:"id-copy"},a.createElement("polygon",{id:"Stroke-1",points:"0 16 22 16 22 0 0 0"}),a.createElement("line",{x1:11.7857143,y1:4,x2:18.8571429,y2:4,id:"Stroke-3"}),a.createElement("line",{x1:11.7857143,y1:7.2,x2:18.8571429,y2:7.2,id:"Stroke-4"}),a.createElement("polygon",{id:"Stroke-5",points:"3.14285714 11.2 8.64285714 11.2 8.64285714 4 3.14285714 4"}))));function gu(e,t){var n=e.title,r=e.titleId,l=pu(e,["title","titleId"]);return a.createElement("svg",fu({width:"22px",height:"16px",viewBox:"0 0 22 16",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,hu,bu)}var vu=a.forwardRef(gu);n.p;function yu(){return(yu=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var Ou=a.createElement("g",{id:"icon/sf-small/law/white",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"bevel"},a.createElement("line",{x1:8.4141,y1:7.4648,x2:14.0711,y2:1.8078,id:"Stroke-1",stroke:"#FFFFFF",strokeWidth:2}),a.createElement("line",{x1:12.6568,y1:.3936,x2:15.4858,y2:3.2216,id:"Stroke-3",stroke:"#FFFFFF",strokeWidth:2}),a.createElement("line",{x1:7,y1:6.0498,x2:9.829,y2:8.8788,id:"Stroke-6",stroke:"#FFFFFF",strokeWidth:2}),a.createElement("line",{x1:11.2427,y1:4.6357,x2:19.2427,y2:12.6357,id:"Stroke-7",stroke:"#FFFFFF",strokeWidth:2}),a.createElement("line",{x1:3,y1:16.5,x2:10,y2:16.5,id:"Stroke-9",stroke:"#FFFFFF",strokeWidth:2}),a.createElement("line",{x1:0,y1:19.5,x2:13,y2:19.5,id:"Stroke-10",stroke:"#FFFFFF",strokeWidth:2}));function wu(e,t){var n=e.title,r=e.titleId,l=Eu(e,["title","titleId"]);return a.createElement("svg",yu({width:"20px",height:"20px",viewBox:"0 0 20 20",ref:t,"aria-labelledby":r},l),void 0===n?a.createElement("title",{id:r},"icon/sf-small/law/white"):n?a.createElement("title",{id:r},n):null,Ou)}var xu=a.forwardRef(wu);n.p;function ju(){return(ju=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var ku=a.createElement("g",{id:"icon/sf-small/law/zodiac",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"bevel"},a.createElement("line",{x1:8.4141,y1:7.4648,x2:14.0711,y2:1.8078,id:"Stroke-1",stroke:"#1B2559",strokeWidth:2}),a.createElement("line",{x1:12.6568,y1:.3936,x2:15.4858,y2:3.2216,id:"Stroke-3",stroke:"#1B2559",strokeWidth:2}),a.createElement("line",{x1:7,y1:6.0498,x2:9.829,y2:8.8788,id:"Stroke-6",stroke:"#1B2559",strokeWidth:2}),a.createElement("line",{x1:11.2427,y1:4.6357,x2:19.2427,y2:12.6357,id:"Stroke-7",stroke:"#1B2559",strokeWidth:2}),a.createElement("line",{x1:3,y1:16.5,x2:10,y2:16.5,id:"Stroke-9",stroke:"#1B2559",strokeWidth:2}),a.createElement("line",{x1:0,y1:19.5,x2:13,y2:19.5,id:"Stroke-10",stroke:"#1B2559",strokeWidth:2}));function Su(e,t){var n=e.title,r=e.titleId,l=Cu(e,["title","titleId"]);return a.createElement("svg",ju({width:"20px",height:"20px",viewBox:"0 0 20 20",ref:t,"aria-labelledby":r},l),void 0===n?a.createElement("title",{id:r},"icon/sf-small/law/zodiac"):n?a.createElement("title",{id:r},n):null,ku)}var Nu=a.forwardRef(Su),Iu=(n.p,{titleWrapper:{display:"flex",justifyContent:"space-between",alignItems:"center",flexDirection:"row"},wrapper:{flex:1,display:"flex",flexDirection:"row",height:"100%"},tableWrapper:{flex:1,marginLeft:40,display:"block",overflowX:"auto",width:"100%",maxWidth:"78%",maxHeight:"70vh"},table:{whiteSpace:"nowrap",display:"block","& th":{position:"sticky",top:0}},dateColumn:{minWidth:160},levelColumn:{minWidth:100},fillColumn:{width:"100%"},shareButton:{margin:8,display:"flex",alignItems:"center",fontSize:ce,padding:[[0,12]]},shareIcon:{marginRight:6},button:{margin:8},titleAndButtonsContainer:{display:"flex"},buttonsWrapper:{display:"flex",marginLeft:16,"& > *":{margin:"auto 6px"}}}),Lu={titleWrapper:Iu.titleWrapper,titleAndButtonsContainer:Iu.titleAndButtonsContainer,row:{display:"flex",flexFlow:"row nowrap"},rowSpaceBetween:{display:"flex",flexFlow:"row nowrap",alignItems:"center",justifyContent:"space-between"},column:{display:"flex",flexFlow:"column nowrap",width:"100%",height:"100%",justifyContent:"space-between"},textInput:{width:144},p:{fontFamily:"MuseoSans",fontSize:oe,fontWeight:500,fontStretch:"normal",fontStyle:"normal",lineHeight:1.14,letterSpacing:"normal",color:M},txId:{fontFamily:"MuseoSans",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},txClassIconLeft:{marginRight:11},txClassIconRight:{marginLeft:11},headerLabels:{display:"flex",flexDirection:"row","& div":{display:"flex",alignItems:"center"},"& > div:first-child":{marginRight:24},"& span":{extend:Ee.label1,marginLeft:6}},photo:{width:92,height:92,borderRadius:8,backgroundColor:T,margin:[[0,28,0,0]],alignItems:"center",justifyContent:"center",display:"flex"},img:{width:80},customerName:{marginBottom:32},icon:{marginRight:11},name:{display:"flex",flexDirection:"row",alignItems:"center"},value:{height:16},label:{marginBottom:4,color:B},idIcon:{marginRight:10},subpageButton:{marginLeft:16}},Bu=n(336),Pu=function(e){return"blocked"===e.authorizedOverride?{label:"Blocked",type:"error"}:e.daysSuspended>0?{label:"".concat(e.daysSuspended," day suspension"),type:"warning"}:{label:"Authorized",type:"success"}},Fu=function(e,t){return e&&t?Object(Bu.a)(e,t).formatInternational():""},Du=function(e){var t,n,a=Or.a(["idCardData"])(e);return"".concat(null!==(t=Or.a(["firstName"])(a))&&void 0!==t?t:""," ").concat(null!==(n=Or.a(["lastName"])(a))&&void 0!==n?n:"").trim()},Tu=Object(m.a)(Lu),Wu=Object(a.memo)((function(e){var t=e.frontCameraPath,n=Tu();return r.a.createElement(_e.a,{className:n.photo,elevation:0},t?r.a.createElement("img",{className:n.img,src:"".concat(C,"/front-camera-photo/").concat(t),alt:""}):r.a.createElement(ou,null))})),Ru=Object(m.a)(Lu),zu=Object(a.memo)((function(e){var t,n,a=e.customer,l=e.locale,i=e.setShowCompliance,o=Ru(),c=[{header:"Phone number",size:172,value:Fu(a.phone,l.country)},{header:"ID number",size:172,value:null!==(t=Or.a(["idCardData","documentNumber"])(a))&&void 0!==t?t:""},{header:"US SSN",size:127,value:null!==(n=Or.a(["usSsn"])(a))&&void 0!==n?n:""}],s=Du(a);return r.a.createElement(Xi.a,{display:"flex"},r.a.createElement(Wu,{frontCameraPath:Or.a(["frontCameraPath"])(a)}),r.a.createElement(Xi.a,{display:"flex",flexDirection:"column"},r.a.createElement("div",{className:o.name},r.a.createElement(vu,{className:o.idIcon}),r.a.createElement(Mt,{noMargin:!0},s.length?s:Fu(Or.a(["phone"])(a),l.country)),r.a.createElement(xt,{className:o.subpageButton,Icon:Nu,InverseIcon:xu,toggle:i},"Compliance details")),r.a.createElement(Xi.a,{display:"flex",mt:"auto"},c.map((function(e,t){var n=e.size,a=e.header;return r.a.createElement(Kt,{noMargin:!0,key:t,className:o.label,style:{width:n}},a)}))),r.a.createElement(Xi.a,{display:"flex"},c.map((function(e,t){var n=e.size,a=e.value;return r.a.createElement(Vt,{noMargin:!0,key:t,className:o.value,style:{width:n}},a)})))))})),Au=n(27),Mu=n.n(Au),qu=function(e,t){return Cn.a(e)?"":t},$u=Object(a.memo)((function(e){var t=e.customerData,n=e.updateCustomer,a=Or.a(["idCardData"])(t),l=Or.a(["expirationDate"])(a),i=Or.a(["country"])(a),o=Or.a(["dateOfBirth"])(a),c=[{header:"Name",display:"".concat(Or.a(["firstName"])(a)," ").concat(Or.a(["lastName"])(a)),size:190},{header:"ID number",display:Or.a(["documentNumber"])(a),size:160},{header:"Birth Date",display:qu(o,Mu.a.utc(o).format("YYYY-MM-DD")),size:110},{header:"Age",display:qu(o,Mu.a.utc().diff(Mu.a.utc(o).format("YYYY-MM-DD"),"years")),size:50},{header:"Gender",display:Or.a(["gender"])(a),size:80},{header:"Canada"===i?"Province":"State",display:Or.a(["state"])(a),size:120},{header:"Expiration Date",display:qu(l,Mu.a.utc(l).format("YYYY-MM-DD"))}];return r.a.createElement(Ns,{title:"ID data",state:Or.a(["idCardDataOverride"])(t),authorize:function(){return n({idCardDataOverride:ks})},reject:function(){return n({idCardDataOverride:Ss})}},r.a.createElement(Xi.a,{display:"flex",alignItems:"center"},c.map((function(e,t){var n=e.header,a=e.display,l=e.size;return r.a.createElement(su,{key:t,label:n,display:a,size:l})}))))})),Hu=n(83),Vu=n.n(Hu),Yu=n(179);function Gu(){return(Gu=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var _u=a.createElement("desc",null,"Created with Sketch."),Uu=a.createElement("g",{id:"Styleguide",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd"},a.createElement("g",{id:"icon/action/expand/closed",transform:"translate(1.000000, 1.000000)",stroke:"#1B2559",strokeWidth:1.5},a.createElement("circle",{id:"Oval-4",cx:14,cy:2,r:2}),a.createElement("circle",{id:"Oval-4-Copy",cx:8,cy:2,r:2}),a.createElement("circle",{id:"Oval-4-Copy-2",cx:2,cy:2,r:2})));function Ju(e,t){var n=e.title,r=e.titleId,l=Zu(e,["title","titleId"]);return a.createElement("svg",Gu({width:"18px",height:"6px",viewBox:"0 0 18 6",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,_u,Uu)}var Ku=a.forwardRef(Ju);n.p;function Qu(){return(Qu=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var ed=a.createElement("desc",null,"Created with Sketch."),td=a.createElement("g",{id:"Styleguide",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd"},a.createElement("g",{id:"icon/action/expand/open",transform:"translate(1.000000, 1.000000)",fill:"#1B2559",stroke:"#1B2559",strokeWidth:1.5},a.createElement("circle",{id:"Oval-4",cx:14,cy:2,r:2}),a.createElement("circle",{id:"Oval-4-Copy",cx:8,cy:2,r:2}),a.createElement("circle",{id:"Oval-4-Copy-2",cx:2,cy:2,r:2})));function nd(e,t){var n=e.title,r=e.titleId,l=Xu(e,["title","titleId"]);return a.createElement("svg",Qu({width:"18px",height:"6px",viewBox:"0 0 18 6",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,ed,td)}var ad=a.forwardRef(nd),rd=(n.p,{expandButton:{outline:"none",border:"none",backgroundColor:"transparent",cursor:"pointer",padding:4},rowWrapper:{padding:1},row:{border:[[2,"solid","transparent"]],borderRadius:0},expanded:{border:[[2,"solid",T]],boxShadow:"0 0 8px 0 rgba(0,0,0,0.08)"},before:{paddingTop:12},after:{paddingBottom:12},pointer:{cursor:"pointer"},body:{flex:[[1,1,"auto"]]},table:function(e){return{marginBottom:30,minHeight:200,width:e.width,flex:1,display:"flex",flexDirection:"column"}}}),ld=Object(m.a)(rd),id=function(e){var t,n=e.id,a=e.elements,l=e.data,i=e.width,o=e.Details,c=e.expanded,s=e.expandRow,u=e.expWidth,d=e.expandable,m=e.onClick,f=ld(),p=m||d,h=(t={},Object(I.a)(t,f.pointer,p),Object(I.a)(t,f.row,!0),Object(I.a)(t,f.expanded,c),t);return r.a.createElement("div",{className:f.rowWrapper},r.a.createElement("div",{className:N()(Object(I.a)({},f.before,c&&0!==n))},r.a.createElement(jl,{className:N()(h),onClick:function(){d&&s(n),m&&m(l)},error:l.error,errorMessage:l.errorMessage},a.map((function(e,t){var n=e.view,a=void 0===n?function(e){return null===e||void 0===e?void 0:e.toString()}:n,i=Object(L.a)(e,["view"]);return r.a.createElement(Ol,Object.assign({key:t},i),a(l))})),d&&r.a.createElement(Ol,{width:u,textAlign:"center"},r.a.createElement("button",{onClick:function(){return s(n)},className:f.expandButton},c&&r.a.createElement(ad,null),!c&&r.a.createElement(Ku,null))))),d&&c&&r.a.createElement("div",{className:f.after},r.a.createElement(jl,{className:N()(Object(I.a)({},f.expanded,c))},r.a.createElement(Ol,{width:i},r.a.createElement(o,{it:l})))))},od=function(e){var t=e.elements,n=void 0===t?[]:t,l=e.data,i=void 0===l?[]:l,c=e.Details,s=(e.className,e.expandable),u=e.initialExpanded,d=e.onClick,m=e.loading,f=e.emptyText,p=Object(L.a)(e,["elements","data","Details","className","expandable","initialExpanded","onClick","loading","emptyText"]),h=Object(a.useState)(u),b=Object(o.a)(h,2),g=b[0],v=b[1];Object(a.useEffect)((function(){return v(u)}),[u]);var y=mn.a(Nl.a,jn.a(xn.a("width")))(n),E=1200-y,O=y+(s?E:0),w=ld({width:O}),x=function(e){v(e===g?null:e)},j=new Yu.c({defaultHeight:62,fixedWidth:!0});function C(e){var t=e.index,a=e.key,l=e.parent,o=e.style;return r.a.createElement(Yu.b,{cache:j,columnIndex:0,key:a,parent:l,rowIndex:t},r.a.createElement("div",{style:o},r.a.createElement(id,{width:O,id:t,expWidth:E,elements:n,data:i[t],Details:c,expanded:t===g,expandRow:x,expandable:s,onClick:d})))}return r.a.createElement(Xi.a,{display:"flex",flex:"1",flexDirection:"column"},r.a.createElement(gl,{className:w.table},r.a.createElement(vl,null,n.map((function(e,t){var n=e.width,a=e.className,l=e.textAlign,i=e.header;return r.a.createElement(wl,{key:t,width:n,className:a,textAlign:l},i)})),s&&r.a.createElement(wl,{width:E})),r.a.createElement(El,{className:w.body},m&&r.a.createElement($t,null,"Loading..."),!m&&Sn.a(i)&&r.a.createElement($t,null,f),r.a.createElement(Yu.a,{disableWidth:!0},(function(e){var t=e.height;return r.a.createElement(Yu.d,Object.assign({style:{overflow:"inherit",outline:"none"}},p,{height:m?0:t,width:O,rowCount:i.length,rowHeight:j.rowHeight,rowRenderer:C,overscanRowCount:50,deferredMeasurementCache:j}))})))))},cd=[{cryptoCode:"BTC",display:"Bitcoin",code:"bitcoin",unitScale:8},{cryptoCode:"ETH",display:"Ethereum",code:"ethereum",unitScale:18},{cryptoCode:"LTC",display:"Litecoin",code:"litecoin",unitScale:8},{cryptoCode:"DASH",display:"Dash",code:"dash",unitScale:8},{cryptoCode:"ZEC",display:"Zcash",code:"zcash",unitScale:8},{cryptoCode:"BCH",display:"Bitcoin Cash",code:"bitcoincash",unitScale:8}];function sd(e,t){var n=function(e){var t=On.a(wn.a("cryptoCode",e))(cd);if(!t)throw new Error("Unsupported crypto: ".concat(e));return t}(t).unitScale;return e.shiftedBy(-n)}function ud(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return"BCH"===e?t.replace("bitcoincash:",""):t}var dd=n(333);function md(){return(md=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var pd=a.createElement("desc",null,"Created with Sketch."),hd=a.createElement("g",{id:"Styleguide",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd",strokeLinejoin:"round"},a.createElement("g",{id:"icon/action/copy",transform:"translate(1.000000, 1.000000)",stroke:"#1B2559"},a.createElement("g",{id:"Group-5-Copy-2"},a.createElement("polyline",{id:"Stroke-1",strokeWidth:2,points:"6 1.2 6 -0.00024 16 -0.00024 16 13.06376 12 13.06376"}),a.createElement("polygon",{id:"Stroke-3",strokeWidth:2,strokeLinecap:"round",points:"0 15.9368 10 15.9368 10 2.9368 0 2.9368"}))));function bd(e,t){var n=e.title,r=e.titleId,l=fd(e,["title","titleId"]);return a.createElement("svg",md({width:"18px",height:"18px",viewBox:"0 0 18 18",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,pd,hd)}var gd=a.forwardRef(bd),vd=(n.p,Ee.label1),yd={wrapper:{extend:Ee.mono,display:"flex",alignItems:"center",height:32},address:{lineBreak:"anywhere"},buttonWrapper:{"& button":{border:"none",backgroundColor:"transparent",cursor:"pointer"}},popoverContent:{extend:vd,display:"flex",justifyContent:"center",alignItems:"center",color:R,borderRadius:4,padding:[[5,9]]}},Ed={idCardDataCard:{extend:Ee.p,display:"flex",padding:[[11,8]],"& > div":{display:"flex",flexDirection:"column","& > div":{width:144,height:37,marginBottom:15,"&:last-child":{marginBottom:0}}}}},Od={label:{extend:vd,color:J,marginBottom:4}},wd={titleWrapper:Iu.titleWrapper,titleAndButtonsContainer:Iu.titleAndButtonsContainer,buttonsWrapper:Iu.buttonsWrapper,headerLabels:{display:"flex",flexDirection:"row","& div":{display:"flex",alignItems:"center"},"& > div:first-child":{marginRight:24},"& span":{extend:vd,marginLeft:6}},overflowTd:{overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis"}},xd=Object(m.a)(yd),jd=function(e){var t=e.className,n=e.buttonClassname,l=e.children,i=(Object(L.a)(e,["className","buttonClassname","children"]),Object(a.useState)(null)),c=Object(o.a)(i,2),s=c[0],u=c[1];Object(a.useEffect)((function(){s&&setTimeout((function(){return u(null)}),3e3)}),[s]);var d=xd(),m=Boolean(s),f=m?"simple-popper":void 0;return r.a.createElement("div",{className:d.wrapper},l&&r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:N()(d.address,t)},l),r.a.createElement("div",{className:N()(d.buttonWrapper,n)},r.a.createElement(dd.CopyToClipboard,{text:Ll.a(/\s/g,"")(l)},r.a.createElement("button",{"aria-describedby":f,onClick:function(e){return function(e){u(s?null:e.currentTarget)}(e)}},r.a.createElement(gd,null)))),r.a.createElement(Je,{id:f,open:m,anchorEl:s,onClose:function(){u(null)},arrowSize:3,bgColor:B,placement:"top"},r.a.createElement("div",{className:d.popoverContent},r.a.createElement("div",null,"Copied to clipboard!")))))},Cd=Object(m.a)(Lu),kd=function(e){var t=e.customer,n=e.data,a=e.loading,l=Cd(),i="cashOut"===t.lastTxClass?Oo:kc,o=!(Sn.a(n)||Cn.a(n)),c=[{header:"Transactions",size:127,value:qu(t.totalTxs,"".concat(Number.parseInt(t.totalTxs)))},{header:"Transaction volume",size:167,value:qu(t.totalSpent,"".concat(Number.parseFloat(t.totalSpent)," ").concat(t.lastTxFiatCode))},{header:"Last active",size:142,value:qu(t.lastActive,Mu.a.utc(t.lastActive).format("YYYY-MM-D"))},{header:"Last transaction",size:198,value:qu(t.lastTxFiat,r.a.createElement(r.a.Fragment,null,r.a.createElement(i,{className:l.icon}),"".concat(Number.parseFloat(t.lastTxFiat)," \n ").concat(t.lastTxFiatCode)))}],s=[{header:"Direction",width:207,view:function(e){return r.a.createElement(r.a.Fragment,null,"cashOut"===e.txClass?r.a.createElement(Oo,{className:l.txClassIconLeft}):r.a.createElement(kc,{className:l.txClassIconLeft}),"cashOut"===e.txClass?"Cach-out":"Cash-in")}},{header:"Transaction ID",width:414,view:function(e){return r.a.createElement(jd,{className:l.txId},e.id)}},{header:"Cash",width:146,textAlign:"right",view:function(e){return r.a.createElement(r.a.Fragment,null,"".concat(Number.parseFloat(e.fiat)," "),r.a.createElement(Qt,{inline:!0},e.fiatCode))}},{header:"Crypto",width:142,textAlign:"right",view:function(e){return r.a.createElement(r.a.Fragment,null,"".concat(sd(new Vu.a(e.cryptoAtoms),e.cryptoCode).toFormat(5)," "),r.a.createElement(Qt,{inline:!0},e.cryptoCode))}},{header:"Date",width:157,view:function(e){return Mu.a.utc(e.created).format("YYYY-MM-D")}},{header:"Time (h:m:s)",width:134,view:function(e){return Mu.a.utc(e.created).format("hh:mm:ss")}}];return r.a.createElement(r.a.Fragment,null,r.a.createElement(qt,null,"Transactions"),r.a.createElement(Xi.a,{display:"flex",flexDirection:"column"},r.a.createElement(Xi.a,{display:"flex",mt:"auto"},c.map((function(e,t){var n=e.size,a=e.header;return r.a.createElement(Kt,{noMargin:!0,key:t,className:l.label,style:{width:n}},a)}))),r.a.createElement(Xi.a,{display:"flex"},c.map((function(e,t){var n=e.size,a=e.value;return r.a.createElement(Vt,{noMargin:!0,key:t,className:l.value,style:{width:n}},a)})))),r.a.createElement("div",{className:l.titleWrapper},r.a.createElement("div",{className:l.titleAndButtonsContainer},r.a.createElement($t,null,a?"Loading":o?"All transactions from this customer":"No transactions so far"))),o&&r.a.createElement(od,{elements:s,data:n}))};function Sd(){var e=Object(tn.a)(["\n mutation setCustomer($customerId: ID!, $customerInput: CustomerInput) {\n setCustomer(customerId: $customerId, customerInput: $customerInput) {\n id\n authorizedOverride\n frontCameraPath\n frontCameraOverride\n phone\n smsOverride\n idCardData\n idCardDataOverride\n idCardDataExpiration\n idCardPhotoPath\n idCardPhotoOverride\n usSsn\n usSsnOverride\n sanctions\n sanctionsAt\n sanctionsOverride\n totalTxs\n totalSpent\n lastActive\n lastTxFiat\n lastTxFiatCode\n lastTxClass\n }\n }\n"]);return Sd=function(){return e},e}function Nd(){var e=Object(tn.a)(["\n query customer($customerId: ID!) {\n config\n customer(customerId: $customerId) {\n id\n authorizedOverride\n frontCameraPath\n frontCameraOverride\n phone\n smsOverride\n idCardData\n idCardDataOverride\n idCardDataExpiration\n idCardPhotoPath\n idCardPhotoOverride\n usSsn\n usSsnOverride\n sanctions\n sanctionsAt\n sanctionsOverride\n totalTxs\n totalSpent\n lastActive\n lastTxFiat\n lastTxFiatCode\n lastTxClass\n transactions {\n txClass\n id\n fiat\n fiatCode\n cryptoAtoms\n cryptoCode\n created\n errorMessage: error\n error: errorCode\n }\n }\n }\n"]);return Nd=function(){return e},e}var Id=Object(m.a)(qs),Ld=sn()(Nd()),Bd=sn()(Sd()),Pd=Object(a.memo)((function(){var e,t,n,l=Id(),i=Object(g.h)(),c=Object(a.useState)(!1),s=Object(o.a)(c,2),u=s[0],d=s[1],m=Object(g.j)().id,f=Object(nn.c)(Ld,{variables:{customerId:m}}),p=f.data,h=f.refetch,b=f.loading,v=Object(nn.b)(Bd,{onCompleted:function(){return h()}}),y=Object(o.a)(v,1)[0],E=function(e){return y({variables:{customerId:m,customerInput:e}})},O=null!==(e=Or.a(["config"])(p))&&void 0!==e?e:[],w=O&&Jr($r,O),x=null!==(t=Or.a(["customer"])(p))&&void 0!==t?t:[],j=null!==(n=Or.a(["transactions"])(x))&&void 0!==n?n:[],C=Qc.a(Xc.a(xn.a("cryptoAtoms")))(j),k=Du(x),S=Or.a(["authorizedOverride"])(x)===Ss;return r.a.createElement(r.a.Fragment,null,r.a.createElement(Uc.a,{classes:{root:l.breadcrumbs},separator:r.a.createElement(Kc.a,{fontSize:"small"}),"aria-label":"breadcrumb"},r.a.createElement(Kt,{noMargin:!0,className:l.labelLink,onClick:function(){return i.push("/compliance/customers")}},"Customers"),r.a.createElement(Qt,{noMargin:!0,className:l.labelLink},k.length?k:Fu(Or.a(["phone"])(x),w.country))),r.a.createElement("div",null,r.a.createElement(Xi.a,{className:l.customerDetails,display:"flex",justifyContent:"space-between"},r.a.createElement(zu,{customer:x,locale:w,setShowCompliance:function(){return d(!u)}}),r.a.createElement("div",null,r.a.createElement(Kt,{className:l.actionLabel},"Actions"),r.a.createElement(je,{color:"primary",Icon:S?bs:Ms,InverseIcon:S?us:Ds,onClick:function(){return E({authorizedOverride:S?ks:Ss})}},"".concat(S?"Authorize":"Block"," customer"))))),!u&&r.a.createElement(kd,{customer:x,data:C,loading:b}),u&&r.a.createElement(mu,{customer:x,updateCustomer:E}))})),Fd=Object(m.a)(Lu),Dd=function(e){var t=e.data,n=e.locale,a=e.onClick,l=e.loading,i=Fd(),o=[{header:"Phone",width:172,view:function(e){return Fu(e.phone,n.country)}},{header:"Name",width:241,view:Du},{header:"Total TXs",width:126,textAlign:"right",view:function(e){return"".concat(Number.parseInt(e.totalTxs))}},{header:"Total spent",width:152,textAlign:"right",view:function(e){var t;return"".concat(Number.parseFloat(e.totalSpent)," ").concat(null!==(t=e.lastTxFiatCode)&&void 0!==t?t:"")}},{header:"Last active",width:133,view:function(e){return qu(e.lastActive,Mu.a.utc(e.lastActive).format("YYYY-MM-D"))}},{header:"Last transaction",width:161,textAlign:"right",view:function(e){var t,n=!Cn.a(e.lastTxFiatCode),a="cashOut"===e.lastTxClass?Oo:kc,l=r.a.createElement(a,{className:i.txClassIconRight});return r.a.createElement(r.a.Fragment,null,n&&"".concat(parseFloat(e.lastTxFiat)," ").concat(null!==(t=e.lastTxFiatCode)&&void 0!==t?t:""),n&&l)}},{header:"Status",width:188,view:function(e){return r.a.createElement(rs,{statuses:[Pu(e)]})}}];return r.a.createElement(r.a.Fragment,null,r.a.createElement(uo,{title:"Customers",labels:[{label:"Cash-in",icon:r.a.createElement(kc,null)},{label:"Cash-out",icon:r.a.createElement(Oo,null)}]}),r.a.createElement(od,{loading:l,emptyText:"No customers so far",elements:o,data:t,onClick:a}))};function Td(){var e=Object(tn.a)(["\n {\n config\n customers {\n id\n idCardData\n phone\n totalTxs\n totalSpent\n lastActive\n lastTxFiat\n lastTxFiatCode\n lastTxClass\n authorizedOverride\n daysSuspended\n }\n }\n"]);return Td=function(){return e},e}var Wd=sn()(Td()),Rd=function(){var e,t,n=Object(g.h)(),a=Object(nn.c)(Wd),l=a.data,i=a.loading,o=null!==(e=Or.a(["config"])(l))&&void 0!==e?e:[],c=o&&Jr($r,o),s=cl.a([Xc.a(xn.a("lastActive"))])(null!==(t=Or.a(["customers"])(l))&&void 0!==t?t:[]);return r.a.createElement(Dd,{data:s,locale:c,onClick:function(e){return n.push("/compliance/customer/".concat(e.id))},loading:i})},zd=n(451),Ad=Object(zd.a)({wrapper:{display:"flex",alignItems:"center"},colorIndicator:{borderRadius:3,height:12,width:12,marginRight:8}}),Md=function(e){var t=e.className,n=e.label,a=e.color,l=Object(L.a)(e,["className","label","color"]),i=Ad();return r.a.createElement("div",Object.assign({className:N()(i.wrapper,t)},l),a&&r.a.createElement("div",{className:i.colorIndicator,style:{backgroundColor:a}}),r.a.createElement(Kt,l,n))},qd=Ee.label1,$d={wrapper:{display:"flex",flex:1,flexDirection:"row",height:"100%"},main:{display:"flex",flex:1},firstSide:{margin:"0 ".concat(64,"px 0 ").concat(48,"px")},secondSide:{marginTop:-29},error:{color:X},coinTotal:{margin:"".concat(12,"px 0")},leftSpacer:{marginLeft:8},topSpacer:{marginTop:40},addressWrapper:{display:"flex",flexDirection:"column",flex:1,backgroundColor:Y},address:{width:375,margin:"".concat(12,"px ").concat(24,"px")},itemWrapper:{textAlign:"end"},item:{extend:qd,margin:2},inactiveItem:{color:B},firstItem:{fontWeight:700,margin:2},total:{marginTop:"auto",textAlign:"right",marginRight:24},totalPending:{marginTop:2},totalTitle:{color:Q,marginBottom:2},table:{marginTop:8,marginLeft:48},tableLabel:{justifyContent:"end",marginTop:-38},pending:{backgroundColor:_},copyToClipboard:{marginLeft:"auto",paddingTop:6,paddingLeft:15,marginRight:-11}};function Hd(){var e=Object(tn.a)(["\n {\n funding {\n cryptoCode\n errorMsg\n fundingAddress\n fundingAddressUrl\n confirmedBalance\n pending\n fiatConfirmedBalance\n fiatPending\n fiatCode\n display\n unitScale\n }\n }\n"]);return Hd=function(){return e},e}var Vd,Yd=Object(m.a)($d),Gd=165,Zd=140,_d=130,Ud=sn()(Hd()),Jd=function(e,t){return e.plus(t)},Kd=function(e){return new Vu.a(e).toFormat(2)},Qd=function(){var e,t,n=Object(a.useState)(null),l=Object(o.a)(n,2),i=l[0],c=l[1],s=Object(a.useState)(!1),u=Object(o.a)(s,1)[0],d=Yd(),m=[{cryptoAmount:2,balance:10.23,fiatValue:1e3,date:new Date,performedBy:null,pending:!0},{cryptoAmount:10,balance:12.23,fiatValue:12e3,date:new Date,performedBy:null},{cryptoAmount:5,balance:5,fiatValue:5e4,date:new Date,performedBy:null}],f=Object(nn.c)(Ud).data;(null===f||void 0===f||null===(e=f.funding)||void 0===e?void 0:e.length)&&!i&&c(null===f||void 0===f?void 0:f.funding[0]);var p,h=(p=(null===f||void 0===f?void 0:f.funding)||[],Kd(p.filter((function(e){return!e.errorMsg})).map((function(e){return new Vu.a(e.fiatPending)})).reduce(Jd,new Vu.a(0)))),b=function(e){return e>=0?"+":""};return r.a.createElement(r.a.Fragment,null,r.a.createElement("div",null,r.a.createElement(gn,null,"Funding")),r.a.createElement("div",{className:d.wrapper},r.a.createElement(xa,{data:null===f||void 0===f?void 0:f.funding,isSelected:function(e){return i&&i.cryptoCode===e.cryptoCode},onClick:c,displayName:function(e){return e.display},itemRender:function(e,t){var n,a,l=(n={},Object(I.a)(n,d.item,!0),Object(I.a)(n,d.inactiveItem,!t),n),i=(a={},Object(I.a)(a,d.itemWrapper,!0),Object(I.a)(a,d.error,e.errorMsg),a);return r.a.createElement("div",{className:N()(i)},r.a.createElement("div",{className:d.firstItem},e.display),!e.errorMsg&&r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:N()(l)},e.fiatConfirmedBalance," ",e.fiatCode),r.a.createElement("div",{className:N()(l)},e.confirmedBalance," ",e.cryptoCode)))}},(null===f||void 0===f?void 0:f.funding)&&(null===f||void 0===f||null===(t=f.funding)||void 0===t?void 0:t.length)&&r.a.createElement("div",{className:d.total},r.a.createElement(Kt,{className:d.totalTitle},"Total Crypto Balance"),r.a.createElement(Yt,{noMargin:!0},function(e){return Kd(e.filter((function(e){return!e.errorMsg})).map((function(e){return new Vu.a(e.fiatConfirmedBalance)})).reduce(Jd,new Vu.a(0)))}(f.funding),f.funding[0].fiatCode),r.a.createElement(Kt,{className:d.totalPending},"(",b(h)," ",h," pending)"))),i&&!u&&i.errorMsg&&r.a.createElement("div",{className:d.main},r.a.createElement("div",{className:d.firstSide},r.a.createElement(Zt,{className:d.error},i.errorMsg))),i&&!u&&!i.errorMsg&&r.a.createElement("div",{className:d.main},r.a.createElement("div",{className:d.firstSide},r.a.createElement(qt,null,"Balance (",i.display,")"),r.a.createElement("div",{className:d.coinTotal},r.a.createElement(Yt,{inline:!0,noMargin:!0},"".concat(i.confirmedBalance," ").concat(i.cryptoCode)),r.a.createElement(Gt,{inline:!0,noMargin:!0,className:d.leftSpacer},"(".concat(b(i.pending)," ").concat(i.pending," pending)"))),r.a.createElement("div",{className:d.coinTotal},r.a.createElement(Zt,{inline:!0,noMargin:!0},"= ".concat(Kd(i.fiatConfirmedBalance)," ").concat(i.fiatCode)),r.a.createElement(Xt,{inline:!0,noMargin:!0,className:d.leftSpacer},"(".concat(b(i.fiatPending)," ").concat(Kd(i.fiatPending)," pending)"))),r.a.createElement(qt,{className:d.topSpacer},"Address"),r.a.createElement("div",{className:d.addressWrapper},r.a.createElement(_t,{className:d.address},r.a.createElement("strong",null,r.a.createElement(jd,{buttonClassname:d.copyToClipboard},function(){return ud(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",arguments.length>1&&void 0!==arguments[1]?arguments[1]:"").replace(/(.{4})/g,"$1 ")}(i.cryptoCode,i.fundingAddress)))))),r.a.createElement("div",{className:d.secondSide},r.a.createElement(Kt,null,"Scan to send ",i.display),r.a.createElement(dn.a,{size:240,fgColor:M,value:i.fundingAddressUrl}))),i&&u&&r.a.createElement("div",null,r.a.createElement(Md,{className:d.tableLabel,label:"Pending",color:"#cacaca"}),r.a.createElement(gl,{className:d.table},r.a.createElement(vl,null,r.a.createElement(Ol,{header:!0,width:Gd},"Amount Entered"),r.a.createElement(Ol,{header:!0,width:Gd},"Balance After"),r.a.createElement(Ol,{header:!0,width:Gd},"Cash Value"),r.a.createElement(Ol,{header:!0,width:_d},"Date"),r.a.createElement(Ol,{header:!0,width:Zd},"Time (h:m:s)"),r.a.createElement(Ol,{header:!0,width:Gd},"Performed By")),r.a.createElement(El,null,m.map((function(e,t){return r.a.createElement(jl,{key:t,className:N()(Object(I.a)({},d.pending,e.pending))},r.a.createElement(Ol,{width:Gd},e.cryptoAmount," ",i.cryptoCode),r.a.createElement(Ol,{width:Gd},e.balance," ",i.cryptoCode),r.a.createElement(Ol,{width:Gd},e.fiatValue," ",i.fiatCode),r.a.createElement(Ol,{width:_d},Mu()(e.date).format("YYYY-MM-DD")),r.a.createElement(Ol,{width:Zd},Mu()(e.date).format("hh:mm:ss")),r.a.createElement(Ol,{width:Gd},"add"))})))))))},Xd=function(e){return e&&e.length},em={code:"bitgo",name:"BitGo",title:"BitGo (Wallet)",elements:[{code:"token",display:"API Token",component:Qn,face:!0,long:!0},{code:"environment",display:"Environment",component:_n,inputProps:{options:["prod","test"]},face:!0},{code:"BTCWalletId",display:"BTC Wallet ID",component:Qn},{code:"BTCWalletPassphrase",display:"BTC Wallet Passphrase",component:Kn},{code:"LTCWalletId",display:"LTC Wallet ID",component:Qn},{code:"LTCWalletPassphrase",display:"LTC Wallet Passphrase",component:Kn},{code:"ZECWalletId",display:"ZEC Wallet ID",component:Qn},{code:"ZECWalletPassphrase",display:"ZEC Wallet Passphrase",component:Kn},{code:"BCHWalletId",display:"BCH Wallet ID",component:Qn},{code:"BCHWalletPassphrase",display:"BCH Wallet Passphrase",component:Kn},{code:"DASHWalletId",display:"DASH Wallet ID",component:Qn},{code:"DASHWalletPassphrase",display:"DASH Wallet Passphrase",component:Kn}],validationSchema:hn.d().shape({token:hn.e().max(100,"Too long").required(),BTCWalletId:hn.e().max(100,"Too long"),BTCWalletPassphrase:hn.e().max(100,"Too long").when("BTCWalletId",{is:Xd,then:hn.e().required()}),LTCWalletId:hn.e().max(100,"Too long"),LTCWalletPassphrase:hn.e().max(100,"Too long").when("LTCWalletId",{is:Xd,then:hn.e().required()}),ZECWalletId:hn.e().max(100,"Too long"),ZECWalletPassphrase:hn.e().max(100,"Too long").when("ZECWalletId",{is:Xd,then:hn.e().required()}),BCHWalletId:hn.e().max(100,"Too long"),BCHWalletPassphrase:hn.e().max(100,"Too long").when("BCHWalletId",{is:Xd,then:hn.e().required()}),DASHWalletId:hn.e().max(100,"Too long"),DASHWalletPassphrase:hn.e().max(100,"Too long").when("DASHWalletId",{is:Xd,then:hn.e().required()}),environment:hn.e().matches(/(prod|test)/).required()})},tm={code:"bitstamp",name:"Bitstamp",title:"Bitstamp (Exchange)",elements:[{code:"clientId",display:"Client ID",component:Qn,face:!0,long:!0},{code:"key",display:"API Key",component:Qn,face:!0,long:!0},{code:"secret",display:"API Secret",component:Kn}],validationSchema:hn.d().shape({clientId:hn.e().max(100,"Too long").required(),key:hn.e().max(100,"Too long").required(),secret:hn.e().max(100,"Too long").required()})},nm={code:"blockcypher",name:"Blockcypher",title:"Blockcypher (Payments)",elements:[{code:"token",display:"API Token",component:Qn,face:!0,long:!0},{code:"confidenceFactor",display:"Confidence Factor",component:Qn,face:!0}],validationSchema:hn.d().shape({token:hn.e().max(100,"Too long").required(),confidenceFactor:hn.c().integer("Please input a positive integer").positive("Please input a positive integer").required()})},am={code:"infura",name:"Infura",title:"Infura (Wallet)",elements:[{code:"apiKey",display:"Project ID",component:Qn,face:!0,long:!0},{code:"apiSecret",display:"Project Secret",component:Kn},{code:"endpoint",display:"Endpoint",component:Qn,face:!0}],validationSchema:hn.d().shape({apiKey:hn.e().max(100,"Too long").required(),apiSecret:hn.e().max(100,"Too long").required(),endpoint:hn.e().max(100,"Too long").required()})},rm={code:"itbit",name:"itBit",title:"itBit (Exchange)",elements:[{code:"userId",display:"User ID",component:Qn,face:!0,long:!0},{code:"walletId",display:"Wallet ID",component:Qn,face:!0,long:!0},{code:"clientKey",display:"Client Key",component:Qn},{code:"clientSecret",display:"Client Secret",component:Kn}],validationSchema:hn.d().shape({userId:hn.e().max(100,"Too long").required(),walletId:hn.e().max(100,"Too long").required(),clientKey:hn.e().max(100,"Too long").required(),clientSecret:hn.e().max(100,"Too long").required()})},lm={code:"kraken",name:"Kraken",title:"Kraken (Exchange)",elements:[{code:"apiKey",display:"API Key",component:Qn,face:!0,long:!0},{code:"privateKey",display:"Private Key",component:Kn}],validationSchema:hn.d().shape({apiKey:hn.e().max(100,"Too long").required(),privateKey:hn.e().max(100,"Too long").required()})},im={code:"mailgun",name:"Mailgun",title:"Mailgun (Email)",elements:[{code:"apiKey",display:"API Key",component:Qn},{code:"domain",display:"Domain",component:Qn},{code:"fromEmail",display:"From Email",component:Qn,face:!0},{code:"toEmail",display:"To Email",component:Qn,face:!0}],validationSchema:hn.d().shape({apiKey:hn.e().max(100,"Too long").required(),domain:hn.e().max(100,"Too long").required(),fromEmail:hn.e().max(100,"Too long").email("Please input a valid email address").required(),toEmail:hn.e().max(100,"Too long").email("Please input a valid email address").required()})},om={code:"twilio",name:"Twilio",title:"Twilio (SMS)",elements:[{code:"accountSid",display:"Account SID",component:Qn},{code:"authToken",display:"Auth Token",component:Kn},{code:"fromNumber",display:"Twilio Number (international format)",component:Qn,face:!0},{code:"toNumber",display:"Notifications Number (international format)",component:Qn,face:!0}],validationSchema:hn.d().shape({accountSid:hn.e().max(100,"Too long").required(),authToken:hn.e().max(100,"Too long").required(),fromNumber:hn.e().max(100,"Too long").required(),toNumber:hn.e().max(100,"Too long").required()})},cm=(Vd={},Object(I.a)(Vd,em.code,em),Object(I.a)(Vd,tm.code,tm),Object(I.a)(Vd,nm.code,nm),Object(I.a)(Vd,am.code,am),Object(I.a)(Vd,rm.code,rm),Object(I.a)(Vd,lm.code,lm),Object(I.a)(Vd,im.code,im),Object(I.a)(Vd,om.code,om),Vd);function sm(){return(sm=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var dm=a.createElement("circle",{cx:52,cy:32,r:32,fill:"#F7931A"}),mm=a.createElement("path",{d:"m66.1 27.4c0.6-4.3-2.6-6.5-7-8.1l1.4-5.8-3.5-0.9-1.4 5.6c-0.9-0.2-1.9-0.4-2.8-0.7l1.4-5.7-3.5-0.9-1.4 5.8c-0.8-0.2-1.5-0.3-2.2-0.5l0 0-4.8-1.2-0.9 3.8s2.6 0.6 2.6 0.6c1.4 0.4 1.7 1.3 1.6 2l-1.6 6.6c0.1 0 0.2 0.1 0.4 0.1-0.1 0-0.2-0.1-0.4-0.1l-2.3 9.2c-0.2 0.4-0.6 1.1-1.6 0.8 0 0.1-2.6-0.6-2.6-0.6l-1.7 4 4.6 1.1c0.9 0.2 1.7 0.4 2.5 0.6l-1.5 5.8 3.5 0.9 1.4-5.8c1 0.3 1.9 0.5 2.8 0.7l-1.4 5.7 3.5 0.9 1.5-5.8c6 1.1 10.5 0.7 12.4-4.7 1.5-4.4-0.1-6.9-3.2-8.5 2.3-0.5 4-2 4.5-5.2zm-8 11.2c-1.1 4.4-8.4 2-10.8 1.4l1.9-7.7c2.4 0.6 10 1.8 8.9 6.3zm1.1-11.3c-1 4-7.1 2-9.1 1.5l1.7-7c2 0.5 8.4 1.4 7.3 5.6z",fill:"#FFF"});function fm(e,t){var n=e.title,r=e.titleId,l=um(e,["title","titleId"]);return a.createElement("svg",sm({width:104,height:64,ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,dm,mm)}var pm=a.forwardRef(fm);n.p;function hm(){return(hm=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var gm=a.createElement("path",{fill:"#F7931A",d:"m0,0l29.7,0a39,39,0,0,0,0,64l-29.7,0zm52,0a32,32,0,0,0,0,64a32,32,0,0,0,0,-64m52,0l-29.7,0a39,39,0,0,1,0,64l29.7,0z"}),vm=a.createElement("path",{fill:"#FFF",transform:"rotate(-28 52 32)",d:"m66.103,27.444c0.637-4.258-2.605-6.547-7.038-8.074l1.438-5.768-3.511-0.875-1.4,5.616c-0.923-0.23-1.871-0.447-2.813-0.662l1.41-5.653-3.509-0.875-1.439,5.766c-0.764-0.174-1.514-0.346-2.242-0.527l0.004-0.018-4.842-1.209-0.934,3.75s2.605,0.597,2.55,0.634c1.422,0.355,1.679,1.296,1.636,2.042l-1.638,6.571c0.098,0.025,0.225,0.061,0.365,0.117-0.117-0.029-0.242-0.061-0.371-0.092l-2.296,9.205c-0.174,0.432-0.615,1.08-1.609,0.834,0.035,0.051-2.552-0.637-2.552-0.637l-1.743,4.019,4.569,1.139c0.85,0.213,1.683,0.436,2.503,0.646l-1.453,5.834,3.507,0.875,1.439-5.772c0.958,0.26,1.888,0.5,2.798,0.726l-1.434,5.745,3.511,0.875,1.453-5.823c5.987,1.133,10.489,0.676,12.384-4.739,1.527-4.36-0.076-6.875-3.226-8.515,2.294-0.529,4.022-2.038,4.483-5.155zm-8.022,11.249c-1.085,4.36-8.426,2.003-10.806,1.412l1.928-7.729c2.38,0.594,10.012,1.77,8.878,6.317zm1.086-11.312c-0.99,3.966-7.1,1.951-9.082,1.457l1.748-7.01c1.982,0.494,8.365,1.416,7.334,5.553z"});function ym(e,t){var n=e.title,r=e.titleId,l=bm(e,["title","titleId"]);return a.createElement("svg",hm({width:104,height:64,ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,gm,vm)}var Em=a.forwardRef(ym);n.p;function Om(){return(Om=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var xm=a.createElement("circle",{cx:1e3,cy:1e3,r:1e3,fill:"#2573c2"}),jm=a.createElement("g",{fill:"#fff"},a.createElement("path",{d:"M1652.6 736.8a143.65 143.65 0 0 0-19.2-63.6c-10-20-27.8-35.6-48.6-43.6a143.51 143.51 0 0 0-68.4-15H628.8l-63.6 190.6h804.2l-127 389.6h-804l-63.6 190.6h891.8a246.33 246.33 0 0 0 77.8-15c25-14.2 53.6-28.6 77.8-48.6a382.69 382.69 0 0 0 63.6-63.6 432.2 432.2 0 0 0 39.2-73.4l117.8-370.4a137.38 137.38 0 0 0 9.8-77.6z"}),a.createElement("path",{d:"M882.2 911.6H409l-63.6 176.2h478z"}));function Cm(e,t){var n=e.title,r=e.titleId,l=wm(e,["title","titleId"]);return a.createElement("svg",Om({viewBox:"0 0 2000 2000",width:2500,height:2500,ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,xm,jm)}var km=a.forwardRef(Cm);n.p;function Sm(){return(Sm=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var Im=a.createElement("g",null,a.createElement("polygon",{fill:"#343434",points:"127.9611 0 125.1661 9.5 125.1661 285.168 127.9611 287.958 255.9231 212.32"}),a.createElement("polygon",{fill:"#8C8C8C",points:"127.962 0 0 212.32 127.962 287.959 127.962 154.158"}),a.createElement("polygon",{fill:"#3C3C3B",points:"127.9611 312.1866 126.3861 314.1066 126.3861 412.3056 127.9611 416.9066 255.9991 236.5866"}),a.createElement("polygon",{fill:"#8C8C8C",points:"127.962 416.9052 127.962 312.1852 0 236.5852"}),a.createElement("polygon",{fill:"#141414",points:"127.9611 287.9577 255.9211 212.3207 127.9611 154.1587"}),a.createElement("polygon",{fill:"#393939",points:"0.0009 212.3208 127.9609 287.9578 127.9609 154.1588"}));function Lm(e,t){var n=e.title,r=e.titleId,l=Nm(e,["title","titleId"]);return a.createElement("svg",Sm({width:"256px",height:"417px",viewBox:"0 0 256 417",preserveAspectRatio:"xMidYMid",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,Im)}var Bm=a.forwardRef(Lm);n.p;function Pm(){return(Pm=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var Dm=a.createElement("circle",{fill:"#989898",cx:52,cy:32,r:32}),Tm=a.createElement("path",{fill:"#FFF",d:"m46.92598,12.31703l-4.97801,18.8088l-3.42705,1.32711l-1.64691,6.17189l3.42705,-1.29514l-2.8461,10.76083l30.60893,0l2.09993,-7.98401l-18.42505,0l2.09993,-7.82412l3.3631,-1.26316l1.6469,-6.17188l-3.36309,1.29513l3.6509,-13.83611l-12.21053,0z"});function Wm(e,t){var n=e.title,r=e.titleId,l=Fm(e,["title","titleId"]);return a.createElement("svg",Pm({width:104,height:64,ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,Dm,Tm)}var Rm=a.forwardRef(Wm);n.p;function zm(){return(zm=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var Mm=a.createElement("style",{type:"text/css"},"\n\t.st0{fill:#231F20;}\n\t.st1{fill:#F4B728;}\n"),qm=a.createElement("path",{className:"st0",d:"M245.4,20C121.1,20,20,121.1,20,245.4s101.1,225.4,225.4,225.4s225.4-101.1,225.4-225.4S369.7,20,245.4,20z M245.4,433.6c-103.8,0-188.2-84.4-188.2-188.2S141.6,57.2,245.4,57.2s188.2,84.4,188.2,188.2S349.2,433.6,245.4,433.6z"}),$m=a.createElement("circle",{className:"st1",cx:245.4,cy:245.4,r:177.6}),Hm=a.createElement("polygon",{className:"st0",points:"165,315.5 165,349.9 226.5,349.9 226.5,387.6 264.3,387.6 264.3,349.9 325.8,349.9 325.8,304.4 230.4,304.4 325.8,175 325.8,140.6 264.3,140.6 264.3,103 226.5,103 226.5,140.6 165,140.6 165,186.2 260.4,186.2 "});function Vm(e,t){var n=e.title,r=e.titleId,l=Am(e,["title","titleId"]);return a.createElement("svg",zm({id:"Layer_1",x:"0px",y:"0px",viewBox:"0 0 493.3 490.2",style:{enableBackground:"new 0 0 493.3 490.2"},xmlSpace:"preserve",ref:t,"aria-labelledby":r},l),Mm,void 0===n?a.createElement("title",{id:r},"headerArtboard 7"):n?a.createElement("title",{id:r},n):null,qm,$m,Hm)}var Ym=a.forwardRef(Vm),Gm=(n.p,Object(m.a)({logo:{maxHeight:80,maxWidth:200},title:{margin:[[24,0,32,0]]},text:{margin:0},button:{marginTop:"auto",marginBottom:58},modalContent:{display:"flex",flexDirection:"column",alignItems:"center",padding:[[0,42]],flex:1}})),Zm=function(e){var t=e.code,n=e.name,a=e.onContinue,l=Gm(),i=function(e){switch(e){case"BTC":return pm;case"BCH":return Em;case"DASH":return km;case"ETH":return Bm;case"LTC":return Rm;case"ZEC":return Ym;default:return null}}(t);return r.a.createElement("div",{className:l.modalContent},r.a.createElement(i,{className:l.logo}),r.a.createElement(At,{className:l.title},"Enable ",n),r.a.createElement(Vt,{className:l.text},"You are about to enable ",n," on your system. This will allow you to use this cryptocurrency on your machines. To be able to do that, you\u2019ll have to set up all the necessary 3rd party services."),r.a.createElement(Ae,{className:l.button,onClick:a},"Start configuration"))},_m=n(528),Um=n(527),Jm=Object(m.a)({button:{margin:[["auto",0,32,"auto"]]},form:{flex:1,display:"flex",flexDirection:"column"},grid:{marginBottom:24,marginTop:12}}),Km=function(e){var t=e.validationSchema,n=e.elements,a=e.value,l=e.save,i=e.buttonLabel,o=void 0===i?"Save changes":i,c=e.buttonClass,s=e.xs,u=void 0===s?12:s,d=Jm(),m=mn.a(Um.a,jn.a((function(e){var t,n=e.code;return Object(I.a)({},n,null!==(t=a&&a[n])&&void 0!==t?t:"")})))(n),f=Ue.a(m,a);return r.a.createElement(on.d,{enableReinitialize:!0,initialValues:f,validationSchema:t,onSubmit:l},r.a.createElement(on.c,{className:d.form},r.a.createElement(_m.a,{container:!0,spacing:3,className:d.grid},n.map((function(e){var t=e.component,n=e.code,a=e.display,l=e.inputProps;return r.a.createElement(_m.a,{item:!0,xs:u,key:n},r.a.createElement(on.a,Object.assign({component:t},l,{name:n,label:a,fullWidth:!0})))}))),r.a.createElement(Ae,{className:N()(d.button,c),type:"submit"},o)))},Qm={title:{margin:[[0,0,12,0]]},subtitle:{margin:[[32,0,21,0]]},error:{color:X},button:{marginLeft:"auto"},submit:{display:"flex",flexDirection:"row",margin:[["auto",0,24]]},radioGroup:{flexDirection:"row"},radioLabel:{width:150,height:48},radio:{padding:4,margin:4},setupNew:{display:"flex",alignItems:"center",height:48},picker:{width:150}},Xm=Object(m.a)(Qm),ef={form:null,selected:null,isNew:!1,iError:!1},tf=function(e,t){switch(t.type){case"select":return{form:null,selected:t.selected,isNew:null,iError:!1};case"new":return{form:e.form,selected:null,isNew:!0,iError:!1};case"form":return{form:t.form,selected:t.form.code,isNew:!0,iError:!1};case"error":return Ue.a(e,{innerError:!0});case"reset":return ef;default:throw new Error}},nf=function(e){var t,n=e.type,l=e.name,i=e.step,c=e.error,s=e.lastStep,u=e.onContinue,d=e.filled,m=e.unfilled,f=e.getValue,p=Xm(),h=Object(a.useReducer)(tf,ef),b=Object(o.a)(h,2),g=b[0],v=g.innerError,y=g.selected,E=g.form,O=g.isNew,w=b[1];Object(a.useEffect)((function(){w({type:"reset"})}),[i]);var x=function(e,t){if(!e||!e[n])return w({type:"error"});u(e,t)},j=s?"Finish":"Next",C=null!==l&&void 0!==l?l:n,k=(t={},Object(I.a)(t,p.subtitle,!0),Object(I.a)(t,p.error,v),t);return r.a.createElement(r.a.Fragment,null,r.a.createElement(Gt,{className:p.title},Rl(n)),r.a.createElement(Go,{steps:4,currentStep:i}),r.a.createElement($t,{className:N()(k)},"Select a ",C," or set up a new one"),r.a.createElement(Hn,{options:d,value:y,className:p.radioGroup,onChange:function(e,t){w({type:"select",selected:t})},labelClassName:p.radioLabel,radioClassName:p.radio}),r.a.createElement("div",{className:p.setupNew},!Sn.a(m)&&!Cn.a(m)&&r.a.createElement(Hn,{value:O,onChange:function(e,t){w({type:"new"})},labelClassName:p.radioLabel,radioClassName:p.radio,options:[{display:"Set up new",code:!0}]}),O&&r.a.createElement(Wn,{fullWidth:!0,label:"Select ".concat(C),className:p.picker,getOptionSelected:In.a("code"),getLabel:Or.a(["display"]),options:m,onChange:function(e,t){w({type:"form",form:t})}})),E&&r.a.createElement(Km,{save:function(e){return x(Object(I.a)({},n,E.code),Object(I.a)({},E.code,e))},elements:cm[E.code].elements,validationSchema:cm[E.code].validationSchema,value:f(E.code),buttonLabel:j}),!E&&r.a.createElement("div",{className:p.submit},c&&r.a.createElement(co,null,"Failed to save"),r.a.createElement(Ae,{className:p.button,onClick:function(){return x(Object(I.a)({},n,y))}},j)))},af=function(e,t){return hr.a((function(n){return function(e){return wn.a("class",e)}(t)(n)&&function(e){return mn.a(gr.a(e),xn.a("cryptos"))}(e)(n)}))},rf=function(e,t,n,a){var r=af(a,n)(e),l=kl.a((function(e){var n=e.code,a=function(e){return t&&t[e]}(n);return!cm[n]||cm[n].validationSchema.isValidSync(a)}))(r),i=Object(o.a)(l,2);return{filled:i[0],unfilled:i[1]}},lf=function(e){var t=e.coin,n=e.onClose,l=e.accountsConfig,i=e.accounts,s=e.save,u=e.error,d=Object(a.useState)({step:0,config:{active:!0},accountsToSave:{}}),m=Object(o.a)(d,2),f=m[0],p=f.step,h=f.config,b=f.accountsToSave,g=m[1],v="Enable ".concat(t.display),y=4===p,E={filled:af(t.code,"ticker")(l)},O=rf(l,i,"wallet",t.code),w=rf(l,i,"exchange",t.code),x=rf(l,i,"zeroConf",t.code),j=function(){var e=Object(el.a)(Xr.a.mark((function e(n,a){var r,l;return Xr.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=Ue.a(h,n),l=a?Ue.a(b,a):b,!y){e.next=4;break}return e.abrupt("return",s(Kr(t.code,r),l));case 4:g({step:p+1,config:r,accountsToSave:l});case 5:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}();return r.a.createElement(po,{title:0===p?null:v,handleClose:n,width:554,open:!0},0===p&&r.a.createElement(Zm,{code:t.code,name:t.display,onContinue:function(){return j()}}),0!==p&&r.a.createElement(nf,Object.assign({step:p,error:u,lastStep:y},function(){switch(p){case 1:return Object(c.a)({type:"ticker"},E);case 2:return Object(c.a)({type:"wallet"},O);case 3:return Object(c.a)({type:"exchange"},w);case 4:return Object(c.a)({type:"zeroConf",name:"zero conf"},x);default:return null}}(),{onContinue:j,getValue:function(e){return On.a(wn.a("code",e))(i)}})))},of=function(e){return hr.a((function(t){return t.class===e}))},cf=function(e){var t=e.id;return hr.a((function(e){return gr.a(t)(e.cryptos)}))},sf=hn.d().shape({ticker:hn.e().required(),wallet:hn.e().required(),exchange:hn.e().required(),zeroConf:hn.e().required()}),uf=function(e,t,n){var a=arguments.length>3&&void 0!==arguments[3]&&arguments[3],r=a?11:0,l=function(t){return mn.a(xn.a(["display"]),On.a(wn.a("code",t)))(e)},i=function(e){return of(e)(t||[])},o=function(e){return function(t){return mn.a(xn.a("display"),On.a(wn.a("code",t)))(i(e))}},c=Fr.a((function(e,t){return cf(t)(i(e))}));return[{name:"id",header:"Cryptocurrency",width:180-r,view:l,size:"sm",editable:!1},{name:"ticker",size:"sm",stripe:!0,view:o("ticker"),width:190-r,input:_n,inputProps:{options:c("ticker"),valueProp:"code",getLabel:Or.a(["display"]),optionsLimit:null}},{name:"wallet",size:"sm",stripe:!0,view:o("wallet"),width:190-r,input:_n,inputProps:{options:c("wallet"),valueProp:"code",getLabel:Or.a(["display"]),optionsLimit:null,onChange:n}},{name:"exchange",size:"sm",stripe:!0,view:o("exchange"),width:190-r,input:_n,inputProps:{options:c("exchange"),valueProp:"code",getLabel:Or.a(["display"]),optionsLimit:null,onChange:n}},{name:"zeroConf",size:"sm",stripe:!0,view:o("zeroConf"),input:_n,width:190-r,inputProps:{options:c("zeroConf"),valueProp:"code",getLabel:Or.a(["display"]),optionsLimit:null,onChange:n}}]},df=n(529),mf=function(e,t,n){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[];return hr.a((function(e){return bc.a(e.name,t)}),ff(e,n,a))},ff=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],a=function(e,t,n){return function(a){return e?mn.a(xn.a(t),On.a(wn.a(null!==n&&void 0!==n?n:"code",a)))(e):""}},r=function(e){return function(t){return t?mn.a(hc.a(", "),jn.a(a(e,"code")))(t):t}},l=jn.a((function(e){return e.machine}),n),i=function(e){return df.a((function(e,t){return e.deviceId===t}),e,l)},o=e(["machines"]),c=e(["countries"]),s=e(["currencies"]),u=e(["languages"]),d=e(["cryptoCurrencies"]),m=function(e){var t=On.a(wn.a("deviceId",e.machine))(o);return t?[t]:[]};return[{name:"machine",width:200,size:"sm",view:a(o,"name","deviceId"),input:_n,inputProps:{options:function(e){return br.a(m(e))(i(o))},valueProp:"deviceId",getLabel:Or.a(["name"])}},{name:"country",width:200,size:"sm",view:a(c,"display"),input:_n,inputProps:{options:c,valueProp:"code",getLabel:Or.a(["display"])}},{name:"fiatCurrency",width:150,size:"sm",view:a(s,"code"),input:_n,inputProps:{options:s,valueProp:"code",getLabel:Or.a(["code"])}},{name:"languages",width:240,size:"sm",view:r(u),input:_n,inputProps:{options:u,valueProp:"code",getLabel:Or.a(["display"]),multiple:!0}},{name:"cryptoCurrencies",width:290,size:"sm",view:r(d),input:_n,inputProps:{options:d,valueProp:"code",getLabel:Or.a(["code"]),multiple:!0,optionsLimit:null,onChange:t}}]},pf=function(e,t){var n=Or.a(gc.a,e);return mf(n,["country","fiatCurrency","languages","cryptoCurrencies"],t)},hf=function(e,t,n){var a=Or.a(gc.a,e);return mf(a,["machine","country","languages","cryptoCurrencies"],n,t)},bf=hn.d().shape({country:hn.e().label("Country").required(),fiatCurrency:hn.e().label("Fiat Currency").required(),languages:hn.a().label("Languages").required().max(4),cryptoCurrencies:hn.a().label("Crypto Currencies").required()}),gf=hn.d().shape({machine:hn.e().label("Machine").required(),country:hn.e().label("Country").required(),languages:hn.a().label("Languages").required(),cryptoCurrencies:hn.a().label("Crypto Currencies").required()}),vf={country:"",fiatCurrency:"",languages:[],cryptoCurrencies:[]},yf={machine:"",country:"",languages:[],cryptoCurrencies:[]};function Ef(){var e=Object(tn.a)(["\n mutation Save($config: JSONObject) {\n saveConfig(config: $config)\n }\n"]);return Ef=function(){return e},e}function Of(){var e=Object(tn.a)(["\n query getData {\n config\n accounts\n accountsConfig {\n code\n display\n class\n cryptos\n }\n currencies {\n code\n display\n }\n countries {\n code\n display\n }\n cryptoCurrencies {\n code\n display\n }\n languages {\n code\n display\n }\n machines {\n name\n deviceId\n }\n }\n"]);return Of=function(){return e},e}var wf=Object(m.a)({rightAligned:{marginTop:"20px",marginLeft:"auto",marginBottom:"20px"},rightLink:{marginLeft:"20px"}}),xf=sn()(Of()),jf=sn()(Ef()),Cf=function(e){var t=e.open,n=e.close,a=e.save,l=wf();return r.a.createElement(po,{title:"Change fiat currency?",handleClose:n,width:450,height:310,open:t},r.a.createElement(Vt,null,"Please note that all values you set that were based on your prior fiat currency are still the same. If you need to adjust these to reflect the new fiat currency (such as minimum transaction amounts, fixed fees, and compliance triggers, for example), please do so now."),r.a.createElement(Vt,null,"Also, if you have cash-out enabled, you must define new dispenser bill counts for the new currency for cash-out on the new currency to work."),r.a.createElement("div",{className:l.rightAligned},r.a.createElement(ut,{onClick:n,color:"secondary"},"Cancel"),r.a.createElement(ut,{className:l.rightLink,onClick:a,color:"primary"},"Save")))},kf=function(e){var t,n,l,i,c,s,u=e.name,d=Object(a.useState)(!1),m=Object(o.a)(d,2),f=m[0],p=m[1],h=Object(a.useState)(null),b=Object(o.a)(h,2),g=b[0],v=b[1],y=Object(a.useState)(!1),E=Object(o.a)(y,2),O=E[0],w=E[1],x=Object(a.useState)(!1),j=Object(o.a)(x,2),C=j[0],k=j[1],S=Object(nn.c)(xf).data,N=Object(nn.b)(jf,{onCompleted:function(){return p(!1)},refetchQueries:function(){return["getData"]}}),I=Object(o.a)(N,2),L=I[0],B=I[1].error,P=Object(a.useState)(null),F=Object(o.a)(P,2),D=F[0],T=F[1],W=(null===S||void 0===S?void 0:S.config)&&Jr(u)(S.config),R=(null===S||void 0===S?void 0:S.config)&&Jr(Ar)(S.config),z=null===S||void 0===S?void 0:S.accountsConfig,A=null!==(t=null===S||void 0===S?void 0:S.accounts)&&void 0!==t?t:[],M=null!==(n=null===S||void 0===S?void 0:S.cryptoCurrencies)&&void 0!==n?n:[],q=W&&!Sn.a(W)?W:vf,$=null!==(l=q.overrides)&&void 0!==l?l:[],H=function(e){return T(null),L({variables:{config:e}})},V=function(e,t,n){var a=yc.a(t,e)[0];if(!a)return n(t);var r=Jr(a)(R);if(!sf.isValidSync(r))return v((function(){return function(){return n(t)}})),void p(a);n(t)};return r.a.createElement(r.a.Fragment,null,r.a.createElement(Cf,{open:D,close:function(){return T(null)},save:function(){return D&&H(D)}}),r.a.createElement(uo,{title:"Locales"}),r.a.createElement(pc,null,r.a.createElement(Ki,{title:"Default settings",error:null===B||void 0===B?void 0:B.message,titleLg:!0,name:"locale",enableEdit:!0,initialValues:q,save:function(e){var t=Kr(u)(e.locale[0]);return W.fiatCurrency&&t.locale_fiatCurrency!==W.fiatCurrency?T(t):H(t)},validationSchema:bf,data:uc.a(q),elements:pf(S,V),setEditing:function(e,t){return w(t)},forceDisable:C})),r.a.createElement(pc,null,r.a.createElement(Ki,{error:null===B||void 0===B?void 0:B.message,title:"Overrides",titleLg:!0,name:"overrides",enableDelete:!0,enableEdit:!0,enableCreate:!0,initialValues:yf,save:function(e){var t=Kr(u)(e);return L({variables:{config:t}})},validationSchema:gf,data:null!==$&&void 0!==$?$:[],elements:hf(S,$,V),disableAdd:mn.a(Sn.a,yc.a)(null!==(i=null===S||void 0===S?void 0:S.machines.map((function(e){return e.deviceId})))&&void 0!==i?i:[],null!==(c=null===$||void 0===$?void 0:$.map((function(e){return e.machine})))&&void 0!==c?c:[]),setEditing:function(e,t){return k(t)},forceDisable:O})),f&&r.a.createElement(lf,{coin:On.a(wn.a("code",f))(M),onClose:function(){return p(!1)},save:function(e){return H(Kr(Ar)(e)).then((function(e){return g(),v(null),e}))},error:null===B||void 0===B?void 0:B.message,cryptoCurrencies:M,userAccounts:null===S||void 0===S||null===(s=S.config)||void 0===s?void 0:s.accounts,accounts:A,accountsConfig:z}))},Sf=n(335),Nf=n.n(Sf);function If(){return(If=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var Bf=a.createElement("desc",null,"Created with Sketch."),Pf=a.createElement("g",{id:"Symbols",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},a.createElement("g",{id:"pop-up/action/download-logs/date-range-copy-3",transform:"translate(-117.000000, -116.000000)",stroke:"#1B2559",strokeWidth:2},a.createElement("g",{id:"arrow-download-logs",transform:"translate(128.500000, 124.500000) rotate(-90.000000) translate(-128.500000, -124.500000) translate(121.000000, 114.000000)"},a.createElement("polyline",{id:"Path-3",points:"0 13.3571429 7.14285714 20.5 14.2857143 13.3571429"}),a.createElement("line",{x1:7.14285714,y1:.142857143,x2:7.14285714,y2:20.1428571,id:"Path-4"}))));function Ff(e,t){var n=e.title,r=e.titleId,l=Lf(e,["title","titleId"]);return a.createElement("svg",If({width:"23px",height:"17px",viewBox:"0 0 23 17",ref:t,"aria-labelledby":r},l),void 0===n?a.createElement("title",{id:r},"arrow download logs"):n?a.createElement("title",{id:r},n):null,Bf,Pf)}var Df=a.forwardRef(Ff);n.p;function Tf(){return(Tf=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var Rf=a.createElement("desc",null,"Created with Sketch."),zf=a.createElement("g",{id:"icon/button/download/white",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},a.createElement("g",{id:"icon/sf-small/wizzard",stroke:"#FFFFFF"},a.createElement("polyline",{id:"Path-3",points:"3.6 5.4 6 7.8 8.4 5.4"}),a.createElement("line",{x1:6,y1:.5,x2:6,y2:7.4,id:"Path-4"}),a.createElement("path",{d:"M0,10 L0,10 C0,10.9942 0.8058,11.8 1.8,11.8 L10.2,11.8 C11.1942,11.8 12,10.9942 12,10",id:"Stroke-1"})));function Af(e,t){var n=e.title,r=e.titleId,l=Wf(e,["title","titleId"]);return a.createElement("svg",Tf({width:"12px",height:"12px",viewBox:"0 0 12 12",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,Rf,zf)}var Mf=a.forwardRef(Af);n.p;function qf(){return(qf=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var Hf=a.createElement("desc",null,"Created with Sketch."),Vf=a.createElement("g",{id:"icon/button/download/zodiac",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},a.createElement("g",{id:"icon/sf-small/wizzard",stroke:"#1B2559"},a.createElement("polyline",{id:"Path-3",points:"3.6 5.4 6 7.8 8.4 5.4"}),a.createElement("line",{x1:6,y1:.5,x2:6,y2:7.4,id:"Path-4"}),a.createElement("path",{d:"M0,10 L0,10 C0,10.9942 0.8058,11.8 1.8,11.8 L10.2,11.8 C11.1942,11.8 12,10.9942 12,10",id:"Stroke-1"})));function Yf(e,t){var n=e.title,r=e.titleId,l=$f(e,["title","titleId"]);return a.createElement("svg",qf({width:"12px",height:"12px",viewBox:"0 0 12 12",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,Hf,Vf)}var Gf=a.forwardRef(Yf);n.p;function Zf(){return(Zf=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var Uf=a.createElement("desc",null,"Created with Sketch."),Jf=a.createElement("g",{id:"Symbols",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd"},a.createElement("g",{id:"pop-up/action/download-logs/date-range-copy-2",transform:"translate(-20.000000, -187.000000)"},a.createElement("g",{id:"icon/sf-contain-b-copy-5",transform:"translate(30.000000, 197.000000) rotate(-270.000000) translate(-30.000000, -197.000000) translate(20.000000, 187.000000)"},a.createElement("g",{id:"icon/sf-small/wizzard",strokeLinecap:"round",strokeLinejoin:"round"},a.createElement("g",{transform:"translate(6.666667, 6.000000)",id:"Group"},a.createElement("g",null,a.createElement("polyline",{id:"Path-3",stroke:"#1B2559",strokeWidth:2,points:"0 4.83333333 3.33333333 8.16666667 6.66666667 4.83333333"}),a.createElement("line",{x1:3.33333333,y1:.25,x2:3.33333333,y2:6.5,id:"Path-4",stroke:"#1B2559",strokeWidth:2})))))));function Kf(e,t){var n=e.title,r=e.titleId,l=_f(e,["title","titleId"]);return a.createElement("svg",Zf({width:"20px",height:"20px",viewBox:"0 0 20 20",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,Uf,Jf)}var Qf=a.forwardRef(Kf);n.p;function Xf(){return(Xf=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var tp=a.createElement("desc",null,"Created with Sketch."),np=a.createElement("g",{id:"Symbols",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd"},a.createElement("g",{id:"pop-up/action/download-logs/date-range-copy-2",transform:"translate(-20.000000, -187.000000)"},a.createElement("g",{id:"icon/sf-contain-b-copy-5",transform:"translate(30.000000, 197.000000) rotate(270.000000) translate(-30.000000, -197.000000) translate(20.000000, 187.000000)"},a.createElement("g",{id:"icon/sf-small/wizzard",strokeLinecap:"round",strokeLinejoin:"round"},a.createElement("g",{transform:"translate(6.666667, 6.000000)",id:"Group"},a.createElement("g",null,a.createElement("polyline",{id:"Path-3",stroke:"#1B2559",strokeWidth:2,points:"0 4.83333333 3.33333333 8.16666667 6.66666667 4.83333333"}),a.createElement("line",{x1:3.33333333,y1:.25,x2:3.33333333,y2:6.5,id:"Path-4",stroke:"#1B2559",strokeWidth:2})))))));function ap(e,t){var n=e.title,r=e.titleId,l=ep(e,["title","titleId"]);return a.createElement("svg",Xf({width:"20px",height:"20px",viewBox:"0 0 20 20",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,tp,np)}var rp=a.forwardRef(ap),lp=(n.p,{wrapper:{height:26,display:"flex",alignItems:"center",justifyContent:"center",position:"relative",overflow:"hidden"},button:{outline:"none",extend:Ee.label1,border:"none",cursor:"pointer",backgroundColor:"transparent",color:M,zIndex:2},lowerBound:{left:"50%"},upperBound:{right:"50%"},selected:{width:26,height:26,display:"flex",alignItems:"center",justifyContent:"center",backgroundColor:P,borderRadius:"50%",position:"absolute",zIndex:1},between:{position:"absolute",width:"100%",height:"100%",zIndex:0,backgroundColor:F},disabled:{color:Z,cursor:"default"}}),ip=Object(m.a)(lp),op=function(e){var t,n,a,l=e.isLowerBound,i=e.isUpperBound,o=e.isBetween,c=e.isDisabled,s=e.children,u=(Object(L.a)(e,["isLowerBound","isUpperBound","isBetween","isDisabled","children"]),ip()),d=l||i,m=(t={},Object(I.a)(t,u.between,o&&!(l&&i)),Object(I.a)(t,u.lowerBound,l&&!i),Object(I.a)(t,u.upperBound,i&&!l),t),f=(n={},Object(I.a)(n,u.wrapper,!0),Object(I.a)(n,u.selected,d),n),p=(a={},Object(I.a)(a,u.button,!0),Object(I.a)(a,u.disabled,c),a);return r.a.createElement("div",{className:u.wrapper},r.a.createElement("div",{className:N()(m)}),r.a.createElement("div",{className:N()(f)},r.a.createElement("button",{className:N()(p)},s)))},cp={wrapper:{display:"flex",flexDirection:"column",alignItems:"center"},button:{outline:"none"},navbar:{extend:Ee.p,display:"flex",justifyContent:"space-between",alignItems:"center",width:"100%",padding:[[15,15]],color:M,"& button":{display:"flex",alignItems:"center",padding:0,border:"none",backgroundColor:T,cursor:"pointer",borderRadius:"50%",width:20,height:20,position:"relative",overflow:"hidden","& svg":{position:"absolute",left:0}}},table:{borderCollapse:"collapse",width:"100%",color:M,"& tr":{"&:first-child":{paddingLeft:5},"&:last-child":{paddingRight:5}},"& th, & td":{margin:0,padding:[[3,0,3,0]]},"& th":{extend:Ee.label2}}},sp=Object(m.a)(cp),up=function(e){var t=e.minDate,n=e.maxDate,l=e.handleSelect,i=Object(L.a)(e,["minDate","maxDate","handleSelect"]),c=Object(a.useState)(Mu()()),s=Object(o.a)(c,2),u=s[0],d=s[1],m=sp(),f=Mu.a.weekdaysMin().map((function(e){return e.slice(0,1)})),p=function(e){var t=Mu()(e).subtract(1,"month"),n=Co.a(0,Mu()(e).startOf("month").weekday()).reverse(),a=jn.a((function(e){return Mu()(t).endOf("month").subtract(e,"days")}))(n),r=Co.a(0,function(e){return Number.parseInt(Mu()(e).endOf("month").format("D"))}(e)),l=jn.a((function(t){return Mu()(e).startOf("month").add(t,"days")}))(r),i=Mu()(e).add(1,"month"),o=Co.a(0,42-a.length-l.length),c=jn.a((function(e){return Mu()(i).startOf("month").add(e,"days")}))(o);return br.a(br.a(a,l),c)};return r.a.createElement("div",{className:m.wrapper},r.a.createElement("div",{className:m.navbar},r.a.createElement("button",{className:m.button,onClick:function(){return function(e){var n=Mu()(e).subtract(1,"month");d(t?n.isSameOrAfter(t,"month")?n:u:n)}(u)}},r.a.createElement(Qf,null)),r.a.createElement("span",null,"".concat(u.format("MMMM")," ").concat(u.format("YYYY"))),r.a.createElement("button",{className:m.button,onClick:function(){return function(e){var t=Mu()(e).add(1,"month");d(n?t.isSameOrBefore(n,"month")?t:u:t)}(u)}},r.a.createElement(rp,null))),r.a.createElement("table",{className:m.table},r.a.createElement("thead",null,r.a.createElement("tr",null,f.map((function(e,t){return r.a.createElement("th",{key:t},e)})))),r.a.createElement("tbody",null,Co.a(1,8).map((function(e,a){return r.a.createElement("tr",{key:a},function(e,t){return p(e).slice(7*t-7,7*t)}(u,e).map((function(e,a){return r.a.createElement("td",{key:a,onClick:function(){return l(e,t,n)}},r.a.createElement(op,{isDisabled:n&&e.isAfter(n,"day")||t&&e.isBefore(t,"day"),isLowerBound:e.isSame(i.from,"day"),isUpperBound:e.isSame(i.to,"day"),isBetween:e.isBetween(i.from,i.to,"day",[])},e.format("D")))})))})))))},dp=Object(m.a)({wrapper:{backgroundColor:"white",borderRadius:10}}),mp=function(e){var t=e.minDate,n=e.maxDate,l=e.className,i=e.onRangeChange,c=Object(a.useState)(null),s=Object(o.a)(c,2),u=s[0],d=s[1],m=Object(a.useState)(null),f=Object(o.a)(m,2),p=f[0],h=f[1];Object(a.useEffect)((function(){i(u,p)}),[u,i,p]);var b=dp();return r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:N()(b.wrapper,l)},r.a.createElement(up,{from:u,to:p,minDate:t,maxDate:n,handleSelect:function(e,t,n){if(!(n&&e.isAfter(n,"day")||t&&e.isBefore(t,"day")))return u&&!p&&e.isBefore(u,"day")?(h(u),void d(e)):void(u&&!p&&e.isSameOrAfter(u,"day")?h(e):(d(e),h(null)))}})))},fp=Ee.label1,pp=Ee.h4,hp={wrapper:{height:46,width:99},container:{display:"flex"},monthWeekDayContainer:{display:"flex",flexDirection:"column"},label:{extend:fp,lineHeight:1.33,color:M},bigNumber:{extend:Ee.info1,lineHeight:1,marginRight:7},monthYear:{extend:Ee.label2,lineHeight:1.17,color:M},weekDay:{extend:fp,lineHeight:1.33,color:J}},bp=Object(m.a)(hp),gp=function(e){var t=e.date,n=e.children,a=(Object(L.a)(e,["date","children"]),bp());return r.a.createElement("div",{className:a.wrapper},r.a.createElement("div",{className:a.label},n),t&&r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:a.container},r.a.createElement("div",{className:a.bigNumber},t.format("D")),r.a.createElement("div",{className:a.monthWeekDayContainer},r.a.createElement("span",{className:a.monthYear},"".concat(t.format("MMM")," ").concat(t.format("YYYY"))),r.a.createElement("span",{className:a.weekDay},t.format("dddd"))))))},vp={popoverContent:{width:280},popoverHeader:{extend:pp,padding:[[15,15,0,15]]},radioButtonsContainer:{padding:[[5,15,5,15]]},radioButtons:{display:"flex",justifyContent:"space-between",flexDirection:"row",color:M},dateRangePickerShowing:{display:"block",height:"100%"},dateRangePickerHidden:{display:"none",height:0},download:{padding:[[10,15]]},dateContainerWrapper:{display:"flex",justifyContent:"space-between",alignItems:"center",position:"relative",backgroundColor:T,padding:[[0,15]],minHeight:70},arrowContainer:{position:"absolute",left:125,top:26},arrow:{margin:"auto"}},yp=Object(m.a)(vp),Ep="all",Op="range",wp=function(e){var t,n=e.name,l=e.query,i=e.args,s=e.title,u=e.getLogs,d=Object(a.useState)(Ep),m=Object(o.a)(d,2),f=m[0],p=m[1],h=Object(a.useState)({from:null,until:null}),b=Object(o.a)(h,2),g=b[0],v=b[1],y=Object(a.useState)(null),E=Object(o.a)(y,2),O=E[0],w=E[1],x=Object(nn.a)(l,{onCompleted:function(e){return L(u(e),g)}}),j=Object(o.a)(x,1)[0],C=yp(),k=(t={},Object(I.a)(t,C.dateRangePickerShowing,f===Op),Object(I.a)(t,C.dateRangePickerHidden,f===Ep),t),S=Object(a.useCallback)((function(e,t){v({from:e,until:t})}),[v]),L=function(e,t){var a=function(e){return Mu()(e).format("YYYY-MM-DD_HH-mm")},r=new window.Blob([e],{type:"text/plain;charset=utf-8"});Nf.a.saveAs(r,f===Ep?"".concat(a(new Date),"_").concat(n,".csv"):"".concat(a(t.from),"_").concat(a(t.until),"_").concat(n,".csv"))},B=[{display:"All logs",code:Ep},{display:"Date range",code:Op}],P=Boolean(O),F=P?"date-range-popover":void 0;return r.a.createElement(xr.a,{onClickAway:function(){w(null)}},r.a.createElement("div",null,r.a.createElement(Ge,{Icon:Gf,InverseIcon:Mf,onClick:function(e){w(O?null:e.currentTarget)},variant:"contained"}),r.a.createElement(Je,{id:F,open:P,anchorEl:O,placement:"bottom"},r.a.createElement("div",{className:C.popoverContent},r.a.createElement("div",{className:C.popoverHeader},s),r.a.createElement("div",{className:C.radioButtonsContainer},r.a.createElement(Hn,{name:"logs-select",value:f,options:B,ariaLabel:"logs-select",onChange:function(e){var t=Or.a(["target","value"])(e);p(t),t===Ep&&v({from:null,until:null})},className:C.radioButtons})),f===Op&&r.a.createElement("div",{className:N()(k)},r.a.createElement("div",{className:C.dateContainerWrapper},g&&r.a.createElement(r.a.Fragment,null,r.a.createElement(gp,{date:g.from},"From"),r.a.createElement("div",{className:C.arrowContainer},r.a.createElement(Df,{className:C.arrow})),r.a.createElement(gp,{date:g.until},"To"))),r.a.createElement(mp,{maxDate:Mu()(),onRangeChange:S})),r.a.createElement("div",{className:C.download},r.a.createElement(ut,{color:"primary",onClick:function(){return function(e,t,n){f===Ep&&n({variables:Object(c.a)({},t)}),e&&e.from&&(e.from&&!e.until&&(e.until=Mu()()),f===Op&&n({variables:Object(c.a)(Object(c.a)({},t),{},{from:e.from,until:e.until})}))}(g,i,j)}},"Download"))))))},xp=Object(m.a)({table:{tableLayout:"fixed",borderCollapse:"separate",borderSpacing:"0 0"}}),jp=Object(a.memo)((function(e){var t=e.className,n=e.children,a=Object(L.a)(e,["className","children"]),l=xp();return r.a.createElement("table",Object.assign({},a,{className:N()(l.table,t)}),n)})),Cp=Object(a.memo)((function(e){var t=e.children,n=Object(L.a)(e,["children"]);return r.a.createElement("tbody",n,t)})),kp=Object(m.a)({td:{padding:[[0,24]]},alignRight:{textAlign:"right"}}),Sp=Object(a.memo)((function(e){var t,n=e.colspan,a=e.rightAlign,l=e.className,i=e.children,o=Object(L.a)(e,["colspan","rightAlign","className","children"]),c=kp(),s=(t={},Object(I.a)(t,c.td,!0),Object(I.a)(t,c.alignRight,a),t);return r.a.createElement("td",Object.assign({colSpan:n,className:N()(s,l)},o),i)})),Np=Object(a.memo)((function(e){var t=e.children,n=Object(L.a)(e,["children"]);return r.a.createElement("thead",n,t)})),Ip=Ee.tl2,Lp=Object(m.a)({th:{extend:Ip,backgroundColor:ge,height:pe,textAlign:"left",color:R,padding:"0 ".concat(24,"px")},alignRight:{textAlign:"right"}}),Bp=Object(a.memo)((function(e){var t,n=e.rightAlign,a=e.children,l=e.className,i=Object(L.a)(e,["rightAlign","children","className"]),o=Lp(),c=(t={},Object(I.a)(t,o.th,!0),Object(I.a)(t,o.alignRight,n),t);return r.a.createElement("th",Object.assign({},i,{className:N()(c,l)}),a)})),Pp=Ee.info2,Fp=Ee.p,Dp=Object(m.a)({tr:{extend:Fp,padding:4,height:he,backgroundColor:"#ffffff"},lg:{extend:Pp,height:76},sm:{height:30},error:{backgroundColor:ve},success:{backgroundColor:"#ecfbef"}}),Tp=Object(a.memo)((function(e){var t,n=e.className,a=e.children,l=e.header,i=e.error,o=e.success,c=e.size,s=void 0===c?"sm":c,u=Object(L.a)(e,["className","children","header","error","success","size"]),d=Dp(),m=(t={},Object(I.a)(t,d.tr,!l),Object(I.a)(t,d.sm,!l&&"sm"===s),Object(I.a)(t,d.lg,!l&&"lg"===s),Object(I.a)(t,d.error,i),Object(I.a)(t,d.success,o),t);return r.a.createElement("tr",Object.assign({className:N()(m,n)},u),a)}));function Wp(){var e=Object(tn.a)(["\n query MachineLogs($deviceId: ID!, $limit: Int, $from: Date, $until: Date) {\n machineLogs(\n deviceId: $deviceId\n limit: $limit\n from: $from\n until: $until\n ) {\n logLevel\n id\n timestamp\n message\n }\n }\n"]);return Wp=function(){return e},e}function Rp(){var e=Object(tn.a)(["\n query MachineLogs($deviceId: ID!, $limit: Int, $from: Date, $until: Date) {\n machineLogsCsv(\n deviceId: $deviceId\n limit: $limit\n from: $from\n until: $until\n )\n }\n"]);return Rp=function(){return e},e}function zp(){var e=Object(tn.a)(["\n {\n machines {\n name\n deviceId\n }\n }\n"]);return zp=function(){return e},e}var Ap=Object(m.a)(Iu),Mp=sn()(zp()),qp=sn()(Rp()),$p=sn()(Wp()),Hp=function(){var e,t=Ap(),n=Object(a.useState)(null),l=Object(o.a)(n,2),i=l[0],c=l[1],s=Object(a.useState)(null),u=Object(o.a)(s,2),d=u[0],m=u[1],f=null===i||void 0===i?void 0:i.deviceId,p=Object(nn.c)(Mp).data,h=Object(nn.c)($p,{variables:{deviceId:f,limit:500},skip:!i,onCompleted:function(){return m("")}}).data;(null===p||void 0===p||null===(e=p.machines)||void 0===e?void 0:e.length)&&!i&&c(null===p||void 0===p?void 0:p.machines[0]);return r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:t.titleWrapper},r.a.createElement("div",{className:t.titleAndButtonsContainer},r.a.createElement(gn,null,"Machine Logs"),h&&r.a.createElement("div",{className:t.buttonsWrapper},r.a.createElement(wp,{title:"Download logs",name:"machine-logs",query:qp,args:{deviceId:f},getLogs:function(e){return Or.a(["machineLogsCsv"])(e)}}),r.a.createElement(Zt,null,d)))),r.a.createElement("div",{className:t.wrapper},r.a.createElement(xa,{displayName:function(e){return e.name},data:(null===p||void 0===p?void 0:p.machines)||[],isSelected:function(e){return Or.a(["deviceId"])(i)===e.deviceId},onClick:c}),r.a.createElement("div",{className:t.tableWrapper},r.a.createElement(jp,{className:t.table},r.a.createElement(Np,null,r.a.createElement(Tp,{header:!0},r.a.createElement(Bp,{className:t.dateColumn},"Date"),r.a.createElement(Bp,{className:t.levelColumn},"Level"),r.a.createElement(Bp,{className:t.fillColumn}))),r.a.createElement(Cp,null,h&&h.machineLogs.map((function(e,t){return r.a.createElement(Tp,{key:t,size:"sm"},r.a.createElement(Sp,null,(n=e.timestamp,Mu()(n).format("YYYY-MM-DD HH:mm"))),r.a.createElement(Sp,null,e.logLevel),r.a.createElement(Sp,null,e.message));var n})))))))};function Vp(){var e=Object(tn.a)(["\n mutation MachineAction(\n $deviceId: ID!\n $action: MachineAction!\n $cassette1: Int!\n $cassette2: Int!\n ) {\n machineAction(\n deviceId: $deviceId\n action: $action\n cassette1: $cassette1\n cassette2: $cassette2\n ) {\n deviceId\n cassette1\n cassette2\n }\n }\n"]);return Vp=function(){return e},e}function Yp(){var e=Object(tn.a)(["\n query getData {\n machines {\n name\n id: deviceId\n cassette1\n cassette2\n }\n config\n }\n"]);return Yp=function(){return e},e}var Gp=Object(m.a)({cashbox:{width:80,height:36}}),Zp=hn.d().shape({name:hn.e().required(),cassette1:hn.c().label("Cassette 1 (top)").required().integer().min(0).max(500),cassette2:hn.c().label("Cassette 2 (bottom)").required().integer().min(0).max(500)}),_p=sn()(Yp()),Up=sn()(Vp()),Jp=function(){var e=Gp(),t=Object(nn.c)(_p).data,n=Object(nn.b)(Up,{refetchQueries:function(){return["getData"]}}),a=Object(o.a)(n,2),l=a[0],i=a[1].error,c=(null===t||void 0===t?void 0:t.config)&&Jr("cashOut")(t.config),s=(null===t||void 0===t?void 0:t.config)&&Jr("locale")(t.config),u=null===s||void 0===s?void 0:s.fiatCurrency,d=function(e){return Jr(e)(c)},m=function(e){var t=e.id;return!d(t).active},f=[{name:"name",header:"Machine",width:254,view:function(e){return r.a.createElement(r.a.Fragment,null,e)},input:function(e){var t=e.field.value;return r.a.createElement(r.a.Fragment,null,t)}},{name:"cassette1",header:"Cassette 1 (Top)",width:265,stripe:!0,view:function(t,n){var a,l=n.id;return r.a.createElement(mi,{className:e.cashbox,denomination:null===(a=d(l))||void 0===a?void 0:a.top,currency:{code:u},notes:t})},input:Un,inputProps:{decimalPlaces:0}},{name:"cassette2",header:"Cassette 2 (Bottom)",width:265,stripe:!0,view:function(t,n){var a,l=n.id;return r.a.createElement(mi,{className:e.cashbox,denomination:null===(a=d(l))||void 0===a?void 0:a.bottom,currency:{code:u},notes:t})},input:Un,inputProps:{decimalPlaces:0}}];return r.a.createElement(r.a.Fragment,null,r.a.createElement(uo,{title:"Cash Cassettes"}),r.a.createElement(Ki,{error:null===i||void 0===i?void 0:i.message,name:"cashboxes",enableEdit:!0,stripeWhen:m,disableRowEdit:m,elements:f,data:t&&t.machines,save:function(){for(var e=arguments.length,t=new Array(e),n=0;n=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var Xp=a.createElement("rect",{width:12,height:12,rx:3,ry:3,fill:"#ff7311"});function eh(e,t){var n=e.title,r=e.titleId,l=Qp(e,["title","titleId"]);return a.createElement("svg",Kp({width:12,height:12,viewBox:"0 0 12 12",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,Xp)}var th=a.forwardRef(eh);n.p;function nh(){return(nh=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var rh=a.createElement("rect",{width:12,height:12,rx:3,ry:3,fill:"#ff584a"});function lh(e,t){var n=e.title,r=e.titleId,l=ah(e,["title","titleId"]);return a.createElement("svg",nh({width:12,height:12,viewBox:"0 0 12 12",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,rh)}var ih=a.forwardRef(lh),oh=(n.p,n(532)),ch=n(531),sh=Object(m.a)({dialogContent:{width:434,padding:16,paddingRight:28},dialogTitle:{padding:16,paddingRight:12,display:"flex","justify-content":"space-between","& > h4":{margin:0},"& > button":{padding:0,marginTop:-4}},dialogActions:{padding:32,paddingTop:16}}),uh=function(e){var t=e.children,n=e.onClose,a=sh();return r.a.createElement("div",{className:a.dialogTitle},t,n&&r.a.createElement(lt,{size:16,"aria-label":"close",onClick:n},r.a.createElement(Ba,null)))},dh=Object(a.memo)((function(e){var t=e.title,n=void 0===t?"Confirm action":t,l=e.errorMessage,i=void 0===l?"This action requires confirmation":l,c=e.open,s=e.toBeConfirmed,u=e.saveButtonAlwaysEnabled,d=void 0!==u&&u,m=e.message,f=e.confirmationMessage,p=void 0===f?"Write '".concat(s,"' to confirm this action"):f,h=e.onConfirmed,b=e.onDissmised,g=e.initialValue,v=void 0===g?"":g,y=Object(L.a)(e,["title","errorMessage","open","toBeConfirmed","saveButtonAlwaysEnabled","message","confirmationMessage","onConfirmed","onDissmised","initialValue"]),E=sh(),O=Object(a.useState)(v),w=Object(o.a)(O,2),x=w[0],j=w[1],C=Object(a.useState)(!1),k=Object(o.a)(C,2),S=k[0],N=k[1],I=!d&&s!==x||""===x;return r.a.createElement(an.a,Object.assign({open:c,"aria-labelledby":"form-dialog-title"},y),r.a.createElement(uh,{id:"customized-dialog-title",onClose:function(){j(""),N(!1),b()}},r.a.createElement($t,null,n)),i&&r.a.createElement(uh,null,r.a.createElement(co,null,i.split(":").map((function(e){return r.a.createElement(r.a.Fragment,null,e,r.a.createElement("br",null))})))),r.a.createElement(rn.a,{className:E.dialogContent},m&&r.a.createElement(Vt,null,m),r.a.createElement(Tn,{label:p,name:"confirm-input",autoFocus:!0,id:"confirm-input",type:"text",size:"sm",fullWidth:!0,value:x,touched:{},error:S,InputLabelProps:{shrink:!0},onChange:function(e){return j(e.target.value)},onBlur:function(){return N(I)}})),r.a.createElement(ch.a,{className:E.dialogActions},r.a.createElement(Ae,{color:"green",disabled:I,onClick:function(){return h(x)}},"Confirm")))}));function mh(){return(mh=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var ph=a.createElement("desc",null,"Created with Sketch."),hh=a.createElement("g",{id:"icon/button/edit/white",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},a.createElement("path",{d:"M0,10 L0,10 C0,10.9942 0.8058,11.8 1.8,11.8 L10.2,11.8 C11.1942,11.8 12,10.9942 12,10",id:"Stroke-1",stroke:"#FFFFFF"}),a.createElement("polygon",{id:"Stroke-3",stroke:"#FFFFFF",points:"3 6.86666667 8.86666667 1 11 3.13333333 5.13333333 9 3 9"}));function bh(e,t){var n=e.title,r=e.titleId,l=fh(e,["title","titleId"]);return a.createElement("svg",mh({width:"12px",height:"12px",viewBox:"0 0 12 12",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,ph,hh)}var gh=a.forwardRef(bh);n.p;function vh(){return(vh=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var Eh=a.createElement("desc",null,"Created with Sketch."),Oh=a.createElement("g",{id:"icon/button/edit/zodiac",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},a.createElement("path",{d:"M0,10 L0,10 C0,10.9942 0.8058,11.8 1.8,11.8 L10.2,11.8 C11.1942,11.8 12,10.9942 12,10",id:"Stroke-1",stroke:"#1B2559"}),a.createElement("polygon",{id:"Stroke-3",stroke:"#1B2559",points:"3 6.86666667 8.86666667 1 11 3.13333333 5.13333333 9 3 9"}));function wh(e,t){var n=e.title,r=e.titleId,l=yh(e,["title","titleId"]);return a.createElement("svg",vh({width:"12px",height:"12px",viewBox:"0 0 12 12",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,Eh,Oh)}var xh=a.forwardRef(wh);n.p;function jh(){return(jh=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var kh=a.createElement("desc",null,"Created with Sketch."),Sh=a.createElement("g",{id:"icon/button/link/zodiac",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},a.createElement("g",{id:"Group-7",stroke:"#1B2559",strokeWidth:1.2},a.createElement("polyline",{id:"Stroke-1",points:"12 6.66678 12 12.00018 0 12.00018 0 0.00018 5.3334 0.00018"}),a.createElement("polyline",{id:"Stroke-3",points:"8.66658 0 12.00018 0 12.00018 3.3336"}),a.createElement("line",{x1:6,y1:6,x2:12,y2:0,id:"Stroke-5"})));function Nh(e,t){var n=e.title,r=e.titleId,l=Ch(e,["title","titleId"]);return a.createElement("svg",jh({width:"12px",height:"12px",viewBox:"0 0 12 12",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,kh,Sh)}var Ih=a.forwardRef(Nh);n.p;function Lh(){return(Lh=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var Ph=a.createElement("desc",null,"Created with Sketch."),Fh=a.createElement("g",{id:"icon/button/reboot/white",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},a.createElement("g",{id:"Group-3",stroke:"#FFFFFF"},a.createElement("g",{id:"Group-2"},a.createElement("path",{d:"M3.57419317,11.1560104 C2.91506589,10.8661403 2.29620875,10.4522182 1.75493083,9.91362078 C-0.568892549,7.60089351 -0.587250991,3.86936104 1.71406849,1.57845195 C2.03057585,1.26367293 2.37407977,0.992496226 2.73740775,0.764921841",id:"Stroke-1"}),a.createElement("polyline",{id:"Stroke-3",points:"3.37563213 1.84831169 3.36911784 0.595324675 2.18174122 4.15223411e-14"})),a.createElement("line",{x1:5.92223784,y1:7.57277922,x2:5.92223784,y2:3.98212987,id:"Stroke-9"}),a.createElement("g",{id:"Group-2",transform:"translate(9.818105, 6.000000) scale(-1, -1) translate(-9.818105, -6.000000) translate(7.636287, 0.000000)"},a.createElement("path",{d:"M3.57419317,11.1560104 C2.91506589,10.8661403 2.29620875,10.4522182 1.75493083,9.91362078 C-0.568892549,7.60089351 -0.587250991,3.86936104 1.71406849,1.57845195 C2.03057585,1.26367293 2.37407977,0.992496226 2.73740775,0.764921841",id:"Stroke-1"}),a.createElement("polyline",{id:"Stroke-3",points:"3.37563213 1.84831169 3.36911784 0.595324675 2.18174122 4.15223411e-14"}))));function Dh(e,t){var n=e.title,r=e.titleId,l=Bh(e,["title","titleId"]);return a.createElement("svg",Lh({width:"12px",height:"12px",viewBox:"-0.493 -0.5 12.993 13",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,Ph,Fh)}var Th=a.forwardRef(Dh);n.p;function Wh(){return(Wh=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var zh=a.createElement("desc",null,"Created with Sketch."),Ah=a.createElement("g",{id:"icon/button/reboot/zodiac",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},a.createElement("g",{id:"Group-3",stroke:"#1B2559"},a.createElement("g",{id:"Group-2"},a.createElement("path",{d:"M3.57419317,11.1560104 C2.91506589,10.8661403 2.29620875,10.4522182 1.75493083,9.91362078 C-0.568892549,7.60089351 -0.587250991,3.86936104 1.71406849,1.57845195 C2.03057585,1.26367293 2.37407977,0.992496226 2.73740775,0.764921841",id:"Stroke-1"}),a.createElement("polyline",{id:"Stroke-3",points:"3.37563213 1.84831169 3.36911784 0.595324675 2.18174122 4.15223411e-14"})),a.createElement("line",{x1:5.92223784,y1:7.57277922,x2:5.92223784,y2:3.98212987,id:"Stroke-9"}),a.createElement("g",{id:"Group-2",transform:"translate(9.818105, 6.000000) scale(-1, -1) translate(-9.818105, -6.000000) translate(7.636287, 0.000000)"},a.createElement("path",{d:"M3.57419317,11.1560104 C2.91506589,10.8661403 2.29620875,10.4522182 1.75493083,9.91362078 C-0.568892549,7.60089351 -0.587250991,3.86936104 1.71406849,1.57845195 C2.03057585,1.26367293 2.37407977,0.992496226 2.73740775,0.764921841",id:"Stroke-1"}),a.createElement("polyline",{id:"Stroke-3",points:"3.37563213 1.84831169 3.36911784 0.595324675 2.18174122 4.15223411e-14"}))));function Mh(e,t){var n=e.title,r=e.titleId,l=Rh(e,["title","titleId"]);return a.createElement("svg",Wh({width:"12px",height:"12px",viewBox:"-0.493 -0.5 12.993 13",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,zh,Ah)}var qh=a.forwardRef(Mh);n.p;function $h(){return($h=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var Vh=a.createElement("desc",null,"Created with Sketch."),Yh=a.createElement("g",{id:"icon/button/shut-down/white",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},a.createElement("g",{id:"Group-5",transform:"translate(1.000000, 0.000000)",stroke:"#FFFFFF"},a.createElement("path",{d:"M7.7735,2 C9.116,2.89710351 10,4.4271328 10,6.16330077 C10,8.92665975 7.7615,11.1666667 5,11.1666667 C2.2385,11.1666667 0,8.92665975 0,6.16330077 C0,4.43663919 0.8745,2.91361461 2.204,2.01450976",id:"Stroke-1"}),a.createElement("line",{x1:5,y1:.75,x2:5,y2:3.25,id:"Stroke-3"})));function Gh(e,t){var n=e.title,r=e.titleId,l=Hh(e,["title","titleId"]);return a.createElement("svg",$h({width:"12px",height:"12px",viewBox:"0 0 12 12",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,Vh,Yh)}var Zh=a.forwardRef(Gh);n.p;function _h(){return(_h=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var Jh=a.createElement("desc",null,"Created with Sketch."),Kh=a.createElement("g",{id:"icon/button/shut-down/zodiac",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},a.createElement("g",{id:"Group-5",transform:"translate(1.000000, 0.000000)",stroke:"#1B2559"},a.createElement("path",{d:"M7.7735,2 C9.116,2.89710351 10,4.4271328 10,6.16330077 C10,8.92665975 7.7615,11.1666667 5,11.1666667 C2.2385,11.1666667 0,8.92665975 0,6.16330077 C0,4.43663919 0.8745,2.91361461 2.204,2.01450976",id:"Stroke-1"}),a.createElement("line",{x1:5,y1:.75,x2:5,y2:3.25,id:"Stroke-3"})));function Qh(e,t){var n=e.title,r=e.titleId,l=Uh(e,["title","titleId"]);return a.createElement("svg",_h({width:"12px",height:"12px",viewBox:"0 0 12 12",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,Jh,Kh)}var Xh=a.forwardRef(Qh);n.p;function eb(){return(eb=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var nb=a.createElement("desc",null,"Created with Sketch."),ab=a.createElement("g",{id:"icon/button/unpair/white",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},a.createElement("g",{id:"Group-12",stroke:"#FFFFFF"},a.createElement("g",{id:"Group-5"},a.createElement("polyline",{id:"Stroke-1",points:"3.75 6 2.25 6 0 3.75 3.75 0 6.75 3"}),a.createElement("polyline",{id:"Stroke-3",points:"8.25 6 9.75 6 12 8.25 8.25 12 5.25 9"})),a.createElement("line",{x1:8.25,y1:3,x2:8.25,y2:1.5,id:"Stroke-6"}),a.createElement("line",{x1:9.75,y1:3,x2:10.5,y2:2.25,id:"Stroke-7"}),a.createElement("line",{x1:9.75,y1:4.5,x2:11.25,y2:4.5,id:"Stroke-8"}),a.createElement("line",{x1:2.25,y1:7.5,x2:.75,y2:7.5,id:"Stroke-9"}),a.createElement("line",{x1:2.25,y1:9,x2:1.5,y2:9.75,id:"Stroke-10"}),a.createElement("line",{x1:3.75,y1:9,x2:3.75,y2:10.5,id:"Stroke-11"})));function rb(e,t){var n=e.title,r=e.titleId,l=tb(e,["title","titleId"]);return a.createElement("svg",eb({width:"12px",height:"12px",viewBox:"0 0 12 12",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,nb,ab)}var lb=a.forwardRef(rb);n.p;function ib(){return(ib=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var cb=a.createElement("desc",null,"Created with Sketch."),sb=a.createElement("g",{id:"icon/button/unpair/zodiac",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},a.createElement("g",{id:"Group-12",stroke:"#1B2559"},a.createElement("g",{id:"Group-5"},a.createElement("polyline",{id:"Stroke-1",points:"3.75 6 2.25 6 0 3.75 3.75 0 6.75 3"}),a.createElement("polyline",{id:"Stroke-3",points:"8.25 6 9.75 6 12 8.25 8.25 12 5.25 9"})),a.createElement("line",{x1:8.25,y1:3,x2:8.25,y2:1.5,id:"Stroke-6"}),a.createElement("line",{x1:9.75,y1:3,x2:10.5,y2:2.25,id:"Stroke-7"}),a.createElement("line",{x1:9.75,y1:4.5,x2:11.25,y2:4.5,id:"Stroke-8"}),a.createElement("line",{x1:2.25,y1:7.5,x2:.75,y2:7.5,id:"Stroke-9"}),a.createElement("line",{x1:2.25,y1:9,x2:1.5,y2:9.75,id:"Stroke-10"}),a.createElement("line",{x1:3.75,y1:9,x2:3.75,y2:10.5,id:"Stroke-11"})));function ub(e,t){var n=e.title,r=e.titleId,l=ob(e,["title","titleId"]);return a.createElement("svg",ib({width:"12px",height:"12px",viewBox:"0 0 12 12",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,cb,sb)}var db=a.forwardRef(ub),mb=(n.p,Object(c.a)(Object(c.a)({},Ed),{},{colDivider:{width:1,margin:[[16,32]],backgroundColor:B,border:"none"},inlineChip:{marginInlineEnd:"0.25em"},stack:{display:"flex",flexDirection:"row"},wrapper:{display:"flex",marginTop:24,marginBottom:32,fontSize:oe},row:{display:"flex",flexDirection:"row",marginBottom:36},list:{padding:0,margin:0,listStyle:"none"},item:{height:24,marginBottom:12},link:{color:M,textDecoration:"none"},divider:{margin:"0 1rem"},mr:{marginRight:8},separator:{width:1,height:170,zIndex:1,marginRight:60,marginLeft:"auto",background:Object(it.fade)(B,.5)}}));function fb(){var e=Object(tn.a)(["\n mutation MachineAction(\n $deviceId: ID!\n $action: MachineAction!\n $newName: String\n ) {\n machineAction(deviceId: $deviceId, action: $action, newName: $newName) {\n deviceId\n }\n }\n"]);return fb=function(){return e},e}var pb=sn()(fb()),hb=[{code:void 0,label:"Troubleshooting",article:"https://support.lamassu.is/hc/en-us/categories/115000075249-Troubleshooting"}],bb=function(e){var t=e.code;return hb.find((function(e){return e.code===t}))},gb=Object(m.a)(Od),vb=function(e){var t=e.children,n=gb();return r.a.createElement("div",{className:n.label},t)},yb=Object(m.a)(mb),Eb=function(e){var t=e.children,n=Object(L.a)(e,["children"]);return r.a.createElement(_m.a,Object.assign({container:!0,spacing:4},n),t)},Ob=function(e){var t=e.children,n=Object(L.a)(e,["children"]);return r.a.createElement(_m.a,Object.assign({item:!0,xs:!0},n),t)},wb=function(e){var t=e.it,n=e.onActionSuccess,l=Object(a.useState)(null),i=Object(o.a)(l,2),s=i[0],u=i[1],d=Object(a.useState)(null),m=Object(o.a)(d,2),f=m[0],p=m[1],h=yb(),b=Object(nn.b)(pb,{onError:function(e){var t=e.message;p(null!==t&&void 0!==t?t:"An error ocurred")},onCompleted:function(){n&&n(),u(null)}}),g=Object(o.a)(b,2),v=g[0],y=g[1].loading,E=Boolean(s);return r.a.createElement(r.a.Fragment,null,r.a.createElement(Eb,{className:h.wrapper},r.a.createElement(Ob,{xs:5},r.a.createElement(Eb,null,r.a.createElement(Ob,null,r.a.createElement(vb,null,"Statuses"),r.a.createElement("ul",{className:h.list},t.statuses.map((function(e,t){return r.a.createElement("li",{className:h.item,key:t},r.a.createElement(as,{status:e}))})))),r.a.createElement(Ob,null,r.a.createElement(vb,null,"Lamassu Support article"),r.a.createElement("ul",{className:h.list},t.statuses.map(bb).map((function(e,t){var n=e.label,a=e.article;return r.a.createElement("li",{className:h.item,key:t},r.a.createElement("a",{className:h.link,target:"_blank",rel:"noopener noreferrer",href:a},"'",n,"' ",r.a.createElement(Ih,null)))})))))),r.a.createElement(oh.a,{orientation:"vertical",flexItem:!0,className:h.separator}),r.a.createElement(dh,{open:E,title:"".concat(null===s||void 0===s?void 0:s.command," this machine?"),errorMessage:f,toBeConfirmed:t.name,message:null===s||void 0===s?void 0:s.message,confirmationMessage:null===s||void 0===s?void 0:s.confirmationMessage,saveButtonAlwaysEnabled:"Rename"===(null===s||void 0===s?void 0:s.command),onConfirmed:function(e){p(null),v({variables:Object(c.a)({deviceId:t.deviceId,action:"".concat(null===s||void 0===s?void 0:s.command).toLowerCase()},"Rename"===(null===s||void 0===s?void 0:s.command)&&{newName:e})})},onDissmised:function(){u(null),p(null)}}),r.a.createElement(Ob,{xs:!0},r.a.createElement(Eb,{className:h.row},r.a.createElement(Ob,{xs:4},r.a.createElement(vb,null,"Machine Model"),r.a.createElement("span",null,t.model)),r.a.createElement(Ob,{xs:4},r.a.createElement(vb,null,"Paired at"),r.a.createElement("span",null,Mu()(t.pairedAt).format("YYYY-MM-DD HH:mm:ss")))),r.a.createElement(Eb,null,r.a.createElement(Ob,null,r.a.createElement(vb,null,"Actions"),r.a.createElement("div",{className:h.stack},r.a.createElement(je,{className:h.mr,disabled:y,color:"primary",Icon:xh,InverseIcon:gh,onClick:function(){return u({command:"Rename",confirmationMessage:"Write the new name for this machine"})}},"Rename"),r.a.createElement(je,{color:"primary",className:h.mr,Icon:db,InverseIcon:lb,disabled:y,onClick:function(){return u({command:"Unpair"})}},"Unpair"),r.a.createElement(je,{color:"primary",className:h.mr,Icon:qh,InverseIcon:Th,disabled:y,onClick:function(){return u({command:"Reboot"})}},"Reboot"),r.a.createElement(je,{className:h.inlineChip,disabled:y,color:"primary",Icon:Xh,InverseIcon:Zh,onClick:function(){return u({command:"Shutdown",message:"In order to bring it back online, the machine will need to be visited and its power reset."})}},"Shutdown")))))))};function xb(){var e=Object(tn.a)(["\n {\n machines {\n name\n deviceId\n lastPing\n pairedAt\n version\n paired\n cashbox\n cassette1\n cassette2\n version\n model\n statuses {\n label\n type\n }\n }\n }\n"]);return xb=function(){return e},e}var jb=sn()(xb()),Cb=Object(m.a)(wd),kb=function(){var e,t=Cb(),n=Object(g.i)().state,a=null===n||void 0===n?void 0:n.id,l=Object(nn.c)(jb),i=l.data,o=l.refetch,c=[{header:"Machine Name",width:250,size:"sm",textAlign:"left",view:function(e){return e.name}},{header:"Status",width:350,size:"sm",textAlign:"left",view:function(e){return r.a.createElement(rs,{statuses:e.statuses})}},{header:"Last ping",width:200,size:"sm",textAlign:"left",view:function(e){return e.lastPing?Mu()(e.lastPing).fromNow():"unknown"}},{header:"Software Version",width:200,size:"sm",textAlign:"left",view:function(e){return e.version||"unknown"}}],s=null!==(e=Or.a(["machines"])(i))&&void 0!==e?e:[],u=al.a(wn.a("deviceId",a))(s);return r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:t.titleWrapper},r.a.createElement("div",{className:t.titleAndButtonsContainer},r.a.createElement(gn,null,"Machine Status")),r.a.createElement("div",{className:t.headerLabels},r.a.createElement("div",null,r.a.createElement(th,null),r.a.createElement("span",null,"Warning")),r.a.createElement("div",null,r.a.createElement(ih,null),r.a.createElement("span",null,"Error")))),r.a.createElement(od,{elements:c,data:s,Details:function(e){var t=e.it;return r.a.createElement(wb,{it:t,onActionSuccess:o})},initialExpanded:u,expandable:!0}))},Sb=r.a.createContext(),Nb=n(266),Ib=n.n(Nb),Lb=function(e){return Ib.a.isNumber(e)&&!Ib.a.isNaN(e)?e:null},Bb=Object(m.a)({header:{display:"flex",alignItems:"center",marginBottom:16,height:26,margin:0},title:{flexShrink:2,margin:0,overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis"},button:{border:"none",backgroundColor:"transparent",cursor:"pointer",marginLeft:8},editingButtons:{display:"flex",flexShrink:0,marginLeft:16,justifyContent:"space-between",width:110}}),Pb=function(e){var t=e.title,n=e.editing,a=e.disabled,l=e.setEditing,i=Bb();return r.a.createElement("div",{className:i.header},r.a.createElement($t,{className:i.title},t),!n&&r.a.createElement(lt,{onClick:function(){return l(!0)},className:i.button,disabled:a},a?r.a.createElement(Li,null):r.a.createElement(Wi,null)),n&&r.a.createElement("div",{className:i.editingButtons},r.a.createElement(ut,{color:"primary",type:"submit"},"Save"),r.a.createElement(ut,{color:"secondary",type:"reset"},"Cancel")))},Fb=Object(m.a)({text:{margin:[[7,0,7,1]]},fieldWrapper:{height:53},valueWrapper:{display:"flex",alignItems:"baseline"},label:{margin:0},decoration:{margin:[[0,0,0,7]]}}),Db=function(e){var t,n=e.label,a=e.name,l=e.editing,i=e.displayValue,o=e.decoration,c=e.className,s=e.decimalPlaces,u=void 0===s?0:s,d=e.width,m=void 0===d?80:d,f=Fb({width:m,editing:l}),p=Object(on.e)().values,h=(t={},Object(I.a)(t,f.fieldWrapper,!0),Object(I.a)(t,"className",c),t);return r.a.createElement("div",{className:N()(h)},n&&r.a.createElement(Kt,{className:f.label},n),r.a.createElement("div",{className:f.valueWrapper},!l&&r.a.createElement(Yt,{className:f.text},i(p[a])),l&&r.a.createElement(on.b,{id:a,size:"lg",fullWidth:!0,name:a,component:Un,textAlign:"right",width:m,decimalPlaces:u}),r.a.createElement(Jt,{className:f.decoration},o)))},Tb=function(e){var t,n=e.title,l=e.label,i=e.width,c=void 0===i?80:i,s=e.min,u=void 0===s?0:s,d=e.max,m=void 0===d?9999999:d,f=e.name,p=e.section,h=e.className,b=Object(a.useState)(!1),g=Object(o.a)(b,2),v=g[0],y=g[1],E=function(){var e=Object(el.a)(Xr.a.mark((function e(t,n){return Xr.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!v){e.next=2;break}return e.abrupt("return");case 2:return y(!0),e.next=5,w(t,n);case 5:y(!1);case 6:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}(),O=Object(a.useContext)(Sb),w=O.save,x=O.data,j=O.currency,C=O.isEditing,k=O.isDisabled,S=O.setEditing,N=hn.d().shape(Object(I.a)({},f,hn.c().transform(Lb).integer().min(u).max(m).nullable()));return r.a.createElement(on.d,{enableReinitialize:!0,initialValues:Object(I.a)({},f,null!==(t=x&&x[f])&&void 0!==t?t:""),validationSchema:N,onSubmit:function(e){return E(p,N.cast(e))},onReset:function(){S(f,!1)}},r.a.createElement(on.c,{className:h},r.a.createElement(ul,null),r.a.createElement(Pb,{title:n,editing:C(f),disabled:k(f),setEditing:function(e){return S(f,e)}}),r.a.createElement(Db,{label:l,name:f,editing:C(f),width:c,displayValue:function(e){return""===e?"-":e},decoration:j})))},Wb="cryptoLowBalance",Rb="cryptoHighBalance",zb=Object(m.a)({cryptoBalanceAlerts:{display:"flex",marginBottom:36,height:135,alignItems:"center"},cryptoBalanceAlertsForm:{width:222,marginRight:32},cryptoBalanceAlertsSecondForm:{marginLeft:50},vertSeparator:{width:1,height:"100%",borderRight:[[1,"solid","black"]]}}),Ab=function(e){var t=e.section,n=e.fieldWidth,l=zb(),i=Object(a.useContext)(Sb),o=i.data,c=i.save,s=i.currency,u=i.setEditing,d=i.isEditing,m=i.isDisabled;return r.a.createElement("div",{className:l.cryptoBalanceAlerts},r.a.createElement(Tb,{name:Wb,data:o,save:c,section:t,decoration:s,className:l.cryptoBalanceAlertsForm,title:"Default (Low Balance)",label:"Alert me under",editing:d(Wb),disabled:m(Wb),setEditing:function(e){return u(Wb,e)},width:n}),r.a.createElement("div",{className:l.vertSeparator}),r.a.createElement(Tb,{name:Rb,data:o,section:t,save:c,decoration:s,className:l.cryptoBalanceAlertsSecondForm,title:"Default (High Balance)",label:"Alert me over",editing:d(Rb),disabled:m(Rb),setEditing:function(e){return u(Rb,e)},width:n}))},Mb="highBalance",qb="lowBalance",$b="cryptoCurrency",Hb="cryptoBalanceOverrides",Vb=function(e){var t,n,l,i=e.section,o=Object(a.useContext)(Sb),c=o.cryptoCurrencies,s=void 0===c?[]:c,u=o.data,d=o.save,m=o.currency,f=o.isDisabled,p=o.setEditing,h=null!==(t=null===u||void 0===u?void 0:u.cryptoBalanceOverrides)&&void 0!==t?t:[],b=jn.a(xn.a($b))(h),g=hr.a((function(e){return!gr.a(e.code,b)}))(s),v=(n={},Object(I.a)(n,$b,null),Object(I.a)(n,qb,""),Object(I.a)(n,Mb,""),n),y=9999999,E=hn.d().shape((l={},Object(I.a)(l,$b,hn.e().label("Cryptocurrency").nullable().required()),Object(I.a)(l,qb,hn.c().label("Low Balance").when(Mb,{is:function(e){return!e},then:hn.c().required()}).transform(Lb).integer().min(0).max(y).nullable()),Object(I.a)(l,Mb,hn.c().label("High Balance").when(qb,{is:function(e){return!e},then:hn.c().required()}).transform(Lb).integer().min(0).max(y).nullable()),l),[qb,Mb]),O=[{name:$b,header:"Cryptocurrency",width:166,size:"sm",view:function(e){return mn.a(Or.a(["display"]),On.a(wn.a("code",e)))(s)},input:_n,inputProps:{options:function(e){return br.a(g,function(e){var t=mn.a(On.a(wn.a("code",null===e||void 0===e?void 0:e.cryptoCurrency)))(s);return t?[t]:[]}(e))},optionsLimit:null,valueProp:"code",getLabel:Or.a(["display"])}},{name:qb,width:155,textAlign:"right",bold:!0,input:Un,suffix:m,inputProps:{decimalPlaces:2}},{name:Mb,width:155,textAlign:"right",bold:!0,input:Un,suffix:m,inputProps:{decimalPlaces:2}}];return r.a.createElement(Ki,{name:Hb,title:"Overrides",enableDelete:!0,enableEdit:!0,enableCreate:!0,save:function(e){return d(i,e)},initialValues:v,validationSchema:E,forceDisable:f(Hb)||!s,data:h,elements:O,disableAdd:!(null===g||void 0===g?void 0:g.length),onDelete:function(e){var t={cryptoBalanceOverrides:ol.a((function(t){return t.id===e}),h)};return d(t)},setEditing:function(e){return p(Hb,e)}})},Yb=Object(m.a)({wrapper:{display:"flex"},form:{marginBottom:36},first:{width:236},title:{marginTop:0},row:{width:183,display:"grid",gridTemplateColumns:"repeat(2,1fr)",gridTemplateRows:"1fr",gridColumnGap:18,gridRowGap:0},col2:{width:136}}),Gb="fiatBalanceAlerts",Zb=function(e){var t,n,l,i,o=e.section,c=e.min,s=void 0===c?0:c,u=e.max,d=void 0===u?Number.MAX_SAFE_INTEGER:u,m=e.fieldWidth,f=void 0===m?80:m,p=Object(a.useContext)(Sb),h=p.isEditing,b=p.isDisabled,g=p.setEditing,v=p.data,y=p.save,E=Yb(),O=h(Gb),w=hn.d().shape({fiatBalanceCassette1:hn.c().transform(Lb).integer().min(s).max(d).nullable(),fiatBalanceCassette2:hn.c().transform(Lb).integer().min(s).max(d).nullable()}),x=100*(null!==(t=null===v||void 0===v?void 0:v.fiatBalanceCassette1)&&void 0!==t?t:0)/d,j=100*(null!==(n=null===v||void 0===v?void 0:v.fiatBalanceCassette2)&&void 0!==n?n:0)/d;return r.a.createElement(on.d,{enableReinitialize:!0,initialValues:{fiatBalanceCassette1:null!==(l=null===v||void 0===v?void 0:v.fiatBalanceCassette1)&&void 0!==l?l:"",fiatBalanceCassette2:null!==(i=null===v||void 0===v?void 0:v.fiatBalanceCassette2)&&void 0!==i?i:""},validationSchema:w,onSubmit:function(e){return y(o,w.cast(e))},onReset:function(){g(Gb,!1)}},r.a.createElement(on.c,{className:E.form},r.a.createElement(ul,null),r.a.createElement(Pb,{title:"Cash out (Empty)",editing:O,disabled:b(Gb),setEditing:function(e){return g(Gb,e)}}),r.a.createElement("div",{className:E.wrapper},r.a.createElement("div",{className:E.first},r.a.createElement("div",{className:E.row},r.a.createElement(di,{percent:x,cashOut:!0}),r.a.createElement("div",{className:E.col2},r.a.createElement(Jt,{className:E.title},"Cassette 1 (Top)"),r.a.createElement(Db,{label:"Alert me under",name:"fiatBalanceCassette1",editing:O,displayValue:function(e){return""===e?"-":e},decoration:"notes",width:f})))),r.a.createElement("div",{className:E.row},r.a.createElement(di,{percent:j,cashOut:!0}),r.a.createElement("div",{className:E.col2},r.a.createElement(Jt,{className:E.title},"Cassette 2 (Bottom)"),r.a.createElement(Db,{label:"Alert me under",name:"fiatBalanceCassette2",editing:O,displayValue:function(e){return""===e?"-":e},decoration:"notes",width:f}))))))},_b="cassette1",Ub="cassette2",Jb="machine",Kb="fiatBalanceOverrides",Qb=function(e){var t,n,l,i=e.section,o=Object(a.useContext)(Sb),c=o.machines,s=void 0===c?[]:c,u=o.data,d=o.save,m=o.isDisabled,f=o.setEditing,p=null!==(t=null===u||void 0===u?void 0:u.fiatBalanceOverrides)&&void 0!==t?t:[],h=jn.a((function(e){return e.machine}),p),b=hr.a((function(e){return!gr.a(e.deviceId,h)}))(s),g=(n={},Object(I.a)(n,Jb,null),Object(I.a)(n,_b,""),Object(I.a)(n,Ub,""),n),v=9999999,y=hn.d().shape((l={},Object(I.a)(l,Jb,hn.e().label("Machine").nullable().required()),Object(I.a)(l,_b,hn.c().label("Cassette 1 (top)").when(Ub,{is:function(e){return!e},then:hn.c().required()}).transform(Lb).integer().min(0).max(v).nullable()),Object(I.a)(l,Ub,hn.c().label("Cassette 1 (bottom)").when(_b,{is:function(e){return!e},then:hn.c().required()}).transform(Lb).integer().min(0).max(v).nullable()),l),[_b,Ub]),E=[{name:Jb,width:238,size:"sm",view:function(e){return mn.a(Or.a(["name"]),On.a(wn.a("deviceId",e)))(s)},input:_n,inputProps:{options:function(e){return br.a(b,function(e){var t=mn.a(On.a(wn.a("deviceId",null===e||void 0===e?void 0:e.machine)))(s);return t?[t]:[]}(e))},valueProp:"deviceId",getLabel:Or.a(["name"])}},{name:_b,display:"Cash-out 1",width:155,textAlign:"right",doubleHeader:"Cash-out (Cassette Empty)",bold:!0,input:Un,suffix:"notes",inputProps:{decimalPlaces:0}},{name:Ub,display:"Cash-out 2",width:155,textAlign:"right",doubleHeader:"Cash-out (Cassette Empty)",bold:!0,input:Un,suffix:"notes",inputProps:{decimalPlaces:0}}];return r.a.createElement(Ki,{name:Kb,title:"Overrides",enableDelete:!0,enableEdit:!0,enableCreate:!0,save:function(e){return d(i,y.cast(e))},initialValues:g,validationSchema:y,forceDisable:m(Kb)||!s,data:p,elements:E,disableAdd:!(null===b||void 0===b?void 0:b.length),setEditing:function(e){return f(Kb,e)}})},Xb={balance:152,transactions:184,compliance:178,errors:142,active:263},eg=Nl.a(ql.a(Xb))+129,tg=function(e){var t=e.namespace,n=e.forceDisable,l=Object(a.useContext)(Sb),i=l.data,o=l.save,c=mn.a(o(null),Kr(t)),s=Jr(t)(i),u=n||!s||!s.active,d=function(e){var t=e.name,n=e.disabled,a=!(!s||!s[t]);return r.a.createElement(Ol,{width:Xb[t],textAlign:"center"},r.a.createElement(Zn,{disabled:n,checked:a,onChange:function(e){c(Object(I.a)({},t,e.target.checked))},value:a}))};return r.a.createElement(jl,null,r.a.createElement(Ol,{width:129},Rl(t)),r.a.createElement(d,{name:"balance",disabled:u}),r.a.createElement(d,{name:"transactions",disabled:u}),r.a.createElement(d,{name:"compliance",disabled:u}),r.a.createElement(d,{name:"errors",disabled:u}),r.a.createElement(d,{name:"active",disabled:n}))},ng=Object(m.a)({mainTable:{width:eg},wizardTable:{width:930}}),ag=function(e){var t=e.wizard,n=e.forceDisable,a=t?20:0,l=ng();return r.a.createElement(gl,{className:t?l.wizardTable:l.mainTable},r.a.createElement(vl,null,r.a.createElement(wl,{width:129-a},"Channel"),Object.keys(Xb).map((function(e){return r.a.createElement(wl,{key:e,width:Xb[e]-a,textAlign:"center"},Rl(e))}))),r.a.createElement(El,null,r.a.createElement(tg,{namespace:"email",forceDisable:n}),r.a.createElement(tg,{namespace:"sms",forceDisable:n})))},rg=function(e){var t=e.section,n=e.fieldWidth;return r.a.createElement(Tb,{section:t,title:"High value transaction",label:"Alert me over",name:"highValueTransaction",width:n})};function lg(){var e=Object(tn.a)(["\n mutation Save($config: JSONObject) {\n saveConfig(config: $config)\n }\n"]);return lg=function(){return e},e}function ig(){var e=Object(tn.a)(["\n query getData {\n config\n machines {\n name\n deviceId\n }\n cryptoCurrencies {\n code\n display\n }\n }\n"]);return ig=function(){return e},e}var og=sn()(ig()),cg=sn()(lg()),sg=function(e){var t=e.name,n=e.displaySetup,l=void 0===n||n,i=e.displayTransactionAlerts,c=void 0===i||i,s=e.displayFiatAlerts,u=void 0===s||s,d=e.displayCryptoAlerts,m=void 0===d||d,f=e.displayOverrides,p=void 0===f||f,h=e.displayTitle,b=void 0===h||h,g=e.wizard,v=void 0!==g&&g,y=Object(a.useState)(null),E=Object(o.a)(y,2),O=E[0],w=E[1],x=Object(a.useState)(null),j=Object(o.a)(x,2),C=j[0],k=j[1],S=Object(a.useState)(null),N=Object(o.a)(S,2),I=N[0],L=N[1],B=Object(nn.c)(og).data,P=Object(nn.b)(cg,{refetchQueries:["getData"],onCompleted:function(){return L(null)},onError:function(e){return k({error:e})}}),F=Object(o.a)(P,1)[0],D=Jr(t)(null===B||void 0===B?void 0:B.config),T=null===B||void 0===B?void 0:B.machines,W=null===B||void 0===B?void 0:B.cryptoCurrencies,R=Or.a(["fiatCurrency"])(Jr($r)(null===B||void 0===B?void 0:B.config)),z={save:Fr.a((function(e,n){var a=Kr(t)(n);return w(e),k(null),F({variables:{config:a}})})),error:C,editingKey:I,data:D,currency:R,isEditing:function(e){return I===e},isDisabled:function(e){return I&&I!==e},setEditing:function(e,t){t||k(null),L(t?e:null)},setSection:w,machines:T,cryptoCurrencies:W};return r.a.createElement(Sb.Provider,{value:z},b&&r.a.createElement(uo,{title:"Notifications"}),l&&r.a.createElement(pc,{title:"Setup",error:C&&!O},r.a.createElement(ag,{forceDisable:!!I,wizard:v})),c&&r.a.createElement(pc,{title:"Transaction alerts",error:C&&"tx"===O},r.a.createElement(rg,{section:"tx",fieldWidth:130})),u&&r.a.createElement(pc,{title:"Fiat balance alerts",error:C&&"fiat"===O},r.a.createElement(Zb,{section:"fiat",max:500,fieldWidth:50}),p&&r.a.createElement(Qb,{section:"fiat"})),m&&r.a.createElement(pc,{title:"Crypto balance alerts",error:C&&"crypto"===O},r.a.createElement(Ab,{section:"crypto",fieldWidth:130}),p&&r.a.createElement(Vb,{section:"crypto",fieldWidth:130})))},ug={button:Iu.button,content:{display:"flex"},transparentButton:{"& > *":{margin:"auto 10px"},"& button":{border:"none",backgroundColor:"transparent",cursor:"pointer"}},titleWrapper:{display:"flex",alignItems:"center",flex:"wrap"},rowWrapper:{display:"flex",alignItems:"center",justifyContent:"space-between"},rowTextAndSwitch:{display:"flex",flex:"wrap",alignItems:"center",justifyContent:"space-between",width:285},popoverContent:{width:272,padding:[[10,15]]}};function dg(){var e=Object(tn.a)(["\n mutation Save($config: JSONObject) {\n saveConfig(config: $config)\n }\n"]);return dg=function(){return e},e}function mg(){var e=Object(tn.a)(["\n query getData {\n config\n }\n"]);return mg=function(){return e},e}var fg=Object(m.a)(ug),pg=sn()(mg()),hg=sn()(dg()),bg=Object(a.memo)((function(e){var t=e.title,n=e.disabled,a=void 0!==n&&n,l=e.checked,i=e.save,o=e.label,c=fg();return r.a.createElement("div",{className:c.rowWrapper},r.a.createElement("div",{className:c.rowTextAndSwitch},r.a.createElement(Vt,null,t),r.a.createElement(Zn,{disabled:a,checked:l,onChange:function(e){return i&&i(e.target.checked)}})),o&&r.a.createElement(Qt,null,o))})),gg=Object(a.memo)((function(){var e=fg(),t=Object(nn.c)(pg).data,n=Object(nn.b)(hg,{refetchQueries:["getData"]}),a=Object(o.a)(n,1)[0],l=function(e){return a({variables:{config:Kr(Yr,e)}})},i=(null===t||void 0===t?void 0:t.config)&&Jr(Yr,t.config);return i?r.a.createElement("div",{className:e.content},r.a.createElement("div",null,r.a.createElement("div",{className:e.titleWrapper},r.a.createElement($t,null,"Coin ATM Radar share settings"),r.a.createElement(Br,{width:304},r.a.createElement(Vt,null,"For details on configuring this panel, please read the relevant knowledgebase article"," ",r.a.createElement("a",{target:"_blank",rel:"noopener noreferrer",href:"https://support.lamassu.is/hc/en-us/articles/360023720472-Coin-ATM-Radar"},"here"),"."))),r.a.createElement(bg,{title:"Share information?",checked:i.active,save:function(e){return l({active:e})},label:i.active?"Yes":"No"}),r.a.createElement($t,null,"Machine info"),r.a.createElement(bg,{title:"Commissions",disabled:!i.active,checked:i.commissions,save:function(e){return l({commissions:e})}}),r.a.createElement(bg,{title:"Limits and verification",disabled:!i.active,checked:i.limitsAndVerification,save:function(e){return l({limitsAndVerification:e})}}))):null})),vg=n(337),yg=Ee.p,Eg=Object(vg.a)({typography:{fontFamily:fe,body1:Object(c.a)({},yg)},MuiButtonBase:{disableRipple:!0},palette:{primary:{light:q,dark:q,main:q},secondary:{light:q,dark:q,main:q},background:{default:V}},overrides:{MuiRadio:{colorSecondary:{color:q}},MuiAutocomplete:{root:{color:U},noOptions:{padding:[[6,16]]},option:{'&[data-focus="true"]':{backgroundColor:Y}},paper:{color:U,margin:0},listbox:{padding:0},tag:{'&[data-tag-index="0"]':{marginLeft:0},margin:2,backgroundColor:Y,borderRadius:4,height:18}},MuiChip:{label:{paddingLeft:4,paddingRight:4,color:U,fontSize:ce}},MuiInput:{root:{color:U},underline:{"&:before":{borderBottom:[[2,"solid",U]]}}},MuiInputLabel:{root:{font:"inherit",fontSize:ie,color:J},shrink:{color:U,transform:"translate(0, 1.7px) scale(0.83)"}},MuiFormLabel:{root:{"&$focused":{color:U}}}}}),Og=Ee.p,wg={header:{display:"flex",alignItems:"center",position:"relative",flex:"wrap"},transparentButton:{"& > *":{margin:"auto 12px"},"& button":{border:"none",backgroundColor:"transparent",cursor:"pointer"}},section:{marginBottom:52},row:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:28,width:600,"&:last-child":{marginBottom:0}},switchRow:{display:"flex",alignItems:"center",marginBottom:28,width:600},switch:{display:"flex",alignItems:"center",marginLeft:120},submit:{justifyContent:"flex-start",alignItems:"center",height:19,padding:[[0,4,4,4]],"& > button":{marginRight:40}},singleButton:{marginTop:50,paddingLeft:0}},xg={infoMessage:{display:"flex",marginBottom:52,"& > p":{width:330,color:J,marginTop:4,marginLeft:16}},radioButtonsRow:{height:60,marginBottom:14},radioButtons:{display:"flex",flexDirection:"row",paddingLeft:4},rowWrapper:{display:"flex",alignItems:"center",position:"relative",flex:"wrap"},transparentButton:{"& > *":{margin:"auto 12px"},"& button":{border:"none",backgroundColor:"transparent",cursor:"pointer"}}},jg={enable:{display:"flex",alignItems:"center",marginBottom:22-Eg.spacing(1),"& > span:first-child":{extend:Og,marginRight:116-Eg.spacing(1)},"& > span:last-child":{marginLeft:4}}};function Cg(){var e=Object(tn.a)(["\n mutation Save($config: JSONObject) {\n saveConfig(config: $config)\n }\n"]);return Cg=function(){return e},e}function kg(){var e=Object(tn.a)(["\n query getData {\n config\n }\n"]);return kg=function(){return e},e}var Sg={field:{position:"relative",width:280,height:48,padding:[[0,4,4,0]]},notEditing:{display:"flex",flexDirection:"column","& > p:first-child":{height:16,lineHeight:"16px",fontSize:ce,transformOrigin:"left",paddingLeft:0,margin:[[3,0,3,0]]},"& > p:last-child":{overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis",margin:0}}},Ng=Object(m.a)(Sg),Ig=function(e){var t,n=e.editing,a=e.field,l=e.displayValue,i=Object(L.a)(e,["editing","field","displayValue"]),o=Ng(),c=(t={},Object(I.a)(t,o.field,!0),Object(I.a)(t,o.notEditing,!n),t);return r.a.createElement("div",{className:N()(c)},!n&&r.a.createElement(r.a.Fragment,null,r.a.createElement(Xt,null,a.label),r.a.createElement(Zt,null,l(a.value))),n&&r.a.createElement(on.b,Object.assign({id:a.name,name:a.name,component:a.component,placeholder:a.placeholder,type:a.type,label:a.label,width:280},i)))},Lg=sn()(kg()),Bg=sn()(Cg()),Pg=Ue.a(wg,xg),Fg=Object(m.a)(Pg),Dg=function(e){var t,n,l,i,c=e.wizard,s=Fg(),u=Object(a.useState)(c||!1),d=Object(o.a)(u,2),m=d[0],f=d[1],p=Object(a.useState)(null),h=Object(o.a)(p,2),b=h[0],g=h[1],v=Object(nn.b)(Bg,{onCompleted:function(){return f(!1)},refetchQueries:function(){return["getData"]},onError:function(e){return g(e)}}),y=Object(o.a)(v,1)[0],E=Object(nn.c)(Lg).data,O=function(e){return y({variables:{config:Kr(Mr,e)}})},w=(null===E||void 0===E?void 0:E.config)&&Jr(Mr,E.config);if(!w)return null;var x=hn.d().shape({active:hn.b(),name:hn.e(),phone:hn.e(),email:hn.e().email("Please enter a valid email address").required(),website:hn.e(),companyNumber:hn.e()}),j=[{name:"name",label:"Full name",value:null!==(t=w.name)&&void 0!==t?t:"",component:Qn},{name:"phone",label:"Phone number",value:w.phone,component:Qn},{name:"email",label:"Email",value:null!==(n=w.email)&&void 0!==n?n:"",component:Qn},{name:"website",label:"Website",value:null!==(l=w.website)&&void 0!==l?l:"",component:Qn},{name:"companyNumber",label:"Company number",value:null!==(i=w.companyNumber)&&void 0!==i?i:"",component:Qn}],C=function(e){return On.a(wn.a("name",e))(j)},k=function(e){return C(e).value},S=function(e){return e},I={initialValues:{active:w.active,name:k("name"),phone:k("phone"),email:k("email"),website:k("website"),companyNumber:k("companyNumber")}};return r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:s.rowWrapper},r.a.createElement($t,null,"Contact information")),r.a.createElement("div",{className:s.rowWrapper},r.a.createElement(Vt,null,"Info card enabled?"),r.a.createElement("div",{className:s.switch},r.a.createElement(Zn,{checked:w.active,onChange:function(e){return O({active:e.target.checked})}}),r.a.createElement(Qt,null,w.active?"Yes":"No"))),r.a.createElement("div",{className:s.section},r.a.createElement("div",{className:s.rowWrapper},r.a.createElement($t,null,"Info card"),!m&&r.a.createElement(lt,{className:s.transparentButton,onClick:function(){return f(!0)}},r.a.createElement(Wi,null))),r.a.createElement(on.d,{enableReinitialize:!0,initialValues:I.initialValues,validationSchema:x,onSubmit:function(e){return O(x.cast(e))},onReset:function(){f(!1),g(null)}},r.a.createElement(on.c,null,r.a.createElement(ul,null),r.a.createElement("div",{className:s.row},r.a.createElement(Ig,{field:C("name"),editing:m,displayValue:S,onFocus:function(){return g(null)}}),r.a.createElement(Ig,{field:C("phone"),editing:m,displayValue:S,onFocus:function(){return g(null)}})),r.a.createElement("div",{className:s.row},r.a.createElement(Ig,{field:C("email"),editing:m,displayValue:S,onFocus:function(){return g(null)}}),r.a.createElement(Ig,{field:C("website"),editing:m,displayValue:S,onFocus:function(){return g(null)}})),r.a.createElement("div",{className:s.row},r.a.createElement(Ig,{field:C("companyNumber"),editing:m,displayValue:S,onFocus:function(){return g(null)}})),r.a.createElement("div",{className:N()(s.row,s.submit)},m&&r.a.createElement(r.a.Fragment,null,r.a.createElement(ut,{color:"primary",type:"submit"},"Save"),r.a.createElement(ut,{color:"secondary",type:"reset"},"Cancel"),b&&r.a.createElement(co,{className:s.errorMessage},"Failed to save changes")))))),!c&&r.a.createElement("div",{className:N()(s.section,s.infoMessage)},r.a.createElement(Ra,null),r.a.createElement(Kt,null,"Sharing your information with your customers through your machines allows them to contact you in case there's a problem with a machine in your network or a transaction.")))},Tg=n(267),Wg=n.n(Tg);function Rg(){return(Rg=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var Ag=a.createElement("desc",null,"Created with Sketch."),Mg=a.createElement("g",{id:"icon/table/false",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd"},a.createElement("g",{id:"Group-4",stroke:"#FF584A",strokeWidth:4},a.createElement("line",{x1:13.5,y1:.5,x2:.995667,y2:13.004333,id:"Line-7"}),a.createElement("line",{x1:13.5,y1:.5,x2:.995667,y2:13.004333,id:"Line-7",transform:"translate(7.000000, 7.000000) scale(-1, 1) translate(-7.000000, -7.000000) "})));function qg(e,t){var n=e.title,r=e.titleId,l=zg(e,["title","titleId"]);return a.createElement("svg",Rg({width:"14px",height:"14px",viewBox:"0 0 14 14",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,Ag,Mg)}var $g=a.forwardRef(qg);n.p;function Hg(){return(Hg=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var Yg=a.createElement("desc",null,"Created with Sketch."),Gg=a.createElement("g",{id:"icon/table/true",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd"},a.createElement("path",{d:"M4.17451294,13.3251347 L0.599425104,9.29667256 C-0.199808368,8.3960844 -0.199808368,6.94040225 0.599425104,6.03981409 C1.39865858,5.13922593 2.69051421,5.13922593 3.48974768,6.03981409 L5.61967423,8.439847 L12.5102523,0.675441122 C13.3094858,-0.225147041 14.6033855,-0.225147041 15.4005749,0.675441122 C16.1998084,1.57372599 16.1998084,3.03171143 15.4005749,3.93229959 L7.06483552,13.3251347 C6.66624082,13.7742771 6.14295752,14 5.61967423,14 C5.09639093,14 4.57310763,13.7742771 4.17451294,13.3251347 Z",id:"Fill-1",fill:"#48F694"}));function Zg(e,t){var n=e.title,r=e.titleId,l=Vg(e,["title","titleId"]);return a.createElement("svg",Hg({width:"16px",height:"14px",viewBox:"0 0 16 14",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,Yg,Gg)}var _g=a.forwardRef(Zg),Ug=(n.p,{booleanPropertiesTableWrapper:{display:"flex",flexDirection:"column",width:396},tableRow:{display:"flex",alignItems:"center",justifyContent:"space-between","&:nth-child(even)":{backgroundColor:V},"&:nth-child(odd)":{backgroundColor:T},minHeight:32,height:"auto",padding:[[8,16,8,24]],boxShadow:"0 0 0 0 rgba(0, 0, 0, 0)"},leftTableCell:{display:"flex",alignItems:"center",justifyContent:"left",width:200,padding:[0]},rightTableCell:{display:"flex",alignItems:"center",justifyContent:"right",padding:[0]},transparentButton:{"& > *":{margin:"auto 12px"},"& button":{border:"none",backgroundColor:"transparent",cursor:"pointer"}},rowWrapper:{display:"flex",alignItems:"center",position:"relative",flex:"wrap"},rightAligned:{marginLeft:"auto"},radioButtons:{display:"flex",flexDirection:"row",margin:[-15]},rightLink:{marginLeft:"20px"},fillColumn:Iu.fillColumn,popoverContent:{width:272,padding:[[10,15]]}}),Jg=Object(m.a)(Ug),Kg=function(e){var t=e.name;return"true"===Object(on.e)().values[t]?r.a.createElement(_g,null):r.a.createElement($g,null)},Qg=Object(a.memo)((function(e){var t=e.title,n=e.disabled,l=e.data,i=e.elements,c=e.save,s=e.forcedEditing,u=void 0!==s&&s,d=Wg.a.fromPairs(i.map((function(e){return[e.name,""]}))),m=Wg.a.fromPairs(i.map((function(e){return[e.name,hn.b().required()]}))),f=Object(a.useState)(u),p=Object(o.a)(f,2),h=p[0],b=p[1],g=Jg(),v=function(){var e=Object(el.a)(Xr.a.mark((function e(t){return Xr.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:c(t),b(!1);case 2:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),y=[{display:"Yes",code:"true"},{display:"No",code:"false"}];return r.a.createElement("div",{className:g.booleanPropertiesTableWrapper},r.a.createElement(on.d,{enableReinitialize:!0,onSubmit:v,initialValues:l||d,schemaValidation:m},r.a.createElement(on.c,null,r.a.createElement("div",{className:g.rowWrapper},r.a.createElement($t,null,t),h?r.a.createElement("div",{className:g.rightAligned},r.a.createElement(ut,{type:"submit",color:"primary"},"Save"),r.a.createElement(ut,{className:g.rightLink,onClick:function(){return b(!1)},color:"secondary"},"Cancel")):r.a.createElement(lt,{className:g.transparentButton,onClick:function(){return b(!0)}},n?r.a.createElement(Li,null):r.a.createElement(Wi,null))),r.a.createElement(ul,null),r.a.createElement(jp,{className:g.fillColumn},r.a.createElement(Cp,{className:g.fillColumn},i.map((function(e,t){return r.a.createElement(Tp,{key:t,size:"sm",className:g.tableRow},r.a.createElement(Sp,{className:g.leftTableCell},e.display),r.a.createElement(Sp,{className:g.rightTableCell},h&&r.a.createElement(on.b,{component:Jn,name:e.name,options:y,className:N()(g.radioButtons,g.rightTableCell)}),!h&&r.a.createElement(Kg,{name:e.name})))})))))))}));function Xg(){var e=Object(tn.a)(["\n mutation Save($config: JSONObject) {\n saveConfig(config: $config)\n }\n"]);return Xg=function(){return e},e}function ev(){var e=Object(tn.a)(["\n query getData {\n config\n }\n"]);return ev=function(){return e},e}var tv=Object(m.a)({rowWrapper:{display:"flex",alignItems:"center",position:"relative",flex:"wrap"},switchWrapper:{display:"flex",marginLeft:120}}),nv=sn()(ev()),av=sn()(Xg()),rv=Object(a.memo)((function(e){var t=e.wizard,n=tv(),a=Object(nn.c)(nv).data,l=Object(nn.b)(av,{refetchQueries:function(){return["getData"]}}),i=Object(o.a)(l,1)[0],c=(null===a||void 0===a?void 0:a.config)&&Jr(Vr,a.config);return c?r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:n.rowWrapper},r.a.createElement($t,null,"Receipt options")),r.a.createElement("div",{className:n.rowWrapper},r.a.createElement(Vt,null,"Enable receipt printing?"),r.a.createElement("div",{className:n.switchWrapper},r.a.createElement(Zn,{checked:c.active,onChange:function(e){return i({variables:{config:Kr(Vr,Ue.a(c,{active:e.target.checked}))}})}})),r.a.createElement(Qt,null,c.active?"Yes":"No")),r.a.createElement(Qg,{editing:t,title:"Visible on the receipt (options)",data:c,elements:[{name:"operatorWebsite",display:"Operator website"},{name:"operatorEmail",display:"Operator email"},{name:"operatorPhone",display:"Operator phone"},{name:"companyNumber",display:"Company number"},{name:"machineLocation",display:"Machine location"},{name:"customerNameOrPhoneNumber",display:"Customer name or phone number (if known)"},{name:"exchangeRate",display:"Exchange rate"},{name:"addressQRCode",display:"Address QR code"}],save:function(e){return i({variables:{config:Kr(Vr,e)}})}})):null}));function lv(){var e=Object(tn.a)(["\n mutation Save($config: JSONObject) {\n saveConfig(config: $config)\n }\n"]);return lv=function(){return e},e}function iv(){var e=Object(tn.a)(["\n query getData {\n config\n }\n"]);return iv=function(){return e},e}var ov=Object(m.a)({field:{position:"relative",width:280,padding:[[0,4,4,0]]},notEditing:{display:"flex",flexDirection:"column"},notEditingSingleLine:{"& > p:first-child":{height:16,lineHeight:"16px",transform:"scale(0.75)",transformOrigin:"left",paddingLeft:0,margin:[[1,0,6,0]]},"& > p:last-child":{overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis",height:25,margin:0}},notEditingMultiline:{"& > p:first-child":{height:16,lineHeight:"16px",transform:"scale(0.75)",transformOrigin:"left",paddingLeft:0,margin:[[1,0,5,0]]},"& > p:last-child":{width:502,height:121,overflowY:"auto",lineHeight:"19px",wordWrap:"anywhere",margin:0}}}),cv=function(e){var t,n=e.editing,a=e.name,l=e.width,i=e.placeholder,o=e.label,c=e.value,s=e.multiline,u=void 0!==s&&s,d=e.rows,m=e.onFocus,f=Object(L.a)(e,["editing","name","width","placeholder","label","value","multiline","rows","onFocus"]),p=ov(),h=(t={},Object(I.a)(t,p.field,!0),Object(I.a)(t,p.notEditing,!n),Object(I.a)(t,p.notEditingSingleLine,!n&&!u),Object(I.a)(t,p.notEditingMultiline,!n&&u),t);return r.a.createElement("div",{className:N()(h)},!n&&r.a.createElement(r.a.Fragment,null,r.a.createElement(Xt,null,o),r.a.createElement(Zt,{className:p.multiLineText},c)),n&&r.a.createElement(on.b,Object.assign({id:a,name:a,component:Qn,width:l,placeholder:i,type:"text",label:o,multiline:u,rows:d,rowsMax:"6",onFocus:m},f)))},sv=sn()(iv()),uv=sn()(lv()),dv=Ue.a(wg,jg),mv=Object(m.a)(dv),fv=function(){var e,t,n,l,i,c=Object(a.useState)(null),s=Object(o.a)(c,2),u=s[0],d=s[1],m=Object(a.useState)(!1),f=Object(o.a)(m,2),p=f[0],h=f[1],b=Object(nn.b)(uv,{onCompleted:function(){d(null),h(!1)},refetchQueries:function(){return["getData"]},onError:function(e){return d(e)}}),g=Object(o.a)(b,1)[0],v=mv(),y=Object(nn.c)(sv).data,E=(null===y||void 0===y?void 0:y.config)&&Jr(Gr,y.config),O=null!==E&&void 0!==E?E:{},w=null!==(e=null===E||void 0===E?void 0:E.active)&&void 0!==e&&e,x=function(e){return g({variables:{config:Kr(Gr,e)}})},j=[{name:"title",label:"Screen title",value:null!==(t=O.title)&&void 0!==t?t:"",width:282},{name:"text",label:"Text content",value:null!==(n=O.text)&&void 0!==n?n:"",width:502,multiline:!0,rows:6},{name:"acceptButtonText",label:"Accept button text",value:null!==(l=O.acceptButtonText)&&void 0!==l?l:"",placeholder:"I accept",width:282},{name:"cancelButtonText",label:"Cancel button text",value:null!==(i=O.cancelButtonText)&&void 0!==i?i:"",placeholder:"Cancel",width:282}],C=function(e){return function(e){return On.a(wn.a("name",e))(j)}(e).value},k={title:C("title"),text:C("text"),acceptButtonText:C("acceptButtonText"),cancelButtonText:C("cancelButtonText")},S=hn.d().shape({title:hn.e().required().max(50,"Too long"),text:hn.e().required(),acceptButtonText:hn.e().required().max(50,"Too long"),cancelButtonText:hn.e().required().max(50,"Too long")});return r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:v.rowWrapper},r.a.createElement($t,null,"Terms & Conditions")),r.a.createElement("div",{className:v.section},r.a.createElement("div",{className:v.enable},r.a.createElement("span",null,"Show on screen"),r.a.createElement(Zn,{checked:w,onChange:function(e){return x({active:e.target.checked})}}),r.a.createElement(Qt,null,w?"Yes":"No")),r.a.createElement("div",{className:v.header},r.a.createElement(Gt,null,"Info card"),!p&&r.a.createElement(lt,{className:v.transparentButton,onClick:function(){return h(!0)}},r.a.createElement(Wi,null))),r.a.createElement(on.d,{enableReinitialize:!0,initialValues:k,validationSchema:S,onSubmit:function(e){return x(e)},onReset:function(){h(!1),d(null)}},r.a.createElement(on.c,null,r.a.createElement(ul,null),j.map((function(e,t){return r.a.createElement("div",{className:v.row,key:t},r.a.createElement(cv,{editing:p,name:e.name,width:e.width,placeholder:e.placeholder,label:e.label,value:e.value,multiline:e.multiline,rows:e.rows,onFocus:function(){return d(null)}}))})),r.a.createElement("div",{className:N()(v.row,v.submit)},p&&r.a.createElement(r.a.Fragment,null,r.a.createElement(ut,{color:"primary",type:"submit"},"Save"),r.a.createElement(ut,{color:"secondary",type:"reset"},"Cancel"),u&&r.a.createElement(co,{className:v.errorMessage},"Failed to save changes")))))))},pv=Object(m.a)({grid:{flex:1,height:"100%"},content:{flex:1,marginLeft:48,paddingTop:15}}),hv=[{label:"Contact information",route:"/settings/operator-info/contact-info",component:Dg},{label:"Receipt",route:"/settings/operator-info/receipt-printing",component:rv},{label:"Coin ATM Radar",route:"/settings/operator-info/coin-atm-radar",component:gg},{label:"Terms & Conditions",route:"/settings/operator-info/terms-conditions",component:fv}],bv=function(e){var t=e.wizard;return r.a.createElement(g.e,null,r.a.createElement(g.b,{exact:!0,from:"/settings/operator-info",to:"/settings/operator-info/contact-info"}),r.a.createElement(g.c,{exact:!0,path:"/"}),hv.map((function(e){var n=e.route,a=e.component,l=e.key;return r.a.createElement(g.c,{path:n,key:l},r.a.createElement(a,{name:l,wizard:t}))})))},gv=function(e){var t=e.wizard,n=void 0!==t&&t,a=pv(),l=Object(g.h)(),i=Object(g.i)();return r.a.createElement(r.a.Fragment,null,r.a.createElement(uo,{title:"Operator information"}),r.a.createElement(_m.a,{container:!0,className:a.grid},r.a.createElement(xa,{data:hv,isSelected:function(e){return i.pathname===e.route},displayName:function(e){return e.label},onClick:function(e){return l.push(e.route)}}),r.a.createElement("div",{className:a.content},r.a.createElement(bv,{wizard:n}))))},vv=n(533),yv={running:H,notRunning:"#ffeceb"},Ev={running:"#ecfbef",notRunning:X},Ov={uptimeContainer:{display:"inline-block",minWidth:104,margin:[[0,20]]},name:{extend:Ee.label1,paddingLeft:4,color:J}},wv=Object(m.a)(Ov),xv=Object(m.a)({root:{borderRadius:4,marginTop:4,marginRight:2,marginBottom:4,marginLeft:2,height:24,backgroundColor:function(e){var t=e.type;return Ev[t]}},label:{fontSize:se,fontWeight:500,fontFamily:fe,padding:[[4,8]],color:function(e){var t=e.type;return yv[t]}}}),jv=function(e){var t,n=e.process,a=(Object(L.a)(e,["process"]),wv());return r.a.createElement("div",{className:a.uptimeContainer},r.a.createElement("div",{className:a.name},vv.a(n.name)),r.a.createElement(ti.a,{label:"RUNNING"===n.state?"Running for ".concat((t=n.uptime,t<60?"".concat(t,"s"):t<3600?"".concat(Math.floor(t/60),"m"):t<86400?"".concat(Math.floor(t/60/60),"h"):"".concat(Math.floor(t/60/60/24),"d"))):Tl(n.state),classes:xv({type:"RUNNING"===n.state?"running":"notRunning"})}))};function Cv(){var e=Object(tn.a)(["\n query ServerData($limit: Int, $from: Date, $until: Date) {\n serverVersion\n uptime {\n name\n state\n uptime\n }\n serverLogs(limit: $limit, from: $from, until: $until) {\n logLevel\n id\n timestamp\n message\n }\n }\n"]);return Cv=function(){return e},e}function kv(){var e=Object(tn.a)(["\n query ServerData($limit: Int, $from: Date, $until: Date) {\n serverLogsCsv(limit: $limit, from: $from, until: $until)\n }\n"]);return kv=function(){return e},e}var Sv={serverTableWrapper:{extend:Iu.tableWrapper,maxWidth:"100%",marginLeft:0},serverVersion:{extend:Ee.p,color:J,margin:"auto 0 auto 0"},headerLine2:{display:"flex",justifyContent:"space-between",marginBottom:24},uptimeContainer:{margin:"auto 0 auto 0"}},Nv=Ue.a(Iu,Sv),Iv=Object(m.a)(Nv),Lv="Show all",Bv=sn()(kv()),Pv=sn()(Cv()),Fv=function(){var e,t=Iv(),n=Object(a.useRef)(),l=Object(a.useState)(null),i=Object(o.a)(l,2),c=i[0],s=i[1],u=Object(a.useState)(Lv),d=Object(o.a)(u,2),m=d[0],f=d[1],p=Object(nn.c)(Pv,{onCompleted:function(){return s("")},variables:{limit:500}}).data,h=null===p||void 0===p?void 0:p.serverVersion,b=null!==(e=null===p||void 0===p?void 0:p.uptime)&&void 0!==e?e:[],g=mn.a(ll.a(Lv),vc.a,br.a(["error","info","debug"]),jn.a(Or.a(["logLevel"])),Or.a(["serverLogs"]));return r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:t.titleWrapper},r.a.createElement("div",{className:t.titleAndButtonsContainer},r.a.createElement(gn,null,"Server"),p&&r.a.createElement("div",{className:t.buttonsWrapper},r.a.createElement(wp,{title:"Download logs",name:"server-logs",query:Bv,logs:p.serverLogs,getLogs:function(e){return Or.a(["serverLogsCsv"])(e)}}),r.a.createElement(Zt,null,c))),r.a.createElement("div",{className:t.serverVersion},h&&r.a.createElement("span",null,"Server version: v",h))),r.a.createElement("div",{className:t.headerLine2},p&&r.a.createElement(ei,{onSelectedItemChange:function(e){n.current&&n.current.scrollTo(0,0),f(e)},label:"Level",items:g(p),default:Lv,selectedItem:m}),r.a.createElement("div",{className:t.uptimeContainer},b&&b.map((function(e,t){return r.a.createElement(jv,{key:t,process:e})})))),r.a.createElement("div",{className:t.wrapper},r.a.createElement("div",{ref:n,className:t.serverTableWrapper},r.a.createElement(jp,{className:t.table},r.a.createElement(Np,null,r.a.createElement(Tp,{header:!0},r.a.createElement(Bp,{className:t.dateColumn},"Date"),r.a.createElement(Bp,{className:t.levelColumn},"Level"),r.a.createElement(Bp,{className:t.fillColumn}))),r.a.createElement(Cp,null,p&&p.serverLogs.filter((function(e){return m===Lv||e.logLevel===m})).map((function(e,t){return r.a.createElement(Tp,{key:t,size:"sm"},r.a.createElement(Sp,null,(n=e.timestamp,Mu()(n).format("YYYY-MM-DD HH:mm"))),r.a.createElement(Sp,null,e.logLevel),r.a.createElement(Sp,null,e.message));var n})))))))};function Dv(){return(Dv=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var Wv=a.createElement("desc",null,"Created with Sketch."),Rv=a.createElement("g",{id:"icon/action/edit/white",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},a.createElement("path",{d:"M1,18 L1,18 C1,19.657 2.343,21 4,21 L18,21 C19.657,21 21,19.657 21,18",id:"Stroke-1",stroke:"#FFFFFF",strokeWidth:2}),a.createElement("polygon",{id:"Stroke-3",stroke:"#FFFFFF",strokeWidth:2,points:"6 12 17 1 21 5 10 16 6 16"}));function zv(e,t){var n=e.title,r=e.titleId,l=Tv(e,["title","titleId"]);return a.createElement("svg",Dv({width:"22px",height:"22px",viewBox:"0 0 22 22",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,Wv,Rv)}var Av=a.forwardRef(zv),Mv=(n.p,{tr:function(e){return{margin:0,height:e.height}},table:function(e){return{width:e.width}},head:{display:"flex",flex:1,justifyContent:"space-between",alignItems:"center",paddingRight:12},button:{marginBottom:1},itemWrapper:{display:"flex",flexDirection:"column",marginTop:16,minHeight:35},label:{extend:Ee.label1,color:J,marginBottom:4},item:{extend:Ee.p,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}}),qv=Object(m.a)(Mv),$v=function(e){var t=e.width,n=void 0===t?378:t,a=e.height,l=void 0===a?128:a,i=e.title,o=e.items,c=e.onEdit,s=e.className,u=qv({width:n,height:l});return r.a.createElement(r.a.Fragment,null,r.a.createElement(gl,{className:N()(s,u.table)},r.a.createElement(vl,null,r.a.createElement(wl,{className:u.head},i,r.a.createElement(lt,{onClick:c,className:u.button},r.a.createElement(Av,null)))),r.a.createElement(El,null,r.a.createElement(jl,{className:u.tr},r.a.createElement(Ol,{width:n},o&&r.a.createElement(r.a.Fragment,null,o[0]&&r.a.createElement("div",{className:u.itemWrapper},r.a.createElement("div",{className:u.label},o[0].label),r.a.createElement("div",{className:u.item},o[0].value)),o[1]&&r.a.createElement("div",{className:u.itemWrapper},r.a.createElement("div",{className:u.label},o[1].label),r.a.createElement("div",{className:u.item},o[1].value))))))))};function Hv(){var e=Object(tn.a)(["\n mutation Save($accounts: JSONObject) {\n saveAccounts(accounts: $accounts)\n }\n"]);return Hv=function(){return e},e}function Vv(){var e=Object(tn.a)(["\n query getData {\n accounts\n }\n"]);return Vv=function(){return e},e}var Yv=sn()(Vv()),Gv=sn()(Hv()),Zv=Object(m.a)({wrapper:{marginLeft:1}}),_v=function(){var e,t=Object(a.useState)(null),n=Object(o.a)(t,2),l=n[0],i=n[1],c=Object(nn.c)(Yv).data,s=Object(nn.b)(Gv,{onCompleted:function(){return i(null)},refetchQueries:["getData"]}),u=Object(o.a)(s,1)[0],d=Zv(),m=null!==(e=null===c||void 0===c?void 0:c.accounts)&&void 0!==e?e:{},f=function(e,t){var n=hr.a(xn.a("face"))(t),a=m[e]||{};return jn.a((function(e){var t,n=e.display,r=e.code;return{label:n,value:e.long?(t=a[r],!t||t.length<=20?t:"".concat(t.slice(0,8),"(...)").concat(t.slice(t.length-8,t.length))):a[r]}}))(n)};return r.a.createElement("div",{className:d.wrapper},r.a.createElement(uo,{title:"3rd Party Services"}),r.a.createElement(_m.a,{container:!0,spacing:4},ql.a(cm).map((function(e){return r.a.createElement(_m.a,{item:!0,key:e.code},r.a.createElement($v,{editMessage:"Configure "+e.title,title:e.title,onEdit:function(){return i(e)},items:f(e.code,e.elements)}))}))),l&&r.a.createElement(po,{title:"Edit ".concat(l.name),width:478,handleClose:function(){return i(null)},open:!0},r.a.createElement(Km,{save:function(e){return u({variables:{accounts:Object(I.a)({},l.code,e)}})},elements:l.elements,validationSchema:l.validationSchema,value:m[l.code]})))},Uv=n(534),Jv=n(535),Kv=n(560);function Qv(){return(Qv=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var ey=a.createElement("desc",null,"Created with Sketch."),ty=a.createElement("g",{id:"icon/ID/card/white",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},a.createElement("polygon",{id:"Stroke-1",stroke:"#FFFFFF",strokeWidth:1.6,points:"0 16 22 16 22 0 0 0"}),a.createElement("line",{x1:11.7857143,y1:4,x2:18.8571429,y2:4,id:"Stroke-3",stroke:"#FFFFFF",strokeWidth:1.6}),a.createElement("line",{x1:11.7857143,y1:7.2,x2:18.8571429,y2:7.2,id:"Stroke-4",stroke:"#FFFFFF",strokeWidth:1.6}),a.createElement("polygon",{id:"Stroke-5",stroke:"#FFFFFF",strokeWidth:1.6,points:"3.14285714 11.2 8.64285714 11.2 8.64285714 4 3.14285714 4"}));function ny(e,t){var n=e.title,r=e.titleId,l=Xv(e,["title","titleId"]);return a.createElement("svg",Qv({width:"22px",height:"16px",viewBox:"0 0 22 16",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,ey,ty)}var ay=a.forwardRef(ny);n.p;function ry(){return(ry=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var iy=a.createElement("desc",null,"Created with Sketch."),oy=a.createElement("g",{id:"icon/ID/phone/white",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},a.createElement("path",{d:"M6.47150618,12.52898 C9.939556,15.9970298 13.7804112,16.1146315 15.4756355,15.9586292 C16.0220434,15.9090285 16.5308507,15.6578249 16.9188563,15.2698193 L19.0004862,13.1881894 L17.0220577,11.210561 L15.0436293,10.5505516 L13.7244104,11.8697705 C13.7244104,11.8697705 12.4059914,13.1881894 9.10914407,9.89054208 C5.81229671,6.59449473 7.13071565,5.27527578 7.13071565,5.27527578 L8.4499346,3.95605683 L7.78992512,1.97842842 L5.81229671,0 L3.73066681,2.0816299 C3.34186123,2.46963548 3.09145763,2.97844279 3.04105691,3.52485063 C2.88585468,5.22007499 3.00345637,9.06013015 6.47150618,12.52898 Z",id:"Stroke-1-Copy",stroke:"#FFFFFF",strokeWidth:1.6}));function cy(e,t){var n=e.title,r=e.titleId,l=ly(e,["title","titleId"]);return a.createElement("svg",ry({width:"22px",height:"16px",viewBox:"0 0 22 16",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,iy,oy)}var sy=a.forwardRef(cy);n.p;function uy(){return(uy=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var my=a.createElement("desc",null,"Created with Sketch."),fy=a.createElement("g",{id:"icon/ID/phone/zodiac",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},a.createElement("path",{d:"M6.47150618,12.52898 C9.939556,15.9970298 13.7804112,16.1146315 15.4756355,15.9586292 C16.0220434,15.9090285 16.5308507,15.6578249 16.9188563,15.2698193 L19.0004862,13.1881894 L17.0220577,11.210561 L15.0436293,10.5505516 L13.7244104,11.8697705 C13.7244104,11.8697705 12.4059914,13.1881894 9.10914407,9.89054208 C5.81229671,6.59449473 7.13071565,5.27527578 7.13071565,5.27527578 L8.4499346,3.95605683 L7.78992512,1.97842842 L5.81229671,0 L3.73066681,2.0816299 C3.34186123,2.46963548 3.09145763,2.97844279 3.04105691,3.52485063 C2.88585468,5.22007499 3.00345637,9.06013015 6.47150618,12.52898 Z",id:"Stroke-1-Copy",stroke:"#1B2559",strokeWidth:1.6}));function py(e,t){var n=e.title,r=e.titleId,l=dy(e,["title","titleId"]);return a.createElement("svg",uy({width:"22px",height:"16px",viewBox:"0 0 22 16",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,my,fy)}var hy=a.forwardRef(py);n.p;function by(){return(by=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var vy=a.createElement("desc",null,"Created with Sketch."),yy=a.createElement("g",{id:"icon/ID/photo/white",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},a.createElement("path",{d:"M11,13 C8.7912,13 7,11.2088 7,9 C7,6.7912 8.7912,5 11,5 C13.2088,5 15,6.7912 15,9 C15,11.2088 13.2088,13 11,13 Z M15.7142857,2.4 L13.3571429,0 L8.64285714,0 L6.28571429,2.4 L0,2.4 L0,16 L22,16 L22,2.4 L15.7142857,2.4 Z",id:"Stroke-1",stroke:"#FFFFFF",strokeWidth:1.6}));function Ey(e,t){var n=e.title,r=e.titleId,l=gy(e,["title","titleId"]);return a.createElement("svg",by({width:"22px",height:"16px",viewBox:"0 0 22 16",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,vy,yy)}var Oy=a.forwardRef(Ey);n.p;function wy(){return(wy=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var jy=a.createElement("desc",null,"Created with Sketch."),Cy=a.createElement("g",{id:"icon/ID/photo/zodiac",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},a.createElement("path",{d:"M11,13 C8.7912,13 7,11.2088 7,9 C7,6.7912 8.7912,5 11,5 C13.2088,5 15,6.7912 15,9 C15,11.2088 13.2088,13 11,13 Z M15.7142857,2.4 L13.3571429,0 L8.64285714,0 L6.28571429,2.4 L0,2.4 L0,16 L22,16 L22,2.4 L15.7142857,2.4 Z",id:"Stroke-1",stroke:"#1B2559",strokeWidth:1.6}));function ky(e,t){var n=e.title,r=e.titleId,l=xy(e,["title","titleId"]);return a.createElement("svg",wy({width:"22px",height:"16px",viewBox:"0 0 22 16",ref:t,"aria-labelledby":r},l),n?a.createElement("title",{id:r},n):null,jy,Cy)}var Sy=a.forwardRef(ky),Ny=(n.p,{wrapper:{display:"flex",flexDirection:"column",marginTop:24},row:{display:"flex",flexDirection:"row",marginBottom:36},secondRow:{display:"flex",flexDirection:"row",justifyContent:"space-between",marginBottom:36},lastRow:{display:"flex",flexDirection:"row",marginBottom:32},label:{color:J,margin:[[0,0,6,0]]},txIcon:{marginRight:10},popover:{height:164,width:215},idButton:{marginRight:4},idCardDataCard:{extend:Ee.p,display:"flex",padding:[[11,8]],"& > div":{display:"flex",flexDirection:"column","& > div":{width:144,height:37,marginBottom:15,"&:last-child":{marginBottom:0}}}},bold:{fontWeight:700},direction:{width:233},availableIds:{width:232},exchangeRate:{width:250},commission:{width:217},address:{width:280},transactionId:{width:280},sessionId:{width:215}}),Iy=function(e){return"cashOut"===e.txClass?function(e){return e.hasError?"Error":e.dispense?"Success":e.expired?"Expired":"Pending"}(e):function(e){return e.operatorCompleted?"Cancelled":e.hasError?"Error":e.sendConfirmed?"Sent":e.expired?"Expired":"Pending"}(e)},Ly=Object(m.a)(Ny),By=function(e){var t=e.children,n=Ly();return r.a.createElement(Kt,{className:n.label},t)},Py=function(e){var t=e.it,n=Ly(),a=Number.parseFloat(t.fiat),l=sd(new Vu.a(t.cryptoAtoms),t.cryptoCode),i=Number.parseFloat(t.commissionPercentage,2),o=Number(a*i).toFixed(2),c=Number(a/l).toFixed(3),s="1 ".concat(t.cryptoCode," = ").concat(c," ").concat(t.fiatCode),u=t.customerIdCardData&&{name:"".concat(Tl(t.customerIdCardData.firstName)," ").concat(Tl(t.customerIdCardData.lastName)),age:Mu()().diff(Mu()(t.customerIdCardData.dateOfBirth),"years"),country:t.customerIdCardData.country,idCardNumber:t.customerIdCardData.documentNumber,idCardExpirationDate:Mu()(t.customerIdCardData.expirationDate).format("DD-MM-YYYY")};return r.a.createElement("div",{className:n.wrapper},r.a.createElement("div",{className:n.row},r.a.createElement("div",{className:n.direction},r.a.createElement(By,null,"Direction"),r.a.createElement("div",null,r.a.createElement("span",{className:n.txIcon},"cashOut"===t.txClass?r.a.createElement(Oo,null):r.a.createElement(kc,null)),r.a.createElement("span",null,"cashOut"===t.txClass?"Cash-out":"Cash-in"))),r.a.createElement("div",{className:n.availableIds},r.a.createElement(By,null,"Available IDs"),r.a.createElement(Xi.a,{display:"flex",flexDirection:"row"},t.customerPhone&&r.a.createElement(tt,{className:n.idButton,name:"phone",Icon:hy,InverseIcon:sy},t.customerPhone),t.customerIdCardPhotoPath&&!t.customerIdCardData&&r.a.createElement(tt,{popoverClassname:n.popover,className:n.idButton,name:"card",Icon:vu,InverseIcon:ay},r.a.createElement("img",{className:n.idCardPhoto,src:"".concat(C,"/id-card-photo/").concat(t.customerIdCardPhotoPath),alt:""})),t.customerIdCardData&&r.a.createElement(tt,{className:n.idButton,name:"card",Icon:vu,InverseIcon:ay},r.a.createElement("div",{className:n.idCardDataCard},r.a.createElement("div",null,r.a.createElement("div",null,r.a.createElement(By,null,"Name"),r.a.createElement("div",null,u.name)),r.a.createElement("div",null,r.a.createElement(By,null,"Age"),r.a.createElement("div",null,u.age)),r.a.createElement("div",null,r.a.createElement(By,null,"Country"),r.a.createElement("div",null,u.country))),r.a.createElement("div",null,r.a.createElement("div",null,r.a.createElement(By,null,"ID number"),r.a.createElement("div",null,u.idCardNumber)),r.a.createElement("div",null,r.a.createElement(By,null,"Expiration date"),r.a.createElement("div",null,u.idCardExpirationDate))))),t.customerFrontCameraPath&&r.a.createElement(tt,{name:"cam",Icon:Sy,InverseIcon:Oy},r.a.createElement("img",{src:"".concat(C,"/front-camera-photo/").concat(t.customerFrontCameraPath),alt:""})))),r.a.createElement("div",{className:n.exchangeRate},r.a.createElement(By,null,"Exchange rate"),r.a.createElement("div",null,l>0?s:"-")),r.a.createElement("div",{className:n.commission},r.a.createElement(By,null,"Commission"),r.a.createElement("div",null,"".concat(o," ").concat(t.fiatCode," (").concat(100*i," %)"))),r.a.createElement("div",null,r.a.createElement(By,null,"Fixed fee"),r.a.createElement("div",null,"cashIn"===t.txClass?"".concat(Number.parseFloat(t.cashInFee)," ").concat(t.fiatCode):"N/A"))),r.a.createElement("div",{className:n.secondRow},r.a.createElement("div",{className:n.address},r.a.createElement(By,null,"Address"),r.a.createElement("div",null,r.a.createElement(jd,null,function(){return ud(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",arguments.length>1&&void 0!==arguments[1]?arguments[1]:"").replace(/(.{5})/g,"$1 ")}(t.cryptoCode,t.toAddress)))),r.a.createElement("div",{className:n.transactionId},r.a.createElement(By,null,"Transaction ID"),r.a.createElement("div",null,"cashOut"===t.txClass?"N/A":r.a.createElement(jd,null,t.txHash))),r.a.createElement("div",{className:n.sessionId},r.a.createElement(By,null,"Session ID"),r.a.createElement(jd,null,t.id))),r.a.createElement("div",{className:n.lastRow},r.a.createElement("div",null,r.a.createElement(By,null,"Transaction status"),r.a.createElement("span",{className:n.bold},Iy(t)))))},Fy=Object(a.memo)(Py,(function(e,t){return e.id===t.id}));function Dy(){var e=Object(tn.a)(["\n query transactions($limit: Int, $from: Date, $until: Date) {\n transactions(limit: $limit, from: $from, until: $until) {\n id\n txClass\n txHash\n toAddress\n commissionPercentage\n expired\n machineName\n operatorCompleted\n sendConfirmed\n dispense\n hasError: error\n deviceId\n fiat\n cashInFee\n fiatCode\n cryptoAtoms\n cryptoCode\n toAddress\n created\n customerName\n customerIdCardData\n customerIdCardPhotoPath\n customerFrontCameraPath\n customerPhone\n }\n }\n"]);return Dy=function(){return e},e}function Ty(){var e=Object(tn.a)(["\n query transactions($limit: Int, $from: Date, $until: Date) {\n transactionsCsv(limit: $limit, from: $from, until: $until)\n }\n"]);return Ty=function(){return e},e}var Wy=Object(m.a)(wd),Ry=sn()(Ty()),zy=sn()(Dy()),Ay=function(){var e=Wy(),t=Object(nn.c)(zy,{variables:{limit:1e3}}),n=t.data,a=t.loading,l=[{header:"",width:62,size:"sm",view:function(e){return"cashOut"===e.txClass?r.a.createElement(Oo,null):r.a.createElement(kc,null)}},{header:"Machine",name:"machineName",width:180,size:"sm",view:Or.a(["machineName"])},{header:"Customer",width:162,size:"sm",view:function(e){return e.customerName?e.customerName:e.customerIdCardData?function(e){var t=e.firstName,n=e.lastName;return"".concat(Uv.a(Jv.a,Kv.a)(t),". ").concat(n)}(e.customerIdCardData):e.customerPhone}},{header:"Cash",width:144,textAlign:"right",size:"sm",view:function(e){return"".concat(Number.parseFloat(e.fiat)," ").concat(e.fiatCode)}},{header:"Crypto",width:144,textAlign:"right",size:"sm",view:function(e){return"".concat(sd(new Vu.a(e.cryptoAtoms),e.cryptoCode).toFormat(5)," ").concat(e.cryptoCode)}},{header:"Address",view:function(e){return ud(e.cryptoCode,e.toAddress)},className:e.overflowTd,size:"sm",width:140},{header:"Date (UTC)",view:function(e){return Mu.a.utc(e.created).format("YYYY-MM-DD HH:mm:ss")},textAlign:"right",size:"sm",width:200},{header:"Status",view:function(e){return Iy(e)},size:"sm",width:80}];return r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:e.titleWrapper},r.a.createElement("div",{className:e.titleAndButtonsContainer},r.a.createElement(gn,null,"Transactions"),n&&r.a.createElement("div",{className:e.buttonsWrapper},r.a.createElement(wp,{title:"Download logs",name:"transactions",query:Ry,getLogs:function(e){return Or.a(["transactionsCsv"])(e)}}))),r.a.createElement("div",{className:e.headerLabels},r.a.createElement("div",null,r.a.createElement(Oo,null),r.a.createElement("span",null,"Cash-out")),r.a.createElement("div",null,r.a.createElement(kc,null),r.a.createElement("span",null,"Cash-in")))),r.a.createElement(od,{loading:a,emptyText:"No transactions so far",elements:l,data:Or.a(["transactions"])(n),Details:Fy,expandable:!0}))},My=n(536),qy=Object(m.a)({radioLabel:{height:40,padding:[[0,10]]},radio:{padding:4,margin:4},radioGroup:{flexDirection:"row"},error:{color:X},specialLabel:{height:40,padding:0},specialGrid:{display:"grid",gridTemplateColumns:[[182,162,141]]},directionIcon:{marginRight:2},directionName:{marginLeft:6},thresholdWrapper:{display:"flex"},thresholdField:{margin:10,width:208},space:{marginLeft:6,marginRight:6},lastSpace:{marginLeft:6},suspensionDays:{width:34},input:{marginTop:-2},limitedInput:{width:50},daysInput:{width:60}}),$y=hn.e().required(),Hy=hn.d().shape({threshold:hn.c(),thresholdDays:hn.c()}),Vy=hn.d().shape({requirement:hn.e().required(),suspensionDays:hn.c()}),Yy=hn.d().shape({triggerType:$y,requirement:Vy,threshold:Hy}),Gy=hn.d().shape({triggerType:$y,threshold:Hy}),Zy=[{display:"Transaction amount",code:"txAmount"},{display:"Transaction volume",code:"txVolume"},{display:"Transaction velocity",code:"txVelocity"},{display:"Consecutive days",code:"consecutiveDays"}],_y={schema:Gy,options:Zy,Component:function(){var e=qy(),t=Object(on.e)(),n=t.errors,a=t.touched,l=t.values,i=Object(I.a)({},e.error,n.triggerType&&a.triggerType),o=gr.a(null===l||void 0===l?void 0:l.triggerType),c=o(["txAmount","txVolume","txVelocity"]),s=o(["txVolume","txVelocity","consecutiveDays"]);return r.a.createElement(r.a.Fragment,null,r.a.createElement(Xi.a,{display:"flex",alignItems:"center"},r.a.createElement($t,{className:N()(i)},"Choose trigger type")),r.a.createElement(on.b,{component:Jn,name:"triggerType",options:Zy,labelClassName:e.radioLabel,radioClassName:e.radio,className:e.radioGroup}),r.a.createElement("div",{className:e.thresholdWrapper},c&&r.a.createElement(on.b,{className:e.thresholdField,component:Qn,label:"Threshold",size:"lg",name:"threshold.threshold"}),s&&r.a.createElement(on.b,{className:e.thresholdField,component:Qn,label:"Threshold Days",size:"lg",name:"threshold.thresholdDays"})))},initialValues:{triggerType:"",threshold:""}},Uy=hn.d().shape({requirement:Vy}),Jy=[{display:"SMS verification",code:"sms"},{display:"ID card image",code:"idCardPhoto"},{display:"ID data",code:"idCardData"},{display:"Customer camera",code:"facephoto"},{display:"Sanctions",code:"sanctions"},{display:"US SSN",code:"usSsn"},{display:"Suspend",code:"suspend"},{display:"Block",code:"block"}],Ky={schema:Uy,options:Jy,Component:function(){var e,t=qy(),n=Object(on.e)(),a=n.errors,l=n.values,i=Object(I.a)({},t.error,a.requirement),o="suspend"===(null===l||void 0===l||null===(e=l.requirement)||void 0===e?void 0:e.requirement);return r.a.createElement(r.a.Fragment,null,r.a.createElement(Xi.a,{display:"flex",alignItems:"center"},r.a.createElement($t,{className:N()(i)},"Choose a requirement")),r.a.createElement(on.b,{component:Jn,name:"requirement.requirement",options:Jy,labelClassName:t.specialLabel,radioClassName:t.radio,className:N()(t.radioGroup,t.specialGrid)}),o&&r.a.createElement(on.b,{className:t.thresholdField,component:Qn,label:"Days",size:"lg",name:"requirement.suspensionDays"}))},initialValues:{requirement:""}},Qy=function(e,t,n){return function(a){return e?mn.a(xn.a(t),On.a(wn.a(null!==n&&void 0!==n?n:"code",a)))(e):""}},Xy=function(){var e,t=Object(on.e)().values,n=qy(),a=null===t||void 0===t||null===(e=t.requirement)||void 0===e?void 0:e.requirement,l="suspend"===a,i=Qy(Jy,"display")(a);return r.a.createElement(Xi.a,{display:"flex",alignItems:"baseline"},"".concat(i," ").concat(l?"for":""),l&&r.a.createElement(on.b,{bold:!0,className:n.suspensionDays,name:"requirement.suspensionDays",component:Qn,textAlign:"center"}),l&&"days")},eE=function(e){var t=e.requirement,n=e.suspensionDays,a=qy(),l=Qy(Jy,"display")(t),i="suspend"===t;return r.a.createElement(Xi.a,{display:"flex",alignItems:"baseline"},"".concat(l," ").concat(i?"for":""),i&&r.a.createElement(Gt,{className:a.space,noMargin:!0},n),i&&"days")},tE=function(e){var t,n,a,l=e.config,i=e.currency,o=e.isEdit,c=qy(),s=(t={},Object(I.a)(t,c.input,!0),Object(I.a)(t,c.limitedInput,"txVelocity"===(null===l||void 0===l?void 0:l.triggerType)),Object(I.a)(t,c.daysInput,"consecutiveDays"===(null===l||void 0===l?void 0:l.triggerType)),t),u=null===l||void 0===l||null===(n=l.threshold)||void 0===n?void 0:n.threshold,d=null===l||void 0===l||null===(a=l.threshold)||void 0===a?void 0:a.thresholdDays,m=o?r.a.createElement(on.b,{bold:!0,className:N()(s),name:"threshold.threshold",component:Qn,textAlign:"right"}):r.a.createElement(Gt,{noMargin:!0},u),f=o?r.a.createElement(on.b,{bold:!0,className:N()(s),name:"threshold.thresholdDays",component:Qn,textAlign:"right"}):r.a.createElement(Gt,{noMargin:!0},d);switch(null===l||void 0===l?void 0:l.triggerType){case"txAmount":return r.a.createElement(Xi.a,{display:"flex",alignItems:"baseline",justifyContent:"right"},m,r.a.createElement(Qt,{noMargin:!0,className:c.lastSpace},i));case"txVolume":return r.a.createElement(Xi.a,{display:"flex",alignItems:"baseline",justifyContent:"right"},m,r.a.createElement(Qt,{noMargin:!0,className:c.lastSpace},i),r.a.createElement(Kt,{noMargin:!0,className:c.space},"in"),f,r.a.createElement(Kt,{noMargin:!0,className:c.lastSpace},"days"));case"txVelocity":return r.a.createElement(Xi.a,{display:"flex",alignItems:"baseline",justifyContent:"right"},m,r.a.createElement(Kt,{className:c.space,noMargin:!0},"transactions in"),f,r.a.createElement(Kt,{className:c.lastSpace,noMargin:!0},"days"));case"consecutiveDays":return r.a.createElement(Xi.a,{display:"flex",alignItems:"baseline",justifyContent:"right"},f,r.a.createElement(Kt,{className:c.lastSpace,noMargin:!0},"days"));default:return""}},nE=Object(a.memo)((function(e){var t=e.currency,n=Object(on.e)().values;return r.a.createElement(tE,{isEdit:!0,config:n,currency:t})})),aE=function(e){var t=e.config,n=e.currency;return r.a.createElement(tE,{config:t,currency:n})},rE=function(e,t){return[{name:"triggerType",size:"sm",width:230,input:function(e){var t=e.field.value;return r.a.createElement(r.a.Fragment,null,Qy(Zy,"display")(t))},view:Qy(Zy,"display"),inputProps:{options:Zy,valueProp:"code",getLabel:Or.a(["display"]),optionsLimit:null}},{name:"requirement",size:"sm",width:230,bypassField:!0,input:Xy,view:function(e){return r.a.createElement(eE,e)}},{name:"threshold",size:"sm",width:284,textAlign:"right",input:function(){return r.a.createElement(nE,{currency:e})},view:function(t,n){return r.a.createElement(aE,{config:n,currency:e})}}]},lE=jn.a(xn.a("code"))(Zy),iE=[My.a((function(e,t){return lE.indexOf(e.triggerType) p":{width:330,marginTop:4,marginLeft:16}},actionButton:{marginBottom:32},actionButtonLink:{textDecoration:"none",color:M},error:{color:X},button:{marginTop:40},formButton:{margin:[[24,0,0]]}};function ZE(){var e=Object(tn.a)(["\n mutation Save($accounts: JSONObject) {\n saveAccounts(accounts: $accounts)\n }\n"]);return ZE=function(){return e},e}function _E(){var e=Object(tn.a)(["\n {\n config\n accounts\n }\n"]);return _E=function(){return e},e}var UE=sn()(_E()),JE=sn()(ZE()),KE=Object(m.a)(Object(c.a)(Object(c.a)({},GE),{},{content:{width:820},radioLabel:Object(c.a)(Object(c.a)({},GE.radioLabel),{},{width:280}),wrapper:{width:1200,height:100,margin:[[0,"auto"]]},title:{marginLeft:8,marginBottom:5},info:{marginTop:20,marginBottom:20}})),QE=[{code:"enable",display:"Yes, I will"},{code:"disable",display:"No, not for now"}];var XE=function(e){var t,n,l=e.doContinue,i=KE(),c=Object(a.useState)(null),s=Object(o.a)(c,2),u=s[0],d=s[1],m=Object(a.useState)(!1),f=Object(o.a)(m,2),p=f[0],h=f[1],b=Object(nn.c)(UE),g=b.data,v=b.refetch,y=Object(nn.b)(JE,{onCompleted:l}),E=Object(o.a)(y,1)[0],O=null!==(t=null===g||void 0===g?void 0:g.accounts)&&void 0!==t?t:[],w=(n={},Object(I.a)(n,i.title,!0),Object(I.a)(n,i.error,p),n);return r.a.createElement("div",{className:i.wrapper},r.a.createElement("div",{className:i.content},r.a.createElement(At,null,"Twilio (SMS service)"),r.a.createElement(Xi.a,{display:"flex",alignItems:"end"},r.a.createElement($t,{noMargin:!0,className:N()(w)},"Will you setup a two way machine or compliance?"),r.a.createElement(Br,{width:304},r.a.createElement(Vt,null,"Two-way machines allow your customers not only to buy (cash-in) but also sell cryptocurrencies (cash-out)."),r.a.createElement(Vt,null,"You\u2019ll need an SMS service for cash-out transactions and for any compliance triggers"))),r.a.createElement(Hn,{labelClassName:i.radioLabel,className:i.radioGroup,options:QE,value:u,onChange:function(e){d(e.target.value),h(!1)}}),r.a.createElement(YE,{className:i.info},"To set up Twilio please read the instructions from our support portal."),r.a.createElement(Rt,{link:"https://support.lamassu.is/hc/en-us/articles/115001203951-Twilio-for-SMS",label:"Twilio for SMS"}),"enable"===u&&r.a.createElement(r.a.Fragment,null,r.a.createElement($t,{noMargin:!0},"Enter credentials"),r.a.createElement(Km,{xs:6,save:function(e){return E({variables:{accounts:{twilio:e}}}).then((function(){return v()}))},value:O.twilio,elements:om.elements,validationSchema:om.validationSchema,buttonLabel:"Continue",buttonClass:i.formButton})),"enable"!==u&&r.a.createElement(Ae,{size:"lg",onClick:function(){if(!u)return h(!0);l()},className:i.button},"Continue")))},eO=n(537);function tO(){var e=Object(tn.a)(["\n mutation Save($config: JSONObject, $accounts: JSONObject) {\n saveConfig(config: $config)\n saveAccounts(accounts: $accounts)\n }\n"]);return tO=function(){return e},e}function nO(){var e=Object(tn.a)(["\n query getData {\n config\n accounts\n accountsConfig {\n code\n display\n class\n cryptos\n }\n cryptoCurrencies {\n code\n display\n }\n }\n"]);return nO=function(){return e},e}var aO=Object(m.a)(GE),rO=sn()(nO()),lO=sn()(tO()),iO=function(e){var t,n=e.data,l=e.doContinue,i=aO(),c=Object(nn.c)(rO).data,s=Object(nn.b)(lO,{onCompleted:l}),u=Object(o.a)(s,1)[0],d=Object(a.useState)(!1),m=Object(o.a)(d,2),f=m[0],p=m[1],h=null===n||void 0===n?void 0:n.coin,b=null===c||void 0===c?void 0:c.accountsConfig,g=null!==(t=null===c||void 0===c?void 0:c.cryptoCurrencies)&&void 0!==t?t:[];return r.a.createElement(r.a.Fragment,null,r.a.createElement($t,{className:f&&i.error},"All set"),r.a.createElement(Vt,null,"These are your wallet settings. You can later edit these and add additional coins."),r.a.createElement(Qi,{rowSize:"lg",titleLg:!0,name:"All set",namespaces:[h],data:Kr(h,Pr.a("coin",n)),elements:uf(g,b,!0)}),r.a.createElement(Ae,{size:"lg",onClick:function(){if(!sf.isValidSync(n))return p(!0);var e=Kr(h,Pr.a("coin",n)),t=Kr(Ar)(e);return p(!1),u({variables:{config:t}})},className:i.button},"Continue"))};function oO(){var e=Object(tn.a)(["\n mutation SaveAccountsBC($accounts: JSONObject) {\n saveAccounts(accounts: $accounts)\n }\n"]);return oO=function(){return e},e}function cO(){var e=Object(tn.a)(["\n {\n accounts\n }\n"]);return cO=function(){return e},e}var sO=Object(m.a)(Object(c.a)(Object(c.a)({},GE),{},{radioGroup:GE.radioGroup,radioLabel:Object(c.a)(Object(c.a)({},GE.radioLabel),{},{width:200})})),uO=sn()(cO()),dO=sn()(oO()),mO=[{code:"enable",display:"I will enable cash-out"},{code:"disable",display:"I won't enable cash-out"}],fO=function(e){var t,n=e.addData,l=sO(),i=Object(nn.c)(uO).data,c=Object(nn.b)(dO,{onCompleted:function(){return n({zeroConf:"blockcypher"})}}),s=Object(o.a)(c,1)[0],u=Object(a.useState)(null),d=Object(o.a)(u,2),m=d[0],f=d[1],p=Object(a.useState)(!1),h=Object(o.a)(p,2),b=h[0],g=h[1],v=null!==(t=null===i||void 0===i?void 0:i.accounts)&&void 0!==t?t:[];return r.a.createElement(r.a.Fragment,null,r.a.createElement($t,{className:b&&l.error},"Blockcypher"),r.a.createElement(Vt,null,"If you are enabling cash-out services, create a Blockcypher account."),r.a.createElement(Rt,{link:"https://support.lamassu.is/hc/en-us/articles/115001209472-Blockcypher",label:"Configuring Blockcypher"}),r.a.createElement(Hn,{labelClassName:l.radioLabel,className:l.radioGroup,options:mO,value:m,onChange:function(e){f(e.target.value),g(!1)}}),r.a.createElement("div",{className:l.mdForm},"disable"===m&&r.a.createElement(Ae,{size:"lg",onClick:function(){return n({zeroConf:"all-zero-conf"})},className:l.button},"Continue"),"enable"===m&&r.a.createElement(Km,{value:v.blockcypher,save:function(e){return s({variables:{accounts:{blockcypher:e}}})},elements:cm.blockcypher.elements,validationSchema:cm.blockcypher.validationSchema,buttonLabel:"Continue",buttonClass:l.formButton})))};function pO(){var e=Object(tn.a)(["\n {\n cryptoCurrencies {\n code\n display\n }\n }\n"]);return pO=function(){return e},e}var hO=Object(m.a)(GE),bO=sn()(pO()),gO=hn.d().shape({coin:hn.e().required()}),vO=function(e){var t,n=e.addData,l=hO(),i=Object(a.useState)(!1),c=Object(o.a)(i,2),s=c[0],u=c[1],d=Object(nn.c)(bO).data,m=null!==(t=null===d||void 0===d?void 0:d.cryptoCurrencies)&&void 0!==t?t:[];return r.a.createElement(r.a.Fragment,null,r.a.createElement($t,{className:s&&l.error},"Choose your first cryptocurrency"),r.a.createElement(on.d,{enableReinitialize:!0,initialValues:{coin:""},onSubmit:function(e){return gO.isValidSync(e)?"BTC"!==e.coin?n({coin:e.coin,zeroConf:"all-zero-conf"}):void n(e):u(!0)}},r.a.createElement(on.c,{onChange:function(){return u(!1)}},r.a.createElement(ul,null),r.a.createElement(on.b,{component:Jn,name:"coin",labelClassName:l.radioLabel,className:l.radioGroup,options:m}),r.a.createElement(Ae,{size:"lg",type:"submit",className:l.button},"Continue"))))},yO=function(e,t){return hr.a((function(n){return function(e){return wn.a("class",e)}(t)(n)&&function(e){return mn.a(gr.a(e),xn.a("cryptos"))}(e)(n)}))},EO=function(e,t,n,a){var r=yO(a,n)(e),l=kl.a((function(e){var n=e.code,a=function(e){return t&&t[e]}(n);return!cm[n]||cm[n].validationSchema.isValidSync(a)}))(r),i=Object(o.a)(l,2);return{filled:i[0],unfilled:i[1]}};function OO(){var e=Object(tn.a)(["\n mutation Save($accounts: JSONObject) {\n saveAccounts(accounts: $accounts)\n }\n"]);return OO=function(){return e},e}function wO(){var e=Object(tn.a)(["\n {\n accounts\n accountsConfig {\n code\n display\n class\n cryptos\n }\n cryptoCurrencies {\n code\n display\n }\n }\n"]);return wO=function(){return e},e}var xO=Object(m.a)(GE),jO=sn()(wO()),CO=sn()(OO()),kO=function(e){return gr.a(e)(["kraken","itbit","bitstamp"])},SO=function(e){var t,n,l,i=e.data,c=e.addData,s=xO(),u=Object(nn.c)(jO).data,d=Object(nn.b)(CO,{onCompleted:function(){return C()}}),m=Object(o.a)(d,1)[0],f=Object(a.useState)(null),p=Object(o.a)(f,2),h=p[0],b=p[1],g=Object(a.useState)(!1),v=Object(o.a)(g,2),y=v[0],E=v[1],O=null!==(t=null===u||void 0===u?void 0:u.accounts)&&void 0!==t?t:[],w=null!==(n=null===u||void 0===u?void 0:u.accountsConfig)&&void 0!==n?n:[],x=i.coin,j=EO(w,O,"exchange",x),C=function(){if(!h)return E(!0);c({exchange:h})};return r.a.createElement("div",{className:s.mdForm},r.a.createElement($t,{className:y&&s.error},"Choose your exchange"),r.a.createElement(Hn,{labelClassName:s.radioLabel,className:s.radioGroup,options:kn.a(j.filled,j.unfilled),value:h,onChange:function(e){b(e.target.value),E(!1)}}),!kO(h)&&r.a.createElement(Ae,{size:"lg",onClick:C,className:s.button},"Continue"),kO(h)&&r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:s.infoMessage},r.a.createElement(Ra,null),r.a.createElement(Zt,null,"Make sure you set up ",cm[h].name," to enter the necessary information below. Please follow the instructions on our support page if you haven\u2019t.")),r.a.createElement(Rt,{link:{kraken:"https://support.lamassu.is/hc/en-us/articles/115001206891-Kraken-trading",itbit:"https://support.lamassu.is/hc/en-us/articles/360026195032-itBit-trading",bitstamp:"https://support.lamassu.is/hc/en-us/articles/115001206911-Bitstamp-trading"}[h],label:"".concat(cm[h].name," trading")}),r.a.createElement($t,{noMargin:!0},"Enter exchange information"),r.a.createElement(Km,{value:O[h],save:(l=h,function(e){var t=Object(I.a)({},l,e);return m({variables:{accounts:t}})}),elements:cm[h].elements,validationSchema:cm[h].validationSchema,buttonLabel:"Continue",buttonClass:s.formButton})))};function NO(){var e=Object(tn.a)(["\n {\n accountsConfig {\n code\n display\n class\n cryptos\n }\n }\n"]);return NO=function(){return e},e}var IO=Object(m.a)(GE),LO=sn()(NO()),BO=function(e){var t,n,l=e.data,i=e.addData,c=IO(),s=Object(nn.c)(LO).data,u=Object(a.useState)(null),d=Object(o.a)(u,2),m=d[0],f=d[1],p=Object(a.useState)(!1),h=Object(o.a)(p,2),b=h[0],g=h[1],v=null!==(t=null===s||void 0===s?void 0:s.accounts)&&void 0!==t?t:[],y=null!==(n=null===s||void 0===s?void 0:s.accountsConfig)&&void 0!==n?n:[],E=l.coin,O=EO(y,v,"ticker",E);return r.a.createElement("div",{className:c.mdForm},r.a.createElement($t,{className:b&&c.error},"Choose your ticker"),r.a.createElement(Hn,{labelClassName:c.radioLabel,className:c.radioGroup,options:kn.a(O.filled,O.unfilled),value:m,onChange:function(e){f(e.target.value),g(!1)}}),r.a.createElement(Ae,{size:"lg",onClick:function(){if(!m)return g(!0);i({ticker:m})},className:c.button},"Continue"))},PO=function(e){var t;return{code:"bitgo",name:"BitGo",title:"BitGo (Wallet)",elements:[{code:"token",display:"API Token",component:Qn,face:!0,long:!0},{code:"environment",display:"Environment",component:_n,inputProps:{options:["prod","test"]},face:!0},{code:"".concat(e,"WalletId"),display:"".concat(e," Wallet ID"),component:Qn},{code:"".concat(e,"WalletPassphrase"),display:"".concat(e," Wallet Passphrase"),component:Kn}],validationSchema:hn.d().shape((t={token:hn.e().max(100,"Too long").required(),environment:hn.e().matches(/(prod|test)/).required()},Object(I.a)(t,"".concat(e,"WalletId"),hn.e().max(100,"Too long").required()),Object(I.a)(t,"".concat(e,"WalletPassphrase"),hn.e().max(100,"Too long").required()),t))}};function FO(){var e=Object(tn.a)(["\n mutation Save($accounts: JSONObject) {\n saveAccounts(accounts: $accounts)\n }\n"]);return FO=function(){return e},e}function DO(){var e=Object(tn.a)(["\n {\n accounts\n accountsConfig {\n code\n display\n class\n cryptos\n }\n cryptoCurrencies {\n code\n display\n }\n }\n"]);return DO=function(){return e},e}var TO=Object(m.a)(GE),WO=sn()(DO()),RO=sn()(FO()),zO=function(e){var t,n,l,i=e.data,c=e.addData,s=TO(),u=Object(nn.c)(WO).data,d=Object(nn.b)(RO,{onCompleted:function(){return k()}}),m=Object(o.a)(d,1)[0],f=Object(a.useState)(null),p=Object(o.a)(f,2),h=p[0],b=p[1],g=Object(a.useState)(!1),v=Object(o.a)(g,2),y=v[0],E=v[1],O=null!==(t=null===u||void 0===u?void 0:u.accounts)&&void 0!==t?t:[],w=null!==(n=null===u||void 0===u?void 0:u.accountsConfig)&&void 0!==n?n:[],x=i.coin,j=EO(w,O,"wallet",x),C=function(e){return function(t){var n=Object(I.a)({},e,t);return m({variables:{accounts:n}})}},k=function(){if(!h)return E(!0);c({wallet:h})};return r.a.createElement("div",{className:s.mdForm},r.a.createElement($t,{className:y&&s.error},"Choose your wallet"),r.a.createElement(Hn,{labelClassName:s.radioLabel,className:s.radioGroup,options:kn.a(j.filled,j.unfilled),value:h,onChange:function(e){b(e.target.value),E(!1)}}),(l=h,gr.a(l)(["bitcoind","geth","litecoind","dashd","zcashd","bitcoincashd"])&&r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:s.infoMessage},r.a.createElement(Ra,null),r.a.createElement(Zt,null,"To set up ",h," please read the node wallet instructions from our support portal.")),r.a.createElement(Rt,{link:"https://support.lamassu.is/hc/en-us/articles/115001209552-Setting-up-your-node-wallets",label:"Support article"}))),!function(e){return gr.a(e)(["infura","bitgo"])}(h)&&r.a.createElement(Ae,{size:"lg",onClick:k,className:s.button},"Continue"),"bitgo"===h&&r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:s.infoMessage},r.a.createElement(Ra,null),r.a.createElement(Zt,null,"Make sure you set up a BitGo wallet to enter the necessary information below. Please follow the instructions on our support page if you haven\u2019t.")),r.a.createElement(Rt,{link:"https://support.lamassu.is/hc/en-us/articles/360024455592-Setting-up-BitGo",label:"Support article"}),r.a.createElement($t,{noMargin:!0},"Enter wallet information"),r.a.createElement(Km,{value:O.bitgo,save:C(h),elements:PO(x).elements,validationSchema:PO(x).validationSchema,buttonLabel:"Continue",buttonClass:s.formButton})),"infura"===h&&r.a.createElement(r.a.Fragment,null,r.a.createElement($t,{noMargin:!0},"Enter wallet information"),r.a.createElement(Km,{value:O.infura,save:C(h),elements:cm.infura.elements,validationSchema:cm.infura.validationSchema,buttonLabel:"Continue",buttonClass:s.formButton})))},AO=Object(m.a)(Ma),MO=[{label:"Choose cryptocurrency",component:vO},{label:"Choose wallet",component:zO},{label:"Choose ticker",component:BO},{label:"Exchange",component:SO},{label:"Blockcypher",component:fO},{label:"All set",component:iO}],qO=function(e){var t=e.doContinue,n=Object(a.useState)(0),l=Object(o.a)(n,2),i=l[0],c=l[1],s=Object(a.useState)({}),u=Object(o.a)(s,2),d=u[0],m=u[1],f=AO(),p="BTC"===(null===d||void 0===d?void 0:d.coin)?MO:eO.a(4,1,MO),h=p[i].component;return r.a.createElement("div",{className:f.wrapper},r.a.createElement("div",{className:f.headerDiv},r.a.createElement(uo,{title:"Wallet settings"})),r.a.createElement("div",{className:f.contentDiv},r.a.createElement(xa,null,p.map((function(e,t){return r.a.createElement(ja,{key:t,step:i,it:e,idx:t,steps:p})}))),r.a.createElement("div",{className:f.contentWrapper},r.a.createElement(h,{data:d,addData:function(e){m(Ue.a(d,e)),c(i+1)},doContinue:t}))))},$O={welcome:{textAlign:"center",paddingTop:256},title:{lineHeight:1,fontSize:48},getStarted:{fontSize:24,fontWeight:500,marginBottom:54,color:B}},HO=Object(m.a)($O);var VO=function(e,t){var n=Jr(Ar,e);return hr.a((function(e){return sf.isValidSync(Jr(e.code,n))}))(t)},YO=function(e,t){return e?function(e,t){var n=Jr(Ar,e),a=jn.a((function(e){return Jr(e.code,n)}))(t);return mn.a(LE.a(BE.a),jn.a((function(e){return sf.isValidSync(e)})))(a)}(e,t)?function(e){var t=Jr($r,e);return bf.isValidSync(t)}(e)?function(e){var t=Jr(Hr,e);return Ac.isValidSync(t)}(e)?0:3:2:1:0},GO=[{id:"welcome",Component:function(e){var t=e.doContinue,n=HO();return r.a.createElement("div",{className:n.welcome},r.a.createElement(At,{className:n.title},"Welcome to the Lamassu Admin"),r.a.createElement(Vt,{className:n.getStarted},"To get you started, we\u2019ve put together a wizard that will",r.a.createElement("br",null),"help set up what you need before pairing your machines."),r.a.createElement(Ae,{size:"xl",onClick:t},"Get started"))}},{id:"wallet",Component:qO,exImage:"/assets/wizard/fullexample.wallet.png",subtitle:"Wallet settings",text:"Your wallet settings are the first step for this wizard. \n We'll start by setting up one of cryptocurrencies to get you up and running,\n but you can later set up as many as you want."},{id:"locale",Component:HE,exImage:"/assets/wizard/fullexample.locale.png",subtitle:"Locales",text:"From the Locales page, you can define some important default settings\n of your machines. These values will be the default values of all\n machines you'll later add to your network. Default settings keep you\n from having to enther the same values everytime you add a new machine.\n Once a machine is added, you may override some of these values in the\n overrides section."},{id:"twilio",Component:XE,exImage:"/assets/wizard/fullexample.twilio.png",subtitle:"Twilio (SMS service)",text:r.a.createElement(r.a.Fragment,null,"Twilio is used for SMS operator notifications, phone number collection for compliance, and 1-confirmation redemptions on cash-out transactions.",r.a.createElement("br",null),"You'll need to configure Twilio if you're offering cash-out or any compliance options")},{id:"commissions",Component:RE,exImage:"/assets/wizard/fullexample.commissions.png",subtitle:"Commissions",text:"From the Commissions page, you can define all the commissions of your\n machines. The values set here will be default values of all machines\n you'll later add to your network. Default settings keep you from\n having to enter the same values everytime you add a new machine. Once\n a machine is added, you may override these values per machine and per\n cryptocurrency in the overrides section."}],ZO=n(565),_O=Object(m.a)((function(){return{drawer:{borderTop:"none",boxShadow:"0 0 4px 0 rgba(0, 0, 0, 0.08)"},wrapper:{padding:"32px 0",flexGrow:1,height:264},smallWrapper:{height:84},title:{margin:[[0,32,0,0]]},subtitle:{marginTop:8,marginBottom:6,lineHeight:1.25,display:"inline"},modal:{background:"none",boxShadow:"none"}}}));var UO=function(e){var t,n=e.currentStep,l=e.steps,i=e.subtitle,c=e.text,s=e.exImage,u=e.open,d=e.start,m=_O(),f=Object(a.useState)(!1),p=Object(o.a)(f,2),h=p[0],b=p[1],g=(t={},Object(I.a)(t,m.wrapper,!0),Object(I.a)(t,m.smallWrapper,!u),t);return r.a.createElement(ZO.a,{anchor:"bottom",open:!0,variant:"persistent",classes:{paperAnchorDockedBottom:m.drawer}},r.a.createElement("div",{className:N()(g)},r.a.createElement(_m.a,{container:!0,direction:"row",justify:"center",alignItems:"baseline"},r.a.createElement(_m.a,{item:!0,xs:5,container:!0,direction:u?"column":"row",justify:"flex-start",alignItems:"baseline"},r.a.createElement(Mt,{className:m.title},"Setup Lamassu Admin"),r.a.createElement(Gt,{className:m.subtitle},i),u&&r.a.createElement(Vt,null,c)),r.a.createElement(_m.a,{item:!0,xs:4,container:!0,direction:"column",justify:"flex-start",alignItems:"flex-end",spacing:5},r.a.createElement(_m.a,{item:!0,xs:12},l&&n&&r.a.createElement(Go,{currentStep:n,steps:l})))),u&&r.a.createElement(_m.a,{container:!0,direction:"row",justify:"center",alignItems:"baseline"},r.a.createElement(_m.a,{item:!0,xs:5,container:!0,direction:"column",justify:"flex-start",alignItems:"flex-start"},r.a.createElement(ut,{onClick:function(){b(!0)}},"See full example")),r.a.createElement(_m.a,{item:!0,xs:4,container:!0,direction:"column",justify:"flex-start",alignItems:"flex-end",spacing:5},r.a.createElement(_m.a,{item:!0},r.a.createElement(Ae,{size:"lg",onClick:d},"Get Started"))))),r.a.createElement(po,{closeOnEscape:!0,closeOnBackdropClick:!0,className:m.modal,xl:!0,width:1328,handleClose:function(){b(!1)},open:h},r.a.createElement("img",{width:1152,src:s,alt:""})))};function JO(){var e=Object(tn.a)(["\n query getData {\n config\n accounts\n cryptoCurrencies {\n code\n display\n }\n }\n"]);return JO=function(){return e},e}var KO,QO=Object(m.a)({wrapper:{display:"flex",padding:[[16,0]],flexDirection:"column",justifyContent:"space-between",backgroundColor:V},welcomeBackground:{background:"url(/wizard-background.svg) no-repeat center center fixed",backgroundColor:V,backgroundSize:"cover"},blurred:{filter:"blur(4px)",pointerEvents:"none"}}),XO=sn()(JO()),ew=function(e){e.fromAuthRegister;var t,n,l=QO(),i=Object(nn.c)(XO),c=i.data,s=i.loading,u=Object(g.h)(),d=Object(a.useContext)(fw).setWizardTested,m=Object(a.useState)(0),f=Object(o.a)(m,2),p=f[0],h=f[1],b=Object(a.useState)(!0),v=Object(o.a)(b,2),y=v[0],E=v[1],O=Object(a.useState)(!1),w=Object(o.a)(O,2),x=w[0],j=w[1];if(s)return r.a.createElement(r.a.Fragment,null);var C=YO(null===c||void 0===c?void 0:c.config,null===c||void 0===c?void 0:c.cryptoCurrencies),k=u.length&&!(null===(t=u.location.state)||void 0===t?void 0:t.fromAuthRegister);0===C&&(d(!0),k?u.goBack():u.push("/"));var S=0===p,L=(n={},Object(I.a)(n,l.blurred,x),Object(I.a)(n,l.wrapper,!0),Object(I.a)(n,l.welcomeBackground,S),n),B=GO[p];return r.a.createElement(an.a,{fullScreen:!0,open:y},r.a.createElement(rn.a,{className:N()(L)},r.a.createElement(B.Component,{doContinue:function(){p>=GO.length-1&&(E(!1),u.push("/"));var e=0===p&&C?C:p+1;j(!0),h(e)},isActive:!x})),!S&&r.a.createElement(UO,{currentStep:p,steps:GO.length-1,exImage:B.exImage,subtitle:B.subtitle,text:B.text,open:x,start:function(){j(!1)}}))},tw=[{key:"transactions",label:"Transactions",route:"/transactions",component:Ay},{key:"maintenance",label:"Maintenance",route:"/maintenance",get component(){var e=this;return function(){return r.a.createElement(g.b,{to:e.children[0].route})}},children:[{key:"cash_cassettes",label:"Cash Cassettes",route:"/maintenance/cash-cassettes",component:Jp},{key:"funding",label:"Funding",route:"/maintenance/funding",component:Qd},{key:"logs",label:"Machine Logs",route:"/maintenance/logs",component:Hp},{key:"machine-status",label:"Machine Status",route:"/maintenance/machine-status",component:kb},{key:"server-logs",label:"Server",route:"/maintenance/server-logs",component:Fv}]},{key:"settings",label:"Settings",route:"/settings",get component(){var e=this;return function(){return r.a.createElement(g.b,{to:e.children[0].route})}},children:[{key:Hr,label:"Commissions",route:"/settings/commissions",component:_c},{key:$r,label:"Locales",route:"/settings/locale",component:kf},{key:zr,label:"Cash-out",route:"/settings/cash-out",component:cc},{key:qr,label:"Notifications",route:"/settings/notifications",component:sg},{key:"services",label:"3rd party services",route:"/settings/3rd-party-services",component:_v},{key:Ar,label:"Wallet",route:"/settings/wallet-settings",component:IE},{key:Mr,label:"Operator Info",route:"/settings/operator-info",component:gv}]},{key:"compliance",label:"Compliance",route:"/compliance",get component(){var e=this;return function(){return r.a.createElement(g.b,{to:e.children[0].route})}},children:[{key:"triggers",label:"Triggers",route:"/compliance/triggers",component:wE},{key:"customers",label:"Customers",route:"/compliance/customers",component:Rd},{key:"customer",route:"/compliance/customer/:id",component:Pd}]}],nw=jn.a(mr.a(fr.a("children"),xn.a("children"))),aw=mn.a(pr.a,nw)(tw),rw=hr.a(fr.a("children"))(tw),lw=br.a(aw,rw),iw=function(){var e=Object(g.h)(),t=Object(g.i)();return Object(a.useContext)(fw).wizardTested||gr.a(t.pathname)(["/404","/register","/wizard"])||e.push("/wizard"),r.a.createElement(g.e,null,r.a.createElement(g.c,{exact:!0,path:"/"},r.a.createElement(g.b,{to:{pathname:"/transactions"}})),r.a.createElement(g.c,{path:"/wizard",component:ew}),r.a.createElement(g.c,{path:"/register",component:Er}),lw.map((function(e){var t=e.route,n=e.component,a=e.key;return r.a.createElement(g.c,{path:t,key:a},r.a.createElement(n,{name:a}))})),r.a.createElement(g.c,{path:"/404"}),r.a.createElement(g.c,{path:"*"},r.a.createElement(g.b,{to:{pathname:"/404"}})))},ow="100%",cw={"@global":Object(c.a)(Object(c.a)({},{"@font-face":[{fontFamily:"Mont",src:['url("/fonts/MontHeavy/mont-heavy-webfont.woff2") format("woff2")','url("/fonts/MontHeavy/mont-heavy-webfont.woff") format("woff")'],fontWeight:900,fontStyle:"normal"},{fontFamily:"Mont",src:['url("/fonts/MontHeavy/mont-bold-webfont.woff2") format("woff2")','url("/fonts/MontHeavy/mont-bold-webfont.woff") format("woff")'],fontWeight:700,fontStyle:"normal"},{fontFamily:"MuseoSans",src:['url("/fonts/MuseoSans/MuseoSans_500-webfont.woff2") format("woff2")','url("/fonts/MuseoSans/MuseoSans_500-webfont.woff") format("woff")'],fontWeight:500,fontStyle:"normal"},{fontFamily:"MuseoSans",src:['url("/fonts/MuseoSans/MuseoSans_700-webfont.woff2") format("woff2")','url("/fonts/MuseoSans/MuseoSans_700-webfont.woff") format("woff")'],fontWeight:700,fontStyle:"normal"},{fontFamily:"BPmono",src:'url("/fonts/BPmono/BPmono.ttf") format("truetype")',fontWeight:500,fontStyle:"normal"}]}),{},(KO={"#root":{width:ow,minHeight:ow},html:{height:ow},body:{width:ee,display:"flex",minHeight:ow,"@media screen and (min-width: 1200px)":{width:"auto"}}},Object(I.a)(KO,'a::-moz-focus-inner,\n \'input[type="submit"]::-moz-focus-inner,\n input[type="button"]::-moz-focus-inner',{border:0}),Object(I.a)(KO,'a::-moz-focus-inner,\n input[type="submit"]::-moz-focus-inner,\n input[type="button"]::-moz-focus-inner',{border:0}),Object(I.a)(KO,"a,\n a:visited,\n a:focus,\n a:active,\n a:hover",{outline:"0 none"}),Object(I.a)(KO,"button::-moz-focus-inner",{border:0}),Object(I.a)(KO,".ReactVirtualized__Grid__innerScrollContainer",{overflow:"inherit !important"}),KO))},sw=Object(h.a)({plugins:[Object(b.a)()].concat(Object(s.a)(Object(d.a)().plugins))}),uw="100%",dw="column",mw=Object(m.a)(Object(c.a)(Object(c.a)({},cw),{},{root:{backgroundColor:V,width:uw,minHeight:uw,display:"flex",flexDirection:dw},wrapper:{width:ee,height:uw,margin:"0 auto",flex:1,display:"flex",flexDirection:dw}})),fw=Object(a.createContext)(),pw=function(){var e=mw(),t=Object(g.i)(),n=Object(a.useContext)(fw).wizardTested,l="/404"===t.pathname;return r.a.createElement("div",{className:e.root},!l&&n&&r.a.createElement(dr,{tree:tw}),r.a.createElement("main",{className:e.wrapper},r.a.createElement(iw,null)))},hw=function(){var e=Object(a.useState)(!1),t=Object(o.a)(e,2),n=t[0],l=t[1];return r.a.createElement(fw.Provider,{value:{wizardTested:n,setWizardTested:l}},r.a.createElement(v.a,null,r.a.createElement(k,null,r.a.createElement(f.b,{jss:sw},r.a.createElement(p.a,{theme:Eg},r.a.createElement(u.a,null),r.a.createElement(pw,null))))))};Boolean("localhost"===window.location.hostname||"[::1]"===window.location.hostname||window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/));i.a.render(r.a.createElement(hw,null),document.getElementById("root")),"serviceWorker"in navigator&&navigator.serviceWorker.ready.then((function(e){e.unregister()}))}},[[445,1,2]]]); +//# sourceMappingURL=main.d0c68b02.chunk.js.map \ No newline at end of file diff --git a/public/static/js/main.d0c68b02.chunk.js.map b/public/static/js/main.d0c68b02.chunk.js.map new file mode 100644 index 00000000..ab99fa77 --- /dev/null +++ b/public/static/js/main.d0c68b02.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["utils/apollo.js","styling/variables.js","components/typography/styles.js","components/buttons/ActionButton.styles.js","components/buttons/ActionButton.js","styling/icons/button/add/zodiac.svg","components/buttons/AddButton.js","components/buttons/Button.styles.js","components/buttons/Button.js","components/buttons/BaseButton.styles.js","components/buttons/FeatureButton.js","components/Popper.js","components/buttons/IDButton.js","components/buttons/IconButton.js","components/buttons/Link.styles.js","components/buttons/Link.js","components/buttons/SimpleButton.js","styling/icons/button/cancel/white.svg","components/buttons/SubpageButton.styles.js","components/buttons/SubpageButton.js","styling/icons/action/external link/white.svg","styling/icons/action/external link/zodiac.svg","components/buttons/SupportLinkButton.js","components/typography/index.js","components/Title.js","styling/helpers.js","components/inputs/base/TextInput.styles.js","components/inputs/base/TextInput.js","components/inputs/base/Autocomplete.js","components/inputs/base/Checkbox.js","components/inputs/base/NumberInput.js","components/inputs/base/RadioGroup.js","components/inputs/base/SecretInput.js","components/inputs/base/Switch.js","components/inputs/formik/Autocomplete.js","components/inputs/formik/NumberInput.js","components/inputs/formik/RadioGroup.js","components/inputs/formik/SecretInput.js","components/inputs/formik/TextInput.js","styling/icons/stage/zodiac/complete.svg","styling/icons/stage/zodiac/current.svg","styling/icons/stage/zodiac/empty.svg","components/layout/Sidebar.styles.js","components/layout/Sidebar.js","styling/icons/action/close/zodiac.svg","styling/icons/warning-icon/comet.svg","pages/AddMachine/styles.js","pages/AddMachine/AddMachine.js","pages/AddMachine/index.js","styling/icons/menu/logo.svg","components/layout/Header.styles.js","components/layout/Header.js","pages/AuthRegister.js","styling/icons/action/help/zodiac.svg","components/Tooltip.js","utils/config.js","components/PromptWhenDirty.js","components/fake-table/Table.styles.js","components/fake-table/Table.js","components/editableTable/Context.js","utils/sanctuary.js","utils/string.js","components/editableTable/Header.js","styling/icons/action/arrow/regular.svg","components/inputs/base/Select.styles.js","components/inputs/base/Select.js","components/Chip.js","components/inputs/cashbox/Cashbox.styles.js","components/inputs/cashbox/Cashbox.js","styling/icons/action/delete/disabled.svg","styling/icons/action/delete/enabled.svg","styling/icons/action/edit/disabled.svg","styling/icons/action/edit/enabled.svg","styling/icons/stripes.svg","components/editableTable/Row.styles.js","components/editableTable/Row.js","components/editableTable/Table.styles.js","components/editableTable/Table.js","components/editableTable/NamespacedTable.js","styling/icons/warning-icon/tomato.svg","components/ErrorMessage.js","components/layout/TitleSection.js","components/layout/TitleSection.styles.js","components/Modal.js","utils/bill-denominations.js","styling/icons/direction/cash-out.svg","pages/Cashout/WizardSplash.js","styling/icons/stage/spring/complete.svg","styling/icons/stage/spring/current.svg","styling/icons/stage/spring/empty.svg","components/Stepper.js","styling/icons/cassettes/cashout-cassette-1.svg","styling/icons/cassettes/cashout-cassette-2.svg","pages/Cashout/WizardStep.styles.js","pages/Cashout/WizardStep.js","pages/Cashout/helper.js","pages/Cashout/Wizard.js","pages/Cashout/Cashout.js","pages/Cashout/index.js","components/Subtitle.js","components/layout/Section.js","components/layout/Section.styles.js","styling/icons/direction/cash-in.svg","pages/Commissions/helper.js","pages/Commissions/Commissions.js","pages/Commissions/index.js","components/Status.js","styling/icons/button/authorize/white.svg","styling/icons/button/authorize/zodiac.svg","styling/icons/button/cancel/zodiac.svg","pages/Customers/components/propertyCard/PropertyCard.styles.js","pages/Customers/components/propertyCard/PropertyCard.js","styling/icons/button/block/white.svg","styling/icons/button/block/zodiac.svg","pages/Customers/CustomerProfile.styles.js","styling/icons/circle buttons/search/white.svg","styling/icons/circle buttons/search/zodiac.svg","components/ImagePopper.js","components/ImagePopper.styles.js","styling/icons/ID/photo/crossed-camera.svg","pages/Customers/components/Field.js","pages/Customers/components/ComplianceDetails.js","pages/Customers/components/ComplianceDetails.styles.js","styling/icons/ID/card/zodiac.svg","styling/icons/circle buttons/law/white.svg","styling/icons/circle buttons/law/zodiac.svg","pages/Logs.styles.js","pages/Customers/CustomersList.styles.js","pages/Customers/helper.js","pages/Customers/components/FrontCameraPhoto.js","pages/Customers/components/CustomerDetails.js","utils/nullCheck.js","pages/Customers/components/IdDataCard.js","styling/icons/action/expand/closed.svg","styling/icons/action/expand/open.svg","components/tables/DataTable.styles.js","components/tables/DataTable.js","utils/coin.js","styling/icons/action/copy/copy.svg","pages/Transactions/Transactions.styles.js","pages/Transactions/CopyToClipboard.js","pages/Customers/components/TransactionsList.js","pages/Customers/CustomerProfile.js","pages/Customers/CustomersList.js","pages/Customers/Customers.js","components/TableLabel.js","pages/Funding.styles.js","pages/Funding.js","pages/Services/schemas/bitgo.js","pages/Services/schemas/bitstamp.js","pages/Services/schemas/blockcypher.js","pages/Services/schemas/infura.js","pages/Services/schemas/itbit.js","pages/Services/schemas/kraken.js","pages/Services/schemas/mailgun.js","pages/Services/schemas/twilio.js","pages/Services/schemas/index.js","styling/logos/icon-bitcoin-colour.svg","styling/logos/icon-bitcoincash-colour.svg","styling/logos/icon-dash-colour.svg","styling/logos/icon-ethereum-colour.svg","styling/logos/icon-litecoin-colour.svg","styling/logos/icon-zcash-colour.svg","pages/Wallet/WizardSplash.js","pages/Services/FormRenderer.js","pages/Wallet/WizardStep.styles.js","pages/Wallet/WizardStep.js","pages/Wallet/Wizard.js","pages/Wallet/helper.js","pages/Locales/helper.js","pages/Locales/Locales.js","pages/Locales/Locales.styles.js","pages/Locales/index.js","styling/icons/arrow/download_logs.svg","styling/icons/button/download/white.svg","styling/icons/button/download/zodiac.svg","styling/icons/arrow/month_change.svg","styling/icons/arrow/month_change_right.svg","components/date-range-picker/Tile.js","components/date-range-picker/Calendar.js","components/date-range-picker/DateRangePicker.js","components/LogsDownloaderPopper.js","components/table/Table.js","components/table/TableBody.js","components/table/TableCell.js","components/table/TableHead.js","components/table/TableHeader.js","components/table/TableRow.js","pages/MachineLogs.js","pages/Maintenance/CashCassettes.js","pages/Maintenance/CashCassettes.styles.js","styling/icons/status/pumpkin.svg","styling/icons/status/tomato.svg","components/ConfirmDialog.js","styling/icons/button/edit/white.svg","styling/icons/button/edit/zodiac.svg","styling/icons/button/link/zodiac.svg","styling/icons/button/reboot/white.svg","styling/icons/button/reboot/zodiac.svg","styling/icons/button/shut down/white.svg","styling/icons/button/shut down/zodiac.svg","styling/icons/button/unpair/white.svg","styling/icons/button/unpair/zodiac.svg","pages/Maintenance/MachineDetailsCard.styles.js","pages/Maintenance/MachineDetailsCard.js","pages/Maintenance/MachineStatus.js","pages/Notifications/NotificationsContext.js","pages/Notifications/helper.js","pages/Notifications/components/EditHeader.js","pages/Notifications/components/EditHeader.styles.js","pages/Notifications/components/EditableNumber.js","pages/Notifications/components/EditableNumber.styles.js","pages/Notifications/components/SingleFieldEditableNumber.js","pages/Notifications/sections/CryptoBalanceAlerts.js","pages/Notifications/sections/CryptoBalanceAlerts.styles.js","pages/Notifications/sections/CryptoBalanceOverrides.js","pages/Notifications/sections/FiatBalanceAlerts.js","pages/Notifications/sections/FiatBalanceAlerts.styles.js","pages/Notifications/sections/FiatBalanceOverrides.js","pages/Notifications/sections/Setup.js","pages/Notifications/sections/TransactionAlerts.js","pages/Notifications/Notifications.js","pages/OperatorInfo/CoinATMRadar/CoinATMRadar.styles.js","pages/OperatorInfo/CoinATMRadar/CoinATMRadar.js","pages/OperatorInfo/CoinATMRadar/index.js","styling/theme.js","pages/OperatorInfo/OperatorInfo.styles.js","pages/OperatorInfo/ContactInfo.js","styling/icons/table/false.svg","styling/icons/table/true.svg","components/booleanPropertiesTable/BooleanPropertiesTable.styles.js","components/booleanPropertiesTable/BooleanPropertiesTable.js","pages/OperatorInfo/ReceiptPrinting/ReceiptPrinting.js","pages/OperatorInfo/ReceiptPrinting/ReceiptPrinting.styles.js","pages/OperatorInfo/ReceiptPrinting/index.js","pages/OperatorInfo/TermsConditions.js","pages/OperatorInfo/OperatorInfo.js","components/Uptime.js","pages/ServerLogs.js","styling/icons/action/edit/white.svg","components/single-row-table/SingleRowTable.styles.js","components/single-row-table/SingleRowTable.js","pages/Services/Services.js","styling/icons/ID/card/white.svg","styling/icons/ID/phone/white.svg","styling/icons/ID/phone/zodiac.svg","styling/icons/ID/photo/white.svg","styling/icons/ID/photo/zodiac.svg","pages/Transactions/DetailsCard.styles.js","pages/Transactions/helper.js","pages/Transactions/DetailsCard.js","pages/Transactions/Transactions.js","pages/Triggers/helper.js","pages/Triggers/Wizard.js","pages/Triggers/Triggers.js","pages/Triggers/Triggers.styles.js","pages/Triggers/index.js","pages/Wallet/Wallet.js","pages/Wizard/components/Commissions.js","pages/Wizard/components/Locales.js","components/InfoMessage.js","pages/Wizard/components/Wallet/Shared.styles.js","pages/Wizard/components/Twilio.js","pages/Wizard/components/Wallet/AllSet.js","pages/Wizard/components/Wallet/Blockcypher.js","pages/Wizard/components/Wallet/ChooseCoin.js","pages/Wizard/components/Wallet/getItems.js","pages/Wizard/components/Wallet/ChooseExchange.js","pages/Wizard/components/Wallet/ChooseTicker.js","pages/Services/schemas/singlebitgo.js","pages/Wizard/components/Wallet/ChooseWallet.js","pages/Wizard/components/Wallet/Wallet.js","pages/Wizard/components/Welcome.js","pages/Wizard/helper.js","pages/Wizard/components/Footer.js","pages/Wizard/Wizard.js","pages/Wizard/index.js","routing/routes.js","styling/global/index.js","styling/global/fonts.js","App.js","serviceWorker.js","index.js"],"names":["URI","Provider","children","client","history","location","ApolloClient","link","ApolloLink","from","onError","graphQLErrors","networkError","forEach","message","locations","path","extensions","code","pathname","push","console","log","HttpLink","credentials","uri","cache","InMemoryCache","defaultOptions","watchQuery","fetchPolicy","errorPolicy","query","mutate","getClient","useHistory","useLocation","comet","spring2","spring3","spring4","zircon","zircon2","white","tomato","mistyRose","primaryColor","secondaryColor","secondaryColorDark","secondaryColorDarker","backgroundColor","subheaderColor","subheaderDarkColor","disabledColor","disabledColor2","fontColor","offColor","offDarkColor","placeholderColor","errorColor","mainWidth","linkPrimaryColor","fontPrimary","fontSecondary","fontSize1","fontSize2","fontSize3","fontSize4","fontSize5","smallestFontSize","inputFontSizeSm","inputFontSize","inputFontSizeLg","inputFontFamily","tableHeaderHeight","spacer","tableCellHeight","tableDoubleHeaderHeight","tableHeaderColor","tableErrorColor","base","lineHeight","color","h1","extend","fontSize","fontFamily","fontWeight","h2","h3","h4","h5","p","tl1","tl2","info1","info2","info3","mono","monoBold","monoSmall","inputFont","regularLabel","label1","label2","label3","inline","display","noMargin","margin","colors","color1","color2","color3","actionButton","typographyStyles","cursor","border","height","outline","borderRadius","padding","alignItems","primary","secondary","actionButtonIcon","paddingRight","svg","width","actionButtonIconActive","useStyles","makeStyles","styles","ActionButton","memo","className","Icon","InverseIcon","props","classes","classNames","classnames","_extends","Object","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","this","_objectWithoutProperties","excluded","sourceKeys","keys","indexOf","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","id","stroke","strokeWidth","fill","fillRule","strokeLinecap","strokeLinejoin","d","x1","y1","x2","y2","SvgZodiac","_ref","svgRef","title","titleId","viewBox","ref","ForwardRef","button","justifyContent","marginRight","SimpleButton","pickSize","size","wrapper","shadowSize","boxShadow","marginTop","baseButton","baseButtonStyles","featureButton","buttonIcon","overflow","buttonIconActive","FeatureButton","Popover","bgColor","arrowSize","useState","arrowRef","setArrowRef","popover","zIndex","arrow","position","arrowBottom","top","borderLeft","borderRight","borderBottom","content","marginLeft","bottom","left","borderColor","transformOrigin","transform","arrowTop","borderTop","marginBottom","arrowRight","arrowLeft","right","root","arrowClasses","placement","modifiers","R","flip","enabled","preventOverflow","boundariesElement","offset","element","computeStyle","gpuAcceleration","disablePortal","Paper","idButton","closed","open","popoverContent","maxHeight","IDButton","name","popoverWidth","popoverClassname","anchorEl","setAnchorEl","Boolean","undefined","iconClassNames","aria-describedby","onClick","event","currentTarget","onClose","label","flex","IconButton","disableRipple","fade","textDecoration","noColor","action","Link","submit","type","SvgWhite","normalButton","activeButton","flexDirection","buttonIconActiveLeft","buttonIconActiveRight","subpageButtonStyles","SubpageButton","toggle","active","setActive","newActiveState","points","actionButtonLink","SupportLinkButton","rel","href","LinkIcon","InverseLinkIcon","H1","H2","H3","H4","H5","P","pBuilder","Info1","Info2","Info3","Mono","TL1","TL2","Label1","Label2","Label3","elementClass","Title","bySize","bold","textAlign","underline","borderBottomColor","TextInput","onChange","onBlur","value","error","suffix","InputProps","filled","inputClasses","TextField","Autocomplete","optionsLimit","limit","options","valueProp","multiple","getLabel","outsideValue","fullWidth","autoFocus","mapFromValue","it","mapToValue","valueArray","evt","rValue","getOptionLabel","forcePopupIcon","filterOptions","array","inputValue","input","sort","filter","slice","Math","max","openOnFocus","autoHighlight","disableClearable","ChipProps","onDelete","clearOnEscape","getOptionSelected","renderInput","params","checked","NumberInput","decimalPlaces","customInput","decimalScale","onValueChange","values","floatValue","paddingLeft","RadioGroup","labelClassName","radioClassName","map","option","idx","FormControlLabel","control","Radio","SecretInput","onFocus","focused","setFocused","previouslyFilled","tempValue","InputLabelProps","shrink","placeholder","theme","spacing","switchBase","opacity","palette","common","thumb","track","transition","transitions","create","disabled","focusVisible","SwitchInput","Switch","focusVisibleClassName","AutocompleteFormik","setOpen","field","form","touched","errors","setFieldValue","setFieldTouched","useFormikContext","initialValues","innerOptions","onChangeHandler","item","onOpen","NumberInputFormik","RadioGroupFormik","ariaLabel","e","resetError","SecretInputFormik","TextInputFormik","cx","cy","r","SvgComplete","SvgCurrent","SvgEmpty","breakpoint","sidebarColor","sidebar","minWidth","background","activeLink","customRenderLink","customRenderActiveLink","itemText","itemTextActive","itemTextPast","stepperPath","stepperPast","Sidebar","data","displayName","isSelected","itemRender","Stepper","step","steps","past","future","x","y","style","enableBackground","xmlSpace","rx","SvgComet","dialog","minHeight","contentDiv","headerDiv","contentWrapper","nameTitle","qrTitle","qrCodeWrapper","qrTextWrapper","qrTextIcon","qrText","SAVE_CONFIG","gql","GET_MACHINES","getSize","validationSchema","Yup","shape","required","component","nextStep","setQrCode","setName","useMutation","onCompleted","createPairingTotem","register","onSubmit","variables","Button","qrCode","count","onPaired","useQuery","pollInterval","addedMachine","machines","find","m","fgColor","AddMachine","close","setStep","Component","Dialog","fullScreen","aria-labelledby","DialogContent","SvgIcon","renderStepper","xlinkHref","SvgLogo","headerHeight","subheaderHeight","header","maxWidth","nav","ul","li","listStyle","forceSize","visibility","addMachine","subheader","subheaderUl","subheaderLi","subheaderLink","activeSubheaderLink","logo","Subheader","to","route","activeClassName","Header","tree","isActive","match","whiteLink","forcesize","machine","deviceId","AuthRegister","URLSearchParams","search","useAxios","url","get","method","withCredentials","trigger","customHandler","err","res","fromAuthRegister","transparentButton","Tooltip","HelpIcon","helpPopperAnchorEl","setHelpPopperAnchorEl","helpPopperOpen","ClickAwayListener","onClickAway","namespaces","mapKeys","fn","obj","filterByKey","stripl","q","str","fromNamespace","config","stripped","filtered","toNamespace","PromptWhenDirty","formik","when","dirty","submitCount","doubleHeader","thDoubleLevel","verticalAlign","cellDoubleLevel","td","tdHeader","trError","mainContent","cardContentRoot","card","actionCol","errorContent","Table","THead","TDoubleLevelHead","TBody","Td","Th","ThDoubleLevel","Tr","errorMessage","cardClasses","tr","Card","CardContent","React","createContext","S","sanctuary","checkTypes","process","env","toFirstLower","compose","joinWith","toLower","toFirstUpper","toUpper","onlyFirstToUpper","splitOnUpper","splitOn","startCase","useContext","TableCtx","elements","enableEdit","editWidth","enableDelete","deleteWidth","enableToggle","toggleWidth","DEFAULT_COL_SIZE","mapElement","toSHeader","noSHeader","index","groupSecondHeader","innerElements","HeaderElement","SvgRegular","WIDTH","selectedItem","whiteSpace","select","overflowY","listStyleType","selectFiltered","Select","items","useSelect","onSelectedItemChange","isOpen","getToggleButtonProps","getLabelProps","getMenuProps","getItemProps","selectClassNames","default","LsChip","Chip","withStyles","cashOut","empty","full","zodiac","cashIn","colorPicker","percent","cashboxStyles","cashbox","emptyPart","fullPart","gridStyles","row","innerRow","col2","noMarginText","chip","cashboxClasses","gridClasses","Cashbox","toFixed","CashOut","capacity","denomination","currency","notes","col","mask","SvgDisabled","SvgEnabled","patternUnits","patternTransform","SvgStripes","saveButton","lastOfGroup","extraPadding","extraPaddingRight","withSuffix","ActionCol","editing","submitForm","resetForm","onEdit","disableRowEdit","onToggle","forceAdd","clearError","actionColSize","disableEdit","editButton","ECol","focus","bypassField","editable","SuffixComponent","view","toString","inputProps","innerProps","isEditing","isField","ERow","rowSize","stripeWhen","toStripe","noStripe","groupStriped","extraPaddingIndex","extraPaddingRightIndex","elementToFocusIndex","findIndex","touchedErrors","hasErrors","join","addLink","outerHeader","getWidth","ETable","titleLg","save","externalError","enableCreate","outerEditWidth","forceDisable","disableAdd","setEditing","shouldOverrideEdit","editOverride","groupBy","sortBy","createText","editingId","setEditingId","adding","setAdding","saving","setSaving","setError","useEffect","innerSave","a","cast","list","onReset","addField","widthIfEditNull","ACTION_COL_SIZE","showButtonOnEmpty","canAdd","showTable","innerData","ctxValue","AddButton","v4","nextElement","canGroup","groupFunction","isLastOfGroup","enableReinitialize","NamespacedTable","SvgTomato","ErrorMessage","titleWrapper","titleAndButtonsContainer","icon","TitleSection","labels","Box","modal","infoPanelWrapper","infoPanelHeight","panelContent","small","xl","Modal","infoPanel","handleClose","secondaryModal","closeOnEscape","closeOnBackdropClick","TitleCase","closeSize","reason","denomiations","AUD","5","10","20","50","100","BBD","2","CAD","CHF","200","1000","DKK","500","EUR","GBP","HKD","HUF","2000","5000","10000","20000","ILS","JMD","JPY","KZT","MXN","MYR","1","NZD","PHP","PLN","SGD","TWD","UAH","USD","VND","50000","100000","200000","500000","ZAR","SvgCashOut","subtitle","text","modalContent","innerContent","paddingBottom","titleDecorator","WizardSplash","onContinue","stages","stage","separator","separatorSpring","separatorZodiac","separatorSpringEmpty","separatorZodiacEmpty","currentStep","Error","separatorClasses","separatorEmptyClasses","titleDiv","edit","bill","billInput","float","picker","thirdStepHeader","stepImage","disclaimer","disclaimerIcon","WizardStep","schema","lastStep","fiatCurrency","cassetesArtworks","cassetteOne","cassetteTwo","alt","src","zeroConfLimit","currencyMax","DenominationsSchema","min","getElements","stripe","getOptions","locale","Wizard","setState","denominations","isLastStep","newConfig","fudgeFactor","switchLabel","GET_INFO","Cashout","SCREEN_KEY","wizard","setWizard","refetchQueries","saveConfig","rawConfig","accounts","fudgeFactorActive","isValidSync","namespaced","extraMarginTop","Subtitle","section","sectionHeader","sectionTitle","Section","SvgCashIn","ALL_MACHINES","ALL_COINS","cashInAndOutHeaderStyle","cashInHeader","cashOutHeader","getView","compare","displayCodeArray","onCryptoChange","prev","curr","setValue","hasAllCoins","hadAllCoins","mainFields","overrides","auxData","auxElements","getData","machineData","concat","rawCryptos","cryptoData","getOverridesFields","percentMax","fixedFee","minimumTx","getOverridesSchema","rawData","nullable","cryptoCurrencies","test","parent","alreadyUsed","getCrypto","getMachineId","filteredOverrides","originalValue","originalCryptos","originalMachineId","getAlreadyUsed","isAllMachines","isAllCoins","createError","repeated","codes","machineView","defaults","overridesDefaults","getOrder","GET_DATA","Commissions","isEditingDefault","setEditingDefault","isEditingOverrides","setEditingOverrides","commission","commissionOverrides","orderedCommissionsOverrides","commissions","warning","success","neutral","backgroundColors","Status","status","MainStatus","statuses","mainStatus","s","plus","propertyCardStyles","label1Pending","label1Rejected","label1Accepted","cardActionButton","propertyCardTopRow","propertyCardBottomRow","propertyCard","boxSizing","rowSpaceBetween","flexFlow","columnSpaceBetween","buttonsWrapper","OVERRIDE_PENDING","OVERRIDE_AUTHORIZED","OVERRIDE_REJECTED","PropertyCard","state","authorize","reject","label1ClassNames","authorized","elevation","AuthorizeIcon","AuthorizeReversedIcon","RejectIcon","RejectReversedIcon","labelLink","breadcrumbs","actionLabel","customerDetails","image","objectFit","popupImage","popupWidth","popupHeight","ImagePopper","popperAnchorEl","setPopperAnchorEl","popperOpen","Image","ZoomIcon","ZoomIconInverse","SvgCrossedCamera","textOverflow","Field","complianceDetailsGrid","firstColumn","lastColumn","photoWrapper","Photo","show","ComplianceDetails","customer","updateCustomer","sanctions","sanctionsDisplay","customerData","idCardPhotoOverride","idCardPhotoPath","frontCameraOverride","frontCameraPath","usSsnOverride","usSsn","sanctionsOverride","tableWrapper","overflowX","table","dateColumn","levelColumn","fillColumn","shareButton","shareIcon","baseStyles","column","textInput","fontStretch","fontStyle","letterSpacing","txId","txClassIconLeft","txClassIconRight","headerLabels","photo","img","customerName","idIcon","subpageButton","getAuthorizedStatus","authorizedOverride","daysSuspended","getFormattedPhone","phone","country","parsePhoneNumberFromString","formatInternational","getName","idData","trim","mainStyles","FrontCameraPhoto","CustomerDetails","setShowCompliance","LawIcon","LawIconInverse","mt","ifNotNull","valueIfNotNull","IdDataCard","rawExpirationDate","rawDob","moment","utc","format","diff","idCardDataOverride","SvgClosed","SvgOpen","expandButton","rowWrapper","expanded","before","paddingTop","after","pointer","body","Row","Details","expandRow","expWidth","expandable","hasPointer","trClasses","DataTable","initialExpanded","loading","emptyText","setExpanded","coreWidth","CellMeasurerCache","defaultHeight","fixedWidth","rowRenderer","columnIndex","rowIndex","disableWidth","rowCount","rowHeight","overscanRowCount","deferredMeasurementCache","CRYPTO_CURRENCIES","cryptoCode","unitScale","toUnit","cryptoAtoms","coin","getCryptoCurrency","shiftedBy","formatCryptoAddress","address","replace","SvgCopy","cpcStyles","lineBreak","buttonWrapper","detailsRowStyles","idCardDataCard","labelStyles","overflowTd","CopyToClipboard","buttonClassname","setTimeout","handleClick","TransactionsList","LastTxIcon","lastTxClass","TxOutIcon","TxInIcon","hasData","summaryElements","totalTxs","Number","parseInt","totalSpent","parseFloat","lastTxFiatCode","lastActive","lastTxFiat","tableElements","txClass","fiat","fiatCode","BigNumber","toFormat","created","GET_CUSTOMER","SET_CUSTOMER","CustomerProfile","showCompliance","customerId","useParams","customerResponse","getCustomer","refetch","setCustomer","customerInput","configData","rawTransactions","sortedTransactions","blocked","Breadcrumbs","aria-label","BlockIcon","BlockReversedIcon","CustomersList","hasLastTx","lastIcon","GET_CUSTOMERS","Customers","customersResponse","customersData","colorIndicator","TableLabel","main","firstSide","secondSide","coinTotal","leftSpacer","topSpacer","addressWrapper","itemWrapper","inactiveItem","firstItem","total","totalPending","totalTitle","tableLabel","pending","copyToClipboard","sizes","GET_FUNDING","sumReducer","acc","formatNumber","Funding","selected","setSelected","viewHistory","fundingHistory","cryptoAmount","balance","fiatValue","date","Date","performedBy","fundingResponse","funding","pendingTotal","errorMsg","fiatPending","reduce","signIfPositive","num","itemClass","wrapperClass","fiatConfirmedBalance","confirmedBalance","getConfirmedTotal","formatAddress","fundingAddress","fundingAddressUrl","isDefined","face","long","token","BTCWalletId","BTCWalletPassphrase","is","then","LTCWalletId","LTCWalletPassphrase","ZECWalletId","ZECWalletPassphrase","BCHWalletId","BCHWalletPassphrase","DASHWalletId","DASHWalletPassphrase","environment","matches","clientId","secret","confidenceFactor","integer","positive","apiKey","apiSecret","endpoint","userId","walletId","clientKey","clientSecret","privateKey","domain","fromEmail","email","toEmail","accountSid","authToken","fromNumber","toNumber","bitgo","bitstamp","blockcypher","infura","itbit","kraken","mailgun","twilio","SvgIconBitcoinColour","SvgIconBitcoincashColour","SvgIconDashColour","SvgIconEthereumColour","preserveAspectRatio","SvgIconLitecoinColour","SvgIconZcashColour","Logo","BitcoinLogo","BitcoinCashLogo","DashLogo","EthereumLogo","LitecoinLogo","ZCashLogo","getLogo","grid","FormRenderer","buttonLabel","buttonClass","xs","Grid","container","radioGroup","radioLabel","radio","setupNew","initialState","isNew","iError","reducer","innerError","unfilled","getValue","useReducer","dispatch","innerContinue","account","subtitleClass","filterConfig","crypto","sameClass","contains","getItems","accountsConfig","fConfig","accountsToSave","tickers","wallets","exchanges","zeroConfs","stepConfig","stepAccount","newAccounts","getStepData","filterClass","class","filterCoins","cryptos","WalletSchema","ticker","wallet","exchange","zeroConf","widthAdjust","viewCryptoCurrency","getDisplayName","getFields","names","allFields","overridenMachines","override","suggestionFilter","countryData","currencyData","languageData","findSuggestion","configureCoin","LocaleSchema","languages","OverridesSchema","localeDefaults","rightAligned","rightLink","FiatCurrencyChangeAlert","Locales","onChangeFunction","setOnChangeFunction","dataToSave","setDataToSave","localeOverrides","onChangeCoin","locale_fiatCurrency","o","userAccounts","SvgDownloadLogs","SvgMonthChange","SvgMonthChangeRight","lowerBound","upperBound","between","Tile","isLowerBound","isUpperBound","isBetween","isDisabled","rangeClasses","buttonWrapperClasses","buttonClasses","navbar","borderCollapse","Calendar","minDate","maxDate","handleSelect","currentDisplayedMonth","setCurrentDisplayedMonth","weekdays","weekdaysMin","day","monthdays","month","lastMonth","subtract","lastMonthRange","startOf","weekday","reverse","lastMonthDays","endOf","thisMonthRange","monthLength","thisMonthDays","add","nextMonth","nextMonthRange","nextMonthDays","currentMonth","prevMonth","isSameOrAfter","handleNavPrev","isSameOrBefore","handleNavNext","getRow","isAfter","isBefore","isSame","DateRangePicker","onRangeChange","setFrom","setTo","dateContainerStyles","monthWeekDayContainer","bigNumber","monthYear","weekDay","dateContainerUseStyles","DateContainer","popoverHeader","radioButtonsContainer","radioButtons","dateRangePickerShowing","dateRangePickerHidden","download","dateContainerWrapper","arrowContainer","ALL","RANGE","LogsDownloaderPopover","args","getLogs","selectedRadio","setSelectedRadio","until","range","setRange","useLazyQuery","createLogsFile","fetchLogs","dateRangePickerClasses","handleRangeChange","useCallback","logs","formatDateFile","blob","window","Blob","FileSaver","saveAs","radioButtonOptions","Download","DownloadInverseIcon","variant","downloadLogs","tableLayout","borderSpacing","TableBody","alignRight","TableCell","colspan","rightAlign","colSpan","TableHead","th","TableHeaderCell","lg","sm","TableRow","classnamesObj","GET_MACHINE_LOGS_CSV","GET_MACHINE_LOGS","Logs","saveMessage","setSaveMessage","machineResponse","logsResponse","skip","TableHeader","machineLogs","timestamp","logLevel","ValidationSchema","cassette1","cassette2","GET_MACHINES_AND_CONFIG","RESET_CASHOUT_BILLS","CashCassettes","resetCashOut","cashout","getCashoutSettings","isCashOutDisabled","ry","SvgPumpkin","dialogContent","dialogTitle","dialogActions","DialogTitle","ConfirmDialog","toBeConfirmed","saveButtonAlwaysEnabled","confirmationMessage","onConfirmed","onDissmised","initialValue","isOnErrorState","split","DialogActions","machineDetailsStyles","colDivider","inlineChip","marginInlineEnd","stack","divider","mr","MACHINE_ACTION","supportArtices","article","useLStyles","Label","useMDStyles","Container","Item","MachineDetailsRow","onActionSuccess","setAction","setErrorMessage","machineAction","confirmDialogOpen","Divider","orientation","flexItem","command","toLowerCase","newName","model","pairedAt","EditIcon","EditReversedIcon","UnpairIcon","UnpairReversedIcon","RebootIcon","RebootReversedIcon","ShutdownIcon","ShutdownReversedIcon","MachineStatus","addedMachineId","machinesResponse","lastPing","fromNow","version","expandedIndex","transformNumber","_","isNumber","isNaN","flexShrink","editingButtons","fieldWrapper","valueWrapper","decoration","EditableNumber","displayValue","SingleFieldEditableNumber","NotificationsCtx","LOW_BALANCE_KEY","HIGH_BALANCE_KEY","cryptoBalanceAlerts","cryptoBalanceAlertsForm","cryptoBalanceAlertsSecondForm","vertSeparator","CryptoBalanceAlerts","fieldWidth","CRYPTOCURRENCY_KEY","NAME","CryptoBalanceOverrides","setupValues","cryptoBalanceOverrides","overridenCryptos","suggestions","cryptoCurrency","newOverrides","first","gridTemplateColumns","gridTemplateRows","gridColumnGap","gridRowGap","FiatBalance","MAX_SAFE_INTEGER","fiatBalanceCassette1","fiatBalanceCassette2","fiatBalanceCassette1Percent","fiatBalanceCassette2Percent","CASSETTE_1_KEY","CASSETTE_2_KEY","MACHINE_KEY","FiatBalanceOverrides","fiatBalanceOverrides","notesMax","transactions","compliance","namespace","rawSave","Cell","mainTable","wizardTable","Setup","TransactionAlerts","Notifications","displaySetup","displayTransactionAlerts","displayFiatAlerts","displayCryptoAlerts","displayOverrides","displayTitle","setSection","editingKey","setEditingKey","contextValue","FiatBalanceAlerts","rowTextAndSwitch","GET_CONFIG","CoinATMRadar","coinAtmRadarConfig","limitsAndVerification","createMuiTheme","typography","body1","MuiButtonBase","light","dark","MuiRadio","colorSecondary","MuiAutocomplete","noOptions","paper","listbox","tag","MuiChip","MuiInput","MuiInputLabel","font","MuiFormLabel","switchRow","switch","singleButton","contactInfoStyles","infoMessage","radioButtonsRow","termsConditionsStyles","enable","fieldStyles","notEditing","fieldUseStyles","globalStyles","contactUseStyles","ContactInfo","info","website","companyNumber","fields","findField","findValue","displayTextValue","SvgFalse","SvgTrue","booleanPropertiesTableStyles","booleanPropertiesTableWrapper","tableRow","leftTableCell","rightTableCell","BooleanCell","BooleanPropertiesTable","forcedEditing","fromPairs","schemaValidation","switchWrapper","ReceiptPrinting","receiptPrintingConfig","useFieldStyles","notEditingSingleLine","notEditingMultiline","wordWrap","multiline","rows","multiLineText","rowsMax","useTermsConditionsStyles","TermsConditions","termsAndConditions","formData","showOnScreen","acceptButtonText","cancelButtonText","f","innerRoutes","CoinAtmRadar","Routes","exact","Page","OperatorInfo","running","notRunning","uptimeContainer","useChipStyles","Uptime","time","uptime","floor","localStyles","serverTableWrapper","logsStyles","serverVersion","headerLine2","SHOW_ALL","GET_CSV","tableEl","useRef","setLogLevel","processStates","getLogLevels","serverLogs","current","scrollTo","head","SingleRowTable","SAVE_ACCOUNT","Services","editingSchema","setEditingSchema","saveAccount","faceElements","schemas","editMessage","secondRow","lastRow","txIcon","direction","availableIds","exchangeRate","transactionId","sessionId","getStatus","hasError","dispense","expired","getCashOutStatus","operatorCompleted","sendConfirmed","getCashInStatus","DetailsRow","tx","commissionPercentage","displayExRate","customerIdCardData","firstName","lastName","age","dateOfBirth","idCardNumber","documentNumber","idCardExpirationDate","expirationDate","customerPhone","PhoneIdIcon","PhoneIdInverseIcon","customerIdCardPhotoPath","CardIdIcon","CardIdInverseIcon","idCardPhoto","customerFrontCameraPath","CamIdIcon","CamIdInverseIcon","cashInFee","toAddress","txHash","next","GET_TRANSACTIONS_CSV","GET_TRANSACTIONS","Transactions","txResponse","formatCustomerName","specialLabel","specialGrid","directionIcon","directionName","thresholdWrapper","thresholdField","space","lastSpace","suspensionDays","limitedInput","daysInput","triggerType","threshold","thresholdDays","requirement","Schema","typeSchema","typeOptions","typeClass","containsType","isThresholdEnabled","isThresholdDaysEnabled","requirementSchema","requirementOptions","requirements","titleClass","isSuspend","RequirementInput","RequirementView","DisplayThreshold","isEdit","Threshold","ThresholdDays","ThresholdInput","ThresholdView","triggerOrder","b","toServer","triggers","rest","stepper","infoTitle","infoCurrentText","getText","getTypeText","getRequirementText","orUnderline","InfoPanel","liveValues","oldText","newText","GetValues","setValues","setLiveValues","stepOptions","Fragment","getStep","tableRadioGroup","tableRadioLabel","tableWidth","Triggers","fromServer","complianceConfig","rejectAddressReuse","addressReuseSave","toSave","Wallet","previous","doContinue","getConfiguredCoins","InfoMessage","mdForm","formButton","SAVE_ACCOUNTS","Twilio","saveAccounts","titleClasses","AllSet","currentData","withCoin","Blockcypher","addData","ChooseCoin","isConfigurable","ChooseExchange","ChooseTicker","ChooseWallet","saveWallet","setData","mySteps","welcome","getStarted","Welcome","getWizardStep","coins","hasValidWallet","hasValidLocale","CommissionsSchema","hasValidCommissions","STEPS","exImage","Locale","drawer","flexGrow","smallWrapper","Footer","start","fullExample","setFullExample","wrapperClassNames","Drawer","anchor","paperAnchorDockedBottom","justify","welcomeBackground","backgroundSize","blurred","pointerEvents","setWizardTested","AppContext","footerExp","setFooterExp","wizardStep","shouldGoBack","goBack","isWelcome","MachineLogs","ServerLogs","WalletSettings","leafRoutes","parentRoutes","flattened","wizardTested","html","jss","plugins","extendJss","jssPreset","global","Main","is404","App","StylesProvider","CssBaseline","hostname","ReactDOM","render","document","getElementById","navigator","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.d0c68b02.chunk.js","sourcesContent":["import { ApolloProvider } from '@apollo/react-hooks'\nimport { InMemoryCache } from 'apollo-cache-inmemory'\nimport { ApolloClient } from 'apollo-client'\nimport { ApolloLink } from 'apollo-link'\nimport { onError } from 'apollo-link-error'\nimport { HttpLink } from 'apollo-link-http'\nimport React from 'react'\nimport { useHistory, useLocation } from 'react-router-dom'\n\nconst URI =\n process.env.NODE_ENV === 'development' ? 'https://localhost:8070' : ''\n\nconst getClient = (history, location) =>\n new ApolloClient({\n link: ApolloLink.from([\n onError(({ graphQLErrors, networkError }) => {\n if (graphQLErrors)\n graphQLErrors.forEach(({ message, locations, path, extensions }) => {\n if (extensions?.code === 'UNAUTHENTICATED') {\n if (location.pathname !== '/404') history.push('/404')\n }\n console.log(\n `[GraphQL error]: Message: ${message}, Location: ${locations}, Path: ${path}`\n )\n })\n if (networkError) console.log(`[Network error]: ${networkError}`)\n }),\n new HttpLink({\n credentials: 'include',\n uri: `${URI}/graphql`\n })\n ]),\n cache: new InMemoryCache(),\n defaultOptions: {\n watchQuery: {\n fetchPolicy: 'no-cache',\n errorPolicy: 'ignore'\n },\n query: {\n fetchPolicy: 'no-cache',\n errorPolicy: 'all'\n },\n mutate: {\n errorPolicy: 'all'\n }\n }\n })\n\nconst Provider = ({ children }) => {\n const history = useHistory()\n const location = useLocation()\n const client = getClient(history, location)\n return {children}\n}\n\nexport default Provider\nexport { URI }\n","const version = 9\n\n// Primary\nconst zodiac = '#1b2559'\nconst spring = '#48f694'\n\n// Secondary\nconst comet = '#5f668a'\nconst comet2 = '#72799d'\nconst spring2 = '#44e188'\nconst spring3 = '#ecfbef'\nconst spring4 = '#3fd07e'\nconst zircon = '#ebefff'\nconst zircon2 = '#dbdfed'\n\n// Cash-in/cash-out\nconst java = '#16d6d3'\nconst neon = '#5a67ff'\n\n// Neutral\nconst dust = '#dddddd'\nconst concrete = '#f2f2f2'\nconst ghost = '#fafbff'\nconst white = '#ffffff'\n\n// Error\nconst tomato = '#ff584a'\nconst mistyRose = '#ffeceb'\nconst pumpkin = '#ff7311'\nconst linen = '#fbf3ec'\n\n// Color Variables\nconst primaryColor = zodiac\n\nconst secondaryColor = spring\nconst secondaryColorDark = spring2\nconst secondaryColorDarker = spring4\nconst secondaryColorLighter = spring3\n\nconst backgroundColor = ghost\nconst subheaderColor = zircon\nconst subheaderDarkColor = zircon2\nconst disabledColor = dust\nconst disabledColor2 = concrete\nconst fontColor = primaryColor\nconst offColor = comet\nconst offDarkColor = comet2\nconst placeholderColor = comet\nconst errorColor = tomato\nconst offErrorColor = mistyRose\nconst inputBorderColor = primaryColor\n\n// General\nconst spacer = 8\nconst mainWidth = 1200\n\n// Buttons\nconst linkPrimaryColor = secondaryColor\nconst linkSecondaryColor = tomato\n\n// Fonts\nconst fontPrimary = 'Mont'\nconst fontSecondary = 'MuseoSans'\nconst fontMonospaced = 'BPmono'\n\nlet fontSize1 = 24\nlet fontSize2 = 20\nlet fontSize3 = 16\nlet fontSize4 = 14\nlet fontSize5 = 13\n\nif (version === 8) {\n fontSize1 = 32\n fontSize2 = 24\n fontSize3 = 20\n fontSize4 = 16\n fontSize5 = 14\n}\n\nconst smallestFontSize = fontSize5\nconst inputFontSizeSm = fontSize4\nconst inputFontSize = fontSize3\nconst inputFontSizeLg = fontSize1\nconst inputFontWeight = 500\nconst inputFontWeightBold = 700\nconst inputFontFamily = fontSecondary\n\n// Breakpoints\nconst sm = 576\nconst md = 768\nconst lg = 992\nconst xl = 1200\nconst xxl = 1440\n\n// Table\nlet tableHeaderHeight = spacer * 4\nlet tableCellHeight = spacer * 6\n\nif (version === 8) {\n tableHeaderHeight = spacer * 5\n tableCellHeight = spacer * 7 - 2\n}\n\nconst tableDoubleHeaderHeight = tableHeaderHeight * 2\n\nconst tableSmCellHeight = 30\nconst tableLgCellHeight = 76\n\nconst tableHeaderColor = primaryColor\nconst tableDisabledHeaderColor = zircon\nconst tableNewDisabledHeaderColor = spring3\nconst tableCellColor = white\nconst tableErrorColor = mistyRose\nconst tableSuccessColor = spring3\n\nexport {\n version,\n // colors\n white,\n zircon,\n zircon2,\n comet,\n spring2,\n spring3,\n spring4,\n tomato,\n pumpkin,\n mistyRose,\n java,\n neon,\n linen,\n // named colors\n primaryColor,\n secondaryColor,\n secondaryColorDark,\n secondaryColorDarker,\n secondaryColorLighter,\n subheaderColor,\n subheaderDarkColor,\n backgroundColor,\n placeholderColor,\n offColor,\n offDarkColor,\n fontColor,\n disabledColor,\n disabledColor2,\n linkPrimaryColor,\n linkSecondaryColor,\n errorColor,\n offErrorColor,\n inputBorderColor,\n // font sizes\n fontSize1,\n fontSize2,\n fontSize3,\n fontSize4,\n fontSize5,\n fontPrimary,\n fontSecondary,\n fontMonospaced,\n // named font sizes\n smallestFontSize,\n inputFontSize,\n inputFontSizeSm,\n inputFontSizeLg,\n inputFontFamily,\n inputFontWeight,\n inputFontWeightBold,\n // screen sizes\n sm,\n md,\n lg,\n xl,\n xxl,\n // sizes\n spacer,\n mainWidth,\n // table sizes\n tableHeaderHeight,\n tableDoubleHeaderHeight,\n tableCellHeight,\n tableSmCellHeight,\n tableLgCellHeight,\n tableHeaderColor,\n tableDisabledHeaderColor,\n tableNewDisabledHeaderColor,\n tableCellColor,\n tableErrorColor,\n tableSuccessColor\n}\n","import {\n fontColor,\n fontSize1,\n fontSize2,\n fontSize3,\n fontSize4,\n fontSize5,\n fontPrimary,\n fontSecondary,\n fontMonospaced\n} from 'src/styling/variables'\n\nconst base = {\n lineHeight: '120%',\n color: fontColor\n}\n\nexport default {\n h1: {\n extend: base,\n fontSize: fontSize1,\n fontFamily: fontPrimary,\n fontWeight: 900\n },\n h2: {\n extend: base,\n fontSize: fontSize2,\n fontFamily: fontPrimary,\n fontWeight: 900\n },\n h3: {\n extend: base,\n fontSize: fontSize4,\n fontFamily: fontPrimary,\n fontWeight: 900\n },\n h4: {\n extend: base,\n fontSize: fontSize4,\n fontFamily: fontPrimary,\n fontWeight: 700\n },\n h5: {\n extend: base,\n fontSize: fontSize3,\n fontFamily: fontPrimary,\n fontWeight: 700\n },\n p: {\n extend: base,\n fontSize: fontSize4,\n fontFamily: fontSecondary,\n fontWeight: 500\n },\n tl1: {\n extend: base,\n fontSize: fontSize2,\n fontFamily: fontSecondary,\n fontWeight: 700\n },\n tl2: {\n extend: base,\n fontSize: fontSize4,\n fontFamily: fontSecondary,\n fontWeight: 700\n },\n info1: {\n extend: base,\n fontSize: fontSize1,\n fontFamily: fontSecondary,\n fontWeight: 700\n },\n info2: {\n extend: base,\n fontSize: fontSize3,\n fontFamily: fontSecondary,\n fontWeight: 700\n },\n info3: {\n extend: base,\n fontSize: fontSize3,\n fontFamily: fontSecondary,\n fontWeight: 500\n },\n mono: {\n extend: base,\n fontSize: fontSize4,\n fontFamily: fontMonospaced,\n fontWeight: 500\n },\n monoBold: {\n fontWeight: 700\n },\n monoSmall: {\n fontSize: fontSize5\n },\n inputFont: {\n fontSize: fontSize2,\n fontFamily: fontSecondary,\n fontWeight: 500,\n lineHeight: '110%',\n color: fontColor\n },\n regularLabel: {\n fontSize: fontSize4,\n fontFamily: fontSecondary,\n fontWeight: 500,\n lineHeight: '110%'\n },\n label1: {\n fontSize: fontSize5,\n fontFamily: fontSecondary,\n fontWeight: 500,\n color: fontColor\n },\n label2: {\n fontSize: fontSize5,\n fontFamily: fontSecondary,\n fontWeight: 700,\n color: fontColor\n },\n label3: {\n fontSize: fontSize4,\n fontFamily: fontSecondary,\n fontWeight: 500,\n color: fontColor\n },\n inline: {\n display: 'inline'\n },\n noMargin: {\n margin: 0\n }\n}\n","import typographyStyles from 'src/components/typography/styles'\nimport {\n white,\n fontColor,\n subheaderColor,\n subheaderDarkColor,\n offColor,\n offDarkColor\n} from 'src/styling/variables'\n\nconst { p } = typographyStyles\n\nconst colors = (color1, color2, color3) => {\n return {\n backgroundColor: color1,\n '&:hover': {\n backgroundColor: color2\n },\n '&:active': {\n backgroundColor: color3\n }\n }\n}\n\nexport default {\n actionButton: {\n extend: p,\n cursor: 'pointer',\n border: 'none',\n height: 28,\n outline: 0,\n borderRadius: 6,\n padding: '0 8px',\n display: 'flex',\n alignItems: 'center'\n },\n primary: {\n extend: colors(subheaderColor, subheaderDarkColor, offColor),\n '&:active': {\n color: white,\n '& $actionButtonIcon': {\n display: 'none'\n },\n '& $actionButtonIconActive': {\n display: 'flex'\n }\n },\n '& $actionButtonIconActive': {\n display: 'none'\n }\n },\n secondary: {\n extend: colors(offColor, offDarkColor, white),\n color: white,\n '&:active': {\n color: fontColor,\n '& $actionButtonIcon': {\n display: 'flex'\n },\n '& $actionButtonIconActive': {\n display: 'none'\n }\n },\n '& $actionButtonIcon': {\n display: 'none'\n },\n '& $actionButtonIconActive': {\n display: 'flex'\n }\n },\n actionButtonIcon: {\n display: 'flex',\n paddingRight: 7,\n '@global': {\n svg: {\n width: 14,\n height: 14\n }\n }\n },\n actionButtonIconActive: {}\n}\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React, { memo } from 'react'\n\nimport styles from './ActionButton.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst ActionButton = memo(\n ({ className, Icon, InverseIcon, color, children, ...props }) => {\n const classes = useStyles()\n const classNames = {\n [classes.actionButton]: true,\n [classes.primary]: color === 'primary',\n [classes.secondary]: color === 'secondary'\n }\n\n return (\n
\n )}\n {children &&
{children}
}\n \n )\n }\n)\n\nexport default ActionButton\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/add/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.5384615,6 C11.5384615,9.05815385 9.05815385,11.5384615 6,11.5384615 C2.94184615,11.5384615 0.461538462,9.05815385 0.461538462,6 C0.461538462,2.94184615 2.94184615,0.461538462 6,0.461538462 C9.05815385,0.461538462 11.5384615,2.94184615 11.5384615,6 Z\",\n id: \"Stroke-1\",\n stroke: \"#1B2559\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 6,\n y1: 3.69230769,\n x2: 6,\n y2: 8.30769231,\n id: \"Stroke-3\",\n stroke: \"#1B2559\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 3.69230769,\n y1: 6,\n x2: 8.30769231,\n y2: 6,\n id: \"Stroke-5\",\n stroke: \"#1B2559\"\n}));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.a976fef2.svg\";\nexport { ForwardRef as ReactComponent };","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React, { memo } from 'react'\n\nimport typographyStyles from 'src/components/typography/styles'\nimport { ReactComponent as AddIcon } from 'src/styling/icons/button/add/zodiac.svg'\nimport { zircon, zircon2, comet, fontColor, white } from 'src/styling/variables'\n\nconst { p } = typographyStyles\n\nconst styles = {\n button: {\n extend: p,\n border: 'none',\n backgroundColor: zircon,\n cursor: 'pointer',\n outline: 0,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n width: 167,\n height: 48,\n color: fontColor,\n '&:hover': {\n backgroundColor: zircon2\n },\n '&:active': {\n backgroundColor: comet,\n color: white,\n '& svg g *': {\n stroke: white\n }\n },\n '& svg': {\n marginRight: 8\n }\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst SimpleButton = memo(({ className, children, ...props }) => {\n const classes = useStyles()\n\n return (\n \n )\n})\n\nexport default SimpleButton\n","import typographyStyles from 'src/components/typography/styles'\nimport {\n white,\n disabledColor,\n secondaryColor,\n secondaryColorDark,\n secondaryColorDarker,\n spacer\n} from 'src/styling/variables'\n\nconst { h1, h3 } = typographyStyles\n\nconst pickSize = size => {\n switch (size) {\n case 'xl':\n return spacer * 7.625\n case 'sm':\n return spacer * 4\n case 'lg':\n default:\n return spacer * 5\n }\n}\n\nexport default {\n wrapper: ({ size }) => {\n const height = pickSize(size)\n const shadowSize = height / 12\n return { height: height + shadowSize / 2 }\n },\n button: ({ size }) => {\n const height = pickSize(size)\n const shadowSize = size === 'xl' ? 3 : height / 12\n const padding = size === 'xl' ? 20 : height / 2\n\n return {\n extend: size === 'xl' ? h1 : h3,\n border: 'none',\n color: white,\n cursor: 'pointer',\n fontWeight: 900,\n outline: 0,\n backgroundColor: secondaryColor,\n '&:disabled': {\n backgroundColor: disabledColor,\n boxShadow: 'none',\n '&:hover': {\n backgroundColor: disabledColor,\n boxShadow: 'none'\n },\n '&:active': {\n marginTop: 0\n }\n },\n shadowSize,\n height,\n padding: `0 ${padding}px`,\n borderRadius: height / 4,\n boxShadow: `0 ${shadowSize}px ${secondaryColorDark}`,\n '&:hover': {\n backgroundColor: secondaryColorDark,\n boxShadow: `0 ${shadowSize}px ${secondaryColorDarker}`\n },\n '&:active': {\n marginTop: shadowSize / 2,\n backgroundColor: secondaryColorDark,\n boxShadow: `0 ${shadowSize / 2}px ${secondaryColorDarker}`\n }\n }\n }\n}\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React, { memo } from 'react'\n\nimport styles from './Button.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst ActionButton = memo(({ size = 'lg', children, className, ...props }) => {\n const classes = useStyles({ size })\n return (\n
\n \n
\n )\n})\n\nexport default ActionButton\n","import {\n white,\n fontColor,\n subheaderColor,\n subheaderDarkColor,\n offColor,\n offDarkColor\n} from 'src/styling/variables'\n\nconst colors = (color1, color2, color3) => {\n return {\n backgroundColor: color1,\n '&:hover': {\n backgroundColor: color2\n },\n '&:active': {\n backgroundColor: color3\n }\n }\n}\n\nconst buttonHeight = 32\n\nexport default {\n baseButton: {\n extend: colors(subheaderColor, subheaderDarkColor, offColor),\n cursor: 'pointer',\n border: 'none',\n outline: 0,\n height: buttonHeight,\n color: fontColor,\n '&:active': {\n color: white\n }\n },\n primary: {\n extend: colors(subheaderColor, subheaderDarkColor, offColor),\n '&:active': {\n color: white,\n '& $buttonIcon': {\n display: 'none'\n },\n '& $buttonIconActive': {\n display: 'block'\n }\n },\n '& $buttonIconActive': {\n display: 'none'\n }\n },\n secondary: {\n extend: colors(offColor, offDarkColor, white),\n color: white,\n '&:active': {\n color: fontColor,\n '& $buttonIcon': {\n display: 'flex'\n },\n '& $buttonIconActive': {\n display: 'none'\n }\n },\n '& $buttonIcon': {\n display: 'none'\n },\n '& $buttonIconActive': {\n display: 'flex'\n }\n }\n}\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React, { memo } from 'react'\n\nimport baseButtonStyles from './BaseButton.styles'\n\nconst { baseButton, primary } = baseButtonStyles\n\nconst styles = {\n featureButton: {\n extend: baseButton,\n width: baseButton.height,\n borderRadius: baseButton.height / 2,\n display: 'flex',\n padding: 0\n },\n primary,\n buttonIcon: {\n margin: 'auto',\n '& svg': {\n width: 16,\n height: 16,\n overflow: 'visible',\n '& g': {\n strokeWidth: 1.8\n }\n }\n },\n buttonIconActive: {} // required to extend primary\n}\n\nconst useStyles = makeStyles(styles)\n\nconst FeatureButton = memo(\n ({ className, Icon, InverseIcon, children, ...props }) => {\n const classes = useStyles()\n\n const classNames = {\n [classes.featureButton]: true,\n [classes.primary]: true\n }\n\n return (\n
\n )}\n {children}\n \n )\n }\n)\n\nexport default FeatureButton\n","import { makeStyles, Popper as MaterialPopper, Paper } from '@material-ui/core'\nimport classnames from 'classnames'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport { white } from 'src/styling/variables'\n\nconst Popover = ({\n children,\n bgColor = white,\n arrowSize = 6,\n className,\n ...props\n}) => {\n const [arrowRef, setArrowRef] = useState(null)\n\n const styles = {\n popover: {\n zIndex: 3000,\n backgroundColor: bgColor,\n borderRadius: 4\n },\n arrow: {\n position: 'absolute',\n fontSize: arrowSize,\n width: '3em',\n height: '3em'\n },\n arrowBottom: {\n top: 0,\n width: 0,\n height: 0,\n borderLeft: [['2em', 'solid', 'transparent']],\n borderRight: [['2em', 'solid', 'transparent']],\n borderBottom: [['2em', 'solid', bgColor]],\n marginTop: '-1.9em',\n '&:after': {\n zIndex: -10,\n content: '\"\"',\n position: 'absolute',\n width: arrowSize * 3,\n height: arrowSize * 3,\n marginLeft: 0,\n bottom: 0,\n top: 'calc(50% - 0px)',\n left: 0,\n border: '5px solid #fff',\n borderColor: 'transparent transparent #fff #fff',\n transformOrigin: '0 0',\n transform: 'rotate(45deg)',\n boxShadow:\n '0px 2px 1px -1px rgba(0,0,0,0.2),0px 1px 1px 0px rgba(0,0,0,0.14),0px 1px 3px 0px rgba(0,0,0,0.12)'\n }\n },\n arrowTop: {\n bottom: 0,\n width: 0,\n height: 0,\n borderLeft: [['2em', 'solid', 'transparent']],\n borderRight: [['2em', 'solid', 'transparent']],\n borderTop: [['2em', 'solid', bgColor]],\n marginBottom: '-1.9em',\n '&:after': {\n zIndex: -10,\n content: '\"\"',\n position: 'absolute',\n width: arrowSize * 3,\n height: arrowSize * 3,\n marginLeft: 0,\n bottom: 0,\n top: -(arrowSize * 4 + 2),\n left: 0,\n border: '5px solid #fff',\n borderColor: 'transparent transparent #fff #fff',\n transformOrigin: '0 0',\n transform: 'rotate(45deg)',\n boxShadow:\n '0px 2px 1px -1px rgba(0,0,0,0.2),0px 1px 1px 0px rgba(0,0,0,0.14),0px 1px 3px 0px rgba(0,0,0,0.12)'\n }\n },\n arrowRight: {\n left: 0,\n width: 0,\n height: 0,\n borderTop: [['2em', 'solid', 'transparent']],\n borderBottom: [['2em', 'solid', 'transparent']],\n borderRight: [['2em', 'solid', bgColor]],\n marginLeft: '-1.9em'\n },\n arrowLeft: {\n right: 0,\n width: 0,\n height: 0,\n borderTop: [['2em', 'solid', 'transparent']],\n borderBottom: [['2em', 'solid', 'transparent']],\n borderLeft: [['2em', 'solid', bgColor]],\n marginRight: '-1.9em'\n },\n root: {\n backgroundColor: bgColor\n }\n }\n\n const useStyles = makeStyles(styles)\n\n const classes = useStyles()\n\n const arrowClasses = {\n [classes.arrow]: true,\n [classes.arrowBottom]: props.placement === 'bottom',\n [classes.arrowTop]: props.placement === 'top',\n [classes.arrowRight]: props.placement === 'right',\n [classes.arrowLeft]: props.placement === 'left'\n }\n\n const modifiers = R.merge(props.modifiers, {\n flip: {\n enabled: false\n },\n preventOverflow: {\n enabled: true,\n boundariesElement: 'scrollParent'\n },\n offset: {\n enabled: true,\n offset: '0, 10'\n },\n arrow: {\n enabled: true,\n element: arrowRef\n },\n computeStyle: {\n gpuAcceleration: false\n }\n })\n\n return (\n <>\n \n \n \n {children}\n \n \n \n )\n}\n\nexport default Popover\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React, { useState, memo } from 'react'\n\nimport Popover from 'src/components/Popper'\nimport typographyStyles from 'src/components/typography/styles'\nimport {\n subheaderColor,\n subheaderDarkColor,\n offColor\n} from 'src/styling/variables'\n\nconst { info2 } = typographyStyles\n\nconst colors = (color1, color2, color3) => {\n return {\n backgroundColor: color1,\n '&:hover': {\n backgroundColor: color2\n },\n '&:active': {\n backgroundColor: color3\n }\n }\n}\n\nconst styles = {\n idButton: {\n width: 34,\n height: 28,\n display: 'flex',\n borderRadius: 4,\n padding: 0,\n border: 'none',\n cursor: 'pointer'\n },\n buttonIcon: {\n margin: 'auto',\n lineHeight: 1,\n '& svg': {\n overflow: 'visible'\n }\n },\n closed: {\n extend: colors(subheaderColor, subheaderDarkColor, offColor)\n },\n open: {\n extend: colors(offColor, offColor, offColor)\n },\n popoverContent: {\n extend: info2,\n padding: 8,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n borderRadius: 4,\n '& img': {\n maxHeight: 145\n }\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst IDButton = memo(\n ({\n name,\n className,\n Icon,\n InverseIcon,\n popoverWidth = 152,\n children,\n popoverClassname,\n ...props\n }) => {\n const [anchorEl, setAnchorEl] = useState(null)\n\n const classes = useStyles()\n\n const open = Boolean(anchorEl)\n const id = open ? `simple-popper-${name}` : undefined\n\n const classNames = {\n [classes.idButton]: true,\n [classes.primary]: true,\n [classes.open]: open,\n [classes.closed]: !open\n }\n\n const iconClassNames = {\n [classes.buttonIcon]: true\n }\n\n const handleClick = event => {\n setAnchorEl(anchorEl ? null : event.currentTarget)\n }\n\n const handleClose = () => {\n setAnchorEl(null)\n }\n\n return (\n <>\n \n {Icon && !open && (\n
\n \n
\n )}\n {InverseIcon && open && (\n
\n \n
\n )}\n \n \n
\n
{children}
\n
\n \n \n )\n }\n)\n\nexport default IDButton\n","import { makeStyles, IconButton as IconB } from '@material-ui/core'\nimport React from 'react'\n\nimport { comet } from 'src/styling/variables'\n\nconst styles = {\n label: ({ size }) => ({\n width: size,\n height: size\n }),\n root: {\n '& svg': {\n flex: 1\n },\n '&:hover': {\n backgroundColor: 'inherit'\n },\n '&:hover rect': {\n stroke: comet\n },\n '&:hover polygon': {\n stroke: comet\n },\n '&:hover path': {\n stroke: comet\n }\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst IconButton = ({ size, children, onClick, ...props }) => {\n const classes = useStyles({ size })\n return (\n \n {children}\n \n )\n}\n\nexport default IconButton\n","import { fade } from '@material-ui/core/styles/colorManipulator'\n\nimport typographyStyles from 'src/components/typography/styles'\nimport {\n white,\n linkPrimaryColor,\n linkSecondaryColor,\n zircon\n} from 'src/styling/variables'\n\nconst { h4 } = typographyStyles\n\nconst color = color => ({\n boxShadow: `inset 0 -4px 0 0 ${fade(color, 0.8)}`,\n '&:hover': {\n boxShadow: 'none',\n backgroundColor: fade(color, 0.8)\n }\n})\n\nexport default {\n link: {\n extend: h4,\n textDecoration: 'none',\n border: 'none',\n backgroundColor: 'transparent',\n cursor: 'pointer',\n padding: '0',\n height: '100%'\n },\n primary: {\n extend: color(linkPrimaryColor)\n },\n secondary: {\n extend: color(linkSecondaryColor),\n '&:hover': {\n color: white\n }\n },\n noColor: {\n extend: color(white)\n },\n action: {\n extend: color(linkPrimaryColor),\n color: zircon\n }\n}\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React, { memo } from 'react'\n\nimport styles from './Link.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst Link = memo(\n ({ submit, className, children, color = 'primary', ...props }) => {\n const classes = useStyles()\n const classNames = {\n [classes.link]: true,\n [classes.primary]: color === 'primary',\n [classes.secondary]: color === 'secondary',\n [classes.noColor]: color === 'noColor',\n [classes.action]: color === 'action'\n }\n\n return (\n \n {children}\n \n )\n }\n)\n\nexport default Link\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React, { memo } from 'react'\n\nimport baseButtonStyles from './BaseButton.styles'\n\nconst { baseButton, primary } = baseButtonStyles\n\nconst styles = {\n button: {\n extend: baseButton,\n borderRadius: baseButton.height / 2,\n outline: 0,\n padding: '0 20px'\n },\n primary,\n buttonIcon: {\n marginTop: 4,\n marginRight: 4,\n '& svg': {\n width: 20,\n height: 20,\n overflow: 'visible'\n }\n },\n buttonIconActive: {} // required to extend primary\n}\n\nconst useStyles = makeStyles(styles)\n\nconst SimpleButton = memo(\n ({ className, Icon, InverseIcon, children, color, size, ...props }) => {\n const classes = useStyles()\n\n return (\n \n {Icon && (\n
\n \n
\n )}\n {InverseIcon && (\n \n \n
\n )}\n {children}\n \n )\n }\n)\n\nexport default SimpleButton\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/cancel/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-5\",\n transform: \"translate(1.000000, 1.000000)\",\n stroke: \"#FFFFFF\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n x1: 10,\n y1: 0,\n x2: 0,\n y2: 10,\n id: \"Stroke-1\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 0,\n y1: 0,\n x2: 10,\n y2: 10,\n id: \"Stroke-3\"\n})));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.41439910.svg\";\nexport { ForwardRef as ReactComponent };","import baseButtonStyles from 'src/components/buttons/BaseButton.styles'\nimport { offColor, white } from 'src/styling/variables'\n\nconst { baseButton } = baseButtonStyles\n\nexport default {\n button: {\n extend: baseButton,\n padding: 0,\n color: white,\n borderRadius: baseButton.height / 2\n },\n normalButton: {\n width: baseButton.height\n },\n activeButton: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n backgroundColor: offColor,\n fontWeight: 'bold',\n padding: '0 5px',\n '&:hover': {\n backgroundColor: offColor\n }\n },\n buttonIcon: {\n '& svg': {\n width: 16,\n height: 16,\n overflow: 'visible',\n '& g': {\n strokeWidth: 1.8\n }\n }\n },\n buttonIconActiveLeft: {\n marginRight: 12\n },\n buttonIconActiveRight: {\n marginRight: 5,\n marginLeft: 20\n }\n}\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React, { memo, useState } from 'react'\n\nimport { ReactComponent as CancelIconInverse } from 'src/styling/icons/button/cancel/white.svg'\n\nimport subpageButtonStyles from './SubpageButton.styles'\n\nconst useStyles = makeStyles(subpageButtonStyles)\n\nconst SubpageButton = memo(\n ({ className, Icon, InverseIcon, toggle, children }) => {\n const [active, setActive] = useState(false)\n\n const classes = useStyles()\n\n const classNames = {\n [classes.button]: true,\n [classes.normalButton]: !active,\n [classes.activeButton]: active\n }\n\n const normalButton = \n\n const activeButton = (\n <>\n \n {children}\n \n \n )\n\n const innerToggle = () => {\n const newActiveState = !active\n toggle(newActiveState)\n setActive(newActiveState)\n }\n\n return (\n \n {active ? activeButton : normalButton}\n \n )\n }\n)\n\nexport default SubpageButton\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/action/external-link/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-1\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2,\n points: \"20 12.1113 20 21.0003 0 21.0003 0 1.0003 8.889 1.0003\"\n}), /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-3\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2,\n points: \"14.4443 1 20.0003 1 20.0003 6.556\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 10,\n y1: 11,\n x2: 20,\n y2: 1,\n id: \"Stroke-5\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2\n}));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.9814829c.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/action/external-link/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-7\",\n transform: \"translate(0.000000, 1.000000)\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n}, /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-1\",\n points: \"20 11.1113 20 20.0003 0 20.0003 0 0.0003 8.889 0.0003\"\n}), /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-3\",\n points: \"14.4443 0 20.0003 0 20.0003 5.556\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 10,\n y1: 10,\n x2: 20,\n y2: 0,\n id: \"Stroke-5\"\n})));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.6cff3051.svg\";\nexport { ForwardRef as ReactComponent };","import { makeStyles } from '@material-ui/core'\nimport React from 'react'\n\nimport { ActionButton } from 'src/components/buttons'\nimport { ReactComponent as InverseLinkIcon } from 'src/styling/icons/action/external link/white.svg'\nimport { ReactComponent as LinkIcon } from 'src/styling/icons/action/external link/zodiac.svg'\nimport { spacer, primaryColor } from 'src/styling/variables'\n\nconst useStyles = makeStyles({\n actionButton: {\n marginBottom: spacer * 4\n },\n actionButtonLink: {\n textDecoration: 'none',\n color: primaryColor\n }\n})\n\nconst SupportLinkButton = ({ link, label }) => {\n const classes = useStyles()\n return (\n \n \n {label}\n \n \n )\n}\n\nexport default SupportLinkButton\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React from 'react'\n\nimport styles from './styles'\n\nconst useStyles = makeStyles(styles)\n\nfunction H1({ children, noMargin, className, ...props }) {\n const classes = useStyles()\n const classNames = {\n [classes.h1]: true,\n [classes.noMargin]: noMargin,\n [className]: !!className\n }\n\n return (\n

\n {children}\n

\n )\n}\n\nfunction H2({ children, noMargin, className, ...props }) {\n const classes = useStyles()\n const classNames = {\n [classes.h2]: true,\n [classes.noMargin]: noMargin,\n [className]: !!className\n }\n\n return (\n

\n {children}\n

\n )\n}\n\nfunction H3({ children, noMargin, className, ...props }) {\n const classes = useStyles()\n const classNames = {\n [classes.h3]: true,\n [classes.noMargin]: noMargin,\n [className]: !!className\n }\n\n return (\n

\n {children}\n

\n )\n}\n\nfunction H4({ children, noMargin, className, ...props }) {\n const classes = useStyles()\n const classNames = {\n [classes.h4]: true,\n [classes.noMargin]: noMargin,\n [className]: !!className\n }\n\n return (\n

\n {children}\n

\n )\n}\n\nfunction H5({ children, noMargin, className, ...props }) {\n const classes = useStyles()\n const classNames = {\n [classes.h5]: true,\n [classes.noMargin]: noMargin,\n [className]: !!className\n }\n\n return (\n
\n {children}\n
\n )\n}\n\nconst P = pBuilder('p')\nconst Info1 = pBuilder('info1')\nconst Info2 = pBuilder('info2')\nconst Info3 = pBuilder('info3')\nconst Mono = pBuilder('mono')\nconst TL1 = pBuilder('tl1')\nconst TL2 = pBuilder('tl2')\nconst Label1 = pBuilder('label1')\nconst Label2 = pBuilder('label2')\nconst Label3 = pBuilder('label3')\n\nfunction pBuilder(elementClass) {\n return ({ inline, noMargin, className, children, ...props }) => {\n const classes = useStyles()\n const classNames = {\n [className]: !!className,\n [classes[elementClass]]: elementClass,\n [classes.inline]: inline,\n [classes.noMargin]: noMargin\n }\n return (\n

\n {children}\n

\n )\n }\n}\n\nexport {\n H1,\n H2,\n H3,\n H4,\n H5,\n TL1,\n TL2,\n P,\n Info1,\n Info2,\n Info3,\n Mono,\n Label1,\n Label2,\n Label3\n}\n","import { makeStyles } from '@material-ui/core/styles'\nimport React, { memo } from 'react'\n\nimport { spacer } from 'src/styling/variables'\n\nimport { H1 } from './typography'\n\nconst useStyles = makeStyles({\n title: {\n marginTop: spacer * 3,\n marginBottom: spacer * 3\n }\n})\n\nconst Title = memo(({ children }) => {\n const classes = useStyles()\n return

{children}

\n})\n\nexport default Title\n","import {\n inputFontSize,\n inputFontSizeLg,\n inputFontSizeSm,\n inputFontWeightBold\n} from './variables'\n\nconst respondTo = breakpoint =>\n `@media only screen and (max-width: ${breakpoint})`\n\nconst bySize = size => {\n switch (size) {\n case 'sm':\n return { fontSize: inputFontSizeSm }\n case 'lg':\n return { fontSize: inputFontSizeLg, fontWeight: inputFontWeightBold }\n default:\n return { fontSize: inputFontSize }\n }\n}\n\nconst bold = {\n fontWeight: inputFontWeightBold\n}\n\nexport { respondTo, bySize, bold }\n","import { bySize, bold } from 'src/styling/helpers'\nimport { secondaryColor } from 'src/styling/variables'\n\nexport default {\n size: ({ size }) => ({\n marginTop: size === 'lg' ? 0 : 2,\n ...bySize(size)\n }),\n bold,\n root: ({ width, textAlign }) => ({\n width,\n '& input': {\n textAlign\n }\n }),\n underline: {\n '&:before': {\n borderBottomColor: secondaryColor\n },\n '&:hover:not(.Mui-disabled)::before': {\n borderBottomColor: secondaryColor\n }\n }\n}\n","import { makeStyles } from '@material-ui/core'\nimport TextField from '@material-ui/core/TextField'\nimport classnames from 'classnames'\nimport * as R from 'ramda'\nimport React, { memo } from 'react'\n\nimport styles from './TextInput.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst TextInput = memo(\n ({\n name,\n onChange,\n onBlur,\n value,\n error,\n suffix,\n textAlign,\n width,\n // lg or sm\n size,\n bold,\n className,\n InputProps,\n ...props\n }) => {\n const classes = useStyles({ textAlign, width, size })\n const filled = !error && !R.isNil(value) && !R.isEmpty(value)\n\n const inputClasses = {\n [classes.bold]: bold\n }\n\n return (\n \n )\n }\n)\n\nexport default TextInput\n","import MAutocomplete from '@material-ui/lab/Autocomplete'\nimport sort from 'match-sorter'\nimport * as R from 'ramda'\nimport React from 'react'\n\nimport TextInput from './TextInput'\n\nconst Autocomplete = ({\n optionsLimit = 5, // set limit = null for no limit\n limit,\n options,\n label,\n valueProp,\n multiple,\n onChange,\n getLabel,\n value: outsideValue,\n error,\n fullWidth,\n textAlign,\n size,\n autoFocus,\n ...props\n}) => {\n const mapFromValue = options => it => R.find(R.propEq(valueProp, it))(options)\n const mapToValue = R.prop(valueProp)\n\n const getValue = () => {\n if (!valueProp) return outsideValue\n\n const transform = multiple\n ? R.map(mapFromValue(options))\n : mapFromValue(options)\n\n return transform(outsideValue)\n }\n\n const value = getValue()\n\n const innerOnChange = (evt, value) => {\n if (!valueProp) return onChange(evt, value)\n\n const rValue = multiple ? R.map(mapToValue)(value) : mapToValue(value)\n onChange(evt, rValue)\n }\n\n const valueArray = () => {\n if (R.isNil(value)) return []\n return multiple ? value : [value]\n }\n\n const filter = (array, input) =>\n sort(array, input, { keys: ['code', 'display'] })\n\n const filterOptions = (array, { inputValue }) =>\n R.union(\n R.isEmpty(inputValue) ? valueArray() : [],\n filter(array, inputValue)\n ).slice(\n 0,\n R.defaultTo(undefined)(limit) &&\n Math.max(limit, R.isEmpty(inputValue) ? valueArray().length : 0)\n )\n\n return (\n {\n return (\n \n )\n }}\n />\n )\n}\n\nexport default Autocomplete\n","import Checkbox from '@material-ui/core/Checkbox'\nimport { makeStyles } from '@material-ui/core/styles'\nimport CheckBoxIcon from '@material-ui/icons/CheckBox'\nimport CheckBoxOutlineBlankIcon from '@material-ui/icons/CheckBoxOutlineBlank'\nimport React from 'react'\n\nimport { fontSize2, fontSize3, secondaryColor } from 'src/styling/variables'\n\nconst useStyles = makeStyles({\n root: {\n color: secondaryColor,\n '&$checked': {\n color: secondaryColor\n }\n },\n checked: {}\n})\n\nconst CheckboxInput = ({ name, onChange, value, label, ...props }) => {\n const classes = useStyles()\n\n return (\n \n }\n checkedIcon={}\n disableRipple\n {...props}\n />\n )\n}\n\nexport default CheckboxInput\n","import React, { memo } from 'react'\nimport NumberFormat from 'react-number-format'\n\nimport TextInput from './TextInput'\n\nconst NumberInput = memo(\n ({\n name,\n onChange,\n onBlur,\n value,\n error,\n suffix,\n textAlign,\n width,\n // lg or sm\n size,\n bold,\n className,\n decimalPlaces,\n InputProps,\n ...props\n }) => {\n return (\n {\n onChange({\n target: {\n id: name,\n value: values.floatValue\n }\n })\n }}\n {...props}\n />\n )\n }\n)\n\nexport default NumberInput\n","import {\n Radio,\n RadioGroup as MRadioGroup,\n FormControlLabel,\n makeStyles\n} from '@material-ui/core'\nimport classnames from 'classnames'\nimport React from 'react'\n\nimport { Label1 } from 'src/components/typography'\n\nconst styles = {\n label: {\n height: 16,\n lineHeight: '16px',\n margin: [[0, 0, 4, 0]],\n paddingLeft: 3\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst RadioGroup = ({\n name,\n label,\n value,\n options,\n onChange,\n className,\n labelClassName,\n radioClassName\n}) => {\n const classes = useStyles()\n\n return (\n <>\n {label && {label}}\n \n {options.map((option, idx) => (\n }\n label={option.display}\n className={classnames(labelClassName)}\n />\n ))}\n \n \n )\n}\n\nexport default RadioGroup\n","import React, { memo, useState } from 'react'\n\nimport { TextInput } from '../base'\n\nconst SecretInput = memo(({ value, onFocus, onBlur, ...props }) => {\n const [focused, setFocused] = useState(false)\n\n const placeholder = '⚬ ⚬ ⚬ This field is set ⚬ ⚬ ⚬'\n const previouslyFilled = !!value\n const tempValue = previouslyFilled ? '' : value\n\n const innerOnFocus = event => {\n setFocused(true)\n onFocus && onFocus(event)\n }\n\n const innerOnBlur = event => {\n setFocused(false)\n onBlur && onBlur(event)\n }\n\n return (\n \n )\n})\n\nexport default SecretInput\n","import Switch from '@material-ui/core/Switch'\nimport { makeStyles } from '@material-ui/core/styles'\nimport React, { memo } from 'react'\n\nimport {\n secondaryColor,\n offColor,\n disabledColor,\n disabledColor2\n} from '../../../styling/variables'\n\nconst useStyles = makeStyles(theme => ({\n root: {\n width: 32,\n height: 20,\n padding: 0,\n margin: theme.spacing(1)\n },\n switchBase: {\n padding: 2,\n '&$disabled': {\n color: disabledColor2,\n '& + $track': {\n backgroundColor: disabledColor,\n opacity: 1\n }\n },\n '&$checked': {\n transform: 'translateX(58%)',\n color: theme.palette.common.white,\n '&$disabled': {\n color: disabledColor2\n },\n '& + $track': {\n backgroundColor: secondaryColor,\n opacity: 1,\n border: 'none'\n }\n },\n '&$focusVisible $thumb': {\n border: '6px solid #fff'\n }\n },\n thumb: {\n width: 16,\n height: 16\n },\n track: {\n borderRadius: 17,\n border: 'none',\n backgroundColor: offColor,\n opacity: 1,\n transition: theme.transitions.create(['background-color', 'border'])\n },\n disabled: {},\n checked: {},\n focusVisible: {}\n}))\n\nconst SwitchInput = memo(({ ...props }) => {\n const classes = useStyles()\n return (\n \n )\n})\n\nexport default SwitchInput\n","import { useFormikContext } from 'formik'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport { Autocomplete } from '../base'\n\nconst AutocompleteFormik = ({ options, onChange, ...props }) => {\n const [open, setOpen] = useState(false)\n\n const { name, onBlur, value } = props.field\n const { touched, errors, setFieldValue, setFieldTouched } = props.form\n const error = !!(touched[name] && errors[name])\n const { initialValues, values } = useFormikContext()\n\n const innerOptions =\n R.type(options) === 'Function' ? options(initialValues, values) : options\n\n const innerOnBlur = event => {\n name && setFieldTouched(name, true)\n onBlur && onBlur(event)\n }\n\n const onChangeHandler = value => setFieldValue(name, value)\n\n return (\n {\n if (onChange) return onChange(value, item, onChangeHandler)\n setFieldValue(name, item)\n }}\n onBlur={innerOnBlur}\n value={value}\n error={error}\n open={open}\n options={innerOptions}\n onOpen={() => {\n if (!props.multiple) return setOpen(true)\n setOpen(value?.length !== props.limit)\n }}\n onClose={() => setOpen(false)}\n {...props}\n />\n )\n}\n\nexport default AutocompleteFormik\n","import React, { memo } from 'react'\n\nimport { NumberInput } from '../base'\n\nconst NumberInputFormik = memo(({ decimalPlaces, ...props }) => {\n const { name, onChange, onBlur, value } = props.field\n const { touched, errors } = props.form\n\n const error = !!(touched[name] && errors[name])\n\n return (\n \n )\n})\n\nexport default NumberInputFormik\n","import React, { memo } from 'react'\n\nimport { RadioGroup } from '../base'\n\nconst RadioGroupFormik = memo(({ label, ...props }) => {\n const { name, onChange, value } = props.field\n\n return (\n {\n onChange(e)\n props.resetError && props.resetError()\n }}\n className={props.className}\n {...props}\n />\n )\n})\n\nexport default RadioGroupFormik\n","import React, { memo } from 'react'\n\nimport { SecretInput } from '../base'\n\nconst SecretInputFormik = memo(({ ...props }) => {\n const { name, onChange, onBlur, value } = props.field\n const { touched, errors } = props.form\n\n const error = !!(touched[name] && errors[name])\n\n return (\n \n )\n})\n\nexport default SecretInputFormik\n","import React, { memo } from 'react'\n\nimport { TextInput } from '../base'\n\nconst TextInputFormik = memo(({ ...props }) => {\n const { name, onChange, onBlur, value } = props.field\n const { touched, errors } = props.form\n\n const error = !!(touched[name] && errors[name])\n\n return (\n \n )\n})\n\nexport default TextInputFormik\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/stage/zodiac/complete\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval\",\n stroke: \"#1B2559\",\n transform: \"translate(9.000000, 9.000000) rotate(-270.000000) translate(-9.000000, -9.000000) \",\n cx: 9,\n cy: 9,\n r: 8\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.80983711,12 C7.54819546,12 7.28655382,11.9032616 7.08725647,11.710772 L5.29971255,9.98428824 C4.90009582,9.59832189 4.90009582,8.97445811 5.29971255,8.58849175 C5.69932929,8.2025254 6.34525711,8.2025254 6.74487384,8.58849175 L7.80983711,9.61707728 L11.2551262,6.28947477 C11.6547429,5.90350841 12.3016927,5.90350841 12.7002874,6.28947477 C13.0999042,6.674454 13.0999042,7.2993049 12.7002874,7.68527125 L8.53241776,11.710772 C8.33312041,11.9032616 8.07147876,12 7.80983711,12\",\n id: \"Path\",\n fill: \"#1B2559\"\n}));\n\nfunction SvgComplete(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"18px\",\n height: \"18px\",\n viewBox: \"0 0 18 18\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgComplete);\nexport default __webpack_public_path__ + \"static/media/complete.99ba27f3.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/stage/zodiac/current\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval-2-Copy\",\n fill: \"#1B2559\",\n cx: 9,\n cy: 9,\n r: 4\n}), /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval-Copy-5\",\n stroke: \"#1B2559\",\n strokeWidth: 2,\n transform: \"translate(9.000000, 9.000000) rotate(-270.000000) translate(-9.000000, -9.000000) \",\n cx: 9,\n cy: 9,\n r: 8\n}));\n\nfunction SvgCurrent(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"18px\",\n height: \"18px\",\n viewBox: \"0 0 18 18\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCurrent);\nexport default __webpack_public_path__ + \"static/media/current.68045777.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/stage/zodiac/empty\",\n stroke: \"none\",\n strokeWidth: 2,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval-Copy-6\",\n stroke: \"#5F668A\",\n transform: \"translate(9.000000, 9.000000) rotate(-270.000000) translate(-9.000000, -9.000000) \",\n cx: 9,\n cy: 9,\n r: 8\n}));\n\nfunction SvgEmpty(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"18px\",\n height: \"18px\",\n viewBox: \"0 0 18 18\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgEmpty);\nexport default __webpack_public_path__ + \"static/media/empty.631601f2.svg\";\nexport { ForwardRef as ReactComponent };","import typographyStyles from 'src/components/typography/styles'\nimport { respondTo } from 'src/styling/helpers'\nimport {\n primaryColor,\n spacer,\n placeholderColor,\n zircon,\n xxl\n} from 'src/styling/variables'\n\nconst { tl2, p } = typographyStyles\n\nconst sidebarColor = zircon\n\nexport default {\n sidebar: {\n display: 'flex',\n backgroundColor: sidebarColor,\n width: 520,\n marginLeft: -300,\n boxShadow: `-500px 0px 0px 0px ${sidebarColor}`,\n borderRadius: '0 20px 0 0',\n alignItems: 'flex-end',\n padding: spacer * 3,\n flexDirection: 'column',\n [respondTo(xxl)]: {\n width: 'auto',\n marginLeft: 0,\n minWidth: 250,\n boxShadow: `-200px 0px 0px 0px ${sidebarColor}`\n }\n },\n\n link: {\n extend: p,\n position: 'relative',\n color: placeholderColor,\n margin: '12px 24px 12px 0',\n cursor: 'pointer',\n '&:hover::after': {\n height: '140%'\n },\n '&:after': {\n content: '\"\"',\n display: 'block',\n background: primaryColor,\n width: 4,\n height: 0,\n left: '100%',\n marginLeft: 20,\n bottom: -2,\n position: 'absolute',\n borderRadius: 1000,\n transition: 'all 0.2s cubic-bezier(0.95, 0.1, 0.45, 0.94)'\n }\n },\n activeLink: {\n extend: tl2,\n color: primaryColor,\n '&::after': {\n height: '140%'\n }\n },\n customRenderLink: {\n '&:hover::after': {\n height: '100%'\n },\n '&:after': {\n bottom: 0\n }\n },\n customRenderActiveLink: {\n '&::after': {\n height: '100%'\n }\n },\n item: {\n position: 'relative',\n margin: '12px 0 12px 0',\n display: 'flex'\n },\n itemText: {\n extend: p,\n color: placeholderColor,\n marginRight: 24\n },\n itemTextActive: {\n extend: tl2,\n color: primaryColor\n },\n itemTextPast: {\n color: primaryColor\n },\n stepperPath: {\n position: 'absolute',\n height: 25,\n width: 1,\n border: [[1, 'solid', placeholderColor]],\n right: 8,\n top: 18\n },\n stepperPast: {\n border: [[1, 'solid', primaryColor]]\n }\n}\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React from 'react'\n\nimport { ReactComponent as CompleteStageIconZodiac } from 'src/styling/icons/stage/zodiac/complete.svg'\nimport { ReactComponent as CurrentStageIconZodiac } from 'src/styling/icons/stage/zodiac/current.svg'\nimport { ReactComponent as EmptyStageIconZodiac } from 'src/styling/icons/stage/zodiac/empty.svg'\n\nimport styles from './Sidebar.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst Sidebar = ({\n data,\n displayName,\n isSelected,\n onClick,\n children,\n itemRender\n}) => {\n const classes = useStyles()\n\n return (\n
\n {data &&\n data.map((it, idx) => (\n onClick(it)}>\n {itemRender ? itemRender(it, isSelected(it)) : displayName(it)}\n
\n ))}\n {children}\n
\n )\n}\n\nexport default Sidebar\n\nconst Stepper = ({ step, it, idx, steps }) => {\n const classes = useStyles()\n const active = step === idx\n const past = idx < step\n const future = idx > step\n\n return (\n
\n \n {it.label}\n \n {active && }\n {past && }\n {future && }\n {idx < steps.length - 1 && (\n
\n )}\n \n )\n}\n\nexport { Stepper }\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"style\", {\n type: \"text/css\"\n}, \"\\n\\t.st0{fill-rule:evenodd;clip-rule:evenodd;fill:#1B2559;}\\n\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"color_x2F_primary_x2F_zodiac\",\n transform: \"translate(-0.000000, 0.000000)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Mask\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n id: \"path-1_1_\",\n className: \"st0\",\n d: \"M11.1,9l6.5,6.5c0.6,0.6,0.6,1.5,0,2.1c-0.3,0.3-0.7,0.4-1.1,0.4c-0.4,0-0.8-0.2-1.1-0.4 L9,11.1l-6.5,6.5C2.3,17.8,1.9,18,1.5,18c-0.4,0-0.8-0.2-1.1-0.4c-0.6-0.6-0.6-1.5,0-2.1L6.9,9L0.4,2.5C-0.1,2-0.1,1,0.4,0.4 C1-0.1,2-0.1,2.5,0.4L9,6.9l6.5-6.5c0.6-0.6,1.5-0.6,2.1,0c0.6,0.6,0.6,1.5,0,2.1L11.1,9z\"\n})));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 18 18\",\n style: {\n enableBackground: \"new 0 0 18 18\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3, _ref4);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.5547e32c.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Symbols\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/warning-icon/comet\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle\",\n stroke: \"#5F668A\",\n strokeWidth: 2,\n x: 1,\n y: 1,\n width: 22,\n height: 22,\n rx: 11\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.2971429,14.4857143 L11.1085714,5.82857143 L13.3714286,5.82857143 L13.2,14.4857143 L11.2971429,14.4857143 Z M11.1942857,18 L11.1942857,15.9771429 L13.3028571,15.9771429 L13.3028571,18 L11.1942857,18 Z\",\n id: \"!\",\n fill: \"#5F668A\",\n fillRule: \"nonzero\"\n})));\n\nfunction SvgComet(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"24px\",\n height: \"24px\",\n viewBox: \"0 0 24 24\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgComet);\nexport default __webpack_public_path__ + \"static/media/comet.9dc291f2.svg\";\nexport { ForwardRef as ReactComponent };","import typographyStyles from 'src/components/typography/styles'\nimport {\n placeholderColor,\n backgroundColor,\n primaryColor,\n mainWidth\n} from 'src/styling/variables'\n\nconst { tl2, p } = typographyStyles\n\nconst fill = '100%'\nconst flexDirection = 'column'\n\nconst styles = {\n dialog: {\n backgroundColor,\n width: fill,\n minHeight: fill,\n display: 'flex',\n flexDirection,\n padding: 0\n },\n wrapper: {\n width: mainWidth,\n height: fill,\n margin: '0 auto',\n flex: 1,\n display: 'flex',\n flexDirection\n },\n contentDiv: {\n display: 'flex',\n flex: 1,\n flexDirection: 'row'\n },\n headerDiv: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center'\n },\n contentWrapper: {\n marginLeft: 48\n },\n button: {\n marginTop: 64\n },\n nameTitle: {\n marginTop: 16,\n marginBottom: 25\n },\n qrTitle: {\n marginTop: 12,\n marginBottom: 40\n },\n qrCodeWrapper: {\n display: 'flex'\n },\n qrTextWrapper: {\n width: 381,\n marginLeft: 80,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center'\n },\n qrTextIcon: {\n marginRight: 16\n },\n qrText: {\n marginTop: 0\n },\n item: {\n position: 'relative',\n margin: '12px 0 12px 0',\n display: 'flex'\n },\n itemText: {\n extend: p,\n color: placeholderColor,\n marginRight: 24\n },\n itemTextActive: {\n extend: tl2,\n color: primaryColor\n },\n itemTextPast: {\n color: primaryColor\n },\n stepperPath: {\n position: 'absolute',\n height: 25,\n width: 1,\n border: [[1, 'solid', placeholderColor]],\n right: 8,\n top: 18\n },\n stepperPast: {\n border: [[1, 'solid', primaryColor]]\n }\n}\n\nexport default styles\n","import { useMutation, useQuery } from '@apollo/react-hooks'\nimport { Dialog, DialogContent, SvgIcon, IconButton } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport { Form, Formik, FastField } from 'formik'\nimport gql from 'graphql-tag'\nimport QRCode from 'qrcode.react'\nimport * as R from 'ramda'\nimport React, { memo, useState } from 'react'\nimport * as Yup from 'yup'\n\nimport Title from 'src/components/Title'\nimport { Button } from 'src/components/buttons'\nimport { TextInput } from 'src/components/inputs/formik'\nimport Sidebar from 'src/components/layout/Sidebar'\nimport { Info2, P } from 'src/components/typography'\nimport { ReactComponent as CloseIcon } from 'src/styling/icons/action/close/zodiac.svg'\nimport { ReactComponent as CompleteStageIconZodiac } from 'src/styling/icons/stage/zodiac/complete.svg'\nimport { ReactComponent as CurrentStageIconZodiac } from 'src/styling/icons/stage/zodiac/current.svg'\nimport { ReactComponent as EmptyStageIconZodiac } from 'src/styling/icons/stage/zodiac/empty.svg'\nimport { ReactComponent as WarningIcon } from 'src/styling/icons/warning-icon/comet.svg'\nimport { primaryColor } from 'src/styling/variables'\n\nimport styles from './styles'\n\nconst SAVE_CONFIG = gql`\n mutation createPairingTotem($name: String!) {\n createPairingTotem(name: $name)\n }\n`\nconst GET_MACHINES = gql`\n {\n machines {\n name\n deviceId\n }\n }\n`\n\nconst useStyles = makeStyles(styles)\n\nconst getSize = R.compose(R.length, R.pathOr([], ['machines']))\n\nconst QrCodeComponent = ({ classes, qrCode, name, count, onPaired }) => {\n const { data } = useQuery(GET_MACHINES, { pollInterval: 10000 })\n\n const addedMachine = data?.machines?.find(m => m.name === name)\n if (getSize(data) > count && addedMachine) onPaired(addedMachine)\n\n return (\n <>\n \n Scan QR code with your new cryptomat\n \n
\n
\n \n
\n
\n
\n
\n \n
\n

\n To pair the machine you need scan the QR code with your machine.\n To do this either snap a picture of this QR code or download it\n through the button above and scan it with the scanning bay on your\n machine.\n

\n
\n
\n
\n \n )\n}\n\nconst initialValues = {\n name: ''\n}\n\nconst validationSchema = Yup.object().shape({\n name: Yup.string()\n .required()\n .max(50)\n})\n\nconst MachineNameComponent = ({ nextStep, classes, setQrCode, setName }) => {\n const [register] = useMutation(SAVE_CONFIG, {\n onCompleted: ({ createPairingTotem }) => {\n if (process.env.NODE_ENV === 'development') {\n console.log(`totem: \"${createPairingTotem}\" `)\n }\n setQrCode(createPairingTotem)\n nextStep()\n },\n onError: e => console.log(e)\n })\n\n return (\n <>\n \n Machine Name (ex: Coffee shop 01)\n \n {\n setName(name)\n register({ variables: { name } })\n }}>\n
\n
\n \n
\n
\n \n
\n
\n \n \n )\n}\n\nconst steps = [\n {\n label: 'Machine name',\n component: MachineNameComponent\n },\n {\n label: 'Scan QR code',\n component: QrCodeComponent\n }\n]\n\nconst renderStepper = (step, it, idx, classes) => {\n const active = step === idx\n const past = idx < step\n const future = idx > step\n\n return (\n
\n \n {it.label}\n \n {active && }\n {past && }\n {future && }\n {idx < steps.length - 1 && (\n
\n )}\n \n )\n}\n\nconst AddMachine = memo(({ close, onPaired }) => {\n const classes = useStyles()\n const { data } = useQuery(GET_MACHINES)\n const [qrCode, setQrCode] = useState('')\n const [name, setName] = useState('')\n const [step, setStep] = useState(0)\n const count = getSize(data)\n\n const Component = steps[step].component\n\n return (\n
\n \n \n
\n
\n Add Machine\n \n \n \n \n \n
\n
\n \n {steps.map((it, idx) => renderStepper(step, it, idx, classes))}\n \n
\n setStep(1)}\n count={count}\n onPaired={onPaired}\n qrCode={qrCode}\n setQrCode={setQrCode}\n name={name}\n setName={setName}\n />\n
\n
\n
\n
\n \n
\n )\n})\n\nexport default AddMachine\n","import AddMachine from './AddMachine'\n\nexport default AddMachine\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.8413132,12.8764646 C17.8413132,12.8764646 16.6555879,12.5091919 15.661533,12.2855556 C15.661533,12.2855556 15.3477198,10.3246465 14.8939121,8.23646465 C14.8939121,8.23646465 15.1560495,8.21373737 15.3383242,8.8710101 L16.0223242,12.0219192 C16.0223242,12.0219192 17.2343571,12.2991919 18.1795549,12.6537374 L17.8413132,12.8764646 Z M15.2603407,6.10282828 L15.5328132,5.80555556 C16.0627253,5.87828283 16.3483516,6.02828283 16.3483516,6.02828283 L16.291978,6.11191919 L16.3972088,6.9310101 C16.2440604,6.93646465 16.0091703,7.05919192 16.0091703,7.05919192 L15.8315934,6.95010101 L15.8315934,6.38282828 C15.3026209,6.29919192 15.2556429,6.21828283 15.2556429,6.21828283 L15.2603407,6.10282828 Z M12.4557527,18.2873737 C11.2831813,18.4964646 9.84565385,18.2237374 9.84565385,18.2237374 L9.89732967,17.9991919 C9.89732967,17.9991919 11.6496099,18.1955556 12.6248736,17.8973737 C12.5553462,18.0628283 12.5356154,18.1137374 12.4557527,18.2873737 L12.4557527,18.2873737 Z M9.18984066,14.5464646 C8.379,15.1364646 7.56064286,15.6791919 7.00442308,16.1091919 C6.9705989,16.6955556 6.91516484,17.6464646 6.91516484,17.6464646 L5.46448352,18.5182828 L5.22207692,18.3737374 C5.27845055,17.9219192 5.34891758,17.5882828 5.34891758,17.5882828 L5.55186264,17.4410101 C5.50676374,17.7282828 5.48515385,18.1346465 5.48515385,18.1346465 L6.5928956,17.440101 C6.63705495,16.7019192 6.72443407,15.960101 6.72443407,15.960101 C6.9705989,15.7373737 8.73697253,14.5237374 10.0100803,13.6864646 C10.0100803,13.6864646 10.018533,13.9437374 9.18984066,14.5464646 L9.18984066,14.5464646 Z M14.977533,0.195555556 C15.2612802,0.167373737 15.5065055,0.184646465 15.7103901,0.228282828 L15.7103901,0.228282828 L15.8813901,0.697373737 L16.1003077,0.361919192 C16.2694286,0.447373737 16.3746593,0.547373737 16.4056648,0.624646465 C16.4056648,0.624646465 16.3615055,0.909191919 16.4319725,1.36464646 C16.5005604,1.80373737 16.6988077,2.78191919 16.6988077,2.78191919 C16.9740989,3.00646465 17.2850934,3.51282828 17.2850934,3.51282828 C17.4758242,4.41737374 17.4645495,5.04919192 17.4636099,5.1210101 C16.6734396,4.68646465 15.6173736,4.58555556 15.6173736,4.58555556 L15.6173736,4.58555556 L15.2481264,4.90828283 C15.9753462,5.00828283 16.8792033,5.26555556 17.1122143,5.44555556 C17.2484505,5.74737374 17.3386484,6.22828283 17.3386484,6.22828283 L17.3386484,6.22828283 L17.0445659,6.58919192 L17.3198571,6.8810101 C17.3386484,7.22464646 17.2183846,7.56919192 17.2183846,7.56919192 C17.7905769,7.93010101 17.9512418,8.79373737 18.3101538,10.250101 C18.6700055,11.7064646 18.9903956,12.9055556 18.9903956,12.9055556 L18.9903956,12.9055556 L18.4567253,13.2019192 C19.1623352,15.7282828 18.444511,17.7391919 17.5378352,19.0664646 C16.6320989,20.3946465 16.0862143,21.7137374 16.1031264,22.8910101 L16.1031264,22.8910101 L16.5475385,23.2346465 L16.7749121,23.9491919 L14.3048077,23.9491919 L14.293533,23.2728283 C14.2925934,21.5619192 14.9230385,20.1328283 14.9230385,20.1328283 C15.2857088,20.0473737 15.6596538,19.7628283 15.6596538,19.7628283 C15.0733681,19.8828283 14.3414505,19.7964646 14.3414505,19.7964646 C14.8676044,18.8537374 15.0292088,18.1773737 15.0292088,18.1773737 L15.0292088,18.1773737 L14.7811648,18.1228283 C14.6956648,18.310101 14.6073462,18.4937374 14.5133901,18.6710101 C13.8754286,19.8864646 13.1735769,20.6628283 12.7554725,22.4055556 L12.7554725,22.4055556 L13.1933077,22.7455556 L13.6987912,23.9491919 L10.8509835,23.9491919 C10.8340714,21.8246465 11.495522,20.2273737 11.7341703,19.7628283 C10.2233571,19.9264646 8.42128022,19.1782828 6.99314835,19.4664646 C6.60041209,21.9473737 4.59257143,22.4355556 3.65019231,22.300101 L3.65019231,22.300101 L2.97652747,23.4146465 L3.58724176,23.9491919 L1.33135714,23.9491919 C1.32008242,23.8546465 1.2918956,23.7537374 1.22988462,23.6591919 C1.22988462,23.6591919 1.97401648,22.5882828 2.48231868,21.150101 C2.89008791,21.3255556 3.75166484,20.9928283 3.78736813,20.1055556 C3.82401099,19.2191919 3.67086264,17.8419192 4.46854945,16.7891919 C5.2652967,15.7355556 6.12687363,15.1655556 7.25152747,14.3328283 C7.98250549,13.7910101 9.22084615,12.8755556 9.99974176,12.3010101 L9.99974176,12.3010101 L9.61546154,12.3864646 L6.81087363,14.6491919 L5.82997253,14.6491919 L8.66368681,12.1164646 L8.29725824,12.1091919 L5.33576374,14.6491919 L4.34170879,14.6491919 L7.27313736,11.720101 L6.9208022,11.7173737 L3.88038462,14.6491919 L2.86565934,14.6491919 L5.8093022,11.3037374 L5.46918132,11.3055556 L2.43534066,14.6491919 L1.36706044,14.6491919 L4.22614286,10.8528283 L3.89635714,10.8573737 L0.963989011,14.6491919 L0,14.6491919 C0,14.6491919 4.11809341,8.22464646 4.92893407,7.00737374 C5.73883516,5.79010101 6.6192033,4.62282828 8.06894505,4.38464646 C9.53465934,4.14282828 10.5343516,4.46646465 11.2502967,5.63373737 C11.636456,6.2610101 12.1034176,6.97828283 12.4698462,7.55919192 C12.0968407,8.1510101 11.6298791,8.6110101 11.5857198,9.32282828 C11.534044,10.1419192 12.0921429,10.6373737 12.6558791,10.6773737 C12.2321374,10.5282828 11.8976538,10.0337374 12.0489231,9.37646465 C12.2058297,8.69737374 12.7554725,8.35191919 13.1726374,7.80282828 C13.5315495,7.32828283 13.5371868,6.63282828 13.5108791,6.4010101 C13.4836319,6.16919192 13.2167967,5.98828283 13.2167967,5.98828283 C13.2167967,5.98828283 13.2252527,5.52373737 13.2167967,5.01646465 C13.2083407,4.51010101 13.4300769,4.21828283 13.4300769,4.21828283 C13.4300769,4.21828283 13.4216209,3.4610101 13.3943736,2.57646465 C13.3671264,1.72555556 13.2863242,1.46828283 13.205522,1.35464646 C13.205522,1.35464646 13.2694121,1.10919192 13.5099396,0.844646465 L13.5099396,0.844646465 L13.7542253,1.06282828 L13.8284505,0.571919192 C13.9825385,0.469191919 14.1723297,0.375555556 14.4072198,0.307373737 C14.4325879,0.30010101 14.4570165,0.294646465 14.4823846,0.288282828 L14.4823846,0.288282828 L14.7896209,0.644646465 Z M7.71628243,19.8937938 C8.32897736,19.8402566 9.02386307,19.9393405 9.75797621,20.0432188 L9.75797621,20.0432188 L9.86538462,20.058401 C9.7449004,20.8103202 9.02106112,21.7691969 7.79193531,22.0896215 L7.79193531,22.0896215 L9.01358923,23.5151515 L7.36136769,23.5151515 C7.15589073,23.2226941 6.50396838,22.32135 6.16586538,21.9681638 C6.72065317,21.6525335 7.42954868,21.0388524 7.71628243,19.8937938 Z\",\n id: \"path-1\"\n}));\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Symbols\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"nav-/-primary-/-1440\",\n transform: \"translate(-128.000000, -14.000000)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/lamassu-logo\",\n transform: \"translate(128.000000, 14.000000)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"color/amaz/default\"\n}, /*#__PURE__*/React.createElement(\"mask\", {\n id: \"mask-2\",\n fill: \"white\"\n}, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#path-1\"\n})), /*#__PURE__*/React.createElement(\"use\", {\n id: \"Mask\",\n fill: \"#16D6D3\",\n xlinkHref: \"#path-1\"\n})))));\n\nfunction SvgLogo(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"19px\",\n height: \"24px\",\n viewBox: \"0 0 19 24\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3, _ref4);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLogo);\nexport default __webpack_public_path__ + \"static/media/logo.8ee79eab.svg\";\nexport { ForwardRef as ReactComponent };","import typographyStyles from 'src/components/typography/styles'\nimport {\n version,\n mainWidth,\n spacer,\n white,\n primaryColor,\n placeholderColor,\n subheaderColor,\n fontColor\n} from 'src/styling/variables'\n\nconst { tl2, p } = typographyStyles\n\nlet headerHeight = spacer * 7\nlet subheaderHeight = spacer * 5\n\nif (version === 8) {\n headerHeight = spacer * 8\n subheaderHeight = spacer * 7\n}\n\nexport default {\n header: {\n backgroundColor: primaryColor,\n color: white,\n height: headerHeight,\n display: 'flex'\n },\n content: {\n maxWidth: mainWidth,\n flex: 1,\n display: 'flex',\n alignItems: 'center',\n margin: '0 auto'\n },\n nav: {\n flex: 1,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between'\n },\n ul: {\n display: 'flex',\n paddingLeft: spacer * 4.5,\n height: spacer * 7,\n margin: 0\n },\n li: {\n // extend: tl2,\n // height: spacer * 7,\n listStyle: 'none',\n color: white,\n margin: [[spacer * 2.5, spacer * 2.5, 0, spacer * 2.5]],\n '&:hover': {\n color: white\n },\n '&:hover::after': {\n width: '50%',\n marginLeft: '-25%'\n },\n position: 'relative',\n '&:after': {\n content: '\"\"',\n display: 'block',\n background: white,\n width: 0,\n height: 4,\n left: '50%',\n marginLeft: 0,\n bottom: -8,\n position: 'absolute',\n borderRadius: 1000,\n transition: [['all', '0.2s', 'cubic-bezier(0.95, 0.1, 0.45, 0.94)']]\n }\n },\n link: {\n extend: p,\n textDecoration: 'none',\n border: 'none',\n color: white,\n backgroundColor: 'transparent'\n // '&:hover': {\n // color: white\n // },\n // '&:hover::after': {\n // width: '50%',\n // marginLeft: '-25%'\n // },\n // position: 'relative',\n // '&:after': {\n // content: '\"\"',\n // display: 'block',\n // background: white,\n // width: 0,\n // height: 4,\n // left: '50%',\n // marginLeft: 0,\n // bottom: -8,\n // position: 'absolute',\n // borderRadius: 1000,\n // transition: [['all', '0.2s', 'cubic-bezier(0.95, 0.1, 0.45, 0.94)']]\n // }\n },\n forceSize: {\n display: 'inline-block',\n textAlign: 'center',\n '&:after': {\n display: 'block',\n content: 'attr(forcesize)',\n fontWeight: 700,\n height: 0,\n overflow: 'hidden',\n visibility: 'hidden'\n }\n },\n activeLink: {\n color: white,\n '& li::after': {\n width: '50%',\n marginLeft: '-25%'\n }\n },\n addMachine: {\n marginLeft: 'auto'\n },\n subheader: {\n backgroundColor: subheaderColor,\n color: white,\n height: subheaderHeight,\n display: 'flex'\n },\n subheaderUl: {\n display: 'flex',\n paddingLeft: 0\n },\n subheaderLi: {\n extend: tl2,\n display: 'flex',\n alignItems: 'center',\n height: spacer * 3,\n listStyle: 'none',\n padding: [[0, spacer * 2.5]],\n '&:first-child': {\n paddingLeft: 0\n }\n },\n subheaderLink: {\n extend: p,\n textDecoration: 'none',\n border: 'none',\n color: placeholderColor\n },\n activeSubheaderLink: {\n extend: tl2,\n color: fontColor\n },\n white: {\n color: white\n },\n logo: {\n display: 'flex',\n alignItems: 'center',\n '& > svg': {\n marginRight: 16\n }\n }\n}\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React, { memo, useState } from 'react'\nimport { NavLink, useHistory } from 'react-router-dom'\n\nimport { Link } from 'src/components/buttons'\nimport { H4 } from 'src/components/typography'\nimport AddMachine from 'src/pages/AddMachine'\nimport { ReactComponent as Logo } from 'src/styling/icons/menu/logo.svg'\n\nimport styles from './Header.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst Subheader = ({ item, classes }) => {\n return (\n
\n
\n \n
\n
\n )\n}\n\nconst Header = memo(({ tree }) => {\n const [open, setOpen] = useState(false)\n const [active, setActive] = useState()\n\n const history = useHistory()\n const classes = useStyles()\n\n const onPaired = machine => {\n setOpen(false)\n history.push('/maintenance/machine-status', { id: machine.deviceId })\n }\n\n return (\n
\n
\n
\n
\n \n

Lamassu Admin

\n
\n \n
\n
\n {active && active.children && (\n \n )}\n {open && setOpen(false)} onPaired={onPaired} />}\n
\n )\n})\n\nexport default Header\n","import useAxios from '@use-hooks/axios'\nimport React from 'react'\nimport { useLocation, useHistory } from 'react-router-dom'\n\nconst useQuery = () => new URLSearchParams(useLocation().search)\nconst url =\n process.env.NODE_ENV === 'development' ? 'https://localhost:8070' : ''\n\nconst AuthRegister = () => {\n const history = useHistory()\n const query = useQuery()\n\n useAxios({\n url: `${url}/api/register?otp=${query.get('otp')}`,\n method: 'GET',\n options: {\n withCredentials: true\n },\n trigger: [],\n customHandler: (err, res) => {\n if (err) return\n if (res) {\n history.push('/wizard', { fromAuthRegister: true })\n }\n }\n })\n\n return registering...\n}\n\nexport default AuthRegister\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/action/help/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20.0004,11 C20.0004,6.03028475 15.9701153,2 11.0004,2 C6.03004556,2 2.0004,6.02992391 2.0004,11 C2.0004,15.9700761 6.03004556,20 11.0004,20 C15.9701153,20 20.0004,15.9697153 20.0004,11 Z M22.0004,11 C22.0004,17.0742847 17.0746847,22 11.0004,22 C4.92544514,22 0.000400000001,17.0746147 0.000400000001,11 C0.000400000001,4.92538534 4.92544514,0 11.0004,0 C17.0746847,0 22.0004,4.92571525 22.0004,11 Z\",\n id: \"Stroke-1\",\n fill: \"#1B2559\",\n fillRule: \"nonzero\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9.9164,8.9063 C9.9164,9.45858475 9.46868475,9.9063 8.9164,9.9063 C8.36411525,9.9063 7.9164,9.45858475 7.9164,8.9063 C7.9164,6.89094438 9.72972438,5.35290249 11.7463843,5.7072003 C13.0663562,5.93764844 14.1348314,7.00654285 14.3652323,8.32479116 C14.6130182,9.7312185 13.941375,11.0876584 12.732214,11.7545735 C12.370484,11.9534687 12.1664,12.2664153 12.1664,12.5913 L12.1664,12.6563 C12.1664,13.2085847 11.7186847,13.6563 11.1664,13.6563 C10.6141153,13.6563 10.1664,13.2085847 10.1664,12.6563 L10.1664,12.5913 C10.1664,11.5009567 10.7946963,10.5375141 11.7674377,10.0026589 C12.2360927,9.74417086 12.493064,9.22519581 12.3953326,8.67046887 C12.3098185,8.1811985 11.8915858,7.76280177 11.4013649,7.67721566 C10.6126181,7.53864454 9.9164,8.1291691 9.9164,8.9063 Z\",\n id: \"Stroke-3\",\n fill: \"#1B2559\",\n fillRule: \"nonzero\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.1039,15.2188 C10.1039,14.6318 10.5799,14.1568 11.1659,14.1568 C11.7529,14.1568 12.2289,14.6318 12.2289,15.2188 C12.2289,15.8058 11.7529,16.2808 11.1659,16.2808 C10.5799,16.2808 10.1039,15.8058 10.1039,15.2188\",\n id: \"Fill-5\",\n fill: \"#1B2559\"\n}));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"22px\",\n height: \"22px\",\n viewBox: \"0 0 22 22\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.1bd00dea.svg\";\nexport { ForwardRef as ReactComponent };","import { makeStyles, ClickAwayListener } from '@material-ui/core'\nimport React, { useState, memo } from 'react'\n\nimport Popper from 'src/components/Popper'\nimport { ReactComponent as HelpIcon } from 'src/styling/icons/action/help/zodiac.svg'\n\nconst useStyles = makeStyles({\n transparentButton: {\n border: 'none',\n backgroundColor: 'transparent',\n marginTop: 4,\n outline: 'none',\n cursor: 'pointer'\n },\n popoverContent: ({ width }) => ({\n width,\n padding: [[10, 15]]\n })\n})\n\nconst Tooltip = memo(({ children, width, Icon = HelpIcon }) => {\n const classes = useStyles({ width })\n const [helpPopperAnchorEl, setHelpPopperAnchorEl] = useState(null)\n\n const handleOpenHelpPopper = event => {\n setHelpPopperAnchorEl(helpPopperAnchorEl ? null : event.currentTarget)\n }\n\n const handleCloseHelpPopper = () => {\n setHelpPopperAnchorEl(null)\n }\n\n const helpPopperOpen = Boolean(helpPopperAnchorEl)\n\n return (\n \n
\n \n \n \n \n
{children}
\n \n
\n
\n )\n})\n\nexport default Tooltip\n","import * as R from 'ramda'\n\nconst namespaces = {\n CASH_OUT: 'cashOut',\n WALLETS: 'wallets',\n OPERATOR_INFO: 'operatorInfo',\n NOTIFICATIONS: 'notifications',\n LOCALE: 'locale',\n COMMISSIONS: 'commissions',\n RECEIPT: 'receipt',\n COIN_ATM_RADAR: 'coinAtmRadar',\n TERMS_CONDITIONS: 'termsConditions'\n}\n\nconst mapKeys = R.curry((fn, obj) =>\n R.fromPairs(R.map(R.adjust(0, fn), R.toPairs(obj)))\n)\n\nconst filterByKey = R.curry((fn, obj) =>\n R.fromPairs(R.filter(it => fn(it[0]), R.toPairs(obj)))\n)\n\nconst stripl = R.curry((q, str) =>\n R.startsWith(q, str) ? str.slice(q.length) : str\n)\n\nconst filtered = key => filterByKey(R.startsWith(`${key}_`))\nconst stripped = key => mapKeys(stripl(`${key}_`))\n\nconst fromNamespace = R.curry((key, config) =>\n R.compose(stripped(key), filtered(key))(config)\n)\n\nconst toNamespace = R.curry((key, config) =>\n mapKeys(it => `${key}_${it}`)(config)\n)\n\nexport { fromNamespace, toNamespace, namespaces }\n","import { useFormikContext } from 'formik'\nimport React from 'react'\nimport { Prompt } from 'react-router-dom'\n\nconst PROMPT_DEFAULT_MESSAGE =\n 'You have unsaved changes on this page. Are you sure you want to leave?'\n\nconst PromptWhenDirty = ({ message = PROMPT_DEFAULT_MESSAGE }) => {\n const formik = useFormikContext()\n\n return (\n \n )\n}\n\nexport default PromptWhenDirty\n","import typographyStyles from 'src/components/typography/styles'\nimport { bySize, bold } from 'src/styling/helpers'\nimport {\n tableHeaderColor,\n tableHeaderHeight,\n tableErrorColor,\n spacer,\n white,\n tableDoubleHeaderHeight,\n offColor,\n errorColor\n} from 'src/styling/variables'\n\nconst { tl2, p, label1 } = typographyStyles\n\nexport default {\n size: ({ size }) => bySize(size),\n bold,\n header: {\n extend: tl2,\n backgroundColor: tableHeaderColor,\n height: tableHeaderHeight,\n textAlign: 'left',\n color: white,\n display: 'flex',\n alignItems: 'center'\n },\n doubleHeader: {\n extend: tl2,\n backgroundColor: tableHeaderColor,\n height: tableDoubleHeaderHeight,\n color: white,\n display: 'table-row'\n },\n thDoubleLevel: ({ width }) => ({\n width,\n display: 'table-cell',\n '& > :first-child': {\n margin: [[0, 10]],\n extend: label1,\n fontWeight: 700,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n backgroundColor: offColor,\n color: white,\n borderRadius: [[0, 0, 8, 8]],\n height: 28\n },\n '& > :last-child': {\n padding: [[0, 11]],\n display: 'table-cell',\n verticalAlign: 'middle',\n height: tableDoubleHeaderHeight - 28\n }\n }),\n cellDoubleLevel: {\n display: 'flex',\n padding: [[0, spacer * 2]]\n },\n td: ({ textAlign, width }) => ({\n width,\n padding: [[1, spacer * 3, 0, spacer * 3]],\n textAlign\n }),\n tdHeader: {\n verticalAlign: 'middle',\n display: 'table-cell',\n padding: [[0, spacer * 3]]\n },\n trError: {\n backgroundColor: tableErrorColor\n },\n mainContent: ({ size }) => {\n const minHeight = size === 'lg' ? 68 : 48\n return {\n display: 'flex',\n alignItems: 'center',\n minHeight\n }\n },\n // mui-overrides\n cardContentRoot: {\n margin: 0,\n padding: 0,\n '&:last-child': {\n padding: 0\n }\n },\n card: {\n extend: p,\n '&:before': {\n height: 0\n },\n margin: [[4, 0, 0, 0]],\n width: '100%',\n boxShadow: [[0, 0, 4, 0, 'rgba(0, 0, 0, 0.08)']]\n },\n actionCol: {\n marginLeft: 'auto'\n },\n errorContent: {\n padding: [[12, 0, 12, 24]],\n color: errorColor\n }\n}\n","import Card from '@material-ui/core/Card'\nimport CardContent from '@material-ui/core/CardContent'\nimport { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React from 'react'\n\nimport { Link } from 'src/components/buttons'\n\nimport styles from './Table.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst Table = ({ children, className, ...props }) => (\n
\n {children}\n
\n)\n\nconst THead = ({ children, className }) => {\n const classes = useStyles()\n return
{children}
\n}\n\nconst TDoubleLevelHead = ({ children, className }) => {\n const classes = useStyles()\n\n return (\n
\n {children}\n
\n )\n}\n\nconst TBody = ({ children, className }) => {\n return
{children}
\n}\n\nconst Td = ({\n children,\n header,\n className,\n width = 100,\n size,\n bold,\n textAlign,\n action\n}) => {\n const classes = useStyles({ textAlign, width, size })\n const classNames = {\n [classes.td]: true,\n [classes.tdHeader]: header,\n [classes.actionCol]: action,\n [classes.size]: !header,\n [classes.bold]: !header && bold\n }\n\n return
{children}
\n}\n\nconst Th = ({ children, ...props }) => {\n return (\n \n {children}\n \n )\n}\n\nconst ThDoubleLevel = ({ title, children, className, width }) => {\n const classes = useStyles({ width })\n\n return (\n
\n
{title}
\n
{children}
\n
\n )\n}\n\nconst Tr = ({ onClick, error, errorMessage, children, className, size }) => {\n const classes = useStyles({ size })\n const cardClasses = { root: classes.cardContentRoot }\n const classNames = {\n [classes.tr]: true,\n [classes.trError]: error,\n [classes.card]: true,\n className\n }\n\n return (\n <>\n \n \n
{children}
\n {error &&
{errorMessage}
}\n
\n
\n \n )\n}\n\nconst EditCell = ({ save, cancel }) => (\n \n \n Cancel\n \n \n Save\n \n \n)\n\nexport {\n Table,\n THead,\n TDoubleLevelHead,\n TBody,\n Tr,\n Td,\n Th,\n ThDoubleLevel,\n EditCell\n}\n","import React from 'react'\n\nexport default React.createContext()\n","import * as sanctuary from 'sanctuary'\n\nconst checkOnlyDev = () => {\n if (!process.env.NODE_ENV === 'production') return false\n\n return (\n process.env.NODE_ENV === 'development' &&\n process.env.REACT_APP_TYPE_CHECK_SANCTUARY === 'true'\n )\n}\n\nconst S = sanctuary.create({\n checkTypes: checkOnlyDev(),\n env: sanctuary.env\n})\n\nexport default S\n","import * as R from 'ramda'\n\nimport S from './sanctuary'\n\nconst formatLong = value => {\n if (!value || value.length <= 20) return value\n\n return `${value.slice(0, 8)}(...)${value.slice(\n value.length - 8,\n value.length\n )}`\n}\n\nconst toFirstLower = S.compose(S.joinWith(''))(R.adjust(0, S.toLower))\nconst toFirstUpper = S.compose(S.joinWith(''))(R.adjust(0, S.toUpper))\nconst onlyFirstToUpper = S.compose(toFirstUpper)(S.toLower)\n\nconst splitOnUpper = R.compose(\n S.splitOn(' '),\n R.replace(/([A-Z])/g, ' $1'),\n toFirstLower\n)\nconst startCase = R.compose(\n S.joinWith(' '),\n S.map(onlyFirstToUpper),\n splitOnUpper\n)\n\nexport { startCase, onlyFirstToUpper, formatLong }\n","import * as R from 'ramda'\nimport React, { useContext } from 'react'\n\nimport {\n Td,\n THead,\n TDoubleLevelHead,\n ThDoubleLevel\n} from 'src/components/fake-table/Table'\nimport { startCase } from 'src/utils/string'\n\nimport TableCtx from './Context'\n\nconst groupSecondHeader = elements => {\n const [toSHeader, noSHeader] = R.partition(R.has('doubleHeader'))(elements)\n\n if (!toSHeader.length) {\n return [elements, THead]\n }\n\n const index = R.indexOf(toSHeader[0], elements)\n const width = R.compose(R.sum, R.map(R.path(['width'])))(toSHeader)\n\n const innerElements = R.insert(\n index,\n { width, elements: toSHeader, name: toSHeader[0].doubleHeader },\n noSHeader\n )\n\n return [innerElements, TDoubleLevelHead]\n}\n\nconst Header = () => {\n const {\n elements,\n enableEdit,\n editWidth,\n enableDelete,\n deleteWidth,\n enableToggle,\n toggleWidth,\n DEFAULT_COL_SIZE\n } = useContext(TableCtx)\n\n const mapElement2 = (it, idx) => {\n const { width, elements, name } = it\n\n if (elements && elements.length) {\n return (\n \n {elements.map(mapElement)}\n \n )\n }\n\n return mapElement(it, idx)\n }\n\n const mapElement = (\n { name, width = DEFAULT_COL_SIZE, header, textAlign },\n idx\n ) => (\n \n {header || startCase(name)}\n \n )\n\n const [innerElements, HeaderElement] = groupSecondHeader(elements)\n\n return (\n \n {innerElements.map(mapElement2)}\n {enableEdit && (\n \n Edit\n \n )}\n {enableDelete && (\n \n Delete\n \n )}\n {enableToggle && (\n \n Enable\n \n )}\n \n )\n}\n\nexport default Header\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"path\", {\n id: \"arrow-path\",\n d: \"M5.3501239,7.53208616 L0.473798314,2.73082122 C-0.158421727,2.1051411 -0.158421727,1.0952488 0.476737158,0.466675069 C1.11220338,-0.155816755 2.1378971,-0.155816755 2.77494316,0.468226909 L6.49990857,4.13723769 L10.2264532,0.466675069 C10.8619195,-0.155816755 11.8876132,-0.155816755 12.5260183,0.469568675 C13.1582383,1.0952488 13.1582383,2.1051411 12.5245507,2.73226987 L7.64673876,7.53497972 C7.33802629,7.83583835 6.92590837,8 6.49990828,8 C6.0739082,8 5.66179027,7.83583835 5.3501239,7.53208616 Z\"\n}));\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Styleguide\",\n stroke: \"none\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/action/arrow/regular\"\n}, /*#__PURE__*/React.createElement(\"mask\", {\n id: \"mask-2\",\n fill: \"white\"\n}, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#path-1\"\n})), /*#__PURE__*/React.createElement(\"use\", {\n id: \"Mask\",\n fillRule: \"nonzero\",\n xlinkHref: \"#arrow-path\"\n})));\n\nfunction SvgRegular(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"13px\",\n height: \"8px\",\n viewBox: \"0 0 13 8\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3, _ref4);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgRegular);\nexport default __webpack_public_path__ + \"static/media/regular.3140e691.svg\";\nexport { ForwardRef as ReactComponent };","import { subheaderColor, offColor, white } from '../../../styling/variables'\nimport typographyStyles from '../../typography/styles'\n\nconst { p, label1 } = typographyStyles\n\nconst WIDTH = 152\n\nexport default {\n selectedItem: {\n width: WIDTH - 41,\n display: 'block',\n whiteSpace: 'nowrap',\n overflow: 'hidden'\n },\n select: {\n width: WIDTH,\n zIndex: 2,\n '& label': {\n extend: label1,\n color: offColor,\n paddingLeft: 10\n },\n '& button': {\n extend: p,\n position: 'relative',\n border: 0,\n backgroundColor: subheaderColor,\n width: WIDTH,\n padding: [[6, 0, 6, 12]],\n borderRadius: 20,\n lineHeight: '1.14',\n textAlign: 'left',\n color: offColor,\n cursor: 'pointer',\n outline: '0 none'\n },\n '& ul': {\n maxHeight: '200px',\n width: WIDTH,\n overflowY: 'auto',\n position: 'absolute',\n margin: 0,\n borderTop: 0,\n padding: 0,\n borderRadius: [[0, 0, 8, 8]],\n backgroundColor: subheaderColor,\n outline: '0 none',\n '& li': {\n extend: p,\n listStyleType: 'none',\n padding: [[6, 12]],\n cursor: 'pointer',\n '& span': {\n width: '100%',\n display: 'block',\n overflow: 'hidden',\n whiteSpace: 'nowrap'\n }\n },\n '& li:hover': {\n backgroundColor: offColor,\n color: white\n }\n },\n '& svg': {\n position: 'absolute',\n top: 12,\n right: 14,\n fill: offColor\n }\n },\n selectFiltered: {\n '& button': {\n backgroundColor: offColor,\n color: white\n },\n '& ul': {\n '& li': {\n backgroundColor: offColor,\n color: white\n },\n '& li:hover': {\n backgroundColor: subheaderColor,\n color: offColor\n }\n },\n '& svg': {\n fill: [[white], '!important']\n }\n },\n open: {\n '& button': {\n borderRadius: [[8, 8, 0, 0]]\n }\n }\n}\n","import { makeStyles } from '@material-ui/core'\nimport classnames from 'classnames'\nimport { useSelect } from 'downshift'\nimport React from 'react'\n\nimport { ReactComponent as Arrowdown } from 'src/styling/icons/action/arrow/regular.svg'\nimport { startCase } from 'src/utils/string'\n\nimport styles from './Select.styles'\n\nconst useStyles = makeStyles(styles)\n\nfunction Select({ label, items, ...props }) {\n const classes = useStyles()\n\n const {\n isOpen,\n selectedItem,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getItemProps\n } = useSelect({\n items,\n selectedItem: props.selectedItem,\n onSelectedItemChange: item => {\n props.onSelectedItemChange(item.selectedItem)\n }\n })\n\n const selectClassNames = {\n [classes.select]: true,\n [classes.selectFiltered]: selectedItem !== props.default,\n [classes.open]: isOpen\n }\n\n return (\n
\n \n \n
    \n {isOpen &&\n items.map((item, index) => (\n
  • \n {startCase(item)}\n
  • \n ))}\n
\n
\n )\n}\n\nexport default Select\n","import Chip from '@material-ui/core/Chip'\nimport { withStyles } from '@material-ui/core/styles'\nimport React, { memo } from 'react'\n\nimport {\n fontColor,\n inputFontWeight,\n subheaderColor,\n smallestFontSize,\n inputFontFamily\n} from 'src/styling/variables'\n\nconst styles = theme => ({\n root: {\n backgroundColor: subheaderColor,\n borderRadius: 4,\n margin: theme.spacing(0.5, 0.25),\n height: 18\n },\n label: {\n fontSize: smallestFontSize,\n color: fontColor,\n fontWeight: inputFontWeight,\n fontFamily: inputFontFamily,\n paddingRight: 4,\n paddingLeft: 4\n }\n})\n\nconst LsChip = memo(({ classes, ...props }) => (\n \n))\n\nexport default withStyles(styles)(LsChip)\n","import { spacer, tomato, primaryColor as zodiac } from 'src/styling/variables'\n\nconst colors = {\n cashOut: {\n empty: tomato,\n full: zodiac\n },\n cashIn: {\n empty: zodiac,\n full: tomato\n }\n}\n\nconst colorPicker = ({ percent, cashOut }) =>\n colors[cashOut ? 'cashOut' : 'cashIn'][percent >= 50 ? 'full' : 'empty']\n\nconst cashboxStyles = {\n cashbox: {\n borderColor: colorPicker,\n backgroundColor: colorPicker,\n height: 118,\n width: 80,\n border: '2px solid',\n textAlign: 'end',\n display: 'inline-block'\n },\n emptyPart: {\n backgroundColor: 'white',\n height: ({ percent }) => `${100 - percent}%`,\n position: 'relative',\n '& > p': {\n color: colorPicker,\n display: 'inline-block',\n position: 'absolute',\n margin: 0,\n bottom: 0,\n right: 0\n }\n },\n fullPart: {\n backgroundColor: colorPicker,\n '& > p': {\n color: 'white',\n display: 'inline'\n }\n }\n}\n\nconst gridStyles = {\n row: {\n display: 'flex',\n justifyContent: 'space-between'\n },\n innerRow: {\n display: 'flex',\n justifyContent: 'flex-start'\n },\n col2: {\n marginLeft: 16\n },\n noMarginText: {\n marginTop: 0,\n marginBottom: 0\n },\n link: {\n marginTop: spacer\n },\n chip: {\n margin: [[0, 0, 0, 7]]\n }\n}\n\nexport { cashboxStyles, gridStyles }\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React from 'react'\n\nimport Chip from 'src/components/Chip'\nimport { Link } from 'src/components/buttons'\nimport { Info2, Label1, Label2 } from 'src/components/typography'\n\nimport TextInputFormik from '../base/TextInput'\n\nimport { cashboxStyles, gridStyles } from './Cashbox.styles'\n\nconst cashboxClasses = makeStyles(cashboxStyles)\nconst gridClasses = makeStyles(gridStyles)\n\nconst Cashbox = ({ percent = 0, cashOut = false, className }) => {\n const classes = cashboxClasses({ percent, cashOut })\n const threshold = 51\n\n return (\n
\n
\n {percent <= threshold && {percent.toFixed(0)}%}\n
\n
\n {percent > threshold && {percent.toFixed(0)}%}\n
\n
\n )\n}\n\n// https://support.lamassu.is/hc/en-us/articles/360025595552-Installing-the-Sintra-Forte\n// Sintra and Sintra Forte can have up to 500 notes per cashOut box and up to 1000 per cashIn box\nconst CashIn = ({ capacity = 1000, notes = 0, total = 0 }) => {\n const percent = (100 * notes) / capacity\n const classes = gridClasses()\n return (\n <>\n
\n
\n \n
\n
\n
\n {notes} notes\n {total}\n
\n
\n
\n \n )\n}\n\nconst CashInFormik = ({\n capacity = 1000,\n onEmpty,\n field: {\n value: { notes, deviceId }\n },\n form: { setFieldValue }\n}) => {\n const classes = gridClasses()\n\n return (\n <>\n
\n
\n \n
\n
\n
\n {\n onEmpty({\n variables: {\n deviceId,\n action: 'emptyCashInBills'\n }\n }).then(() => setFieldValue('cashin.notes', 0))\n }}\n className={classes.link}\n color={'primary'}>\n Empty\n \n
\n
\n
\n \n )\n}\n\nconst CashOut = ({\n capacity = 500,\n denomination = 0,\n currency,\n notes,\n className\n}) => {\n const percent = (100 * notes) / capacity\n const classes = gridClasses()\n return (\n <>\n
\n
\n \n
\n
\n
\n {notes}\n \n
\n
\n \n {notes * denomination} {currency.code}\n \n
\n
\n
\n \n )\n}\n\nconst CashOutFormik = ({ capacity = 500, ...props }) => {\n const {\n name,\n onChange,\n onBlur,\n value: { notes }\n } = props.field\n const { touched, errors } = props.form\n\n const error = !!(touched[name] && errors[name])\n\n const percent = (100 * notes) / capacity\n const classes = gridClasses()\n\n return (\n <>\n
\n
\n \n
\n
\n
\n \n
\n
\n
\n \n )\n}\n\nexport { Cashbox, CashIn, CashInFormik, CashOut, CashOutFormik }\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"path\", {\n id: \"a\",\n d: \"M0 0h22v22H0z\"\n}));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"mask\", {\n id: \"b\",\n fill: \"#fff\"\n}, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#a\"\n})), /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#9B9B9B\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n mask: \"url(#b)\",\n d: \"M9 9v9M13 9v9\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n mask: \"url(#b)\",\n stroke: \"#9B9B9B\",\n strokeLinecap: \"round\",\n strokeWidth: 2\n}, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinejoin: \"round\",\n d: \"M3 6l2 15h12l2-15\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1 5h20M14 4a3 3 0 10-6 0\"\n})));\n\nfunction SvgDisabled(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 22,\n height: 22,\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgDisabled);\nexport default __webpack_public_path__ + \"static/media/disabled.347e2b5e.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/action/delete/enabled\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n x1: 9,\n y1: 9,\n x2: 9,\n y2: 18,\n id: \"Stroke-1\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 13,\n y1: 9,\n x2: 13,\n y2: 18,\n id: \"Stroke-2\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-3\",\n stroke: \"#1B2559\",\n strokeWidth: 2,\n strokeLinejoin: \"round\",\n points: \"3 6 5 21 17 21 19 6\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 1,\n y1: 5,\n x2: 21,\n y2: 5,\n id: \"Stroke-5\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14,4 C14,2.343 12.657,1 11,1 C9.343,1 8,2.343 8,4\",\n id: \"Stroke-7\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n}));\n\nfunction SvgEnabled(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"22px\",\n height: \"22px\",\n viewBox: \"0 0 22 22\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgEnabled);\nexport default __webpack_public_path__ + \"static/media/enabled.a058fdfc.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/action/edit/disabled\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1,18 L1,18 C1,19.657 2.343,21 4,21 L18,21 C19.657,21 21,19.657 21,18\",\n id: \"Stroke-1\",\n stroke: \"#9B9B9B\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Stroke-3\",\n stroke: \"#9B9B9B\",\n strokeWidth: 2,\n points: \"6 12 17 1 21 5 10 16 6 16\"\n}));\n\nfunction SvgDisabled(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"22px\",\n height: \"22px\",\n viewBox: \"0 0 22 22\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgDisabled);\nexport default __webpack_public_path__ + \"static/media/disabled.aede2073.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/action/edit/enabled\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1,18 L1,18 C1,19.657 2.343,21 4,21 L18,21 C19.657,21 21,19.657 21,18\",\n id: \"Stroke-1\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Stroke-3\",\n stroke: \"#1B2559\",\n strokeWidth: 2,\n points: \"6 12 17 1 21 5 10 16 6 16\"\n}));\n\nfunction SvgEnabled(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"22px\",\n height: \"22px\",\n viewBox: \"0 0 22 22\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgEnabled);\nexport default __webpack_public_path__ + \"static/media/enabled.5aae4510.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"pattern\", {\n id: \"pattern_68JiZ\",\n patternUnits: \"userSpaceOnUse\",\n width: 5.5,\n height: 5.5,\n patternTransform: \"rotate(45)\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n x1: 0,\n y: 0,\n x2: 0,\n y2: 5.5,\n stroke: \"#DBDFED\",\n strokeWidth: 3\n})));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"rect\", {\n width: \"100%\",\n height: \"100%\",\n fill: \"url(#pattern_68JiZ)\",\n opacity: 1\n});\n\nfunction SvgStripes(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"100%\",\n height: \"36px\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, \"{' '}\\n \", _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgStripes);\nexport default __webpack_public_path__ + \"static/media/stripes.876e4081.svg\";\nexport { ForwardRef as ReactComponent };","import { bySize, bold } from 'src/styling/helpers'\n\nexport default {\n saveButton: {\n marginRight: 20\n },\n lastOfGroup: {\n marginBottom: 24\n },\n extraPadding: {\n paddingLeft: 35,\n paddingRight: 30\n },\n extraPaddingRight: {\n paddingRight: 39\n },\n withSuffix: ({ textAlign }) => {\n const justifyContent = textAlign === 'right' ? 'end' : textAlign\n return {\n display: 'flex',\n alignItems: 'baseline',\n justifyContent\n }\n },\n suffix: {\n marginLeft: 7\n },\n size: ({ size }) => bySize(size),\n bold\n}\n","import { makeStyles } from '@material-ui/core'\nimport classnames from 'classnames'\nimport { Field, useFormikContext } from 'formik'\nimport * as R from 'ramda'\nimport React, { useContext } from 'react'\n\nimport { Link, IconButton } from 'src/components/buttons'\nimport { Td, Tr } from 'src/components/fake-table/Table'\nimport { Switch } from 'src/components/inputs'\nimport { TL2 } from 'src/components/typography'\nimport { ReactComponent as DisabledDeleteIcon } from 'src/styling/icons/action/delete/disabled.svg'\nimport { ReactComponent as DeleteIcon } from 'src/styling/icons/action/delete/enabled.svg'\nimport { ReactComponent as DisabledEditIcon } from 'src/styling/icons/action/edit/disabled.svg'\nimport { ReactComponent as EditIcon } from 'src/styling/icons/action/edit/enabled.svg'\nimport { ReactComponent as StripesSvg } from 'src/styling/icons/stripes.svg'\n\nimport TableCtx from './Context'\nimport styles from './Row.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst ActionCol = ({ disabled, editing }) => {\n const classes = useStyles()\n const { values, submitForm, resetForm } = useFormikContext()\n const {\n editWidth,\n onEdit,\n enableEdit,\n enableDelete,\n disableRowEdit,\n onDelete,\n deleteWidth,\n enableToggle,\n onToggle,\n toggleWidth,\n forceAdd,\n clearError,\n actionColSize\n } = useContext(TableCtx)\n\n const disableEdit = disabled || (disableRowEdit && disableRowEdit(values))\n const cancel = () => {\n clearError()\n resetForm()\n }\n\n return (\n <>\n {editing && (\n \n \n Save\n \n {!forceAdd && (\n \n Cancel\n \n )}\n \n )}\n {!editing && enableEdit && (\n \n onEdit && onEdit(values.id)}>\n {disableEdit ? : }\n \n \n )}\n {!editing && enableDelete && (\n \n onDelete(values.id)}>\n {disabled ? : }\n \n \n )}\n {!editing && enableToggle && (\n \n onToggle(values.id)}\n />\n \n )}\n \n )\n}\n\nconst ECol = ({ editing, focus, config, extraPaddingRight, extraPadding }) => {\n const {\n name,\n bypassField,\n input,\n editable = true,\n size,\n bold,\n width,\n textAlign,\n suffix,\n SuffixComponent = TL2,\n view = it => it?.toString(),\n inputProps = {}\n } = config\n\n const { values } = useFormikContext()\n const classes = useStyles({ textAlign, size })\n\n const innerProps = {\n fullWidth: true,\n autoFocus: focus,\n size,\n bold,\n textAlign,\n ...inputProps\n }\n\n // Autocomplete\n if (innerProps.options && !innerProps.getLabel) {\n innerProps.getLabel = view\n }\n\n const isEditing = editing && editable\n const isField = !bypassField\n\n return (\n \n {isEditing && isField && (\n \n )}\n {isEditing && !isField && }\n {!isEditing && values && <>{view(values[name], values)}}\n {suffix && (\n {suffix}\n )}\n \n )\n}\n\nconst groupStriped = elements => {\n const [toStripe, noStripe] = R.partition(R.has('stripe'))(elements)\n\n if (!toStripe.length) {\n return elements\n }\n\n const index = R.indexOf(toStripe[0], elements)\n const width = R.compose(R.sum, R.map(R.path(['width'])))(toStripe)\n\n return R.insert(\n index,\n { width, editable: false, view: () => },\n noStripe\n )\n}\n\nconst ERow = ({ editing, disabled, lastOfGroup }) => {\n const { touched, errors, values } = useFormikContext()\n const {\n elements,\n enableEdit,\n enableDelete,\n error,\n enableToggle,\n rowSize,\n stripeWhen\n } = useContext(TableCtx)\n\n const classes = useStyles()\n\n const shouldStripe = stripeWhen && stripeWhen(values) && !editing\n\n const innerElements = shouldStripe ? groupStriped(elements) : elements\n const [toSHeader] = R.partition(R.has('doubleHeader'))(elements)\n\n const extraPaddingIndex = toSHeader?.length\n ? R.indexOf(toSHeader[0], elements)\n : -1\n\n const extraPaddingRightIndex = toSHeader?.length\n ? R.indexOf(toSHeader[toSHeader.length - 1], elements)\n : -1\n\n const elementToFocusIndex = innerElements.findIndex(\n it => it.editable === undefined || it.editable\n )\n\n const classNames = {\n [classes.lastOfGroup]: lastOfGroup\n }\n\n const touchedErrors = R.pick(R.keys(touched), errors)\n const hasTouchedErrors = touchedErrors && R.keys(touchedErrors).length > 0\n const hasErrors = hasTouchedErrors || !!error\n\n const errorMessage =\n error || (touchedErrors && R.values(touchedErrors).join(', '))\n\n return (\n \n {innerElements.map((it, idx) => {\n return (\n \n )\n })}\n {(enableEdit || enableDelete || enableToggle) && (\n \n )}\n \n )\n}\n\nexport default ERow\n","import { offColor } from 'src/styling/variables'\n\nexport default {\n wrapper: ({ width }) => ({\n width: width\n }),\n addLink: {\n marginLeft: 'auto'\n },\n title: {\n margin: 0,\n color: offColor\n },\n outerHeader: {\n minHeight: 16,\n marginBottom: 24,\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center'\n }\n}\n","import { makeStyles } from '@material-ui/core'\nimport { Form, Formik } from 'formik'\nimport * as R from 'ramda'\nimport React, { useState, useEffect } from 'react'\nimport { v4 } from 'uuid'\n\nimport PromptWhenDirty from 'src/components/PromptWhenDirty'\nimport Link from 'src/components/buttons/Link.js'\nimport { AddButton } from 'src/components/buttons/index.js'\nimport { TBody, Table } from 'src/components/fake-table/Table'\nimport { Info2, TL1 } from 'src/components/typography'\n\nimport TableCtx from './Context'\nimport Header from './Header'\nimport ERow from './Row'\nimport styles from './Table.styles'\n\nconst ACTION_COL_SIZE = 87\nconst DEFAULT_COL_SIZE = 100\n\nconst useStyles = makeStyles(styles)\n\nconst getWidth = R.compose(\n R.reduce(R.add)(0),\n R.map(it => it.width ?? DEFAULT_COL_SIZE)\n)\n\nconst ETable = ({\n name,\n title,\n titleLg,\n elements = [],\n data = [],\n save,\n error: externalError,\n rowSize = 'md',\n validationSchema,\n enableCreate,\n enableEdit,\n editWidth: outerEditWidth,\n enableDelete,\n deleteWidth = ACTION_COL_SIZE,\n enableToggle,\n toggleWidth = ACTION_COL_SIZE,\n onToggle,\n forceDisable,\n disableAdd,\n initialValues,\n setEditing,\n shouldOverrideEdit,\n editOverride,\n stripeWhen,\n disableRowEdit,\n groupBy,\n sortBy,\n createText = 'Add override',\n forceAdd = false\n}) => {\n const [editingId, setEditingId] = useState(null)\n const [adding, setAdding] = useState(false)\n const [saving, setSaving] = useState(false)\n const [error, setError] = useState(null)\n\n useEffect(() => setError(externalError), [externalError])\n useEffect(() => {\n setError(null)\n setAdding(forceAdd)\n }, [forceAdd])\n\n const innerSave = async value => {\n if (saving) return\n\n setSaving(true)\n\n const it = validationSchema.cast(value)\n const index = R.findIndex(R.propEq('id', it.id))(data)\n const list = index !== -1 ? R.update(index, it, data) : R.prepend(it, data)\n\n if (!R.equals(data[index], it)) {\n try {\n await save({ [name]: list }, it)\n } catch (err) {\n setSaving(false)\n return\n }\n }\n\n setAdding(false)\n setEditingId(null)\n setEditing && setEditing(false)\n setSaving(false)\n }\n\n const onDelete = id => {\n const list = R.reject(it => it.id === id, data)\n return save({ [name]: list })\n }\n\n const onReset = () => {\n setAdding(false)\n setEditingId(null)\n setEditing && setEditing(false)\n }\n\n const onEdit = it => {\n if (shouldOverrideEdit && shouldOverrideEdit(it)) return editOverride(it)\n setEditingId(it)\n setError(null)\n setEditing && setEditing(it, true)\n }\n\n const addField = () => {\n setAdding(true)\n setError(null)\n setEditing && setEditing(true, true)\n }\n\n const widthIfEditNull =\n enableDelete || enableToggle ? ACTION_COL_SIZE : ACTION_COL_SIZE * 2\n\n const editWidth = R.defaultTo(widthIfEditNull)(outerEditWidth)\n\n const actionColSize =\n ((enableDelete && deleteWidth) ?? 0) +\n ((enableEdit && editWidth) ?? 0) +\n ((enableToggle && toggleWidth) ?? 0)\n\n const width = getWidth(elements) + actionColSize\n const classes = useStyles({ width })\n\n const showButtonOnEmpty = !data.length && enableCreate && !adding\n const canAdd = !forceDisable && !editingId && !disableAdd && !adding\n const showTable = adding || data.length !== 0\n\n const innerData = sortBy ? R.sortWith(sortBy)(data) : data\n\n const ctxValue = {\n elements,\n enableEdit,\n onEdit,\n clearError: () => setError(null),\n error: error,\n disableRowEdit,\n editWidth,\n enableDelete,\n onDelete,\n deleteWidth,\n enableToggle,\n rowSize,\n onToggle,\n toggleWidth,\n actionColSize,\n stripeWhen,\n forceAdd,\n DEFAULT_COL_SIZE\n }\n\n return (\n \n
\n {showButtonOnEmpty && canAdd && (\n {createText}\n )}\n {showTable && (\n <>\n {(title || enableCreate) && (\n
\n {title && titleLg && (\n {title}\n )}\n {title && !titleLg && (\n {title}\n )}\n {enableCreate && canAdd && (\n \n {createText}\n \n )}\n
\n )}\n \n
\n
\n {adding && (\n \n
\n \n \n \n \n )}\n {innerData.map((it, idx) => {\n const nextElement = innerData[idx + 1]\n\n const canGroup = !!groupBy && nextElement\n const isFunction = R.type(groupBy) === 'Function'\n const groupFunction = isFunction ? groupBy : R.prop(groupBy)\n\n const isLastOfGroup =\n canGroup && groupFunction(it) !== groupFunction(nextElement)\n\n return (\n \n
\n \n \n \n \n )\n })}\n
\n
\n \n )}\n
\n
\n )\n}\n\nexport default ETable\n","import * as R from 'ramda'\nimport React from 'react'\n\nimport { fromNamespace, toNamespace } from 'src/utils/config'\n\nimport EditableTable from './Table'\n\nconst NamespacedTable = ({\n name,\n save,\n data = {},\n namespaces = [],\n ...props\n}) => {\n const innerSave = (...[, it]) => {\n return save(toNamespace(it.id)(R.omit(['id2'], it)))\n }\n\n const innerData = R.map(it => ({\n id: it,\n ...fromNamespace(it)(data)\n }))(namespaces)\n\n return (\n \n )\n}\n\nexport default NamespacedTable\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Symbols\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/warning-icon/tomato\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle\",\n stroke: \"#FF584A\",\n strokeWidth: 2,\n x: 1,\n y: 1,\n width: 22,\n height: 22,\n rx: 11\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.2971429,14.4857143 L11.1085714,5.82857143 L13.3714286,5.82857143 L13.2,14.4857143 L11.2971429,14.4857143 Z M11.1942857,18 L11.1942857,15.9771429 L13.3028571,15.9771429 L13.3028571,18 L11.1942857,18 Z\",\n id: \"!\",\n fill: \"#FF584A\",\n fillRule: \"nonzero\"\n})));\n\nfunction SvgTomato(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"24px\",\n height: \"24px\",\n viewBox: \"0 0 24 24\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgTomato);\nexport default __webpack_public_path__ + \"static/media/tomato.4b561f6f.svg\";\nexport { ForwardRef as ReactComponent };","import { makeStyles } from '@material-ui/core'\nimport classnames from 'classnames'\nimport React from 'react'\n\nimport { ReactComponent as ErrorIcon } from 'src/styling/icons/warning-icon/tomato.svg'\nimport { errorColor } from 'src/styling/variables'\n\nimport { Info3 } from './typography'\n\nconst styles = {\n wrapper: {\n display: 'flex',\n alignItems: 'center',\n '& > svg': {\n marginRight: 10\n }\n },\n message: {\n display: 'flex',\n alignItems: 'center',\n color: errorColor,\n margin: 0,\n whiteSpace: 'break-spaces'\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst ErrorMessage = ({ className, children, ...props }) => {\n const classes = useStyles()\n\n return (\n
\n \n {children}\n
\n )\n}\n\nexport default ErrorMessage\n","import { makeStyles, Box } from '@material-ui/core'\nimport classnames from 'classnames'\nimport React from 'react'\n\nimport ErrorMessage from 'src/components/ErrorMessage'\nimport Title from 'src/components/Title'\nimport { Label1 } from 'src/components/typography'\n\nimport styles from './TitleSection.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst TitleSection = ({ className, title, error, labels, children }) => {\n const classes = useStyles()\n return (\n
\n
\n {title}\n {error && (\n Failed to save\n )}\n
\n \n {(labels ?? []).map(({ icon, label }, idx) => (\n \n
{icon}
\n {label}\n
\n ))}\n
\n {children}\n
\n )\n}\n\nexport default TitleSection\n","export default {\n titleWrapper: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n flexDirection: 'row'\n },\n titleAndButtonsContainer: {\n display: 'flex'\n },\n error: {\n marginLeft: 12\n },\n icon: {\n marginRight: 6\n },\n label: {\n marginRight: 24\n }\n}\n","import { makeStyles, Modal as MaterialModal, Paper } from '@material-ui/core'\nimport classnames from 'classnames'\nimport React from 'react'\n\nimport { IconButton } from 'src/components/buttons'\nimport { H1, H4 } from 'src/components/typography'\nimport { ReactComponent as CloseIcon } from 'src/styling/icons/action/close/zodiac.svg'\n\nconst styles = {\n modal: {\n display: 'flex',\n justifyContent: 'center',\n flexDirection: 'column',\n alignItems: 'center'\n },\n wrapper: ({ width, height }) => ({\n width,\n height,\n display: 'flex',\n flexDirection: 'column',\n minHeight: height ?? 400,\n maxHeight: '90vh',\n overflowY: 'auto',\n borderRadius: 8,\n outline: 0\n }),\n infoPanelWrapper: ({ width, infoPanelHeight }) => ({\n width,\n height: infoPanelHeight,\n marginTop: 16,\n display: 'flex',\n flexDirection: 'column',\n minHeight: infoPanelHeight ?? 200,\n maxHeight: '90vh',\n overflowY: 'auto',\n borderRadius: 8,\n outline: 0\n }),\n panelContent: {\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n flex: 1,\n padding: [[0, 24]]\n },\n content: ({ small, xl }) => ({\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n flex: 1,\n padding: xl ? [[0, 60 + 28]] : small ? [[0, 16]] : [[0, 32]]\n }),\n button: ({ small, xl }) => ({\n padding: [[0, 0, xl ? 26 : 0, 0]],\n margin: xl\n ? [[0, 0, 'auto', 'auto']]\n : small\n ? [[12, 12, 'auto', 'auto']]\n : [[16, 16, 'auto', 'auto']]\n }),\n header: {\n display: 'flex'\n },\n title: ({ small }) => ({\n margin: small ? [[20, 0, 8, 16]] : [[28, 0, 8, 32]]\n })\n}\n\nconst useStyles = makeStyles(styles)\n\nconst Modal = ({\n width,\n height,\n infoPanelHeight,\n title,\n small,\n xl,\n infoPanel,\n handleClose,\n children,\n secondaryModal,\n className,\n closeOnEscape,\n closeOnBackdropClick,\n ...props\n}) => {\n const classes = useStyles({ width, height, small, infoPanelHeight, xl })\n const TitleCase = small ? H4 : H1\n const closeSize = xl ? 28 : small ? 16 : 20\n\n const innerClose = (evt, reason) => {\n if (!closeOnBackdropClick && reason === 'backdropClick') return\n if (!closeOnEscape && reason === 'escapeKeyDown') return\n handleClose()\n }\n\n return (\n \n <>\n \n
\n {title && {title}}\n handleClose()}>\n \n \n
\n
{children}
\n
\n {infoPanel && (\n \n
{infoPanel}
\n
\n )}\n \n
\n )\n}\n\nexport default Modal\n","const denomiations = {\n AUD: {\n 5: 130,\n 10: 137,\n 20: 144,\n 50: 151,\n 100: 158\n },\n BBD: {\n 2: 150,\n 5: 150,\n 10: 150,\n 20: 150,\n 50: 150,\n 100: 150\n },\n CAD: {\n 5: 152,\n 10: 152,\n 20: 152,\n 50: 152,\n 100: 152\n },\n CHF: {\n 10: 126,\n 20: 137,\n 50: 148,\n 100: 159,\n 200: 170,\n 1000: 181\n },\n DKK: {\n 50: 125,\n 100: 135,\n 200: 145,\n 500: 155,\n 1000: 165\n },\n EUR: {\n 5: 120,\n 10: 127,\n 20: 133,\n 50: 140,\n 100: 147,\n 200: 153,\n 500: 160\n },\n GBP: {\n 5: 135,\n 10: 142,\n 20: 149,\n 50: 156\n },\n HKD: {\n 10: 134,\n 20: 143,\n 50: 148,\n 100: 153,\n 500: 158,\n 1000: 163\n },\n HUF: {\n 200: 154,\n 500: 154,\n 1000: 154,\n 2000: 154,\n 5000: 154,\n 10000: 154,\n 20000: 154\n },\n ILS: {\n 20: 129,\n 50: 136,\n 100: 143,\n 200: 150\n },\n JMD: {\n 50: 145,\n 100: 145,\n 500: 145,\n 1000: 145,\n 5000: 145\n },\n JPY: {\n 1000: 150,\n 2000: 154,\n 5000: 156,\n 10000: 160\n },\n KZT: {\n 200: 126,\n 500: 130,\n 1000: 134,\n 2000: 139,\n 5000: 144,\n 10000: 155,\n 20000: 155\n },\n MXN: {\n 20: 120,\n 50: 127,\n 100: 134,\n 200: 141,\n 500: 148,\n 1000: 155\n },\n MYR: {\n 1: 120,\n 5: 135,\n 10: 140,\n 20: 145,\n 50: 145,\n 100: 150\n },\n NZD: {\n 5: 135,\n 10: 140,\n 20: 145,\n 50: 150,\n 100: 155\n },\n PHP: {\n 20: 160,\n 50: 160,\n 100: 160,\n 200: 160,\n 500: 160,\n 1000: 160\n },\n PLN: {\n 10: 120,\n 20: 126,\n 50: 132,\n 100: 138,\n 200: 144,\n 500: 150\n },\n SGD: {\n 2: 126,\n 5: 133,\n 10: 141,\n 50: 156,\n 100: 162,\n 1000: 170\n },\n TWD: {\n 100: 145,\n 200: 150,\n 500: 155,\n 1000: 160,\n 2000: 165\n },\n UAH: {\n 1: 118,\n 2: 118,\n 5: 118,\n 10: 124,\n 20: 130,\n 50: 136,\n 100: 142,\n 200: 148,\n 500: 154\n },\n USD: {\n 1: 156,\n 5: 156,\n 10: 156,\n 20: 156,\n 50: 156,\n 100: 156\n },\n VND: {\n 10000: 132,\n 20000: 136,\n 50000: 140,\n 100000: 144,\n 200000: 148,\n 500000: 152\n },\n ZAR: {\n 10: 128,\n 20: 134,\n 50: 140,\n 100: 146,\n 200: 152\n }\n}\n\nexport default denomiations\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Styleguide\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/direction/cash-out\",\n transform: \"translate(-1.000000, 0.000000)\",\n fill: \"#5A67FF\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.99134364,0.321790399 L10.1430099,4.40569595 C11.0271728,4.99266501 11.2660914,6.1822461 10.6766494,7.06269968 C10.5357408,7.27317585 10.3543728,7.45378298 10.1430099,7.59410043 L3.99134364,11.678006 C3.10718075,12.264975 1.91258801,12.0270588 1.32314609,11.1466052 C1.11243854,10.8318699 1,10.4620686 1,10.0838037 L1,1.91599264 C1,0.857819122 1.86143307,0 2.92406462,0 C3.30392305,0 3.67528233,0.11196683 3.99134364,0.321790399 Z\",\n id: \"Path-3\",\n transform: \"translate(6.000000, 6.000000) scale(-1, 1) translate(-6.000000, -6.000000) \"\n})));\n\nfunction SvgCashOut(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"10px\",\n height: \"12px\",\n viewBox: \"0 0 10 12\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCashOut);\nexport default __webpack_public_path__ + \"static/media/cash-out.f029ae96.svg\";\nexport { ForwardRef as ReactComponent };","import { makeStyles } from '@material-ui/core'\nimport React from 'react'\n\nimport { Button } from 'src/components/buttons'\nimport { H1, P, Info2 } from 'src/components/typography'\nimport { ReactComponent as TxOutIcon } from 'src/styling/icons/direction/cash-out.svg'\nimport { neon, spacer } from 'src/styling/variables'\n\nconst styles = {\n logo: {\n maxHeight: 80,\n maxWidth: 200\n },\n subtitle: {\n margin: 0,\n marginBottom: 42,\n textAlign: 'center'\n },\n text: {\n margin: 0\n },\n button: {\n margin: [[0, 'auto']]\n },\n modalContent: {\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n flex: 1,\n padding: [[0, 34, 107, 34]]\n },\n innerContent: {\n paddingBottom: 72\n },\n title: {\n color: neon,\n marginBottom: 12,\n marginTop: 30,\n textAlign: 'center'\n },\n titleDecorator: {\n verticalAlign: 'bottom',\n marginRight: spacer * 1.5,\n width: spacer * 3,\n height: spacer * 3.25\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst WizardSplash = ({ name, onContinue }) => {\n const classes = useStyles()\n\n return (\n
\n
\n

\n \n Enable cash-out\n

\n {name}\n

\n You are about to activate cash-out functionality on your {name}{' '}\n machine which will allow your customers to sell crypto to you.\n

\n

\n In order to activate cash-out for this machine, please enter the\n denominations for the machine.\n

\n
\n \n
\n )\n}\n\nexport default WizardSplash\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/stage/spring/complete\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval\",\n stroke: \"#48F694\",\n strokeWidth: 2,\n transform: \"translate(9.000000, 9.000000) rotate(-270.000000) translate(-9.000000, -9.000000) \",\n cx: 9,\n cy: 9,\n r: 8\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.80983711,12 C7.54819546,12 7.28655382,11.9032616 7.08725647,11.710772 L5.29971255,9.98428824 C4.90009582,9.59832189 4.90009582,8.97445811 5.29971255,8.58849175 C5.69932929,8.2025254 6.34525711,8.2025254 6.74487384,8.58849175 L7.80983711,9.61707728 L11.2551262,6.28947477 C11.6547429,5.90350841 12.3016927,5.90350841 12.7002874,6.28947477 C13.0999042,6.674454 13.0999042,7.2993049 12.7002874,7.68527125 L8.53241776,11.710772 C8.33312041,11.9032616 8.07147876,12 7.80983711,12\",\n id: \"Path\",\n fill: \"#48F694\"\n}));\n\nfunction SvgComplete(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"18px\",\n height: \"18px\",\n viewBox: \"0 0 18 18\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgComplete);\nexport default __webpack_public_path__ + \"static/media/complete.d94d5045.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/stage/spring/current\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval-2-Copy\",\n fill: \"#48F694\",\n cx: 9,\n cy: 9,\n r: 4\n}), /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval-Copy-5\",\n stroke: \"#48F694\",\n strokeWidth: 2,\n transform: \"translate(9.000000, 9.000000) rotate(-270.000000) translate(-9.000000, -9.000000) \",\n cx: 9,\n cy: 9,\n r: 8\n}));\n\nfunction SvgCurrent(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"18px\",\n height: \"18px\",\n viewBox: \"0 0 18 18\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCurrent);\nexport default __webpack_public_path__ + \"static/media/current.9bbfa93f.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/stage/spring/empty\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval-Copy-6\",\n stroke: \"#DDDDDD\",\n strokeWidth: 2,\n transform: \"translate(9.000000, 9.000000) rotate(-270.000000) translate(-9.000000, -9.000000) \",\n cx: 9,\n cy: 9,\n r: 8\n}));\n\nfunction SvgEmpty(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"18px\",\n height: \"18px\",\n viewBox: \"0 0 18 18\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgEmpty);\nexport default __webpack_public_path__ + \"static/media/empty.862ae4bb.svg\";\nexport { ForwardRef as ReactComponent };","import { makeStyles } from '@material-ui/core'\nimport classnames from 'classnames'\nimport * as R from 'ramda'\nimport React, { memo } from 'react'\n\nimport { ReactComponent as CompleteStageIconSpring } from 'src/styling/icons/stage/spring/complete.svg'\nimport { ReactComponent as CurrentStageIconSpring } from 'src/styling/icons/stage/spring/current.svg'\nimport { ReactComponent as EmptyStageIconSpring } from 'src/styling/icons/stage/spring/empty.svg'\nimport { ReactComponent as CompleteStageIconZodiac } from 'src/styling/icons/stage/zodiac/complete.svg'\nimport { ReactComponent as CurrentStageIconZodiac } from 'src/styling/icons/stage/zodiac/current.svg'\nimport { ReactComponent as EmptyStageIconZodiac } from 'src/styling/icons/stage/zodiac/empty.svg'\nimport {\n primaryColor,\n secondaryColor,\n offColor,\n disabledColor\n} from 'src/styling/variables'\n\nconst styles = {\n stages: {\n display: 'flex',\n alignItems: 'center'\n },\n wrapper: {\n display: 'flex',\n alignItems: 'center',\n margin: 0\n },\n stage: {\n display: 'flex',\n height: 28,\n width: 28,\n zIndex: 2,\n '& > svg': {\n height: '100%',\n width: '100%',\n overflow: 'visible'\n }\n },\n separator: {\n width: 28,\n height: 2,\n border: [[2, 'solid']],\n zIndex: 1\n },\n separatorSpring: {\n borderColor: secondaryColor\n },\n separatorZodiac: {\n borderColor: primaryColor\n },\n separatorSpringEmpty: {\n borderColor: disabledColor\n },\n separatorZodiacEmpty: {\n borderColor: offColor\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst Stepper = memo(({ steps, currentStep, color = 'spring', className }) => {\n if (currentStep < 1 || currentStep > steps)\n throw Error('Value of currentStage is invalid')\n if (steps < 1) throw Error('Value of stages is invalid')\n\n const classes = useStyles()\n\n const separatorClasses = {\n [classes.separator]: true,\n [classes.separatorSpring]: color === 'spring',\n [classes.separatorZodiac]: color === 'zodiac'\n }\n\n const separatorEmptyClasses = {\n [classes.separator]: true,\n [classes.separatorSpringEmpty]: color === 'spring',\n [classes.separatorZodiacEmpty]: color === 'zodiac'\n }\n\n return (\n
\n {R.range(1, currentStep).map(idx => (\n
\n {idx > 1 &&
}\n
\n {color === 'spring' && }\n {color === 'zodiac' && }\n
\n
\n ))}\n
\n {currentStep > 1 &&
}\n
\n {color === 'spring' && }\n {color === 'zodiac' && }\n
\n
\n {R.range(currentStep + 1, steps + 1).map(idx => (\n
\n
\n
\n {color === 'spring' && }\n {color === 'zodiac' && }\n
\n
\n ))}\n
\n )\n})\n\nexport default Stepper\n","export default __webpack_public_path__ + \"static/media/cashout-cassette-1.fac6c691.svg\";","export default __webpack_public_path__ + \"static/media/cashout-cassette-2.34a98cfa.svg\";","import { errorColor, spacer } from 'src/styling/variables'\n\nconst LABEL_WIDTH = 150\n\nexport default {\n title: {\n margin: [[0, 0, 12, 0]]\n },\n titleDiv: {\n paddingBottom: 32\n },\n subtitle: {\n margin: [[32, 0, 21, 0]]\n },\n edit: {\n margin: [[0, 0, 0, 0]]\n },\n error: {\n color: errorColor\n },\n bill: {\n width: 131,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'end'\n },\n billInput: {\n width: '100%'\n },\n suffix: {\n paddingLeft: spacer * 2\n },\n button: {\n marginLeft: 'auto'\n },\n submit: {\n float: 'right'\n },\n picker: {\n width: LABEL_WIDTH\n },\n header: {\n display: 'flex',\n paddingBottom: 95\n },\n thirdStepHeader: {\n display: 'flex',\n paddingBottom: 188\n },\n step: {\n flex: 1\n },\n stepImage: {\n position: 'relative',\n top: -20,\n right: 14\n },\n content: {\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n flex: 1,\n paddingBottom: 32\n },\n disclaimer: {\n display: 'flex',\n flex: 1,\n flexDirection: 'column',\n justifyContent: 'space-between'\n },\n disclaimerIcon: {\n float: 'left',\n margin: [[-4, 16, 48, 0]]\n }\n}\n","import { makeStyles } from '@material-ui/core'\nimport { Formik, Form, Field } from 'formik'\nimport * as R from 'ramda'\nimport React from 'react'\n\nimport ErrorMessage from 'src/components/ErrorMessage'\nimport Stepper from 'src/components/Stepper'\nimport { Button } from 'src/components/buttons'\nimport { NumberInput } from 'src/components/inputs/formik'\nimport { Info2, H4, P, Info1, Label1 } from 'src/components/typography'\nimport cassetteOne from 'src/styling/icons/cassettes/cashout-cassette-1.svg'\nimport cassetteTwo from 'src/styling/icons/cassettes/cashout-cassette-2.svg'\nimport { ReactComponent as WarningIcon } from 'src/styling/icons/warning-icon/comet.svg'\n\nimport styles from './WizardStep.styles'\nconst useStyles = makeStyles(styles)\n\nconst WizardStep = ({\n name,\n step,\n schema,\n error,\n lastStep,\n onContinue,\n steps,\n fiatCurrency,\n options\n}) => {\n const classes = useStyles()\n\n const label = lastStep ? 'Finish' : 'Next'\n\n const cassetesArtworks = {\n 1: cassetteOne,\n 2: cassetteTwo\n }\n\n return (\n
\n
\n {name}\n \n
\n\n {step <= 2 && (\n \n
\n
\n {steps.map(\n ({ type, display, component }, idx) =>\n 1 + idx === step && (\n
\n

Edit {display}

\n\n Choose bill denomination\n
\n 0 ? component : NumberInput\n }\n fullWidth\n decimalPlaces={0}\n name={type}\n options={options}\n valueProp={'code'}\n getLabel={R.path(['display'])}>\n \n {fiatCurrency}\n \n
\n
\n )\n )}\n \n
\n\n \n
\n \n )}\n\n {step === 3 && (\n \n
\n
\n
\n

Edit 0-conf Limit

\n\n Choose a limit\n
\n \n \n {fiatCurrency}\n \n
\n
\n
\n\n \n
\n \n )}\n\n {lastStep && (\n
\n Cash-out Bill Count\n

\n \n When enabling cash-out, your bill count will be automatically set to\n zero. Make sure you physically put cash inside the cash cassettes to\n allow the machine to dispense it to your users. If you already did,\n make sure you set the correct cash-out bill count for this machine\n on your Cash Cassettes tab under Maintenance.\n

\n\n Default Commissions\n

\n \n When enabling cash-out, default commissions will be set. To change\n commissions for this machine, please go to the Commissions tab under\n Settings where you can set exceptions for each of the available\n cryptocurrencies.\n

\n
\n {error && Failed to save}\n \n
\n
\n )}\n
\n )\n}\n\nexport default WizardStep\n","import * as Yup from 'yup'\n\nimport { NumberInput } from 'src/components/inputs/formik'\n\nconst currencyMax = 999999999\nconst DenominationsSchema = Yup.object().shape({\n top: Yup.number()\n .label('Cassette 1 (Top)')\n .required()\n .min(0)\n .max(currencyMax),\n bottom: Yup.number()\n .label('Cassette 2 (Bottom)')\n .required()\n .min(0)\n .max(currencyMax),\n zeroConfLimit: Yup.number()\n .label('0-conf Limit')\n .required()\n .min(0)\n .max(currencyMax)\n})\n\nconst getElements = (machines, { fiatCurrency } = {}) => {\n return [\n {\n name: 'id',\n header: 'Machine',\n width: 200,\n view: it => machines.find(({ deviceId }) => deviceId === it).name,\n size: 'sm',\n editable: false\n },\n {\n name: 'top',\n header: 'Cassette 1 (Top)',\n size: 'sm',\n stripe: true,\n width: 200,\n textAlign: 'right',\n input: NumberInput,\n inputProps: {\n decimalPlaces: 0\n },\n suffix: fiatCurrency\n },\n {\n name: 'bottom',\n header: 'Cassette 2 (Bottom)',\n size: 'sm',\n stripe: true,\n textAlign: 'right',\n width: 200,\n input: NumberInput,\n inputProps: {\n decimalPlaces: 0\n },\n suffix: fiatCurrency\n },\n {\n name: 'zeroConfLimit',\n header: '0-conf Limit',\n size: 'sm',\n stripe: true,\n textAlign: 'right',\n width: 200,\n input: NumberInput,\n inputProps: {\n decimalPlaces: 0\n },\n suffix: fiatCurrency\n }\n ]\n}\n\nexport { DenominationsSchema, getElements }\n","import * as R from 'ramda'\nimport React, { useState } from 'react'\nimport * as Yup from 'yup'\n\nimport Modal from 'src/components/Modal'\nimport { Autocomplete } from 'src/components/inputs/formik'\nimport denominations from 'src/utils/bill-denominations'\nimport { toNamespace } from 'src/utils/config'\n\nimport WizardSplash from './WizardSplash'\nimport WizardStep from './WizardStep'\nimport { DenominationsSchema } from './helper'\n\nconst LAST_STEP = 4\nconst MODAL_WIDTH = 554\nconst MODAL_HEIGHT = 520\n\nconst getOptions = R.curry((locale, denomiations) => {\n const currency = R.prop('fiatCurrency')(locale)\n return R.compose(\n R.map(code => ({ code, display: code })),\n R.keys,\n R.path([currency])\n )(denomiations)\n})\n\nconst Wizard = ({ machine, locale, onClose, save, error }) => {\n const [{ step, config }, setState] = useState({\n step: 0,\n config: { active: true }\n })\n\n const options = getOptions(locale, denominations)\n\n const title = `Enable cash-out`\n const isLastStep = step === LAST_STEP\n\n const onContinue = async it => {\n if (isLastStep) {\n return save(\n toNamespace(machine.deviceId, DenominationsSchema.cast(config))\n )\n }\n\n const newConfig = R.merge(config, it)\n\n setState({\n step: step + 1,\n config: newConfig\n })\n }\n\n const steps = [\n {\n type: 'top',\n display: 'Cassette 1 (Top)',\n component: Autocomplete\n },\n {\n type: 'bottom',\n display: 'Cassette 2',\n component: Autocomplete\n },\n {\n type: 'zeroConfLimit',\n display: '0-conf Limit',\n schema: Yup.object().shape({\n zeroConfLimit: Yup.number().required()\n })\n }\n ]\n\n const schema = () =>\n Yup.object().shape({\n top: Yup.number().required(),\n bottom: step >= 2 ? Yup.number().required() : Yup.number()\n })\n\n return (\n \n {step === 0 && (\n onContinue()} />\n )}\n {step !== 0 && (\n \n )}\n \n )\n}\n\nexport default Wizard\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core/styles'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport Tooltip from 'src/components/Tooltip'\nimport { NamespacedTable as EditableTable } from 'src/components/editableTable'\nimport { Switch } from 'src/components/inputs'\nimport TitleSection from 'src/components/layout/TitleSection'\nimport { P, Label2 } from 'src/components/typography'\nimport { fromNamespace, toNamespace } from 'src/utils/config'\n\nimport Wizard from './Wizard'\nimport { DenominationsSchema, getElements } from './helper'\n\nconst useStyles = makeStyles({\n fudgeFactor: {\n display: 'flex',\n alignItems: 'center',\n marginRight: 156\n },\n switchLabel: {\n margin: 6,\n width: 24\n }\n})\n\nconst SAVE_CONFIG = gql`\n mutation Save($config: JSONObject) {\n saveConfig(config: $config)\n }\n`\n\nconst GET_INFO = gql`\n query getData {\n machines {\n name\n deviceId\n cashbox\n cassette1\n cassette2\n }\n config\n }\n`\n\nconst CashOut = ({ name: SCREEN_KEY }) => {\n const classes = useStyles()\n const [wizard, setWizard] = useState(false)\n const { data } = useQuery(GET_INFO)\n\n const [saveConfig, { error }] = useMutation(SAVE_CONFIG, {\n onCompleted: () => setWizard(false),\n refetchQueries: () => ['getData']\n })\n\n const save = (rawConfig, accounts) => {\n const config = toNamespace(SCREEN_KEY)(rawConfig)\n return saveConfig({ variables: { config, accounts } })\n }\n\n const config = data?.config && fromNamespace(SCREEN_KEY)(data.config)\n const fudgeFactorActive = config?.fudgeFactorActive ?? false\n const locale = data?.config && fromNamespace('locale')(data.config)\n const machines = data?.machines ?? []\n\n const onToggle = id => {\n const namespaced = fromNamespace(id)(config)\n if (!DenominationsSchema.isValidSync(namespaced)) return setWizard(id)\n save(toNamespace(id, { active: !namespaced?.active }))\n }\n\n return (\n <>\n \n
\n

Transaction fudge factor

\n {\n save({ fudgeFactorActive: event.target.checked })\n }}\n value={fudgeFactorActive}\n />\n \n {fudgeFactorActive ? 'On' : 'Off'}\n \n \n

\n Automatically accept customer deposits as complete if their\n received amount is 10 crypto atoms or less.\n

\n

\n (Crypto atoms are the smallest unit in each cryptocurrency. E.g.,\n satoshis in Bitcoin, or wei in Ethereum.)\n

\n
\n
\n
\n !DenominationsSchema.isValidSync(it)}\n enableEdit\n editWidth={134}\n enableToggle\n toggleWidth={109}\n onToggle={onToggle}\n save={save}\n error={error?.message}\n validationSchema={DenominationsSchema}\n disableRowEdit={R.compose(R.not, R.path(['active']))}\n elements={getElements(machines, locale)}\n />\n {wizard && (\n setWizard(false)}\n save={save}\n error={error?.message}\n locale={locale}\n />\n )}\n \n )\n}\n\nexport default CashOut\n","import Cashout from './Cashout'\n\nexport default Cashout\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React, { memo } from 'react'\n\nimport { spacer, offColor } from 'src/styling/variables'\n\nimport { TL1 } from './typography'\n\nconst useStyles = makeStyles({\n subtitle: {\n color: offColor,\n marginTop: spacer * 2,\n marginBottom: spacer * 2\n },\n extraMarginTop: {\n marginTop: spacer * 9\n }\n})\n\nconst Subtitle = memo(({ children, className, extraMarginTop }) => {\n const classes = useStyles()\n const classNames = {\n [classes.subtitle]: true,\n [classes.extraMarginTop]: extraMarginTop\n }\n\n return {children}\n})\n\nexport default Subtitle\n","import { makeStyles } from '@material-ui/core'\nimport React from 'react'\n\nimport ErrorMessage from 'src/components/ErrorMessage'\nimport Subtitle from 'src/components/Subtitle'\n\nimport styles from './Section.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst Section = ({ error, children, title }) => {\n const classes = useStyles()\n return (\n
\n {(title || error) && (\n
\n {title}\n {error && Failed to save changes}\n
\n )}\n {children}\n
\n )\n}\n\nexport default Section\n","export default {\n section: {\n marginBottom: 72\n },\n sectionHeader: {\n display: 'flex',\n alignItems: 'center'\n },\n sectionTitle: {\n margin: [[16, 20, 23, 0]]\n }\n}\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Styleguide\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/direction/cash-in\",\n transform: \"translate(-1.000000, 0.000000)\",\n fill: \"#16D6D3\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.99134364,0.321790399 L10.1430099,4.40569595 C11.0271728,4.99266501 11.2660914,6.1822461 10.6766494,7.06269968 C10.5357408,7.27317585 10.3543728,7.45378298 10.1430099,7.59410043 L3.99134364,11.678006 C3.10718075,12.264975 1.91258801,12.0270588 1.32314609,11.1466052 C1.11243854,10.8318699 1,10.4620686 1,10.0838037 L1,1.91599264 C1,0.857819122 1.86143307,0 2.92406462,0 C3.30392305,0 3.67528233,0.11196683 3.99134364,0.321790399 Z\",\n id: \"Path-3\"\n})));\n\nfunction SvgCashIn(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"10px\",\n height: \"12px\",\n viewBox: \"0 0 10 12\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCashIn);\nexport default __webpack_public_path__ + \"static/media/cash-in.c06970a7.svg\";\nexport { ForwardRef as ReactComponent };","import * as R from 'ramda'\nimport React from 'react'\nimport * as Yup from 'yup'\n\nimport { NumberInput } from 'src/components/inputs/formik'\nimport Autocomplete from 'src/components/inputs/formik/Autocomplete.js'\nimport { ReactComponent as TxInIcon } from 'src/styling/icons/direction/cash-in.svg'\nimport { ReactComponent as TxOutIcon } from 'src/styling/icons/direction/cash-out.svg'\n\nconst ALL_MACHINES = {\n name: 'All Machines',\n deviceId: 'ALL_MACHINES'\n}\n\nconst ALL_COINS = {\n display: 'All Coins',\n code: 'ALL_COINS'\n}\n\nconst cashInAndOutHeaderStyle = { marginLeft: 6 }\n\nconst cashInHeader = (\n
\n \n Cash-in\n
\n)\n\nconst cashOutHeader = (\n
\n \n Cash-out\n
\n)\n\nconst getView = (data, code, compare) => it => {\n if (!data) return ''\n\n return R.compose(R.prop(code), R.find(R.propEq(compare ?? 'code', it)))(data)\n}\n\nconst displayCodeArray = data => it => {\n if (!it) return it\n\n return R.compose(R.join(', '), R.map(getView(data, 'display')))(it)\n}\n\nconst onCryptoChange = (prev, curr, setValue) => {\n const hasAllCoins = R.includes(ALL_COINS.code)(curr)\n const hadAllCoins = R.includes(ALL_COINS.code)(prev)\n\n if (hasAllCoins && hadAllCoins && R.length(curr) > 1) {\n return setValue(R.reject(R.equals(ALL_COINS.code))(curr))\n }\n\n if (hasAllCoins && !hadAllCoins) {\n return setValue([ALL_COINS.code])\n }\n\n setValue(curr)\n}\n\nconst getOverridesFields = (getData, currency, auxElements) => {\n const machineData = [ALL_MACHINES].concat(getData(['machines']))\n const rawCryptos = getData(['cryptoCurrencies'])\n const cryptoData = [ALL_COINS].concat(\n R.map(it => ({ display: it.code, code: it.code }))(rawCryptos ?? [])\n )\n\n return [\n {\n name: 'machine',\n width: 196,\n size: 'sm',\n view: getView(machineData, 'name', 'deviceId'),\n input: Autocomplete,\n inputProps: {\n options: machineData,\n valueProp: 'deviceId',\n getLabel: R.path(['name'])\n }\n },\n {\n name: 'cryptoCurrencies',\n width: 280,\n size: 'sm',\n view: displayCodeArray(cryptoData),\n input: Autocomplete,\n inputProps: {\n options: cryptoData,\n valueProp: 'code',\n getLabel: R.path(['display']),\n multiple: true,\n onChange: onCryptoChange\n }\n },\n {\n header: cashInHeader,\n name: 'cashIn',\n display: 'Cash-in',\n width: 130,\n input: NumberInput,\n textAlign: 'right',\n suffix: '%',\n inputProps: {\n decimalPlaces: 3\n }\n },\n {\n header: cashOutHeader,\n name: 'cashOut',\n display: 'Cash-out',\n width: 130,\n input: NumberInput,\n textAlign: 'right',\n suffix: '%',\n inputProps: {\n decimalPlaces: 3\n }\n },\n {\n name: 'fixedFee',\n display: 'Fixed fee',\n width: 144,\n input: NumberInput,\n doubleHeader: 'Cash-in only',\n textAlign: 'right',\n suffix: currency,\n inputProps: {\n decimalPlaces: 2\n }\n },\n {\n name: 'minimumTx',\n display: 'Minimun Tx',\n width: 144,\n input: NumberInput,\n doubleHeader: 'Cash-in only',\n textAlign: 'right',\n suffix: currency,\n inputProps: {\n decimalPlaces: 2\n }\n }\n ]\n}\n\nconst mainFields = currency => [\n {\n header: cashInHeader,\n name: 'cashIn',\n display: 'Cash-in',\n width: 169,\n size: 'lg',\n input: NumberInput,\n suffix: '%',\n inputProps: {\n decimalPlaces: 3\n }\n },\n {\n header: cashOutHeader,\n name: 'cashOut',\n display: 'Cash-out',\n width: 169,\n size: 'lg',\n input: NumberInput,\n suffix: '%',\n inputProps: {\n decimalPlaces: 3\n }\n },\n {\n name: 'fixedFee',\n display: 'Fixed fee',\n width: 169,\n size: 'lg',\n doubleHeader: 'Cash-in only',\n textAlign: 'center',\n input: NumberInput,\n suffix: currency,\n inputProps: {\n decimalPlaces: 2\n }\n },\n {\n name: 'minimumTx',\n display: 'Minimun Tx',\n width: 169,\n size: 'lg',\n doubleHeader: 'Cash-in only',\n textAlign: 'center',\n input: NumberInput,\n suffix: currency,\n inputProps: {\n decimalPlaces: 2\n }\n }\n]\n\nconst overrides = (auxData, currency, auxElements) => {\n const getData = R.path(R.__, auxData)\n\n return getOverridesFields(getData, currency, auxElements)\n}\n\nconst percentMax = 100\nconst currencyMax = 9999999\nconst schema = Yup.object().shape({\n cashIn: Yup.number()\n .label('Cash-in')\n .min(0)\n .max(percentMax)\n .required(),\n cashOut: Yup.number()\n .label('Cash-out')\n .min(0)\n .max(percentMax)\n .required(),\n fixedFee: Yup.number()\n .label('Fixed Fee')\n .min(0)\n .max(currencyMax)\n .required(),\n minimumTx: Yup.number()\n .label('Minimum Tx')\n .min(0)\n .max(currencyMax)\n .required()\n})\n\nconst getAlreadyUsed = (id, machine, values) => {\n const getCrypto = R.prop('cryptoCurrencies')\n const getMachineId = R.prop('machine')\n\n const filteredOverrides = R.filter(R.propEq('machine', machine))(values)\n const originalValue = R.find(R.propEq('id', id))(values)\n\n const originalCryptos = getCrypto(originalValue)\n const originalMachineId = getMachineId(originalValue)\n\n const alreadyUsed = R.compose(\n R.uniq,\n R.flatten,\n R.map(getCrypto)\n )(filteredOverrides)\n\n if (machine !== originalMachineId) return alreadyUsed ?? []\n\n return R.difference(alreadyUsed, originalCryptos)\n}\n\nconst getOverridesSchema = (values, rawData) => {\n const getData = R.path(R.__, rawData)\n const machineData = [ALL_MACHINES].concat(getData(['machines']))\n const rawCryptos = getData(['cryptoCurrencies'])\n const cryptoData = [ALL_COINS].concat(\n R.map(it => ({ display: it.code, code: it.code }))(rawCryptos ?? [])\n )\n\n return Yup.object().shape({\n machine: Yup.string()\n .nullable()\n .label('Machine')\n .required(),\n cryptoCurrencies: Yup.array()\n .test({\n test() {\n const { id, machine, cryptoCurrencies } = this.parent\n const alreadyUsed = getAlreadyUsed(id, machine, values)\n\n const isAllMachines = machine === ALL_MACHINES.deviceId\n const isAllCoins = R.includes(ALL_COINS.code, cryptoCurrencies)\n if (isAllMachines && isAllCoins) {\n return this.createError({\n message: `All machines and all coins should be configured in the default setup table`\n })\n }\n\n const repeated = R.intersection(alreadyUsed, cryptoCurrencies)\n if (!R.isEmpty(repeated)) {\n const codes = displayCodeArray(cryptoData)(repeated)\n const machineView = getView(\n machineData,\n 'name',\n 'deviceId'\n )(machine)\n\n const message = `${codes} already overriden for machine: ${machineView}`\n\n return this.createError({ message })\n }\n return true\n }\n })\n .label('Crypto Currencies')\n .required(),\n cashIn: Yup.number()\n .label('Cash-in')\n .min(0)\n .max(percentMax)\n .required(),\n cashOut: Yup.number()\n .label('Cash-out')\n .min(0)\n .max(percentMax)\n .required(),\n fixedFee: Yup.number()\n .label('Fixed Fee')\n .min(0)\n .max(currencyMax)\n .required(),\n minimumTx: Yup.number()\n .label('Minimum Tx')\n .min(0)\n .max(currencyMax)\n .required()\n })\n}\n\nconst defaults = {\n cashIn: '',\n cashOut: '',\n fixedFee: '',\n minimumTx: ''\n}\n\nconst overridesDefaults = {\n machine: null,\n cryptoCurrencies: [],\n cashIn: '',\n cashOut: '',\n fixedFee: '',\n minimumTx: ''\n}\n\nconst getOrder = ({ machine, cryptoCurrencies }) => {\n const isAllMachines = machine === ALL_MACHINES.deviceId\n const isAllCoins = R.contains(ALL_COINS.code, cryptoCurrencies)\n\n if (isAllMachines && isAllCoins) return 0\n if (isAllMachines) return 1\n if (isAllCoins) return 2\n\n return 3\n}\n\nexport {\n mainFields,\n overrides,\n schema,\n getOverridesSchema,\n defaults,\n overridesDefaults,\n getOrder\n}\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport { Table as EditableTable } from 'src/components/editableTable'\nimport Section from 'src/components/layout/Section'\nimport TitleSection from 'src/components/layout/TitleSection'\nimport { fromNamespace, toNamespace, namespaces } from 'src/utils/config'\n\nimport {\n mainFields,\n overrides,\n schema,\n getOverridesSchema,\n defaults,\n overridesDefaults,\n getOrder\n} from './helper'\n\nconst GET_DATA = gql`\n query getData {\n config\n cryptoCurrencies {\n code\n display\n }\n machines {\n name\n deviceId\n }\n }\n`\n\nconst SAVE_CONFIG = gql`\n mutation Save($config: JSONObject) {\n saveConfig(config: $config)\n }\n`\n\nconst Commissions = ({ name: SCREEN_KEY }) => {\n const [isEditingDefault, setEditingDefault] = useState(false)\n const [isEditingOverrides, setEditingOverrides] = useState(false)\n const { data } = useQuery(GET_DATA)\n const [saveConfig, { error }] = useMutation(SAVE_CONFIG, {\n refetchQueries: () => ['getData']\n })\n\n const config = data?.config && fromNamespace(SCREEN_KEY)(data.config)\n const currency = R.path(['fiatCurrency'])(\n fromNamespace(namespaces.LOCALE)(data?.config)\n )\n\n const commission = config && !R.isEmpty(config) ? config : defaults\n const commissionOverrides = commission?.overrides ?? []\n\n const orderedCommissionsOverrides = R.sortWith([\n R.ascend(getOrder),\n R.ascend(R.prop('machine'))\n ])(commissionOverrides)\n\n const save = it => {\n const config = toNamespace(SCREEN_KEY)(it.commissions[0])\n return saveConfig({ variables: { config } })\n }\n\n const saveOverrides = it => {\n const config = toNamespace(SCREEN_KEY)(it)\n return saveConfig({ variables: { config } })\n }\n\n const onEditingDefault = (it, editing) => setEditingDefault(editing)\n const onEditingOverrides = (it, editing) => setEditingOverrides(editing)\n\n return (\n <>\n \n
\n \n
\n
\n \n
\n \n )\n}\n\nexport default Commissions\n","import Commissions from './Commissions'\n\nexport default Commissions\n","import Chip from '@material-ui/core/Chip'\nimport { makeStyles } from '@material-ui/core/styles'\nimport React from 'react'\n\nimport {\n tomato,\n mistyRose,\n pumpkin,\n secondaryColorDarker as spring4,\n inputFontWeight,\n spring3,\n zircon,\n primaryColor,\n smallestFontSize,\n inputFontFamily,\n spacer,\n linen\n} from '../styling/variables'\n\nconst colors = {\n error: tomato,\n warning: pumpkin,\n success: spring4,\n neutral: primaryColor\n}\n\nconst backgroundColors = {\n error: mistyRose,\n warning: linen,\n success: spring3,\n neutral: zircon\n}\n\nconst useStyles = makeStyles({\n root: {\n borderRadius: spacer / 2,\n marginTop: spacer / 2,\n marginRight: spacer / 4,\n marginBottom: spacer / 2,\n marginLeft: spacer / 4,\n height: spacer * 3,\n backgroundColor: ({ type }) => backgroundColors[type]\n },\n label: {\n fontSize: smallestFontSize,\n fontWeight: inputFontWeight,\n fontFamily: inputFontFamily,\n paddingRight: spacer / 2,\n paddingLeft: spacer / 2,\n color: ({ type }) => colors[type]\n }\n})\n\nconst Status = ({ status }) => {\n const classes = useStyles({ type: status.type })\n return \n}\n\nconst MainStatus = ({ statuses }) => {\n const mainStatus =\n statuses.find(s => s.type === 'error') ||\n statuses.find(s => s.type === 'warning') ||\n statuses[0]\n const plus = { label: `+${statuses.length - 1}`, type: mainStatus.type }\n\n return (\n
\n \n {statuses.length > 1 && }\n
\n )\n}\n\nexport { Status, MainStatus }\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/authorize/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval\",\n stroke: \"#FFFFFF\",\n cx: 6,\n cy: 6,\n r: 5\n}), /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-13\",\n stroke: \"#FFFFFF\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n points: \"4 6.66666667 5 8 8 4\"\n}));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 12 12\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.51296906.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/authorize/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-9\",\n stroke: \"#1B2559\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval\",\n cx: 6,\n cy: 6,\n r: 5\n})), /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-13\",\n stroke: \"#1B2559\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n points: \"4 6.66666667 5 8 8 4\"\n}));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 12 12\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.2fe856d5.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/cancel/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-5\",\n stroke: \"#1B2559\",\n strokeWidth: 1.2\n}, /*#__PURE__*/React.createElement(\"line\", {\n x1: 12,\n y1: 0,\n x2: 0,\n y2: 12,\n id: \"Stroke-1\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 0,\n y1: 0,\n x2: 12,\n y2: 12,\n id: \"Stroke-3\"\n})));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.3b13c0b7.svg\";\nexport { ForwardRef as ReactComponent };","import { white, tomato, spring4, comet } from 'src/styling/variables'\n\nconst propertyCardStyles = {\n label1: {\n display: 'flex',\n marginBottom: 2,\n marginTop: 'auto',\n width: 85\n },\n label1Pending: {\n color: comet\n },\n label1Rejected: {\n color: tomato\n },\n label1Accepted: {\n color: spring4\n },\n cardActionButton: {\n display: 'flex',\n height: 28,\n marginRight: 'auto',\n marginLeft: 12\n },\n propertyCardTopRow: {\n display: 'flex',\n margin: [[0, 10, 5, 0]]\n },\n propertyCardBottomRow: {\n display: 'flex',\n flexDirection: 'row',\n height: 45\n },\n propertyCard: {\n display: 'flex',\n flexDirection: 'column',\n borderRadius: 8,\n width: '100%',\n height: 100,\n padding: [[20]],\n boxSizing: 'border-box',\n boxShadow: '0 0 8px 0 rgba(0, 0, 0, 0.04)',\n border: 'solid 0',\n backgroundColor: white,\n margin: [[20, 0, 0, 0]]\n },\n rowSpaceBetween: {\n display: 'flex',\n flexFlow: 'row nowrap',\n alignItems: 'center',\n justifyContent: 'space-between'\n },\n columnSpaceBetween: {\n display: 'flex',\n flexFlow: 'column nowrap',\n alignItems: 'center',\n justifyContent: 'space-between',\n width: 90\n },\n buttonsWrapper: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n marginLeft: 'auto',\n marginTop: 'auto'\n }\n}\n\nexport { propertyCardStyles }\n","import { Paper } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React, { memo } from 'react'\n\nimport { MainStatus } from 'src/components/Status'\nimport { ActionButton } from 'src/components/buttons'\nimport { H3 } from 'src/components/typography'\nimport { ReactComponent as AuthorizeReversedIcon } from 'src/styling/icons/button/authorize/white.svg'\nimport { ReactComponent as AuthorizeIcon } from 'src/styling/icons/button/authorize/zodiac.svg'\nimport { ReactComponent as RejectReversedIcon } from 'src/styling/icons/button/cancel/white.svg'\nimport { ReactComponent as RejectIcon } from 'src/styling/icons/button/cancel/zodiac.svg'\n\nimport { propertyCardStyles } from './PropertyCard.styles'\n\nconst useStyles = makeStyles(propertyCardStyles)\n\nconst OVERRIDE_PENDING = 'automatic'\nconst OVERRIDE_AUTHORIZED = 'verified'\nconst OVERRIDE_REJECTED = 'blocked'\n\nconst PropertyCard = memo(\n ({ className, title, state, authorize, reject, children }) => {\n const classes = useStyles()\n\n const label1ClassNames = {\n [classes.label1]: true,\n [classes.label1Pending]: state === OVERRIDE_PENDING,\n [classes.label1Rejected]: state === OVERRIDE_REJECTED,\n [classes.label1Accepted]: state === OVERRIDE_AUTHORIZED\n }\n\n const AuthorizeButton = () => (\n authorize()}>\n Authorize\n \n )\n\n const RejectButton = () => (\n reject()}>\n Reject\n \n )\n\n const authorized =\n state === OVERRIDE_PENDING\n ? { label: 'Pending', type: 'neutral' }\n : state === OVERRIDE_REJECTED\n ? { label: 'Rejected', type: 'error' }\n : { label: 'Accepted', type: 'success' }\n\n return (\n \n

{title}

\n
\n
\n \n
\n {children}\n
\n {authorize && state !== OVERRIDE_AUTHORIZED && AuthorizeButton()}\n {reject && state !== OVERRIDE_REJECTED && RejectButton()}\n
\n
\n \n )\n }\n)\n\nexport {\n PropertyCard,\n OVERRIDE_PENDING,\n OVERRIDE_AUTHORIZED,\n OVERRIDE_REJECTED\n}\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/block/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-5\",\n stroke: \"#FFFFFF\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval\",\n cx: 6,\n cy: 6,\n r: 5\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 9,\n y1: 3,\n x2: 3,\n y2: 9,\n id: \"Stroke-3\"\n})));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 12 12\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.e72682b5.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/block/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-5\",\n stroke: \"#1B2559\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval\",\n cx: 6,\n cy: 6,\n r: 5\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 9,\n y1: 3,\n x2: 3,\n y2: 9,\n id: \"Stroke-3\"\n})));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 12 12\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.bb7722c5.svg\";\nexport { ForwardRef as ReactComponent };","import { comet } from 'src/styling/variables'\n\nexport default {\n labelLink: {\n cursor: 'pointer',\n color: comet\n },\n breadcrumbs: {\n margin: [[20, 0]]\n },\n actionLabel: {\n color: comet,\n margin: [[4, 0]]\n },\n customerDetails: {\n marginBottom: 18\n }\n}\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/sf-small/search/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.8635238,8.17028571 C15.8635238,12.4198095 12.4187619,15.8645714 8.1692381,15.8645714 C3.92066667,15.8645714 0.475904762,12.4198095 0.475904762,8.17028571 C0.475904762,3.9207619 3.92066667,0.476 8.1692381,0.476 C12.4187619,0.476 15.8635238,3.9207619 15.8635238,8.17028571 Z\",\n id: \"Stroke-1\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 13.7035238,\n y1: 13.7046667,\n x2: 19.4844762,\n y2: 19.485619,\n id: \"Stroke-3\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2,\n strokeLinecap: \"round\"\n}));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.e8851a0a.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/sf-small/search/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.8635238,8.17028571 C15.8635238,12.4198095 12.4187619,15.8645714 8.1692381,15.8645714 C3.92066667,15.8645714 0.475904762,12.4198095 0.475904762,8.17028571 C0.475904762,3.9207619 3.92066667,0.476 8.1692381,0.476 C12.4187619,0.476 15.8635238,3.9207619 15.8635238,8.17028571 Z\",\n id: \"Stroke-1\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 13.7035238,\n y1: 13.7046667,\n x2: 19.4844762,\n y2: 19.485619,\n id: \"Stroke-3\",\n stroke: \"#1B2559\",\n strokeWidth: 2,\n strokeLinecap: \"round\"\n}));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.91792e22.svg\";\nexport { ForwardRef as ReactComponent };","import { makeStyles, ClickAwayListener } from '@material-ui/core'\nimport classnames from 'classnames'\nimport React, { memo, useState } from 'react'\n\nimport Popper from 'src/components/Popper'\nimport { FeatureButton } from 'src/components/buttons'\nimport { ReactComponent as ZoomIconInverse } from 'src/styling/icons/circle buttons/search/white.svg'\nimport { ReactComponent as ZoomIcon } from 'src/styling/icons/circle buttons/search/zodiac.svg'\n\nimport imagePopperStyles from './ImagePopper.styles'\n\nconst useStyles = makeStyles(imagePopperStyles)\n\nconst ImagePopper = memo(\n ({ className, width, height, popupWidth, popupHeight, src }) => {\n const classes = useStyles({\n width,\n height,\n popupWidth,\n popupHeight\n })\n const [popperAnchorEl, setPopperAnchorEl] = useState(null)\n\n const handleOpenPopper = event => {\n setPopperAnchorEl(popperAnchorEl ? null : event.currentTarget)\n }\n\n const handleClosePopper = () => {\n setPopperAnchorEl(null)\n }\n\n const popperOpen = Boolean(popperAnchorEl)\n\n const Image = ({ className }) => (\n \"\"\n )\n\n return (\n \n
\n \n \n \n
\n \n
\n
\n
\n
\n )\n }\n)\n\nexport default ImagePopper\n","export default {\n row: {\n display: 'flex',\n flexDirection: 'row'\n },\n image: ({ width, height }) => ({\n objectFit: 'cover',\n borderRadius: '8px 0px 0px 8px',\n width,\n height\n }),\n popupImage: ({ popupWidth, popupHeight }) => ({\n objectFit: 'cover',\n width: popupWidth,\n height: popupHeight\n }),\n button: ({ height }) => ({\n borderRadius: '0px 8px 8px 0px',\n height\n }),\n popoverContent: {\n display: 'block',\n padding: [[10, 15]]\n }\n}\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/crossed-camera\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"crossed-camera\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-2\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/ID/cam/zodiac\",\n transform: \"translate(0.000000, 3.657143)\",\n fill: \"#1B2559\",\n fillRule: \"nonzero\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16,19.1876029 C12.4482116,19.1876029 9.56809571,16.389776 9.56809571,12.9394673 C9.56809571,9.48915858 12.4482116,6.69133172 16,6.69133172 C19.5517884,6.69133172 22.4319043,9.48915858 22.4319043,12.9394673 C22.4319043,16.389776 19.5517884,19.1876029 16,19.1876029 Z M16,17.104891 C18.3677075,17.104891 20.2879362,15.239526 20.2879362,12.9394673 C20.2879362,10.6394086 18.3677075,8.77404358 16,8.77404358 C13.6322925,8.77404358 11.7120638,10.6394086 11.7120638,12.9394673 C11.7120638,15.239526 13.6322925,17.104891 16,17.104891 Z M22.7667469,3.30692494 L30.7397807,3.30692494 C31.3318211,3.30692494 31.8117647,3.77315587 31.8117647,4.34828087 L31.8117647,22.0513317 C31.8117647,22.6264567 31.3318211,23.0926877 30.7397807,23.0926877 L1.26021934,23.0926877 C0.6681789,23.0926877 0.188235294,22.6264567 0.188235294,22.0513317 L0.188235294,4.34828087 C0.188235294,3.77315587 0.6681789,3.30692494 1.26021934,3.30692494 L9.23325311,3.30692494 L12.0766705,0.494526627 C12.2782333,0.295162767 12.5538198,0.182857143 12.8414756,0.182857143 L19.1585244,0.182857143 C19.4461802,0.182857143 19.7217667,0.295162767 19.9233295,0.494526627 L22.7667469,3.30692494 Z M29.6677966,5.3896368 L22.3170489,5.3896368 C22.0293931,5.3896368 21.7538065,5.27733118 21.5522438,5.07796732 L18.7088264,2.26556901 L13.2911736,2.26556901 L10.4477562,5.07796732 C10.2461935,5.27733118 9.97060695,5.3896368 9.68295115,5.3896368 L2.33220339,5.3896368 L2.33220339,21.0099758 L29.6677966,21.0099758 L29.6677966,5.3896368 Z\",\n id: \"Stroke-1\"\n})), /*#__PURE__*/React.createElement(\"line\", {\n x1: 32,\n y1: 0,\n x2: 0,\n y2: 32,\n id: \"Line\",\n stroke: \"#FF584A\",\n strokeWidth: 2,\n strokeLinecap: \"square\"\n}))));\n\nfunction SvgCrossedCamera(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"32px\",\n height: \"32px\",\n viewBox: \"0 0 32 32\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCrossedCamera);\nexport default __webpack_public_path__ + \"static/media/crossed-camera.28e8f7eb.svg\";\nexport { ForwardRef as ReactComponent };","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React, { memo } from 'react'\n\nimport { Info3, Label1 } from 'src/components/typography'\nimport { comet } from 'src/styling/variables'\n\nconst useStyles = makeStyles({\n field: {\n height: 46\n },\n label: {\n color: comet,\n margin: [[0, 3]]\n },\n value: {\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n margin: 0,\n paddingLeft: 4\n }\n})\n\nconst Field = memo(({ label, display, size, className }) => {\n const classes = useStyles()\n\n return (\n \n {label}\n {display}\n
\n )\n})\n\nexport default Field\n","import { Box } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\nimport * as R from 'ramda'\nimport React from 'react'\n\nimport ImagePopper from 'src/components/ImagePopper'\nimport { H3, Info3 } from 'src/components/typography'\nimport {\n PropertyCard,\n OVERRIDE_AUTHORIZED,\n OVERRIDE_REJECTED\n} from 'src/pages/Customers/components/propertyCard'\nimport { ReactComponent as CrossedCameraIcon } from 'src/styling/icons/ID/photo/crossed-camera.svg'\nimport { URI } from 'src/utils/apollo'\n\nimport { complianceDetailsStyles } from './ComplianceDetails.styles'\nimport Field from './Field'\n\nimport { IdDataCard } from './'\n\nconst useStyles = makeStyles(complianceDetailsStyles)\n\nconst imageWidth = 165\nconst imageHeight = 45\nconst popupImageWidth = 360\nconst popupImageHeight = 240\n\nconst Photo = ({ show, src }) => {\n const classes = useStyles({ width: imageWidth })\n\n return (\n <>\n {show ? (\n \n ) : (\n
\n \n
\n )}\n \n )\n}\n\nconst ComplianceDetails = ({ customer, updateCustomer }) => {\n const classes = useStyles({ width: imageWidth })\n\n const sanctions = R.path(['sanctions'])(customer)\n const sanctionsAt = R.path(['sanctionsAt'])(customer)\n const sanctionsDisplay = !sanctionsAt\n ? 'Not checked yet'\n : sanctions\n ? 'Passed'\n : 'Failed'\n\n return (\n
\n

Compliance details

\n
\n \n \n \n \n updateCustomer({ idCardPhotoOverride: OVERRIDE_AUTHORIZED })\n }\n reject={() =>\n updateCustomer({ idCardPhotoOverride: OVERRIDE_REJECTED })\n }>\n \n \n \n updateCustomer({ frontCameraOverride: OVERRIDE_AUTHORIZED })\n }\n reject={() =>\n updateCustomer({ frontCameraOverride: OVERRIDE_REJECTED })\n }>\n \n \n \n \n \n updateCustomer({ usSsnOverride: OVERRIDE_AUTHORIZED })\n }\n reject={() =>\n updateCustomer({ usSsnOverride: OVERRIDE_REJECTED })\n }>\n \n \n \n updateCustomer({ sanctionsOverride: OVERRIDE_AUTHORIZED })\n }\n reject={() =>\n updateCustomer({ sanctionsOverride: OVERRIDE_REJECTED })\n }>\n {sanctionsDisplay}\n \n \n \n
\n
\n )\n}\n\nexport default ComplianceDetails\n","const complianceDetailsStyles = {\n complianceDetailsGrid: {\n display: 'flex',\n flexDirection: 'row'\n },\n firstColumn: {\n display: 'flex',\n flexDirection: 'column',\n width: '100%',\n marginRight: 10\n },\n lastColumn: {\n display: 'flex',\n flexDirection: 'column',\n width: '100%',\n marginLeft: 10\n },\n photoWrapper: ({ width }) => ({\n display: 'flex',\n justifyContent: 'center',\n width\n })\n}\n\nexport { complianceDetailsStyles }\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/ID/card/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-2\",\n stroke: \"#1B2559\",\n strokeWidth: 1.6\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"id-copy\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Stroke-1\",\n points: \"0 16 22 16 22 0 0 0\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 11.7857143,\n y1: 4,\n x2: 18.8571429,\n y2: 4,\n id: \"Stroke-3\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 11.7857143,\n y1: 7.2,\n x2: 18.8571429,\n y2: 7.2,\n id: \"Stroke-4\"\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Stroke-5\",\n points: \"3.14285714 11.2 8.64285714 11.2 8.64285714 4 3.14285714 4\"\n}))));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"22px\",\n height: \"16px\",\n viewBox: \"0 0 22 16\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.05a22c3a.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/sf-small/law/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"bevel\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n x1: 8.4141,\n y1: 7.4648,\n x2: 14.0711,\n y2: 1.8078,\n id: \"Stroke-1\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 12.6568,\n y1: 0.3936,\n x2: 15.4858,\n y2: 3.2216,\n id: \"Stroke-3\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 7,\n y1: 6.0498,\n x2: 9.829,\n y2: 8.8788,\n id: \"Stroke-6\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 11.2427,\n y1: 4.6357,\n x2: 19.2427,\n y2: 12.6357,\n id: \"Stroke-7\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 3,\n y1: 16.5,\n x2: 10,\n y2: 16.5,\n id: \"Stroke-9\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 0,\n y1: 19.5,\n x2: 13,\n y2: 19.5,\n id: \"Stroke-10\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2\n}));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"icon/sf-small/law/white\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.57984891.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/sf-small/law/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"bevel\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n x1: 8.4141,\n y1: 7.4648,\n x2: 14.0711,\n y2: 1.8078,\n id: \"Stroke-1\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 12.6568,\n y1: 0.3936,\n x2: 15.4858,\n y2: 3.2216,\n id: \"Stroke-3\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 7,\n y1: 6.0498,\n x2: 9.829,\n y2: 8.8788,\n id: \"Stroke-6\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 11.2427,\n y1: 4.6357,\n x2: 19.2427,\n y2: 12.6357,\n id: \"Stroke-7\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 3,\n y1: 16.5,\n x2: 10,\n y2: 16.5,\n id: \"Stroke-9\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 0,\n y1: 19.5,\n x2: 13,\n y2: 19.5,\n id: \"Stroke-10\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n}));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"icon/sf-small/law/zodiac\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.56f832ee.svg\";\nexport { ForwardRef as ReactComponent };","import { fontSize5 } from 'src/styling/variables'\n\nexport default {\n titleWrapper: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n flexDirection: 'row'\n },\n wrapper: {\n flex: 1,\n display: 'flex',\n flexDirection: 'row',\n height: '100%'\n },\n tableWrapper: {\n flex: 1,\n marginLeft: 40,\n display: 'block',\n overflowX: 'auto',\n width: '100%',\n maxWidth: '78%',\n maxHeight: '70vh'\n },\n table: {\n whiteSpace: 'nowrap',\n display: 'block',\n '& th': {\n position: 'sticky',\n top: 0\n }\n },\n dateColumn: {\n minWidth: 160\n },\n levelColumn: {\n minWidth: 100\n },\n fillColumn: {\n width: '100%'\n },\n shareButton: {\n margin: 8,\n display: 'flex',\n alignItems: 'center',\n fontSize: fontSize5,\n padding: [[0, 12]]\n },\n shareIcon: {\n marginRight: 6\n },\n button: {\n margin: 8\n },\n titleAndButtonsContainer: {\n display: 'flex'\n },\n buttonsWrapper: {\n display: 'flex',\n marginLeft: 16,\n '& > *': {\n margin: 'auto 6px'\n }\n }\n}\n","import typographyStyles from 'src/components/typography/styles'\nimport baseStyles from 'src/pages/Logs.styles'\nimport { zircon, comet, primaryColor, fontSize4 } from 'src/styling/variables'\n\nconst { label1 } = typographyStyles\nconst { titleWrapper, titleAndButtonsContainer } = baseStyles\n\nexport default {\n titleWrapper,\n titleAndButtonsContainer,\n row: {\n display: 'flex',\n flexFlow: 'row nowrap'\n },\n rowSpaceBetween: {\n display: 'flex',\n flexFlow: 'row nowrap',\n alignItems: 'center',\n justifyContent: 'space-between'\n },\n column: {\n display: 'flex',\n flexFlow: 'column nowrap',\n width: '100%',\n height: '100%',\n justifyContent: 'space-between'\n },\n textInput: {\n width: 144\n },\n p: {\n fontFamily: 'MuseoSans',\n fontSize: fontSize4,\n fontWeight: 500,\n fontStretch: 'normal',\n fontStyle: 'normal',\n lineHeight: 1.14,\n letterSpacing: 'normal',\n color: primaryColor\n },\n txId: {\n fontFamily: 'MuseoSans',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis'\n },\n txClassIconLeft: {\n marginRight: 11\n },\n txClassIconRight: {\n marginLeft: 11\n },\n headerLabels: {\n display: 'flex',\n flexDirection: 'row',\n '& div': {\n display: 'flex',\n alignItems: 'center'\n },\n '& > div:first-child': {\n marginRight: 24\n },\n '& span': {\n extend: label1,\n marginLeft: 6\n }\n },\n photo: {\n width: 92,\n height: 92,\n borderRadius: 8,\n backgroundColor: zircon,\n margin: [[0, 28, 0, 0]],\n alignItems: 'center',\n justifyContent: 'center',\n display: 'flex'\n },\n img: {\n width: 80\n },\n customerName: {\n marginBottom: 32\n },\n icon: {\n marginRight: 11\n },\n name: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center'\n },\n value: {\n height: 16\n },\n label: {\n marginBottom: 4,\n color: comet\n },\n idIcon: {\n marginRight: 10\n },\n subpageButton: {\n marginLeft: 16\n }\n}\n","import { parsePhoneNumberFromString } from 'libphonenumber-js'\nimport * as R from 'ramda'\n\nconst CUSTOMER_BLOCKED = 'blocked'\n\nconst getAuthorizedStatus = it =>\n it.authorizedOverride === CUSTOMER_BLOCKED\n ? { label: 'Blocked', type: 'error' }\n : it.daysSuspended > 0\n ? { label: `${it.daysSuspended} day suspension`, type: 'warning' }\n : { label: 'Authorized', type: 'success' }\n\nconst getFormattedPhone = (phone, country) =>\n phone && country\n ? parsePhoneNumberFromString(phone, country).formatInternational()\n : ''\n\nconst getName = it => {\n const idData = R.path(['idCardData'])(it)\n\n return `${R.path(['firstName'])(idData) ?? ''} ${R.path(['lastName'])(\n idData\n ) ?? ''}`.trim()\n}\n\nexport { getAuthorizedStatus, getFormattedPhone, getName }\n","import { Paper } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\nimport React, { memo } from 'react'\n\nimport { ReactComponent as CrossedCameraIcon } from 'src/styling/icons/ID/photo/crossed-camera.svg'\nimport { URI } from 'src/utils/apollo'\n\nimport mainStyles from '../CustomersList.styles'\n\nconst useStyles = makeStyles(mainStyles)\n\nconst FrontCameraPhoto = memo(({ frontCameraPath }) => {\n const classes = useStyles()\n\n return (\n \n {frontCameraPath ? (\n \n ) : (\n \n )}\n \n )\n})\n\nexport default FrontCameraPhoto\n","import { makeStyles, Box } from '@material-ui/core'\nimport * as R from 'ramda'\nimport React, { memo } from 'react'\n\nimport { SubpageButton } from 'src/components/buttons'\nimport { H2, Label1, P } from 'src/components/typography'\nimport { ReactComponent as IdIcon } from 'src/styling/icons/ID/card/zodiac.svg'\nimport { ReactComponent as LawIconInverse } from 'src/styling/icons/circle buttons/law/white.svg'\nimport { ReactComponent as LawIcon } from 'src/styling/icons/circle buttons/law/zodiac.svg'\n\nimport mainStyles from '../CustomersList.styles'\nimport { getFormattedPhone, getName } from '../helper'\n\nimport FrontCameraPhoto from './FrontCameraPhoto'\n\nconst useStyles = makeStyles(mainStyles)\n\nconst CustomerDetails = memo(({ customer, locale, setShowCompliance }) => {\n const classes = useStyles()\n\n const elements = [\n {\n header: 'Phone number',\n size: 172,\n value: getFormattedPhone(customer.phone, locale.country)\n },\n {\n header: 'ID number',\n size: 172,\n value: R.path(['idCardData', 'documentNumber'])(customer) ?? ''\n },\n {\n header: 'US SSN',\n size: 127,\n value: R.path(['usSsn'])(customer) ?? ''\n }\n ]\n\n const name = getName(customer)\n\n return (\n \n \n \n
\n \n

\n {name.length\n ? name\n : getFormattedPhone(R.path(['phone'])(customer), locale.country)}\n

\n \n Compliance details\n \n
\n \n {elements.map(({ size, header }, idx) => (\n \n {header}\n \n ))}\n \n \n {elements.map(({ size, value }, idx) => (\n \n {value}\n

\n ))}\n
\n
\n
\n )\n})\n\nexport default CustomerDetails\n","import * as R from 'ramda'\n\nconst ifNotNull = (value, valueIfNotNull) => {\n return R.isNil(value) ? '' : valueIfNotNull\n}\n\nexport { ifNotNull }\n","import { Box } from '@material-ui/core'\nimport moment from 'moment'\nimport * as R from 'ramda'\nimport React, { memo } from 'react'\n\nimport {\n PropertyCard,\n OVERRIDE_AUTHORIZED,\n OVERRIDE_REJECTED\n} from 'src/pages/Customers/components/propertyCard'\nimport { ifNotNull } from 'src/utils/nullCheck'\n\nimport Field from './Field'\n\nconst IdDataCard = memo(({ customerData, updateCustomer }) => {\n const idData = R.path(['idCardData'])(customerData)\n const rawExpirationDate = R.path(['expirationDate'])(idData)\n const country = R.path(['country'])(idData)\n const rawDob = R.path(['dateOfBirth'])(idData)\n\n const elements = [\n {\n header: 'Name',\n display: `${R.path(['firstName'])(idData)} ${R.path(['lastName'])(\n idData\n )}`,\n size: 190\n },\n {\n header: 'ID number',\n display: R.path(['documentNumber'])(idData),\n size: 160\n },\n {\n header: 'Birth Date',\n display: ifNotNull(rawDob, moment.utc(rawDob).format('YYYY-MM-DD')),\n size: 110\n },\n {\n header: 'Age',\n display: ifNotNull(\n rawDob,\n moment.utc().diff(moment.utc(rawDob).format('YYYY-MM-DD'), 'years')\n ),\n size: 50\n },\n {\n header: 'Gender',\n display: R.path(['gender'])(idData),\n size: 80\n },\n {\n header: country === 'Canada' ? 'Province' : 'State',\n display: R.path(['state'])(idData),\n size: 120\n },\n {\n header: 'Expiration Date',\n display: ifNotNull(\n rawExpirationDate,\n moment.utc(rawExpirationDate).format('YYYY-MM-DD')\n )\n }\n ]\n\n return (\n \n updateCustomer({ idCardDataOverride: OVERRIDE_AUTHORIZED })\n }\n reject={() => updateCustomer({ idCardDataOverride: OVERRIDE_REJECTED })}>\n \n {elements.map(({ header, display, size }, idx) => (\n \n ))}\n \n \n )\n})\n\nexport default IdDataCard\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Styleguide\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/action/expand/closed\",\n transform: \"translate(1.000000, 1.000000)\",\n stroke: \"#1B2559\",\n strokeWidth: 1.5\n}, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval-4\",\n cx: 14,\n cy: 2,\n r: 2\n}), /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval-4-Copy\",\n cx: 8,\n cy: 2,\n r: 2\n}), /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval-4-Copy-2\",\n cx: 2,\n cy: 2,\n r: 2\n})));\n\nfunction SvgClosed(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"18px\",\n height: \"6px\",\n viewBox: \"0 0 18 6\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgClosed);\nexport default __webpack_public_path__ + \"static/media/closed.b853a619.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Styleguide\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/action/expand/open\",\n transform: \"translate(1.000000, 1.000000)\",\n fill: \"#1B2559\",\n stroke: \"#1B2559\",\n strokeWidth: 1.5\n}, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval-4\",\n cx: 14,\n cy: 2,\n r: 2\n}), /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval-4-Copy\",\n cx: 8,\n cy: 2,\n r: 2\n}), /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval-4-Copy-2\",\n cx: 2,\n cy: 2,\n r: 2\n})));\n\nfunction SvgOpen(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"18px\",\n height: \"6px\",\n viewBox: \"0 0 18 6\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgOpen);\nexport default __webpack_public_path__ + \"static/media/open.7196c113.svg\";\nexport { ForwardRef as ReactComponent };","import { zircon } from 'src/styling/variables'\n\nexport default {\n expandButton: {\n outline: 'none',\n border: 'none',\n backgroundColor: 'transparent',\n cursor: 'pointer',\n padding: 4\n },\n rowWrapper: {\n // workaround to shadows cut by r-virtualized when scroll is visible\n padding: 1\n },\n row: {\n border: [[2, 'solid', 'transparent']],\n borderRadius: 0\n },\n expanded: {\n border: [[2, 'solid', zircon]],\n boxShadow: '0 0 8px 0 rgba(0,0,0,0.08)'\n },\n before: {\n paddingTop: 12\n },\n after: {\n paddingBottom: 12\n },\n pointer: {\n cursor: 'pointer'\n },\n body: {\n flex: [[1, 1, 'auto']]\n },\n table: ({ width }) => ({\n marginBottom: 30,\n minHeight: 200,\n width,\n flex: 1,\n display: 'flex',\n flexDirection: 'column'\n })\n}\n","import { makeStyles, Box } from '@material-ui/core'\nimport classnames from 'classnames'\nimport * as R from 'ramda'\nimport React, { useState, useEffect } from 'react'\nimport {\n AutoSizer,\n List,\n CellMeasurer,\n CellMeasurerCache\n} from 'react-virtualized'\n\nimport {\n Table,\n TBody,\n THead,\n Tr,\n Td,\n Th\n} from 'src/components/fake-table/Table'\nimport { H4 } from 'src/components/typography'\nimport { ReactComponent as ExpandClosedIcon } from 'src/styling/icons/action/expand/closed.svg'\nimport { ReactComponent as ExpandOpenIcon } from 'src/styling/icons/action/expand/open.svg'\n\nimport styles from './DataTable.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst Row = ({\n id,\n elements,\n data,\n width,\n Details,\n expanded,\n expandRow,\n expWidth,\n expandable,\n onClick\n}) => {\n const classes = useStyles()\n\n const hasPointer = onClick || expandable\n const trClasses = {\n [classes.pointer]: hasPointer,\n [classes.row]: true,\n [classes.expanded]: expanded\n }\n\n return (\n
\n
\n {\n expandable && expandRow(id)\n onClick && onClick(data)\n }}\n error={data.error}\n errorMessage={data.errorMessage}>\n {elements.map(({ view = it => it?.toString(), ...props }, idx) => (\n \n {view(data)}\n \n ))}\n {expandable && (\n \n expandRow(id)}\n className={classes.expandButton}>\n {expanded && }\n {!expanded && }\n \n \n )}\n \n
\n {expandable && expanded && (\n
\n \n \n
\n \n \n
\n )}\n
\n )\n}\n\nconst DataTable = ({\n elements = [],\n data = [],\n Details,\n className,\n expandable,\n initialExpanded,\n onClick,\n loading,\n emptyText,\n ...props\n}) => {\n const [expanded, setExpanded] = useState(initialExpanded)\n\n useEffect(() => setExpanded(initialExpanded), [initialExpanded])\n\n const coreWidth = R.compose(R.sum, R.map(R.prop('width')))(elements)\n const expWidth = 1200 - coreWidth\n const width = coreWidth + (expandable ? expWidth : 0)\n\n const classes = useStyles({ width })\n\n const expandRow = id => {\n setExpanded(id === expanded ? null : id)\n }\n\n const cache = new CellMeasurerCache({\n defaultHeight: 62,\n fixedWidth: true\n })\n\n function rowRenderer({ index, key, parent, style }) {\n return (\n \n
\n \n
\n \n )\n }\n\n return (\n \n \n \n {elements.map(({ width, className, textAlign, header }, idx) => (\n \n {header}\n \n ))}\n {expandable && }\n \n \n {loading &&

Loading...

}\n {!loading && R.isEmpty(data) &&

{emptyText}

}\n \n {({ height }) => (\n \n )}\n \n \n
\n
\n )\n}\n\nexport default DataTable\n","import * as R from 'ramda'\n\nconst CRYPTO_CURRENCIES = [\n {\n cryptoCode: 'BTC',\n display: 'Bitcoin',\n code: 'bitcoin',\n unitScale: 8\n },\n {\n cryptoCode: 'ETH',\n display: 'Ethereum',\n code: 'ethereum',\n unitScale: 18\n },\n {\n cryptoCode: 'LTC',\n display: 'Litecoin',\n code: 'litecoin',\n unitScale: 8\n },\n {\n cryptoCode: 'DASH',\n display: 'Dash',\n code: 'dash',\n unitScale: 8\n },\n {\n cryptoCode: 'ZEC',\n display: 'Zcash',\n code: 'zcash',\n unitScale: 8\n },\n {\n cryptoCode: 'BCH',\n display: 'Bitcoin Cash',\n code: 'bitcoincash',\n unitScale: 8\n }\n]\n\nfunction getCryptoCurrency(cryptoCode) {\n const coin = R.find(R.propEq('cryptoCode', cryptoCode))(CRYPTO_CURRENCIES)\n\n if (!coin) throw new Error(`Unsupported crypto: ${cryptoCode}`)\n return coin\n}\n\nfunction toUnit(cryptoAtoms, cryptoCode) {\n const cryptoRec = getCryptoCurrency(cryptoCode)\n const unitScale = cryptoRec.unitScale\n return cryptoAtoms.shiftedBy(-unitScale)\n}\n\nfunction formatCryptoAddress(cryptoCode = '', address = '') {\n return cryptoCode === 'BCH' ? address.replace('bitcoincash:', '') : address\n}\n\nexport { toUnit, formatCryptoAddress }\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Styleguide\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/action/copy\",\n transform: \"translate(1.000000, 1.000000)\",\n stroke: \"#1B2559\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-5-Copy-2\"\n}, /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-1\",\n strokeWidth: 2,\n points: \"6 1.2 6 -0.00024 16 -0.00024 16 13.06376 12 13.06376\"\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Stroke-3\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n points: \"0 15.9368 10 15.9368 10 2.9368 0 2.9368\"\n}))));\n\nfunction SvgCopy(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"18px\",\n height: \"18px\",\n viewBox: \"0 0 18 18\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCopy);\nexport default __webpack_public_path__ + \"static/media/copy.f4cea549.svg\";\nexport { ForwardRef as ReactComponent };","import typographyStyles from 'src/components/typography/styles'\nimport baseStyles from 'src/pages/Logs.styles'\nimport { offColor, white } from 'src/styling/variables'\n\nconst { label1, mono, p } = typographyStyles\nconst { titleWrapper, titleAndButtonsContainer, buttonsWrapper } = baseStyles\n\nconst cpcStyles = {\n wrapper: {\n extend: mono,\n display: 'flex',\n alignItems: 'center',\n height: 32\n },\n address: {\n lineBreak: 'anywhere'\n },\n buttonWrapper: {\n '& button': {\n border: 'none',\n backgroundColor: 'transparent',\n cursor: 'pointer'\n }\n },\n popoverContent: {\n extend: label1,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n color: white,\n borderRadius: 4,\n padding: [[5, 9]]\n }\n}\n\nconst detailsRowStyles = {\n idCardDataCard: {\n extend: p,\n display: 'flex',\n padding: [[11, 8]],\n '& > div': {\n display: 'flex',\n flexDirection: 'column',\n '& > div': {\n width: 144,\n height: 37,\n marginBottom: 15,\n '&:last-child': {\n marginBottom: 0\n }\n }\n }\n }\n}\n\nconst labelStyles = {\n label: {\n extend: label1,\n color: offColor,\n marginBottom: 4\n }\n}\n\nconst mainStyles = {\n titleWrapper,\n titleAndButtonsContainer,\n buttonsWrapper,\n headerLabels: {\n display: 'flex',\n flexDirection: 'row',\n '& div': {\n display: 'flex',\n alignItems: 'center'\n },\n '& > div:first-child': {\n marginRight: 24\n },\n '& span': {\n extend: label1,\n marginLeft: 6\n }\n },\n overflowTd: {\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis'\n }\n}\n\nexport { cpcStyles, detailsRowStyles, labelStyles, mainStyles }\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport * as R from 'ramda'\nimport React, { useState, useEffect } from 'react'\nimport { CopyToClipboard as ReactCopyToClipboard } from 'react-copy-to-clipboard'\n\nimport Popover from 'src/components/Popper'\nimport { ReactComponent as CopyIcon } from 'src/styling/icons/action/copy/copy.svg'\nimport { comet } from 'src/styling/variables'\n\nimport { cpcStyles } from './Transactions.styles'\n\nconst useStyles = makeStyles(cpcStyles)\n\nconst CopyToClipboard = ({\n className,\n buttonClassname,\n children,\n ...props\n}) => {\n const [anchorEl, setAnchorEl] = useState(null)\n\n useEffect(() => {\n if (anchorEl) setTimeout(() => setAnchorEl(null), 3000)\n }, [anchorEl])\n\n const classes = useStyles()\n\n const handleClick = event => {\n setAnchorEl(anchorEl ? null : event.currentTarget)\n }\n\n const handleClose = () => {\n setAnchorEl(null)\n }\n\n const open = Boolean(anchorEl)\n const id = open ? 'simple-popper' : undefined\n\n return (\n
\n {children && (\n <>\n
\n {children}\n
\n
\n \n handleClick(event)}>\n \n \n \n
\n \n
\n
Copied to clipboard!
\n
\n \n \n )}\n
\n )\n}\n\nexport default CopyToClipboard\n","import { makeStyles, Box } from '@material-ui/core'\nimport BigNumber from 'bignumber.js'\nimport moment from 'moment'\nimport * as R from 'ramda'\nimport React from 'react'\n\nimport DataTable from 'src/components/tables/DataTable'\nimport { H3, H4, Label1, Label2, P } from 'src/components/typography'\nimport { ReactComponent as TxInIcon } from 'src/styling/icons/direction/cash-in.svg'\nimport { ReactComponent as TxOutIcon } from 'src/styling/icons/direction/cash-out.svg'\nimport { toUnit } from 'src/utils/coin'\nimport { ifNotNull } from 'src/utils/nullCheck'\n\nimport CopyToClipboard from '../../Transactions/CopyToClipboard'\nimport mainStyles from '../CustomersList.styles'\n\nconst useStyles = makeStyles(mainStyles)\n\nconst TransactionsList = ({ customer, data, loading }) => {\n const classes = useStyles()\n const LastTxIcon = customer.lastTxClass === 'cashOut' ? TxOutIcon : TxInIcon\n const hasData = !(R.isEmpty(data) || R.isNil(data))\n\n const summaryElements = [\n {\n header: 'Transactions',\n size: 127,\n value: ifNotNull(\n customer.totalTxs,\n `${Number.parseInt(customer.totalTxs)}`\n )\n },\n {\n header: 'Transaction volume',\n size: 167,\n value: ifNotNull(\n customer.totalSpent,\n `${Number.parseFloat(customer.totalSpent)} ${customer.lastTxFiatCode}`\n )\n },\n {\n header: 'Last active',\n size: 142,\n value: ifNotNull(\n customer.lastActive,\n moment.utc(customer.lastActive).format('YYYY-MM-D')\n )\n },\n {\n header: 'Last transaction',\n size: 198,\n value: ifNotNull(\n customer.lastTxFiat,\n <>\n \n {`${Number.parseFloat(customer.lastTxFiat)} \n ${customer.lastTxFiatCode}`}\n \n )\n }\n ]\n\n const tableElements = [\n {\n header: 'Direction',\n width: 207,\n view: it => (\n <>\n {it.txClass === 'cashOut' ? (\n \n ) : (\n \n )}\n {it.txClass === 'cashOut' ? 'Cach-out' : 'Cash-in'}\n \n )\n },\n {\n header: 'Transaction ID',\n width: 414,\n view: it => (\n {it.id}\n )\n },\n {\n header: 'Cash',\n width: 146,\n textAlign: 'right',\n view: it => (\n <>\n {`${Number.parseFloat(it.fiat)} `}\n {it.fiatCode}\n \n )\n },\n {\n header: 'Crypto',\n width: 142,\n textAlign: 'right',\n view: it => (\n <>\n {`${toUnit(new BigNumber(it.cryptoAtoms), it.cryptoCode).toFormat(\n 5\n )} `}\n {it.cryptoCode}\n \n )\n },\n {\n header: 'Date',\n width: 157,\n view: it => moment.utc(it.created).format('YYYY-MM-D')\n },\n {\n header: 'Time (h:m:s)',\n width: 134,\n view: it => moment.utc(it.created).format('hh:mm:ss')\n }\n ]\n\n return (\n <>\n

Transactions

\n \n \n {summaryElements.map(({ size, header }, idx) => (\n \n {header}\n \n ))}\n \n \n {summaryElements.map(({ size, value }, idx) => (\n \n {value}\n

\n ))}\n
\n
\n
\n
\n

\n {loading\n ? 'Loading'\n : hasData\n ? 'All transactions from this customer'\n : 'No transactions so far'}\n

\n
\n
\n {hasData && }\n \n )\n}\n\nexport default TransactionsList\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles, Breadcrumbs, Box } from '@material-ui/core'\nimport NavigateNextIcon from '@material-ui/icons/NavigateNext'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { memo, useState } from 'react'\nimport { useHistory, useParams } from 'react-router-dom'\n\nimport { ActionButton } from 'src/components/buttons'\nimport { Label1, Label2 } from 'src/components/typography'\nimport {\n OVERRIDE_AUTHORIZED,\n OVERRIDE_REJECTED\n} from 'src/pages/Customers/components/propertyCard'\nimport { ReactComponent as AuthorizeReversedIcon } from 'src/styling/icons/button/authorize/white.svg'\nimport { ReactComponent as AuthorizeIcon } from 'src/styling/icons/button/authorize/zodiac.svg'\nimport { ReactComponent as BlockReversedIcon } from 'src/styling/icons/button/block/white.svg'\nimport { ReactComponent as BlockIcon } from 'src/styling/icons/button/block/zodiac.svg'\nimport { fromNamespace, namespaces } from 'src/utils/config'\n\nimport styles from './CustomerProfile.styles'\nimport {\n CustomerDetails,\n TransactionsList,\n ComplianceDetails\n} from './components'\nimport { getFormattedPhone, getName } from './helper'\n\nconst useStyles = makeStyles(styles)\n\nconst GET_CUSTOMER = gql`\n query customer($customerId: ID!) {\n config\n customer(customerId: $customerId) {\n id\n authorizedOverride\n frontCameraPath\n frontCameraOverride\n phone\n smsOverride\n idCardData\n idCardDataOverride\n idCardDataExpiration\n idCardPhotoPath\n idCardPhotoOverride\n usSsn\n usSsnOverride\n sanctions\n sanctionsAt\n sanctionsOverride\n totalTxs\n totalSpent\n lastActive\n lastTxFiat\n lastTxFiatCode\n lastTxClass\n transactions {\n txClass\n id\n fiat\n fiatCode\n cryptoAtoms\n cryptoCode\n created\n errorMessage: error\n error: errorCode\n }\n }\n }\n`\n\nconst SET_CUSTOMER = gql`\n mutation setCustomer($customerId: ID!, $customerInput: CustomerInput) {\n setCustomer(customerId: $customerId, customerInput: $customerInput) {\n id\n authorizedOverride\n frontCameraPath\n frontCameraOverride\n phone\n smsOverride\n idCardData\n idCardDataOverride\n idCardDataExpiration\n idCardPhotoPath\n idCardPhotoOverride\n usSsn\n usSsnOverride\n sanctions\n sanctionsAt\n sanctionsOverride\n totalTxs\n totalSpent\n lastActive\n lastTxFiat\n lastTxFiatCode\n lastTxClass\n }\n }\n`\n\nconst CustomerProfile = memo(() => {\n const classes = useStyles()\n const history = useHistory()\n const [showCompliance, setShowCompliance] = useState(false)\n const { id: customerId } = useParams()\n\n const { data: customerResponse, refetch: getCustomer, loading } = useQuery(\n GET_CUSTOMER,\n {\n variables: { customerId }\n }\n )\n\n const [setCustomer] = useMutation(SET_CUSTOMER, {\n onCompleted: () => getCustomer()\n })\n\n const updateCustomer = it =>\n setCustomer({\n variables: {\n customerId,\n customerInput: it\n }\n })\n\n const configData = R.path(['config'])(customerResponse) ?? []\n const locale = configData && fromNamespace(namespaces.LOCALE, configData)\n const customerData = R.path(['customer'])(customerResponse) ?? []\n const rawTransactions = R.path(['transactions'])(customerData) ?? []\n const sortedTransactions = R.sort(R.descend(R.prop('cryptoAtoms')))(\n rawTransactions\n )\n const name = getName(customerData)\n const blocked =\n R.path(['authorizedOverride'])(customerData) === OVERRIDE_REJECTED\n\n return (\n <>\n }\n aria-label=\"breadcrumb\">\n history.push('/compliance/customers')}>\n Customers\n \n \n {name.length\n ? name\n : getFormattedPhone(\n R.path(['phone'])(customerData),\n locale.country\n )}\n \n \n
\n \n setShowCompliance(!showCompliance)}\n />\n
\n Actions\n \n updateCustomer({\n authorizedOverride: blocked\n ? OVERRIDE_AUTHORIZED\n : OVERRIDE_REJECTED\n })\n }>\n {`${blocked ? 'Authorize' : 'Block'} customer`}\n \n
\n \n
\n {!showCompliance && (\n \n )}\n {showCompliance && (\n \n )}\n \n )\n})\n\nexport default CustomerProfile\n","import { makeStyles } from '@material-ui/core/styles'\nimport moment from 'moment'\nimport * as R from 'ramda'\nimport React from 'react'\n\nimport { MainStatus } from 'src/components/Status'\nimport TitleSection from 'src/components/layout/TitleSection'\nimport DataTable from 'src/components/tables/DataTable'\nimport { ReactComponent as TxInIcon } from 'src/styling/icons/direction/cash-in.svg'\nimport { ReactComponent as TxOutIcon } from 'src/styling/icons/direction/cash-out.svg'\nimport { ifNotNull } from 'src/utils/nullCheck'\n\nimport styles from './CustomersList.styles'\nimport { getAuthorizedStatus, getFormattedPhone, getName } from './helper'\n\nconst useStyles = makeStyles(styles)\n\nconst CustomersList = ({ data, locale, onClick, loading }) => {\n const classes = useStyles()\n\n const elements = [\n {\n header: 'Phone',\n width: 172,\n view: it => getFormattedPhone(it.phone, locale.country)\n },\n {\n header: 'Name',\n width: 241,\n view: getName\n },\n {\n header: 'Total TXs',\n width: 126,\n textAlign: 'right',\n view: it => `${Number.parseInt(it.totalTxs)}`\n },\n {\n header: 'Total spent',\n width: 152,\n textAlign: 'right',\n view: it =>\n `${Number.parseFloat(it.totalSpent)} ${it.lastTxFiatCode ?? ''}`\n },\n {\n header: 'Last active',\n width: 133,\n view: it =>\n ifNotNull(it.lastActive, moment.utc(it.lastActive).format('YYYY-MM-D'))\n },\n {\n header: 'Last transaction',\n width: 161,\n textAlign: 'right',\n view: it => {\n const hasLastTx = !R.isNil(it.lastTxFiatCode)\n const LastTxIcon = it.lastTxClass === 'cashOut' ? TxOutIcon : TxInIcon\n const lastIcon = \n return (\n <>\n {hasLastTx &&\n `${parseFloat(it.lastTxFiat)} ${it.lastTxFiatCode ?? ''}`}\n {hasLastTx && lastIcon}\n \n )\n }\n },\n {\n header: 'Status',\n width: 188,\n view: it => \n }\n ]\n\n return (\n <>\n },\n { label: 'Cash-out', icon: }\n ]}\n />\n \n \n )\n}\n\nexport default CustomersList\n","import { useQuery } from '@apollo/react-hooks'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React from 'react'\nimport { useHistory } from 'react-router-dom'\n\nimport { fromNamespace, namespaces } from 'src/utils/config'\n\nimport CustomersList from './CustomersList'\n\nconst GET_CUSTOMERS = gql`\n {\n config\n customers {\n id\n idCardData\n phone\n totalTxs\n totalSpent\n lastActive\n lastTxFiat\n lastTxFiatCode\n lastTxClass\n authorizedOverride\n daysSuspended\n }\n }\n`\n\nconst Customers = () => {\n const history = useHistory()\n const { data: customersResponse, loading } = useQuery(GET_CUSTOMERS)\n\n const handleCustomerClicked = customer =>\n history.push(`/compliance/customer/${customer.id}`)\n\n const configData = R.path(['config'])(customersResponse) ?? []\n const locale = configData && fromNamespace(namespaces.LOCALE, configData)\n const customersData = R.sortWith([R.descend(R.prop('lastActive'))])(\n R.path(['customers'])(customersResponse) ?? []\n )\n\n return (\n \n )\n}\n\nexport default Customers\n","import { makeStyles } from '@material-ui/styles'\nimport classnames from 'classnames'\nimport React from 'react'\n\nimport { Label1 } from './typography'\n\nconst useStyles = makeStyles({\n wrapper: {\n display: 'flex',\n alignItems: 'center'\n },\n colorIndicator: {\n borderRadius: 3,\n height: 12,\n width: 12,\n marginRight: 8\n }\n})\n\nconst TableLabel = ({ className, label, color, ...props }) => {\n const classes = useStyles()\n return (\n
\n {color && (\n \n )}\n {label}\n
\n )\n}\n\nexport default TableLabel\n","import typographyStyles from 'src/components/typography/styles'\nimport {\n disabledColor2,\n spacer,\n subheaderColor,\n errorColor,\n placeholderColor,\n comet\n} from 'src/styling/variables'\n\nconst { label1 } = typographyStyles\n\nexport default {\n wrapper: {\n display: 'flex',\n flex: 1,\n flexDirection: 'row',\n height: '100%'\n },\n main: {\n display: 'flex',\n flex: 1\n },\n firstSide: {\n margin: `0 ${spacer * 8}px 0 ${spacer * 6}px`\n },\n secondSide: {\n marginTop: -29\n },\n error: {\n color: errorColor\n },\n coinTotal: {\n margin: `${spacer * 1.5}px 0`\n },\n leftSpacer: {\n marginLeft: spacer\n },\n topSpacer: {\n marginTop: spacer * 5\n },\n addressWrapper: {\n display: 'flex',\n flexDirection: 'column',\n flex: 1,\n backgroundColor: subheaderColor\n },\n address: {\n width: 375,\n margin: `${spacer * 1.5}px ${spacer * 3}px`\n },\n itemWrapper: {\n textAlign: 'end'\n },\n item: {\n extend: label1,\n margin: 2\n },\n inactiveItem: {\n color: comet\n },\n firstItem: {\n fontWeight: 700,\n margin: 2\n },\n total: {\n marginTop: 'auto',\n textAlign: 'right',\n marginRight: 24\n },\n totalPending: {\n marginTop: 2\n },\n totalTitle: {\n color: placeholderColor,\n marginBottom: 2\n },\n table: {\n marginTop: spacer,\n marginLeft: spacer * 6\n },\n tableLabel: {\n justifyContent: 'end',\n marginTop: -38\n },\n pending: {\n backgroundColor: disabledColor2\n },\n copyToClipboard: {\n marginLeft: 'auto',\n paddingTop: 6,\n paddingLeft: 15,\n marginRight: -11\n }\n}\n","import { useQuery } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core/styles'\nimport BigNumber from 'bignumber.js'\nimport classnames from 'classnames'\nimport gql from 'graphql-tag'\nimport moment from 'moment'\nimport QRCode from 'qrcode.react'\nimport React, { useState } from 'react'\n\nimport TableLabel from 'src/components/TableLabel'\nimport Title from 'src/components/Title'\nimport { Tr, Td, THead, TBody, Table } from 'src/components/fake-table/Table'\nimport Sidebar from 'src/components/layout/Sidebar'\nimport {\n H3,\n Info1,\n Info2,\n Info3,\n Mono,\n Label1,\n Label3\n} from 'src/components/typography'\nimport CopyToClipboard from 'src/pages/Transactions/CopyToClipboard'\nimport { primaryColor } from 'src/styling/variables'\nimport { formatCryptoAddress } from 'src/utils/coin'\n\nimport styles from './Funding.styles'\n\nconst useStyles = makeStyles(styles)\nconst sizes = {\n big: 165,\n time: 140,\n date: 130\n}\n\nconst GET_FUNDING = gql`\n {\n funding {\n cryptoCode\n errorMsg\n fundingAddress\n fundingAddressUrl\n confirmedBalance\n pending\n fiatConfirmedBalance\n fiatPending\n fiatCode\n display\n unitScale\n }\n }\n`\n\nconst formatAddress = (cryptoCode = '', address = '') =>\n formatCryptoAddress(cryptoCode, address).replace(/(.{4})/g, '$1 ')\nconst sumReducer = (acc, value) => acc.plus(value)\nconst formatNumber = it => new BigNumber(it).toFormat(2)\n\nconst getConfirmedTotal = list => {\n return formatNumber(\n list\n .filter(it => !it.errorMsg)\n .map(it => new BigNumber(it.fiatConfirmedBalance))\n .reduce(sumReducer, new BigNumber(0))\n )\n}\n\nconst getPendingTotal = list => {\n return formatNumber(\n list\n .filter(it => !it.errorMsg)\n .map(it => new BigNumber(it.fiatPending))\n .reduce(sumReducer, new BigNumber(0))\n )\n}\n\nconst Funding = () => {\n const [selected, setSelected] = useState(null)\n const [viewHistory] = useState(false)\n const classes = useStyles()\n const fundingHistory = [\n {\n cryptoAmount: 2.0,\n balance: 10.23,\n fiatValue: 1000.0,\n date: new Date(),\n performedBy: null,\n pending: true\n },\n {\n cryptoAmount: 10.0,\n balance: 12.23,\n fiatValue: 12000.0,\n date: new Date(),\n performedBy: null\n },\n {\n cryptoAmount: 5.0,\n balance: 5.0,\n fiatValue: 50000.0,\n date: new Date(),\n performedBy: null\n }\n ]\n\n const isSelected = it => {\n return selected && selected.cryptoCode === it.cryptoCode\n }\n\n const { data: fundingResponse } = useQuery(GET_FUNDING)\n\n if (fundingResponse?.funding?.length && !selected) {\n setSelected(fundingResponse?.funding[0])\n }\n\n const itemRender = (it, active) => {\n const itemClass = {\n [classes.item]: true,\n [classes.inactiveItem]: !active\n }\n const wrapperClass = {\n [classes.itemWrapper]: true,\n [classes.error]: it.errorMsg\n }\n\n return (\n
\n
{it.display}
\n {!it.errorMsg && (\n <>\n
\n {it.fiatConfirmedBalance} {it.fiatCode}\n
\n
\n {it.confirmedBalance} {it.cryptoCode}\n
\n \n )}\n
\n )\n }\n\n const pendingTotal = getPendingTotal(fundingResponse?.funding || [])\n const signIfPositive = num => (num >= 0 ? '+' : '')\n\n return (\n <>\n
\n Funding\n {/* */}\n
\n
\n it.display}\n itemRender={itemRender}>\n {fundingResponse?.funding && fundingResponse?.funding?.length && (\n
\n \n Total Crypto Balance\n \n \n {getConfirmedTotal(fundingResponse.funding)}\n {fundingResponse.funding[0].fiatCode}\n \n \n ({signIfPositive(pendingTotal)} {pendingTotal} pending)\n \n
\n )}\n \n {selected && !viewHistory && selected.errorMsg && (\n
\n
\n {selected.errorMsg}\n
\n
\n )}\n {selected && !viewHistory && !selected.errorMsg && (\n
\n
\n

Balance ({selected.display})

\n
\n \n {`${selected.confirmedBalance} ${selected.cryptoCode}`}\n \n \n {`(${signIfPositive(selected.pending)} ${\n selected.pending\n } pending)`}\n \n
\n\n
\n \n {`= ${formatNumber(selected.fiatConfirmedBalance)} ${\n selected.fiatCode\n }`}\n \n \n {`(${signIfPositive(selected.fiatPending)} ${formatNumber(\n selected.fiatPending\n )} pending)`}\n \n
\n\n

Address

\n
\n \n \n \n {formatAddress(\n selected.cryptoCode,\n selected.fundingAddress\n )}\n \n \n \n
\n
\n\n
\n Scan to send {selected.display}\n \n
\n
\n )}\n {selected && viewHistory && (\n
\n \n \n \n \n \n \n \n \n \n \n \n {fundingHistory.map((it, idx) => (\n \n \n \n \n \n \n \n \n ))}\n \n
\n Amount Entered\n \n Balance After\n \n Cash Value\n \n Date\n \n Time (h:m:s)\n \n Performed By\n
\n {it.cryptoAmount} {selected.cryptoCode}\n \n {it.balance} {selected.cryptoCode}\n \n {it.fiatValue} {selected.fiatCode}\n \n {moment(it.date).format('YYYY-MM-DD')}\n \n {moment(it.date).format('hh:mm:ss')}\n add
\n
\n )}\n
\n \n )\n}\n\nexport default Funding\n","import * as Yup from 'yup'\n\nimport {\n TextInput,\n SecretInput,\n Autocomplete\n} from 'src/components/inputs/formik'\n\nconst isDefined = it => it && it.length\n\nexport default {\n code: 'bitgo',\n name: 'BitGo',\n title: 'BitGo (Wallet)',\n elements: [\n {\n code: 'token',\n display: 'API Token',\n component: TextInput,\n face: true,\n long: true\n },\n {\n code: 'environment',\n display: 'Environment',\n component: Autocomplete,\n inputProps: {\n options: ['prod', 'test']\n },\n face: true\n },\n {\n code: 'BTCWalletId',\n display: 'BTC Wallet ID',\n component: TextInput\n },\n {\n code: 'BTCWalletPassphrase',\n display: 'BTC Wallet Passphrase',\n component: SecretInput\n },\n {\n code: 'LTCWalletId',\n display: 'LTC Wallet ID',\n component: TextInput\n },\n {\n code: 'LTCWalletPassphrase',\n display: 'LTC Wallet Passphrase',\n component: SecretInput\n },\n {\n code: 'ZECWalletId',\n display: 'ZEC Wallet ID',\n component: TextInput\n },\n {\n code: 'ZECWalletPassphrase',\n display: 'ZEC Wallet Passphrase',\n component: SecretInput\n },\n {\n code: 'BCHWalletId',\n display: 'BCH Wallet ID',\n component: TextInput\n },\n {\n code: 'BCHWalletPassphrase',\n display: 'BCH Wallet Passphrase',\n component: SecretInput\n },\n {\n code: 'DASHWalletId',\n display: 'DASH Wallet ID',\n component: TextInput\n },\n {\n code: 'DASHWalletPassphrase',\n display: 'DASH Wallet Passphrase',\n component: SecretInput\n }\n ],\n validationSchema: Yup.object().shape({\n token: Yup.string()\n .max(100, 'Too long')\n .required(),\n BTCWalletId: Yup.string().max(100, 'Too long'),\n BTCWalletPassphrase: Yup.string()\n .max(100, 'Too long')\n .when('BTCWalletId', {\n is: isDefined,\n then: Yup.string().required()\n }),\n LTCWalletId: Yup.string().max(100, 'Too long'),\n LTCWalletPassphrase: Yup.string()\n .max(100, 'Too long')\n .when('LTCWalletId', {\n is: isDefined,\n then: Yup.string().required()\n }),\n ZECWalletId: Yup.string().max(100, 'Too long'),\n ZECWalletPassphrase: Yup.string()\n .max(100, 'Too long')\n .when('ZECWalletId', {\n is: isDefined,\n then: Yup.string().required()\n }),\n BCHWalletId: Yup.string().max(100, 'Too long'),\n BCHWalletPassphrase: Yup.string()\n .max(100, 'Too long')\n .when('BCHWalletId', {\n is: isDefined,\n then: Yup.string().required()\n }),\n DASHWalletId: Yup.string().max(100, 'Too long'),\n DASHWalletPassphrase: Yup.string()\n .max(100, 'Too long')\n .when('DASHWalletId', {\n is: isDefined,\n then: Yup.string().required()\n }),\n environment: Yup.string()\n .matches(/(prod|test)/)\n .required()\n })\n}\n","import * as Yup from 'yup'\n\nimport SecretInputFormik from 'src/components/inputs/formik/SecretInput'\nimport TextInputFormik from 'src/components/inputs/formik/TextInput'\n\nexport default {\n code: 'bitstamp',\n name: 'Bitstamp',\n title: 'Bitstamp (Exchange)',\n elements: [\n {\n code: 'clientId',\n display: 'Client ID',\n component: TextInputFormik,\n face: true,\n long: true\n },\n {\n code: 'key',\n display: 'API Key',\n component: TextInputFormik,\n face: true,\n long: true\n },\n {\n code: 'secret',\n display: 'API Secret',\n component: SecretInputFormik\n }\n ],\n\n validationSchema: Yup.object().shape({\n clientId: Yup.string()\n .max(100, 'Too long')\n .required(),\n key: Yup.string()\n .max(100, 'Too long')\n .required(),\n secret: Yup.string()\n .max(100, 'Too long')\n .required()\n })\n}\n","import * as Yup from 'yup'\n\nimport TextInputFormik from 'src/components/inputs/formik/TextInput'\n\nexport default {\n code: 'blockcypher',\n name: 'Blockcypher',\n title: 'Blockcypher (Payments)',\n elements: [\n {\n code: 'token',\n display: 'API Token',\n component: TextInputFormik,\n face: true,\n long: true\n },\n {\n code: 'confidenceFactor',\n display: 'Confidence Factor',\n component: TextInputFormik,\n face: true\n }\n ],\n\n validationSchema: Yup.object().shape({\n token: Yup.string()\n .max(100, 'Too long')\n .required(),\n confidenceFactor: Yup.number()\n .integer('Please input a positive integer')\n .positive('Please input a positive integer')\n .required()\n })\n}\n","import * as Yup from 'yup'\n\nimport SecretInputFormik from 'src/components/inputs/formik/SecretInput'\nimport TextInputFormik from 'src/components/inputs/formik/TextInput'\n\nexport default {\n code: 'infura',\n name: 'Infura',\n title: 'Infura (Wallet)',\n elements: [\n {\n code: 'apiKey',\n display: 'Project ID',\n component: TextInputFormik,\n face: true,\n long: true\n },\n {\n code: 'apiSecret',\n display: 'Project Secret',\n component: SecretInputFormik\n },\n {\n code: 'endpoint',\n display: 'Endpoint',\n component: TextInputFormik,\n face: true\n }\n ],\n validationSchema: Yup.object().shape({\n apiKey: Yup.string()\n .max(100, 'Too long')\n .required(),\n apiSecret: Yup.string()\n .max(100, 'Too long')\n .required(),\n endpoint: Yup.string()\n .max(100, 'Too long')\n .required()\n })\n}\n","import * as Yup from 'yup'\n\nimport SecretInputFormik from 'src/components/inputs/formik/SecretInput'\nimport TextInputFormik from 'src/components/inputs/formik/TextInput'\n\nexport default {\n code: 'itbit',\n name: 'itBit',\n title: 'itBit (Exchange)',\n elements: [\n {\n code: 'userId',\n display: 'User ID',\n component: TextInputFormik,\n face: true,\n long: true\n },\n {\n code: 'walletId',\n display: 'Wallet ID',\n component: TextInputFormik,\n face: true,\n long: true\n },\n {\n code: 'clientKey',\n display: 'Client Key',\n component: TextInputFormik\n },\n {\n code: 'clientSecret',\n display: 'Client Secret',\n component: SecretInputFormik\n }\n ],\n validationSchema: Yup.object().shape({\n userId: Yup.string()\n .max(100, 'Too long')\n .required(),\n walletId: Yup.string()\n .max(100, 'Too long')\n .required(),\n clientKey: Yup.string()\n .max(100, 'Too long')\n .required(),\n clientSecret: Yup.string()\n .max(100, 'Too long')\n .required()\n })\n}\n","import * as Yup from 'yup'\n\nimport SecretInputFormik from 'src/components/inputs/formik/SecretInput'\nimport TextInputFormik from 'src/components/inputs/formik/TextInput'\n\nexport default {\n code: 'kraken',\n name: 'Kraken',\n title: 'Kraken (Exchange)',\n elements: [\n {\n code: 'apiKey',\n display: 'API Key',\n component: TextInputFormik,\n face: true,\n long: true\n },\n {\n code: 'privateKey',\n display: 'Private Key',\n component: SecretInputFormik\n }\n ],\n validationSchema: Yup.object().shape({\n apiKey: Yup.string()\n .max(100, 'Too long')\n .required(),\n privateKey: Yup.string()\n .max(100, 'Too long')\n .required()\n })\n}\n","import * as Yup from 'yup'\n\nimport TextInputFormik from 'src/components/inputs/formik/TextInput'\n\nexport default {\n code: 'mailgun',\n name: 'Mailgun',\n title: 'Mailgun (Email)',\n elements: [\n {\n code: 'apiKey',\n display: 'API Key',\n component: TextInputFormik\n },\n {\n code: 'domain',\n display: 'Domain',\n component: TextInputFormik\n },\n {\n code: 'fromEmail',\n display: 'From Email',\n component: TextInputFormik,\n face: true\n },\n {\n code: 'toEmail',\n display: 'To Email',\n component: TextInputFormik,\n face: true\n }\n ],\n validationSchema: Yup.object().shape({\n apiKey: Yup.string()\n .max(100, 'Too long')\n .required(),\n domain: Yup.string()\n .max(100, 'Too long')\n .required(),\n fromEmail: Yup.string()\n .max(100, 'Too long')\n .email('Please input a valid email address')\n .required(),\n toEmail: Yup.string()\n .max(100, 'Too long')\n .email('Please input a valid email address')\n .required()\n })\n}\n","import * as Yup from 'yup'\n\nimport SecretInputFormik from 'src/components/inputs/formik/SecretInput'\nimport TextInputFormik from 'src/components/inputs/formik/TextInput'\n\nexport default {\n code: 'twilio',\n name: 'Twilio',\n title: 'Twilio (SMS)',\n elements: [\n {\n code: 'accountSid',\n display: 'Account SID',\n component: TextInputFormik\n },\n {\n code: 'authToken',\n display: 'Auth Token',\n component: SecretInputFormik\n },\n {\n code: 'fromNumber',\n display: 'Twilio Number (international format)',\n component: TextInputFormik,\n face: true\n },\n {\n code: 'toNumber',\n display: 'Notifications Number (international format)',\n component: TextInputFormik,\n face: true\n }\n ],\n validationSchema: Yup.object().shape({\n accountSid: Yup.string()\n .max(100, 'Too long')\n .required(),\n authToken: Yup.string()\n .max(100, 'Too long')\n .required(),\n fromNumber: Yup.string()\n .max(100, 'Too long')\n .required(),\n toNumber: Yup.string()\n .max(100, 'Too long')\n .required()\n })\n}\n","import bitgo from './bitgo'\nimport bitstamp from './bitstamp'\nimport blockcypher from './blockcypher'\nimport infura from './infura'\nimport itbit from './itbit'\nimport kraken from './kraken'\nimport mailgun from './mailgun'\nimport twilio from './twilio'\n\nexport default {\n [bitgo.code]: bitgo,\n [bitstamp.code]: bitstamp,\n [blockcypher.code]: blockcypher,\n [infura.code]: infura,\n [itbit.code]: itbit,\n [kraken.code]: kraken,\n [mailgun.code]: mailgun,\n [twilio.code]: twilio\n}\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 52,\n cy: 32,\n r: 32,\n fill: \"#F7931A\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"m66.1 27.4c0.6-4.3-2.6-6.5-7-8.1l1.4-5.8-3.5-0.9-1.4 5.6c-0.9-0.2-1.9-0.4-2.8-0.7l1.4-5.7-3.5-0.9-1.4 5.8c-0.8-0.2-1.5-0.3-2.2-0.5l0 0-4.8-1.2-0.9 3.8s2.6 0.6 2.6 0.6c1.4 0.4 1.7 1.3 1.6 2l-1.6 6.6c0.1 0 0.2 0.1 0.4 0.1-0.1 0-0.2-0.1-0.4-0.1l-2.3 9.2c-0.2 0.4-0.6 1.1-1.6 0.8 0 0.1-2.6-0.6-2.6-0.6l-1.7 4 4.6 1.1c0.9 0.2 1.7 0.4 2.5 0.6l-1.5 5.8 3.5 0.9 1.4-5.8c1 0.3 1.9 0.5 2.8 0.7l-1.4 5.7 3.5 0.9 1.5-5.8c6 1.1 10.5 0.7 12.4-4.7 1.5-4.4-0.1-6.9-3.2-8.5 2.3-0.5 4-2 4.5-5.2zm-8 11.2c-1.1 4.4-8.4 2-10.8 1.4l1.9-7.7c2.4 0.6 10 1.8 8.9 6.3zm1.1-11.3c-1 4-7.1 2-9.1 1.5l1.7-7c2 0.5 8.4 1.4 7.3 5.6z\",\n fill: \"#FFF\"\n});\n\nfunction SvgIconBitcoinColour(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 104,\n height: 64,\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgIconBitcoinColour);\nexport default __webpack_public_path__ + \"static/media/icon-bitcoin-colour.bd8da481.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#F7931A\",\n d: \"m0,0l29.7,0a39,39,0,0,0,0,64l-29.7,0zm52,0a32,32,0,0,0,0,64a32,32,0,0,0,0,-64m52,0l-29.7,0a39,39,0,0,1,0,64l29.7,0z\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n transform: \"rotate(-28 52 32)\",\n d: \"m66.103,27.444c0.637-4.258-2.605-6.547-7.038-8.074l1.438-5.768-3.511-0.875-1.4,5.616c-0.923-0.23-1.871-0.447-2.813-0.662l1.41-5.653-3.509-0.875-1.439,5.766c-0.764-0.174-1.514-0.346-2.242-0.527l0.004-0.018-4.842-1.209-0.934,3.75s2.605,0.597,2.55,0.634c1.422,0.355,1.679,1.296,1.636,2.042l-1.638,6.571c0.098,0.025,0.225,0.061,0.365,0.117-0.117-0.029-0.242-0.061-0.371-0.092l-2.296,9.205c-0.174,0.432-0.615,1.08-1.609,0.834,0.035,0.051-2.552-0.637-2.552-0.637l-1.743,4.019,4.569,1.139c0.85,0.213,1.683,0.436,2.503,0.646l-1.453,5.834,3.507,0.875,1.439-5.772c0.958,0.26,1.888,0.5,2.798,0.726l-1.434,5.745,3.511,0.875,1.453-5.823c5.987,1.133,10.489,0.676,12.384-4.739,1.527-4.36-0.076-6.875-3.226-8.515,2.294-0.529,4.022-2.038,4.483-5.155zm-8.022,11.249c-1.085,4.36-8.426,2.003-10.806,1.412l1.928-7.729c2.38,0.594,10.012,1.77,8.878,6.317zm1.086-11.312c-0.99,3.966-7.1,1.951-9.082,1.457l1.748-7.01c1.982,0.494,8.365,1.416,7.334,5.553z\"\n});\n\nfunction SvgIconBitcoincashColour(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 104,\n height: 64,\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgIconBitcoincashColour);\nexport default __webpack_public_path__ + \"static/media/icon-bitcoincash-colour.3b27f3ed.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 1000,\n cy: 1000,\n r: 1000,\n fill: \"#2573c2\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#fff\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1652.6 736.8a143.65 143.65 0 0 0-19.2-63.6c-10-20-27.8-35.6-48.6-43.6a143.51 143.51 0 0 0-68.4-15H628.8l-63.6 190.6h804.2l-127 389.6h-804l-63.6 190.6h891.8a246.33 246.33 0 0 0 77.8-15c25-14.2 53.6-28.6 77.8-48.6a382.69 382.69 0 0 0 63.6-63.6 432.2 432.2 0 0 0 39.2-73.4l117.8-370.4a137.38 137.38 0 0 0 9.8-77.6z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M882.2 911.6H409l-63.6 176.2h478z\"\n}));\n\nfunction SvgIconDashColour(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 2000 2000\",\n width: 2500,\n height: 2500,\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgIconDashColour);\nexport default __webpack_public_path__ + \"static/media/icon-dash-colour.e01c021b.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"polygon\", {\n fill: \"#343434\",\n points: \"127.9611 0 125.1661 9.5 125.1661 285.168 127.9611 287.958 255.9231 212.32\"\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n fill: \"#8C8C8C\",\n points: \"127.962 0 0 212.32 127.962 287.959 127.962 154.158\"\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n fill: \"#3C3C3B\",\n points: \"127.9611 312.1866 126.3861 314.1066 126.3861 412.3056 127.9611 416.9066 255.9991 236.5866\"\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n fill: \"#8C8C8C\",\n points: \"127.962 416.9052 127.962 312.1852 0 236.5852\"\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n fill: \"#141414\",\n points: \"127.9611 287.9577 255.9211 212.3207 127.9611 154.1587\"\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n fill: \"#393939\",\n points: \"0.0009 212.3208 127.9609 287.9578 127.9609 154.1588\"\n}));\n\nfunction SvgIconEthereumColour(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"256px\",\n height: \"417px\",\n viewBox: \"0 0 256 417\",\n preserveAspectRatio: \"xMidYMid\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgIconEthereumColour);\nexport default __webpack_public_path__ + \"static/media/icon-ethereum-colour.761723a2.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"circle\", {\n fill: \"#989898\",\n cx: 52,\n cy: 32,\n r: 32\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"m46.92598,12.31703l-4.97801,18.8088l-3.42705,1.32711l-1.64691,6.17189l3.42705,-1.29514l-2.8461,10.76083l30.60893,0l2.09993,-7.98401l-18.42505,0l2.09993,-7.82412l3.3631,-1.26316l1.6469,-6.17188l-3.36309,1.29513l3.6509,-13.83611l-12.21053,0z\"\n});\n\nfunction SvgIconLitecoinColour(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 104,\n height: 64,\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgIconLitecoinColour);\nexport default __webpack_public_path__ + \"static/media/icon-litecoin-colour.bd861b5e.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"style\", {\n type: \"text/css\"\n}, \"\\n\\t.st0{fill:#231F20;}\\n\\t.st1{fill:#F4B728;}\\n\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st0\",\n d: \"M245.4,20C121.1,20,20,121.1,20,245.4s101.1,225.4,225.4,225.4s225.4-101.1,225.4-225.4S369.7,20,245.4,20z M245.4,433.6c-103.8,0-188.2-84.4-188.2-188.2S141.6,57.2,245.4,57.2s188.2,84.4,188.2,188.2S349.2,433.6,245.4,433.6z\"\n});\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"st1\",\n cx: 245.4,\n cy: 245.4,\n r: 177.6\n});\n\nvar _ref5 = /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"st0\",\n points: \"165,315.5 165,349.9 226.5,349.9 226.5,387.6 264.3,387.6 264.3,349.9 325.8,349.9 325.8,304.4 230.4,304.4 325.8,175 325.8,140.6 264.3,140.6 264.3,103 226.5,103 226.5,140.6 165,140.6 165,186.2 260.4,186.2 \"\n});\n\nfunction SvgIconZcashColour(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 493.3 490.2\",\n style: {\n enableBackground: \"new 0 0 493.3 490.2\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), _ref2, title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"headerArtboard 7\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref3, _ref4, _ref5);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgIconZcashColour);\nexport default __webpack_public_path__ + \"static/media/icon-zcash-colour.68b1c20b.svg\";\nexport { ForwardRef as ReactComponent };","import { makeStyles } from '@material-ui/core'\nimport React from 'react'\n\nimport { Button } from 'src/components/buttons'\nimport { H1, P } from 'src/components/typography'\nimport { ReactComponent as BitcoinLogo } from 'src/styling/logos/icon-bitcoin-colour.svg'\nimport { ReactComponent as BitcoinCashLogo } from 'src/styling/logos/icon-bitcoincash-colour.svg'\nimport { ReactComponent as DashLogo } from 'src/styling/logos/icon-dash-colour.svg'\nimport { ReactComponent as EthereumLogo } from 'src/styling/logos/icon-ethereum-colour.svg'\nimport { ReactComponent as LitecoinLogo } from 'src/styling/logos/icon-litecoin-colour.svg'\nimport { ReactComponent as ZCashLogo } from 'src/styling/logos/icon-zcash-colour.svg'\n\nconst styles = {\n logo: {\n maxHeight: 80,\n maxWidth: 200\n },\n title: {\n margin: [[24, 0, 32, 0]]\n },\n text: {\n margin: 0\n },\n button: {\n marginTop: 'auto',\n marginBottom: 58\n },\n modalContent: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n padding: [[0, 42]],\n flex: 1\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst getLogo = code => {\n switch (code) {\n case 'BTC':\n return BitcoinLogo\n case 'BCH':\n return BitcoinCashLogo\n case 'DASH':\n return DashLogo\n case 'ETH':\n return EthereumLogo\n case 'LTC':\n return LitecoinLogo\n case 'ZEC':\n return ZCashLogo\n default:\n return null\n }\n}\n\nconst WizardSplash = ({ code, name, onContinue }) => {\n const classes = useStyles()\n const Logo = getLogo(code)\n\n return (\n
\n \n

Enable {name}

\n

\n You are about to enable {name} on your system. This will allow you to\n use this cryptocurrency on your machines. To be able to do that, you’ll\n have to set up all the necessary 3rd party services.\n

\n \n
\n )\n}\n\nexport default WizardSplash\n","import { makeStyles, Grid } from '@material-ui/core'\nimport classnames from 'classnames'\nimport { Formik, Form, FastField } from 'formik'\nimport * as R from 'ramda'\nimport React from 'react'\n\nimport { Button } from 'src/components/buttons'\n\nconst styles = {\n button: {\n margin: [['auto', 0, 32, 'auto']]\n },\n form: {\n flex: 1,\n display: 'flex',\n flexDirection: 'column'\n },\n grid: {\n marginBottom: 24,\n marginTop: 12\n }\n}\n\nconst useStyles = makeStyles(styles)\nconst FormRenderer = ({\n validationSchema,\n elements,\n value,\n save,\n buttonLabel = 'Save changes',\n buttonClass,\n xs = 12\n}) => {\n const classes = useStyles()\n\n const initialValues = R.compose(\n R.mergeAll,\n R.map(({ code }) => ({ [code]: (value && value[code]) ?? '' }))\n )(elements)\n\n const values = R.merge(initialValues, value)\n\n return (\n \n
\n \n {elements.map(({ component, code, display, inputProps }) => (\n \n \n \n ))}\n \n \n {buttonLabel}\n \n \n \n )\n}\n\nexport default FormRenderer\n","import { errorColor } from 'src/styling/variables'\n\nconst LABEL_WIDTH = 150\n\nexport default {\n title: {\n margin: [[0, 0, 12, 0]]\n },\n subtitle: {\n margin: [[32, 0, 21, 0]]\n },\n error: {\n color: errorColor\n },\n button: {\n marginLeft: 'auto'\n },\n submit: {\n display: 'flex',\n flexDirection: 'row',\n margin: [['auto', 0, 24]]\n },\n radioGroup: {\n flexDirection: 'row'\n },\n radioLabel: {\n width: LABEL_WIDTH,\n height: 48\n },\n radio: {\n padding: 4,\n margin: 4\n },\n setupNew: {\n display: 'flex',\n alignItems: 'center',\n height: 48\n },\n picker: {\n width: LABEL_WIDTH\n }\n}\n","import { makeStyles } from '@material-ui/core'\nimport classnames from 'classnames'\nimport * as R from 'ramda'\nimport React, { useReducer, useEffect } from 'react'\n\nimport ErrorMessage from 'src/components/ErrorMessage'\nimport Stepper from 'src/components/Stepper'\nimport { Button } from 'src/components/buttons'\nimport { RadioGroup, Autocomplete } from 'src/components/inputs'\nimport { H4, Info2 } from 'src/components/typography'\nimport FormRenderer from 'src/pages/Services/FormRenderer'\nimport schema from 'src/pages/Services/schemas'\nimport { startCase } from 'src/utils/string'\n\nimport styles from './WizardStep.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst initialState = {\n form: null,\n selected: null,\n isNew: false,\n iError: false\n}\n\nconst reducer = (state, action) => {\n switch (action.type) {\n case 'select':\n return {\n form: null,\n selected: action.selected,\n isNew: null,\n iError: false\n }\n case 'new':\n return { form: state.form, selected: null, isNew: true, iError: false }\n case 'form':\n return {\n form: action.form,\n selected: action.form.code,\n isNew: true,\n iError: false\n }\n case 'error':\n return R.merge(state, { innerError: true })\n case 'reset':\n return initialState\n default:\n throw new Error()\n }\n}\n\nconst WizardStep = ({\n type,\n name,\n step,\n error,\n lastStep,\n onContinue,\n filled,\n unfilled,\n getValue\n}) => {\n const classes = useStyles()\n const [{ innerError, selected, form, isNew }, dispatch] = useReducer(\n reducer,\n initialState\n )\n\n useEffect(() => {\n dispatch({ type: 'reset' })\n }, [step])\n\n const innerContinue = (config, account) => {\n if (!config || !config[type]) {\n return dispatch({ type: 'error' })\n }\n onContinue(config, account)\n }\n\n const label = lastStep ? 'Finish' : 'Next'\n const displayName = name ?? type\n const subtitleClass = {\n [classes.subtitle]: true,\n [classes.error]: innerError\n }\n\n return (\n <>\n {startCase(type)}\n \n

\n Select a {displayName} or set up a new one\n

\n {\n dispatch({ type: 'select', selected: it })\n }}\n labelClassName={classes.radioLabel}\n radioClassName={classes.radio}\n />\n
\n {!R.isEmpty(unfilled) && !R.isNil(unfilled) && (\n {\n dispatch({ type: 'new' })\n }}\n labelClassName={classes.radioLabel}\n radioClassName={classes.radio}\n options={[{ display: 'Set up new', code: true }]}\n />\n )}\n {isNew && (\n {\n dispatch({ type: 'form', form: it })\n }}\n />\n )}\n
\n {form && (\n innerContinue({ [type]: form.code }, { [form.code]: it })}\n elements={schema[form.code].elements}\n validationSchema={schema[form.code].validationSchema}\n value={getValue(form.code)}\n buttonLabel={label}\n />\n )}\n {!form && (\n
\n {error && Failed to save}\n innerContinue({ [type]: selected })}>\n {label}\n \n
\n )}\n \n )\n}\n\nexport default WizardStep\n","import * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport Modal from 'src/components/Modal'\nimport schema from 'src/pages/Services/schemas'\nimport { toNamespace } from 'src/utils/config'\n\nimport WizardSplash from './WizardSplash'\nimport WizardStep from './WizardStep'\n\nconst LAST_STEP = 4\nconst MODAL_WIDTH = 554\n\nconst contains = crypto => R.compose(R.contains(crypto), R.prop('cryptos'))\nconst sameClass = type => R.propEq('class', type)\nconst filterConfig = (crypto, type) =>\n R.filter(it => sameClass(type)(it) && contains(crypto)(it))\n\nconst getItems = (accountsConfig, accounts, type, crypto) => {\n const fConfig = filterConfig(crypto, type)(accountsConfig)\n const find = code => accounts && accounts[code]\n\n const [filled, unfilled] = R.partition(({ code }) => {\n const account = find(code)\n if (!schema[code]) return true\n\n const { validationSchema } = schema[code]\n return validationSchema.isValidSync(account)\n })(fConfig)\n\n return { filled, unfilled }\n}\n\nconst Wizard = ({ coin, onClose, accountsConfig, accounts, save, error }) => {\n const [{ step, config, accountsToSave }, setState] = useState({\n step: 0,\n config: { active: true },\n accountsToSave: {}\n })\n\n const title = `Enable ${coin.display}`\n const isLastStep = step === LAST_STEP\n\n const tickers = { filled: filterConfig(coin.code, 'ticker')(accountsConfig) }\n const wallets = getItems(accountsConfig, accounts, 'wallet', coin.code)\n const exchanges = getItems(accountsConfig, accounts, 'exchange', coin.code)\n const zeroConfs = getItems(accountsConfig, accounts, 'zeroConf', coin.code)\n\n const getValue = code => R.find(R.propEq('code', code))(accounts)\n\n const onContinue = async (stepConfig, stepAccount) => {\n const newConfig = R.merge(config, stepConfig)\n const newAccounts = stepAccount\n ? R.merge(accountsToSave, stepAccount)\n : accountsToSave\n\n if (isLastStep) {\n return save(toNamespace(coin.code, newConfig), newAccounts)\n }\n\n setState({\n step: step + 1,\n config: newConfig,\n accountsToSave: newAccounts\n })\n }\n\n const getStepData = () => {\n switch (step) {\n case 1:\n return { type: 'ticker', ...tickers }\n case 2:\n return { type: 'wallet', ...wallets }\n case 3:\n return { type: 'exchange', ...exchanges }\n case 4:\n return { type: 'zeroConf', name: 'zero conf', ...zeroConfs }\n default:\n return null\n }\n }\n\n return (\n \n {step === 0 && (\n onContinue()}\n />\n )}\n {step !== 0 && (\n \n )}\n \n )\n}\n\nexport default Wizard\n","import * as R from 'ramda'\nimport * as Yup from 'yup'\n\nimport Autocomplete from 'src/components/inputs/formik/Autocomplete.js'\n\nconst filterClass = type => R.filter(it => it.class === type)\nconst filterCoins = ({ id }) => R.filter(it => R.contains(id)(it.cryptos))\n\nconst WalletSchema = Yup.object().shape({\n ticker: Yup.string().required(),\n wallet: Yup.string().required(),\n exchange: Yup.string().required(),\n zeroConf: Yup.string().required()\n})\n\nconst getElements = (cryptoCurrencies, accounts, onChange, wizard = false) => {\n const widthAdjust = wizard ? 11 : 0\n const viewCryptoCurrency = it =>\n R.compose(\n R.prop(['display']),\n R.find(R.propEq('code', it))\n )(cryptoCurrencies)\n\n const filterOptions = type => filterClass(type)(accounts || [])\n\n const getDisplayName = type => it =>\n R.compose(\n R.prop('display'),\n R.find(R.propEq('code', it))\n )(filterOptions(type))\n\n const getOptions = R.curry((option, it) =>\n filterCoins(it)(filterOptions(option))\n )\n\n return [\n {\n name: 'id',\n header: 'Cryptocurrency',\n width: 180 - widthAdjust,\n view: viewCryptoCurrency,\n size: 'sm',\n editable: false\n },\n {\n name: 'ticker',\n size: 'sm',\n stripe: true,\n view: getDisplayName('ticker'),\n width: 190 - widthAdjust,\n input: Autocomplete,\n inputProps: {\n options: getOptions('ticker'),\n valueProp: 'code',\n getLabel: R.path(['display']),\n optionsLimit: null\n }\n },\n {\n name: 'wallet',\n size: 'sm',\n stripe: true,\n view: getDisplayName('wallet'),\n width: 190 - widthAdjust,\n input: Autocomplete,\n inputProps: {\n options: getOptions('wallet'),\n valueProp: 'code',\n getLabel: R.path(['display']),\n optionsLimit: null,\n onChange\n }\n },\n {\n name: 'exchange',\n size: 'sm',\n stripe: true,\n view: getDisplayName('exchange'),\n width: 190 - widthAdjust,\n input: Autocomplete,\n inputProps: {\n options: getOptions('exchange'),\n valueProp: 'code',\n getLabel: R.path(['display']),\n optionsLimit: null,\n onChange\n }\n },\n {\n name: 'zeroConf',\n size: 'sm',\n stripe: true,\n view: getDisplayName('zeroConf'),\n input: Autocomplete,\n width: 190 - widthAdjust,\n inputProps: {\n options: getOptions('zeroConf'),\n valueProp: 'code',\n getLabel: R.path(['display']),\n optionsLimit: null,\n onChange\n }\n }\n ]\n}\n\nexport { WalletSchema, getElements, filterClass }\n","import * as R from 'ramda'\nimport * as Yup from 'yup'\n\nimport Autocomplete from 'src/components/inputs/formik/Autocomplete.js'\n\nconst getFields = (getData, names, onChange, auxElements = []) => {\n return R.filter(\n it => R.includes(it.name, names),\n allFields(getData, onChange, auxElements)\n )\n}\n\nconst allFields = (getData, onChange, auxElements = []) => {\n const getView = (data, code, compare) => it => {\n if (!data) return ''\n\n return R.compose(\n R.prop(code),\n R.find(R.propEq(compare ?? 'code', it))\n )(data)\n }\n\n const displayCodeArray = data => it => {\n if (!it) return it\n\n return R.compose(R.join(', '), R.map(getView(data, 'code')))(it)\n }\n\n const overridenMachines = R.map(override => override.machine, auxElements)\n\n const suggestionFilter = it =>\n R.differenceWith((x, y) => x.deviceId === y, it, overridenMachines)\n\n const machineData = getData(['machines'])\n const countryData = getData(['countries'])\n const currencyData = getData(['currencies'])\n const languageData = getData(['languages'])\n const cryptoData = getData(['cryptoCurrencies'])\n\n const findSuggestion = it => {\n const machine = R.find(R.propEq('deviceId', it.machine))(machineData)\n return machine ? [machine] : []\n }\n\n return [\n {\n name: 'machine',\n width: 200,\n size: 'sm',\n view: getView(machineData, 'name', 'deviceId'),\n input: Autocomplete,\n inputProps: {\n options: it =>\n R.concat(findSuggestion(it))(suggestionFilter(machineData)),\n valueProp: 'deviceId',\n getLabel: R.path(['name'])\n }\n },\n {\n name: 'country',\n width: 200,\n size: 'sm',\n view: getView(countryData, 'display'),\n input: Autocomplete,\n inputProps: {\n options: countryData,\n valueProp: 'code',\n getLabel: R.path(['display'])\n }\n },\n {\n name: 'fiatCurrency',\n width: 150,\n size: 'sm',\n view: getView(currencyData, 'code'),\n input: Autocomplete,\n inputProps: {\n options: currencyData,\n valueProp: 'code',\n getLabel: R.path(['code'])\n }\n },\n {\n name: 'languages',\n width: 240,\n size: 'sm',\n view: displayCodeArray(languageData),\n input: Autocomplete,\n inputProps: {\n options: languageData,\n valueProp: 'code',\n getLabel: R.path(['display']),\n multiple: true\n }\n },\n {\n name: 'cryptoCurrencies',\n width: 290,\n size: 'sm',\n view: displayCodeArray(cryptoData),\n input: Autocomplete,\n inputProps: {\n options: cryptoData,\n valueProp: 'code',\n getLabel: R.path(['code']),\n multiple: true,\n optionsLimit: null,\n onChange\n }\n }\n ]\n}\n\nconst mainFields = (auxData, configureCoin) => {\n const getData = R.path(R.__, auxData)\n\n return getFields(\n getData,\n ['country', 'fiatCurrency', 'languages', 'cryptoCurrencies'],\n configureCoin\n )\n}\n\nconst overrides = (auxData, auxElements, configureCoin) => {\n const getData = R.path(R.__, auxData)\n\n return getFields(\n getData,\n ['machine', 'country', 'languages', 'cryptoCurrencies'],\n configureCoin,\n auxElements\n )\n}\n\nconst LocaleSchema = Yup.object().shape({\n country: Yup.string()\n .label('Country')\n .required(),\n fiatCurrency: Yup.string()\n .label('Fiat Currency')\n .required(),\n languages: Yup.array()\n .label('Languages')\n .required()\n .max(4),\n cryptoCurrencies: Yup.array()\n .label('Crypto Currencies')\n .required()\n})\n\nconst OverridesSchema = Yup.object().shape({\n machine: Yup.string()\n .label('Machine')\n .required(),\n country: Yup.string()\n .label('Country')\n .required(),\n languages: Yup.array()\n .label('Languages')\n .required(),\n cryptoCurrencies: Yup.array()\n .label('Crypto Currencies')\n .required()\n})\n\nconst localeDefaults = {\n country: '',\n fiatCurrency: '',\n languages: [],\n cryptoCurrencies: []\n}\n\nconst overridesDefaults = {\n machine: '',\n country: '',\n languages: [],\n cryptoCurrencies: []\n}\n\nexport {\n mainFields,\n overrides,\n LocaleSchema,\n OverridesSchema,\n localeDefaults,\n overridesDefaults\n}\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core/styles'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport Modal from 'src/components/Modal'\nimport { Link } from 'src/components/buttons'\nimport { Table as EditableTable } from 'src/components/editableTable'\nimport Section from 'src/components/layout/Section'\nimport TitleSection from 'src/components/layout/TitleSection'\nimport { P } from 'src/components/typography'\nimport Wizard from 'src/pages/Wallet/Wizard'\nimport { WalletSchema } from 'src/pages/Wallet/helper'\nimport { fromNamespace, toNamespace, namespaces } from 'src/utils/config'\n\nimport { styles } from './Locales.styles'\nimport {\n mainFields,\n overrides,\n LocaleSchema,\n OverridesSchema,\n localeDefaults,\n overridesDefaults\n} from './helper'\n\nconst useStyles = makeStyles(styles)\n\nconst GET_DATA = gql`\n query getData {\n config\n accounts\n accountsConfig {\n code\n display\n class\n cryptos\n }\n currencies {\n code\n display\n }\n countries {\n code\n display\n }\n cryptoCurrencies {\n code\n display\n }\n languages {\n code\n display\n }\n machines {\n name\n deviceId\n }\n }\n`\n\nconst SAVE_CONFIG = gql`\n mutation Save($config: JSONObject) {\n saveConfig(config: $config)\n }\n`\n\nconst FiatCurrencyChangeAlert = ({ open, close, save }) => {\n const classes = useStyles()\n\n return (\n \n

\n Please note that all values you set that were based on your prior fiat\n currency are still the same. If you need to adjust these to reflect the\n new fiat currency (such as minimum transaction amounts, fixed fees, and\n compliance triggers, for example), please do so now.\n

\n

\n Also, if you have cash-out enabled, you must define new dispenser bill\n counts for the new currency for cash-out on the new currency to work.\n

\n
\n \n Cancel\n \n \n Save\n \n
\n \n )\n}\n\nconst Locales = ({ name: SCREEN_KEY }) => {\n const [wizard, setWizard] = useState(false)\n const [onChangeFunction, setOnChangeFunction] = useState(null)\n const [isEditingDefault, setEditingDefault] = useState(false)\n const [isEditingOverrides, setEditingOverrides] = useState(false)\n const { data } = useQuery(GET_DATA)\n const [saveConfig, { error }] = useMutation(SAVE_CONFIG, {\n onCompleted: () => setWizard(false),\n refetchQueries: () => ['getData']\n })\n\n const [dataToSave, setDataToSave] = useState(null)\n\n const config = data?.config && fromNamespace(SCREEN_KEY)(data.config)\n const wallets = data?.config && fromNamespace(namespaces.WALLETS)(data.config)\n\n const accountsConfig = data?.accountsConfig\n const accounts = data?.accounts ?? []\n const cryptoCurrencies = data?.cryptoCurrencies ?? []\n const locale = config && !R.isEmpty(config) ? config : localeDefaults\n const localeOverrides = locale.overrides ?? []\n\n const handleSave = it => {\n const newConfig = toNamespace(SCREEN_KEY)(it.locale[0])\n\n if (\n config.fiatCurrency &&\n newConfig.locale_fiatCurrency !== config.fiatCurrency\n )\n return setDataToSave(newConfig)\n\n return save(newConfig)\n }\n\n const save = config => {\n setDataToSave(null)\n return saveConfig({ variables: { config } })\n }\n\n const saveOverrides = it => {\n const config = toNamespace(SCREEN_KEY)(it)\n return saveConfig({ variables: { config } })\n }\n\n const onChangeCoin = (prev, curr, setValue) => {\n const coin = R.difference(curr, prev)[0]\n if (!coin) return setValue(curr)\n\n const namespaced = fromNamespace(coin)(wallets)\n if (!WalletSchema.isValidSync(namespaced)) {\n setOnChangeFunction(() => () => setValue(curr))\n setWizard(coin)\n return\n }\n\n setValue(curr)\n }\n\n const onEditingDefault = (it, editing) => setEditingDefault(editing)\n const onEditingOverrides = (it, editing) => setEditingOverrides(editing)\n\n const wizardSave = it =>\n save(toNamespace(namespaces.WALLETS)(it)).then(it => {\n onChangeFunction()\n setOnChangeFunction(null)\n return it\n })\n\n return (\n <>\n setDataToSave(null)}\n save={() => dataToSave && save(dataToSave)}\n />\n \n
\n \n
\n
\n m.deviceId) ?? [],\n localeOverrides?.map(o => o.machine) ?? []\n )}\n setEditing={onEditingOverrides}\n forceDisable={isEditingDefault}\n />\n
\n {wizard && (\n setWizard(false)}\n save={wizardSave}\n error={error?.message}\n cryptoCurrencies={cryptoCurrencies}\n userAccounts={data?.config?.accounts}\n accounts={accounts}\n accountsConfig={accountsConfig}\n />\n )}\n \n )\n}\n\nexport default Locales\n","const styles = {\n rightAligned: {\n marginTop: '20px',\n marginLeft: 'auto',\n marginBottom: '20px'\n },\n rightLink: {\n marginLeft: '20px'\n }\n}\n\nexport { styles }\n","import Locales from './Locales'\n\nexport default Locales\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Symbols\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"pop-up/action/download-logs/date-range-copy-3\",\n transform: \"translate(-117.000000, -116.000000)\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"arrow-download-logs\",\n transform: \"translate(128.500000, 124.500000) rotate(-90.000000) translate(-128.500000, -124.500000) translate(121.000000, 114.000000)\"\n}, /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Path-3\",\n points: \"0 13.3571429 7.14285714 20.5 14.2857143 13.3571429\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 7.14285714,\n y1: 0.142857143,\n x2: 7.14285714,\n y2: 20.1428571,\n id: \"Path-4\"\n}))));\n\nfunction SvgDownloadLogs(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"23px\",\n height: \"17px\",\n viewBox: \"0 0 23 17\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"arrow download logs\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgDownloadLogs);\nexport default __webpack_public_path__ + \"static/media/download_logs.219c88ac.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/download/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/sf-small/wizzard\",\n stroke: \"#FFFFFF\"\n}, /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Path-3\",\n points: \"3.6 5.4 6 7.8 8.4 5.4\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 6,\n y1: 0.5,\n x2: 6,\n y2: 7.4,\n id: \"Path-4\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0,10 L0,10 C0,10.9942 0.8058,11.8 1.8,11.8 L10.2,11.8 C11.1942,11.8 12,10.9942 12,10\",\n id: \"Stroke-1\"\n})));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.81edd31f.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/download/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/sf-small/wizzard\",\n stroke: \"#1B2559\"\n}, /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Path-3\",\n points: \"3.6 5.4 6 7.8 8.4 5.4\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 6,\n y1: 0.5,\n x2: 6,\n y2: 7.4,\n id: \"Path-4\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0,10 L0,10 C0,10.9942 0.8058,11.8 1.8,11.8 L10.2,11.8 C11.1942,11.8 12,10.9942 12,10\",\n id: \"Stroke-1\"\n})));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.13543418.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Symbols\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"pop-up/action/download-logs/date-range-copy-2\",\n transform: \"translate(-20.000000, -187.000000)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/sf-contain-b-copy-5\",\n transform: \"translate(30.000000, 197.000000) rotate(-270.000000) translate(-30.000000, -197.000000) translate(20.000000, 187.000000)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/sf-small/wizzard\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(6.666667, 6.000000)\",\n id: \"Group\"\n}, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Path-3\",\n stroke: \"#1B2559\",\n strokeWidth: 2,\n points: \"0 4.83333333 3.33333333 8.16666667 6.66666667 4.83333333\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 3.33333333,\n y1: 0.25,\n x2: 3.33333333,\n y2: 6.5,\n id: \"Path-4\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n})))))));\n\nfunction SvgMonthChange(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgMonthChange);\nexport default __webpack_public_path__ + \"static/media/month_change.58940268.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Symbols\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"pop-up/action/download-logs/date-range-copy-2\",\n transform: \"translate(-20.000000, -187.000000)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/sf-contain-b-copy-5\",\n transform: \"translate(30.000000, 197.000000) rotate(270.000000) translate(-30.000000, -197.000000) translate(20.000000, 187.000000)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/sf-small/wizzard\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(6.666667, 6.000000)\",\n id: \"Group\"\n}, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Path-3\",\n stroke: \"#1B2559\",\n strokeWidth: 2,\n points: \"0 4.83333333 3.33333333 8.16666667 6.66666667 4.83333333\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 3.33333333,\n y1: 0.25,\n x2: 3.33333333,\n y2: 6.5,\n id: \"Path-4\",\n stroke: \"#1B2559\",\n strokeWidth: 2\n})))))));\n\nfunction SvgMonthChangeRight(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"20px\",\n height: \"20px\",\n viewBox: \"0 0 20 20\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgMonthChangeRight);\nexport default __webpack_public_path__ + \"static/media/month_change_right.0c3eb9a1.svg\";\nexport { ForwardRef as ReactComponent };","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React from 'react'\n\nimport typographyStyles from 'src/components/typography/styles'\nimport {\n primaryColor,\n spring2,\n spring3,\n disabledColor\n} from 'src/styling/variables'\n\nconst { label1 } = typographyStyles\n\nconst styles = {\n wrapper: {\n height: 26,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'relative',\n overflow: 'hidden'\n },\n button: {\n outline: 'none',\n extend: label1,\n border: 'none',\n cursor: 'pointer',\n backgroundColor: 'transparent',\n color: primaryColor,\n zIndex: 2\n },\n lowerBound: {\n left: '50%'\n },\n upperBound: {\n right: '50%'\n },\n selected: {\n width: 26,\n height: 26,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: spring2,\n borderRadius: '50%',\n position: 'absolute',\n zIndex: 1\n },\n between: {\n position: 'absolute',\n width: '100%',\n height: '100%',\n zIndex: 0,\n backgroundColor: spring3\n },\n disabled: {\n color: disabledColor,\n cursor: 'default'\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst Tile = ({\n isLowerBound,\n isUpperBound,\n isBetween,\n isDisabled,\n children,\n ...props\n}) => {\n const classes = useStyles()\n const selected = isLowerBound || isUpperBound\n\n const rangeClasses = {\n [classes.between]: isBetween && !(isLowerBound && isUpperBound),\n [classes.lowerBound]: isLowerBound && !isUpperBound,\n [classes.upperBound]: isUpperBound && !isLowerBound\n }\n\n const buttonWrapperClasses = {\n [classes.wrapper]: true,\n [classes.selected]: selected\n }\n\n const buttonClasses = {\n [classes.button]: true,\n [classes.disabled]: isDisabled\n }\n\n return (\n
\n
\n
\n \n
\n
\n )\n}\n\nexport default Tile\n","import { makeStyles } from '@material-ui/core/styles'\nimport moment from 'moment'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport typographyStyles from 'src/components/typography/styles'\nimport { ReactComponent as Arrow } from 'src/styling/icons/arrow/month_change.svg'\nimport { ReactComponent as RightArrow } from 'src/styling/icons/arrow/month_change_right.svg'\nimport { primaryColor, zircon } from 'src/styling/variables'\n\nimport Tile from './Tile'\n\nconst { p, label2 } = typographyStyles\n\nconst styles = {\n wrapper: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center'\n },\n button: {\n outline: 'none'\n },\n navbar: {\n extend: p,\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n width: '100%',\n padding: [[15, 15]],\n color: primaryColor,\n '& button': {\n display: 'flex',\n alignItems: 'center',\n padding: 0,\n border: 'none',\n backgroundColor: zircon,\n cursor: 'pointer',\n borderRadius: '50%',\n width: 20,\n height: 20,\n position: 'relative',\n overflow: 'hidden',\n '& svg': {\n position: 'absolute',\n left: 0\n }\n }\n },\n table: {\n borderCollapse: 'collapse',\n width: '100%',\n color: primaryColor,\n '& tr': {\n '&:first-child': {\n paddingLeft: 5\n },\n '&:last-child': {\n paddingRight: 5\n }\n },\n '& th, & td': {\n margin: 0,\n padding: [[3, 0, 3, 0]]\n },\n '& th': {\n extend: label2\n }\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst Calendar = ({ minDate, maxDate, handleSelect, ...props }) => {\n const [currentDisplayedMonth, setCurrentDisplayedMonth] = useState(moment())\n\n const classes = useStyles()\n\n const weekdays = moment.weekdaysMin().map(day => day.slice(0, 1))\n const monthLength = month =>\n Number.parseInt(\n moment(month)\n .endOf('month')\n .format('D')\n )\n\n const monthdays = month => {\n const lastMonth = moment(month).subtract(1, 'month')\n const lastMonthRange = R.range(\n 0,\n moment(month)\n .startOf('month')\n .weekday()\n ).reverse()\n const lastMonthDays = R.map(i =>\n moment(lastMonth)\n .endOf('month')\n .subtract(i, 'days')\n )(lastMonthRange)\n\n const thisMonthRange = R.range(0, monthLength(month))\n const thisMonthDays = R.map(i =>\n moment(month)\n .startOf('month')\n .add(i, 'days')\n )(thisMonthRange)\n\n const nextMonth = moment(month).add(1, 'month')\n const nextMonthRange = R.range(\n 0,\n 42 - lastMonthDays.length - thisMonthDays.length\n )\n const nextMonthDays = R.map(i =>\n moment(nextMonth)\n .startOf('month')\n .add(i, 'days')\n )(nextMonthRange)\n\n return R.concat(R.concat(lastMonthDays, thisMonthDays), nextMonthDays)\n }\n\n const getRow = (month, row) => monthdays(month).slice(row * 7 - 7, row * 7)\n\n const handleNavPrev = currentMonth => {\n const prevMonth = moment(currentMonth).subtract(1, 'month')\n if (!minDate) setCurrentDisplayedMonth(prevMonth)\n else {\n setCurrentDisplayedMonth(\n prevMonth.isSameOrAfter(minDate, 'month')\n ? prevMonth\n : currentDisplayedMonth\n )\n }\n }\n const handleNavNext = currentMonth => {\n const nextMonth = moment(currentMonth).add(1, 'month')\n if (!maxDate) setCurrentDisplayedMonth(nextMonth)\n else {\n setCurrentDisplayedMonth(\n nextMonth.isSameOrBefore(maxDate, 'month')\n ? nextMonth\n : currentDisplayedMonth\n )\n }\n }\n\n return (\n
\n
\n handleNavPrev(currentDisplayedMonth)}>\n \n \n \n {`${currentDisplayedMonth.format(\n 'MMMM'\n )} ${currentDisplayedMonth.format('YYYY')}`}\n \n handleNavNext(currentDisplayedMonth)}>\n \n \n
\n \n \n \n {weekdays.map((day, key) => (\n \n ))}\n \n \n \n {R.range(1, 8).map((row, key) => (\n \n {getRow(currentDisplayedMonth, row).map((day, key) => (\n handleSelect(day, minDate, maxDate)}>\n \n {day.format('D')}\n \n \n ))}\n \n ))}\n \n
{day}
\n
\n )\n}\n\nexport default Calendar\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React, { useState, useEffect } from 'react'\n\nimport Calendar from './Calendar'\n\nconst styles = {\n wrapper: {\n backgroundColor: 'white',\n borderRadius: 10\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst DateRangePicker = ({ minDate, maxDate, className, onRangeChange }) => {\n const [from, setFrom] = useState(null)\n const [to, setTo] = useState(null)\n\n useEffect(() => {\n onRangeChange(from, to)\n }, [from, onRangeChange, to])\n\n const classes = useStyles()\n\n const handleSelect = (day, minDate, maxDate) => {\n if (\n (maxDate && day.isAfter(maxDate, 'day')) ||\n (minDate && day.isBefore(minDate, 'day'))\n )\n return\n\n if (from && !to && day.isBefore(from, 'day')) {\n setTo(from)\n setFrom(day)\n return\n }\n\n if (from && !to && day.isSameOrAfter(from, 'day')) {\n setTo(day)\n return\n }\n\n setFrom(day)\n setTo(null)\n }\n\n return (\n <>\n
\n \n
\n \n )\n}\n\nexport default DateRangePicker\n","import { useLazyQuery } from '@apollo/react-hooks'\nimport { makeStyles, ClickAwayListener } from '@material-ui/core'\nimport classnames from 'classnames'\nimport FileSaver from 'file-saver'\nimport moment from 'moment'\nimport * as R from 'ramda'\nimport React, { useState, useCallback } from 'react'\n\nimport { FeatureButton, Link } from 'src/components/buttons'\nimport { ReactComponent as Arrow } from 'src/styling/icons/arrow/download_logs.svg'\nimport { ReactComponent as DownloadInverseIcon } from 'src/styling/icons/button/download/white.svg'\nimport { ReactComponent as Download } from 'src/styling/icons/button/download/zodiac.svg'\nimport { primaryColor, offColor, zircon } from 'src/styling/variables'\n\nimport Popper from './Popper'\nimport DateRangePicker from './date-range-picker/DateRangePicker'\nimport { RadioGroup } from './inputs'\nimport typographyStyles from './typography/styles'\n\nconst { info1, label1, label2, h4 } = typographyStyles\n\nconst dateContainerStyles = {\n wrapper: {\n height: 46,\n width: 99\n },\n container: {\n display: 'flex'\n },\n monthWeekDayContainer: {\n display: 'flex',\n flexDirection: 'column'\n },\n label: {\n extend: label1,\n lineHeight: 1.33,\n color: primaryColor\n },\n bigNumber: {\n extend: info1,\n lineHeight: 1,\n marginRight: 7\n },\n monthYear: {\n extend: label2,\n lineHeight: 1.17,\n color: primaryColor\n },\n weekDay: {\n extend: label1,\n lineHeight: 1.33,\n color: offColor\n }\n}\n\nconst dateContainerUseStyles = makeStyles(dateContainerStyles)\n\nconst DateContainer = ({ date, children, ...props }) => {\n const classes = dateContainerUseStyles()\n\n return (\n
\n
{children}
\n {date && (\n <>\n
\n
{date.format('D')}
\n
\n {`${date.format(\n 'MMM'\n )} ${date.format('YYYY')}`}\n {date.format('dddd')}\n
\n
\n \n )}\n
\n )\n}\n\nconst styles = {\n popoverContent: {\n width: 280\n },\n popoverHeader: {\n extend: h4,\n padding: [[15, 15, 0, 15]]\n },\n radioButtonsContainer: {\n padding: [[5, 15, 5, 15]]\n },\n radioButtons: {\n display: 'flex',\n justifyContent: 'space-between',\n flexDirection: 'row',\n color: primaryColor\n },\n dateRangePickerShowing: {\n display: 'block',\n height: '100%'\n },\n dateRangePickerHidden: {\n display: 'none',\n height: 0\n },\n download: {\n padding: [[10, 15]]\n },\n dateContainerWrapper: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n position: 'relative',\n backgroundColor: zircon,\n padding: [[0, 15]],\n minHeight: 70\n },\n arrowContainer: {\n position: 'absolute',\n left: 125,\n top: 26\n },\n arrow: {\n margin: 'auto'\n }\n}\n\nconst useStyles = makeStyles(styles)\nconst ALL = 'all'\nconst RANGE = 'range'\n\nconst LogsDownloaderPopover = ({ name, query, args, title, getLogs }) => {\n const [selectedRadio, setSelectedRadio] = useState(ALL)\n const [range, setRange] = useState({ from: null, until: null })\n const [anchorEl, setAnchorEl] = useState(null)\n const [fetchLogs] = useLazyQuery(query, {\n onCompleted: data => createLogsFile(getLogs(data), range)\n })\n\n const classes = useStyles()\n\n const dateRangePickerClasses = {\n [classes.dateRangePickerShowing]: selectedRadio === RANGE,\n [classes.dateRangePickerHidden]: selectedRadio === ALL\n }\n\n const handleRadioButtons = evt => {\n const selectedRadio = R.path(['target', 'value'])(evt)\n setSelectedRadio(selectedRadio)\n if (selectedRadio === ALL) setRange({ from: null, until: null })\n }\n\n const handleRangeChange = useCallback(\n (from, until) => {\n setRange({ from, until })\n },\n [setRange]\n )\n\n const downloadLogs = (range, args, fetchLogs) => {\n if (selectedRadio === ALL) {\n fetchLogs({\n variables: {\n ...args\n }\n })\n }\n\n if (!range || !range.from) return\n if (range.from && !range.until) range.until = moment()\n\n if (selectedRadio === RANGE) {\n fetchLogs({\n variables: {\n ...args,\n from: range.from,\n until: range.until\n }\n })\n }\n }\n\n const createLogsFile = (logs, range) => {\n const formatDateFile = date => {\n return moment(date).format('YYYY-MM-DD_HH-mm')\n }\n\n const blob = new window.Blob([logs], {\n type: 'text/plain;charset=utf-8'\n })\n\n FileSaver.saveAs(\n blob,\n selectedRadio === ALL\n ? `${formatDateFile(new Date())}_${name}.csv`\n : `${formatDateFile(range.from)}_${formatDateFile(\n range.until\n )}_${name}.csv`\n )\n }\n\n const handleOpenRangePicker = event => {\n setAnchorEl(anchorEl ? null : event.currentTarget)\n }\n\n const handleClickAway = () => {\n setAnchorEl(null)\n }\n\n const radioButtonOptions = [\n { display: 'All logs', code: ALL },\n { display: 'Date range', code: RANGE }\n ]\n\n const open = Boolean(anchorEl)\n const id = open ? 'date-range-popover' : undefined\n\n return (\n \n
\n \n \n
\n
{title}
\n
\n \n
\n {selectedRadio === RANGE && (\n
\n
\n {range && (\n <>\n From\n
\n \n
\n To\n \n )}\n
\n \n
\n )}\n
\n downloadLogs(range, args, fetchLogs)}>\n Download\n \n
\n
\n
\n
\n
\n )\n}\n\nexport default LogsDownloaderPopover\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React, { memo } from 'react'\n\nconst useStyles = makeStyles({\n table: {\n // backgroundColor: tableHeaderColor,\n tableLayout: 'fixed',\n borderCollapse: 'separate',\n borderSpacing: '0 0'\n }\n})\n\nconst Table = memo(({ className, children, ...props }) => {\n const classes = useStyles()\n return (\n \n {children}\n
\n )\n})\n\nexport default Table\n","import React, { memo } from 'react'\n\nconst TableBody = memo(({ children, ...props }) => (\n {children}\n))\n\nexport default TableBody\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React, { memo } from 'react'\n\nimport { spacer } from 'src/styling/variables'\n\nconst useStyles = makeStyles({\n td: {\n padding: [[0, spacer * 3]]\n },\n alignRight: {\n textAlign: 'right'\n }\n})\n\nconst TableCell = memo(\n ({ colspan, rightAlign, className, children, ...props }) => {\n const classes = useStyles()\n const styles = {\n [classes.td]: true,\n [classes.alignRight]: rightAlign\n }\n\n return (\n \n {children}\n \n )\n }\n)\n\nexport default TableCell\n","import React, { memo } from 'react'\n\nconst TableHead = memo(({ children, ...props }) => (\n {children}\n))\n\nexport default TableHead\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React, { memo } from 'react'\n\nimport typographyStyles from 'src/components/typography/styles'\nimport {\n tableHeaderColor,\n tableHeaderHeight,\n spacer,\n white\n} from 'src/styling/variables'\n\nconst { tl2 } = typographyStyles\n\nconst useStyles = makeStyles({\n th: {\n extend: tl2,\n backgroundColor: tableHeaderColor,\n height: tableHeaderHeight,\n textAlign: 'left',\n color: white,\n padding: `0 ${spacer * 3}px`\n },\n alignRight: {\n textAlign: 'right'\n }\n})\n\nconst TableHeaderCell = memo(\n ({ rightAlign, children, className, ...props }) => {\n const classes = useStyles()\n const styles = {\n [classes.th]: true,\n [classes.alignRight]: rightAlign\n }\n\n return (\n \n {children}\n \n )\n }\n)\n\nexport default TableHeaderCell\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport React, { memo } from 'react'\n\nimport typographyStyles from 'src/components/typography/styles'\nimport {\n tableCellColor,\n tableCellHeight,\n tableSmCellHeight,\n tableLgCellHeight,\n tableErrorColor,\n tableSuccessColor\n} from 'src/styling/variables'\n\nconst { info2, p } = typographyStyles\n\nconst useStyles = makeStyles({\n tr: {\n extend: p,\n padding: 4,\n height: tableCellHeight,\n backgroundColor: tableCellColor\n },\n lg: {\n extend: info2,\n height: tableLgCellHeight\n },\n sm: {\n height: tableSmCellHeight\n },\n error: {\n backgroundColor: tableErrorColor\n },\n success: {\n backgroundColor: tableSuccessColor\n }\n})\n\nconst TableRow = memo(\n ({ className, children, header, error, success, size = 'sm', ...props }) => {\n const classes = useStyles()\n const classnamesObj = {\n [classes.tr]: !header,\n [classes.sm]: !header && size === 'sm',\n [classes.lg]: !header && size === 'lg',\n [classes.error]: error,\n [classes.success]: success\n }\n\n return (\n \n {children}\n \n )\n }\n)\n\nexport default TableRow\n","import { useQuery } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core/styles'\nimport gql from 'graphql-tag'\nimport moment from 'moment'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport LogsDowloaderPopover from 'src/components/LogsDownloaderPopper'\nimport Title from 'src/components/Title'\nimport Sidebar from 'src/components/layout/Sidebar'\nimport {\n Table,\n TableHead,\n TableRow,\n TableHeader,\n TableBody,\n TableCell\n} from 'src/components/table'\nimport { Info3 } from 'src/components/typography'\n\nimport styles from './Logs.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst GET_MACHINES = gql`\n {\n machines {\n name\n deviceId\n }\n }\n`\n\nconst NUM_LOG_RESULTS = 500\n\nconst GET_MACHINE_LOGS_CSV = gql`\n query MachineLogs($deviceId: ID!, $limit: Int, $from: Date, $until: Date) {\n machineLogsCsv(\n deviceId: $deviceId\n limit: $limit\n from: $from\n until: $until\n )\n }\n`\n\nconst GET_MACHINE_LOGS = gql`\n query MachineLogs($deviceId: ID!, $limit: Int, $from: Date, $until: Date) {\n machineLogs(\n deviceId: $deviceId\n limit: $limit\n from: $from\n until: $until\n ) {\n logLevel\n id\n timestamp\n message\n }\n }\n`\n\nconst formatDate = date => {\n return moment(date).format('YYYY-MM-DD HH:mm')\n}\n\nconst Logs = () => {\n const classes = useStyles()\n\n const [selected, setSelected] = useState(null)\n const [saveMessage, setSaveMessage] = useState(null)\n\n const deviceId = selected?.deviceId\n\n const { data: machineResponse } = useQuery(GET_MACHINES)\n\n const { data: logsResponse } = useQuery(GET_MACHINE_LOGS, {\n variables: { deviceId, limit: NUM_LOG_RESULTS },\n skip: !selected,\n onCompleted: () => setSaveMessage('')\n })\n\n if (machineResponse?.machines?.length && !selected) {\n setSelected(machineResponse?.machines[0])\n }\n\n const isSelected = it => {\n return R.path(['deviceId'])(selected) === it.deviceId\n }\n\n return (\n <>\n
\n
\n Machine Logs\n {logsResponse && (\n
\n R.path(['machineLogsCsv'])(logs)}\n />\n {saveMessage}\n
\n )}\n
\n
\n
\n it.name}\n data={machineResponse?.machines || []}\n isSelected={isSelected}\n onClick={setSelected}\n />\n
\n \n \n \n Date\n Level\n \n \n \n \n {logsResponse &&\n logsResponse.machineLogs.map((log, idx) => (\n \n {formatDate(log.timestamp)}\n {log.logLevel}\n {log.message}\n \n ))}\n \n
\n
\n
\n \n )\n}\n\nexport default Logs\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core'\nimport gql from 'graphql-tag'\nimport React from 'react'\nimport * as Yup from 'yup'\n\nimport { Table as EditableTable } from 'src/components/editableTable'\nimport { CashOut } from 'src/components/inputs/cashbox/Cashbox'\nimport { NumberInput } from 'src/components/inputs/formik'\nimport TitleSection from 'src/components/layout/TitleSection'\nimport { fromNamespace } from 'src/utils/config'\n\nimport styles from './CashCassettes.styles.js'\n\nconst useStyles = makeStyles(styles)\n\nconst ValidationSchema = Yup.object().shape({\n name: Yup.string().required(),\n cassette1: Yup.number()\n .label('Cassette 1 (top)')\n .required()\n .integer()\n .min(0)\n .max(500),\n cassette2: Yup.number()\n .label('Cassette 2 (bottom)')\n .required()\n .integer()\n .min(0)\n .max(500)\n})\n\nconst GET_MACHINES_AND_CONFIG = gql`\n query getData {\n machines {\n name\n id: deviceId\n cassette1\n cassette2\n }\n config\n }\n`\n\nconst RESET_CASHOUT_BILLS = gql`\n mutation MachineAction(\n $deviceId: ID!\n $action: MachineAction!\n $cassette1: Int!\n $cassette2: Int!\n ) {\n machineAction(\n deviceId: $deviceId\n action: $action\n cassette1: $cassette1\n cassette2: $cassette2\n ) {\n deviceId\n cassette1\n cassette2\n }\n }\n`\n\nconst CashCassettes = () => {\n const classes = useStyles()\n\n const { data } = useQuery(GET_MACHINES_AND_CONFIG)\n\n const [resetCashOut, { error }] = useMutation(RESET_CASHOUT_BILLS, {\n refetchQueries: () => ['getData']\n })\n\n const cashout = data?.config && fromNamespace('cashOut')(data.config)\n const locale = data?.config && fromNamespace('locale')(data.config)\n const fiatCurrency = locale?.fiatCurrency\n\n const onSave = (...[, { id, cassette1, cassette2 }]) => {\n return resetCashOut({\n variables: {\n action: 'resetCashOutBills',\n deviceId: id,\n cassette1,\n cassette2\n }\n })\n }\n\n const getCashoutSettings = id => fromNamespace(id)(cashout)\n const isCashOutDisabled = ({ id }) => !getCashoutSettings(id).active\n\n const elements = [\n {\n name: 'name',\n header: 'Machine',\n width: 254,\n view: name => <>{name},\n input: ({ field: { value: name } }) => <>{name}\n },\n {\n name: 'cassette1',\n header: 'Cassette 1 (Top)',\n width: 265,\n stripe: true,\n view: (value, { id }) => (\n \n ),\n input: NumberInput,\n inputProps: {\n decimalPlaces: 0\n }\n },\n {\n name: 'cassette2',\n header: 'Cassette 2 (Bottom)',\n width: 265,\n stripe: true,\n view: (value, { id }) => (\n \n ),\n input: NumberInput,\n inputProps: {\n decimalPlaces: 0\n }\n }\n ]\n\n return (\n <>\n \n\n \n \n )\n}\n\nexport default CashCassettes\n","export default {\n cashbox: {\n width: 80,\n height: 36\n }\n}\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 12,\n height: 12,\n rx: 3,\n ry: 3,\n fill: \"#ff7311\"\n});\n\nfunction SvgPumpkin(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 12,\n height: 12,\n viewBox: \"0 0 12 12\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgPumpkin);\nexport default __webpack_public_path__ + \"static/media/pumpkin.877c3432.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 12,\n height: 12,\n rx: 3,\n ry: 3,\n fill: \"#ff584a\"\n});\n\nfunction SvgTomato(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 12,\n height: 12,\n viewBox: \"0 0 12 12\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgTomato);\nexport default __webpack_public_path__ + \"static/media/tomato.b3903800.svg\";\nexport { ForwardRef as ReactComponent };","import {\n Dialog,\n DialogActions,\n DialogContent,\n makeStyles\n} from '@material-ui/core'\nimport React, { memo, useState } from 'react'\n\nimport { Button, IconButton } from 'src/components/buttons'\nimport { TextInput } from 'src/components/inputs'\nimport { H4, P } from 'src/components/typography'\nimport { ReactComponent as CloseIcon } from 'src/styling/icons/action/close/zodiac.svg'\nimport { spacer } from 'src/styling/variables'\n\nimport ErrorMessage from './ErrorMessage'\n\nconst useStyles = makeStyles({\n dialogContent: {\n width: 434,\n padding: spacer * 2,\n paddingRight: spacer * 3.5\n },\n dialogTitle: {\n padding: spacer * 2,\n paddingRight: spacer * 1.5,\n display: 'flex',\n 'justify-content': 'space-between',\n '& > h4': {\n margin: 0\n },\n '& > button': {\n padding: 0,\n marginTop: -(spacer / 2)\n }\n },\n dialogActions: {\n padding: spacer * 4,\n paddingTop: spacer * 2\n }\n})\n\nexport const DialogTitle = ({ children, onClose }) => {\n const classes = useStyles()\n return (\n
\n {children}\n {onClose && (\n \n \n \n )}\n
\n )\n}\n\nexport const ConfirmDialog = memo(\n ({\n title = 'Confirm action',\n errorMessage = 'This action requires confirmation',\n open,\n toBeConfirmed,\n saveButtonAlwaysEnabled = false,\n message,\n confirmationMessage = `Write '${toBeConfirmed}' to confirm this action`,\n onConfirmed,\n onDissmised,\n initialValue = '',\n ...props\n }) => {\n const classes = useStyles()\n const [value, setValue] = useState(initialValue)\n const [error, setError] = useState(false)\n const handleChange = event => setValue(event.target.value)\n\n const innerOnClose = () => {\n setValue('')\n setError(false)\n onDissmised()\n }\n\n const isOnErrorState =\n (!saveButtonAlwaysEnabled && toBeConfirmed !== value) || value === ''\n\n return (\n \n \n

{title}

\n
\n {errorMessage && (\n \n \n {errorMessage.split(':').map(error => (\n <>\n {error}\n
\n \n ))}\n
\n
\n )}\n \n {message &&

{message}

}\n setError(isOnErrorState)}\n />\n
\n \n onConfirmed(value)}>\n Confirm\n \n \n
\n )\n }\n)\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/edit/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0,10 L0,10 C0,10.9942 0.8058,11.8 1.8,11.8 L10.2,11.8 C11.1942,11.8 12,10.9942 12,10\",\n id: \"Stroke-1\",\n stroke: \"#FFFFFF\"\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Stroke-3\",\n stroke: \"#FFFFFF\",\n points: \"3 6.86666667 8.86666667 1 11 3.13333333 5.13333333 9 3 9\"\n}));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.958fe55d.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/edit/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0,10 L0,10 C0,10.9942 0.8058,11.8 1.8,11.8 L10.2,11.8 C11.1942,11.8 12,10.9942 12,10\",\n id: \"Stroke-1\",\n stroke: \"#1B2559\"\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Stroke-3\",\n stroke: \"#1B2559\",\n points: \"3 6.86666667 8.86666667 1 11 3.13333333 5.13333333 9 3 9\"\n}));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.1bc04c23.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/link/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-7\",\n stroke: \"#1B2559\",\n strokeWidth: 1.2\n}, /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-1\",\n points: \"12 6.66678 12 12.00018 0 12.00018 0 0.00018 5.3334 0.00018\"\n}), /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-3\",\n points: \"8.66658 0 12.00018 0 12.00018 3.3336\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 6,\n y1: 6,\n x2: 12,\n y2: 0,\n id: \"Stroke-5\"\n})));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.cdf82496.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/reboot/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-3\",\n stroke: \"#FFFFFF\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-2\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.57419317,11.1560104 C2.91506589,10.8661403 2.29620875,10.4522182 1.75493083,9.91362078 C-0.568892549,7.60089351 -0.587250991,3.86936104 1.71406849,1.57845195 C2.03057585,1.26367293 2.37407977,0.992496226 2.73740775,0.764921841\",\n id: \"Stroke-1\"\n}), /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-3\",\n points: \"3.37563213 1.84831169 3.36911784 0.595324675 2.18174122 4.15223411e-14\"\n})), /*#__PURE__*/React.createElement(\"line\", {\n x1: 5.92223784,\n y1: 7.57277922,\n x2: 5.92223784,\n y2: 3.98212987,\n id: \"Stroke-9\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-2\",\n transform: \"translate(9.818105, 6.000000) scale(-1, -1) translate(-9.818105, -6.000000) translate(7.636287, 0.000000)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.57419317,11.1560104 C2.91506589,10.8661403 2.29620875,10.4522182 1.75493083,9.91362078 C-0.568892549,7.60089351 -0.587250991,3.86936104 1.71406849,1.57845195 C2.03057585,1.26367293 2.37407977,0.992496226 2.73740775,0.764921841\",\n id: \"Stroke-1\"\n}), /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-3\",\n points: \"3.37563213 1.84831169 3.36911784 0.595324675 2.18174122 4.15223411e-14\"\n}))));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"-0.493 -0.5 12.993 13\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.fe6ed797.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/reboot/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-3\",\n stroke: \"#1B2559\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-2\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.57419317,11.1560104 C2.91506589,10.8661403 2.29620875,10.4522182 1.75493083,9.91362078 C-0.568892549,7.60089351 -0.587250991,3.86936104 1.71406849,1.57845195 C2.03057585,1.26367293 2.37407977,0.992496226 2.73740775,0.764921841\",\n id: \"Stroke-1\"\n}), /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-3\",\n points: \"3.37563213 1.84831169 3.36911784 0.595324675 2.18174122 4.15223411e-14\"\n})), /*#__PURE__*/React.createElement(\"line\", {\n x1: 5.92223784,\n y1: 7.57277922,\n x2: 5.92223784,\n y2: 3.98212987,\n id: \"Stroke-9\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-2\",\n transform: \"translate(9.818105, 6.000000) scale(-1, -1) translate(-9.818105, -6.000000) translate(7.636287, 0.000000)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.57419317,11.1560104 C2.91506589,10.8661403 2.29620875,10.4522182 1.75493083,9.91362078 C-0.568892549,7.60089351 -0.587250991,3.86936104 1.71406849,1.57845195 C2.03057585,1.26367293 2.37407977,0.992496226 2.73740775,0.764921841\",\n id: \"Stroke-1\"\n}), /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-3\",\n points: \"3.37563213 1.84831169 3.36911784 0.595324675 2.18174122 4.15223411e-14\"\n}))));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"-0.493 -0.5 12.993 13\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.9cfc97dd.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/shut-down/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-5\",\n transform: \"translate(1.000000, 0.000000)\",\n stroke: \"#FFFFFF\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.7735,2 C9.116,2.89710351 10,4.4271328 10,6.16330077 C10,8.92665975 7.7615,11.1666667 5,11.1666667 C2.2385,11.1666667 0,8.92665975 0,6.16330077 C0,4.43663919 0.8745,2.91361461 2.204,2.01450976\",\n id: \"Stroke-1\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 5,\n y1: 0.75,\n x2: 5,\n y2: 3.25,\n id: \"Stroke-3\"\n})));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.fa4681e8.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/shut-down/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-5\",\n transform: \"translate(1.000000, 0.000000)\",\n stroke: \"#1B2559\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.7735,2 C9.116,2.89710351 10,4.4271328 10,6.16330077 C10,8.92665975 7.7615,11.1666667 5,11.1666667 C2.2385,11.1666667 0,8.92665975 0,6.16330077 C0,4.43663919 0.8745,2.91361461 2.204,2.01450976\",\n id: \"Stroke-1\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 5,\n y1: 0.75,\n x2: 5,\n y2: 3.25,\n id: \"Stroke-3\"\n})));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.b27733af.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/unpair/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-12\",\n stroke: \"#FFFFFF\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-5\"\n}, /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-1\",\n points: \"3.75 6 2.25 6 0 3.75 3.75 0 6.75 3\"\n}), /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-3\",\n points: \"8.25 6 9.75 6 12 8.25 8.25 12 5.25 9\"\n})), /*#__PURE__*/React.createElement(\"line\", {\n x1: 8.25,\n y1: 3,\n x2: 8.25,\n y2: 1.5,\n id: \"Stroke-6\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 9.75,\n y1: 3,\n x2: 10.5,\n y2: 2.25,\n id: \"Stroke-7\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 9.75,\n y1: 4.5,\n x2: 11.25,\n y2: 4.5,\n id: \"Stroke-8\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 2.25,\n y1: 7.5,\n x2: 0.75,\n y2: 7.5,\n id: \"Stroke-9\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 2.25,\n y1: 9,\n x2: 1.5,\n y2: 9.75,\n id: \"Stroke-10\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 3.75,\n y1: 9,\n x2: 3.75,\n y2: 10.5,\n id: \"Stroke-11\"\n})));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.f97c75d2.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/button/unpair/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-12\",\n stroke: \"#1B2559\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-5\"\n}, /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-1\",\n points: \"3.75 6 2.25 6 0 3.75 3.75 0 6.75 3\"\n}), /*#__PURE__*/React.createElement(\"polyline\", {\n id: \"Stroke-3\",\n points: \"8.25 6 9.75 6 12 8.25 8.25 12 5.25 9\"\n})), /*#__PURE__*/React.createElement(\"line\", {\n x1: 8.25,\n y1: 3,\n x2: 8.25,\n y2: 1.5,\n id: \"Stroke-6\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 9.75,\n y1: 3,\n x2: 10.5,\n y2: 2.25,\n id: \"Stroke-7\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 9.75,\n y1: 4.5,\n x2: 11.25,\n y2: 4.5,\n id: \"Stroke-8\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 2.25,\n y1: 7.5,\n x2: 0.75,\n y2: 7.5,\n id: \"Stroke-9\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 2.25,\n y1: 9,\n x2: 1.5,\n y2: 9.75,\n id: \"Stroke-10\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 3.75,\n y1: 9,\n x2: 3.75,\n y2: 10.5,\n id: \"Stroke-11\"\n})));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"12px\",\n height: \"12px\",\n viewBox: \"0 0 12 12\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.aa028a2c.svg\";\nexport { ForwardRef as ReactComponent };","import { fade } from '@material-ui/core/styles/colorManipulator'\n\nimport {\n detailsRowStyles,\n labelStyles\n} from 'src/pages/Transactions/Transactions.styles'\nimport { spacer, comet, primaryColor, fontSize4 } from 'src/styling/variables'\n\nconst machineDetailsStyles = {\n ...detailsRowStyles,\n colDivider: {\n width: 1,\n margin: [[spacer * 2, spacer * 4]],\n backgroundColor: comet,\n border: 'none'\n },\n inlineChip: {\n marginInlineEnd: '0.25em'\n },\n stack: {\n display: 'flex',\n flexDirection: 'row'\n },\n wrapper: {\n display: 'flex',\n marginTop: 24,\n marginBottom: 32,\n fontSize: fontSize4\n },\n row: {\n display: 'flex',\n flexDirection: 'row',\n marginBottom: 36\n },\n list: {\n padding: 0,\n margin: 0,\n listStyle: 'none'\n },\n item: {\n height: spacer * 3,\n marginBottom: spacer * 1.5\n },\n link: {\n color: primaryColor,\n textDecoration: 'none'\n },\n divider: {\n margin: '0 1rem'\n },\n mr: {\n marginRight: spacer\n },\n separator: {\n width: 1,\n height: 170,\n zIndex: 1,\n marginRight: 60,\n marginLeft: 'auto',\n background: fade(comet, 0.5)\n }\n}\n\nexport { labelStyles, machineDetailsStyles }\n","import { useMutation } from '@apollo/react-hooks'\nimport { Grid, Divider } from '@material-ui/core'\nimport { makeStyles } from '@material-ui/core/styles'\nimport gql from 'graphql-tag'\nimport moment from 'moment'\nimport React, { useState } from 'react'\n\nimport { ConfirmDialog } from 'src/components/ConfirmDialog'\nimport { Status } from 'src/components/Status'\nimport ActionButton from 'src/components/buttons/ActionButton'\nimport { ReactComponent as EditReversedIcon } from 'src/styling/icons/button/edit/white.svg'\nimport { ReactComponent as EditIcon } from 'src/styling/icons/button/edit/zodiac.svg'\nimport { ReactComponent as LinkIcon } from 'src/styling/icons/button/link/zodiac.svg'\nimport { ReactComponent as RebootReversedIcon } from 'src/styling/icons/button/reboot/white.svg'\nimport { ReactComponent as RebootIcon } from 'src/styling/icons/button/reboot/zodiac.svg'\nimport { ReactComponent as ShutdownReversedIcon } from 'src/styling/icons/button/shut down/white.svg'\nimport { ReactComponent as ShutdownIcon } from 'src/styling/icons/button/shut down/zodiac.svg'\nimport { ReactComponent as UnpairReversedIcon } from 'src/styling/icons/button/unpair/white.svg'\nimport { ReactComponent as UnpairIcon } from 'src/styling/icons/button/unpair/zodiac.svg'\n\nimport { labelStyles, machineDetailsStyles } from './MachineDetailsCard.styles'\n\nconst MACHINE_ACTION = gql`\n mutation MachineAction(\n $deviceId: ID!\n $action: MachineAction!\n $newName: String\n ) {\n machineAction(deviceId: $deviceId, action: $action, newName: $newName) {\n deviceId\n }\n }\n`\n\nconst supportArtices = [\n {\n // Default article for non-maped statuses\n code: undefined,\n label: 'Troubleshooting',\n article:\n 'https://support.lamassu.is/hc/en-us/categories/115000075249-Troubleshooting'\n }\n // TODO add Stuck and Fully Functional statuses articles for the new-admins\n]\n\nconst article = ({ code: status }) =>\n supportArtices.find(({ code: article }) => article === status)\n\nconst useLStyles = makeStyles(labelStyles)\n\nconst Label = ({ children }) => {\n const classes = useLStyles()\n\n return
{children}
\n}\n\nconst useMDStyles = makeStyles(machineDetailsStyles)\n\nconst Container = ({ children, ...props }) => (\n \n {children}\n \n)\n\nconst Item = ({ children, ...props }) => (\n \n {children}\n \n)\n\nconst MachineDetailsRow = ({ it: machine, onActionSuccess }) => {\n const [action, setAction] = useState(null)\n const [errorMessage, setErrorMessage] = useState(null)\n const classes = useMDStyles()\n\n const [machineAction, { loading }] = useMutation(MACHINE_ACTION, {\n onError: ({ message }) => {\n const errorMessage = message ?? 'An error ocurred'\n setErrorMessage(errorMessage)\n },\n onCompleted: () => {\n onActionSuccess && onActionSuccess()\n setAction(null)\n }\n })\n\n const confirmDialogOpen = Boolean(action)\n\n return (\n <>\n \n \n \n \n \n
    \n {machine.statuses.map((status, index) => (\n
  • \n \n
  • \n ))}\n
\n
\n \n \n
    \n {machine.statuses\n .map(article)\n .map(({ label, article }, index) => (\n
  • \n \n '{label}' \n \n
  • \n ))}\n
\n
\n
\n
\n \n {\n setErrorMessage(null)\n machineAction({\n variables: {\n deviceId: machine.deviceId,\n action: `${action?.command}`.toLowerCase(),\n ...(action?.command === 'Rename' && { newName: value })\n }\n })\n }}\n onDissmised={() => {\n setAction(null)\n setErrorMessage(null)\n }}\n />\n \n \n \n \n {machine.model}\n \n \n \n \n {moment(machine.pairedAt).format('YYYY-MM-DD HH:mm:ss')}\n \n \n \n \n \n \n
\n \n setAction({\n command: 'Rename',\n confirmationMessage: 'Write the new name for this machine'\n })\n }>\n Rename\n \n \n setAction({\n command: 'Unpair'\n })\n }>\n Unpair\n \n \n setAction({\n command: 'Reboot'\n })\n }>\n Reboot\n \n \n setAction({\n command: 'Shutdown',\n message:\n 'In order to bring it back online, the machine will need to be visited and its power reset.'\n })\n }>\n Shutdown\n \n
\n
\n
\n
\n
\n \n )\n}\n\nexport default MachineDetailsRow\n","import { useQuery } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core'\nimport gql from 'graphql-tag'\nimport moment from 'moment'\nimport * as R from 'ramda'\nimport React from 'react'\nimport { useLocation } from 'react-router-dom'\n\nimport { MainStatus } from 'src/components/Status'\nimport Title from 'src/components/Title'\nimport DataTable from 'src/components/tables/DataTable'\nimport { mainStyles } from 'src/pages/Transactions/Transactions.styles'\nimport { ReactComponent as WarningIcon } from 'src/styling/icons/status/pumpkin.svg'\nimport { ReactComponent as ErrorIcon } from 'src/styling/icons/status/tomato.svg'\n\nimport MachineDetailsRow from './MachineDetailsCard'\n\nconst GET_MACHINES = gql`\n {\n machines {\n name\n deviceId\n lastPing\n pairedAt\n version\n paired\n cashbox\n cassette1\n cassette2\n version\n model\n statuses {\n label\n type\n }\n }\n }\n`\n\nconst useStyles = makeStyles(mainStyles)\n\nconst MachineStatus = () => {\n const classes = useStyles()\n const { state } = useLocation()\n const addedMachineId = state?.id\n const { data: machinesResponse, refetch } = useQuery(GET_MACHINES)\n\n const elements = [\n {\n header: 'Machine Name',\n width: 250,\n size: 'sm',\n textAlign: 'left',\n view: m => m.name\n },\n {\n header: 'Status',\n width: 350,\n size: 'sm',\n textAlign: 'left',\n view: m => \n },\n {\n header: 'Last ping',\n width: 200,\n size: 'sm',\n textAlign: 'left',\n view: m => (m.lastPing ? moment(m.lastPing).fromNow() : 'unknown')\n },\n {\n header: 'Software Version',\n width: 200,\n size: 'sm',\n textAlign: 'left',\n view: m => m.version || 'unknown'\n }\n ]\n\n const machines = R.path(['machines'])(machinesResponse) ?? []\n const expandedIndex = R.findIndex(R.propEq('deviceId', addedMachineId))(\n machines\n )\n\n const InnerMachineDetailsRow = ({ it }) => (\n \n )\n\n return (\n <>\n
\n
\n Machine Status\n
\n
\n
\n \n Warning\n
\n
\n \n Error\n
\n
\n
\n \n \n )\n}\n\nexport default MachineStatus\n","import React from 'react'\n\nexport default React.createContext()\n","import _ from 'lodash/fp'\n\nconst transformNumber = value =>\n _.isNumber(value) && !_.isNaN(value) ? value : null\n\nexport { transformNumber }\n","import { makeStyles } from '@material-ui/core'\nimport React from 'react'\n\nimport { Link, IconButton } from 'src/components/buttons'\nimport { H4 } from 'src/components/typography'\nimport { ReactComponent as DisabledEditIcon } from 'src/styling/icons/action/edit/disabled.svg'\nimport { ReactComponent as EditIcon } from 'src/styling/icons/action/edit/enabled.svg'\n\nimport styles from './EditHeader.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst Header = ({ title, editing, disabled, setEditing }) => {\n const classes = useStyles()\n\n return (\n
\n

{title}

\n {!editing && (\n setEditing(true)}\n className={classes.button}\n disabled={disabled}>\n {disabled ? : }\n \n )}\n {editing && (\n
\n \n Save\n \n \n Cancel\n \n
\n )}\n
\n )\n}\n\nexport default Header\n","export default {\n header: {\n display: 'flex',\n alignItems: 'center',\n marginBottom: 16,\n height: 26,\n margin: 0\n },\n title: {\n flexShrink: 2,\n margin: 0,\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis'\n },\n button: {\n border: 'none',\n backgroundColor: 'transparent',\n cursor: 'pointer',\n marginLeft: 8\n },\n editingButtons: {\n display: 'flex',\n flexShrink: 0,\n marginLeft: 16,\n justifyContent: 'space-between',\n width: 110\n }\n}\n","import { makeStyles } from '@material-ui/core'\nimport classnames from 'classnames'\nimport { useFormikContext, Field as FormikField } from 'formik'\nimport React from 'react'\n\nimport { NumberInput } from 'src/components/inputs/formik'\nimport { Label1, Info1, TL2 } from 'src/components/typography'\n\nimport styles from './EditableNumber.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst EditableNumber = ({\n label,\n name,\n editing,\n displayValue,\n decoration,\n className,\n decimalPlaces = 0,\n width = 80\n}) => {\n const classes = useStyles({ width, editing })\n const { values } = useFormikContext()\n\n const classNames = {\n [classes.fieldWrapper]: true,\n className\n }\n\n return (\n
\n {label && {label}}\n
\n {!editing && (\n {displayValue(values[name])}\n )}\n {editing && (\n \n )}\n {decoration}\n
\n
\n )\n}\n\nexport default EditableNumber\n","export default {\n text: {\n margin: [[7, 0, 7, 1]]\n },\n fieldWrapper: {\n height: 53\n },\n valueWrapper: {\n display: 'flex',\n alignItems: 'baseline'\n },\n label: {\n margin: 0\n },\n decoration: {\n margin: [[0, 0, 0, 7]]\n }\n}\n","import { Form, Formik } from 'formik'\nimport React, { useContext, useState } from 'react'\nimport * as Yup from 'yup'\n\nimport PromptWhenDirty from 'src/components/PromptWhenDirty'\n\nimport NotificationsCtx from '../NotificationsContext'\nimport { transformNumber } from '../helper'\n\nimport Header from './EditHeader'\nimport EditableNumber from './EditableNumber'\n\nconst SingleFieldEditableNumber = ({\n title,\n label,\n width = 80,\n min = 0,\n max = 9999999,\n name,\n section,\n className\n}) => {\n const [saving, setSaving] = useState(false)\n\n const innerSave = async (section, value) => {\n if (saving) return\n\n setSaving(true)\n\n // no response means the save failed\n await save(section, value)\n\n setSaving(false)\n }\n\n const {\n save,\n data,\n currency,\n isEditing,\n isDisabled,\n setEditing\n } = useContext(NotificationsCtx)\n\n const schema = Yup.object().shape({\n [name]: Yup.number()\n .transform(transformNumber)\n .integer()\n .min(min)\n .max(max)\n .nullable()\n })\n\n return (\n innerSave(section, schema.cast(it))}\n onReset={() => {\n setEditing(name, false)\n }}>\n
\n \n setEditing(name, it)}\n />\n (x === '' ? '-' : x)}\n decoration={currency}\n />\n \n \n )\n}\n\nexport default SingleFieldEditableNumber\n","import { makeStyles } from '@material-ui/core'\nimport React, { useContext } from 'react'\n\nimport NotificationsCtx from '../NotificationsContext'\nimport SingleFieldEditableNumber from '../components/SingleFieldEditableNumber'\n\nimport styles from './CryptoBalanceAlerts.styles'\n\nconst LOW_BALANCE_KEY = 'cryptoLowBalance'\nconst HIGH_BALANCE_KEY = 'cryptoHighBalance'\n\nconst useStyles = makeStyles(styles)\n\nconst CryptoBalanceAlerts = ({ section, fieldWidth }) => {\n const classes = useStyles()\n\n const {\n data,\n save,\n currency,\n setEditing,\n isEditing,\n isDisabled\n } = useContext(NotificationsCtx)\n\n return (\n
\n setEditing(LOW_BALANCE_KEY, it)}\n width={fieldWidth}\n />\n\n
\n\n setEditing(HIGH_BALANCE_KEY, it)}\n width={fieldWidth}\n />\n
\n )\n}\n\nexport default CryptoBalanceAlerts\n","export default {\n cryptoBalanceAlerts: {\n display: 'flex',\n marginBottom: 36,\n height: 135,\n alignItems: 'center'\n },\n cryptoBalanceAlertsForm: {\n width: 222,\n marginRight: 32\n },\n cryptoBalanceAlertsSecondForm: {\n marginLeft: 50\n },\n vertSeparator: {\n width: 1,\n height: '100%',\n borderRight: [[1, 'solid', 'black']]\n }\n}\n","import * as R from 'ramda'\nimport React, { useContext } from 'react'\nimport * as Yup from 'yup'\n\nimport { Table as EditableTable } from 'src/components/editableTable'\nimport { NumberInput } from 'src/components/inputs/formik'\nimport Autocomplete from 'src/components/inputs/formik/Autocomplete.js'\n\nimport NotificationsCtx from '../NotificationsContext'\nimport { transformNumber } from '../helper'\n\nconst HIGH_BALANCE_KEY = 'highBalance'\nconst LOW_BALANCE_KEY = 'lowBalance'\nconst CRYPTOCURRENCY_KEY = 'cryptoCurrency'\nconst NAME = 'cryptoBalanceOverrides'\n\nconst CryptoBalanceOverrides = ({ section }) => {\n const {\n cryptoCurrencies = [],\n data,\n save,\n currency,\n isDisabled,\n setEditing\n } = useContext(NotificationsCtx)\n const setupValues = data?.cryptoBalanceOverrides ?? []\n const innerSetEditing = it => setEditing(NAME, it)\n\n const onDelete = id => {\n const newOverrides = {\n cryptoBalanceOverrides: R.reject(it => it.id === id, setupValues)\n }\n return save(newOverrides)\n }\n\n const overridenCryptos = R.map(R.prop(CRYPTOCURRENCY_KEY))(setupValues)\n const suggestionFilter = R.filter(\n it => !R.contains(it.code, overridenCryptos)\n )\n const suggestions = suggestionFilter(cryptoCurrencies)\n\n const findSuggestion = it => {\n const coin = R.compose(R.find(R.propEq('code', it?.cryptoCurrency)))(\n cryptoCurrencies\n )\n return coin ? [coin] : []\n }\n\n const initialValues = {\n [CRYPTOCURRENCY_KEY]: null,\n [LOW_BALANCE_KEY]: '',\n [HIGH_BALANCE_KEY]: ''\n }\n\n const notesMin = 0\n const currencyMax = 9999999\n const validationSchema = Yup.object().shape(\n {\n [CRYPTOCURRENCY_KEY]: Yup.string()\n .label('Cryptocurrency')\n .nullable()\n .required(),\n [LOW_BALANCE_KEY]: Yup.number()\n .label('Low Balance')\n .when(HIGH_BALANCE_KEY, {\n is: HIGH_BALANCE_KEY => !HIGH_BALANCE_KEY,\n then: Yup.number().required()\n })\n .transform(transformNumber)\n .integer()\n .min(notesMin)\n .max(currencyMax)\n .nullable(),\n [HIGH_BALANCE_KEY]: Yup.number()\n .label('High Balance')\n .when(LOW_BALANCE_KEY, {\n is: LOW_BALANCE_KEY => !LOW_BALANCE_KEY,\n then: Yup.number().required()\n })\n .transform(transformNumber)\n .integer()\n .min(notesMin)\n .max(currencyMax)\n .nullable()\n },\n [LOW_BALANCE_KEY, HIGH_BALANCE_KEY]\n )\n\n const viewCrypto = it =>\n R.compose(\n R.path(['display']),\n R.find(R.propEq('code', it))\n )(cryptoCurrencies)\n\n const elements = [\n {\n name: CRYPTOCURRENCY_KEY,\n header: 'Cryptocurrency',\n width: 166,\n size: 'sm',\n view: viewCrypto,\n input: Autocomplete,\n inputProps: {\n options: it => R.concat(suggestions, findSuggestion(it)),\n optionsLimit: null,\n valueProp: 'code',\n getLabel: R.path(['display'])\n }\n },\n {\n name: LOW_BALANCE_KEY,\n width: 155,\n textAlign: 'right',\n bold: true,\n input: NumberInput,\n suffix: currency,\n inputProps: {\n decimalPlaces: 2\n }\n },\n {\n name: HIGH_BALANCE_KEY,\n width: 155,\n textAlign: 'right',\n bold: true,\n input: NumberInput,\n suffix: currency,\n inputProps: {\n decimalPlaces: 2\n }\n }\n ]\n\n return (\n save(section, it)}\n initialValues={initialValues}\n validationSchema={validationSchema}\n forceDisable={isDisabled(NAME) || !cryptoCurrencies}\n data={setupValues}\n elements={elements}\n disableAdd={!suggestions?.length}\n onDelete={onDelete}\n setEditing={innerSetEditing}\n />\n )\n}\n\nexport default CryptoBalanceOverrides\n","import { makeStyles } from '@material-ui/core'\nimport { Form, Formik } from 'formik'\nimport React, { useContext } from 'react'\nimport * as Yup from 'yup'\n\nimport PromptWhenDirty from 'src/components/PromptWhenDirty'\nimport { TL2 } from 'src/components/typography'\n\nimport { Cashbox } from '../../../components/inputs/cashbox/Cashbox'\nimport NotificationsCtx from '../NotificationsContext'\nimport Header from '../components/EditHeader'\nimport EditableNumber from '../components/EditableNumber'\nimport { transformNumber } from '../helper'\n\nimport styles from './FiatBalanceAlerts.styles.js'\n\nconst useStyles = makeStyles(styles)\n\nconst NAME = 'fiatBalanceAlerts'\n\nconst FiatBalance = ({\n section,\n min = 0,\n max = Number.MAX_SAFE_INTEGER,\n fieldWidth = 80\n}) => {\n const { isEditing, isDisabled, setEditing, data, save } = useContext(\n NotificationsCtx\n )\n const classes = useStyles()\n\n const editing = isEditing(NAME)\n\n const schema = Yup.object().shape({\n fiatBalanceCassette1: Yup.number()\n .transform(transformNumber)\n .integer()\n .min(min)\n .max(max)\n .nullable(),\n fiatBalanceCassette2: Yup.number()\n .transform(transformNumber)\n .integer()\n .min(min)\n .max(max)\n .nullable()\n })\n\n const fiatBalanceCassette1Percent =\n (100 * (data?.fiatBalanceCassette1 ?? 0)) / max\n const fiatBalanceCassette2Percent =\n (100 * (data?.fiatBalanceCassette2 ?? 0)) / max\n\n return (\n save(section, schema.cast(it))}\n onReset={() => {\n setEditing(NAME, false)\n }}>\n
\n \n setEditing(NAME, it)}\n />\n
\n
\n
\n \n
\n Cassette 1 (Top)\n (x === '' ? '-' : x)}\n decoration=\"notes\"\n width={fieldWidth}\n />\n
\n
\n
\n
\n \n
\n Cassette 2 (Bottom)\n (x === '' ? '-' : x)}\n decoration=\"notes\"\n width={fieldWidth}\n />\n
\n
\n
\n \n \n )\n}\n\nexport default FiatBalance\n","export default {\n wrapper: {\n display: 'flex'\n },\n form: {\n marginBottom: 36\n },\n first: {\n width: 236\n },\n title: {\n marginTop: 0\n },\n row: {\n width: 183,\n display: 'grid',\n gridTemplateColumns: 'repeat(2,1fr)',\n gridTemplateRows: '1fr',\n gridColumnGap: 18,\n gridRowGap: 0\n },\n col2: {\n width: 136\n }\n}\n","import * as R from 'ramda'\nimport React, { useContext } from 'react'\nimport * as Yup from 'yup'\n\nimport { Table as EditableTable } from 'src/components/editableTable'\nimport { NumberInput } from 'src/components/inputs/formik/'\nimport Autocomplete from 'src/components/inputs/formik/Autocomplete'\n\nimport NotificationsCtx from '../NotificationsContext'\nimport { transformNumber } from '../helper'\n\nconst CASSETTE_1_KEY = 'cassette1'\nconst CASSETTE_2_KEY = 'cassette2'\nconst MACHINE_KEY = 'machine'\nconst NAME = 'fiatBalanceOverrides'\n\nconst FiatBalanceOverrides = ({ section }) => {\n const { machines = [], data, save, isDisabled, setEditing } = useContext(\n NotificationsCtx\n )\n\n const setupValues = data?.fiatBalanceOverrides ?? []\n const innerSetEditing = it => setEditing(NAME, it)\n\n const overridenMachines = R.map(override => override.machine, setupValues)\n const suggestionFilter = R.filter(\n it => !R.contains(it.deviceId, overridenMachines)\n )\n const suggestions = suggestionFilter(machines)\n\n const findSuggestion = it => {\n const coin = R.compose(R.find(R.propEq('deviceId', it?.machine)))(machines)\n return coin ? [coin] : []\n }\n\n const initialValues = {\n [MACHINE_KEY]: null,\n [CASSETTE_1_KEY]: '',\n [CASSETTE_2_KEY]: ''\n }\n\n const notesMin = 0\n const notesMax = 9999999\n const validationSchema = Yup.object().shape(\n {\n [MACHINE_KEY]: Yup.string()\n .label('Machine')\n .nullable()\n .required(),\n [CASSETTE_1_KEY]: Yup.number()\n .label('Cassette 1 (top)')\n .when(CASSETTE_2_KEY, {\n is: CASSETTE_2_KEY => !CASSETTE_2_KEY,\n then: Yup.number().required()\n })\n .transform(transformNumber)\n .integer()\n .min(notesMin)\n .max(notesMax)\n .nullable(),\n [CASSETTE_2_KEY]: Yup.number()\n .label('Cassette 1 (bottom)')\n .when(CASSETTE_1_KEY, {\n is: CASSETTE_1_KEY => !CASSETTE_1_KEY,\n then: Yup.number().required()\n })\n .transform(transformNumber)\n .integer()\n .min(notesMin)\n .max(notesMax)\n .nullable()\n },\n [CASSETTE_1_KEY, CASSETTE_2_KEY]\n )\n\n const viewMachine = it =>\n R.compose(R.path(['name']), R.find(R.propEq('deviceId', it)))(machines)\n\n const elements = [\n {\n name: MACHINE_KEY,\n width: 238,\n size: 'sm',\n view: viewMachine,\n input: Autocomplete,\n inputProps: {\n options: it => R.concat(suggestions, findSuggestion(it)),\n valueProp: 'deviceId',\n getLabel: R.path(['name'])\n }\n },\n {\n name: CASSETTE_1_KEY,\n display: 'Cash-out 1',\n width: 155,\n textAlign: 'right',\n doubleHeader: 'Cash-out (Cassette Empty)',\n bold: true,\n input: NumberInput,\n suffix: 'notes',\n inputProps: {\n decimalPlaces: 0\n }\n },\n {\n name: CASSETTE_2_KEY,\n display: 'Cash-out 2',\n width: 155,\n textAlign: 'right',\n doubleHeader: 'Cash-out (Cassette Empty)',\n bold: true,\n input: NumberInput,\n suffix: 'notes',\n inputProps: {\n decimalPlaces: 0\n }\n }\n ]\n\n return (\n save(section, validationSchema.cast(it))}\n initialValues={initialValues}\n validationSchema={validationSchema}\n forceDisable={isDisabled(NAME) || !machines}\n data={setupValues}\n elements={elements}\n disableAdd={!suggestions?.length}\n setEditing={innerSetEditing}\n />\n )\n}\n\nexport default FiatBalanceOverrides\n","import { makeStyles } from '@material-ui/core'\nimport * as R from 'ramda'\nimport React, { useContext } from 'react'\n\nimport {\n Table,\n THead,\n TBody,\n Tr,\n Td,\n Th\n} from 'src/components/fake-table/Table'\nimport { Switch } from 'src/components/inputs'\nimport { fromNamespace, toNamespace } from 'src/utils/config'\nimport { startCase } from 'src/utils/string'\n\nimport NotificationsCtx from '../NotificationsContext'\n\nconst channelSize = 129\nconst sizes = {\n balance: 152,\n transactions: 184,\n compliance: 178,\n errors: 142,\n active: 263\n}\nconst width = R.sum(R.values(sizes)) + channelSize\n\nconst Row = ({ namespace, forceDisable }) => {\n const { data: rawData, save: rawSave } = useContext(NotificationsCtx)\n\n const save = R.compose(rawSave(null), toNamespace(namespace))\n const data = fromNamespace(namespace)(rawData)\n\n const disabled = forceDisable || !data || !data.active\n\n const Cell = ({ name, disabled }) => {\n const value = !!(data && data[name])\n\n return (\n \n {\n save({ [name]: event.target.checked })\n }}\n value={value}\n />\n \n )\n }\n\n return (\n \n {startCase(namespace)}\n \n \n \n \n \n \n )\n}\n\nconst useStyles = makeStyles({\n mainTable: {\n width\n },\n wizardTable: {\n width: 930\n }\n})\nconst Setup = ({ wizard, forceDisable }) => {\n const widthAdjust = wizard ? 20 : 0\n const classes = useStyles()\n return (\n \n \n \n {Object.keys(sizes).map(it => (\n \n ))}\n \n \n \n \n \n
Channel\n {startCase(it)}\n
\n )\n}\n\nexport default Setup\n","import React from 'react'\n\nimport SingleFieldEditableNumber from '../components/SingleFieldEditableNumber'\n\nconst NAME = 'highValueTransaction'\n\nconst TransactionAlerts = ({ section, fieldWidth }) => {\n return (\n \n )\n}\n\nexport default TransactionAlerts\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport TitleSection from 'src/components/layout/TitleSection'\nimport { fromNamespace, toNamespace, namespaces } from 'src/utils/config'\n\nimport Section from '../../components/layout/Section'\n\nimport NotificationsCtx from './NotificationsContext'\nimport CryptoBalanceAlerts from './sections/CryptoBalanceAlerts'\nimport CryptoBalanceOverrides from './sections/CryptoBalanceOverrides'\nimport FiatBalanceAlerts from './sections/FiatBalanceAlerts'\nimport FiatBalanceOverrides from './sections/FiatBalanceOverrides'\nimport Setup from './sections/Setup'\nimport TransactionAlerts from './sections/TransactionAlerts'\n\nconst GET_INFO = gql`\n query getData {\n config\n machines {\n name\n deviceId\n }\n cryptoCurrencies {\n code\n display\n }\n }\n`\n\nconst SAVE_CONFIG = gql`\n mutation Save($config: JSONObject) {\n saveConfig(config: $config)\n }\n`\n\nconst FIELDS_WIDTH = 130\n\nconst Notifications = ({\n name: SCREEN_KEY,\n displaySetup = true,\n displayTransactionAlerts = true,\n displayFiatAlerts = true,\n displayCryptoAlerts = true,\n displayOverrides = true,\n displayTitle = true,\n wizard = false\n}) => {\n const [section, setSection] = useState(null)\n const [error, setError] = useState(null)\n const [editingKey, setEditingKey] = useState(null)\n\n const { data } = useQuery(GET_INFO)\n\n const [saveConfig] = useMutation(SAVE_CONFIG, {\n refetchQueries: ['getData'],\n onCompleted: () => setEditingKey(null),\n onError: error => setError({ error })\n })\n\n const config = fromNamespace(SCREEN_KEY)(data?.config)\n const machines = data?.machines\n const cryptoCurrencies = data?.cryptoCurrencies\n\n const currency = R.path(['fiatCurrency'])(\n fromNamespace(namespaces.LOCALE)(data?.config)\n )\n\n const save = R.curry((section, rawConfig) => {\n const config = toNamespace(SCREEN_KEY)(rawConfig)\n setSection(section)\n setError(null)\n return saveConfig({ variables: { config } })\n })\n\n const setEditing = (key, state) => {\n if (!state) {\n setError(null)\n }\n setEditingKey(state ? key : null)\n }\n\n const isEditing = key => editingKey === key\n const isDisabled = key => editingKey && editingKey !== key\n\n const contextValue = {\n save,\n error,\n editingKey,\n data: config,\n currency,\n isEditing,\n isDisabled,\n setEditing,\n setSection,\n machines,\n cryptoCurrencies\n }\n\n return (\n \n {displayTitle && }\n {displaySetup && (\n
\n \n
\n )}\n {displayTransactionAlerts && (\n
\n \n
\n )}\n {displayFiatAlerts && (\n \n \n {displayOverrides && }\n \n )}\n {displayCryptoAlerts && (\n \n \n {displayOverrides && (\n \n )}\n \n )}\n
\n )\n}\n\nexport default Notifications\n","import baseStyles from 'src/pages/Logs.styles'\n\nconst { button } = baseStyles\n\nconst mainStyles = {\n button,\n content: {\n display: 'flex'\n },\n transparentButton: {\n '& > *': {\n margin: 'auto 10px'\n },\n '& button': {\n border: 'none',\n backgroundColor: 'transparent',\n cursor: 'pointer'\n }\n },\n titleWrapper: {\n display: 'flex',\n alignItems: 'center',\n flex: 'wrap'\n },\n rowWrapper: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between'\n },\n rowTextAndSwitch: {\n display: 'flex',\n flex: 'wrap',\n alignItems: 'center',\n justifyContent: 'space-between',\n width: 285\n },\n popoverContent: {\n width: 272,\n padding: [[10, 15]]\n }\n}\n\nexport { mainStyles }\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core/styles'\nimport gql from 'graphql-tag'\nimport React, { memo } from 'react'\n\nimport Tooltip from 'src/components/Tooltip'\nimport { Switch } from 'src/components/inputs'\nimport { H4, P, Label2 } from 'src/components/typography'\nimport { fromNamespace, toNamespace, namespaces } from 'src/utils/config'\n\nimport { mainStyles } from './CoinATMRadar.styles'\n\nconst useStyles = makeStyles(mainStyles)\n\nconst GET_CONFIG = gql`\n query getData {\n config\n }\n`\n\nconst SAVE_CONFIG = gql`\n mutation Save($config: JSONObject) {\n saveConfig(config: $config)\n }\n`\n\nconst Row = memo(({ title, disabled = false, checked, save, label }) => {\n const classes = useStyles()\n\n return (\n
\n
\n

{title}

\n save && save(event.target.checked)}\n />\n
\n {label && {label}}\n
\n )\n})\n\nconst CoinATMRadar = memo(() => {\n const classes = useStyles()\n\n const { data } = useQuery(GET_CONFIG)\n\n const [saveConfig] = useMutation(SAVE_CONFIG, {\n refetchQueries: ['getData']\n })\n\n const save = it =>\n saveConfig({\n variables: { config: toNamespace(namespaces.COIN_ATM_RADAR, it) }\n })\n\n const coinAtmRadarConfig =\n data?.config && fromNamespace(namespaces.COIN_ATM_RADAR, data.config)\n if (!coinAtmRadarConfig) return null\n\n return (\n
\n
\n
\n

Coin ATM Radar share settings

\n \n

\n For details on configuring this panel, please read the relevant\n knowledgebase article{' '}\n \n here\n \n .\n

\n
\n
\n save({ active: value })}\n label={coinAtmRadarConfig.active ? 'Yes' : 'No'}\n />\n

{'Machine info'}

\n save({ commissions: value })}\n />\n save({ limitsAndVerification: value })}\n />\n
\n
\n )\n})\n\nexport default CoinATMRadar\n","import CoinATMRadar from './CoinATMRadar'\n\nexport default CoinATMRadar\n","import { createMuiTheme } from '@material-ui/core/styles'\n\nimport typographyStyles from 'src/components/typography/styles'\n\nimport {\n backgroundColor,\n inputFontFamily,\n secondaryColor,\n fontColor,\n offColor,\n subheaderColor,\n fontSize3,\n fontSize5\n} from './variables'\n\nconst { p } = typographyStyles\n\nexport default createMuiTheme({\n typography: {\n fontFamily: inputFontFamily,\n body1: { ...p }\n },\n MuiButtonBase: {\n disableRipple: true\n },\n palette: {\n primary: {\n light: secondaryColor,\n dark: secondaryColor,\n main: secondaryColor\n },\n secondary: {\n light: secondaryColor,\n dark: secondaryColor,\n main: secondaryColor\n },\n background: {\n default: backgroundColor\n }\n },\n overrides: {\n MuiRadio: {\n colorSecondary: {\n color: secondaryColor\n }\n },\n MuiAutocomplete: {\n root: {\n color: fontColor\n },\n noOptions: {\n padding: [[6, 16]]\n },\n option: {\n '&[data-focus=\"true\"]': {\n backgroundColor: subheaderColor\n }\n },\n paper: {\n color: fontColor,\n margin: 0\n },\n listbox: {\n padding: 0\n },\n tag: {\n '&[data-tag-index=\"0\"]': {\n marginLeft: 0\n },\n margin: 2,\n backgroundColor: subheaderColor,\n borderRadius: 4,\n height: 18\n }\n },\n MuiChip: {\n label: {\n paddingLeft: 4,\n paddingRight: 4,\n color: fontColor,\n fontSize: fontSize5\n }\n },\n MuiInput: {\n root: {\n color: fontColor\n },\n underline: {\n '&:before': {\n borderBottom: [[2, 'solid', fontColor]]\n }\n }\n },\n MuiInputLabel: {\n root: {\n font: 'inherit',\n fontSize: fontSize3,\n color: offColor\n },\n shrink: {\n color: fontColor,\n transform: 'translate(0, 1.7px) scale(0.83)'\n }\n },\n MuiFormLabel: {\n root: {\n '&$focused': {\n color: fontColor\n }\n }\n }\n }\n})\n","import typographyStyles from 'src/components/typography/styles'\nimport theme from 'src/styling/theme'\nimport { offColor } from 'src/styling/variables'\n\nconst { p } = typographyStyles\n\nconst styles = {\n header: {\n display: 'flex',\n alignItems: 'center',\n position: 'relative',\n flex: 'wrap'\n },\n transparentButton: {\n '& > *': {\n margin: 'auto 12px'\n },\n '& button': {\n border: 'none',\n backgroundColor: 'transparent',\n cursor: 'pointer'\n }\n },\n section: {\n marginBottom: 52\n },\n row: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n marginBottom: 28,\n width: 600,\n '&:last-child': {\n marginBottom: 0\n }\n },\n switchRow: {\n display: 'flex',\n alignItems: 'center',\n marginBottom: 28,\n width: 600\n },\n switch: {\n display: 'flex',\n alignItems: 'center',\n marginLeft: 120\n },\n submit: {\n justifyContent: 'flex-start',\n alignItems: 'center',\n height: 19,\n padding: [[0, 4, 4, 4]],\n '& > button': {\n marginRight: 40\n }\n },\n singleButton: {\n marginTop: 50,\n paddingLeft: 0\n }\n}\n\nconst contactInfoStyles = {\n infoMessage: {\n display: 'flex',\n marginBottom: 52,\n '& > p': {\n width: 330,\n color: offColor,\n marginTop: 4,\n marginLeft: 16\n }\n },\n radioButtonsRow: {\n height: 60,\n marginBottom: 14\n },\n radioButtons: {\n display: 'flex',\n flexDirection: 'row',\n paddingLeft: 4\n },\n rowWrapper: {\n display: 'flex',\n alignItems: 'center',\n position: 'relative',\n flex: 'wrap'\n },\n transparentButton: {\n '& > *': {\n margin: 'auto 12px'\n },\n '& button': {\n border: 'none',\n backgroundColor: 'transparent',\n cursor: 'pointer'\n }\n }\n}\n\nconst termsConditionsStyles = {\n enable: {\n display: 'flex',\n alignItems: 'center',\n marginBottom: 22 - theme.spacing(1),\n '& > span:first-child': {\n extend: p,\n marginRight: 116 - theme.spacing(1)\n },\n '& > span:last-child': {\n marginLeft: 4\n }\n }\n}\n\nconst fieldStyles = {\n field: {\n position: 'relative',\n width: 280,\n padding: [[0, 4, 4, 0]]\n },\n notEditing: {\n display: 'flex',\n flexDirection: 'column'\n },\n notEditingSingleLine: {\n '& > p:first-child': {\n height: 16,\n lineHeight: '16px',\n transform: 'scale(0.75)',\n transformOrigin: 'left',\n paddingLeft: 0,\n margin: [[1, 0, 6, 0]]\n },\n '& > p:last-child': {\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n height: 25,\n margin: 0\n }\n },\n notEditingMultiline: {\n '& > p:first-child': {\n height: 16,\n lineHeight: '16px',\n transform: 'scale(0.75)',\n transformOrigin: 'left',\n paddingLeft: 0,\n margin: [[1, 0, 5, 0]]\n },\n '& > p:last-child': {\n width: 502,\n height: 121,\n overflowY: 'auto',\n lineHeight: '19px',\n wordWrap: 'anywhere',\n margin: 0\n }\n }\n}\n\nexport { styles, contactInfoStyles, termsConditionsStyles, fieldStyles }\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core'\nimport classnames from 'classnames'\nimport { Form, Formik, Field as FormikField } from 'formik'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\nimport * as Yup from 'yup'\n\nimport ErrorMessage from 'src/components/ErrorMessage'\nimport PromptWhenDirty from 'src/components/PromptWhenDirty'\nimport { Link, IconButton } from 'src/components/buttons'\nimport Switch from 'src/components/inputs/base/Switch'\nimport { TextInput } from 'src/components/inputs/formik'\nimport { P, H4, Info3, Label1, Label2, Label3 } from 'src/components/typography'\nimport { ReactComponent as EditIcon } from 'src/styling/icons/action/edit/enabled.svg'\nimport { ReactComponent as WarningIcon } from 'src/styling/icons/warning-icon/comet.svg'\nimport { fontSize5 } from 'src/styling/variables'\nimport { fromNamespace, toNamespace, namespaces } from 'src/utils/config'\n\nimport {\n styles as globalStyles,\n contactInfoStyles\n} from './OperatorInfo.styles'\n\nconst FIELD_WIDTH = 280\n\nconst fieldStyles = {\n field: {\n position: 'relative',\n width: 280,\n height: 48,\n padding: [[0, 4, 4, 0]]\n },\n notEditing: {\n display: 'flex',\n flexDirection: 'column',\n '& > p:first-child': {\n height: 16,\n lineHeight: '16px',\n fontSize: fontSize5,\n transformOrigin: 'left',\n paddingLeft: 0,\n margin: [[3, 0, 3, 0]]\n },\n '& > p:last-child': {\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n margin: 0\n }\n }\n}\n\nconst fieldUseStyles = makeStyles(fieldStyles)\n\nconst Field = ({ editing, field, displayValue, ...props }) => {\n const classes = fieldUseStyles()\n\n const classNames = {\n [classes.field]: true,\n [classes.notEditing]: !editing\n }\n\n return (\n
\n {!editing && (\n <>\n {field.label}\n {displayValue(field.value)}\n \n )}\n {editing && (\n \n )}\n
\n )\n}\n\nconst GET_CONFIG = gql`\n query getData {\n config\n }\n`\n\nconst SAVE_CONFIG = gql`\n mutation Save($config: JSONObject) {\n saveConfig(config: $config)\n }\n`\n\nconst styles = R.merge(globalStyles, contactInfoStyles)\n\nconst contactUseStyles = makeStyles(styles)\n\nconst ContactInfo = ({ wizard }) => {\n const classes = contactUseStyles()\n\n const [editing, setEditing] = useState(wizard || false)\n const [error, setError] = useState(null)\n\n const [saveConfig] = useMutation(SAVE_CONFIG, {\n onCompleted: () => setEditing(false),\n refetchQueries: () => ['getData'],\n onError: e => setError(e)\n })\n\n const { data } = useQuery(GET_CONFIG)\n\n const save = it => {\n return saveConfig({\n variables: { config: toNamespace(namespaces.OPERATOR_INFO, it) }\n })\n }\n\n const info =\n data?.config && fromNamespace(namespaces.OPERATOR_INFO, data.config)\n\n if (!info) return null\n\n const validationSchema = Yup.object().shape({\n active: Yup.boolean(),\n name: Yup.string(),\n phone: Yup.string(),\n email: Yup.string()\n .email('Please enter a valid email address')\n .required(),\n website: Yup.string(),\n companyNumber: Yup.string()\n })\n\n const fields = [\n {\n name: 'name',\n label: 'Full name',\n value: info.name ?? '',\n component: TextInput\n },\n {\n name: 'phone',\n label: 'Phone number',\n value: info.phone,\n component: TextInput\n },\n {\n name: 'email',\n label: 'Email',\n value: info.email ?? '',\n component: TextInput\n },\n {\n name: 'website',\n label: 'Website',\n value: info.website ?? '',\n component: TextInput\n },\n {\n name: 'companyNumber',\n label: 'Company number',\n value: info.companyNumber ?? '',\n component: TextInput\n }\n ]\n\n const findField = name => R.find(R.propEq('name', name))(fields)\n const findValue = name => findField(name).value\n\n const displayTextValue = value => value\n\n const form = {\n initialValues: {\n active: info.active,\n name: findValue('name'),\n phone: findValue('phone'),\n email: findValue('email'),\n website: findValue('website'),\n companyNumber: findValue('companyNumber')\n }\n }\n\n return (\n <>\n
\n

Contact information

\n
\n
\n

Info card enabled?

\n
\n \n save({\n active: event.target.checked\n })\n }\n />\n {info.active ? 'Yes' : 'No'}\n
\n
\n
\n
\n

Info card

\n {!editing && (\n setEditing(true)}>\n \n \n )}\n
\n save(validationSchema.cast(values))}\n onReset={() => {\n setEditing(false)\n setError(null)\n }}>\n
\n \n
\n setError(null)}\n />\n setError(null)}\n />\n
\n
\n setError(null)}\n />\n setError(null)}\n />\n
\n
\n setError(null)}\n />\n
\n
\n {editing && (\n <>\n \n Save\n \n \n Cancel\n \n {error && (\n \n Failed to save changes\n \n )}\n \n )}\n
\n \n \n
\n {!wizard && (\n
\n \n \n Sharing your information with your customers through your machines\n allows them to contact you in case there's a problem with a machine\n in your network or a transaction.\n \n
\n )}\n \n )\n}\n\nexport default ContactInfo\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/table/false\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group-4\",\n stroke: \"#FF584A\",\n strokeWidth: 4\n}, /*#__PURE__*/React.createElement(\"line\", {\n x1: 13.5,\n y1: 0.5,\n x2: 0.995667,\n y2: 13.004333,\n id: \"Line-7\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 13.5,\n y1: 0.5,\n x2: 0.995667,\n y2: 13.004333,\n id: \"Line-7\",\n transform: \"translate(7.000000, 7.000000) scale(-1, 1) translate(-7.000000, -7.000000) \"\n})));\n\nfunction SvgFalse(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"14px\",\n height: \"14px\",\n viewBox: \"0 0 14 14\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgFalse);\nexport default __webpack_public_path__ + \"static/media/false.7f926859.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/table/true\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4.17451294,13.3251347 L0.599425104,9.29667256 C-0.199808368,8.3960844 -0.199808368,6.94040225 0.599425104,6.03981409 C1.39865858,5.13922593 2.69051421,5.13922593 3.48974768,6.03981409 L5.61967423,8.439847 L12.5102523,0.675441122 C13.3094858,-0.225147041 14.6033855,-0.225147041 15.4005749,0.675441122 C16.1998084,1.57372599 16.1998084,3.03171143 15.4005749,3.93229959 L7.06483552,13.3251347 C6.66624082,13.7742771 6.14295752,14 5.61967423,14 C5.09639093,14 4.57310763,13.7742771 4.17451294,13.3251347 Z\",\n id: \"Fill-1\",\n fill: \"#48F694\"\n}));\n\nfunction SvgTrue(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"16px\",\n height: \"14px\",\n viewBox: \"0 0 16 14\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgTrue);\nexport default __webpack_public_path__ + \"static/media/true.8e532da3.svg\";\nexport { ForwardRef as ReactComponent };","import baseStyles from 'src/pages/Logs.styles'\nimport { backgroundColor, zircon } from 'src/styling/variables'\n\nconst { fillColumn } = baseStyles\n\nconst booleanPropertiesTableStyles = {\n booleanPropertiesTableWrapper: {\n display: 'flex',\n flexDirection: 'column',\n width: 396\n },\n tableRow: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n '&:nth-child(even)': {\n backgroundColor: backgroundColor\n },\n '&:nth-child(odd)': {\n backgroundColor: zircon\n },\n minHeight: 32,\n height: 'auto',\n padding: [[8, 16, 8, 24]],\n boxShadow: '0 0 0 0 rgba(0, 0, 0, 0)'\n },\n leftTableCell: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'left',\n width: 200,\n padding: [0]\n },\n rightTableCell: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'right',\n padding: [0]\n },\n transparentButton: {\n '& > *': {\n margin: 'auto 12px'\n },\n '& button': {\n border: 'none',\n backgroundColor: 'transparent',\n cursor: 'pointer'\n }\n },\n rowWrapper: {\n display: 'flex',\n alignItems: 'center',\n position: 'relative',\n flex: 'wrap'\n },\n rightAligned: {\n marginLeft: 'auto'\n },\n radioButtons: {\n display: 'flex',\n flexDirection: 'row',\n margin: [-15]\n },\n rightLink: {\n marginLeft: '20px'\n },\n fillColumn,\n popoverContent: {\n width: 272,\n padding: [[10, 15]]\n }\n}\n\nexport { booleanPropertiesTableStyles }\n","import { makeStyles } from '@material-ui/core/styles'\nimport classnames from 'classnames'\nimport { useFormikContext, Form, Formik, Field as FormikField } from 'formik'\nimport _ from 'lodash'\nimport React, { useState, memo } from 'react'\nimport * as Yup from 'yup'\n\nimport PromptWhenDirty from 'src/components/PromptWhenDirty'\nimport { Link, IconButton } from 'src/components/buttons'\nimport { RadioGroup } from 'src/components/inputs/formik'\nimport { Table, TableBody, TableRow, TableCell } from 'src/components/table'\nimport { H4 } from 'src/components/typography'\nimport { ReactComponent as EditIconDisabled } from 'src/styling/icons/action/edit/disabled.svg'\nimport { ReactComponent as EditIcon } from 'src/styling/icons/action/edit/enabled.svg'\nimport { ReactComponent as FalseIcon } from 'src/styling/icons/table/false.svg'\nimport { ReactComponent as TrueIcon } from 'src/styling/icons/table/true.svg'\n\nimport { booleanPropertiesTableStyles } from './BooleanPropertiesTable.styles'\n\nconst useStyles = makeStyles(booleanPropertiesTableStyles)\n\nconst BooleanCell = ({ name }) => {\n const { values } = useFormikContext()\n return values[name] === 'true' ? : \n}\n\nconst BooleanPropertiesTable = memo(\n ({ title, disabled, data, elements, save, forcedEditing = false }) => {\n const initialValues = _.fromPairs(elements.map(it => [it.name, '']))\n const schemaValidation = _.fromPairs(\n elements.map(it => [it.name, Yup.boolean().required()])\n )\n\n const [editing, setEditing] = useState(forcedEditing)\n\n const classes = useStyles()\n\n const innerSave = async value => {\n save(value)\n setEditing(false)\n }\n\n const innerCancel = () => setEditing(false)\n\n const radioButtonOptions = [\n { display: 'Yes', code: 'true' },\n { display: 'No', code: 'false' }\n ]\n\n return (\n
\n \n
\n
\n

{title}

\n {editing ? (\n
\n \n Save\n \n \n Cancel\n \n
\n ) : (\n setEditing(true)}>\n {disabled ? : }\n \n )}\n
\n \n \n \n {elements.map((it, idx) => (\n \n \n {it.display}\n \n \n {editing && (\n \n )}\n {!editing && }\n \n \n ))}\n \n
\n \n \n
\n )\n }\n)\n\nexport default BooleanPropertiesTable\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core/styles'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { memo } from 'react'\n\nimport { BooleanPropertiesTable } from 'src/components/booleanPropertiesTable'\nimport { Switch } from 'src/components/inputs'\nimport { H4, P, Label2 } from 'src/components/typography'\nimport { fromNamespace, toNamespace, namespaces } from 'src/utils/config'\n\nimport { mainStyles } from './ReceiptPrinting.styles'\n\nconst useStyles = makeStyles(mainStyles)\n\nconst GET_CONFIG = gql`\n query getData {\n config\n }\n`\n\nconst SAVE_CONFIG = gql`\n mutation Save($config: JSONObject) {\n saveConfig(config: $config)\n }\n`\n\nconst ReceiptPrinting = memo(({ wizard }) => {\n const classes = useStyles()\n\n const { data } = useQuery(GET_CONFIG)\n\n const [saveConfig] = useMutation(SAVE_CONFIG, {\n refetchQueries: () => ['getData']\n })\n\n const save = it =>\n saveConfig({\n variables: { config: toNamespace(namespaces.RECEIPT, it) }\n })\n\n const receiptPrintingConfig =\n data?.config && fromNamespace(namespaces.RECEIPT, data.config)\n if (!receiptPrintingConfig) return null\n\n return (\n <>\n
\n

Receipt options

\n
\n
\n

Enable receipt printing?

\n
\n \n saveConfig({\n variables: {\n config: toNamespace(\n namespaces.RECEIPT,\n R.merge(receiptPrintingConfig, {\n active: event.target.checked\n })\n )\n }\n })\n }\n />\n
\n {receiptPrintingConfig.active ? 'Yes' : 'No'}\n
\n \n \n )\n})\n\nexport default ReceiptPrinting\n","const mainStyles = {\n rowWrapper: {\n display: 'flex',\n alignItems: 'center',\n position: 'relative',\n flex: 'wrap'\n },\n switchWrapper: {\n display: 'flex',\n marginLeft: 120\n }\n}\n\nexport { mainStyles }\n","import ReceiptPrinting from './ReceiptPrinting'\n\nexport default ReceiptPrinting\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core'\nimport classnames from 'classnames'\nimport { Form, Formik, Field as FormikField } from 'formik'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\nimport * as Yup from 'yup'\n\nimport ErrorMessage from 'src/components/ErrorMessage'\nimport PromptWhenDirty from 'src/components/PromptWhenDirty'\nimport { Link, IconButton } from 'src/components/buttons'\nimport { Switch } from 'src/components/inputs'\nimport { TextInput } from 'src/components/inputs/formik'\nimport { H4, Info2, Info3, Label2, Label3 } from 'src/components/typography'\nimport { ReactComponent as EditIcon } from 'src/styling/icons/action/edit/enabled.svg'\nimport { fromNamespace, toNamespace, namespaces } from 'src/utils/config'\n\nimport {\n styles as globalStyles,\n termsConditionsStyles,\n fieldStyles\n} from './OperatorInfo.styles'\n\nconst useFieldStyles = makeStyles(fieldStyles)\n\nconst Field = ({\n editing,\n name,\n width,\n placeholder,\n label,\n value,\n multiline = false,\n rows,\n onFocus,\n ...props\n}) => {\n const classes = useFieldStyles()\n\n const classNames = {\n [classes.field]: true,\n [classes.notEditing]: !editing,\n [classes.notEditingSingleLine]: !editing && !multiline,\n [classes.notEditingMultiline]: !editing && multiline\n }\n\n return (\n
\n {!editing && (\n <>\n {label}\n {value}\n \n )}\n {editing && (\n \n )}\n
\n )\n}\n\nconst GET_CONFIG = gql`\n query getData {\n config\n }\n`\n\nconst SAVE_CONFIG = gql`\n mutation Save($config: JSONObject) {\n saveConfig(config: $config)\n }\n`\n\nconst styles = R.merge(globalStyles, termsConditionsStyles)\n\nconst useTermsConditionsStyles = makeStyles(styles)\n\nconst TermsConditions = () => {\n const [error, setError] = useState(null)\n const [editing, setEditing] = useState(false)\n const [saveConfig] = useMutation(SAVE_CONFIG, {\n onCompleted: () => {\n setError(null)\n setEditing(false)\n },\n refetchQueries: () => ['getData'],\n onError: e => setError(e)\n })\n\n const classes = useTermsConditionsStyles()\n\n const { data } = useQuery(GET_CONFIG)\n\n const termsAndConditions =\n data?.config && fromNamespace(namespaces.TERMS_CONDITIONS, data.config)\n const formData = termsAndConditions ?? {}\n const showOnScreen = termsAndConditions?.active ?? false\n\n const save = it =>\n saveConfig({\n variables: { config: toNamespace(namespaces.TERMS_CONDITIONS, it) }\n })\n\n const fields = [\n {\n name: 'title',\n label: 'Screen title',\n value: formData.title ?? '',\n width: 282\n },\n {\n name: 'text',\n label: 'Text content',\n value: formData.text ?? '',\n width: 502,\n multiline: true,\n rows: 6\n },\n {\n name: 'acceptButtonText',\n label: 'Accept button text',\n value: formData.acceptButtonText ?? '',\n placeholder: 'I accept',\n width: 282\n },\n {\n name: 'cancelButtonText',\n label: 'Cancel button text',\n value: formData.cancelButtonText ?? '',\n placeholder: 'Cancel',\n width: 282\n }\n ]\n\n const findField = name => R.find(R.propEq('name', name))(fields)\n const findValue = name => findField(name).value\n\n const initialValues = {\n title: findValue('title'),\n text: findValue('text'),\n acceptButtonText: findValue('acceptButtonText'),\n cancelButtonText: findValue('cancelButtonText')\n }\n\n const validationSchema = Yup.object().shape({\n title: Yup.string()\n .required()\n .max(50, 'Too long'),\n text: Yup.string().required(),\n acceptButtonText: Yup.string()\n .required()\n .max(50, 'Too long'),\n cancelButtonText: Yup.string()\n .required()\n .max(50, 'Too long')\n })\n\n return (\n <>\n
\n

Terms & Conditions

\n
\n
\n
\n Show on screen\n \n save({\n active: event.target.checked\n })\n }\n />\n {showOnScreen ? 'Yes' : 'No'}\n
\n
\n Info card\n {!editing && (\n setEditing(true)}>\n \n \n )}\n
\n save(values)}\n onReset={() => {\n setEditing(false)\n setError(null)\n }}>\n
\n \n {fields.map((f, idx) => (\n
\n setError(null)}\n />\n
\n ))}\n
\n {editing && (\n <>\n \n Save\n \n \n Cancel\n \n {error && (\n \n Failed to save changes\n \n )}\n \n )}\n
\n \n \n
\n \n )\n}\n\nexport default TermsConditions\n","import { makeStyles } from '@material-ui/core'\nimport Grid from '@material-ui/core/Grid'\nimport React from 'react'\nimport {\n Route,\n Switch,\n Redirect,\n useLocation,\n useHistory\n} from 'react-router-dom'\n\nimport Sidebar from 'src/components/layout/Sidebar'\nimport TitleSection from 'src/components/layout/TitleSection'\n\nimport CoinAtmRadar from './CoinATMRadar'\nimport ContactInfo from './ContactInfo'\nimport ReceiptPrinting from './ReceiptPrinting'\nimport TermsConditions from './TermsConditions'\n\nconst styles = {\n grid: {\n flex: 1,\n height: '100%'\n },\n content: {\n flex: 1,\n marginLeft: 48,\n paddingTop: 15\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst innerRoutes = [\n {\n label: 'Contact information',\n route: '/settings/operator-info/contact-info',\n component: ContactInfo\n },\n {\n label: 'Receipt',\n route: '/settings/operator-info/receipt-printing',\n component: ReceiptPrinting\n },\n {\n label: 'Coin ATM Radar',\n route: '/settings/operator-info/coin-atm-radar',\n component: CoinAtmRadar\n },\n {\n label: 'Terms & Conditions',\n route: '/settings/operator-info/terms-conditions',\n component: TermsConditions\n }\n]\n\nconst Routes = ({ wizard }) => (\n \n \n \n {innerRoutes.map(({ route, component: Page, key }) => (\n \n \n \n ))}\n \n)\n\nconst OperatorInfo = ({ wizard = false }) => {\n const classes = useStyles()\n const history = useHistory()\n const location = useLocation()\n\n const isSelected = it => location.pathname === it.route\n\n const onClick = it => history.push(it.route)\n\n return (\n <>\n \n \n it.label}\n onClick={onClick}\n />\n
\n \n
\n
\n \n )\n}\n\nexport default OperatorInfo\n","import { makeStyles } from '@material-ui/core'\nimport Chip from '@material-ui/core/Chip'\nimport * as R from 'ramda'\nimport React from 'react'\n\nimport {\n secondaryColorLighter,\n secondaryColorDarker,\n offErrorColor,\n errorColor,\n offColor,\n inputFontWeight,\n smallestFontSize,\n inputFontFamily,\n spacer\n} from 'src/styling/variables'\nimport { onlyFirstToUpper } from 'src/utils/string'\n\nimport typographyStyles from './typography/styles'\nconst { label1 } = typographyStyles\n\nconst colors = {\n running: secondaryColorDarker,\n notRunning: offErrorColor\n}\n\nconst backgroundColors = {\n running: secondaryColorLighter,\n notRunning: errorColor\n}\n\nconst styles = {\n uptimeContainer: {\n display: 'inline-block',\n minWidth: 104,\n margin: [[0, 20]]\n },\n name: {\n extend: label1,\n paddingLeft: 4,\n color: offColor\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst useChipStyles = makeStyles({\n root: {\n borderRadius: spacer / 2,\n marginTop: spacer / 2,\n marginRight: spacer / 4,\n marginBottom: spacer / 2,\n marginLeft: spacer / 4,\n height: spacer * 3,\n backgroundColor: ({ type }) => backgroundColors[type]\n },\n label: {\n fontSize: smallestFontSize,\n fontWeight: inputFontWeight,\n fontFamily: inputFontFamily,\n padding: [[spacer / 2, spacer]],\n color: ({ type }) => colors[type]\n }\n})\n\nconst Uptime = ({ process, ...props }) => {\n const classes = useStyles()\n\n const uptime = time => {\n if (time < 60) return `${time}s`\n if (time < 3600) return `${Math.floor(time / 60)}m`\n if (time < 86400) return `${Math.floor(time / 60 / 60)}h`\n return `${Math.floor(time / 60 / 60 / 24)}d`\n }\n\n return (\n
\n
{R.toLower(process.name)}
\n \n
\n )\n}\n\nexport default Uptime\n","import { useQuery } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core'\nimport gql from 'graphql-tag'\nimport moment from 'moment'\nimport * as R from 'ramda'\nimport React, { useState, useRef } from 'react'\n\nimport LogsDowloaderPopover from 'src/components/LogsDownloaderPopper'\nimport Title from 'src/components/Title'\nimport Uptime from 'src/components/Uptime'\nimport { Select } from 'src/components/inputs'\nimport {\n Table,\n TableHead,\n TableRow,\n TableHeader,\n TableBody,\n TableCell\n} from 'src/components/table'\nimport { Info3 } from 'src/components/typography'\nimport typographyStyles from 'src/components/typography/styles'\nimport { offColor } from 'src/styling/variables'\n\nimport logsStyles from './Logs.styles'\n\nconst { p } = typographyStyles\nconst { tableWrapper } = logsStyles\n\nconst localStyles = {\n serverTableWrapper: {\n extend: tableWrapper,\n maxWidth: '100%',\n marginLeft: 0\n },\n serverVersion: {\n extend: p,\n color: offColor,\n margin: 'auto 0 auto 0'\n },\n headerLine2: {\n display: 'flex',\n justifyContent: 'space-between',\n marginBottom: 24\n },\n uptimeContainer: {\n margin: 'auto 0 auto 0'\n }\n}\n\nconst styles = R.merge(logsStyles, localStyles)\n\nconst useStyles = makeStyles(styles)\n\nconst SHOW_ALL = 'Show all'\n\nconst formatDate = date => {\n return moment(date).format('YYYY-MM-DD HH:mm')\n}\n\nconst NUM_LOG_RESULTS = 500\n\nconst GET_CSV = gql`\n query ServerData($limit: Int, $from: Date, $until: Date) {\n serverLogsCsv(limit: $limit, from: $from, until: $until)\n }\n`\n\nconst GET_DATA = gql`\n query ServerData($limit: Int, $from: Date, $until: Date) {\n serverVersion\n uptime {\n name\n state\n uptime\n }\n serverLogs(limit: $limit, from: $from, until: $until) {\n logLevel\n id\n timestamp\n message\n }\n }\n`\n\nconst Logs = () => {\n const classes = useStyles()\n\n const tableEl = useRef()\n\n const [saveMessage, setSaveMessage] = useState(null)\n const [logLevel, setLogLevel] = useState(SHOW_ALL)\n\n const { data } = useQuery(GET_DATA, {\n onCompleted: () => setSaveMessage(''),\n variables: {\n limit: NUM_LOG_RESULTS\n }\n })\n\n const serverVersion = data?.serverVersion\n const processStates = data?.uptime ?? []\n\n const getLogLevels = R.compose(\n R.prepend(SHOW_ALL),\n R.uniq,\n R.concat(['error', 'info', 'debug']),\n R.map(R.path(['logLevel'])),\n R.path(['serverLogs'])\n )\n\n const handleLogLevelChange = logLevel => {\n if (tableEl.current) tableEl.current.scrollTo(0, 0)\n\n setLogLevel(logLevel)\n }\n\n return (\n <>\n
\n
\n Server\n {data && (\n
\n R.path(['serverLogsCsv'])(logs)}\n />\n {saveMessage}\n
\n )}\n
\n
\n {serverVersion && Server version: v{serverVersion}}\n
\n
\n
\n {data && (\n \n )}\n
\n {processStates &&\n processStates.map((process, idx) => (\n \n ))}\n
\n
\n
\n
\n \n \n \n Date\n Level\n \n \n \n \n {data &&\n data.serverLogs\n .filter(\n log => logLevel === SHOW_ALL || log.logLevel === logLevel\n )\n .map((log, idx) => (\n \n {formatDate(log.timestamp)}\n {log.logLevel}\n {log.message}\n \n ))}\n \n
\n
\n
\n \n )\n}\n\nexport default Logs\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/action/edit/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1,18 L1,18 C1,19.657 2.343,21 4,21 L18,21 C19.657,21 21,19.657 21,18\",\n id: \"Stroke-1\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Stroke-3\",\n stroke: \"#FFFFFF\",\n strokeWidth: 2,\n points: \"6 12 17 1 21 5 10 16 6 16\"\n}));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"22px\",\n height: \"22px\",\n viewBox: \"0 0 22 22\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.5f161f2c.svg\";\nexport { ForwardRef as ReactComponent };","import typographyStyles from 'src/components/typography/styles'\nimport { offColor } from 'src/styling/variables'\n\nconst { label1, p } = typographyStyles\n\nexport default {\n tr: ({ height }) => ({\n margin: 0,\n height\n }),\n table: ({ width }) => ({\n width\n }),\n head: {\n display: 'flex',\n flex: 1,\n justifyContent: 'space-between',\n alignItems: 'center',\n paddingRight: 12\n },\n button: {\n marginBottom: 1\n },\n itemWrapper: {\n display: 'flex',\n flexDirection: 'column',\n marginTop: 16,\n minHeight: 35\n },\n label: {\n extend: label1,\n color: offColor,\n marginBottom: 4\n },\n item: {\n extend: p,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap'\n }\n}\n","import { makeStyles } from '@material-ui/core'\nimport classnames from 'classnames'\nimport React from 'react'\n\nimport { IconButton } from 'src/components/buttons'\nimport {\n Table,\n THead,\n TBody,\n Td,\n Th,\n Tr\n} from 'src/components/fake-table/Table'\nimport { ReactComponent as EditIcon } from 'src/styling/icons/action/edit/white.svg'\n\nimport styles from './SingleRowTable.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst SingleRowTable = ({\n width = 378,\n height = 128,\n title,\n items,\n onEdit,\n className\n}) => {\n const classes = useStyles({ width, height })\n\n return (\n <>\n \n \n \n \n \n \n \n \n \n
\n {title}\n \n \n \n
\n {items && (\n <>\n {items[0] && (\n
\n
{items[0].label}
\n
{items[0].value}
\n
\n )}\n {items[1] && (\n
\n
{items[1].label}
\n
{items[1].value}
\n
\n )}\n \n )}\n
\n \n )\n}\n\nexport default SingleRowTable\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles, Grid } from '@material-ui/core'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport Modal from 'src/components/Modal'\nimport TitleSection from 'src/components/layout/TitleSection'\nimport SingleRowTable from 'src/components/single-row-table/SingleRowTable'\nimport { formatLong } from 'src/utils/string'\n\nimport FormRenderer from './FormRenderer'\nimport schemas from './schemas'\n\nconst GET_INFO = gql`\n query getData {\n accounts\n }\n`\n\nconst SAVE_ACCOUNT = gql`\n mutation Save($accounts: JSONObject) {\n saveAccounts(accounts: $accounts)\n }\n`\n\nconst styles = {\n wrapper: {\n // widths + spacing is a little over 1200 on the design\n // this adjusts the margin after a small reduction on card size\n marginLeft: 1\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst Services = () => {\n const [editingSchema, setEditingSchema] = useState(null)\n\n const { data } = useQuery(GET_INFO)\n const [saveAccount] = useMutation(SAVE_ACCOUNT, {\n onCompleted: () => setEditingSchema(null),\n refetchQueries: ['getData']\n })\n\n const classes = useStyles()\n\n const accounts = data?.accounts ?? {}\n\n const getItems = (code, elements) => {\n const faceElements = R.filter(R.prop('face'))(elements)\n const values = accounts[code] || {}\n return R.map(({ display, code, long }) => ({\n label: display,\n value: long ? formatLong(values[code]) : values[code]\n }))(faceElements)\n }\n\n return (\n
\n \n \n {R.values(schemas).map(schema => (\n \n setEditingSchema(schema)}\n items={getItems(schema.code, schema.elements)}\n />\n \n ))}\n \n {editingSchema && (\n setEditingSchema(null)}\n open={true}>\n \n saveAccount({\n variables: { accounts: { [editingSchema.code]: it } }\n })\n }\n elements={editingSchema.elements}\n validationSchema={editingSchema.validationSchema}\n value={accounts[editingSchema.code]}\n />\n \n )}\n
\n )\n}\n\nexport default Services\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/ID/card/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Stroke-1\",\n stroke: \"#FFFFFF\",\n strokeWidth: 1.6,\n points: \"0 16 22 16 22 0 0 0\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 11.7857143,\n y1: 4,\n x2: 18.8571429,\n y2: 4,\n id: \"Stroke-3\",\n stroke: \"#FFFFFF\",\n strokeWidth: 1.6\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 11.7857143,\n y1: 7.2,\n x2: 18.8571429,\n y2: 7.2,\n id: \"Stroke-4\",\n stroke: \"#FFFFFF\",\n strokeWidth: 1.6\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"Stroke-5\",\n stroke: \"#FFFFFF\",\n strokeWidth: 1.6,\n points: \"3.14285714 11.2 8.64285714 11.2 8.64285714 4 3.14285714 4\"\n}));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"22px\",\n height: \"16px\",\n viewBox: \"0 0 22 16\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.aa3a2aa4.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/ID/phone/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.47150618,12.52898 C9.939556,15.9970298 13.7804112,16.1146315 15.4756355,15.9586292 C16.0220434,15.9090285 16.5308507,15.6578249 16.9188563,15.2698193 L19.0004862,13.1881894 L17.0220577,11.210561 L15.0436293,10.5505516 L13.7244104,11.8697705 C13.7244104,11.8697705 12.4059914,13.1881894 9.10914407,9.89054208 C5.81229671,6.59449473 7.13071565,5.27527578 7.13071565,5.27527578 L8.4499346,3.95605683 L7.78992512,1.97842842 L5.81229671,0 L3.73066681,2.0816299 C3.34186123,2.46963548 3.09145763,2.97844279 3.04105691,3.52485063 C2.88585468,5.22007499 3.00345637,9.06013015 6.47150618,12.52898 Z\",\n id: \"Stroke-1-Copy\",\n stroke: \"#FFFFFF\",\n strokeWidth: 1.6\n}));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"22px\",\n height: \"16px\",\n viewBox: \"0 0 22 16\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.d630943a.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/ID/phone/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.47150618,12.52898 C9.939556,15.9970298 13.7804112,16.1146315 15.4756355,15.9586292 C16.0220434,15.9090285 16.5308507,15.6578249 16.9188563,15.2698193 L19.0004862,13.1881894 L17.0220577,11.210561 L15.0436293,10.5505516 L13.7244104,11.8697705 C13.7244104,11.8697705 12.4059914,13.1881894 9.10914407,9.89054208 C5.81229671,6.59449473 7.13071565,5.27527578 7.13071565,5.27527578 L8.4499346,3.95605683 L7.78992512,1.97842842 L5.81229671,0 L3.73066681,2.0816299 C3.34186123,2.46963548 3.09145763,2.97844279 3.04105691,3.52485063 C2.88585468,5.22007499 3.00345637,9.06013015 6.47150618,12.52898 Z\",\n id: \"Stroke-1-Copy\",\n stroke: \"#1B2559\",\n strokeWidth: 1.6\n}));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"22px\",\n height: \"16px\",\n viewBox: \"0 0 22 16\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.d95e9bb2.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/ID/photo/white\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11,13 C8.7912,13 7,11.2088 7,9 C7,6.7912 8.7912,5 11,5 C13.2088,5 15,6.7912 15,9 C15,11.2088 13.2088,13 11,13 Z M15.7142857,2.4 L13.3571429,0 L8.64285714,0 L6.28571429,2.4 L0,2.4 L0,16 L22,16 L22,2.4 L15.7142857,2.4 Z\",\n id: \"Stroke-1\",\n stroke: \"#FFFFFF\",\n strokeWidth: 1.6\n}));\n\nfunction SvgWhite(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"22px\",\n height: \"16px\",\n viewBox: \"0 0 22 16\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhite);\nexport default __webpack_public_path__ + \"static/media/white.024587b7.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon/ID/photo/zodiac\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11,13 C8.7912,13 7,11.2088 7,9 C7,6.7912 8.7912,5 11,5 C13.2088,5 15,6.7912 15,9 C15,11.2088 13.2088,13 11,13 Z M15.7142857,2.4 L13.3571429,0 L8.64285714,0 L6.28571429,2.4 L0,2.4 L0,16 L22,16 L22,2.4 L15.7142857,2.4 Z\",\n id: \"Stroke-1\",\n stroke: \"#1B2559\",\n strokeWidth: 1.6\n}));\n\nfunction SvgZodiac(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"22px\",\n height: \"16px\",\n viewBox: \"0 0 22 16\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgZodiac);\nexport default __webpack_public_path__ + \"static/media/zodiac.4467d30c.svg\";\nexport { ForwardRef as ReactComponent };","import typographyStyles from 'src/components/typography/styles'\nimport { offColor } from 'src/styling/variables'\n\nconst { p } = typographyStyles\n\nexport default {\n wrapper: {\n display: 'flex',\n flexDirection: 'column',\n marginTop: 24\n },\n row: {\n display: 'flex',\n flexDirection: 'row',\n marginBottom: 36\n },\n secondRow: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n marginBottom: 36\n },\n lastRow: {\n display: 'flex',\n flexDirection: 'row',\n marginBottom: 32\n },\n label: {\n color: offColor,\n margin: [[0, 0, 6, 0]]\n },\n txIcon: {\n marginRight: 10\n },\n popover: {\n height: 164,\n width: 215\n },\n idButton: {\n marginRight: 4\n },\n idCardDataCard: {\n extend: p,\n display: 'flex',\n padding: [[11, 8]],\n // rework this into a proper component\n '& > div': {\n display: 'flex',\n flexDirection: 'column',\n '& > div': {\n width: 144,\n height: 37,\n marginBottom: 15,\n '&:last-child': {\n marginBottom: 0\n }\n }\n }\n },\n bold: {\n fontWeight: 700\n },\n direction: {\n width: 233\n },\n availableIds: {\n width: 232\n },\n exchangeRate: {\n width: 250\n },\n commission: {\n width: 217\n },\n address: {\n width: 280\n },\n transactionId: {\n width: 280\n },\n sessionId: {\n width: 215\n }\n}\n","const getCashOutStatus = it => {\n if (it.hasError) return 'Error'\n if (it.dispense) return 'Success'\n if (it.expired) return 'Expired'\n return 'Pending'\n}\n\nconst getCashInStatus = it => {\n if (it.operatorCompleted) return 'Cancelled'\n if (it.hasError) return 'Error'\n if (it.sendConfirmed) return 'Sent'\n if (it.expired) return 'Expired'\n return 'Pending'\n}\n\nconst getStatus = it => {\n if (it.txClass === 'cashOut') {\n return getCashOutStatus(it)\n }\n return getCashInStatus(it)\n}\n\nexport { getStatus }\n","import { makeStyles, Box } from '@material-ui/core'\nimport BigNumber from 'bignumber.js'\nimport moment from 'moment'\nimport React, { memo } from 'react'\n\nimport { IDButton } from 'src/components/buttons'\nimport { Label1 } from 'src/components/typography'\nimport { ReactComponent as CardIdInverseIcon } from 'src/styling/icons/ID/card/white.svg'\nimport { ReactComponent as CardIdIcon } from 'src/styling/icons/ID/card/zodiac.svg'\nimport { ReactComponent as PhoneIdInverseIcon } from 'src/styling/icons/ID/phone/white.svg'\nimport { ReactComponent as PhoneIdIcon } from 'src/styling/icons/ID/phone/zodiac.svg'\nimport { ReactComponent as CamIdInverseIcon } from 'src/styling/icons/ID/photo/white.svg'\nimport { ReactComponent as CamIdIcon } from 'src/styling/icons/ID/photo/zodiac.svg'\nimport { ReactComponent as TxInIcon } from 'src/styling/icons/direction/cash-in.svg'\nimport { ReactComponent as TxOutIcon } from 'src/styling/icons/direction/cash-out.svg'\nimport { URI } from 'src/utils/apollo'\nimport { toUnit, formatCryptoAddress } from 'src/utils/coin'\nimport { onlyFirstToUpper } from 'src/utils/string'\n\nimport CopyToClipboard from './CopyToClipboard'\nimport styles from './DetailsCard.styles'\nimport { getStatus } from './helper'\n\nconst useStyles = makeStyles(styles)\n\nconst formatAddress = (cryptoCode = '', address = '') =>\n formatCryptoAddress(cryptoCode, address).replace(/(.{5})/g, '$1 ')\n\nconst Label = ({ children }) => {\n const classes = useStyles()\n return {children}\n}\n\nconst DetailsRow = ({ it: tx }) => {\n const classes = useStyles()\n\n const fiat = Number.parseFloat(tx.fiat)\n const crypto = toUnit(new BigNumber(tx.cryptoAtoms), tx.cryptoCode)\n const commissionPercentage = Number.parseFloat(tx.commissionPercentage, 2)\n const commission = Number(fiat * commissionPercentage).toFixed(2)\n const exchangeRate = Number(fiat / crypto).toFixed(3)\n const displayExRate = `1 ${tx.cryptoCode} = ${exchangeRate} ${tx.fiatCode}`\n\n const customer = tx.customerIdCardData && {\n name: `${onlyFirstToUpper(\n tx.customerIdCardData.firstName\n )} ${onlyFirstToUpper(tx.customerIdCardData.lastName)}`,\n age: moment().diff(moment(tx.customerIdCardData.dateOfBirth), 'years'),\n country: tx.customerIdCardData.country,\n idCardNumber: tx.customerIdCardData.documentNumber,\n idCardExpirationDate: moment(tx.customerIdCardData.expirationDate).format(\n 'DD-MM-YYYY'\n )\n }\n\n return (\n
\n
\n
\n \n
\n \n {tx.txClass === 'cashOut' ? : }\n \n {tx.txClass === 'cashOut' ? 'Cash-out' : 'Cash-in'}\n
\n
\n\n
\n \n \n {tx.customerPhone && (\n \n {tx.customerPhone}\n \n )}\n {tx.customerIdCardPhotoPath && !tx.customerIdCardData && (\n \n \n \n )}\n {tx.customerIdCardData && (\n \n
\n
\n
\n \n
{customer.name}
\n
\n
\n \n
{customer.age}
\n
\n
\n \n
{customer.country}
\n
\n
\n
\n
\n \n
{customer.idCardNumber}
\n
\n
\n \n
{customer.idCardExpirationDate}
\n
\n
\n
\n \n )}\n {tx.customerFrontCameraPath && (\n \n \n \n )}\n
\n
\n
\n \n
{crypto > 0 ? displayExRate : '-'}
\n
\n
\n \n
\n {`${commission} ${tx.fiatCode} (${commissionPercentage * 100} %)`}\n
\n
\n
\n \n
\n {tx.txClass === 'cashIn'\n ? `${Number.parseFloat(tx.cashInFee)} ${tx.fiatCode}`\n : 'N/A'}\n
\n
\n
\n
\n
\n \n
\n \n {formatAddress(tx.cryptoCode, tx.toAddress)}\n \n
\n
\n
\n \n
\n {tx.txClass === 'cashOut' ? (\n 'N/A'\n ) : (\n {tx.txHash}\n )}\n
\n
\n
\n \n {tx.id}\n
\n
\n
\n
\n \n {getStatus(tx)}\n
\n
\n
\n )\n}\n\nexport default memo(DetailsRow, (prev, next) => prev.id === next.id)\n","import { useQuery } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core'\nimport BigNumber from 'bignumber.js'\nimport gql from 'graphql-tag'\nimport moment from 'moment'\nimport * as R from 'ramda'\nimport React from 'react'\n\nimport LogsDowloaderPopover from 'src/components/LogsDownloaderPopper'\nimport Title from 'src/components/Title'\nimport DataTable from 'src/components/tables/DataTable'\nimport { ReactComponent as TxInIcon } from 'src/styling/icons/direction/cash-in.svg'\nimport { ReactComponent as TxOutIcon } from 'src/styling/icons/direction/cash-out.svg'\nimport { toUnit, formatCryptoAddress } from 'src/utils/coin'\n\nimport DetailsRow from './DetailsCard'\nimport { mainStyles } from './Transactions.styles'\nimport { getStatus } from './helper'\n\nconst useStyles = makeStyles(mainStyles)\n\nconst NUM_LOG_RESULTS = 1000\n\nconst GET_TRANSACTIONS_CSV = gql`\n query transactions($limit: Int, $from: Date, $until: Date) {\n transactionsCsv(limit: $limit, from: $from, until: $until)\n }\n`\n\nconst GET_TRANSACTIONS = gql`\n query transactions($limit: Int, $from: Date, $until: Date) {\n transactions(limit: $limit, from: $from, until: $until) {\n id\n txClass\n txHash\n toAddress\n commissionPercentage\n expired\n machineName\n operatorCompleted\n sendConfirmed\n dispense\n hasError: error\n deviceId\n fiat\n cashInFee\n fiatCode\n cryptoAtoms\n cryptoCode\n toAddress\n created\n customerName\n customerIdCardData\n customerIdCardPhotoPath\n customerFrontCameraPath\n customerPhone\n }\n }\n`\n\nconst Transactions = () => {\n const classes = useStyles()\n\n const { data: txResponse, loading } = useQuery(GET_TRANSACTIONS, {\n variables: {\n limit: NUM_LOG_RESULTS\n }\n })\n\n const formatCustomerName = customer => {\n const { firstName, lastName } = customer\n\n return `${R.o(R.toUpper, R.head)(firstName)}. ${lastName}`\n }\n\n const getCustomerDisplayName = tx => {\n if (tx.customerName) return tx.customerName\n if (tx.customerIdCardData) return formatCustomerName(tx.customerIdCardData)\n return tx.customerPhone\n }\n\n const elements = [\n {\n header: '',\n width: 62,\n size: 'sm',\n view: it => (it.txClass === 'cashOut' ? : )\n },\n {\n header: 'Machine',\n name: 'machineName',\n width: 180,\n size: 'sm',\n view: R.path(['machineName'])\n },\n {\n header: 'Customer',\n width: 162,\n size: 'sm',\n view: getCustomerDisplayName\n },\n {\n header: 'Cash',\n width: 144,\n textAlign: 'right',\n size: 'sm',\n view: it => `${Number.parseFloat(it.fiat)} ${it.fiatCode}`\n },\n {\n header: 'Crypto',\n width: 144,\n textAlign: 'right',\n size: 'sm',\n view: it =>\n `${toUnit(new BigNumber(it.cryptoAtoms), it.cryptoCode).toFormat(5)} ${\n it.cryptoCode\n }`\n },\n {\n header: 'Address',\n view: it => formatCryptoAddress(it.cryptoCode, it.toAddress),\n className: classes.overflowTd,\n size: 'sm',\n width: 140\n },\n {\n header: 'Date (UTC)',\n view: it => moment.utc(it.created).format('YYYY-MM-DD HH:mm:ss'),\n textAlign: 'right',\n size: 'sm',\n width: 200\n },\n {\n header: 'Status',\n view: it => getStatus(it),\n size: 'sm',\n width: 80\n }\n ]\n\n return (\n <>\n
\n
\n Transactions\n {txResponse && (\n
\n R.path(['transactionsCsv'])(logs)}\n />\n
\n )}\n
\n
\n
\n \n Cash-out\n
\n
\n \n Cash-in\n
\n
\n
\n \n \n )\n}\n\nexport default Transactions\n","import { makeStyles, Box } from '@material-ui/core'\nimport classnames from 'classnames'\nimport { Field, useFormikContext } from 'formik'\nimport * as R from 'ramda'\nimport React, { memo } from 'react'\nimport * as Yup from 'yup'\n\nimport { TextInput, RadioGroup } from 'src/components/inputs/formik'\nimport { H4, Label2, Label1, Info2 } from 'src/components/typography'\n// import { ReactComponent as TxInIcon } from 'src/styling/icons/direction/cash-in.svg'\n// import { ReactComponent as TxOutIcon } from 'src/styling/icons/direction/cash-out.svg'\nimport { errorColor } from 'src/styling/variables'\n\nconst useStyles = makeStyles({\n radioLabel: {\n height: 40,\n padding: [[0, 10]]\n },\n radio: {\n padding: 4,\n margin: 4\n },\n radioGroup: {\n flexDirection: 'row'\n },\n error: {\n color: errorColor\n },\n specialLabel: {\n height: 40,\n padding: 0\n },\n specialGrid: {\n display: 'grid',\n gridTemplateColumns: [[182, 162, 141]]\n },\n directionIcon: {\n marginRight: 2\n },\n directionName: {\n marginLeft: 6\n },\n thresholdWrapper: {\n display: 'flex'\n },\n thresholdField: {\n margin: 10,\n width: 208\n },\n space: {\n marginLeft: 6,\n marginRight: 6\n },\n lastSpace: {\n marginLeft: 6\n },\n suspensionDays: {\n width: 34\n },\n input: {\n marginTop: -2\n },\n limitedInput: {\n width: 50\n },\n daysInput: {\n width: 60\n }\n})\n\n// const direction = Yup.string().required()\nconst triggerType = Yup.string().required()\nconst threshold = Yup.object().shape({\n threshold: Yup.number(),\n thresholdDays: Yup.number()\n})\nconst requirement = Yup.object().shape({\n requirement: Yup.string().required(),\n suspensionDays: Yup.number()\n})\n\nconst Schema = Yup.object().shape({\n triggerType,\n requirement,\n threshold\n // direction\n})\n\n// Direction V2 only\n// const directionSchema = Yup.object().shape({ direction })\n\n// const directionOptions = [\n// {\n// display: 'Both',\n// code: 'both'\n// },\n// {\n// display: 'Only cash-in',\n// code: 'cashIn'\n// },\n// {\n// display: 'Only cash-out',\n// code: 'cashOut'\n// }\n// ]\n\n// const directionOptions2 = [\n// {\n// display: (\n// <>\n// in\n// \n// ),\n// code: 'cashIn'\n// },\n// {\n// display: (\n// <>\n// out\n// \n// ),\n// code: 'cashOut'\n// },\n// {\n// display: (\n// <>\n// \n// \n// \n// \n// \n// \n// \n// \n// \n// ),\n// code: 'both'\n// }\n// ]\n\n// const Direction = () => {\n// const classes = useStyles()\n// const { errors } = useFormikContext()\n\n// const titleClass = {\n// [classes.error]: errors.direction\n// }\n\n// return (\n// <>\n// \n//

\n// In which type of transactions will it trigger?\n//

\n//
\n// \n// \n// )\n// }\n\n// const txDirection = {\n// schema: directionSchema,\n// options: directionOptions,\n// Component: Direction,\n// initialValues: { direction: '' }\n// }\n\n// TYPE\nconst typeSchema = Yup.object().shape({\n triggerType,\n threshold\n})\n\nconst typeOptions = [\n { display: 'Transaction amount', code: 'txAmount' },\n { display: 'Transaction volume', code: 'txVolume' },\n { display: 'Transaction velocity', code: 'txVelocity' },\n { display: 'Consecutive days', code: 'consecutiveDays' }\n]\n\nconst Type = () => {\n const classes = useStyles()\n const { errors, touched, values } = useFormikContext()\n\n const typeClass = {\n [classes.error]: errors.triggerType && touched.triggerType\n }\n\n const containsType = R.contains(values?.triggerType)\n const isThresholdEnabled = containsType([\n 'txAmount',\n 'txVolume',\n 'txVelocity'\n ])\n\n const isThresholdDaysEnabled = containsType([\n 'txVolume',\n 'txVelocity',\n 'consecutiveDays'\n ])\n\n return (\n <>\n \n

Choose trigger type

\n
\n \n\n
\n {isThresholdEnabled && (\n \n )}\n {isThresholdDaysEnabled && (\n \n )}\n
\n \n )\n}\n\nconst type = {\n schema: typeSchema,\n options: typeOptions,\n Component: Type,\n initialValues: { triggerType: '', threshold: '' }\n}\n\nconst requirementSchema = Yup.object().shape({\n requirement\n})\n\nconst requirementOptions = [\n { display: 'SMS verification', code: 'sms' },\n { display: 'ID card image', code: 'idCardPhoto' },\n { display: 'ID data', code: 'idCardData' },\n { display: 'Customer camera', code: 'facephoto' },\n { display: 'Sanctions', code: 'sanctions' },\n { display: 'US SSN', code: 'usSsn' },\n // { display: 'Super user', code: 'superuser' },\n { display: 'Suspend', code: 'suspend' },\n { display: 'Block', code: 'block' }\n]\n\nconst Requirement = () => {\n const classes = useStyles()\n const { errors, values } = useFormikContext()\n\n const titleClass = {\n [classes.error]: errors.requirement\n }\n\n const isSuspend = values?.requirement?.requirement === 'suspend'\n\n return (\n <>\n \n

Choose a requirement

\n
\n \n\n {isSuspend && (\n \n )}\n \n )\n}\n\nconst requirements = {\n schema: requirementSchema,\n options: requirementOptions,\n Component: Requirement,\n initialValues: { requirement: '' }\n}\n\nconst getView = (data, code, compare) => it => {\n if (!data) return ''\n\n return R.compose(R.prop(code), R.find(R.propEq(compare ?? 'code', it)))(data)\n}\n\n// const DirectionDisplay = ({ code }) => {\n// const classes = useStyles()\n// const displayName = getView(directionOptions, 'display')(code)\n// const showCashIn = code === 'cashIn' || code === 'both'\n// const showCashOut = code === 'cashOut' || code === 'both'\n\n// return (\n//
\n// {showCashOut && }\n// {showCashIn && }\n// {displayName}\n//
\n// )\n// }\n\nconst RequirementInput = () => {\n const { values } = useFormikContext()\n const classes = useStyles()\n\n const requirement = values?.requirement?.requirement\n const isSuspend = requirement === 'suspend'\n\n const display = getView(requirementOptions, 'display')(requirement)\n\n return (\n \n {`${display} ${isSuspend ? 'for' : ''}`}\n {isSuspend && (\n \n )}\n {isSuspend && 'days'}\n \n )\n}\n\nconst RequirementView = ({ requirement, suspensionDays }) => {\n const classes = useStyles()\n const display = getView(requirementOptions, 'display')(requirement)\n const isSuspend = requirement === 'suspend'\n\n return (\n \n {`${display} ${isSuspend ? 'for' : ''}`}\n {isSuspend && (\n \n {suspensionDays}\n \n )}\n {isSuspend && 'days'}\n \n )\n}\n\nconst DisplayThreshold = ({ config, currency, isEdit }) => {\n const classes = useStyles()\n\n const inputClasses = {\n [classes.input]: true,\n [classes.limitedInput]: config?.triggerType === 'txVelocity',\n [classes.daysInput]: config?.triggerType === 'consecutiveDays'\n }\n\n const threshold = config?.threshold?.threshold\n const thresholdDays = config?.threshold?.thresholdDays\n\n const Threshold = isEdit ? (\n \n ) : (\n {threshold}\n )\n const ThresholdDays = isEdit ? (\n \n ) : (\n {thresholdDays}\n )\n\n switch (config?.triggerType) {\n case 'txAmount':\n return (\n \n {Threshold}\n \n {currency}\n \n \n )\n case 'txVolume':\n return (\n \n {Threshold}\n \n {currency}\n \n \n in\n \n {ThresholdDays}\n \n days\n \n \n )\n case 'txVelocity':\n return (\n \n {Threshold}\n \n transactions in\n \n {ThresholdDays}\n \n days\n \n \n )\n case 'consecutiveDays':\n return (\n \n {ThresholdDays}\n \n days\n \n \n )\n default:\n return ''\n }\n}\n\nconst ThresholdInput = memo(({ currency }) => {\n const { values } = useFormikContext()\n\n return \n})\n\nconst ThresholdView = ({ config, currency }) => {\n return \n}\n\nconst getElements = (currency, classes) => [\n {\n name: 'triggerType',\n size: 'sm',\n width: 230,\n input: ({ field: { value: name } }) => (\n <>{getView(typeOptions, 'display')(name)}\n ),\n view: getView(typeOptions, 'display'),\n inputProps: {\n options: typeOptions,\n valueProp: 'code',\n getLabel: R.path(['display']),\n optionsLimit: null\n }\n },\n {\n name: 'requirement',\n size: 'sm',\n width: 230,\n bypassField: true,\n input: RequirementInput,\n view: it => \n },\n {\n name: 'threshold',\n size: 'sm',\n width: 284,\n textAlign: 'right',\n input: () => ,\n view: (it, config) => \n }\n // {\n // name: 'direction',\n // size: 'sm',\n // width: 282,\n // view: it => ,\n // input: RadioGroup,\n // inputProps: {\n // labelClassName: classes.tableRadioLabel,\n // className: classes.tableRadioGroup,\n // options: directionOptions2\n // }\n // }\n]\n\nconst triggerOrder = R.map(R.prop('code'))(typeOptions)\nconst sortBy = [\n R.comparator(\n (a, b) =>\n triggerOrder.indexOf(a.triggerType) < triggerOrder.indexOf(b.triggerType)\n )\n]\n\nconst fromServer = triggers =>\n R.map(\n ({ requirement, suspensionDays, threshold, thresholdDays, ...rest }) => ({\n requirement: {\n requirement,\n suspensionDays\n },\n threshold: {\n threshold,\n thresholdDays\n },\n ...rest\n })\n )(triggers)\n\nconst toServer = triggers =>\n R.map(({ requirement, threshold, ...rest }) => ({\n requirement: requirement.requirement,\n suspensionDays: requirement.suspensionDays,\n threshold: threshold.threshold,\n thresholdDays: threshold.thresholdDays,\n ...rest\n }))(triggers)\n\nexport {\n Schema,\n getElements,\n // txDirection,\n type,\n requirements,\n sortBy,\n fromServer,\n toServer\n}\n","import { makeStyles } from '@material-ui/core'\nimport { Form, Formik, useFormikContext } from 'formik'\nimport * as R from 'ramda'\nimport React, { useState, Fragment, useEffect } from 'react'\n\nimport ErrorMessage from 'src/components/ErrorMessage'\nimport Modal from 'src/components/Modal'\nimport Stepper from 'src/components/Stepper'\nimport { Button } from 'src/components/buttons'\nimport { H5, Info3 } from 'src/components/typography'\nimport { comet } from 'src/styling/variables'\n\nimport { type, requirements } from './helper'\n\nconst LAST_STEP = 2\n\nconst styles = {\n stepper: {\n margin: [[16, 0, 14, 0]]\n },\n submit: {\n display: 'flex',\n flexDirection: 'row',\n margin: [['auto', 0, 24]]\n },\n button: {\n marginLeft: 'auto'\n },\n form: {\n height: '100%',\n display: 'flex',\n flexDirection: 'column'\n },\n infoTitle: {\n margin: [[18, 0, 20, 0]]\n },\n infoCurrentText: {\n color: comet\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nconst getStep = step => {\n switch (step) {\n // case 1:\n // return txDirection\n case 1:\n return type\n case 2:\n return requirements\n default:\n return Fragment\n }\n}\n\nconst getText = (step, config, currency) => {\n switch (step) {\n // case 1:\n // return `In ${getDirectionText(config)} transactions`\n case 1:\n return `If the user ${getTypeText(config, currency)}`\n case 2:\n return `the user will be ${getRequirementText(config)}.`\n default:\n return ''\n }\n}\n\nconst orUnderline = value => {\n return R.isEmpty(value) || R.isNil(value) ? '⎼⎼⎼⎼⎼ ' : value\n}\n\n// const getDirectionText = config => {\n// switch (config.direction) {\n// case 'both':\n// return 'both cash-in and cash-out'\n// case 'cashIn':\n// return 'cash-in'\n// case 'cashOut':\n// return 'cash-out'\n// default:\n// return orUnderline(null)\n// }\n// }\n\nconst getTypeText = (config, currency) => {\n switch (config.triggerType) {\n case 'txAmount':\n return `makes a single transaction over ${orUnderline(\n config.threshold.threshold\n )} ${currency}`\n case 'txVolume':\n return `makes transactions over ${orUnderline(\n config.threshold.threshold\n )} ${currency} in ${orUnderline(config.threshold.thresholdDays)} days`\n case 'txVelocity':\n return `makes ${orUnderline(\n config.threshold.threshold\n )} transactions in ${orUnderline(config.threshold.thresholdDays)} days`\n case 'consecutiveDays':\n return `at least one transaction every day for ${orUnderline(\n config.threshold.thresholdDays\n )} days`\n default:\n return ''\n }\n}\n\nconst getRequirementText = config => {\n switch (config.requirement?.requirement) {\n case 'sms':\n return 'asked to enter code provided through SMS verification'\n case 'idCardPhoto':\n return 'asked to scan a ID with photo'\n case 'idCardData':\n return 'asked to scan a ID'\n case 'facephoto':\n return 'asked to have a photo taken'\n case 'usSsn':\n return 'asked to input his social security number'\n case 'sanctions':\n return 'matched against the OFAC sanctions list'\n case 'superuser':\n return ''\n case 'suspend':\n return `suspended for ${orUnderline(\n config.requirement.suspensionDays\n )} days`\n case 'block':\n return 'blocked'\n default:\n return orUnderline(null)\n }\n}\n\nconst InfoPanel = ({ step, config = {}, liveValues = {}, currency }) => {\n const classes = useStyles()\n\n const oldText = R.range(1, step)\n .map(it => getText(it, config, currency))\n .join(', ')\n const newText = getText(step, liveValues, currency)\n const isLastStep = step === LAST_STEP\n\n return (\n <>\n
Trigger overview so far
\n \n {oldText}\n {step !== 1 && ', '}\n {newText}\n {!isLastStep && '...'}\n \n \n )\n}\n\nconst GetValues = ({ setValues }) => {\n const { values } = useFormikContext()\n useEffect(() => {\n setValues && values && setValues(values)\n }, [setValues, values])\n\n return null\n}\n\nconst Wizard = ({ onClose, save, error, currency }) => {\n const classes = useStyles()\n\n const [liveValues, setLiveValues] = useState({})\n const [{ step, config }, setState] = useState({\n step: 1\n })\n\n const isLastStep = step === LAST_STEP\n const stepOptions = getStep(step)\n\n const onContinue = async it => {\n const newConfig = R.merge(config, stepOptions.schema.cast(it))\n\n if (isLastStep) {\n return save(newConfig)\n }\n\n setState({\n step: step + 1,\n config: newConfig\n })\n }\n\n return (\n <>\n \n }\n infoPanelHeight={172}\n open={true}>\n \n \n
\n \n \n
\n {error && Failed to save}\n \n
\n \n \n \n \n )\n}\n\nexport default Wizard\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles, Box } from '@material-ui/core'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\nimport { v4 } from 'uuid'\n\nimport Tooltip from 'src/components/Tooltip'\nimport { Link, Button } from 'src/components/buttons'\nimport { Table as EditableTable } from 'src/components/editableTable'\nimport { Switch } from 'src/components/inputs'\nimport TitleSection from 'src/components/layout/TitleSection'\nimport { P, Label2, H2 } from 'src/components/typography'\nimport { fromNamespace, toNamespace, namespaces } from 'src/utils/config'\n\nimport styles from './Triggers.styles'\nimport Wizard from './Wizard'\nimport { Schema, getElements, sortBy, fromServer, toServer } from './helper'\n\nconst useStyles = makeStyles(styles)\n\nconst SAVE_CONFIG = gql`\n mutation Save($config: JSONObject) {\n saveConfig(config: $config)\n }\n`\n\nconst GET_INFO = gql`\n query getData {\n config\n }\n`\n\nconst Triggers = () => {\n const classes = useStyles()\n const [wizard, setWizard] = useState(false)\n\n const { data, loading } = useQuery(GET_INFO)\n const triggers = fromServer(data?.config?.triggers ?? [])\n\n const complianceConfig =\n data?.config && fromNamespace('compliance')(data.config)\n const rejectAddressReuse = complianceConfig?.rejectAddressReuse ?? false\n\n const [saveConfig, { error }] = useMutation(SAVE_CONFIG, {\n onCompleted: () => setWizard(false),\n refetchQueries: () => ['getData']\n })\n\n const add = rawConfig => {\n const toSave = R.concat([{ id: v4(), direction: 'both', ...rawConfig }])(\n triggers\n )\n return saveConfig({ variables: { config: { triggers: toServer(toSave) } } })\n }\n\n const addressReuseSave = rawConfig => {\n const config = toNamespace('compliance')(rawConfig)\n return saveConfig({ variables: { config } })\n }\n\n const save = config => {\n return saveConfig({\n variables: { config: { triggers: toServer(config.triggers) } }\n })\n }\n\n const currency = R.path(['fiatCurrency'])(\n fromNamespace(namespaces.LOCALE)(data?.config)\n )\n\n return (\n <>\n \n \n \n

Reject reused addresses

\n {\n addressReuseSave({ rejectAddressReuse: event.target.checked })\n }}\n value={rejectAddressReuse}\n />\n \n {rejectAddressReuse ? 'On' : 'Off'}\n \n \n

\n This option requires a user to scan a different cryptocurrency\n address if they attempt to scan one that had been previously\n used for a transaction in your network\n

\n
\n
\n \n
\n \n {!loading && !R.isEmpty(triggers) && (\n setWizard(true)}>\n + Add new trigger\n \n )}\n \n \n {wizard && (\n setWizard(null)}\n />\n )}\n {!loading && R.isEmpty(triggers) && (\n \n

\n It seems there are no active compliance triggers on your network\n

\n \n
\n )}\n \n )\n}\n\nexport default Triggers\n","export default {\n switchLabel: {\n margin: 6,\n width: 24\n },\n tableRadioGroup: {\n flexDirection: 'row',\n justifyContent: 'space-between'\n },\n tableRadioLabel: {\n marginRight: 0\n },\n tableWidth: {\n width: 918\n }\n}\n","import Triggers from './Triggers'\n\nexport default Triggers\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport Modal from 'src/components/Modal'\nimport { NamespacedTable as EditableTable } from 'src/components/editableTable'\nimport TitleSection from 'src/components/layout/TitleSection'\nimport FormRenderer from 'src/pages/Services/FormRenderer'\nimport schemas from 'src/pages/Services/schemas'\nimport { fromNamespace, toNamespace } from 'src/utils/config'\n\nimport Wizard from './Wizard'\nimport { WalletSchema, getElements } from './helper'\n\nconst SAVE_CONFIG = gql`\n mutation Save($config: JSONObject, $accounts: JSONObject) {\n saveConfig(config: $config)\n saveAccounts(accounts: $accounts)\n }\n`\n\nconst SAVE_ACCOUNT = gql`\n mutation Save($accounts: JSONObject) {\n saveAccounts(accounts: $accounts)\n }\n`\n\nconst GET_INFO = gql`\n query getData {\n config\n accounts\n accountsConfig {\n code\n display\n class\n cryptos\n }\n cryptoCurrencies {\n code\n display\n }\n }\n`\n\nconst Wallet = ({ name: SCREEN_KEY }) => {\n const [editingSchema, setEditingSchema] = useState(null)\n const [onChangeFunction, setOnChangeFunction] = useState(null)\n const [wizard, setWizard] = useState(false)\n const { data } = useQuery(GET_INFO)\n\n const [saveConfig, { error }] = useMutation(SAVE_CONFIG, {\n onCompleted: () => setWizard(false),\n refetchQueries: () => ['getData']\n })\n\n const [saveAccount] = useMutation(SAVE_ACCOUNT, {\n onCompleted: () => setEditingSchema(null),\n refetchQueries: () => ['getData']\n })\n\n const save = (rawConfig, accounts) => {\n const config = toNamespace(SCREEN_KEY)(rawConfig)\n return saveConfig({ variables: { config, accounts } })\n }\n\n const config = data?.config && fromNamespace(SCREEN_KEY)(data.config)\n const accountsConfig = data?.accountsConfig\n const cryptoCurrencies = data?.cryptoCurrencies ?? []\n const accounts = data?.accounts ?? []\n\n const onChange = (previous, current, setValue) => {\n if (!current) return setValue(current)\n\n if (!accounts[current] && schemas[current]) {\n setEditingSchema(schemas[current])\n setOnChangeFunction(() => () => setValue(current))\n return\n }\n\n setValue(current)\n }\n\n const shouldOverrideEdit = it => {\n const namespaced = fromNamespace(it)(config)\n return !WalletSchema.isValidSync(namespaced)\n }\n\n const wizardSave = it =>\n saveAccount({\n variables: { accounts: { [editingSchema.code]: it } }\n }).then(it => {\n onChangeFunction()\n setOnChangeFunction(null)\n return it\n })\n\n return (\n <>\n \n !WalletSchema.isValidSync(it)}\n enableEdit\n shouldOverrideEdit={shouldOverrideEdit}\n editOverride={setWizard}\n editWidth={174}\n save={save}\n validationSchema={WalletSchema}\n elements={getElements(cryptoCurrencies, accountsConfig, onChange)}\n />\n {wizard && (\n setWizard(false)}\n save={save}\n error={error?.message}\n cryptoCurrencies={cryptoCurrencies}\n userAccounts={data?.config?.accounts}\n accounts={accounts}\n accountsConfig={accountsConfig}\n />\n )}\n {editingSchema && (\n setEditingSchema(null)}\n open={true}>\n \n \n )}\n \n )\n}\n\nexport default Wallet\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React from 'react'\n\nimport { Table as EditableTable } from 'src/components/editableTable'\nimport Section from 'src/components/layout/Section'\nimport TitleSection from 'src/components/layout/TitleSection'\nimport styles from 'src/pages/AddMachine/styles'\nimport { mainFields, defaults, schema } from 'src/pages/Commissions/helper'\nimport { fromNamespace, toNamespace, namespaces } from 'src/utils/config'\n\nconst useStyles = makeStyles(styles)\n\nconst GET_DATA = gql`\n query getData {\n config\n }\n`\nconst SAVE_CONFIG = gql`\n mutation Save($config: JSONObject) {\n saveConfig(config: $config)\n }\n`\n\nfunction Commissions({ isActive, doContinue }) {\n const classes = useStyles()\n const { data } = useQuery(GET_DATA)\n\n const [saveConfig] = useMutation(SAVE_CONFIG, {\n onCompleted: doContinue\n })\n\n const save = it => {\n const config = toNamespace('commissions')(it.commissions[0])\n return saveConfig({ variables: { config } })\n }\n\n const currency = R.path(['fiatCurrency'])(\n fromNamespace(namespaces.LOCALE)(data?.config)\n )\n\n return (\n
\n \n
\n \n
\n
\n )\n}\n\nexport default Commissions\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React from 'react'\n\nimport { Table as EditableTable } from 'src/components/editableTable'\nimport Section from 'src/components/layout/Section'\nimport TitleSection from 'src/components/layout/TitleSection'\nimport styles from 'src/pages/AddMachine/styles'\nimport {\n mainFields,\n localeDefaults as defaults,\n LocaleSchema as schema\n} from 'src/pages/Locales/helper'\nimport { toNamespace } from 'src/utils/config'\n\nimport { getConfiguredCoins } from '../helper'\n\nconst useStyles = makeStyles(styles)\n\nconst GET_DATA = gql`\n query getData {\n config\n accounts\n currencies {\n code\n display\n }\n countries {\n code\n display\n }\n cryptoCurrencies {\n code\n display\n }\n languages {\n code\n display\n }\n machines {\n name\n deviceId\n }\n }\n`\n\nconst SAVE_CONFIG = gql`\n mutation Save($config: JSONObject) {\n saveConfig(config: $config)\n }\n`\n\nfunction Locales({ isActive, doContinue }) {\n const classes = useStyles()\n const { data } = useQuery(GET_DATA)\n\n const [saveConfig] = useMutation(SAVE_CONFIG, {\n onCompleted: doContinue\n })\n\n const save = it => {\n const config = toNamespace('locale')(it.locale[0])\n return saveConfig({ variables: { config } })\n }\n\n const cryptoCurrencies = getConfiguredCoins(\n data?.config || {},\n data?.cryptoCurrencies || []\n )\n\n const onChangeCoin = (prev, curr, setValue) => setValue(curr)\n\n return (\n
\n \n
\n \n
\n
\n )\n}\n\nexport default Locales\n","import { Box, makeStyles } from '@material-ui/core'\nimport React from 'react'\n\nimport { Label1 } from 'src/components/typography'\nimport { ReactComponent as WarningIcon } from 'src/styling/icons/warning-icon/comet.svg'\n\nconst useStyles = makeStyles({\n message: ({ width }) => ({\n width,\n marginTop: 4,\n marginLeft: 16\n })\n})\n\nconst InfoMessage = ({ children, width = 330, className }) => {\n const classes = useStyles({ width })\n\n return (\n \n \n {children}\n \n )\n}\n\nexport default InfoMessage\n","import { errorColor, spacer, primaryColor } from 'src/styling/variables'\n\nconst LABEL_WIDTH = 150\n\nexport default {\n radioGroup: {\n flexDirection: 'row',\n width: 600\n },\n radioLabel: {\n width: LABEL_WIDTH,\n height: 48\n },\n mdForm: {\n width: 385\n },\n infoMessage: {\n display: 'flex',\n marginBottom: 20,\n '& > p': {\n width: 330,\n marginTop: 4,\n marginLeft: 16\n }\n },\n actionButton: {\n marginBottom: spacer * 4\n },\n actionButtonLink: {\n textDecoration: 'none',\n color: primaryColor\n },\n error: {\n color: errorColor\n },\n button: {\n marginTop: spacer * 5\n },\n formButton: {\n margin: [[spacer * 3, 0, 0]]\n }\n}\n","import { useMutation, useQuery } from '@apollo/react-hooks'\nimport { makeStyles, Box } from '@material-ui/core'\nimport classnames from 'classnames'\nimport gql from 'graphql-tag'\nimport React, { useState } from 'react'\n\nimport InfoMessage from 'src/components/InfoMessage'\nimport Tooltip from 'src/components/Tooltip'\nimport { Button, SupportLinkButton } from 'src/components/buttons'\nimport { RadioGroup } from 'src/components/inputs'\nimport { H1, H4, P } from 'src/components/typography'\nimport FormRenderer from 'src/pages/Services/FormRenderer'\nimport twilio from 'src/pages/Services/schemas/twilio'\n\nimport styles from './Wallet/Shared.styles'\n\nconst GET_CONFIG = gql`\n {\n config\n accounts\n }\n`\n\nconst SAVE_ACCOUNTS = gql`\n mutation Save($accounts: JSONObject) {\n saveAccounts(accounts: $accounts)\n }\n`\n\nconst useStyles = makeStyles({\n ...styles,\n content: {\n width: 820\n },\n radioLabel: {\n ...styles.radioLabel,\n width: 280\n },\n wrapper: {\n width: 1200,\n height: 100,\n margin: [[0, 'auto']]\n },\n title: {\n marginLeft: 8,\n marginBottom: 5\n },\n info: {\n marginTop: 20,\n marginBottom: 20\n }\n})\n\nconst options = [\n {\n code: 'enable',\n display: 'Yes, I will'\n },\n {\n code: 'disable',\n display: 'No, not for now'\n }\n]\n\nfunction Twilio({ doContinue }) {\n const classes = useStyles()\n const [selected, setSelected] = useState(null)\n const [error, setError] = useState(false)\n\n const { data, refetch } = useQuery(GET_CONFIG)\n const [saveAccounts] = useMutation(SAVE_ACCOUNTS, {\n onCompleted: doContinue\n })\n\n const accounts = data?.accounts ?? []\n\n const onSelect = e => {\n setSelected(e.target.value)\n setError(false)\n }\n\n const clickContinue = () => {\n if (!selected) return setError(true)\n doContinue()\n }\n\n const save = twilio => {\n const accounts = { twilio }\n return saveAccounts({ variables: { accounts } }).then(() => refetch())\n }\n\n const titleClasses = {\n [classes.title]: true,\n [classes.error]: error\n }\n\n return (\n
\n
\n

Twilio (SMS service)

\n \n

\n Will you setup a two way machine or compliance?\n

\n \n

\n Two-way machines allow your customers not only to buy (cash-in)\n but also sell cryptocurrencies (cash-out).\n

\n

\n You’ll need an SMS service for cash-out transactions and for any\n compliance triggers\n

\n
\n
\n\n \n\n \n To set up Twilio please read the instructions from our support portal.\n \n \n\n {selected === 'enable' && (\n <>\n

Enter credentials

\n \n \n )}\n {selected !== 'enable' && (\n \n )}\n
\n
\n )\n}\n\nexport default Twilio\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport { Button } from 'src/components/buttons'\nimport { NamespacedTable as EditableTable } from 'src/components/editableTable'\nimport { P, H4 } from 'src/components/typography'\nimport { getElements, WalletSchema } from 'src/pages/Wallet/helper'\nimport { toNamespace, namespaces } from 'src/utils/config'\n\nimport styles from './Shared.styles'\n\nconst useStyles = makeStyles(styles)\nconst GET_INFO = gql`\n query getData {\n config\n accounts\n accountsConfig {\n code\n display\n class\n cryptos\n }\n cryptoCurrencies {\n code\n display\n }\n }\n`\n\nconst SAVE_CONFIG = gql`\n mutation Save($config: JSONObject, $accounts: JSONObject) {\n saveConfig(config: $config)\n saveAccounts(accounts: $accounts)\n }\n`\n\nconst AllSet = ({ data: currentData, doContinue }) => {\n const classes = useStyles()\n\n const { data } = useQuery(GET_INFO)\n const [saveConfig] = useMutation(SAVE_CONFIG, {\n onCompleted: doContinue\n })\n\n const [error, setError] = useState(false)\n\n const coin = currentData?.coin\n\n const accountsConfig = data?.accountsConfig\n const cryptoCurrencies = data?.cryptoCurrencies ?? []\n\n const save = () => {\n if (!WalletSchema.isValidSync(currentData)) return setError(true)\n\n const withCoin = toNamespace(coin, R.omit('coin', currentData))\n const config = toNamespace(namespaces.WALLETS)(withCoin)\n setError(false)\n return saveConfig({ variables: { config } })\n }\n\n return (\n <>\n

All set

\n

\n These are your wallet settings. You can later edit these and add\n additional coins.\n

\n \n \n \n )\n}\n\nexport default AllSet\n","import { useMutation, useQuery } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core'\nimport gql from 'graphql-tag'\nimport React, { useState } from 'react'\n\nimport { SupportLinkButton, Button } from 'src/components/buttons'\nimport { RadioGroup } from 'src/components/inputs'\nimport { P, H4 } from 'src/components/typography'\nimport FormRenderer from 'src/pages/Services/FormRenderer'\nimport schema from 'src/pages/Services/schemas'\n\nimport styles from './Shared.styles'\n\nconst useStyles = makeStyles({\n ...styles,\n radioGroup: styles.radioGroup,\n radioLabel: {\n ...styles.radioLabel,\n width: 200\n }\n})\n\nconst GET_CONFIG = gql`\n {\n accounts\n }\n`\nconst SAVE_ACCOUNTS = gql`\n mutation SaveAccountsBC($accounts: JSONObject) {\n saveAccounts(accounts: $accounts)\n }\n`\n\nconst options = [\n {\n code: 'enable',\n display: 'I will enable cash-out'\n },\n {\n code: 'disable',\n display: \"I won't enable cash-out\"\n }\n]\n\nconst Blockcypher = ({ addData }) => {\n const classes = useStyles()\n\n const { data } = useQuery(GET_CONFIG)\n const [saveConfig] = useMutation(SAVE_ACCOUNTS, {\n onCompleted: () => addData({ zeroConf: 'blockcypher' })\n })\n\n const [selected, setSelected] = useState(null)\n const [error, setError] = useState(false)\n\n const accounts = data?.accounts ?? []\n\n const onSelect = e => {\n setSelected(e.target.value)\n setError(false)\n }\n\n const save = blockcypher => {\n const accounts = { blockcypher }\n return saveConfig({ variables: { accounts } })\n }\n\n return (\n <>\n

Blockcypher

\n

\n If you are enabling cash-out services, create a Blockcypher account.\n

\n \n \n
\n {selected === 'disable' && (\n addData({ zeroConf: 'all-zero-conf' })}\n className={classes.button}>\n Continue\n \n )}\n {selected === 'enable' && (\n \n )}\n
\n \n )\n}\n\nexport default Blockcypher\n","import { useQuery } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core'\nimport { Formik, Form, Field } from 'formik'\nimport gql from 'graphql-tag'\nimport React, { useState } from 'react'\nimport * as Yup from 'yup'\n\nimport PromptWhenDirty from 'src/components/PromptWhenDirty'\nimport { Button } from 'src/components/buttons'\nimport { RadioGroup } from 'src/components/inputs/formik'\nimport { H4 } from 'src/components/typography'\n\nimport styles from './Shared.styles'\n\nconst useStyles = makeStyles(styles)\n\nconst GET_CONFIG = gql`\n {\n cryptoCurrencies {\n code\n display\n }\n }\n`\n\nconst schema = Yup.object().shape({\n coin: Yup.string().required()\n})\n\nconst ChooseCoin = ({ addData }) => {\n const classes = useStyles()\n const [error, setError] = useState(false)\n\n const { data } = useQuery(GET_CONFIG)\n const cryptoCurrencies = data?.cryptoCurrencies ?? []\n\n const onSubmit = it => {\n if (!schema.isValidSync(it)) return setError(true)\n\n if (it.coin !== 'BTC') {\n return addData({ coin: it.coin, zeroConf: 'all-zero-conf' })\n }\n\n addData(it)\n }\n\n return (\n <>\n

\n Choose your first cryptocurrency\n

\n\n \n
setError(false)}>\n \n \n {\n \n }\n \n \n \n )\n}\n\nexport default ChooseCoin\n","import * as R from 'ramda'\n\nimport schema from 'src/pages/Services/schemas'\nconst contains = crypto => R.compose(R.contains(crypto), R.prop('cryptos'))\nconst sameClass = type => R.propEq('class', type)\nconst filterConfig = (crypto, type) =>\n R.filter(it => sameClass(type)(it) && contains(crypto)(it))\nexport const getItems = (accountsConfig, accounts, type, crypto) => {\n const fConfig = filterConfig(crypto, type)(accountsConfig)\n const find = code => accounts && accounts[code]\n\n const [filled, unfilled] = R.partition(({ code }) => {\n const account = find(code)\n if (!schema[code]) return true\n\n const { validationSchema } = schema[code]\n return validationSchema.isValidSync(account)\n })(fConfig)\n\n return { filled, unfilled }\n}\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport { Button, SupportLinkButton } from 'src/components/buttons'\nimport { RadioGroup } from 'src/components/inputs'\nimport { H4, Info3 } from 'src/components/typography'\nimport FormRenderer from 'src/pages/Services/FormRenderer'\nimport schema from 'src/pages/Services/schemas'\nimport { ReactComponent as WarningIcon } from 'src/styling/icons/warning-icon/comet.svg'\n\nimport styles from './Shared.styles'\nimport { getItems } from './getItems'\n\nconst useStyles = makeStyles(styles)\n\nconst GET_CONFIG = gql`\n {\n accounts\n accountsConfig {\n code\n display\n class\n cryptos\n }\n cryptoCurrencies {\n code\n display\n }\n }\n`\n\nconst SAVE_ACCOUNTS = gql`\n mutation Save($accounts: JSONObject) {\n saveAccounts(accounts: $accounts)\n }\n`\n\nconst isConfigurable = it => R.contains(it)(['kraken', 'itbit', 'bitstamp'])\n\nconst ChooseExchange = ({ data: currentData, addData }) => {\n const classes = useStyles()\n const { data } = useQuery(GET_CONFIG)\n const [saveAccounts] = useMutation(SAVE_ACCOUNTS, {\n onCompleted: () => submit()\n })\n\n const [selected, setSelected] = useState(null)\n const [error, setError] = useState(false)\n\n const accounts = data?.accounts ?? []\n const accountsConfig = data?.accountsConfig ?? []\n\n const coin = currentData.coin\n const exchanges = getItems(accountsConfig, accounts, 'exchange', coin)\n\n const submit = () => {\n if (!selected) return setError(true)\n addData({ exchange: selected })\n }\n\n const saveExchange = name => exchange => {\n const accounts = { [name]: exchange }\n return saveAccounts({ variables: { accounts } })\n }\n\n const onSelect = e => {\n setSelected(e.target.value)\n setError(false)\n }\n\n const supportArticles = {\n kraken:\n 'https://support.lamassu.is/hc/en-us/articles/115001206891-Kraken-trading',\n itbit:\n 'https://support.lamassu.is/hc/en-us/articles/360026195032-itBit-trading',\n bitstamp:\n 'https://support.lamassu.is/hc/en-us/articles/115001206911-Bitstamp-trading'\n }\n\n return (\n
\n

Choose your exchange

\n \n {!isConfigurable(selected) && (\n \n )}\n {isConfigurable(selected) && (\n <>\n
\n \n \n Make sure you set up {schema[selected].name} to enter the\n necessary information below. Please follow the instructions on our\n support page if you haven’t.\n \n
\n \n\n

Enter exchange information

\n \n \n )}\n
\n )\n}\n\nexport default ChooseExchange\n","import { useQuery } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport { Button } from 'src/components/buttons'\nimport { RadioGroup } from 'src/components/inputs'\nimport { H4 } from 'src/components/typography'\n\nimport styles from './Shared.styles'\nimport { getItems } from './getItems'\n\nconst useStyles = makeStyles(styles)\n\nconst GET_CONFIG = gql`\n {\n accountsConfig {\n code\n display\n class\n cryptos\n }\n }\n`\n\nconst ChooseTicker = ({ data: currentData, addData }) => {\n const classes = useStyles()\n const { data } = useQuery(GET_CONFIG)\n\n const [selected, setSelected] = useState(null)\n const [error, setError] = useState(false)\n\n const accounts = data?.accounts ?? []\n const accountsConfig = data?.accountsConfig ?? []\n\n const coin = currentData.coin\n const tickers = getItems(accountsConfig, accounts, 'ticker', coin)\n\n const submit = () => {\n if (!selected) return setError(true)\n addData({ ticker: selected })\n }\n\n const onSelect = e => {\n setSelected(e.target.value)\n setError(false)\n }\n\n return (\n
\n

Choose your ticker

\n \n \n
\n )\n}\n\nexport default ChooseTicker\n","import * as Yup from 'yup'\n\nimport {\n TextInput,\n SecretInput,\n Autocomplete\n} from 'src/components/inputs/formik'\n\nexport default code => ({\n code: 'bitgo',\n name: 'BitGo',\n title: 'BitGo (Wallet)',\n elements: [\n {\n code: 'token',\n display: 'API Token',\n component: TextInput,\n face: true,\n long: true\n },\n {\n code: 'environment',\n display: 'Environment',\n component: Autocomplete,\n inputProps: {\n options: ['prod', 'test']\n },\n face: true\n },\n {\n code: `${code}WalletId`,\n display: `${code} Wallet ID`,\n component: TextInput\n },\n {\n code: `${code}WalletPassphrase`,\n display: `${code} Wallet Passphrase`,\n component: SecretInput\n }\n ],\n validationSchema: Yup.object().shape({\n token: Yup.string()\n .max(100, 'Too long')\n .required(),\n environment: Yup.string()\n .matches(/(prod|test)/)\n .required(),\n [`${code}WalletId`]: Yup.string()\n .max(100, 'Too long')\n .required(),\n [`${code}WalletPassphrase`]: Yup.string()\n .max(100, 'Too long')\n .required()\n })\n})\n","import { useQuery, useMutation } from '@apollo/react-hooks'\nimport { makeStyles } from '@material-ui/core'\nimport gql from 'graphql-tag'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport { Button, SupportLinkButton } from 'src/components/buttons'\nimport { RadioGroup } from 'src/components/inputs'\nimport { H4, Info3 } from 'src/components/typography'\nimport FormRenderer from 'src/pages/Services/FormRenderer'\nimport schema from 'src/pages/Services/schemas'\nimport bitgo from 'src/pages/Services/schemas/singlebitgo'\nimport { ReactComponent as WarningIcon } from 'src/styling/icons/warning-icon/comet.svg'\n\nimport styles from './Shared.styles'\nimport { getItems } from './getItems'\n\nconst useStyles = makeStyles(styles)\n\nconst GET_CONFIG = gql`\n {\n accounts\n accountsConfig {\n code\n display\n class\n cryptos\n }\n cryptoCurrencies {\n code\n display\n }\n }\n`\n\nconst SAVE_ACCOUNTS = gql`\n mutation Save($accounts: JSONObject) {\n saveAccounts(accounts: $accounts)\n }\n`\n\nconst isConfigurable = it => R.contains(it)(['infura', 'bitgo'])\n\nconst isLocalHosted = it =>\n R.contains(it)([\n 'bitcoind',\n 'geth',\n 'litecoind',\n 'dashd',\n 'zcashd',\n 'bitcoincashd'\n ])\n\nconst ChooseWallet = ({ data: currentData, addData }) => {\n const classes = useStyles()\n const { data } = useQuery(GET_CONFIG)\n const [saveAccounts] = useMutation(SAVE_ACCOUNTS, {\n onCompleted: () => submit()\n })\n\n const [selected, setSelected] = useState(null)\n const [error, setError] = useState(false)\n\n const accounts = data?.accounts ?? []\n const accountsConfig = data?.accountsConfig ?? []\n\n const coin = currentData.coin\n const wallets = getItems(accountsConfig, accounts, 'wallet', coin)\n\n const saveWallet = name => wallet => {\n const accounts = { [name]: wallet }\n return saveAccounts({ variables: { accounts } })\n }\n\n const submit = () => {\n if (!selected) return setError(true)\n addData({ wallet: selected })\n }\n\n const onSelect = e => {\n setSelected(e.target.value)\n setError(false)\n }\n\n return (\n
\n

Choose your wallet

\n \n {isLocalHosted(selected) && (\n <>\n
\n \n \n To set up {selected} please read the node wallet instructions from\n our support portal.\n \n
\n \n \n )}\n {!isConfigurable(selected) && (\n \n )}\n {selected === 'bitgo' && (\n <>\n
\n \n \n Make sure you set up a BitGo wallet to enter the necessary\n information below. Please follow the instructions on our support\n page if you haven’t.\n \n
\n \n

Enter wallet information

\n \n \n )}\n {selected === 'infura' && (\n <>\n

Enter wallet information

\n \n \n )}\n
\n )\n}\n\nexport default ChooseWallet\n","import { makeStyles } from '@material-ui/core'\nimport * as R from 'ramda'\nimport React, { useState } from 'react'\n\nimport Sidebar, { Stepper } from 'src/components/layout/Sidebar'\nimport TitleSection from 'src/components/layout/TitleSection'\nimport styles from 'src/pages/AddMachine/styles'\n\nimport AllSet from './AllSet'\nimport Blockcypher from './Blockcypher'\nimport ChooseCoin from './ChooseCoin'\nimport ChooseExchange from './ChooseExchange'\nimport ChooseTicker from './ChooseTicker'\nimport ChooseWallet from './ChooseWallet'\n\nconst useStyles = makeStyles(styles)\n\nconst steps = [\n {\n label: 'Choose cryptocurrency',\n component: ChooseCoin\n },\n {\n label: 'Choose wallet',\n component: ChooseWallet\n },\n {\n label: 'Choose ticker',\n component: ChooseTicker\n },\n {\n label: 'Exchange',\n component: ChooseExchange\n },\n {\n label: 'Blockcypher',\n component: Blockcypher\n },\n {\n label: 'All set',\n component: AllSet\n }\n]\n\nconst Wallet = ({ doContinue }) => {\n const [step, setStep] = useState(0)\n const [data, setData] = useState({})\n\n const classes = useStyles()\n const mySteps = data?.coin === 'BTC' ? steps : R.remove(4, 1, steps)\n\n const Component = mySteps[step].component\n\n const addData = it => {\n setData(R.merge(data, it))\n setStep(step + 1)\n }\n\n return (\n
\n
\n \n
\n
\n \n {mySteps.map((it, idx) => (\n \n ))}\n \n
\n \n
\n
\n
\n )\n}\n\nexport default Wallet\n","import { makeStyles } from '@material-ui/core'\nimport React from 'react'\n\nimport { Button } from 'src/components/buttons'\nimport { H1, P } from 'src/components/typography'\nimport { comet } from 'src/styling/variables'\n\nconst styles = {\n welcome: {\n textAlign: 'center',\n paddingTop: 256\n },\n title: {\n lineHeight: 1,\n fontSize: 48\n },\n getStarted: {\n fontSize: 24,\n fontWeight: 500,\n marginBottom: 54,\n color: comet\n }\n}\n\nconst useStyles = makeStyles(styles)\n\nfunction Welcome({ doContinue }) {\n const classes = useStyles()\n\n return (\n
\n

Welcome to the Lamassu Admin

\n

\n To get you started, we’ve put together a wizard that will\n
\n help set up what you need before pairing your machines.\n

\n \n
\n )\n}\n\nexport default Welcome\n","import * as R from 'ramda'\nimport React from 'react'\n\nimport { schema as CommissionsSchema } from 'src/pages/Commissions/helper'\nimport { LocaleSchema } from 'src/pages/Locales/helper'\nimport { WalletSchema } from 'src/pages/Wallet/helper'\nimport { fromNamespace, namespaces } from 'src/utils/config'\n\nimport Commissions from './components/Commissions'\nimport Locale from './components/Locales'\n// import Notifications from './components/Notifications'\n// import WizardOperatorInfo from './components/OperatorInfo'\nimport Twilio from './components/Twilio'\nimport Wallet from './components/Wallet/Wallet'\nimport Welcome from './components/Welcome'\n\nconst getConfiguredCoins = (config, crypto) => {\n const wallet = fromNamespace(namespaces.WALLETS, config)\n return R.filter(it =>\n WalletSchema.isValidSync(fromNamespace(it.code, wallet))\n )(crypto)\n}\n\nconst hasValidWallet = (config, crypto) => {\n const wallet = fromNamespace(namespaces.WALLETS, config)\n const coins = R.map(it => fromNamespace(it.code, wallet))(crypto)\n\n const hasValidConfig = R.compose(\n R.any(R.identity),\n R.map(it => WalletSchema.isValidSync(it))\n )(coins)\n\n return hasValidConfig\n}\n\nconst hasValidLocale = config => {\n const locale = fromNamespace(namespaces.LOCALE, config)\n return LocaleSchema.isValidSync(locale)\n}\n\nconst hasValidCommissions = config => {\n const commission = fromNamespace(namespaces.COMMISSIONS, config)\n return CommissionsSchema.isValidSync(commission)\n}\n\nconst getWizardStep = (config, crypto) => {\n if (!config) return 0\n\n const validWallet = hasValidWallet(config, crypto)\n if (!validWallet) return 1\n\n const validLocale = hasValidLocale(config)\n if (!validLocale) return 2\n\n const validCommission = hasValidCommissions(config)\n if (!validCommission) return 3\n\n return 0\n}\n\nconst STEPS = [\n {\n id: 'welcome',\n Component: Welcome\n },\n {\n id: 'wallet',\n Component: Wallet,\n exImage: '/assets/wizard/fullexample.wallet.png',\n subtitle: 'Wallet settings',\n text: `Your wallet settings are the first step for this wizard. \n We'll start by setting up one of cryptocurrencies to get you up and running,\n but you can later set up as many as you want.`\n },\n {\n id: 'locale',\n Component: Locale,\n exImage: '/assets/wizard/fullexample.locale.png',\n subtitle: 'Locales',\n text: `From the Locales page, you can define some important default settings\n of your machines. These values will be the default values of all\n machines you'll later add to your network. Default settings keep you\n from having to enther the same values everytime you add a new machine.\n Once a machine is added, you may override some of these values in the\n overrides section.`\n },\n {\n id: 'twilio',\n Component: Twilio,\n exImage: '/assets/wizard/fullexample.twilio.png',\n subtitle: 'Twilio (SMS service)',\n text: (\n <>\n Twilio is used for SMS operator notifications, phone number collection\n for compliance, and 1-confirmation redemptions on cash-out transactions.\n
\n You'll need to configure Twilio if you're offering cash-out or any\n compliance options\n \n )\n },\n {\n id: 'commissions',\n Component: Commissions,\n exImage: '/assets/wizard/fullexample.commissions.png',\n subtitle: 'Commissions',\n text: `From the Commissions page, you can define all the commissions of your\n machines. The values set here will be default values of all machines\n you'll later add to your network. Default settings keep you from\n having to enter the same values everytime you add a new machine. Once\n a machine is added, you may override these values per machine and per\n cryptocurrency in the overrides section.`\n }\n // {\n // id: 'notifications',\n // Component: Notifications,\n // exImage: '/assets/wizard/fullexample.notifications.png',\n // subtitle: 'Notifications',\n // text: `Your notification settings will allow customize what notifications you\n // get and where. You can later override all default balance alerts setup\n // here.`\n // },\n // {\n // id: 'operatorInfo',\n // Component: WizardOperatorInfo,\n // exImage: '/assets/wizard/fullexample.operatorinfo.png',\n // subtitle: 'Operator info',\n // text: `Your contact information is important for your customer to be able\n // to contact you in case there’s a problem with one of your machines.\n // In this page, you also be able to set up what you want to share with\n // Coin ATM Radar and add the Terms & Services text that is displayed by your machines.`\n // }\n]\n\nexport { getWizardStep, STEPS, getConfiguredCoins }\n","import { makeStyles, Drawer, Grid } from '@material-ui/core'\nimport classnames from 'classnames'\nimport React, { useState } from 'react'\n\nimport Modal from 'src/components/Modal'\nimport Stepper from 'src/components/Stepper'\nimport { Button, Link } from 'src/components/buttons'\nimport { P, H2, Info2 } from 'src/components/typography'\nimport { spacer } from 'src/styling/variables'\n\nconst useStyles = makeStyles(() => ({\n drawer: {\n borderTop: 'none',\n boxShadow: '0 0 4px 0 rgba(0, 0, 0, 0.08)'\n },\n wrapper: {\n padding: '32px 0',\n flexGrow: 1,\n height: 264\n },\n smallWrapper: {\n height: 84\n },\n title: {\n margin: [[0, spacer * 4, 0, 0]]\n },\n subtitle: {\n marginTop: spacer,\n marginBottom: 6,\n lineHeight: 1.25,\n display: 'inline'\n },\n modal: {\n background: 'none',\n boxShadow: 'none'\n }\n}))\n\nfunction Footer({ currentStep, steps, subtitle, text, exImage, open, start }) {\n const classes = useStyles()\n const [fullExample, setFullExample] = useState(false)\n\n const wrapperClassNames = {\n [classes.wrapper]: true,\n [classes.smallWrapper]: !open\n }\n\n return (\n \n
\n \n \n

Setup Lamassu Admin

\n {subtitle}\n {open &&

{text}

}\n
\n \n \n {steps && currentStep && (\n \n )}\n \n \n \n {open && (\n \n \n {\n setFullExample(true)\n }}>\n See full example\n \n \n \n \n \n \n \n \n )}\n
\n {\n setFullExample(false)\n }}\n open={fullExample}>\n \"\"\n \n \n )\n}\n\nexport default Footer\n","import { useQuery } from '@apollo/react-hooks'\nimport { makeStyles, Dialog, DialogContent } from '@material-ui/core'\nimport classnames from 'classnames'\nimport gql from 'graphql-tag'\nimport React, { useState, useContext } from 'react'\nimport { useHistory } from 'react-router-dom'\n\nimport { AppContext } from 'src/App'\nimport { getWizardStep, STEPS } from 'src/pages/Wizard/helper'\nimport { backgroundColor } from 'src/styling/variables'\n\nimport Footer from './components/Footer'\n\nconst useStyles = makeStyles({\n wrapper: {\n display: 'flex',\n padding: [[16, 0]],\n flexDirection: 'column',\n justifyContent: 'space-between',\n backgroundColor: backgroundColor\n },\n welcomeBackground: {\n background: 'url(/wizard-background.svg) no-repeat center center fixed',\n backgroundColor: backgroundColor,\n backgroundSize: 'cover'\n },\n blurred: {\n filter: 'blur(4px)',\n pointerEvents: 'none'\n }\n})\n\nconst GET_DATA = gql`\n query getData {\n config\n accounts\n cryptoCurrencies {\n code\n display\n }\n }\n`\n\nconst Wizard = ({ fromAuthRegister }) => {\n const classes = useStyles()\n const { data, loading } = useQuery(GET_DATA)\n const history = useHistory()\n const { setWizardTested } = useContext(AppContext)\n\n const [step, setStep] = useState(0)\n const [open, setOpen] = useState(true)\n\n const [footerExp, setFooterExp] = useState(false)\n\n if (loading) {\n return <>\n }\n\n const wizardStep = getWizardStep(data?.config, data?.cryptoCurrencies)\n\n const shouldGoBack =\n history.length && !history.location.state?.fromAuthRegister\n\n if (wizardStep === 0) {\n setWizardTested(true)\n shouldGoBack ? history.goBack() : history.push('/')\n }\n\n const isWelcome = step === 0\n const classNames = {\n [classes.blurred]: footerExp,\n [classes.wrapper]: true,\n [classes.welcomeBackground]: isWelcome\n }\n\n const start = () => {\n setFooterExp(false)\n }\n\n const doContinue = () => {\n if (step >= STEPS.length - 1) {\n setOpen(false)\n history.push('/')\n }\n\n const nextStep = step === 0 && wizardStep ? wizardStep : step + 1\n\n setFooterExp(true)\n setStep(nextStep)\n }\n\n const current = STEPS[step]\n\n return (\n \n \n \n \n {!isWelcome && (\n \n )}\n \n )\n}\n\nexport default Wizard\n","import Wizard from './Wizard'\n\nexport default Wizard\n","import * as R from 'ramda'\nimport React, { useContext } from 'react'\nimport {\n Route,\n Redirect,\n Switch,\n useHistory,\n useLocation\n} from 'react-router-dom'\n\nimport { AppContext } from 'src/App'\nimport AuthRegister from 'src/pages/AuthRegister'\nimport Cashout from 'src/pages/Cashout'\nimport Commissions from 'src/pages/Commissions'\nimport { Customers, CustomerProfile } from 'src/pages/Customers'\nimport Funding from 'src/pages/Funding'\nimport Locales from 'src/pages/Locales'\nimport MachineLogs from 'src/pages/MachineLogs'\nimport CashCassettes from 'src/pages/Maintenance/CashCassettes'\nimport MachineStatus from 'src/pages/Maintenance/MachineStatus'\nimport Notifications from 'src/pages/Notifications/Notifications'\nimport OperatorInfo from 'src/pages/OperatorInfo/OperatorInfo'\nimport ServerLogs from 'src/pages/ServerLogs'\nimport Services from 'src/pages/Services/Services'\nimport Transactions from 'src/pages/Transactions/Transactions'\nimport Triggers from 'src/pages/Triggers'\nimport WalletSettings from 'src/pages/Wallet/Wallet'\nimport Wizard from 'src/pages/Wizard'\nimport { namespaces } from 'src/utils/config'\n\nconst tree = [\n {\n key: 'transactions',\n label: 'Transactions',\n route: '/transactions',\n component: Transactions\n },\n {\n key: 'maintenance',\n label: 'Maintenance',\n route: '/maintenance',\n get component() {\n return () => \n },\n children: [\n {\n key: 'cash_cassettes',\n label: 'Cash Cassettes',\n route: '/maintenance/cash-cassettes',\n component: CashCassettes\n },\n {\n key: 'funding',\n label: 'Funding',\n route: '/maintenance/funding',\n component: Funding\n },\n {\n key: 'logs',\n label: 'Machine Logs',\n route: '/maintenance/logs',\n component: MachineLogs\n },\n {\n key: 'machine-status',\n label: 'Machine Status',\n route: '/maintenance/machine-status',\n component: MachineStatus\n },\n {\n key: 'server-logs',\n label: 'Server',\n route: '/maintenance/server-logs',\n component: ServerLogs\n }\n ]\n },\n {\n key: 'settings',\n label: 'Settings',\n route: '/settings',\n get component() {\n return () => \n },\n children: [\n {\n key: namespaces.COMMISSIONS,\n label: 'Commissions',\n route: '/settings/commissions',\n component: Commissions\n },\n {\n key: namespaces.LOCALE,\n label: 'Locales',\n route: '/settings/locale',\n component: Locales\n },\n {\n key: namespaces.CASH_OUT,\n label: 'Cash-out',\n route: '/settings/cash-out',\n component: Cashout\n },\n {\n key: namespaces.NOTIFICATIONS,\n label: 'Notifications',\n route: '/settings/notifications',\n component: Notifications\n },\n {\n key: 'services',\n label: '3rd party services',\n route: '/settings/3rd-party-services',\n component: Services\n },\n {\n key: namespaces.WALLETS,\n label: 'Wallet',\n route: '/settings/wallet-settings',\n component: WalletSettings\n },\n {\n key: namespaces.OPERATOR_INFO,\n label: 'Operator Info',\n route: '/settings/operator-info',\n component: OperatorInfo\n }\n ]\n },\n {\n key: 'compliance',\n label: 'Compliance',\n route: '/compliance',\n get component() {\n return () => \n },\n children: [\n {\n key: 'triggers',\n label: 'Triggers',\n route: '/compliance/triggers',\n component: Triggers\n },\n {\n key: 'customers',\n label: 'Customers',\n route: '/compliance/customers',\n component: Customers\n },\n {\n key: 'customer',\n route: '/compliance/customer/:id',\n component: CustomerProfile\n }\n ]\n }\n]\n\nconst map = R.map(R.when(R.has('children'), R.prop('children')))\nconst leafRoutes = R.compose(R.flatten, map)(tree)\nconst parentRoutes = R.filter(R.has('children'))(tree)\nconst flattened = R.concat(leafRoutes, parentRoutes)\n\nconst Routes = () => {\n const history = useHistory()\n const location = useLocation()\n const { wizardTested } = useContext(AppContext)\n\n const dontTriggerPages = ['/404', '/register', '/wizard']\n\n if (!wizardTested && !R.contains(location.pathname)(dontTriggerPages)) {\n history.push('/wizard')\n }\n\n return (\n \n \n \n \n \n \n {flattened.map(({ route, component: Page, key }) => (\n \n \n \n ))}\n \n \n \n \n \n )\n}\nexport { tree, Routes }\n","import { mainWidth } from 'src/styling/variables'\n\nimport fonts from './fonts'\n\nconst fill = '100%'\n\nexport default {\n '@global': {\n ...fonts,\n '#root': {\n width: fill,\n minHeight: fill\n },\n html: {\n height: fill\n },\n body: {\n width: mainWidth,\n display: 'flex',\n minHeight: fill,\n '@media screen and (min-width: 1200px)': {\n width: 'auto'\n }\n },\n [`a::-moz-focus-inner,\n 'input[type=\"submit\"]::-moz-focus-inner,\n input[type=\"button\"]::-moz-focus-inner`]: {\n border: 0\n },\n [`a::-moz-focus-inner,\n input[type=\"submit\"]::-moz-focus-inner,\n input[type=\"button\"]::-moz-focus-inner`]: {\n border: 0\n },\n [`a,\n a:visited,\n a:focus,\n a:active,\n a:hover`]: {\n outline: '0 none'\n },\n 'button::-moz-focus-inner': {\n border: 0\n },\n // forcing styling onto inner container\n '.ReactVirtualized__Grid__innerScrollContainer': {\n overflow: 'inherit !important'\n }\n }\n}\n","export default {\n // /*!\n // * Web Fonts from Fontspring.com\n // *\n // * All OpenType features and all extended glyphs have been removed.\n // * Fully installable fonts can be purchased at http://www.fontspring.com\n // *\n // * The fonts included in this stylesheet are subject to the End User License you purchased\n // * from Fontspring. The fonts are protected under domestic and international trademark and\n // * copyright law. You are prohibited from modifying, reverse engineering, duplicating, or\n // * distributing this font software.\n // *\n // * (c) 2010-2018 Fontspring\n // *\n // *\n // *\n // *\n // * The fonts included are copyrighted by the vendor listed below.\n // *\n // * Vendor: Fontfabric\n // * License URL: https://www.fontspring.com/licenses/fontfabric/webfont\n // *\n // *\n // */\n\n '@font-face': [\n {\n fontFamily: 'Mont',\n src: [\n 'url(\"/fonts/MontHeavy/mont-heavy-webfont.woff2\") format(\"woff2\")',\n 'url(\"/fonts/MontHeavy/mont-heavy-webfont.woff\") format(\"woff\")'\n ],\n fontWeight: 900,\n fontStyle: 'normal'\n },\n {\n fontFamily: 'Mont',\n src: [\n 'url(\"/fonts/MontHeavy/mont-bold-webfont.woff2\") format(\"woff2\")',\n 'url(\"/fonts/MontHeavy/mont-bold-webfont.woff\") format(\"woff\")'\n ],\n fontWeight: 700,\n fontStyle: 'normal'\n },\n // /*!\n // * Web Fonts from Fontspring.com\n // *\n // * All OpenType features and all extended glyphs have been removed.\n // * Fully installable fonts can be purchased at http://www.fontspring.com\n // *\n // * The fonts included in this stylesheet are subject to the End User License you purchased\n // * from Fontspring. The fonts are protected under domestic and international trademark and\n // * copyright law. You are prohibited from modifying, reverse engineering, duplicating, or\n // * distributing this font software.\n // *\n // * (c) 2010-2018 Fontspring\n // *\n // *\n // *\n // *\n // * The fonts included are copyrighted by the vendor listed below.\n // *\n // * Vendor: exljbris Font Foundry\n // * License URL: https://www.fontspring.com/licenses/exljbris/webfont\n // *\n // *\n // */\n {\n fontFamily: 'MuseoSans',\n src: [\n 'url(\"/fonts/MuseoSans/MuseoSans_500-webfont.woff2\") format(\"woff2\")',\n 'url(\"/fonts/MuseoSans/MuseoSans_500-webfont.woff\") format(\"woff\")'\n ],\n fontWeight: 500,\n fontStyle: 'normal'\n },\n {\n fontFamily: 'MuseoSans',\n src: [\n 'url(\"/fonts/MuseoSans/MuseoSans_700-webfont.woff2\") format(\"woff2\")',\n 'url(\"/fonts/MuseoSans/MuseoSans_700-webfont.woff\") format(\"woff\")'\n ],\n fontWeight: 700,\n fontStyle: 'normal'\n },\n\n // // BP-mono Freely distributed at http://backpacker.gr/fonts/5\n {\n fontFamily: 'BPmono',\n src: 'url(\"/fonts/BPmono/BPmono.ttf\") format(\"truetype\")',\n fontWeight: 500,\n fontStyle: 'normal'\n }\n ]\n}\n","import CssBaseline from '@material-ui/core/CssBaseline'\nimport {\n StylesProvider,\n jssPreset,\n MuiThemeProvider,\n makeStyles\n} from '@material-ui/core/styles'\nimport { create } from 'jss'\nimport extendJss from 'jss-plugin-extend'\nimport React, { createContext, useContext, useState } from 'react'\nimport { useLocation, BrowserRouter as Router } from 'react-router-dom'\n\nimport ApolloProvider from 'src/utils/apollo'\n\nimport Header from './components/layout/Header'\nimport { tree, Routes } from './routing/routes'\nimport global from './styling/global'\nimport theme from './styling/theme'\nimport { backgroundColor, mainWidth } from './styling/variables'\n\nif (process.env.NODE_ENV !== 'production') {\n const whyDidYouRender = require('@welldone-software/why-did-you-render')\n whyDidYouRender(React)\n}\n\nconst jss = create({\n plugins: [extendJss(), ...jssPreset().plugins]\n})\n\nconst fill = '100%'\nconst flexDirection = 'column'\n\nconst useStyles = makeStyles({\n ...global,\n root: {\n backgroundColor,\n width: fill,\n minHeight: fill,\n display: 'flex',\n flexDirection\n },\n wrapper: {\n width: mainWidth,\n height: fill,\n margin: '0 auto',\n flex: 1,\n display: 'flex',\n flexDirection\n }\n})\n\nconst AppContext = createContext()\n\nconst Main = () => {\n const classes = useStyles()\n const location = useLocation()\n const { wizardTested } = useContext(AppContext)\n\n const is404 = location.pathname === '/404'\n\n return (\n
\n {!is404 && wizardTested &&
}\n
\n \n
\n
\n )\n}\n\nconst App = () => {\n const [wizardTested, setWizardTested] = useState(false)\n\n return (\n \n \n \n \n \n \n
\n \n \n \n \n \n )\n}\n\nexport default App\nexport { AppContext }\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n)\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href)\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config)\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n )\n })\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config)\n }\n })\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing\n if (installingWorker == null) {\n return\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n )\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration)\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.')\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration)\n }\n }\n }\n }\n }\n })\n .catch(error => {\n console.error('Error during service worker registration:', error)\n })\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type')\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload()\n })\n })\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config)\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n )\n })\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister()\n })\n }\n}\n","import React from 'react'\nimport ReactDOM from 'react-dom'\n\nimport App from './App'\nimport * as serviceWorker from './serviceWorker'\n\nReactDOM.render(, document.getElementById('root'))\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.unregister()\n"],"sourceRoot":""} \ No newline at end of file