{"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","containers/VerificationResults/Counterfeit.js","components/ProductPhoto/index.js","images/success.svg","containers/VerificationResults/Success.js","containers/VerificationResults/Tampering.js","containers/VerificationResults/index.js","components/CountdownTimer/index.js","components/Scanner/styled.js","components/GoogleTagManager/index.js","store/scanSession/index.js","utils/actions.js","utils/permissions.js","utils/thunks.js","apis/evrythng.js","apis/authenticationResults.js","history.js","apis/identifications.js","apis/product.js","apis/thng.js","store/scanSession/thunks.js","components/NoPermission/index.js","components/ProgressIndicator/index.js","utils/dom.js","components/Scanner/index.js","components/QRScanner/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","components/DigimarcScanner/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","setIsLoading","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","Counterfeit","Buttons","Content","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","Success","SuccessIllustration","success","Tampering","children","React","Children","toArray","child","VerificationResults","Page","isQrRecognized","isDigimarcCorrect","MuiChip","CountdownTimer","timeout","alertThreshold","onStart","onTimeout","onTimerAlert","useState","parseInt","secondsRemaining","setSecondsRemaining","intervalRef","useRef","decrement","a","sR","cancel","useCallback","clearInterval","current","startInterval","setInterval","reset","useEffect","isChipShown","useMemo","displaySecondsRemaining","Math","ceil","minutesRemaining","floor","icon","clickable","id","defaultProps","memo","scannerSharedStyles","OriginalCountdownTimer","zIndex","mobileStepper","right","VideoContainer","overflow","GoogleTagManager","Helmet","dataLayer","setDataLayer","setTimeout","window","forEach","push","customEvent","event","generateAlertTrackingEvents","prefix","replace","scanSessionSlice","createSlice","useActions","actions","deps","dispatch","useDispatch","Array","isArray","bindActionCreators","useActionsUtil","reducer","permissions","useThunk","thunk","thunks","useThunks","getEvrythngToken","shortUrl","Promise","resolve","reject","xhr","XMLHttpRequest","onreadystatechange","e","readyState","responseURL","matches","token","open","send","setEvrythngKey","evrythngToken","evrythng","AccessToken","makeSocket","thng","action","authenticationResultsApi","retrieve","count","read","subscribe","onMessage","socket","customHistory","createBrowserHistory","identificationsApi","identify","value","axios","get","encodeURIComponent","headers","Authorization","apiKey","then","data","identifyDigimarc","image","post","productApi","thngApi","scan","create","identifyQr","createAsyncThunk","console","results","validateQr","getProduct","getState","unserializableMessage","message","JSON","parse","stringify","scanId","unsubscribe","isAuthenticated","isCorrect","NoPermission","ProgressIndicator","cx","cy","r","convertBase64StringToImageData","buffer","addEventListener","canvasElement","document","createElement","context","getContext","drawImage","getImageData","hidden","body","appendChild","removeChild","Scanner","onScan","isScanning","isPaused","intervalMs","webcamRef","cancelIntervalRef","capture","getScreenshot","video","pause","play","img","interval","audio","imageSmoothing","forceScreenshotSourceSize","screenshotFormat","ref","videoConstraints","facingMode","QRScanner","onFindCode","duplicateScanTimeoutMs","onFindCodeRef","previousQRTimeoutRef","previousQrDataRef","setPreviousQrData","qrData","imageData","qr","jsqr","inversionAttempts","backdrop","drawer","Step1","search","useLocation","validateQrThunk","identifyQrThunk","hasAll","usePermissions","useHandleCameraPermission","cancelRef","resetRef","onToastClose","urlThngId","URLSearchParams","shouldShowCamera","onFindQrCode","Backdrop","Snackbar","autoHideDuration","onClose","anchorOrigin","vertical","horizontal","Alert","severity","direction","sm","QRThumbnail","minWidth","Step1Help","QrCodeHelpIllustration","QrCodeInstructionsIllustration","DigimarcScanner","setIsScanning","response","Step2","setIsDigimarcCorrectThunk","onFindDigimarcCode","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","MuiAlert","standardError","borderColor","borderWidth","borderStyle","standardSuccess","outlinedError","outlinedWarning","MuiAutocomplete","createStyles","inputRoot","MuiAppBar","colorDefault","MuiStepper","containedSizeLarge","containedSizeSmall","outlinedSizeLarge","outlinedSizeSmall","contained","outlined","MuiTabs","fixed","borderBottomStyle","borderBottomColor","borderBottomWidth","indicator","MuiTab","textColorInherit","opacity","App","PubSub","setup","apiUrl","location","ThemeProvider","CssBaseline","forceRefresh","path","exact","isLocalhost","Boolean","hostname","registerValidSW","swUrl","config","navigator","serviceWorker","register","registration","onupdatefound","installingWorker","installing","onstatechange","controller","log","onUpdate","onSuccess","catch","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","render","StrictMode","getElementById","URL","origin","fetch","contentType","indexOf","ready","unregister","reload","checkValidServiceWorker","serviceWorkerRegistration"],"mappings":"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","file":"static/js/main.f32508c3.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\t'validateQr/rejected': (state) => {\r\n\t\tstate.isLoading = false;\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\tsetIsLoading: singlePropReducer('isLoading'),\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 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\n\r\nfunction Counterfeit({ Buttons, Content, ...props }) {\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\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{t('verification_counterfeit.title')}\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t{latestScanId && (\r\n\t\t\t\t\t copy(latestScanId)}\r\n\t\t\t\t\t\tlabel={\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{t('verification_counterfeit.scan_id')} {latestScanId}\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\r\n\t\t\t\t{!!alerts.length && (\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\t{alerts.map((status) => (\r\n\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\t\t{t(`verification_counterfeit.alerts.${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\r\n\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\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)}\r\n\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{t('verification_counterfeit.description_line1')}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{t('verification_counterfeit.description_line2')}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{t('verification_counterfeit.description_line3')}\r\n\t\t\t\t\t\r\n\t\t\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\t\r\n\t\t\t\t\t\t{t('verification_counterfeit.scan_next')}\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{t('verification_counterfeit.contact_us')}\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 Counterfeit;\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 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 '../../components/ProductPhoto';\r\nimport SuccessIllustration from '../../images/success.svg';\r\n\r\nfunction Success({ Content, Buttons, ...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\t\r\n\t\t\t\t\t\"Verification\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{t('verification_success.title')}\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\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{t('verification_success.description')}\r\n\t\t\t\t\t\r\n\t\t\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\t{t('verification_success.scan_next')}\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 Success;\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 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\n\r\nfunction Tampering({ Buttons, Content, ...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\t\r\n\t\t\t\t\t\"Potential\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{t('verification_tampering.title')}\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\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{t('verification_tampering.description_line1')}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{t('verification_tampering.description_line2')}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{t('verification_tampering.description_line3')}\r\n\t\t\t\t\t\r\n\t\t\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\t{t('verification_tampering.scan_next')}\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{t('verification_tampering.contact_us')}\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 Tampering;\r\n","import React from 'react';\r\n\r\nimport {\r\n\tuseIsDigimarcCorrect,\r\n\tuseIsQrCodeRecognized,\r\n} from '../../store/scanSession/selectors';\r\nimport Counterfeit from './Counterfeit';\r\nimport Success from './Success';\r\nimport TamperTesterHeader from '../../components/TamperTesterHeader';\r\nimport Tampering from './Tampering';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport { useTheme } from '@material-ui/core/styles';\r\nimport Container from '@material-ui/core/Container';\r\n\r\nconst Buttons = ({ children, ...props }) => {\r\n\tconst theme = useTheme();\r\n\treturn (\r\n\t\t\r\n\t\t\t{React.Children.toArray(children).map((child) => (\r\n\t\t\t\t\r\n\t\t\t\t\t{child}\r\n\t\t\t\t\r\n\t\t\t))}\r\n\t\t\r\n\t);\r\n};\r\n\r\nconst Content = ({ children, ...props }) => {\r\n\treturn (\r\n\t\t\r\n\t\t\t{children}\r\n\t\t\r\n\t);\r\n};\r\n\r\nfunction VerificationResults() {\r\n\tconst isQrRecognized = useIsQrCodeRecognized();\r\n\tconst isDigimarcCorrect = useIsDigimarcCorrect();\r\n\r\n\tlet Page;\r\n\tif (isQrRecognized && isDigimarcCorrect) {\r\n\t\tPage = Success; // only show success if success is guaranteed\r\n\t} else if (isQrRecognized) {\r\n\t\tPage = Tampering;\r\n\t} else {\r\n\t\tPage = Counterfeit;\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\r\n\t);\r\n}\r\n\r\nexport default VerificationResults;\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\t...props\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\t{...props}\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 styled from '@material-ui/styles/styled';\r\n\r\nimport OriginalCountdownTimer from '../../components/CountdownTimer';\r\n\r\nexport const scannerSharedStyles = {\r\n\tposition: 'relative',\r\n\ttop: -50,\r\n\twidth: '100%',\r\n};\r\n\r\nexport const CountdownTimer = styled(OriginalCountdownTimer)(({ theme }) => ({\r\n\tposition: 'absolute',\r\n\tzIndex: theme.zIndex.mobileStepper,\r\n\ttop: theme.spacing(),\r\n\tright: theme.spacing(),\r\n}));\r\n\r\nexport const VideoContainer = styled('div')(({ theme }) => ({\r\n\tposition: 'relative',\r\n\ttextAlign: 'center',\r\n\toverflow: 'hidden',\r\n}));\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","import { useEffect } from 'react';\r\nimport { usePermissions } from 'react-hook-use-permissions';\r\n\r\nimport { useActions } from '../store/scanSession';\r\n\r\nconst permissions = ['camera'];\r\n\r\nexport const useHandleCameraPermission = () => {\r\n\tconst { hasAll } = usePermissions(permissions);\r\n\tconst hasCameraPermission = hasAll(permissions);\r\n\tconst actions = useActions();\r\n\r\n\tuseEffect(() => {\r\n\t\tactions.setHasCameraPermission(hasCameraPermission);\r\n\t}, [actions, hasCameraPermission]);\r\n};\r\n","import { createAsyncThunk } from '@reduxjs/toolkit';\r\nimport { useDispatch } from 'react-redux';\r\nimport { useMemo } from 'react';\r\n\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","export const getEvrythngToken = async (shortUrl) => {\r\n\t// follow redirect, capture response url\r\n\treturn new Promise((resolve, reject) => {\r\n\t\tvar xhr = new XMLHttpRequest();\r\n\t\txhr.onreadystatechange = function (e) {\r\n\t\t\tif (xhr.readyState === 4) {\r\n\t\t\t\tif (xhr.status === 200) {\r\n\t\t\t\t\tif (shortUrl !== xhr.responseURL) {\r\n\t\t\t\t\t\tconst matches = xhr.responseURL.match(/token=(.*(&|$))/i);\r\n\t\t\t\t\t\tconst token = matches?.[1]; // grab first capture group (everything after token=)\r\n\t\t\t\t\t\tif (token) {\r\n\t\t\t\t\t\t\tresolve(token);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\treject();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\treject();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\t\txhr.open('GET', shortUrl, true);\r\n\t\txhr.send();\r\n\t});\r\n};\r\n\r\nexport const setEvrythngKey = (key) => {\r\n\twindow.evrythngToken = new window.evrythng.AccessToken(key);\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","import axios from 'axios';\r\n\r\nconst identificationsApi = {\r\n\tidentify: (value) => {\r\n\t\treturn axios\r\n\t\t\t.get(\r\n\t\t\t\t`https://api.evrythng.io/v2/scan/identifications?filter=${encodeURIComponent(\r\n\t\t\t\t\t`type=qr_code&value=${value}`\r\n\t\t\t\t)}`,\r\n\t\t\t\t{\r\n\t\t\t\t\theaders: {\r\n\t\t\t\t\t\tAuthorization: window.evrythngToken.apiKey,\r\n\t\t\t\t\t},\r\n\t\t\t\t}\r\n\t\t\t)\r\n\t\t\t.then(({ data }) => data);\r\n\t},\r\n\tidentifyDigimarc: (image) => {\r\n\t\treturn axios\r\n\t\t\t.post(\r\n\t\t\t\t`https://api.evrythng.io/v2/scan/identifications?filter=${encodeURIComponent(\r\n\t\t\t\t\t`type=qr_code&value=digimarc&type=gs1:21`\r\n\t\t\t\t)}`,\r\n\t\t\t\t{ image },\r\n\t\t\t\t{\r\n\t\t\t\t\theaders: {\r\n\t\t\t\t\t\tAuthorization: window.evrythngToken.apiKey,\r\n\t\t\t\t\t},\r\n\t\t\t\t}\r\n\t\t\t)\r\n\t\t\t.then(({ data }) => data);\r\n\t},\r\n};\r\n\r\nexport default identificationsApi;\r\n","const productApi = {\r\n\tget: (id) => window.evrythngToken.product(id),\r\n};\r\n\r\nexport default productApi;\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 { generateAlertTrackingEvents } from '../../components/GoogleTagManager';\r\nimport { getEvrythngToken, setEvrythngKey } from '../../apis/evrythng';\r\nimport { selectAuthAlerts, selectIsQrCodeRecognized } from './selectors';\r\nimport authenticationResultsApi from '../../apis/authenticationResults';\r\nimport history from '../../history';\r\nimport identificationsApi from '../../apis/identifications';\r\nimport productApi from '../../apis/product';\r\nimport thngApi from '../../apis/thng';\r\n\r\nexport const identifyQr = createAsyncThunk(\r\n\t'scannSession/resolveQr',\r\n\tasync (shortUrl, { dispatch }) => {\r\n\t\tconst { setToastOpen, setIsLoading } = actions;\r\n\t\tsetIsLoading(true);\r\n\r\n\t\tif (!window.evrythngToken) {\r\n\t\t\t// here's our one chance to get the token if it wasn't provided on load\r\n\t\t\ttry {\r\n\t\t\t\tsetEvrythngKey(await getEvrythngToken(shortUrl));\r\n\t\t\t} catch (e) {\r\n\t\t\t\tconsole.error('Could not resolve redirect');\r\n\t\t\t\tdispatch(setToastOpen(true));\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\tconst results = await identificationsApi.identify(shortUrl);\r\n\r\n\t\t\tif (results.length > 0) {\r\n\t\t\t\tif (results[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} else {\r\n\t\t\t\t\t// valid result found\r\n\t\t\t\t\tconst thng = results[0].results[0].thng;\r\n\t\t\t\t\tif (thng.name === 'RESET DUPLICATE') {\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tdispatch(validateQr(thng.id));\r\n\t\t\t\t\t\tif (thng.product) {\r\n\t\t\t\t\t\t\tdispatch(getProduct(thng.product));\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} catch (e) {\r\n\t\t\tconsole.error(e);\r\n\t\t} finally {\r\n\t\t\tsetIsLoading(false);\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, setIsLoading } = actions;\r\n\t\tsetIsLoading();\r\n\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\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 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\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 { 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 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 const convertBase64StringToImageData = (buffer, width, height) => {\r\n\treturn new Promise((resolve) => {\r\n\t\tvar image = new Image();\r\n\r\n\t\timage.addEventListener('load', function (e) {\r\n\t\t\tvar canvasElement = document.createElement('canvas');\r\n\r\n\t\t\tcanvasElement.width = width;\r\n\t\t\tcanvasElement.height = height;\r\n\r\n\t\t\tvar context = canvasElement.getContext('2d');\r\n\t\t\tcontext.drawImage(e.target, 0, 0, width, height);\r\n\r\n\t\t\tresolve(context.getImageData(0, 0, width, height));\r\n\t\t});\r\n\r\n\t\timage.src = buffer;\r\n\t\timage.hidden = true;\r\n\r\n\t\tdocument.body.appendChild(image);\r\n\r\n\t\tsetTimeout(() => {\r\n\t\t\tdocument.body.removeChild(image);\r\n\t\t}, 0);\r\n\t});\r\n};\r\n","import React, { useEffect, useRef } from 'react';\r\nimport Webcam from 'react-webcam';\r\n\r\nimport PropTypes from 'prop-types';\r\n\r\nconst Scanner = ({ onScan, isScanning, isPaused, intervalMs, ...props }) => {\r\n\tconst webcamRef = useRef(null);\r\n\r\n\tconst cancelIntervalRef = useRef();\r\n\r\n\tconst capture = React.useCallback(\r\n\t\t(...args) => webcamRef.current && webcamRef.current.getScreenshot(...args),\r\n\t\t[webcamRef]\r\n\t);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (isPaused) {\r\n\t\t\twebcamRef.current?.video.pause();\r\n\t\t} else {\r\n\t\t\twebcamRef.current?.video.play();\r\n\t\t}\r\n\t}, [isPaused]);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (cancelIntervalRef.current) {\r\n\t\t\tcancelIntervalRef.current(); // if we're running this again for any reason we don't want the previous interval to interfere\r\n\t\t}\r\n\r\n\t\tconst scan = () => {\r\n\t\t\tconst img = capture();\r\n\t\t\tif (img) {\r\n\t\t\t\tonScan(img);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tif (isScanning) {\r\n\t\t\tscan();\r\n\t\t\tconst interval = setInterval(async () => {\r\n\t\t\t\tscan();\r\n\t\t\t}, intervalMs);\r\n\r\n\t\t\tcancelIntervalRef.current = () => clearInterval(interval);\r\n\t\t\treturn () => cancelIntervalRef.current();\r\n\t\t}\r\n\t\treturn () => {};\r\n\t}, [webcamRef, onScan, isScanning, capture, intervalMs]);\r\n\r\n\treturn (\r\n\t\t\r\n\t);\r\n};\r\n\r\nScanner.propTypes = {\r\n\tisPaused: PropTypes.bool,\r\n\tintervalMs: PropTypes.number,\r\n};\r\n\r\nScanner.defaultProps = {\r\n\tisPaused: false,\r\n\tintervalMs: 75,\r\n};\r\n\r\nexport default Scanner;\r\n","import React, { useCallback, useRef } from 'react';\r\nimport jsqr from 'jsqr';\r\n\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { convertBase64StringToImageData } from '../../utils/dom';\r\nimport Scanner from '../Scanner';\r\n\r\nconst QRScanner = ({\r\n\tonFindCode,\r\n\tintervalMs,\r\n\tduplicateScanTimeoutMs,\r\n\t...props\r\n}) => {\r\n\tconst onFindCodeRef = useRef();\r\n\tconst previousQRTimeoutRef = useRef();\r\n\tconst previousQrDataRef = useRef();\r\n\r\n\tonFindCodeRef.current = onFindCode;\r\n\r\n\t// Allows duplicate scans at a set timeout\r\n\t// Used to give user feedback (show error toast)\r\n\tconst setPreviousQrData = useCallback(\r\n\t\t(qrData) => {\r\n\t\t\t// Clear previous timeout & set previous QR data\r\n\t\t\twindow.clearInterval(previousQRTimeoutRef.current);\r\n\t\t\tpreviousQrDataRef.current = qrData;\r\n\r\n\t\t\t// Create a timeout to clear data after set time\r\n\t\t\tpreviousQRTimeoutRef.current = setTimeout(\r\n\t\t\t\t() => (previousQrDataRef.current = null),\r\n\t\t\t\tduplicateScanTimeoutMs\r\n\t\t\t);\r\n\t\t},\r\n\t\t[duplicateScanTimeoutMs]\r\n\t);\r\n\r\n\tconst onScan = useCallback(\r\n\t\tasync (img) => {\r\n\t\t\tconst width = 640;\r\n\t\t\tconst height = 480;\r\n\r\n\t\t\tconst imageData = await convertBase64StringToImageData(\r\n\t\t\t\timg,\r\n\t\t\t\twidth,\r\n\t\t\t\theight\r\n\t\t\t);\r\n\r\n\t\t\tconst qr = jsqr(imageData.data, width, height, {\r\n\t\t\t\tinversionAttempts: 'dontInvert',\r\n\t\t\t});\r\n\r\n\t\t\t// Prevent on change being called repeatedly for same scan URL\r\n\t\t\tif (qr?.data && qr.data !== previousQrDataRef.current) {\r\n\t\t\t\tsetPreviousQrData(qr.data);\r\n\t\t\t\tonFindCodeRef.current({ imageSrc: img, image: imageData, qr });\r\n\t\t\t}\r\n\t\t},\r\n\t\t[setPreviousQrData]\r\n\t);\r\n\r\n\treturn ;\r\n};\r\n\r\nQRScanner.propTypes = {\r\n\tonFindCode: PropTypes.func.isRequired,\r\n\tisScanning: PropTypes.bool,\r\n\tisPaused: PropTypes.bool,\r\n\tintervalMs: PropTypes.number,\r\n\tduplicateScanTimeoutMs: PropTypes.number,\r\n};\r\n\r\nQRScanner.defaultProps = {\r\n\tintervalMs: 250,\r\n\tisScanning: true,\r\n\tisPaused: false,\r\n\tduplicateScanTimeoutMs: 2000,\r\n};\r\n\r\nexport default QRScanner;\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 {\r\n\tCountdownTimer,\r\n\tscannerSharedStyles,\r\n\tVideoContainer,\r\n} from '../../components/Scanner/styled';\r\nimport { customEvent } from '../../components/GoogleTagManager';\r\nimport { useActions } from '../../store/scanSession';\r\nimport { useHandleCameraPermission } from '../../utils/permissions';\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 {\r\n\tvalidateQr as validateQrThunk,\r\n\tidentifyQr as identifyQrThunk,\r\n} from '../../store/scanSession/thunks';\r\nimport NoPermission from '../../components/NoPermission';\r\nimport ProgressIndicator from '../../components/ProgressIndicator';\r\nimport QRScanner from '../../components/QRScanner';\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 validateQr = useThunk(validateQrThunk);\r\n\tconst identifyQr = useThunk(identifyQrThunk);\r\n\tuseHandleCameraPermission();\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\r\n\tconst searchParams = new URLSearchParams(search);\r\n\tconst urlThngId = searchParams.get('thng') || undefined;\r\n\r\n\tconst shouldShowCamera = !urlThngId && !thngId;\r\n\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\tif (urlThngId) {\r\n\t\t\tvalidateQr(urlThngId);\r\n\t\t}\r\n\t}, [urlThngId, validateQr]);\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 onFindQrCode = useCallback(\r\n\t\tasync ({ qr: { data: shortUrl } }) => {\r\n\t\t\tidentifyQr(shortUrl);\r\n\t\t},\r\n\t\t[identifyQr]\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) && resetRef.current) {\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{shouldShowCamera && (\r\n\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\r\n\t\t\t\t)}\r\n\t\t\t\r\n\t\t\t{isLoading && (\r\n\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\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","import React, { useCallback, useRef, useState } from 'react';\r\n\r\nimport PropTypes from 'prop-types';\r\n\r\nimport Scanner from '../Scanner';\r\n\r\nimport identificationsApi from '../../apis/identifications';\r\n\r\nconst DigimarcScanner = ({ onFindCode, intervalMs, ...props }) => {\r\n\tconst onFindCodeRef = useRef();\r\n\r\n\tonFindCodeRef.current = onFindCode;\r\n\r\n\tconst [isScanning, setIsScanning] = useState(true);\r\n\r\n\tconst onScan = useCallback(\r\n\t\tasync (img) => {\r\n\t\t\ttry {\r\n\t\t\t\tsetIsScanning(false);\r\n\r\n\t\t\t\tconst response = await identificationsApi.identifyDigimarc(img);\r\n\r\n\t\t\t\tif (response.length) {\r\n\t\t\t\t\tonFindCodeRef.current(response[0], img);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tsetIsScanning(true);\r\n\t\t\t\t}\r\n\t\t\t} catch (e) {\r\n\t\t\t\tsetIsScanning(true);\r\n\t\t\t}\r\n\t\t},\r\n\t\t[onFindCodeRef]\r\n\t);\r\n\r\n\treturn (\r\n\t\t\r\n\t);\r\n};\r\n\r\nDigimarcScanner.propTypes = {\r\n\tonFindCode: PropTypes.func.isRequired,\r\n\tintervalMs: PropTypes.number,\r\n};\r\n\r\nDigimarcScanner.defaultProps = {\r\n\tintervalMs: 1000,\r\n};\r\n\r\nexport default DigimarcScanner;\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 {\r\n\tVideoContainer,\r\n\tscannerSharedStyles,\r\n\tCountdownTimer,\r\n} from '../../components/Scanner/styled';\r\nimport { customEvent } from '../../components/GoogleTagManager';\r\nimport { setIsDigimarcCorrect as setIsDigimarcCorrectThunk } from '../../store/scanSession/thunks';\r\nimport {\r\n\tuseHasCameraPermission,\r\n\tuseIsQrCodeRecognized,\r\n} from '../../store/scanSession/selectors';\r\nimport { useThunk } from '../../utils/thunks';\r\nimport DigimarcScanner from '../../components/DigimarcScanner';\r\nimport NoPermission from '../../components/NoPermission';\r\nimport TamperTesterHeader from '../../components/TamperTesterHeader';\r\nimport TapeThumbnail from './tape_thumbnail.svg';\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 setIsDigimarcCorrect = useThunk(setIsDigimarcCorrectThunk);\r\n\r\n\tconst isQrRecognized = useIsQrCodeRecognized();\r\n\r\n\tuseEffect(() => {\r\n\t\tif (!isQrRecognized) {\r\n\t\t\thistory.push('/step1');\r\n\t\t}\r\n\t}, [setIsDigimarcCorrect, isQrRecognized, history]);\r\n\r\n\tconst onTimeout = useCallback(() => {\r\n\t\tcustomEvent('time_ends_step2');\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\tconst onFindDigimarcCode = useCallback(\r\n\t\t({ results }, imageData) => {\r\n\t\t\tsetIsDigimarcCorrect(results?.[0]?.thng);\r\n\t\t},\r\n\t\t[setIsDigimarcCorrect]\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\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\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\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\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 { setEvrythngKey } from './apis/evrythng';\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.evrythng = evrythng;\r\n\r\nfunction App() {\r\n\twindow.evrythng.use(window.PubSub);\r\n\twindow.PubSub.setup({ apiUrl: process.env.REACT_APP_EVERYTHNG_PUB_SUB_URL });\r\n\r\n\tconst searchParams = new URLSearchParams(window.location.search);\r\n\tconst apiKey = searchParams.get('token');\r\n\r\n\tif (apiKey) {\r\n\t\tsetEvrythngKey(apiKey);\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.register();\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":""}