{"version":3,"sources":["locales/index.js","components/TamperTesterHeader/tamper_tester_logo_dark.svg","components/TamperTesterHeader/index.js","components/HistoryBack/index.js","containers/Help/index.js","components/WestRockLogo.js","components/WestRockHeader/index.js","containers/Home/tamper_tester_logo.svg","containers/Home/index.js","utils/selectors.js","utils/reducers.js","store/scanSession/reducers.js","store/scanSession/selectors.js","images/alert.svg","components/VerificationCounterfeit/index.js","components/ProductPhoto/index.js","images/success.svg","components/VerificationSuccess/index.js","components/VerificationTampering/index.js","containers/VerificationResults/index.js","components/GoogleTagManager/index.js","store/scanSession/index.js","utils/actions.js","apis/authenticationResults.js","history.js","apis/product.js","apis/stream.js","apis/thng.js","store/scanSession/thunks.js","utils/thunks.js","components/CountdownTimer/index.js","components/NoPermission/index.js","components/ProgressIndicator/index.js","containers/Step1/qr_thumbnail.svg","containers/Step1/index.js","containers/Step1Help/qr-code-help.svg","containers/Step1Help/qr-code-instructions.svg","containers/Step1Help/index.js","containers/Step2/tape_thumbnail.svg","containers/Step2/index.js","containers/Step2Help/tape-help.svg","containers/Step2Help/tape-instructions.svg","containers/Step2Help/index.js","containers/Step1Success/index.js","store/index.js","theme/tokens.js","theme/index.js","App.js","serviceWorkerRegistration.js","reportWebVitals.js","index.js"],"names":["resources","en","translation","i18n","use","initReactI18next","init","lng","fallbackLng","supportedLngs","debug","interpolation","escapeValue","useStyles","makeStyles","toolbar","justifyContent","TamperTesterHeader","props","classes","theme","useTheme","AppBar","position","color","style","background","palette","grey","elevation","Toolbar","variant","className","Link","href","lineHeight","src","TamperTesterLogoDark","alt","HistoryBack","t","useTranslation","history","useHistory","display","marginBottom","spacing","alignItems","cursor","onClick","goBack","fontSize","link","marginRight","Help","Container","maxWidth","paddingTop","Grid","container","item","xs","Typography","component","Divider","textAlign","process","underline","Logo","Box","xmlns","viewBox","height","fill","fillRule","d","WestRockHeader","backgroundColor","WestRockLogo","Home","primary","main","paddingBottom","TamperTesterLogo","borderTopRightRadius","borderTopLeftRadius","top","flexDirection","flex","gutterBottom","marginTop","Button","to","fullWidth","makeSelectorHook","selector","useSelector","shallowEqual","createSelectorHook","createSelector","hook","selectProp","name","defaultValue","substate","singlePropReducer","state","payload","initialState","thngId","undefined","productId","product","digimarcTape","hasCameraPermission","qrScanAuthResult","isLoading","isToastOpen","reducers","clearSession","setQrResults","setHasCameraPermission","setIsDigimarcCorrect","setToastOpen","setProduct","selectDomain","scanSession","useThngId","selectQrScanAuthResult","result","customFields","authenticationStatus","selectIsQrCodeRecognized","useIsQrCodeRecognized","triggerAction","selectQrScanId","digimarcScanAuthResult","selectDigimarcScanAuthResult","selectDigimarcScanId","digimarcScanId","qrScanId","useLatestScanId","childActions","Object","keys","filter","key","match","selectAuthAlerts","useAuthAlerts","useHasCameraPermission","useIsLoading","useIsToastOpen","useIsDigimarcCorrect","selectProduct","useProductPhoto","VerificationCounterfeit","image","alerts","latestScanId","AlertIllustration","error","Chip","size","common","white","margin","copy","label","length","Paper","padding","map","status","disableElevation","target","Image","styled","maxHeight","width","objectFit","ProductPhoto","imageSrc","justify","VerificationSuccess","SuccessIllustration","success","VerificationTampering","Results","isQrRecognized","isDigimarcCorrect","GoogleTagManager","Helmet","dataLayer","setDataLayer","setTimeout","window","forEach","push","customEvent","event","generateAlertTrackingEvents","prefix","replace","scanSessionSlice","createSlice","useActions","actions","deps","dispatch","useDispatch","useMemo","Array","isArray","a","bindActionCreators","useActionsUtil","makeSocket","reducer","evrythngToken","thng","action","authenticationResultsApi","retrieve","count","read","subscribe","onMessage","socket","customHistory","createBrowserHistory","productApi","get","id","stop","ScanThng","stopScanQrCode","streamApi","scan","options","scanStream","finally","thngApi","create","scanQr","createAsyncThunk","getState","validateQr","findProduct","method","type","containerId","res","results","getProduct","console","message","unserializableMessage","JSON","parse","stringify","scanId","unsubscribe","isAuthenticated","validateDigimarc","_","imageConversion","greyscale","exportFormat","resizeTo","isCorrect","useThunk","thunk","thunks","useThunks","MuiChip","CountdownTimer","timeout","alertThreshold","onStart","onTimeout","onTimerAlert","useState","parseInt","secondsRemaining","setSecondsRemaining","intervalRef","useRef","decrement","sR","cancel","useCallback","clearInterval","current","startInterval","setInterval","reset","useEffect","isChipShown","displaySecondsRemaining","Math","ceil","minutesRemaining","floor","icon","clickable","defaultProps","React","memo","NoPermission","ProgressIndicator","cx","cy","r","backdrop","zIndex","drawer","Step1","search","useLocation","scanQrThunk","cancelRef","resetRef","onToastClose","URLSearchParams","Backdrop","open","Snackbar","autoHideDuration","onClose","anchorOrigin","vertical","horizontal","Alert","severity","direction","sm","QRThumbnail","minWidth","Step1Help","QrCodeHelpIllustration","QrCodeInstructionsIllustration","Step2","validateDigimarcThunk","TapeThumbnail","Step2Help","TapeHelpIllustration","TapeInstructionsIllustration","Step1Success","store","configureStore","router","connectRouter","middleware","getDefaultMiddleware","routerMiddleware","INPUT_BTN_HEIGHT_MD","INPUT_BTN_HEIGHT_SM","INPUT_BTN_HEIGHT_LG","INPUT_BTN_PADDING_X_MD","INPUT_BTN_PADDING_X_SM","INPUT_BTN_PADDING_X_LG","TEXT_SIZE_SM","TEXT_SIZE_MD","TEXT_SIZE_LG","COLOR_RED_30","FONT_WEIGHT_REGULAR","FONT_WEIGHT_BOLD","BTN_LINK_TEXT_COLOR","DANGER_TEXT_COLOR","HEADING_MARGIN_BOTTOM","HEADING_LINE_HEIGHT","createMuiTheme","dark","secondary","typography","fontFamily","fontWeightRegular","useNextVariants","htmlFontSize","h1","fontWeight","h2","h3","h4","h5","h6","subtitle1","subtitle2","body1","body2","caption","overline","button","textTransform","MuiButtonBase","disableRipple","disableTouchRipple","focusRipple","MuiButton","overrides","MuiLink","root","MuiTypography","colorError","MuiTextField","MuiCssBaseline","body","MuiAlert","standardError","borderColor","borderWidth","borderStyle","standardSuccess","outlinedError","outlinedWarning","MuiAutocomplete","createStyles","inputRoot","right","MuiAppBar","colorDefault","MuiStepper","containedSizeLarge","containedSizeSmall","outlinedSizeLarge","outlinedSizeSmall","contained","outlined","MuiTabs","fixed","borderBottomStyle","borderBottomColor","borderBottomWidth","indicator","MuiTab","textColorInherit","opacity","jsQR","evrythng","App","PubSub","setup","apiUrl","AccessToken","ThemeProvider","CssBaseline","forceRefresh","path","exact","VerificationResults","Boolean","location","hostname","reportWebVitals","onPerfEntry","Function","then","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","render","StrictMode","document","getElementById","navigator","serviceWorker","ready","registration","unregister","catch"],"mappings":"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","file":"static/js/main.71254b93.chunk.js","sourcesContent":["import i18n from 'i18next';\r\nimport { initReactI18next } from 'react-i18next';\r\nimport en from './en.json';\r\n\r\nconst resources = {\r\n\ten: { translation: en },\r\n};\r\n\r\ni18n.use(initReactI18next).init({\r\n\tresources,\r\n\tlng: 'en',\r\n\tfallbackLng: 'en',\r\n\tsupportedLngs: ['en'],\r\n\tdebug: false,\r\n\tinterpolation: {\r\n\t\tescapeValue: false,\r\n\t},\r\n});\r\n\r\nexport default i18n;\r\n","export default __webpack_public_path__ + \"static/media/tamper_tester_logo_dark.bf9d7c7f.svg\";","import React from 'react';\r\nimport { makeStyles, useTheme } from '@material-ui/core/styles';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport Toolbar from '@material-ui/core/Toolbar';\r\nimport Link from '@material-ui/core/Link';\r\nimport TamperTesterLogoDark from './tamper_tester_logo_dark.svg';\r\n\r\nconst useStyles = makeStyles({\r\n\ttoolbar: {\r\n\t\tjustifyContent: 'center',\r\n\t},\r\n});\r\n\r\nfunction TamperTesterHeader(props) {\r\n\tconst classes = useStyles(props);\r\n\tconst theme = useTheme();\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\"Tamper\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n}\r\n\r\nexport default TamperTesterHeader;\r\n","import React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useTheme } from '@material-ui/core/styles';\r\nimport Link from '@material-ui/core/Link';\r\nimport ArrowBackIcon from '@material-ui/icons/ArrowBack';\r\nimport { useHistory } from 'react-router-dom';\r\n\r\nfunction HistoryBack(props) {\r\n\tconst { t } = useTranslation();\r\n\tconst theme = useTheme();\r\n\tconst history = useHistory();\r\n\r\n\treturn (\r\n\t\t {\r\n\t\t\t\thistory.goBack();\r\n\t\t\t}}\r\n\t\t>\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t{t('help_screen.back')}\r\n\t\t\t\r\n\t\t\r\n\t);\r\n}\r\n\r\nexport default HistoryBack;\r\n","import React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport Link from '@material-ui/core/Link';\r\nimport Container from '@material-ui/core/Container';\r\nimport Divider from '@material-ui/core/Divider';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport { useTheme } from '@material-ui/core/styles';\r\nimport TamperTesterHeader from '../../components/TamperTesterHeader';\r\nimport HistoryBack from '../../components/HistoryBack';\r\n\r\nfunction Help() {\r\n\tconst { t } = useTranslation();\r\n\tconst theme = useTheme();\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{t('help_screen.title')}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{t('help_screen.install_title')}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
  1. \r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{t('help_screen.install_step1')}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
  2. \r\n\t\t\t\t\t\t\t
  3. \r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{t('help_screen.install_step2')}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
  4. \r\n\t\t\t\t\t\t\t
  5. \r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{t('help_screen.install_step3')}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
  6. \r\n\t\t\t\t\t\t\t
  7. \r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{t('help_screen.install_step4')}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
  8. \r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{t('help_screen.terminology')}\r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{t('alerts.unauthorizedChecks')}{' '}\r\n\t\t\t\t\t\t\t{t('alerts.unauthorizedChecks_text')}\r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{t('alerts.invalidChecks')}{' '}\r\n\t\t\t\t\t\t\t{t('alerts.invalidChecks_text')}\r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{t('alerts.duplicateChecks')}{' '}\r\n\t\t\t\t\t\t\t{t('alerts.duplicateChecks_text')}\r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{t('alerts.diversionChecks')}{' '}\r\n\t\t\t\t\t\t\t{t('alerts.diversionChecks_text')}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{t('help_screen.help')}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\thelp@westrock.com\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t\r\n\t);\r\n}\r\n\r\nexport default Help;\r\n","import React from 'react';\r\nimport Box from '@material-ui/core/Box';\r\n\r\nconst Logo = (props) => (\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n);\r\n\r\nexport default Logo;\r\n","import React from 'react';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport Toolbar from '@material-ui/core/Toolbar';\r\nimport { makeStyles, useTheme } from '@material-ui/core/styles';\r\nimport WestRockLogo from '../WestRockLogo';\r\n\r\nconst useStyles = makeStyles({\r\n\ttoolbar: {\r\n\t\tjustifyContent: 'center',\r\n\t},\r\n});\r\n\r\nfunction WestRockHeader(props) {\r\n\tconst classes = useStyles(props);\r\n\tconst theme = useTheme();\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n}\r\n\r\nexport default WestRockHeader;\r\n","export default __webpack_public_path__ + \"static/media/tamper_tester_logo.db094967.svg\";","import React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport Container from '@material-ui/core/Container';\r\nimport Box from '@material-ui/core/Box';\r\nimport Button from '@material-ui/core/Button';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport { Link } from 'react-router-dom';\r\nimport { useTheme } from '@material-ui/core/styles';\r\nimport WestRockHeader from '../../components/WestRockHeader';\r\nimport TamperTesterLogo from './tamper_tester_logo.svg';\r\n\r\nfunction Home(props) {\r\n\tconst theme = useTheme();\r\n\tconst { t } = useTranslation();\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\"Tamper\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{t('home_screen.title')}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{t('home_screen.description')}\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{t('home_screen.start_scan')}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{t('home_screen.getting_started')}\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n}\r\n\r\nexport default Home;\r\n","import { useSelector, shallowEqual } from 'react-redux';\r\nimport { createSelector } from 'reselect';\r\n\r\nexport const makeSelectorHook = (selector) => () =>\r\n\tuseSelector(selector, shallowEqual);\r\n\r\nexport const makeSelectorFactoryHook = (selectorFactory) => {\r\n\treturn (args) => useSelector(selectorFactory(args), shallowEqual);\r\n};\r\n\r\nexport const createSelectorHook = (...args) => {\r\n\tconst selector = createSelector(...args);\r\n\tconst hook = makeSelectorHook(selector);\r\n\treturn [selector, hook];\r\n};\r\n\r\nexport const createSelectorFactoryHook = (...args) => {\r\n\tconst selector = createSelector(...args);\r\n\tconst hook = makeSelectorFactoryHook(selector);\r\n\treturn [selector, hook];\r\n};\r\n\r\nexport const selectProp = (name, defaultValue) => (substate) =>\r\n\tsubstate[name] || defaultValue;\r\n","export const singlePropReducer =\r\n\t(name, defaultValue) =>\r\n\t(state, { payload } = { payload: defaultValue }) => {\r\n\t\tstate[name] = payload;\r\n\t};\r\n","// this gets its own file to prevent circular imports in selectors.js\r\nimport { singlePropReducer } from '../../utils/reducers';\r\n\r\nexport const initialState = {\r\n\tthngId: undefined,\r\n\tproductId: undefined,\r\n\tproduct: undefined,\r\n\tdigimarcTape: undefined,\r\n\thasCameraPermission: true,\r\n\tqrScanAuthResult: undefined,\r\n\tisLoading: false,\r\n\tisToastOpen: false,\r\n};\r\n\r\nconst reducers = {\r\n\tclearSession(state) {\r\n\t\tstate = initialState;\r\n\t},\r\n\t'validateQr/pending': (state) => {\r\n\t\tstate.isLoading = true;\r\n\t},\r\n\tsetQrResults(state, { payload }) {\r\n\t\tstate.qrScanAuthResult = payload;\r\n\t\tstate.isLoading = false;\r\n\t},\r\n\tsetHasCameraPermission: singlePropReducer('hasCameraPermission'),\r\n\tsetIsDigimarcCorrect: singlePropReducer('isDigimarcCorrect'),\r\n\tsetToastOpen: singlePropReducer('isToastOpen'),\r\n\tsetProduct: singlePropReducer('product'),\r\n};\r\n\r\nexport default reducers;\r\n","import { createSelector } from 'reselect';\r\nimport { createSelectorHook, selectProp } from '../../utils/selectors';\r\nimport { initialState } from './reducers';\r\n\r\n// Action creators are generated for each case reducer function\r\nexport const selectDomain = (state) => state.scanSession || initialState;\r\n\r\nexport const [selectThngId, useThngId] = createSelectorHook(\r\n\tselectDomain,\r\n\tselectProp('thngId')\r\n);\r\n\r\nexport const [selectQrScanAuthResult, useSelectQrScanAuthResult] =\r\n\tcreateSelectorHook(selectDomain, ({ qrScanAuthResult }) => qrScanAuthResult);\r\n\r\nexport const [selectIsQrCodeRecognized, useIsQrCodeRecognized] =\r\n\tcreateSelectorHook(\r\n\t\tselectQrScanAuthResult,\r\n\t\t(result) => result?.customFields.authenticationStatus === 'positive'\r\n\t);\r\n\r\nexport const [selectQrScanId, useQrScanId] = createSelectorHook(\r\n\tselectQrScanAuthResult,\r\n\t(substate) => substate?.customFields?.triggerAction\r\n);\r\n\r\nexport const [selectDigimarcScanAuthResult, useDigimarcScanAuthResult] =\r\n\tcreateSelectorHook(\r\n\t\tselectDomain,\r\n\t\t({ digimarcScanAuthResult }) => digimarcScanAuthResult\r\n\t);\r\n\r\nexport const [selectDigimarcScanId, useDigimarcScanId] = createSelectorHook(\r\n\tselectDigimarcScanAuthResult,\r\n\t(substate) => substate?.customFields?.triggerAction // todo: make sure this is right once digimarc scan is wired up\r\n);\r\n\r\nexport const [selectLatestScanId, useLatestScanId] = createSelectorHook(\r\n\tselectDigimarcScanId,\r\n\tselectQrScanId,\r\n\t(digimarcScanId, qrScanId) => digimarcScanId || qrScanId\r\n);\r\n\r\nexport const [selectAuthAlerts, useAuthAlerts] = createSelectorHook(\r\n\tselectQrScanAuthResult,\r\n\t(result) => {\r\n\t\tconst childActions = result?.customFields.childActions || {};\r\n\t\treturn Object.keys(childActions).filter(\r\n\t\t\t(key) => childActions[key].match === 'true'\r\n\t\t);\r\n\t}\r\n);\r\n\r\nexport const [selectDigimarcTape, useDigimarcTape] = createSelectorHook(\r\n\tselectDomain,\r\n\tselectProp('digimarcTape')\r\n);\r\n\r\nexport const [selectHasCameraPermission, useHasCameraPermission] =\r\n\tcreateSelectorHook(selectDomain, selectProp('hasCameraPermission'));\r\n\r\nexport const [selectIsLoading, useIsLoading] = createSelectorHook(\r\n\tselectDomain,\r\n\tselectProp('isLoading')\r\n);\r\n\r\nexport const [selectIsToastOpen, useIsToastOpen] = createSelectorHook(\r\n\tselectDomain,\r\n\tselectProp('isToastOpen')\r\n);\r\n\r\nexport const [selectIsDigimarcCorrect, useIsDigimarcCorrect] =\r\n\tcreateSelectorHook(selectDomain, selectProp('isDigimarcCorrect'));\r\n\r\nexport const [selectProductId, useProductId] = createSelectorHook(\r\n\tselectDomain,\r\n\tselectProp('productId')\r\n);\r\n\r\nexport const [selectProduct, useProduct] = createSelectorHook(\r\n\tselectDomain,\r\n\tselectProp('product', {})\r\n);\r\nconst selectProductPhotos = createSelector(\r\n\tselectProduct,\r\n\tselectProp('photos', [])\r\n);\r\nexport const [selectProductPhoto, useProductPhoto] = createSelectorHook(\r\n\tselectProductPhotos,\r\n\tselectProp(0)\r\n);\r\n","export default __webpack_public_path__ + \"static/media/alert.dc47260c.svg\";","import { Link } from 'react-router-dom';\r\nimport { useTheme } from '@material-ui/core/styles';\r\nimport { useTranslation } from 'react-i18next';\r\nimport Button from '@material-ui/core/Button';\r\nimport Chip from '@material-ui/core/Chip';\r\nimport Container from '@material-ui/core/Container';\r\nimport Divider from '@material-ui/core/Divider';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport React from 'react';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport copy from 'copy-to-clipboard';\r\n\r\nimport {\r\n\tuseAuthAlerts,\r\n\tuseLatestScanId,\r\n} from '../../store/scanSession/selectors';\r\nimport AlertIllustration from '../../images/alert.svg';\r\nimport TamperTesterHeader from '../TamperTesterHeader';\r\n\r\nfunction VerificationCounterfeit({ image }) {\r\n\tconst { t } = useTranslation();\r\n\tconst theme = useTheme();\r\n\tconst alerts = useAuthAlerts();\r\n\tconst latestScanId = useLatestScanId();\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{t('verification_counterfeit.title')}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t{latestScanId && (\r\n\t\t\t\t\t\t copy(latestScanId)}\r\n\t\t\t\t\t\t\tlabel={\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{t('verification_counterfeit.scan_id')} {latestScanId}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t{!!alerts.length && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t{alerts.map((status) => (\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t{t(`verification_counterfeit.alerts.${status}`)}\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t{t(`verification_counterfeit.alerts.${status}_text`)}\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t)}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{t('verification_counterfeit.description_line1')}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{t('verification_counterfeit.description_line2')}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{t('verification_counterfeit.description_line3')}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{t('verification_counterfeit.scan_next')}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{t('verification_counterfeit.contact_us')}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n}\r\n\r\nexport default VerificationCounterfeit;\r\n","import Grid from '@material-ui/core/Grid';\r\nimport React from 'react';\r\nimport { useTheme } from '@material-ui/core/styles';\r\n\r\nimport PropTypes from 'prop-types';\r\nimport styled from '@material-ui/styles/styled';\r\n\r\nimport { useProductPhoto } from '../../store/scanSession/selectors';\r\n\r\nconst Image = styled('img')({\r\n\tmaxHeight: '400px',\r\n\twidth: '100%',\r\n\tobjectFit: \"contain\"\r\n});\r\n\r\nconst ProductPhoto = ({ src, ...props }) => {\r\n\tconst imageSrc = useProductPhoto() || src;\r\n\tconst theme = useTheme();\r\n\treturn imageSrc ? (\r\n\t\t \r\n\t\t\t\"Product\"\r\n\t\t\r\n\t) : null;\r\n};\r\n\r\nProductPhoto.propTypes = {\r\n\tsrc: PropTypes.string,\r\n};\r\n\r\nexport default ProductPhoto;\r\n","export default __webpack_public_path__ + \"static/media/success.d88fdccf.svg\";","import { Link } from 'react-router-dom';\r\nimport { useTheme } from '@material-ui/core/styles';\r\nimport { useTranslation } from 'react-i18next';\r\nimport Button from '@material-ui/core/Button';\r\nimport Container from '@material-ui/core/Container';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport React from 'react';\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\nimport ProductPhoto from '../ProductPhoto';\r\nimport SuccessIllustration from '../../images/success.svg';\r\nimport TamperTesterHeader from '../TamperTesterHeader';\r\n\r\nfunction VerificationSuccess(props) {\r\n\tconst { t } = useTranslation();\r\n\tconst theme = useTheme();\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\"Verification\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{t('verification_success.title')}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{t('verification_success.description')}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{t('verification_success.scan_next')}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n}\r\n\r\nexport default VerificationSuccess;\r\n","import { Link } from 'react-router-dom';\r\nimport { useTheme } from '@material-ui/core/styles';\r\nimport { useTranslation } from 'react-i18next';\r\nimport Button from '@material-ui/core/Button';\r\nimport Container from '@material-ui/core/Container';\r\nimport Divider from '@material-ui/core/Divider';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport React from 'react';\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\nimport AlertIllustration from '../../images/alert.svg';\r\nimport TamperTesterHeader from '../TamperTesterHeader';\r\n\r\nfunction VerificationTampering(props) {\r\n\tconst { t } = useTranslation();\r\n\tconst theme = useTheme();\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\"Potential\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{t('verification_tampering.title')}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{t('verification_tampering.description_line1')}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{t('verification_tampering.description_line2')}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{t('verification_tampering.description_line3')}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{t('verification_tampering.scan_next')}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{t('verification_tampering.contact_us')}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n}\r\n\r\nexport default VerificationTampering;\r\n","import React from 'react';\r\n\r\nimport {\r\n\tuseIsDigimarcCorrect,\r\n\tuseIsQrCodeRecognized,\r\n} from '../../store/scanSession/selectors';\r\nimport VerificationCounterfeit from '../../components/VerificationCounterfeit';\r\nimport VerificationSuccess from '../../components/VerificationSuccess';\r\nimport VerificationTampering from '../../components/VerificationTampering';\r\n\r\nfunction Results() {\r\n\tconst isQrRecognized = useIsQrCodeRecognized();\r\n\tconst isDigimarcCorrect = useIsDigimarcCorrect();\r\n\r\n\tif (isQrRecognized && isDigimarcCorrect) {\r\n\t\treturn ; // only show success\r\n\t} else if (isQrRecognized) {\r\n\t\treturn ;\r\n\t} else {\r\n\t\treturn ;\r\n\t}\r\n}\r\n\r\nexport default Results;\r\n","import React from 'react';\r\nimport { Helmet } from 'react-helmet';\r\n\r\nconst REACT_APP_GOOGLE_TAG_MANAGER_KEY =\r\n\tprocess.env.REACT_APP_GOOGLE_TAG_MANAGER_KEY;\r\n\r\nconst GoogleTagManager = () => (\r\n\t\r\n\t\t\r\n\t\r\n);\r\n\r\nexport default GoogleTagManager;\r\n\r\nexport let dataLayer = [];\r\n\r\nconst setDataLayer = () =>\r\n\tsetTimeout(() => {\r\n\t\tif (window.dataLayer) {\r\n\t\t\tif (dataLayer.length) {\r\n\t\t\t\t// keep track of any events pushed before tag manager is loaded and reapply them once tag manager is in place\r\n\t\t\t\tdataLayer.forEach((item) => window.dataLayer.push(item));\r\n\t\t\t}\r\n\t\t\tdataLayer = window.dataLayer;\r\n\t\t} else {\r\n\t\t\tsetDataLayer();\r\n\t\t}\r\n\t}, 100);\r\n\r\nsetDataLayer();\r\n\r\nexport const customEvent = (event, props = {}) =>\r\n\tdataLayer.push({ event, ...props });\r\n\r\nexport const generateAlertTrackingEvents = (prefix, alerts) => {\r\n\talerts.forEach((key) =>\r\n\t\tcustomEvent(`${prefix}_${key.replace(/Checks$/, '')}`, '')\r\n\t);\r\n};\r\n","import { createSlice } from '@reduxjs/toolkit';\r\n\r\nimport { useActions as useActionsUtil } from '../../utils/actions';\r\nimport reducers, { initialState } from './reducers';\r\n\r\nconst scanSessionSlice = createSlice({\r\n\tname: 'scanSession',\r\n\treducers,\r\n\tinitialState,\r\n});\r\n\r\nexport const useActions = () => useActionsUtil(scanSessionSlice.actions);\r\n\r\nexport default scanSessionSlice;\r\n\r\nexport const { actions, reducer } = scanSessionSlice;\r\n\r\nexport const scanSessionReducer = reducer;\r\n","// source: https://react-redux.js.org/api/hooks#recipe-useactions\r\n\r\nimport { bindActionCreators } from 'redux';\r\nimport { useDispatch } from 'react-redux';\r\nimport { useMemo } from 'react';\r\n\r\nexport function useActions(actions, deps) {\r\n\tconst dispatch = useDispatch();\r\n\treturn useMemo(\r\n\t\t() => {\r\n\t\t\tif (Array.isArray(actions)) {\r\n\t\t\t\treturn actions.map((a) => bindActionCreators(a, dispatch));\r\n\t\t\t}\r\n\t\t\treturn bindActionCreators(actions, dispatch);\r\n\t\t},\r\n\t\t/* eslint-disable-next-line react-hooks/exhaustive-deps */\r\n\t\tdeps ? [dispatch, ...deps] : [dispatch]\r\n\t);\r\n}\r\n","export const makeSocket = (thngId) =>\r\n\twindow.evrythngToken.thng(thngId).action('authenticationResults');\r\n\r\nconst authenticationResultsApi = {\r\n\tretrieve: (thngId, count = 1) => makeSocket(thngId).read(count),\r\n\tsubscribe: async (thngId, onMessage) => {\r\n\t\tconst socket = makeSocket(thngId);\r\n\t\tawait socket.subscribe(onMessage);\r\n\t\treturn socket;\r\n\t},\r\n};\r\n\r\nexport default authenticationResultsApi;\r\n","import { createBrowserHistory } from 'history';\r\n\r\nconst customHistory = createBrowserHistory();\r\n\r\nexport default customHistory;\r\n","const productApi = {\r\n\tget: (id) => window.evrythngToken.product(id),\r\n};\r\n\r\nexport default productApi;\r\n","const stop = () => window.ScanThng.stopScanQrCode(); // ScanThng throws an error on unmount if it can't find its container, preventing it from stopping its ongoing network requests. So far I haven't found any way to fix this without switching to a class-based component and using the componentWillUnmount hook\r\n\r\nconst streamApi = {\r\n\tscan: (options) =>\r\n\t\twindow.evrythngToken.scanStream(options).finally(() => {\r\n\t\t\tstop();\r\n\t\t}), // leave this as arrow function syntax, a direct reference does not work\r\n\tstop,\r\n};\r\n\r\nexport default streamApi;\r\n","const thng = (id) => window.evrythngToken.thng(id);\r\n\r\nconst thngApi = {\r\n\tscan: (id) => thng(id).action('implicitScans').create(),\r\n\tget: (id) => thng(id).read(),\r\n};\r\n\r\nexport default thngApi;\r\n","import { createAsyncThunk } from '@reduxjs/toolkit';\r\n\r\nimport { actions } from './';\r\nimport { selectAuthAlerts, selectIsQrCodeRecognized } from './selectors';\r\nimport authenticationResultsApi from '../../apis/authenticationResults';\r\nimport history from '../../history';\r\nimport productApi from '../../apis/product';\r\nimport streamApi from '../../apis/stream';\r\nimport thngApi from '../../apis/thng';\r\nimport { generateAlertTrackingEvents } from '../../components/GoogleTagManager';\r\n\r\nexport const scanQr = createAsyncThunk(\r\n\t'scanSession/scanQr',\r\n\tasync (thngId, { dispatch, getState }) => {\r\n\t\tif (thngId) {\r\n\t\t\tdispatch(validateQr(thngId));\r\n\t\t\tdispatch(findProduct(thngId)); // implicit scan means we don't get product id for free, must make a separate call\r\n\t\t} else {\r\n\t\t\tconst { setToastOpen, setHasCameraPermission } = actions;\r\n\r\n\t\t\ttry {\r\n\t\t\t\tconst res = await streamApi.scan({\r\n\t\t\t\t\tfilter: { method: '2d', type: 'qr_code' },\r\n\t\t\t\t\tcontainerId: 'stream_container',\r\n\t\t\t\t}); // start the qr code scan\r\n\r\n\t\t\t\tif (res.length === 0) {\r\n\t\t\t\t\t// no results found\r\n\t\t\t\t\tdispatch(scanQr()); // run this function again\r\n\t\t\t\t} else if (res && res[0].results.length === 0) {\r\n\t\t\t\t\t// irrelevant result found\r\n\t\t\t\t\tdispatch(setToastOpen(true));\r\n\t\t\t\t\tdispatch(scanQr());\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// valid result found\r\n\t\t\t\t\tdispatch(validateQr(res[0].results[0].thng.id));\r\n\t\t\t\t\tdispatch(getProduct(res[0].results[0].thng.product));\r\n\t\t\t\t}\r\n\t\t\t} catch (e) {\r\n\t\t\t\tconsole.error(e);\r\n\r\n\t\t\t\tif (e.message === 'Permission denied') {\r\n\t\t\t\t\tdispatch(setHasCameraPermission(false));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const validateQr = createAsyncThunk(\r\n\t'scanSession/validateQr',\r\n\tasync (thngId, { dispatch, getState }) => {\r\n\t\tconst { setQrResults } = actions;\r\n\t\tlet scanId;\r\n\r\n\t\tconst socket = await authenticationResultsApi.subscribe(\r\n\t\t\tthngId,\r\n\t\t\tasync (unserializableMessage) => {\r\n\t\t\t\tconst message = JSON.parse(JSON.stringify(unserializableMessage)); // evt's package returns an instantiated class which cannot be stored in redux.\r\n\r\n\t\t\t\tif (message.customFields.triggerAction === scanId) {\r\n\t\t\t\t\tsocket.unsubscribe();\r\n\t\t\t\t\tawait dispatch(setQrResults(message));\r\n\r\n\t\t\t\t\tconst isAuthenticated = selectIsQrCodeRecognized(await getState());\r\n\t\t\t\t\tstreamApi.stop();\r\n\r\n\t\t\t\t\tconst alerts = selectAuthAlerts(getState());\r\n\t\t\t\t\tif (!isAuthenticated) {\r\n\t\t\t\t\t\tgenerateAlertTrackingEvents('step1', alerts);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tawait history.push(\r\n\t\t\t\t\t\tisAuthenticated\r\n\t\t\t\t\t\t\t? '/step1/success'\r\n\t\t\t\t\t\t\t: '/verificationResults/counterfeit'\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\ttry {\r\n\t\t\tscanId = (await thngApi.scan(thngId)).id; // trigger the scan\r\n\t\t} catch (e) {\r\n\t\t\tconsole.error(e);\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const validateDigimarc = createAsyncThunk(\r\n\t'scanSession/validateDigimarc',\r\n\tasync (_, { dispatch }) => {\r\n\t\ttry {\r\n\t\t\tconst res = await streamApi.scan({\r\n\t\t\t\tfilter: { method: 'digimarc', type: 'gs1:21' },\r\n\t\t\t\tcontainerId: 'stream_container',\r\n\t\t\t\timageConversion: {\r\n\t\t\t\t\tgreyscale: false,\r\n\t\t\t\t\texportFormat: 'image/jpeg',\r\n\t\t\t\t\tresizeTo: 1080,\r\n\t\t\t\t},\r\n\t\t\t});\r\n\r\n\t\t\tif (res.length === 0) {\r\n\t\t\t\tdispatch(validateDigimarc());\r\n\t\t\t} else if (\r\n\t\t\t\t// // TODO: replace with digimarc check logic and uncomment\r\n\t\t\t\t// /* check digimarc against qr, return true for invalid */\r\n\t\t\t\t!res[0]?.results[0]?.thng\r\n\t\t\t) {\r\n\t\t\t\tdispatch(setIsDigimarcCorrect(/* false */ true)); // replace me once digimarc in place too!\r\n\t\t\t} else {\r\n\t\t\t\tdispatch(setIsDigimarcCorrect(true));\r\n\t\t\t}\r\n\t\t} catch (e) {\r\n\t\t\tconsole.error(e);\r\n\r\n\t\t\tif (e.message === 'Permission denied') {\r\n\t\t\t\tdispatch(actions.setHasCameraPermission(false));\r\n\t\t\t}\r\n\t\t} finally {\r\n\t\t\tstreamApi.stop();\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const setIsDigimarcCorrect = createAsyncThunk(\r\n\t'scanSession/setIsDigimarcCorrect',\r\n\tasync (isCorrect, { dispatch, getState }) => {\r\n\t\tdispatch(actions.setIsDigimarcCorrect(isCorrect));\r\n\r\n\t\tconst isAuthenticated = selectIsQrCodeRecognized(await getState());\r\n\t\tstreamApi.stop();\r\n\t\tconst alerts = selectAuthAlerts(getState());\r\n\t\tif (!isAuthenticated) {\r\n\t\t\tgenerateAlertTrackingEvents('step2', alerts);\r\n\t\t}\r\n\t\thistory.push(\r\n\t\t\t`verificationResults/${isCorrect ? 'success' : 'counterfeit'}`\r\n\t\t);\r\n\t}\r\n);\r\n\r\nexport const findProduct = createAsyncThunk(\r\n\t'scanSession/findProduct',\r\n\tasync (thngId, { dispatch }) => {\r\n\t\tconst { product } = await thngApi.get(thngId);\r\n\t\tif (product) {\r\n\t\t\tawait dispatch(getProduct(product));\r\n\t\t}\r\n\t}\r\n);\r\n\r\nexport const getProduct = createAsyncThunk(\r\n\t'scanSession/getProduct',\r\n\tasync (productId, { dispatch }) => {\r\n\t\tconst { setProduct } = actions;\r\n\t\tconst product = JSON.parse(\r\n\t\t\tJSON.stringify(await productApi.get(productId).read())\r\n\t\t); // evt returns instantiated objects that can't be stored in the redux store, we need to clean it for storage\r\n\r\n\t\tawait dispatch(setProduct(product));\r\n\t}\r\n);\r\n","import { useDispatch } from 'react-redux';\r\nimport { useMemo } from 'react';\r\n\r\nimport { createAsyncThunk } from '@reduxjs/toolkit';\r\nimport map from 'lodash/map';\r\n\r\nexport const createAsyncThunks = (config) => {\r\n\tconst thunks = [];\r\n\tmap(config, (value, key) => {\r\n\t\tthunks.push({ [key]: createAsyncThunk(key, value) });\r\n\t});\r\n\r\n\treturn thunks.reduce((a, b) => ({ ...a, ...b }));\r\n};\r\n\r\nexport const useThunks = (...thunks) => {\r\n\tconst dispatch = useDispatch();\r\n\treturn useMemo(\r\n\t\t() =>\r\n\t\t\tthunks.map(\r\n\t\t\t\t(thunk) =>\r\n\t\t\t\t\t(...args) =>\r\n\t\t\t\t\t\tdispatch(thunk(...args))\r\n\t\t\t),\r\n\t\t/* eslint-disable-next-line react-hooks/exhaustive-deps */\r\n\t\t[dispatch, ...thunks]\r\n\t);\r\n};\r\n\r\nexport const useThunk = (thunk) => {\r\n\treturn useThunks(thunk)[0];\r\n};\r\n","import React, {\r\n\tuseCallback,\r\n\tuseEffect,\r\n\tuseMemo,\r\n\tuseRef,\r\n\tuseState,\r\n} from 'react';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport MuiChip from '@material-ui/core/Chip';\r\nimport AccessAlarmsIcon from '@material-ui/icons/AccessAlarms';\r\nimport PropTypes from 'prop-types';\r\nimport styled from '@material-ui/styles/styled';\r\n\r\nconst Chip = styled(MuiChip)(({ theme }) => ({\r\n\tbackground: theme.palette.error.main,\r\n}));\r\n\r\nfunction CountdownTimer({\r\n\ttimeout,\r\n\talertThreshold,\r\n\tonStart,\r\n\tonTimeout,\r\n\tonTimerAlert,\r\n}) {\r\n\tconst [secondsRemaining, setSecondsRemaining] = useState(parseInt(timeout));\r\n\r\n\tconst intervalRef = useRef();\r\n\r\n\tconst decrement = async () => {\r\n\t\tsetSecondsRemaining((sR) => sR - 1);\r\n\t};\r\n\r\n\tconst cancel = useCallback(() => {\r\n\t\tclearInterval(intervalRef.current);\r\n\t\tintervalRef.current = undefined;\r\n\t\tsetSecondsRemaining(timeout);\r\n\t}, [intervalRef, setSecondsRemaining, timeout]);\r\n\r\n\tif (secondsRemaining <= 0) {\r\n\t\tcancel();\r\n\t\tonTimeout();\r\n\t}\r\n\r\n\tconst startInterval = useCallback(() => {\r\n\t\tintervalRef.current = setInterval(decrement, 1000);\r\n\t}, [intervalRef]);\r\n\r\n\tconst reset = useCallback(() => {\r\n\t\tcancel();\r\n\t\tstartInterval();\r\n\t}, [cancel, startInterval]);\r\n\r\n\tuseEffect(() => {\r\n\t\tstartInterval();\r\n\t\tonStart({\r\n\t\t\tcancel,\r\n\t\t\treset,\r\n\t\t});\r\n\t\treturn cancel;\r\n\t}, [reset, cancel, startInterval, onStart]);\r\n\r\n\tconst isChipShown = useMemo(\r\n\t\t() => secondsRemaining <= alertThreshold,\r\n\t\t[secondsRemaining, alertThreshold]\r\n\t);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (isChipShown) {\r\n\t\t\tonTimerAlert();\r\n\t\t}\r\n\t}, [onTimerAlert, isChipShown]);\r\n\r\n\tlet displaySecondsRemaining = Math.ceil(secondsRemaining % 60);\r\n\tlet minutesRemaining = Math.floor(secondsRemaining / 60) || '';\r\n\tif (secondsRemaining === 60) {\r\n\t\tminutesRemaining += 1;\r\n\t\tdisplaySecondsRemaining = 0;\r\n\t}\r\n\tif (displaySecondsRemaining < 10) {\r\n\t\tdisplaySecondsRemaining = `0${displaySecondsRemaining}`;\r\n\t}\r\n\r\n\treturn (\r\n\t\tisChipShown && (\r\n\t\t\t}\r\n\t\t\t\tlabel={\r\n\t\t\t\t\t{`${minutesRemaining}:${displaySecondsRemaining}`}\r\n\t\t\t\t}\r\n\t\t\t\tclickable\r\n\t\t\t\tid=\"timer-alert\"\r\n\t\t\t\tcolor=\"primary\"\r\n\t\t\t/>\r\n\t\t)\r\n\t);\r\n}\r\n\r\nCountdownTimer.propTypes = {\r\n\ttimeoutMs: PropTypes.number,\r\n\talertThresholdMs: PropTypes.number,\r\n\tonStart: PropTypes.func,\r\n\tonTimeout: PropTypes.func,\r\n\tonTimerAlert: PropTypes.func,\r\n};\r\n\r\nCountdownTimer.defaultProps = {\r\n\ttimeout: 30,\r\n\tonStart: () => {},\r\n\tonTimeout: () => {},\r\n\tonTimerAlert: () => {},\r\n\talertThreshold: 10,\r\n};\r\n\r\nexport default React.memo(CountdownTimer);\r\n","import React from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useTheme } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\nimport Container from '@material-ui/core/Container';\r\nimport Divider from '@material-ui/core/Divider';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\nimport TamperTesterHeader from '../TamperTesterHeader';\r\nimport AlertIllustration from '../../images/alert.svg';\r\n\r\nfunction NoPermission(props) {\r\n\tconst { t } = useTranslation();\r\n\tconst theme = useTheme();\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\"No\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{t('no_permission.title')}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{t('no_permission.description')}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{t('no_permission.cancel')}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n}\r\n\r\nexport default NoPermission;\r\n","import React from 'react';\r\nimport Grid from '@material-ui/core/Grid';\r\n\r\nfunction ProgressIndicator() {\r\n\tconst css = `\r\n :root {\r\n --animation-timing: 1.2s;\r\n }\r\n .glyph {\r\n fill: #89B4D6;\r\n animation: loading var(--animation-timing) infinite;\r\n }\r\n\r\n .glyph-1 {\r\n animation-delay: calc(var(--animation-timing) *0);\r\n }\r\n\r\n .glyph-2 {\r\n animation-delay: calc(var(--animation-timing) *.2);\r\n }\r\n\r\n .glyph-3 {\r\n animation-delay: calc(var(--animation-timing) *.3);\r\n }\r\n\r\n .glyph-4 {\r\n animation-delay: calc(var(--animation-timing) *.4);\r\n }\r\n\r\n .glyph-5 {\r\n animation-delay: calc(var(--animation-timing) *.5);\r\n }\r\n\r\n @keyframes loading {\r\n 0% {\r\n fill: #5C93BF;\r\n transform: scale(1) translate(0, 0);\r\n }\r\n 10% {\r\n fill: #89B4D6;\r\n transform: scale(1.02) translate(-1px, 0px);\r\n }\r\n 100% {\r\n fill: #5C93BF;\r\n transform: scale(1) translate(0, 0);\r\n }\r\n }\r\n .background {\r\n fill: rgba(255,255,255,.8);\r\n }\r\n `;\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n}\r\n\r\nexport default ProgressIndicator;\r\n","export default __webpack_public_path__ + \"static/media/qr_thumbnail.1f394ca5.svg\";","import { Link, useHistory, useLocation } from 'react-router-dom';\r\nimport { makeStyles, useTheme } from '@material-ui/core/styles';\r\nimport { useTranslation } from 'react-i18next';\r\nimport Alert from '@material-ui/lab/Alert';\r\nimport Backdrop from '@material-ui/core/Backdrop';\r\nimport Button from '@material-ui/core/Button';\r\nimport Container from '@material-ui/core/Container';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport React, { useCallback, useEffect, useRef } from 'react';\r\nimport Snackbar from '@material-ui/core/Snackbar';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport WarningIcon from '@material-ui/icons/Warning';\r\n\r\nimport { customEvent } from '../../components/GoogleTagManager';\r\nimport { scanQr as scanQrThunk } from '../../store/scanSession/thunks';\r\nimport { useActions } from '../../store/scanSession';\r\nimport {\r\n\tuseHasCameraPermission,\r\n\tuseIsLoading,\r\n\tuseIsToastOpen,\r\n\tuseThngId,\r\n} from '../../store/scanSession/selectors';\r\nimport { useThunk } from '../../utils/thunks';\r\nimport CountdownTimer from '../../components/CountdownTimer';\r\nimport NoPermission from '../../components/NoPermission';\r\nimport ProgressIndicator from '../../components/ProgressIndicator';\r\nimport QRThumbnail from './qr_thumbnail.svg';\r\nimport TamperTesterHeader from '../../components/TamperTesterHeader';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\tbackdrop: {\r\n\t\tzIndex: theme.zIndex.drawer + 1,\r\n\t\tcolor: '#fff',\r\n\t},\r\n}));\r\n\r\nfunction Step1() {\r\n\tconst { t } = useTranslation();\r\n\tconst theme = useTheme();\r\n\tconst history = useHistory();\r\n\tconst { search } = useLocation();\r\n\tconst actions = useActions();\r\n\tconst classes = useStyles();\r\n\tconst scanQr = useThunk(scanQrThunk);\r\n\r\n\tconst cancelRef = useRef(() => {});\r\n\tconst resetRef = useRef();\r\n\r\n\tconst hasCameraPermission = useHasCameraPermission();\r\n\tconst isToastOpen = useIsToastOpen();\r\n\tconst isLoading = useIsLoading();\r\n\r\n\tconst onToastClose = useCallback(\r\n\t\t() => actions.setToastOpen(false),\r\n\t\t[actions]\r\n\t);\r\n\r\n\tconst thngId = useThngId();\r\n\tuseEffect(() => {\r\n\t\tif (thngId) {\r\n\t\t\t// if we have the thngId we don't want any surprise redirections\r\n\t\t\tcancelRef.current();\r\n\t\t}\r\n\t\treturn () => cancelRef.current(); // we also don't want any surprise redirections after the component is unmounted\r\n\t}, [thngId]);\r\n\r\n\tuseEffect(() => {\r\n\t\tconst searchParams = new URLSearchParams(search);\r\n\t\tconst thngId = searchParams.get('thng') || undefined;\r\n\r\n\t\tscanQr(thngId);\r\n\t}, [search, scanQr]);\r\n\r\n\tconst onTimeout = useCallback(() => {\r\n\t\thistory.push('/step1/help');\r\n\t\tcustomEvent('time_ends_step1');\r\n\t}, [history]);\r\n\r\n\tconst onStart = useCallback(({ cancel, reset }) => {\r\n\t\tcancelRef.current = cancel;\r\n\t\tresetRef.current = reset;\r\n\t}, []);\r\n\r\n\tconst onTimerAlert = useCallback(() => {\r\n\t\tcustomEvent('time_starts_step1');\r\n\t}, []);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (hasCameraPermission || isToastOpen) {\r\n\t\t\tresetRef.current();\r\n\t\t}\r\n\t\tif (isToastOpen) {\r\n\t\t\tcustomEvent('qr_not_relevant1');\r\n\t\t}\r\n\t}, [hasCameraPermission, isToastOpen, resetRef]);\r\n\r\n\tif (!hasCameraPermission) {\r\n\t\treturn ;\r\n\t}\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t{isLoading && (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\t{/* todo: replace me ^^^ with WR branded loading indicator*/}\r\n\t\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{t('step_1_screen.alert_title')}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{t('step_1_screen.alert_body')}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{t('step_1_screen.title')}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\"QR\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{t('step_1_screen.instructions')}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{t('step_1_screen.help')}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{t('step_1_screen.cancel')}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n}\r\n\r\nexport default Step1;\r\n","export default __webpack_public_path__ + \"static/media/qr-code-help.01fdffac.svg\";","export default __webpack_public_path__ + \"static/media/qr-code-instructions.438c8deb.svg\";","import React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport Button from '@material-ui/core/Button';\r\nimport Container from '@material-ui/core/Container';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Divider from '@material-ui/core/Divider';\r\nimport { useTheme } from '@material-ui/core/styles';\r\nimport { Link } from 'react-router-dom';\r\nimport TamperTesterHeader from '../../components/TamperTesterHeader';\r\nimport QrCodeHelpIllustration from './qr-code-help.svg';\r\nimport QrCodeInstructionsIllustration from './qr-code-instructions.svg';\r\n\r\nfunction Step1Help(props) {\r\n\tconst { t } = useTranslation();\r\n\tconst theme = useTheme();\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\"QR\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{t('step_1_help_screen.title')}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{t('step_1_help_screen.subtitle')}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{t('step_1_help_screen.help_text')}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{t('step_1_help_screen.retry')}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{t('step_1_help_screen.contact_us')}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{t('step_1_help_screen.cancel')}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n}\r\n\r\nexport default Step1Help;\r\n","export default __webpack_public_path__ + \"static/media/tape_thumbnail.9f9b917e.svg\";","import { Link, useHistory } from 'react-router-dom';\r\nimport { useTheme } from '@material-ui/core/styles';\r\nimport { useTranslation } from 'react-i18next';\r\nimport Button from '@material-ui/core/Button';\r\nimport Container from '@material-ui/core/Container';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport React, { useCallback, useEffect, useRef } from 'react';\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\nimport { customEvent } from '../../components/GoogleTagManager';\r\nimport {\r\n\tuseHasCameraPermission,\r\n\tuseIsQrCodeRecognized,\r\n} from '../../store/scanSession/selectors';\r\nimport { useThunk } from '../../utils/thunks';\r\nimport { validateDigimarc as validateDigimarcThunk } from '../../store/scanSession/thunks';\r\nimport CountdownTimer from '../../components/CountdownTimer';\r\nimport NoPermission from '../../components/NoPermission';\r\nimport TamperTesterHeader from '../../components/TamperTesterHeader';\r\nimport TapeThumbnail from './tape_thumbnail.svg';\r\nimport streamApi from '../../apis/stream';\r\n\r\nfunction Step2() {\r\n\tconst { t } = useTranslation();\r\n\tconst theme = useTheme();\r\n\tconst history = useHistory();\r\n\tconst hasCameraPermission = useHasCameraPermission();\r\n\tconst cancelRef = useRef(() => {});\r\n\tconst validateDigimarc = useThunk(validateDigimarcThunk);\r\n\r\n\tconst isQrRecognized = useIsQrCodeRecognized();\r\n\r\n\tuseEffect(() => {\r\n\t\tif (isQrRecognized) {\r\n\t\t\tvalidateDigimarc();\r\n\t\t} else {\r\n\t\t\thistory.push('/step1');\r\n\t\t}\r\n\t}, [validateDigimarc, isQrRecognized, history]);\r\n\r\n\tconst onTimeout = useCallback(() => {\r\n\t\tcustomEvent('time_ends_step2');\r\n\t\tstreamApi.stop();\r\n\t\thistory.push('/step2/help');\r\n\t}, [history]);\r\n\r\n\tconst onStart = useCallback(({ cancel }) => {\r\n\t\tcancelRef.current = cancel;\r\n\t}, []);\r\n\r\n\tconst onTimerAlert = useCallback(() => {\r\n\t\tcustomEvent('time_starts_step2');\r\n\t}, []);\r\n\r\n\tif (!hasCameraPermission) {\r\n\t\treturn ;\r\n\t}\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{t('step_2_screen.title')}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\"Digimarc\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{t('step_2_screen.instructions')}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{t('step_2_screen.help')}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{t('step_2_screen.cancel')}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n}\r\n\r\nexport default Step2;\r\n","export default __webpack_public_path__ + \"static/media/tape-help.b425387f.svg\";","export default __webpack_public_path__ + \"static/media/tape-instructions.8429220d.svg\";","import React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport Button from '@material-ui/core/Button';\r\nimport Container from '@material-ui/core/Container';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Divider from '@material-ui/core/Divider';\r\nimport { useTheme } from '@material-ui/core/styles';\r\nimport { Link } from 'react-router-dom';\r\nimport TamperTesterHeader from '../../components/TamperTesterHeader';\r\nimport TapeHelpIllustration from './tape-help.svg';\r\nimport TapeInstructionsIllustration from './tape-instructions.svg';\r\n\r\nfunction Step2Help(props) {\r\n\tconst { t } = useTranslation();\r\n\tconst theme = useTheme();\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\"Scan\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{t('step_2_help_screen.title')}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{t('step_2_help_screen.subtitle_1')}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{t('step_2_help_screen.help_text_1')}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{t('step_2_help_screen.possible_tampering')}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{t('step_2_help_screen.tampering_description')}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{t('step_2_help_screen.retry')}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{t('step_2_help_screen.contact_us')}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{t('step_2_help_screen.cancel')}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n}\r\n\r\nexport default Step2Help;\r\n","import React from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useTheme } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\nimport Divider from '@material-ui/core/Divider';\r\nimport Container from '@material-ui/core/Container';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\nimport TamperTesterHeader from '../../components/TamperTesterHeader';\r\nimport SuccessIllustration from '../../images/success.svg';\r\n\r\nfunction Step1Success() {\r\n\tconst { t } = useTranslation();\r\n\tconst theme = useTheme();\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\"Verification\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{t('step_1_success_screen.verification')}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{t('step_1_success_screen.subtitle')}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{t('step_1_success_screen.description')}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{t('step_1_success_screen.next_step')}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n}\r\n\r\nexport default Step1Success;","import { configureStore } from '@reduxjs/toolkit';\r\nimport { connectRouter, routerMiddleware } from 'connected-react-router';\r\n\r\nimport history from '../history';\r\nimport scanSession from './scanSession';\r\n\r\nconst store = configureStore({\r\n\treducer: { scanSession: scanSession.reducer, router: connectRouter(history) },\r\n\tmiddleware: (getDefaultMiddleware) => [\r\n\t\trouterMiddleware(history),\r\n\t\t...getDefaultMiddleware(),\r\n\t],\r\n});\r\n\r\nexport default store;\r\n","/**\r\n * Do not edit directly\r\n * Generated on Mon, 07 Jun 2021 13:38:45 GMT\r\n */\r\n\r\nexport const BASE_BG_COLOR = 'rgba(98,101,107,1)';\r\nexport const BASE_BG_HOVER_COLOR = 'rgba(62,64,68,1)';\r\nexport const BASE_BG_LIGHT_COLOR = 'rgba(249,249,249,1)';\r\nexport const BASE_BORDER_COLOR = 'rgba(144,146,152,1)';\r\nexport const BASE_BORDER_WIDTH = '1px';\r\nexport const BASE_BORDER_RADIUS = '.25rem';\r\nexport const BASE_BORDER_HOVER_COLOR = 'rgba(98,101,107,1)';\r\nexport const BASE_TEXT_SIZE = '1rem';\r\nexport const BASE_TEXT_COLOR = 'rgba(98,101,107,1)';\r\nexport const BASE_TEXT_HOVER_COLOR = 'rgba(98,101,107,1)';\r\nexport const BASE_LINE_HEIGHT = '1.5';\r\nexport const BORDER_RADIUS_MD = '.25rem';\r\nexport const BORDER_RADIUS_SM = '.5rem';\r\nexport const BORDER_RADIUS_LG = '.75rem';\r\nexport const INPUT_BTN_HEIGHT_MD = '3rem';\r\nexport const INPUT_BTN_HEIGHT_SM = '2rem';\r\nexport const INPUT_BTN_HEIGHT_LG = '4rem';\r\nexport const INPUT_BTN_PADDING_X_MD = '1rem';\r\nexport const INPUT_BTN_PADDING_X_SM = '.5rem';\r\nexport const INPUT_BTN_PADDING_X_LG = '1.5rem';\r\nexport const INPUT_BG_COLOR = '#fff';\r\nexport const LABEL_FONT_WEIGHT = '600';\r\nexport const LABEL_FONT_SIZE = '1rem';\r\nexport const LABEL_MARGIN_BOTTOM = '.5rem';\r\nexport const TEXT_SIZE_XS = '.75rem';\r\nexport const TEXT_SIZE_SM = '.875rem';\r\nexport const TEXT_SIZE_MD = '1rem';\r\nexport const TEXT_SIZE_LG = '1.125rem';\r\nexport const TEXT_COLOR = 'rgba(23,24,25,1)';\r\nexport const TEXT_MUTED_COLOR = 'rgba(98,101,107,1)';\r\nexport const COLOR_BLUE_LIGHT_10 = 'rgba(215,247,255,1)';\r\nexport const COLOR_BLUE_LIGHT_20 = 'rgba(182,239,255,1)';\r\nexport const COLOR_BLUE_LIGHT_30 = 'rgba(146,231,255,1)';\r\nexport const COLOR_BLUE_LIGHT_40 = 'rgba(74,193,255,1)';\r\nexport const COLOR_BLUE_LIGHT_50 = 'rgba(0,133,202,1)';\r\nexport const COLOR_BLUE_LIGHT_60 = 'rgba(0,80,121,1)';\r\nexport const COLOR_BLUE_LIGHT_70 = 'rgba(0,49,74,1)';\r\nexport const COLOR_BLUE_LIGHT_80 = 'rgba(0,30,45,1)';\r\nexport const COLOR_BLUE_LIGHT_90 = 'rgba(3,18,25,1)';\r\nexport const COLOR_BLUE_LIGHT_05 = 'rgba(242,251,255,1)';\r\nexport const COLOR_BLUE_10 = 'rgba(226,240,251,1)';\r\nexport const COLOR_BLUE_20 = 'rgba(207,229,247,1)';\r\nexport const COLOR_BLUE_30 = 'rgba(176,209,236,1)';\r\nexport const COLOR_BLUE_40 = 'rgba(137,180,214,1)';\r\nexport const COLOR_BLUE_50 = 'rgba(92,147,191,1)';\r\nexport const COLOR_BLUE_60 = 'rgba(47,115,169,1)';\r\nexport const COLOR_BLUE_70 = 'rgba(0,75,135,1)';\r\nexport const COLOR_BLUE_80 = 'rgba(0,43,77,1)';\r\nexport const COLOR_BLUE_90 = 'rgba(0,14,25,1)';\r\nexport const COLOR_BLUE_05 = 'rgba(243,250,255,1)';\r\nexport const COLOR_GRAY_10 = 'rgba(236,237,238,1)';\r\nexport const COLOR_GRAY_20 = 'rgba(221,222,224,1)';\r\nexport const COLOR_GRAY_30 = 'rgba(202,205,213,1)';\r\nexport const COLOR_GRAY_40 = 'rgba(180,181,185,1)';\r\nexport const COLOR_GRAY_50 = 'rgba(144,146,152,1)';\r\nexport const COLOR_GRAY_60 = 'rgba(98,101,107,1)';\r\nexport const COLOR_GRAY_70 = 'rgba(62,64,68,1)';\r\nexport const COLOR_GRAY_80 = 'rgba(36,37,40,1)';\r\nexport const COLOR_GRAY_90 = 'rgba(23,24,25,1)';\r\nexport const COLOR_GRAY_05 = 'rgba(249,249,249,1)';\r\nexport const COLOR_GREEN_10 = 'rgba(213,247,232,1)';\r\nexport const COLOR_GREEN_20 = 'rgba(164,229,199,1)';\r\nexport const COLOR_GREEN_30 = 'rgba(104,196,153,1)';\r\nexport const COLOR_GREEN_40 = 'rgba(66,174,124,1)';\r\nexport const COLOR_GREEN_50 = 'rgba(34,152,97,1)';\r\nexport const COLOR_GREEN_60 = 'rgba(0,105,56,1)';\r\nexport const COLOR_GREEN_70 = 'rgba(5,58,33,1)';\r\nexport const COLOR_GREEN_80 = 'rgba(3,28,16,1)';\r\nexport const COLOR_GREEN_90 = 'rgba(1,10,6,1)';\r\nexport const COLOR_GREEN_05 = 'rgba(240,255,247,1)';\r\nexport const COLOR_ORANGE_10 = 'rgba(252,228,204,1)';\r\nexport const COLOR_ORANGE_20 = 'rgba(255,198,139,1)';\r\nexport const COLOR_ORANGE_30 = 'rgba(255,160,66,1)';\r\nexport const COLOR_ORANGE_40 = 'rgba(255,130,0,1)';\r\nexport const COLOR_ORANGE_50 = 'rgba(209,117,31,1)';\r\nexport const COLOR_ORANGE_60 = 'rgba(133,78,29,1)';\r\nexport const COLOR_ORANGE_70 = 'rgba(90,53,21,1)';\r\nexport const COLOR_ORANGE_80 = 'rgba(62,35,12,1)';\r\nexport const COLOR_ORANGE_90 = 'rgba(43,23,4,1)';\r\nexport const COLOR_ORANGE_05 = 'rgba(255,249,245,1)';\r\nexport const COLOR_WHITE = '#fff';\r\nexport const COLOR_BLACK = '#000';\r\nexport const COLOR_RED_10 = 'rgba(253,229,228,1)';\r\nexport const COLOR_RED_20 = 'rgba(251,204,201,1)';\r\nexport const COLOR_RED_30 = 'rgba(250,162,162,1)';\r\nexport const COLOR_RED_40 = 'rgba(254,126,126,1)';\r\nexport const COLOR_RED_50 = 'rgba(230,71,71,1)';\r\nexport const COLOR_RED_60 = 'rgba(190,35,35,1)';\r\nexport const COLOR_RED_70 = 'rgba(147,22,22,1)';\r\nexport const COLOR_RED_80 = 'rgba(88,9,9,1)';\r\nexport const COLOR_RED_90 = 'rgba(24,2,2,1)';\r\nexport const COLOR_RED_05 = 'rgba(255,248,247,1)';\r\nexport const COLOR_VIOLET_10 = 'rgba(253,230,242,1)';\r\nexport const COLOR_VIOLET_20 = 'rgba(252,211,232,1)';\r\nexport const COLOR_VIOLET_30 = 'rgba(246,185,217,1)';\r\nexport const COLOR_VIOLET_40 = 'rgba(238,153,197,1)';\r\nexport const COLOR_VIOLET_50 = 'rgba(222,111,169,1)';\r\nexport const COLOR_VIOLET_60 = 'rgba(196,58,129,1)';\r\nexport const COLOR_VIOLET_70 = 'rgba(154,0,80,1)';\r\nexport const COLOR_VIOLET_80 = 'rgba(96,0,50,1)';\r\nexport const COLOR_VIOLET_90 = 'rgba(28,0,14,1)';\r\nexport const COLOR_VIOLET_05 = 'rgba(255,248,252,1)';\r\nexport const BREAKPOINT_XS = '0';\r\nexport const BREAKPOINT_SM = '640px';\r\nexport const BREAKPOINT_MD = '768px';\r\nexport const BREAKPOINT_LG = '1024px';\r\nexport const BREAKPOINT_XL = '1280px';\r\nexport const GRID_GAP_1 = '.125rem';\r\nexport const GRID_GAP_2 = '.25rem';\r\nexport const GRID_GAP_3 = '.5rem';\r\nexport const GRID_GAP_4 = '.75rem';\r\nexport const GRID_GAP_5 = '1rem';\r\nexport const GRID_GAP_6 = '1.125rem';\r\nexport const GRID_GAP_7 = '1.5rem';\r\nexport const GRID_GAP_8 = '2rem';\r\nexport const GRID_GAP_9 = '2.5rem';\r\nexport const GRID_GAP_10 = '3rem';\r\nexport const GRID_GAP_11 = '4rem';\r\nexport const ZINDEX_DROPDOWN = '1000';\r\nexport const ZINDEX_STICKY = '1020';\r\nexport const ZINDEX_FIXED = '1030';\r\nexport const ZINDEX_MODAL_BACKDROP = '1040';\r\nexport const ZINDEX_MODAL = '1050';\r\nexport const ZINDEX_POPOVER = '1060';\r\nexport const ZINDEX_TOOLTIP = '1070';\r\nexport const SPACER_1 = '.125rem';\r\nexport const SPACER_2 = '.25rem';\r\nexport const SPACER_3 = '.5rem';\r\nexport const SPACER_4 = '.75rem';\r\nexport const SPACER_5 = '1rem';\r\nexport const SPACER_6 = '1.125rem';\r\nexport const SPACER_7 = '1.5rem';\r\nexport const SPACER_8 = '2rem';\r\nexport const SPACER_9 = '2.5rem';\r\nexport const SPACER_10 = '3rem';\r\nexport const SPACER_11 = '4rem';\r\nexport const SPACER_12 = '6rem';\r\nexport const FONT_SIZE_1 = '.75rem';\r\nexport const FONT_SIZE_2 = '.875rem';\r\nexport const FONT_SIZE_3 = '1rem';\r\nexport const FONT_SIZE_4 = '1.125rem';\r\nexport const FONT_SIZE_5 = '1.25rem';\r\nexport const FONT_SIZE_6 = '1.5rem';\r\nexport const FONT_SIZE_7 = '1.75rem';\r\nexport const FONT_SIZE_8 = '2rem';\r\nexport const FONT_SIZE_9 = '2.25rem';\r\nexport const FONT_SIZE_10 = '3rem';\r\nexport const FONT_SIZE_11 = '3.75rem';\r\nexport const FONT_WEIGHT_LIGHT = '300';\r\nexport const FONT_WEIGHT_REGULAR = '400';\r\nexport const FONT_WEIGHT_BOLD = '600';\r\nexport const FONT_WEIGHT_BLACK = '900';\r\nexport const LINE_HEIGHT_SM = '1.2';\r\nexport const LINE_HEIGHT_MD = '1.5';\r\nexport const LINE_HEIGHT_LG = '1.6';\r\nexport const LINK_COLOR = 'rgba(47,115,169,1)';\r\nexport const LINK_DECORATION = 'none';\r\nexport const LINK_HOVER_COLOR = 'rgba(0,75,135,1)';\r\nexport const LINK_HOVER_DECORATION = 'underline';\r\nexport const BTN_BASE_TEXT_COLOR = 'rgba(23,24,25,1)';\r\nexport const BTN_BASE_TEXT_HOVER_COLOR = 'rgba(23,24,25,1)';\r\nexport const BTN_BASE_TEXT_ACTIVE_COLOR = 'rgba(47,115,169,1)';\r\nexport const BTN_BASE_BG_COLOR = '#fff';\r\nexport const BTN_BASE_BG_HOVER_COLOR = 'rgba(249,249,249,1)';\r\nexport const BTN_BASE_BORDER_COLOR = 'rgba(144,146,152,1)';\r\nexport const BTN_BASE_BORDER_HOVER_COLOR = 'rgba(98,101,107,1)';\r\nexport const BTN_BASE_BORDER_RADIUS = '.25rem';\r\nexport const BTN_BASE_FONT_WEIGHT = '400';\r\nexport const BTN_BASE_FONT_SIZE = '1rem';\r\nexport const BTN_LINK_TEXT_COLOR = 'rgba(47,115,169,1)';\r\nexport const BTN_LINK_TEXT_HOVER_COLOR = 'rgba(0,75,135,1)';\r\nexport const BTN_LINK_TEXT_ACTIVE_COLOR = 'rgba(47,115,169,1)';\r\nexport const BTN_LINK_BG_COLOR = 'transparent';\r\nexport const BTN_LINK_BG_HOVER_COLOR = 'rgba(249,249,249,1)';\r\nexport const BTN_LINK_BORDER_COLOR = 'transparent';\r\nexport const BTN_LINK_BORDER_HOVER_COLOR = 'transparent';\r\nexport const BTN_PRIMARY_TEXT_COLOR = '#fff';\r\nexport const BTN_PRIMARY_TEXT_HOVER_COLOR = '#fff';\r\nexport const BTN_PRIMARY_BG_COLOR = 'rgba(0,75,135,1)';\r\nexport const BTN_PRIMARY_BG_HOVER_COLOR = 'rgba(0,43,77,1)';\r\nexport const BTN_PRIMARY_BORDER_COLOR = 'rgba(0,75,135,1)';\r\nexport const BTN_PRIMARY_BORDER_HOVER_COLOR = 'rgba(0,75,135,1)';\r\nexport const BTN_SUCCESS_TEXT_COLOR = '#fff';\r\nexport const BTN_SUCCESS_TEXT_HOVER_COLOR = '#fff';\r\nexport const BTN_SUCCESS_BG_COLOR = 'rgba(0,105,56,1)';\r\nexport const BTN_SUCCESS_BG_HOVER_COLOR = 'rgba(5,58,33,1)';\r\nexport const BTN_SUCCESS_BORDER_COLOR = 'rgba(0,105,56,1)';\r\nexport const BTN_SUCCESS_BORDER_HOVER_COLOR = 'rgba(5,58,33,1)';\r\nexport const BTN_DANGER_TEXT_COLOR = '#fff';\r\nexport const BTN_DANGER_TEXT_HOVER_COLOR = '#fff';\r\nexport const BTN_DANGER_BG_COLOR = 'rgba(190,35,35,1)';\r\nexport const BTN_DANGER_BG_HOVER_COLOR = 'rgba(147,22,22,1)';\r\nexport const BTN_DANGER_BORDER_COLOR = 'rgba(190,35,35,1)';\r\nexport const BTN_DANGER_BORDER_HOVER_COLOR = 'rgba(190,35,35,1)';\r\nexport const PRIMARY_BG_COLOR = 'rgba(0,75,135,1)';\r\nexport const PRIMARY_BG_HOVER_COLOR = 'rgba(0,43,77,1)';\r\nexport const PRIMARY_BG_LIGHT_COLOR = 'rgba(243,250,255,1)';\r\nexport const PRIMARY_TEXT_COLOR = 'rgba(47,115,169,1)';\r\nexport const PRIMARY_BORDER_COLOR = 'rgba(0,75,135,1)';\r\nexport const PRIMARY_BORDER_HOVER_COLOR = 'rgba(0,43,77,1)';\r\nexport const SUCCESS_BG_COLOR = 'rgba(0,105,56,1)';\r\nexport const SUCCESS_BG_HOVER_COLOR = 'rgba(5,58,33,1)';\r\nexport const SUCCESS_BG_LIGHT_COLOR = 'rgba(240,255,247,1)';\r\nexport const SUCCESS_TEXT_COLOR = 'rgba(0,105,56,1)';\r\nexport const SUCCESS_BORDER_COLOR = 'rgba(0,105,56,1)';\r\nexport const SUCCESS_BORDER_HOVER_COLOR = 'rgba(5,58,33,1)';\r\nexport const DANGER_BG_COLOR = 'rgba(190,35,35,1)';\r\nexport const DANGER_BG_HOVER_COLOR = 'rgba(147,22,22,1)';\r\nexport const DANGER_BG_LIGHT_COLOR = 'rgba(255,248,247,1)';\r\nexport const DANGER_TEXT_COLOR = 'rgba(190,35,35,1)';\r\nexport const DANGER_BORDER_COLOR = 'rgba(190,35,35,1)';\r\nexport const DANGER_BORDER_HOVER_COLOR = 'rgba(147,22,22,1)';\r\nexport const TAB_BASE_TEXT_COLOR = 'rgba(98,101,107,1)';\r\nexport const TAB_BASE_BORDER_COLOR = 'rgba(144,146,152,1)';\r\nexport const TAB_BASE_BORDER_WIDTH = '1px';\r\nexport const TAB_BASE_BORDER_ACTIVE_COLOR = 'rgba(0,75,135,1)';\r\nexport const TAB_BASE_BORDER_ACTIVE_WIDTH = '.125rem';\r\nexport const TAB_BASE_BG_HOVER_COLOR = 'rgba(243,250,255,1)';\r\nexport const TAB_BASE_BG_ACTIVE_COLOR = 'rgba(243,250,255,1)';\r\nexport const TAB_BASE_HEIGHT = '3rem';\r\nexport const TAB_BASE_PADDING_X = '1rem';\r\nexport const TABS_BASE_BORDER_COLOR = 'rgba(144,146,152,1)';\r\nexport const TABS_BASE_BORDER_WIDTH = '1px';\r\nexport const HEADING_COLOR = 'rgba(23,24,25,1)';\r\nexport const HEADING_MARGIN_TOP = '0';\r\nexport const HEADING_MARGIN_BOTTOM = 'calc(1rem / 2)';\r\nexport const HEADING_FONT_FAMILY =\r\n\t\"Inter, arial, 'Helvetica Neue', helvetica, sans-serif\";\r\nexport const HEADING_FONT_WEIGHT = '900';\r\nexport const HEADING_LINE_HEIGHT = '1.2';\r\nexport const H1_SIZE = '2.25rem';\r\nexport const H1_WEIGHT = '900';\r\nexport const H2_SIZE = '1.75rem';\r\nexport const H2_WEIGHT = '900';\r\nexport const H3_SIZE = '1.5rem';\r\nexport const H3_WEIGHT = '900';\r\nexport const H4_SIZE = '1.25rem';\r\nexport const H4_WEIGHT = '900';\r\nexport const H5_SIZE = '1.125rem';\r\nexport const H5_WEIGHT = '900';\r\nexport const H6_SIZE = '1rem';\r\nexport const H6_WEIGHT = '900';\r\nexport const DISPLAY_SM = '3rem';\r\nexport const DISPLAY_MD = '3.75rem';\r\nexport const HR_COLOR = 'inherit';\r\nexport const HR_HEIGHT = '1px';\r\nexport const HR_OPACITY = '.25';\r\nexport const LIST_MARGIN_BOTTOM = '1.125rem';\r\nexport const DT_FONT_WEIGHT = '600';\r\nexport const FONT_FAMILY =\r\n\t\"Inter, arial, 'Helvetica Neue', helvetica, sans-serif\";\r\nexport const PARAGRAPH_MARGIN_BOTTOM = '1.5rem';\r\nexport const MARK_BG_COLOR = 'rgba(252,228,204,1)';\r\nexport const BODY_TEXT_COLOR = 'rgba(23,24,25,1)';\r\nexport const BODY_TEXT_SIZE = '1rem';\r\nexport const BODY_TEXT_WEIGHT = '400';\r\nexport const BODY_BG_COLOR = '#fff';\r\nexport const FOCUS_OULINE_COLOR = 'rgba(92,147,191,1)';\r\nexport const FOCUS_OULINE_WIDTH = '.125rem';\r\nexport const DISABLED_OPACITY = '.6';\r\n","import { createMuiTheme, createStyles } from '@material-ui/core/styles';\r\nimport './theme.css';\r\n\r\nimport {\r\n\tBASE_BG_HOVER_COLOR,\r\n\tBASE_BG_COLOR,\r\n\tPRIMARY_BG_COLOR,\r\n\tSUCCESS_BG_COLOR,\r\n\tPRIMARY_BG_HOVER_COLOR,\r\n\tDANGER_BG_COLOR,\r\n\tSUCCESS_BG_HOVER_COLOR,\r\n\tDANGER_BG_HOVER_COLOR,\r\n\tBASE_LINE_HEIGHT,\r\n\tFONT_WEIGHT_BOLD,\r\n\tH1_SIZE,\r\n\tH1_WEIGHT,\r\n\tH2_WEIGHT,\r\n\tH2_SIZE,\r\n\tHEADING_LINE_HEIGHT,\r\n\tH3_SIZE,\r\n\tH4_SIZE,\r\n\tH5_SIZE,\r\n\tH6_SIZE,\r\n\tFONT_FAMILY,\r\n\tFONT_WEIGHT_REGULAR,\r\n\tTEXT_SIZE_SM,\r\n\tTEXT_SIZE_LG,\r\n\tTEXT_SIZE_MD,\r\n\tINPUT_BTN_HEIGHT_MD,\r\n\tINPUT_BTN_PADDING_X_MD,\r\n\tPARAGRAPH_MARGIN_BOTTOM,\r\n\tHEADING_MARGIN_BOTTOM,\r\n\tBTN_BASE_BORDER_COLOR,\r\n\tCOLOR_GRAY_10,\r\n\tBTN_BASE_BG_COLOR,\r\n\tINPUT_BTN_HEIGHT_LG,\r\n\tINPUT_BTN_HEIGHT_SM,\r\n\tINPUT_BTN_PADDING_X_LG,\r\n\tINPUT_BTN_PADDING_X_SM,\r\n\tTABS_BASE_BORDER_COLOR,\r\n\tTABS_BASE_BORDER_WIDTH,\r\n\tTAB_BASE_BORDER_ACTIVE_COLOR,\r\n\tTAB_BASE_BORDER_ACTIVE_WIDTH,\r\n\tTAB_BASE_BG_HOVER_COLOR,\r\n\tBASE_BORDER_WIDTH,\r\n\tCOLOR_RED_30,\r\n\tCOLOR_RED_05,\r\n\tCOLOR_GREEN_30,\r\n\tCOLOR_GREEN_05,\r\n\tDANGER_TEXT_COLOR,\r\n\tDANGER_BG_LIGHT_COLOR,\r\n\tDANGER_BORDER_COLOR,\r\n\tSUCCESS_TEXT_COLOR,\r\n\tBASE_TEXT_SIZE,\r\n\tBTN_LINK_TEXT_COLOR,\r\n} from './tokens';\r\n\r\nconst theme = createMuiTheme({\r\n\tpalette: {\r\n\t\tprimary: {\r\n\t\t\tmain: PRIMARY_BG_COLOR,\r\n\t\t\tdark: PRIMARY_BG_HOVER_COLOR,\r\n\t\t},\r\n\t\tsecondary: {\r\n\t\t\tmain: BASE_BG_COLOR,\r\n\t\t\tdark: BASE_BG_HOVER_COLOR,\r\n\t\t},\r\n\t\terror: {\r\n\t\t\tmain: DANGER_BG_COLOR,\r\n\t\t\tdark: DANGER_BG_HOVER_COLOR,\r\n\t\t},\r\n\t\tsuccess: {\r\n\t\t\tmain: SUCCESS_BG_COLOR,\r\n\t\t\tdark: SUCCESS_BG_HOVER_COLOR,\r\n\t\t},\r\n\t\tlink: BTN_LINK_TEXT_COLOR,\r\n\t},\r\n\ttypography: {\r\n\t\tfontFamily: FONT_FAMILY,\r\n\t\tfontWeightRegular: FONT_WEIGHT_REGULAR,\r\n\t\tuseNextVariants: true,\r\n\t\thtmlFontSize: 16,\r\n\t\tlineHeight: BASE_LINE_HEIGHT,\r\n\t\th1: {\r\n\t\t\tfontWeight: H1_WEIGHT,\r\n\t\t\tfontSize: H1_SIZE,\r\n\t\t\tlineHeight: HEADING_LINE_HEIGHT,\r\n\t\t},\r\n\t\th2: {\r\n\t\t\tfontWeight: H2_WEIGHT,\r\n\t\t\tfontSize: H2_SIZE,\r\n\t\t\tlineHeight: HEADING_LINE_HEIGHT,\r\n\t\t},\r\n\t\th3: {\r\n\t\t\tfontWeight: FONT_WEIGHT_BOLD,\r\n\t\t\tfontSize: H3_SIZE,\r\n\t\t\tlineHeight: HEADING_LINE_HEIGHT,\r\n\t\t},\r\n\t\th4: {\r\n\t\t\tfontWeight: FONT_WEIGHT_BOLD,\r\n\t\t\tfontSize: H4_SIZE,\r\n\t\t\tlineHeight: HEADING_LINE_HEIGHT,\r\n\t\t},\r\n\t\th5: {\r\n\t\t\tfontWeight: FONT_WEIGHT_BOLD,\r\n\t\t\tfontSize: H5_SIZE,\r\n\t\t\tlineHeight: HEADING_LINE_HEIGHT,\r\n\t\t},\r\n\t\th6: {\r\n\t\t\tfontWeight: FONT_WEIGHT_BOLD,\r\n\t\t\tfontSize: H6_SIZE,\r\n\t\t\tlineHeight: HEADING_LINE_HEIGHT,\r\n\t\t},\r\n\t\tsubtitle1: {\r\n\t\t\tfontWeight: FONT_WEIGHT_BOLD,\r\n\t\t\tfontSize: TEXT_SIZE_LG,\r\n\t\t},\r\n\t\tsubtitle2: {\r\n\t\t\tfontWeight: FONT_WEIGHT_BOLD,\r\n\t\t},\r\n\t\tbody1: {\r\n\t\t\tfontWeight: FONT_WEIGHT_REGULAR,\r\n\t\t\tfontSize: TEXT_SIZE_MD,\r\n\t\t},\r\n\t\tbody2: {\r\n\t\t\tfontWeight: FONT_WEIGHT_REGULAR,\r\n\t\t\tfontSize: TEXT_SIZE_LG,\r\n\t\t},\r\n\t\tcaption: {\r\n\t\t\tfontWeight: FONT_WEIGHT_REGULAR,\r\n\t\t\tfontSize: TEXT_SIZE_SM,\r\n\t\t},\r\n\t\toverline: {\r\n\t\t\tfontWeight: FONT_WEIGHT_BOLD,\r\n\t\t\tfontSize: TEXT_SIZE_SM,\r\n\t\t},\r\n\t\tbutton: {\r\n\t\t\ttextTransform: 'none',\r\n\t\t\tfontSize: TEXT_SIZE_MD,\r\n\t\t},\r\n\t},\r\n\tprops: {\r\n\t\tMuiButtonBase: {\r\n\t\t\tdisableRipple: true,\r\n\t\t\tdisableTouchRipple: true,\r\n\t\t\tfocusRipple: false,\r\n\t\t},\r\n\t\tMuiButton: {\r\n\t\t\tdisableElevation: true,\r\n\t\t},\r\n\t},\r\n\toverrides: {\r\n\t\tMuiLink: {\r\n\t\t\troot: {\r\n\t\t\t\tcolor: BTN_LINK_TEXT_COLOR,\r\n\t\t\t}\r\n\t\t},\r\n\t\tMuiTypography: {\r\n\t\t\th1: {\r\n\t\t\t\t'&.MuiTypography-gutterBottom': {\r\n\t\t\t\t\tmarginBottom: HEADING_MARGIN_BOTTOM,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\th2: {\r\n\t\t\t\t'&.MuiTypography-gutterBottom': {\r\n\t\t\t\t\tmarginBottom: HEADING_MARGIN_BOTTOM,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\th3: {\r\n\t\t\t\t'&.MuiTypography-gutterBottom': {\r\n\t\t\t\t\tmarginBottom: HEADING_MARGIN_BOTTOM,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\th4: {\r\n\t\t\t\t'&.MuiTypography-gutterBottom': {\r\n\t\t\t\t\tmarginBottom: HEADING_MARGIN_BOTTOM,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\th5: {\r\n\t\t\t\t'&.MuiTypography-gutterBottom': {\r\n\t\t\t\t\tmarginBottom: HEADING_MARGIN_BOTTOM,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\th6: {\r\n\t\t\t\t'&.MuiTypography-gutterBottom': {\r\n\t\t\t\t\tmarginBottom: HEADING_MARGIN_BOTTOM,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\tbody1: {\r\n\t\t\t\t'&.MuiTypography-gutterBottom': {\r\n\t\t\t\t\tmarginBottom: PARAGRAPH_MARGIN_BOTTOM,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\tcolorError: {\r\n\t\t\t\tcolor: DANGER_TEXT_COLOR,\r\n\t\t\t}\r\n\t\t},\r\n\t\t// This is required for input fields in IE\r\n\t\tMuiTextField: {\r\n\t\t\troot: {\r\n\t\t\t\t'& input[type=text]::-ms-clear': {\r\n\t\t\t\t\tdisplay: 'none',\r\n\t\t\t\t},\r\n\t\t\t\t'& input[type=password]::-ms-reveal': {\r\n\t\t\t\t\tdisplay: 'none',\r\n\t\t\t\t},\r\n\t\t\t\theight: INPUT_BTN_HEIGHT_MD,\r\n\t\t\t},\r\n\t\t},\r\n\t\tMuiCssBaseline: {\r\n\t\t\t'@global': {\r\n\t\t\t\tbody: {\r\n\t\t\t\t\tbackgroundColor: '#fff',\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t},\r\n\t\tMuiAlert: {\r\n\t\t\troot: {\r\n\t\t\t\tfontSize: BASE_TEXT_SIZE,\r\n\t\t\t},\r\n\t\t\tstandardError: {\r\n\t\t\t\tcolor: DANGER_TEXT_COLOR,\r\n\t\t\t\tbackgroundColor: COLOR_RED_05,\r\n\t\t\t\tborderColor: COLOR_RED_30,\r\n\t\t\t\tborderWidth: BASE_BORDER_WIDTH,\r\n\t\t\t\tborderStyle: 'solid',\r\n\t\t\t},\r\n\t\t\tstandardSuccess: {\r\n\t\t\t\tcolor: SUCCESS_TEXT_COLOR,\r\n\t\t\t\tbackgroundColor: COLOR_GREEN_05,\r\n\t\t\t\tborderColor: COLOR_GREEN_30,\r\n\t\t\t\tborderWidth: BASE_BORDER_WIDTH,\r\n\t\t\t\tborderStyle: 'solid',\r\n\t\t\t},\r\n\t\t\toutlinedError: {\r\n\t\t\t\tbackgroundColor: DANGER_BG_LIGHT_COLOR,\r\n\t\t\t\tborderColor: COLOR_RED_30,\r\n\t\t\t\t'& .MuiAlert-icon': {\r\n\t\t\t\t\tcolor: DANGER_BORDER_COLOR,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\toutlinedWarning: {\r\n\t\t\t\tbackground: 'white',\r\n\t\t\t},\r\n\t\t},\r\n\t\tMuiAutocomplete: createStyles({\r\n\t\t\tinputRoot: {\r\n\t\t\t\t'&[class*=\"MuiOutlinedInput-root\"]': {\r\n\t\t\t\t\t'& .MuiAutocomplete-endAdornment': {\r\n\t\t\t\t\t\tright: '7px ',\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t}),\r\n\t\tMuiAppBar: {\r\n\t\t\tcolorDefault: {\r\n\t\t\t\tbackgroundColor: COLOR_GRAY_10,\r\n\t\t\t},\r\n\t\t},\r\n\t\tMuiStepper: {\r\n\t\t\troot: {\r\n\t\t\t\t'&.MuiPaper-root': {\r\n\t\t\t\t\tbackgroundColor: 'transparent',\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t},\r\n\t\tMuiButton: {\r\n\t\t\tcontainedSizeLarge: {\r\n\t\t\t\theight: INPUT_BTN_HEIGHT_LG,\r\n\t\t\t\tpadding: INPUT_BTN_PADDING_X_LG,\r\n\t\t\t\tfontSize: TEXT_SIZE_LG,\r\n\t\t\t},\r\n\t\t\tcontainedSizeSmall: {\r\n\t\t\t\theight: INPUT_BTN_HEIGHT_SM,\r\n\t\t\t\tpadding: INPUT_BTN_PADDING_X_SM,\r\n\t\t\t\tfontSize: TEXT_SIZE_SM,\r\n\t\t\t},\r\n\t\t\toutlinedSizeLarge: {\r\n\t\t\t\theight: INPUT_BTN_HEIGHT_LG,\r\n\t\t\t\tpadding: INPUT_BTN_PADDING_X_LG,\r\n\t\t\t\tfontSize: TEXT_SIZE_LG,\r\n\t\t\t},\r\n\t\t\toutlinedSizeSmall: {\r\n\t\t\t\theight: INPUT_BTN_HEIGHT_SM,\r\n\t\t\t\tpadding: INPUT_BTN_PADDING_X_SM,\r\n\t\t\t\tfontSize: TEXT_SIZE_SM,\r\n\t\t\t},\r\n\t\t\tcontained: {\r\n\t\t\t\theight: INPUT_BTN_HEIGHT_MD,\r\n\t\t\t\tpadding: INPUT_BTN_PADDING_X_MD,\r\n\t\t\t},\r\n\t\t\toutlined: {\r\n\t\t\t\theight: INPUT_BTN_HEIGHT_MD,\r\n\t\t\t\tpadding: INPUT_BTN_PADDING_X_MD,\r\n\t\t\t\tbackgroundColor: BTN_BASE_BG_COLOR,\r\n\t\t\t\tborderColor: BTN_BASE_BORDER_COLOR,\r\n\t\t\t},\r\n\t\t},\r\n\t},\r\n\tMuiTabs: {\r\n\t\tfixed: {\r\n\t\t\tborderBottomStyle: 'solid',\r\n\t\t\tborderBottomColor: TABS_BASE_BORDER_COLOR,\r\n\t\t\tborderBottomWidth: TABS_BASE_BORDER_WIDTH,\r\n\t\t},\r\n\t\tindicator: {\r\n\t\t\tbackgroundColor: TAB_BASE_BORDER_ACTIVE_COLOR,\r\n\t\t\theight: TAB_BASE_BORDER_ACTIVE_WIDTH,\r\n\t\t},\r\n\t},\r\n\tMuiTab: {\r\n\t\troot: {\r\n\t\t\theight: INPUT_BTN_HEIGHT_MD,\r\n\t\t\tpadding: INPUT_BTN_PADDING_X_MD,\r\n\t\t\t'&:hover': {\r\n\t\t\t\tbackgroundColor: TAB_BASE_BG_HOVER_COLOR,\r\n\t\t\t},\r\n\t\t},\r\n\t\ttextColorInherit: {\r\n\t\t\topacity: '1',\r\n\t\t},\r\n\t},\r\n});\r\n\r\nexport default theme;\r\n","import './index.css';\r\n\r\nimport { ConnectedRouter } from 'connected-react-router';\r\nimport { Provider } from 'react-redux';\r\nimport { Switch, Route } from 'react-router-dom';\r\nimport { ThemeProvider } from '@material-ui/core/styles';\r\nimport CssBaseline from '@material-ui/core/CssBaseline';\r\nimport React from 'react';\r\nimport * as evrythng from 'evrythng';\r\nimport jsQR from 'jsqr';\r\n\r\nimport {\r\n\tHelp,\r\n\tHome,\r\n\tStep1,\r\n\tStep1Help,\r\n\tStep2,\r\n\tStep2Help,\r\n\tVerificationResults,\r\n\tStep1Success,\r\n} from './containers';\r\nimport GoogleTagManager from './components/GoogleTagManager';\r\nimport history from './history';\r\nimport store from './store';\r\nimport theme from './theme';\r\n\r\nwindow.jsQR = jsQR;\r\nwindow.evrythng = evrythng;\r\n\r\nfunction App() {\r\n\twindow.evrythng.use(window.ScanThng);\r\n\twindow.evrythng.use(window.PubSub);\r\n\twindow.PubSub.setup({ apiUrl: process.env.REACT_APP_EVERYTHNG_PUB_SUB_URL });\r\n\twindow.evrythngToken = new window.evrythng.AccessToken(\r\n\t\tprocess.env.REACT_APP_EVERYTHNG_API_KEY\r\n\t);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n}\r\n\r\nexport default App;\r\n","// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read https://cra.link/PWA\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === \"localhost\" ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === \"[::1]\" ||\r\n // 127.0.0.0/8 are considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\nexport function register(config) {\r\n if (process.env.NODE_ENV === \"production\" && \"serviceWorker\" in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener(\"load\", () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n \"This web app is being served cache-first by a service \" +\r\n \"worker. To learn more, visit https://cra.link/PWA\"\r\n );\r\n });\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl, config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then((registration) => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker == null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === \"installed\") {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n console.log(\r\n \"New content is available and will be used when all \" +\r\n \"tabs for this page are closed. See https://cra.link/PWA.\"\r\n );\r\n\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log(\"Content is cached for offline use.\");\r\n\r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch((error) => {\r\n console.error(\"Error during service worker registration:\", error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl, config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl, {\r\n headers: { \"Service-Worker\": \"script\" },\r\n })\r\n .then((response) => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get(\"content-type\");\r\n if (\r\n response.status === 404 ||\r\n (contentType != null && contentType.indexOf(\"javascript\") === -1)\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then((registration) => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n \"No internet connection found. App is running in offline mode.\"\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if (\"serviceWorker\" in navigator) {\r\n navigator.serviceWorker.ready\r\n .then((registration) => {\r\n registration.unregister();\r\n })\r\n .catch((error) => {\r\n console.error(error.message);\r\n });\r\n }\r\n}\r\n","const reportWebVitals = (onPerfEntry) => {\r\n if (onPerfEntry && onPerfEntry instanceof Function) {\r\n import(\"web-vitals\").then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\r\n getCLS(onPerfEntry);\r\n getFID(onPerfEntry);\r\n getFCP(onPerfEntry);\r\n getLCP(onPerfEntry);\r\n getTTFB(onPerfEntry);\r\n });\r\n }\r\n};\r\n\r\nexport default reportWebVitals;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport './locales';\r\nimport App from './App';\r\nimport * as serviceWorkerRegistration from './serviceWorkerRegistration';\r\nimport reportWebVitals from './reportWebVitals';\r\n\r\nReactDOM.render(\r\n\t\r\n\t\t\r\n\t,\r\n\tdocument.getElementById('root')\r\n);\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: https://cra.link/PWA\r\nserviceWorkerRegistration.unregister();\r\n\r\n// If you want to start measuring performance in your app, pass a function\r\n// to log results (for example: reportWebVitals(console.log))\r\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\r\nreportWebVitals();\r\n"],"sourceRoot":""}