{"version":3,"sources":["components/breadcrumbs/breadcrumbsNavigationContext/BreadcrumbNavigationContext.tsx","helpers/CardCategoryGroup.tsx","style/theme.ts","components/pageHeader/PageHeader.styles.ts","components/pageHeader/PageHeader.tsx","pages/dashboard/components/featureCard/FeatureCard.styles.ts","pages/dashboard/components/featureCard/FeatureCard.tsx","components/pageSection/PageSection.tsx","pages/dashboard/components/iconProfile/IconProfile.tsx","pages/dashboard/DashboardPage.styles.ts","states/AppState.tsx","pages/dashboard/DashboardPage.tsx","components/routes/PrivateRoute.tsx","components/sidemenu/SideMenu.styles.ts","components/sidemenu/SideMenuHeader/SideMenuHeader.styles.ts","assets/logos/logo_white.svg","components/sidemenu/SideMenuHeader/SideMenuHeader.tsx","components/sidemenu/SideMenuFooter/SideMenuFooter.styles.ts","customHooks/UseLogoutHook.tsx","Fetchers.tsx","components/sidemenu/SideMenuFooter/SideMenuFooter.tsx","components/sidemenu/Sidemenu.tsx","components/navigation/userMenu/UserMenu.styles.ts","components/navigation/userMenu/UserMenu.tsx","components/navigation/toolbar/Toolbar.styles.ts","components/breadcrumbs/Breadcrumbs.styles.ts","components/breadcrumbs/Breadcrumbs.tsx","components/navigation/toolbar/Toolbar.tsx","components/main/Main.styles.ts","customHooks/UseGetUserDetails.tsx","components/main/Main.tsx","components/card/cardHeader/CardHeader.styles.ts","components/card/cardHeader/CardHeader.tsx","components/card/Card.styles.ts","components/card/Card.tsx","pages/blockservice/components/serviceTable/ServiceTables.styles.ts","pages/blockservice/components/serviceTable/ServiceTable.tsx","pages/blockservice/components/registeredItemsTable/RegisteredItemsTable.styles.ts","components/confirmRemoveDialog/ConfirmRemoveDialog.styles.ts","components/confirmRemoveDialog/ConfirmRemoveDialog.tsx","pages/blockservice/components/registeredItemsTable/RegisteredItemsTable.tsx","assets/icons/Phone.tsx","assets/icons/CreditCard.tsx","assets/icons/IDCard.tsx","assets/icons/Tag.tsx","assets/icons/Calculator.tsx","pages/blockservice/subpages/BlockservicePage.tsx","components/label/Label.styles.ts","components/label/Label.tsx","components/select/Select.styles.ts","components/select/Select.tsx","helpers/ValidationEnum.ts","components/radioGroup/RadioGroup.styles.ts","components/radioGroup/RadioGroup.tsx","components/form/Form.styles.ts","components/form/Form.tsx","components/datepicker/Datepicker.styles.ts","components/datepicker/DatePicker.tsx","components/input/Input.styles.ts","components/input/Input.tsx","pages/blockservice/subpages/registerItemPage/ValidationComponent.tsx","pages/blockservice/subpages/registerItemPage/RegisterItemPage.tsx","pages/blockservice/BlockserviceRoute.tsx","pages/settings/SettingsPage.tsx","assets/logos/logo_black.svg","pages/login/LoginPage.styles.ts","components/cookieBanner/CookieBanner.styles.ts","components/cookieBanner/CookieBanner.tsx","pages/login/LoginPage.tsx","components/returntologin/ReturnToLogin.tsx","pages/passwordreset/RequestPasswordEmailPage.tsx","pages/passwordreset/SetNewPasswordPage.tsx","components/required/Required.tsx","pages/registeruser/RegisterUser.tsx","pages/about/AboutPage.styles.ts","pages/about/AboutPage.tsx","pages/login/ActivationCodeLoginPage.tsx","components/routes/PublicRoute.tsx","components/routes/Routes.tsx","App.tsx","reportWebVitals.ts","index.tsx"],"names":["BreadcrumbNavigationContext","createContext","BreadcrumbNavigationContextProvider","props","useState","breadcrumbNavigationItems","path","breadcrumbState","setBreadcrumbState","breadcrumbNavigationContext","setBreadcrumbNavigationContext","useEffect","prev","Provider","value","children","useBreadcrumbNavigationContext","CardCategoryGroups","useContext","colorPalette","grey","100","200","300","400","500","600","700","800","900","primary","light","main","dark","contrastText","secondary","common","white","black","error","warning","success","commonBorder","actionInTable","position","right","background","textAlign","theme","createMuiTheme","palette","overrides","MuiButton","root","textTransform","containedSizeLarge","padding","contained","border","backgroundColor","boxShadow","MuiTableCell","head","fontWeight","borderBottom","paddingTop","paddingBottom","paddingLeft","paddingRight","MuiIconButton","borderRadius","MuiFormLabel","fontSize","color","marginRight","MuiDrawer","paperAnchorDockedLeft","borderRight","MuiSvgIcon","fontSizeSmall","MuiAppBar","MuiTooltip","tooltip","MuiListItemIcon","minWidth","MuiListItem","MuiDialogTitle","MuiDialogContent","MuiDialogActions","shape","typography","fontFamily","htmlFontSize","h1","h2","h3","h4","h5","h6","body1","body2","caption","breakpoints","unit","values","xs","sm","md","lg","xl","spacing","factor","useStyles","makeStyles","header","down","titleContainer","marginBottom","icon","display","textDecoration","PageHeader","classes","className","Grid","container","alignItems","Typography","variant","title","paper","height","content","flexDirection","flexGrow","maxHeight","up","width","link","marginTop","FeatureCard","item","component","Hidden","mdDown","lgUp","Button","Link","to","text","PageSection","IconProfile","SvgIcon","d","list","listStyleType","contact","contactTitle","InitialAppState","userDetails","name","localStorage","getItem","email","phoneNumber","categoryGroups","seenCookieBanner","AppContext","state","dispatch","AppReducer","action","type","payload","setItem","DashboardPage","Home","justify","aria-label","BlockRounded","PrivateRoute","routeProps","pathname","useLocation","React","breadcrumbs","match","matchPath","exact","strict","newBreadCrumbs","map","x","generatePath","params","undefined","commonLinkStyles","label","marginLeft","opacity","activeLink","listItem","menuContainer","toolbar","mixins","logo","close","default","SideMenuHeader","src","alt","IconButton","onClick","closeMenu","CloseRounded","PhoneRounded","href","EmailRounded","signOutBtn","justifyContent","useLogoutHook","Logout","useMutate","mutate","onLogout","a","removeItem","window","location","SideMenuFooter","startIcon","ExitToAppRounded","sidemenuItems","category","items","HomeRounded","InfoRounded","Block","Sidemenu","Divider","Fragment","List","disablePadding","ListItem","disableGutters","activeClassName","ListItemIcon","ListItemText","initals","UserMenu","open","setOpen","anchorRef","useRef","getInitals","userName","split","n","join","handleClose","event","current","contains","target","handleListKeyDown","key","preventDefault","prevOpen","focus","Initals","ref","aria-controls","aria-haspopup","endIcon","KeyboardArrowDownRounded","Popper","anchorEl","role","transition","disablePortal","TransitionProps","Grow","style","transformOrigin","Paper","ClickAwayListener","onClickAway","MenuList","autoFocusItem","id","onKeyDown","MenuItem","drawerWidth","appBar","menuButton","margin","listStyle","borderColor","divider","Breadcrumbs","length","index","aria-current","Toolbar","useTheme","mobileView","useMediaQuery","AppBar","edge","openMenu","drawer","flexShrink","minHeight","drawerPaper","maxWidth","useGetUserDetails","useGet","useGetUser","lazy","data","loading","refetch","categoryGroupsResult","useGetAllCardCategoryGroups","cardCategoryGroups","Main","mobileOpen","setMobileOpen","handleDrawerToggle","CssBaseline","Drawer","anchor","onClose","ModalProps","keepMounted","wordBreak","button","CardHeader","wrap","spacesLeft","disabled","AddRounded","card","scroll","overflowY","Card","disableMaxHeight","overflowX","number","bold","availableSpaces","iconButton","ServiceTable","rows","useRouteMatch","Table","TableHead","TableRow","TableCell","TableBody","row","registered","Tooltip","table","service","confirm","remove","ConfirmRemoveDialog","labelledby","replace","DeleteOutlineRounded","Dialog","onEscapeKeyDown","onBackdropClick","aria-labelledby","DialogTitle","disableTypography","DialogContent","DialogActions","autoFocus","confirmRemove","RegisteredItemsTable","DeleteProtectionObject","useDeleteProtectionObject","onDelete","objectId","refetchObjects","TableContainer","protectionObject","cardTypeName","issuerName","cardNumber","additionalInformation","ownerName","Phone","transform","fill","fillRule","CreditCard","data-name","IDCard","Tag","Calculator","getIconByCategoryGroupId","group","CellPhone","Subscription","BarChart","Payment","Identification","Library","BankCardReader","BlockservicePage","categoryGroup","matchingGroupResult","groupResult","find","groupId","maxCount","cards","toString","helperText","Label","labelWithoutSpaces","htmlFor","styles","control","base","isFocused","isDisabled","cursor","boxSizing","zIndex","input","font","webkitTapHighlightColor","valueContainer","flex","flexWrap","webkitOverflowScrolling","overflow","dropdownIndicator","indicatorSeparator","placeholder","whiteSpace","textOverflow","alignSelf","top","singleValue","menu","multiValueLabel","webkitAlignItems","webkitBoxAlign","msFlexAlign","webkitFlexWrap","msFlexWap","multiValue","option","clearIndicator","loadingIndicator","lineHeight","verticalAlign","multiValueRemove","Select","ValidationEnum","autoComplete","cacheOptions","defaultOptions","selectProps","noOptionsMessage","radioGroup","RadioGroup","FormControl","onChange","defaultValue","Form","rest","DatePicker","cancelLabel","clearLabel","clearable","mask","date","format","errorMessage","Input","viewOnlyValue","register","registerRules","customError","InputBase","inputRef","message","ValidationComponent","validation","LastValidDate","rules","required","render","FourDigits","errors","pattern","SwedishCellphoneNumber","ImeiNumber","EightDigits","OnlyDigits","IdentificationOrOrganizationNumber","NoValidation","RegisterItemPage","idString","useParams","Number","parseInt","history","useHistory","useForm","handleSubmit","clearErrors","reset","paramsInPath","pathParams","useGetAllProtectionObjectsByCategoryGroup","protectionObjects","refetchProtectionObjects","issuers","useGetAllIssuersByCategoryGroup","selectedIssuer","setSelectedIssuer","selectedCardType","setSelectedCardType","otherOwner","setOtherOwner","setCard","issuerId","useGetAllCardTypesByCategoryGroupAndIssuer","cardTypes","getCardTypes","cardTypeId","useGetCard","cardData","getCard","createProtectionObject","onSubmit","submittedData","cardResult","lastValidDate","dayjs","cardId","otherOwnerIdentification","otherOwnerName","onIssuerChange","useCallback","onCardTypeChange","ingress","MainIngress","SubIngress","getIngressByCategoryGroupId","isMax","Boolean","options","idNameList","FormControlLabel","Radio","goBack","canBeCancelled","getSpacesLeft","BlockserviceRoute","SettingsPage","setValue","setError","refetchUserDetails","UpdateUser","showSuccess","setShowSuccess","Password","Verifypassword","forEach","er","SettingsRounded","noValidate","Name","Email","minLength","form","pass","forgot","submit","bottom","left","CookieBanner","Box","size","LoginPage","login","executeRecaptcha","useGoogleReCaptcha","token","captchaToken","result","loggedInUser","Error","fullWidth","ReturnToLogin","direction","align","Done","RequestPasswordEmailPage","requestEmail","IdentificationNumber","SetNewPasswordPage","code","SetNewPassword","resetCode","password","status","Required","aria-hidden","RegisterUserPage","RegisterUser","ActivationCode","information","AboutPage","Info","rel","ActivationCodeLoginPage","activationCode","identificationNumber","PublicRoute","reCaptchaKey","process","scriptProps","async","defer","appendTo","Routes","ThemeProvider","App","locale","useReducer","requestOptions","credentials","onError","utils","DayJsUtil","reportWebVitals","onPerfEntry","Function","then","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","StrictMode","document","getElementById"],"mappings":"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","file":"static/js/main.ccb6ac43.chunk.js","sourcesContent":["import React, { createContext, useState, useEffect, useContext } from 'react';\r\n\r\ninterface IBreadcrumbNavigationContext {\r\n setBreadcrumbState: (props: IBreadcrumState) => void;\r\n breadcrumbState: IBreadcrumState;\r\n}\r\n\r\nexport interface IBreadcrumbItem {\r\n title: string;\r\n to?: string;\r\n}\r\n\r\ninterface IBreadcrumState {\r\n breadcrumbNavigationItems: IBreadcrumbItem[];\r\n path: string;\r\n}\r\n\r\nconst BreadcrumbNavigationContext = createContext({} as IBreadcrumbNavigationContext);\r\nconst useBreadcrumbNavigationContext = () => useContext(BreadcrumbNavigationContext);\r\n\r\ninterface IProps {\r\n children: React.ReactNode;\r\n}\r\n\r\nexport function BreadcrumbNavigationContextProvider(props: IProps) {\r\n const [breadcrumbState, setBreadcrumbState] = useState({ breadcrumbNavigationItems: [], path: '' });\r\n const [breadcrumbNavigationContext, setBreadcrumbNavigationContext] = useState({\r\n breadcrumbState: breadcrumbState,\r\n setBreadcrumbState: setBreadcrumbState,\r\n });\r\n\r\n useEffect(() => {\r\n setBreadcrumbNavigationContext((prev) => ({\r\n ...prev,\r\n breadcrumbState: breadcrumbState,\r\n }));\r\n }, [breadcrumbState]);\r\n\r\n return (\r\n \r\n {props.children}\r\n \r\n );\r\n}\r\n\r\nexport default useBreadcrumbNavigationContext;\r\n","import React from 'react';\r\nimport { Phone } from '../assets/icons/Phone';\r\nimport { CreditCard } from '../assets/icons/CreditCard';\r\nimport { IDCard } from '../assets/icons/IDCard';\r\nimport { Tag } from '../assets/icons/Tag';\r\nimport { Calculator } from '../assets/icons/Calculator';\r\nimport { BarChart } from '@material-ui/icons';\r\n\r\nexport enum CardCategoryGroups {\r\n CellPhone = 1,\r\n Subscription = 2,\r\n Payment = 3,\r\n Identification = 4,\r\n Library = 5,\r\n BankCardReader = 6,\r\n}\r\n\r\nexport const getIconByCategoryGroupId = (group: CardCategoryGroups) => {\r\n switch (group) {\r\n case CardCategoryGroups.CellPhone:\r\n return ;\r\n case CardCategoryGroups.Subscription:\r\n return ;\r\n case CardCategoryGroups.Payment:\r\n return ;\r\n case CardCategoryGroups.Identification:\r\n return ;\r\n case CardCategoryGroups.Library:\r\n return ;\r\n case CardCategoryGroups.BankCardReader:\r\n return ;\r\n default:\r\n break;\r\n }\r\n};\r\n\r\ninterface Ingress {\r\n MainIngress: string;\r\n SubIngress: string;\r\n}\r\n\r\nexport const getIngressByCategoryGroupId = (group: CardCategoryGroups): Ingress => {\r\n switch (group) {\r\n case CardCategoryGroups.CellPhone:\r\n return {\r\n MainIngress: 'Här registrerar du din fysiska mobiltelefon. Du kan även se vad du tidigare registrerat.',\r\n SubIngress: 'Mobiltelefonen registerar du genom att mata in dess identifikationsnummer, IMEI-nummer',\r\n };\r\n case CardCategoryGroups.Subscription:\r\n return {\r\n MainIngress:\r\n 'Här registrerar du dina mobilabonnemang och mobila bredband. Du kan även se vad du tidigare registrerat.',\r\n SubIngress: '',\r\n };\r\n case CardCategoryGroups.Payment:\r\n return {\r\n MainIngress: 'Här registrerar du dina konto- och betalkort. Du kan även se vad du tidigare registrerat.',\r\n SubIngress: 'Exempel på utställare är din bank som Nordea, Swedbank med flera.',\r\n };\r\n case CardCategoryGroups.Identification:\r\n return {\r\n MainIngress: 'Här registrerar du dina ID- och körkort. Du kan även se vad du tidigare registrerat.',\r\n SubIngress: '',\r\n };\r\n case CardCategoryGroups.Library:\r\n return {\r\n MainIngress: 'Här registrerar du dina lånekort. Du kan även se vad du tidigare registrerat.',\r\n SubIngress: '',\r\n };\r\n case CardCategoryGroups.BankCardReader:\r\n return {\r\n MainIngress:\r\n 'Här registrerar du dina banksäkerhetsdosor, digipass, etc. Du kan även se vad du tidigare registrerat.',\r\n SubIngress: '',\r\n };\r\n default:\r\n return { MainIngress: '', SubIngress: '' };\r\n }\r\n};\r\n","import { createMuiTheme } from '@material-ui/core/styles';\r\nimport { CSSProperties } from '@material-ui/core/styles/withStyles';\r\n\r\nconst colorPalette = {\r\n grey: {\r\n 100: '#F8F8F8',\r\n 200: '#eeeeee',\r\n 300: '#e0e0e0',\r\n 400: '#E8ECED',\r\n 500: '#A7ACAD',\r\n 600: '#CFD6DC',\r\n 700: '#9e9e9e',\r\n 800: '#424242',\r\n 900: '#232D31',\r\n },\r\n primary: {\r\n light: '#D2E0ED',\r\n main: '#2A6379',\r\n dark: '#273C44',\r\n contrastText: '#fff',\r\n },\r\n secondary: {\r\n light: '#C6D5DB',\r\n main: '#A6BED4',\r\n dark: '#6289A5',\r\n },\r\n common: {\r\n white: '#fff',\r\n black: '#000',\r\n },\r\n error: {\r\n main: '#DC3030',\r\n },\r\n warning: {\r\n main: '#F4CA64',\r\n dark: '#D97923',\r\n },\r\n success: {\r\n main: '#39C171',\r\n },\r\n};\r\n\r\nconst baseFontSize: number = 14;\r\nexport const commonBorder: string = `1px solid ${colorPalette.grey[300]}`;\r\n\r\nexport const actionInTable = {\r\n position: 'sticky',\r\n right: 0,\r\n background: 'white',\r\n textAlign: 'right',\r\n} as CSSProperties;\r\n\r\nconst shape: number = 4;\r\n\r\nconst theme = createMuiTheme({\r\n palette: colorPalette,\r\n overrides: {\r\n MuiButton: {\r\n root: {\r\n textTransform: 'initial',\r\n },\r\n containedSizeLarge: {\r\n padding: '0.85rem 0',\r\n },\r\n contained: {\r\n border: `1px solid ${colorPalette.primary.main}`,\r\n backgroundColor: colorPalette.common.white,\r\n boxShadow: `0px 2px 1px -2px rgba(42, 99, 121, 0.13), 0px 1px 3px 0px rgba(42, 99, 121, 0.14), 0px 2px 4px 0px rgba(42, 99, 121, 0.15)`,\r\n },\r\n },\r\n MuiTableCell: {\r\n head: {\r\n fontWeight: 600,\r\n },\r\n root: {\r\n borderBottom: 0,\r\n paddingTop: '0.5rem',\r\n paddingBottom: '0.5rem',\r\n paddingLeft: '1rem',\r\n paddingRight: '1rem',\r\n },\r\n },\r\n MuiIconButton: {\r\n root: {\r\n borderRadius: shape,\r\n },\r\n },\r\n MuiFormLabel: {\r\n root: {\r\n fontSize: '1.2rem',\r\n color: 'black',\r\n marginRight: '2rem',\r\n '&.Mui-focused': {\r\n color: colorPalette.common.black,\r\n },\r\n },\r\n },\r\n MuiDrawer: {\r\n paperAnchorDockedLeft: {\r\n borderRight: 0,\r\n },\r\n },\r\n MuiSvgIcon: {\r\n fontSizeSmall: {\r\n fontSize: '1rem',\r\n },\r\n },\r\n MuiAppBar: {\r\n root: {\r\n boxShadow: 'none',\r\n },\r\n },\r\n MuiTooltip: {\r\n tooltip: {\r\n fontSize: '1rem',\r\n },\r\n },\r\n MuiListItemIcon: {\r\n root: {\r\n minWidth: 'auto',\r\n marginRight: '0.5rem',\r\n },\r\n },\r\n MuiListItem: {\r\n root: {\r\n paddingLeft: '1rem',\r\n paddingRight: '1rem',\r\n },\r\n },\r\n MuiDialogTitle: {\r\n root: {\r\n padding: '1.5rem 1.5rem 1rem',\r\n },\r\n },\r\n MuiDialogContent: {\r\n root: {\r\n padding: '0 1.5rem 1rem',\r\n color: colorPalette.grey[900],\r\n },\r\n },\r\n MuiDialogActions: {\r\n root: {\r\n padding: '0.5rem 1.5rem 1rem',\r\n },\r\n },\r\n },\r\n shape: {\r\n borderRadius: shape,\r\n },\r\n typography: {\r\n fontFamily: 'Open Sans, sans-serif',\r\n htmlFontSize: baseFontSize,\r\n h1: {\r\n fontSize: '2rem',\r\n },\r\n h2: {\r\n fontSize: '1.6rem',\r\n fontWeight: 'bold',\r\n },\r\n h3: {\r\n fontSize: '1.2rem',\r\n fontWeight: 'bold',\r\n },\r\n h4: {\r\n fontSize: '1.1rem',\r\n },\r\n h5: {\r\n fontSize: '1rem',\r\n fontWeight: 'bold',\r\n color: colorPalette.common.black,\r\n textTransform: 'uppercase',\r\n },\r\n h6: {\r\n fontSize: '1rem',\r\n fontWeight: 'bold',\r\n },\r\n body1: {\r\n fontSize: '1rem',\r\n },\r\n body2: {\r\n fontSize: '1rem',\r\n },\r\n caption: {\r\n fontSize: '1rem',\r\n },\r\n },\r\n breakpoints: {\r\n unit: 'rem',\r\n values: {\r\n xs: 0,\r\n sm: 600 / baseFontSize,\r\n md: 960 / baseFontSize,\r\n lg: 1280 / baseFontSize,\r\n xl: 1920 / baseFontSize,\r\n },\r\n },\r\n spacing: (factor) => `${0.5 * factor}rem`,\r\n});\r\n\r\nexport default theme;\r\n","import { makeStyles, Theme } from '@material-ui/core';\r\nimport { commonBorder } from '../../style/theme';\r\n\r\nexport const useStyles = makeStyles((theme: Theme) => ({\r\n header: {\r\n padding: '1.5rem',\r\n backgroundColor: theme.palette.grey[400],\r\n borderBottom: commonBorder,\r\n [theme.breakpoints.down('sm')]: {\r\n padding: '1.5rem 0.5rem',\r\n },\r\n },\r\n h1: {\r\n fontWeight: 700,\r\n },\r\n titleContainer: {\r\n marginBottom: '1rem',\r\n },\r\n icon: {\r\n display: 'flex',\r\n marginRight: '0.5rem',\r\n color: theme.palette.secondary.main,\r\n '* > svg': {\r\n fontSize: '2.5rem',\r\n },\r\n },\r\n children: {\r\n '& > *': {\r\n fontSize: theme.typography.h3.fontSize,\r\n marginBottom: '0.5rem',\r\n '&:last-child': {\r\n marginBottom: 0,\r\n },\r\n },\r\n '& a': {\r\n fontWeight: 700,\r\n textDecoration: 'none',\r\n color: theme.palette.common.black,\r\n },\r\n },\r\n}));\r\n","import React from 'react';\r\nimport { Grid, Typography } from '@material-ui/core';\r\nimport { useStyles } from './PageHeader.styles';\r\n\r\ninterface IPageHeader {\r\n title: string;\r\n icon: React.ReactNode;\r\n}\r\n\r\nexport const PageHeader: React.FC = (props) => {\r\n const classes = useStyles();\r\n\r\n return (\r\n
\r\n \r\n
{props.icon}
\r\n \r\n {props.title}\r\n \r\n
\r\n
{props.children}
\r\n
\r\n );\r\n};\r\n","import { makeStyles, Theme } from '@material-ui/core';\r\nimport { commonBorder } from '../../../../style/theme';\r\n\r\nexport const useStyles = makeStyles((theme: Theme) => ({\r\n root: {\r\n backgroundColor: theme.palette.background.paper,\r\n borderRadius: theme.shape.borderRadius,\r\n padding: '1rem',\r\n border: commonBorder,\r\n height: '100%',\r\n },\r\n title: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n marginBottom: '0.5rem',\r\n },\r\n content: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'flex-start',\r\n },\r\n children: {\r\n flexGrow: 1,\r\n },\r\n icon: {\r\n paddingRight: '0.5rem',\r\n display: 'flex',\r\n maxHeight: '14rem',\r\n '& > *': {\r\n color: theme.palette.secondary.main,\r\n },\r\n [theme.breakpoints.up('lg')]: {\r\n '& > svg': {\r\n width: '100%',\r\n height: '100%',\r\n },\r\n },\r\n },\r\n link: {\r\n marginTop: '1rem',\r\n },\r\n}));\r\n","import React from 'react';\r\nimport { Button, Grid, Hidden, Typography } from '@material-ui/core';\r\nimport { Link } from 'react-router-dom';\r\nimport { useStyles } from './FeatureCard.styles';\r\n\r\ninterface IFeatureCard {\r\n title: string;\r\n icon: React.ReactNode;\r\n link: ILink;\r\n}\r\n\r\ninterface ILink {\r\n text: string;\r\n to: string;\r\n}\r\n\r\nexport const FeatureCard: React.FC = (props) => {\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n
{props.icon}
\r\n
\r\n
\r\n \r\n \r\n \r\n
{props.icon}
\r\n
\r\n {props.title}\r\n
\r\n
{props.children}
\r\n \r\n
\r\n
\r\n
\r\n );\r\n};\r\n","import React from 'react';\r\nimport { makeStyles, Theme } from '@material-ui/core';\r\n\r\nconst useStyles = makeStyles((theme: Theme) => ({\r\n root: {\r\n padding: '1.5rem',\r\n [theme.breakpoints.down('sm')]: {\r\n padding: '0.5rem',\r\n },\r\n },\r\n}));\r\n\r\nexport const PageSection: React.FC = (props) => {\r\n const classes = useStyles();\r\n return
{props.children}
;\r\n};\r\n","import React from 'react';\r\nimport { SvgIcon } from '@material-ui/core';\r\n\r\nexport const IconProfile = () => (\r\n \r\n \r\n \r\n);\r\n","import { makeStyles, Theme } from '@material-ui/core';\r\n\r\nexport const useStyles = makeStyles((theme: Theme) => ({\r\n list: {\r\n padding: 0,\r\n listStyleType: 'none',\r\n },\r\n contact: {\r\n marginTop: '0.5rem',\r\n },\r\n contactTitle: {\r\n fontWeight: 600,\r\n },\r\n}));\r\n","import React, { createContext } from 'react';\r\nimport { CardCategoryGroup, UserDetails } from '../Fetchers';\r\n\r\ntype AppState = {\r\n userDetails: UserDetails;\r\n categoryGroups: CardCategoryGroup[];\r\n seenCookieBanner?: 'true' | null;\r\n};\r\n\r\nexport const InitialAppState: AppState = {\r\n userDetails: {\r\n name: localStorage.getItem('authenticatedName'),\r\n email: '',\r\n phoneNumber: '',\r\n },\r\n categoryGroups: [],\r\n seenCookieBanner: localStorage.getItem('seenCookieBanner') as 'true' | null,\r\n};\r\n\r\nexport const AppContext = createContext<{\r\n state: AppState;\r\n dispatch: React.Dispatch;\r\n}>({\r\n state: InitialAppState,\r\n dispatch: () => null,\r\n});\r\n\r\ninterface Action {\r\n type: 'UPDATE_USER_DETAILS' | 'UPDATE_CATEGORY_GROUPS' | 'UPDATE_SEEN_COOKIE_BANNER';\r\n payload: any;\r\n}\r\n\r\nexport const AppReducer = (state: AppState, action: Action): AppState => {\r\n switch (action.type) {\r\n case 'UPDATE_USER_DETAILS':\r\n if (action.payload.name) {\r\n localStorage.setItem('authenticatedName', action.payload.name);\r\n }\r\n return { ...state, userDetails: { ...state.userDetails, ...action.payload } };\r\n case 'UPDATE_CATEGORY_GROUPS':\r\n return { ...state, categoryGroups: action.payload };\r\n case 'UPDATE_SEEN_COOKIE_BANNER':\r\n localStorage.setItem('seenCookieBanner', 'true');\r\n return { ...state, seenCookieBanner: action.payload };\r\n default:\r\n return state;\r\n }\r\n};\r\n","import React, { useContext } from 'react';\r\nimport { Grid, Typography } from '@material-ui/core';\r\nimport { PageHeader } from '../../components/pageHeader/PageHeader';\r\nimport { FeatureCard } from './components/featureCard/FeatureCard';\r\nimport { PageSection } from '../../components/pageSection/PageSection';\r\nimport { BlockRounded, Home } from '@material-ui/icons';\r\nimport { IconProfile } from './components/iconProfile/IconProfile';\r\nimport { useStyles } from './DashboardPage.styles';\r\nimport { AppContext } from '../../states/AppState';\r\n\r\nexport const DashboardPage = () => {\r\n const classes = useStyles();\r\n const { state } = useContext(AppContext);\r\n const { name, email, phoneNumber } = state.userDetails;\r\n\r\n return (\r\n <>\r\n }>\r\n Här kan du själv hantera Keycodes tjänster för din personliga trygghet.\r\n \r\n Tveka inte att kontakta oss, om du behöver hjälp!\r\n \r\n \r\n \r\n \r\n }\r\n >\r\n \r\n Spärrtjänst är ett kortskydd som skyddar dina värdehandlingar inklusive mobiltelefon. Om olyckan är framme\r\n ringer du bara ett enda samtal för att spärra dina olika kort och värdehandlingar.\r\n \r\n \r\n }\r\n >\r\n {name}\r\n
\r\n Email\r\n {email}\r\n
\r\n
\r\n Telefon\r\n {phoneNumber}\r\n
\r\n \r\n
\r\n
\r\n \r\n );\r\n};\r\n","import React, { useContext } from 'react';\r\nimport { Route, matchPath, generatePath, useLocation, RouteProps, Redirect } from 'react-router-dom';\r\nimport { AppContext } from '../../states/AppState';\r\nimport useBreadcrumbNavigationContext, {\r\n IBreadcrumbItem,\r\n} from '../breadcrumbs/breadcrumbsNavigationContext/BreadcrumbNavigationContext';\r\n\r\ninterface IProps extends RouteProps {\r\n breadcrumbs?: IBreadcrumbItem[];\r\n}\r\n\r\nexport const PrivateRoute: React.FunctionComponent = (props) => {\r\n const { children, ...routeProps } = props;\r\n const { pathname } = useLocation();\r\n const { breadcrumbState, setBreadcrumbState } = useBreadcrumbNavigationContext();\r\n const { state } = useContext(AppContext);\r\n React.useEffect(() => {\r\n if (pathname === breadcrumbState.path || !props.breadcrumbs) {\r\n return;\r\n }\r\n const match = matchPath(pathname, { path: props.path, exact: true, strict: false });\r\n const isMatch = !!match;\r\n if (isMatch) {\r\n let newBreadCrumbs: IBreadcrumbItem[] = [];\r\n if (props.breadcrumbs) {\r\n newBreadCrumbs = props.breadcrumbs.map((x) => ({\r\n ...x,\r\n to: x.to ? generatePath(x.to, match?.params) : undefined,\r\n }));\r\n }\r\n\r\n setBreadcrumbState({ breadcrumbNavigationItems: newBreadCrumbs, path: pathname });\r\n }\r\n }, [pathname, props.path, props.breadcrumbs, setBreadcrumbState, breadcrumbState.path]);\r\n\r\n return state.userDetails.name ? {children} : ;\r\n};\r\n","import { makeStyles, Theme } from '@material-ui/core';\r\nimport { CSSProperties } from '@material-ui/core/styles/withStyles';\r\n\r\nconst commonLinkStyles = {\r\n display: 'flex',\r\n alignItems: 'center',\r\n padding: '0.5rem 1rem',\r\n width: '100%',\r\n textDecoration: 'none',\r\n} as CSSProperties;\r\n\r\nexport const useStyles = makeStyles((theme: Theme) => ({\r\n label: {\r\n textTransform: 'uppercase',\r\n marginLeft: '1rem',\r\n marginTop: '1rem',\r\n marginBottom: '0.75rem',\r\n display: 'flex',\r\n fontWeight: 600,\r\n },\r\n icon: {\r\n color: theme.palette.primary.light,\r\n },\r\n link: {\r\n ...commonLinkStyles,\r\n opacity: 0.8,\r\n color: theme.palette.background.paper,\r\n },\r\n activeLink: {\r\n ...commonLinkStyles,\r\n color: theme.palette.background.paper,\r\n backgroundColor: theme.palette.grey[900],\r\n },\r\n listItem: {\r\n padding: 0,\r\n },\r\n menuContainer: {\r\n flexGrow: 1,\r\n },\r\n}));\r\n","import { makeStyles, Theme } from '@material-ui/core';\r\n\r\nexport const useStyles = makeStyles((theme: Theme) => ({\r\n toolbar: {\r\n ...theme.mixins.toolbar,\r\n backgroundColor: theme.palette.grey[900],\r\n padding: '0 1rem',\r\n display: 'flex',\r\n },\r\n container: {\r\n [theme.breakpoints.down('sm')]: {\r\n flexDirection: 'row-reverse',\r\n },\r\n },\r\n logo: {\r\n height: '2rem',\r\n width: 'auto',\r\n [theme.breakpoints.down('sm')]: {\r\n display: 'none',\r\n },\r\n },\r\n close: {\r\n [theme.breakpoints.up('md')]: {\r\n display: 'none',\r\n },\r\n '& > *': {\r\n color: theme.palette.background.default,\r\n },\r\n },\r\n contact: {\r\n '& > *': {\r\n display: 'flex',\r\n alignItems: 'center',\r\n '& a': {\r\n color: theme.palette.primary.light,\r\n textDecoration: 'none',\r\n },\r\n },\r\n },\r\n icon: {\r\n marginRight: '0.25rem',\r\n fontSize: theme.typography.caption.fontSize,\r\n },\r\n}));\r\n","export default __webpack_public_path__ + \"static/media/logo_white.8e2d77ca.svg\";","import React from 'react';\r\nimport { useStyles } from './SideMenuHeader.styles';\r\nimport logo from '../../../assets/logos/logo_white.svg';\r\nimport { Grid, IconButton, Typography } from '@material-ui/core';\r\nimport { PhoneRounded, EmailRounded, CloseRounded } from '@material-ui/icons';\r\n\r\ninterface ISideMenuHeaderProps {\r\n closeMenu?: () => void;\r\n}\r\n\r\nexport const SideMenuHeader = (props: ISideMenuHeaderProps) => {\r\n const classes = useStyles();\r\n\r\n return (\r\n
\r\n \r\n \r\n \"Logotype\"\r\n \r\n \r\n \r\n \r\n \r\n \r\n 031-758 61 00\r\n \r\n \r\n \r\n info@keycode.se\r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n","import { makeStyles, Theme } from '@material-ui/core';\r\n\r\nexport const useStyles = makeStyles((theme: Theme) => ({\r\n signOutBtn: {\r\n backgroundColor: theme.palette.secondary.light,\r\n width: '100%',\r\n padding: '0.75rem 1rem',\r\n justifyContent: 'flex-start',\r\n borderRadius: 0,\r\n },\r\n}));\r\n","import { useLogout } from '../Fetchers';\r\n\r\nexport const useLogoutHook = () => {\r\n const { mutate: Logout } = useLogout({});\r\n\r\n const onLogout = async () => {\r\n await Logout({});\r\n localStorage.removeItem('authenticatedName');\r\n window.location.href = '/login';\r\n };\r\n\r\n return { onLogout };\r\n};\r\n","/* Generated by restful-react */\r\n\r\nimport React from 'react';\r\nimport { Get, GetProps, useGet, UseGetProps, Mutate, MutateProps, useMutate, UseMutateProps } from 'restful-react';\r\nexport interface LoginCommand {\r\n identificationNumber?: string | null;\r\n password?: string | null;\r\n captchaToken?: string | null;\r\n}\r\n\r\nexport interface LoggedInUser {\r\n name?: string | null;\r\n}\r\n\r\nexport interface LoginResult {\r\n loggedInUser?: LoggedInUser;\r\n}\r\n\r\nexport interface ActivationCodeLoginCommand {\r\n identificationNumber?: string | null;\r\n activationCode?: string | null;\r\n captchaToken?: string | null;\r\n}\r\n\r\nexport interface ActivationCodeLoginResult {\r\n loggedInUser?: LoggedInUser;\r\n}\r\n\r\nexport interface ResetPasswordEmailRequestCommand {\r\n email?: string | null;\r\n identificationNumber?: string | null;\r\n captchaToken?: string | null;\r\n}\r\n\r\nexport interface SetNewPasswordCommand {\r\n password?: string | null;\r\n resetCode?: string | null;\r\n captchaToken?: string | null;\r\n}\r\n\r\nexport interface ErrorListObject {\r\n name?: string | null;\r\n error?: string | null;\r\n}\r\n\r\nexport interface ValidationError {\r\n type?: string | null;\r\n errors?: ErrorListObject[] | null;\r\n}\r\n\r\nexport interface LogoutCommand {\r\n [key: string]: any;\r\n}\r\n\r\nexport interface ProtectionObjectViewModel {\r\n objectId?: number;\r\n cardNumber?: string | null;\r\n additionalInformation?: string | null;\r\n ownerName?: string | null;\r\n ownerIdentification?: string | null;\r\n issuerName?: string | null;\r\n cardTypeName?: string | null;\r\n cardGroupCategoryName?: string | null;\r\n cardGroupCategoryId?: number;\r\n}\r\n\r\nexport interface ProtectionObjectGroupResult {\r\n groupId?: number;\r\n groupName?: string | null;\r\n cards?: ProtectionObjectViewModel[] | null;\r\n}\r\n\r\nexport interface GetProtectionObjectsResult {\r\n groupResult?: ProtectionObjectGroupResult[] | null;\r\n}\r\n\r\nexport interface GetProtectionObjectsByCategoryGroupResult {\r\n groupResult?: ProtectionObjectGroupResult[] | null;\r\n}\r\n\r\nexport interface IdName {\r\n id?: number;\r\n name?: string | null;\r\n}\r\n\r\nexport interface GetIssuersByCategoryGroupResult {\r\n idNameList?: IdName[] | null;\r\n}\r\n\r\nexport interface GetCardTypesByCategoryGroupAndIssuerResult {\r\n idNameList?: IdName[] | null;\r\n}\r\n\r\nexport type Validations = number;\r\n\r\nexport interface CardViewModel {\r\n id?: number;\r\n validation?: Validations;\r\n canBeCancelled?: boolean;\r\n}\r\n\r\nexport interface GetCardResult {\r\n cardResult?: CardViewModel;\r\n}\r\n\r\nexport interface CardCategoryGroup {\r\n id?: number;\r\n name?: string | null;\r\n maxCount?: number | null;\r\n}\r\n\r\nexport interface GetCardCategoryGroupsResult {\r\n cardCategoryGroups?: CardCategoryGroup[] | null;\r\n}\r\n\r\nexport interface CreateProtectionObjectCommand {\r\n cardId?: number;\r\n otherOwnerName?: string | null;\r\n otherOwnerIdentification?: string | null;\r\n cardNumber?: string | null;\r\n additionalInformation?: string | null;\r\n groupId?: number;\r\n}\r\n\r\nexport interface DeleteProtectionObjectCommand {\r\n objectId?: number;\r\n}\r\n\r\nexport interface UserDetails {\r\n name?: string | null;\r\n phoneNumber?: string | null;\r\n email?: string | null;\r\n}\r\n\r\nexport interface UserDetailsResult {\r\n userDetails?: UserDetails;\r\n}\r\n\r\nexport interface RegisterUserCommand {\r\n activationCode?: string | null;\r\n email?: string | null;\r\n name?: string | null;\r\n password?: string | null;\r\n identificationNumber?: string | null;\r\n phoneNumber?: string | null;\r\n captchaToken?: string | null;\r\n}\r\n\r\nexport interface UpdateUserDetailsCommand {\r\n password?: string | null;\r\n name?: string | null;\r\n phoneNumber?: string | null;\r\n email?: string | null;\r\n}\r\n\r\nexport type LoginProps = Omit, 'path' | 'verb'>;\r\n\r\nexport const Login = (props: LoginProps) => (\r\n verb=\"POST\" path={`/Login`} {...props} />\r\n);\r\n\r\nexport type UseLoginProps = Omit, 'path' | 'verb'>;\r\n\r\nexport const useLogin = (props: UseLoginProps) =>\r\n useMutate('POST', `/Login`, props);\r\n\r\nexport type ActivationCodeLoginProps = Omit<\r\n MutateProps,\r\n 'path' | 'verb'\r\n>;\r\n\r\nexport const ActivationCodeLogin = (props: ActivationCodeLoginProps) => (\r\n \r\n verb=\"POST\"\r\n path={`/Login/activation-code`}\r\n {...props}\r\n />\r\n);\r\n\r\nexport type UseActivationCodeLoginProps = Omit<\r\n UseMutateProps,\r\n 'path' | 'verb'\r\n>;\r\n\r\nexport const useActivationCodeLogin = (props: UseActivationCodeLoginProps) =>\r\n useMutate(\r\n 'POST',\r\n `/Login/activation-code`,\r\n props,\r\n );\r\n\r\nexport type RequestResetPasswordMailProps = Omit<\r\n MutateProps,\r\n 'path' | 'verb'\r\n>;\r\n\r\nexport const RequestResetPasswordMail = (props: RequestResetPasswordMailProps) => (\r\n \r\n verb=\"POST\"\r\n path={`/Login/request-reset-password`}\r\n {...props}\r\n />\r\n);\r\n\r\nexport type UseRequestResetPasswordMailProps = Omit<\r\n UseMutateProps,\r\n 'path' | 'verb'\r\n>;\r\n\r\nexport const useRequestResetPasswordMail = (props: UseRequestResetPasswordMailProps) =>\r\n useMutate(\r\n 'POST',\r\n `/Login/request-reset-password`,\r\n props,\r\n );\r\n\r\nexport type SetNewPasswordProps = Omit<\r\n MutateProps,\r\n 'path' | 'verb'\r\n>;\r\n\r\nexport const SetNewPassword = (props: SetNewPasswordProps) => (\r\n \r\n verb=\"POST\"\r\n path={`/Login/set-new-password`}\r\n {...props}\r\n />\r\n);\r\n\r\nexport type UseSetNewPasswordProps = Omit<\r\n UseMutateProps,\r\n 'path' | 'verb'\r\n>;\r\n\r\nexport const useSetNewPassword = (props: UseSetNewPasswordProps) =>\r\n useMutate('POST', `/Login/set-new-password`, props);\r\n\r\nexport type LogoutProps = Omit, 'path' | 'verb'>;\r\n\r\nexport const Logout = (props: LogoutProps) => (\r\n verb=\"POST\" path={`/Login/logout`} {...props} />\r\n);\r\n\r\nexport type UseLogoutProps = Omit, 'path' | 'verb'>;\r\n\r\nexport const useLogout = (props: UseLogoutProps) =>\r\n useMutate('POST', `/Login/logout`, props);\r\n\r\nexport type GetAllProtectionObjectsProps = Omit, 'path'>;\r\n\r\nexport const GetAllProtectionObjects = (props: GetAllProtectionObjectsProps) => (\r\n path={`/ProtectionObject/all`} {...props} />\r\n);\r\n\r\nexport type UseGetAllProtectionObjectsProps = Omit<\r\n UseGetProps,\r\n 'path'\r\n>;\r\n\r\nexport const useGetAllProtectionObjects = (props: UseGetAllProtectionObjectsProps) =>\r\n useGet(`/ProtectionObject/all`, props);\r\n\r\nexport interface GetAllProtectionObjectsByCategoryGroupPathParams {\r\n groupId: number;\r\n}\r\n\r\nexport type GetAllProtectionObjectsByCategoryGroupProps = Omit<\r\n GetProps,\r\n 'path'\r\n> &\r\n GetAllProtectionObjectsByCategoryGroupPathParams;\r\n\r\nexport const GetAllProtectionObjectsByCategoryGroup = ({\r\n groupId,\r\n ...props\r\n}: GetAllProtectionObjectsByCategoryGroupProps) => (\r\n \r\n path={`/ProtectionObject/group/${groupId}`}\r\n {...props}\r\n />\r\n);\r\n\r\nexport type UseGetAllProtectionObjectsByCategoryGroupProps = Omit<\r\n UseGetProps<\r\n GetProtectionObjectsByCategoryGroupResult,\r\n unknown,\r\n void,\r\n GetAllProtectionObjectsByCategoryGroupPathParams\r\n >,\r\n 'path'\r\n> &\r\n GetAllProtectionObjectsByCategoryGroupPathParams;\r\n\r\nexport const useGetAllProtectionObjectsByCategoryGroup = ({\r\n groupId,\r\n ...props\r\n}: UseGetAllProtectionObjectsByCategoryGroupProps) =>\r\n useGet(\r\n (paramsInPath: GetAllProtectionObjectsByCategoryGroupPathParams) =>\r\n `/ProtectionObject/group/${paramsInPath.groupId}`,\r\n { pathParams: { groupId }, ...props },\r\n );\r\n\r\nexport interface GetAllIssuersByCategoryGroupPathParams {\r\n groupId: number;\r\n}\r\n\r\nexport type GetAllIssuersByCategoryGroupProps = Omit<\r\n GetProps,\r\n 'path'\r\n> &\r\n GetAllIssuersByCategoryGroupPathParams;\r\n\r\nexport const GetAllIssuersByCategoryGroup = ({ groupId, ...props }: GetAllIssuersByCategoryGroupProps) => (\r\n \r\n path={`/ProtectionObject/group/${groupId}/issuers`}\r\n {...props}\r\n />\r\n);\r\n\r\nexport type UseGetAllIssuersByCategoryGroupProps = Omit<\r\n UseGetProps,\r\n 'path'\r\n> &\r\n GetAllIssuersByCategoryGroupPathParams;\r\n\r\nexport const useGetAllIssuersByCategoryGroup = ({ groupId, ...props }: UseGetAllIssuersByCategoryGroupProps) =>\r\n useGet(\r\n (paramsInPath: GetAllIssuersByCategoryGroupPathParams) => `/ProtectionObject/group/${paramsInPath.groupId}/issuers`,\r\n { pathParams: { groupId }, ...props },\r\n );\r\n\r\nexport interface GetAllCardTypesByCategoryGroupAndIssuerPathParams {\r\n groupId: number;\r\n issuerId: number;\r\n}\r\n\r\nexport type GetAllCardTypesByCategoryGroupAndIssuerProps = Omit<\r\n GetProps<\r\n GetCardTypesByCategoryGroupAndIssuerResult,\r\n unknown,\r\n void,\r\n GetAllCardTypesByCategoryGroupAndIssuerPathParams\r\n >,\r\n 'path'\r\n> &\r\n GetAllCardTypesByCategoryGroupAndIssuerPathParams;\r\n\r\nexport const GetAllCardTypesByCategoryGroupAndIssuer = ({\r\n groupId,\r\n issuerId,\r\n ...props\r\n}: GetAllCardTypesByCategoryGroupAndIssuerProps) => (\r\n \r\n path={`/ProtectionObject/group/${groupId}/issuer/${issuerId}/types`}\r\n {...props}\r\n />\r\n);\r\n\r\nexport type UseGetAllCardTypesByCategoryGroupAndIssuerProps = Omit<\r\n UseGetProps<\r\n GetCardTypesByCategoryGroupAndIssuerResult,\r\n unknown,\r\n void,\r\n GetAllCardTypesByCategoryGroupAndIssuerPathParams\r\n >,\r\n 'path'\r\n> &\r\n GetAllCardTypesByCategoryGroupAndIssuerPathParams;\r\n\r\nexport const useGetAllCardTypesByCategoryGroupAndIssuer = ({\r\n groupId,\r\n issuerId,\r\n ...props\r\n}: UseGetAllCardTypesByCategoryGroupAndIssuerProps) =>\r\n useGet(\r\n (paramsInPath: GetAllCardTypesByCategoryGroupAndIssuerPathParams) =>\r\n `/ProtectionObject/group/${paramsInPath.groupId}/issuer/${paramsInPath.issuerId}/types`,\r\n { pathParams: { groupId, issuerId }, ...props },\r\n );\r\n\r\nexport interface GetCardPathParams {\r\n issuerId: number;\r\n cardTypeId: number;\r\n}\r\n\r\nexport type GetCardProps = Omit, 'path'> & GetCardPathParams;\r\n\r\nexport const GetCard = ({ issuerId, cardTypeId, ...props }: GetCardProps) => (\r\n \r\n path={`/ProtectionObject/issuer/${issuerId}/type/${cardTypeId}/card`}\r\n {...props}\r\n />\r\n);\r\n\r\nexport type UseGetCardProps = Omit, 'path'> &\r\n GetCardPathParams;\r\n\r\nexport const useGetCard = ({ issuerId, cardTypeId, ...props }: UseGetCardProps) =>\r\n useGet(\r\n (paramsInPath: GetCardPathParams) =>\r\n `/ProtectionObject/issuer/${paramsInPath.issuerId}/type/${paramsInPath.cardTypeId}/card`,\r\n { pathParams: { issuerId, cardTypeId }, ...props },\r\n );\r\n\r\nexport type GetAllCardCategoryGroupsProps = Omit, 'path'>;\r\n\r\nexport const GetAllCardCategoryGroups = (props: GetAllCardCategoryGroupsProps) => (\r\n path={`/ProtectionObject/groups`} {...props} />\r\n);\r\n\r\nexport type UseGetAllCardCategoryGroupsProps = Omit<\r\n UseGetProps,\r\n 'path'\r\n>;\r\n\r\nexport const useGetAllCardCategoryGroups = (props: UseGetAllCardCategoryGroupsProps) =>\r\n useGet(`/ProtectionObject/groups`, props);\r\n\r\nexport type CreateProtectionObjectProps = Omit<\r\n MutateProps,\r\n 'path' | 'verb'\r\n>;\r\n\r\nexport const CreateProtectionObject = (props: CreateProtectionObjectProps) => (\r\n \r\n verb=\"POST\"\r\n path={`/ProtectionObject`}\r\n {...props}\r\n />\r\n);\r\n\r\nexport type UseCreateProtectionObjectProps = Omit<\r\n UseMutateProps,\r\n 'path' | 'verb'\r\n>;\r\n\r\nexport const useCreateProtectionObject = (props: UseCreateProtectionObjectProps) =>\r\n useMutate('POST', `/ProtectionObject`, props);\r\n\r\nexport type DeleteProtectionObjectProps = Omit<\r\n MutateProps,\r\n 'path' | 'verb'\r\n>;\r\n\r\nexport const DeleteProtectionObject = (props: DeleteProtectionObjectProps) => (\r\n \r\n verb=\"DELETE\"\r\n path={`/ProtectionObject`}\r\n {...props}\r\n />\r\n);\r\n\r\nexport type UseDeleteProtectionObjectProps = Omit<\r\n UseMutateProps,\r\n 'path' | 'verb'\r\n>;\r\n\r\nexport const useDeleteProtectionObject = (props: UseDeleteProtectionObjectProps) =>\r\n useMutate('DELETE', `/ProtectionObject`, {\r\n ...props,\r\n });\r\n\r\nexport type GetUserProps = Omit, 'path'>;\r\n\r\nexport const GetUser = (props: GetUserProps) => (\r\n path={`/User`} {...props} />\r\n);\r\n\r\nexport type UseGetUserProps = Omit, 'path'>;\r\n\r\nexport const useGetUser = (props: UseGetUserProps) => useGet(`/User`, props);\r\n\r\nexport type RegisterUserProps = Omit<\r\n MutateProps,\r\n 'path' | 'verb'\r\n>;\r\n\r\nexport const RegisterUser = (props: RegisterUserProps) => (\r\n verb=\"POST\" path={`/User`} {...props} />\r\n);\r\n\r\nexport type UseRegisterUserProps = Omit<\r\n UseMutateProps,\r\n 'path' | 'verb'\r\n>;\r\n\r\nexport const useRegisterUser = (props: UseRegisterUserProps) =>\r\n useMutate('POST', `/User`, props);\r\n\r\nexport type UpdateUserProps = Omit<\r\n MutateProps,\r\n 'path' | 'verb'\r\n>;\r\n\r\nexport const UpdateUser = (props: UpdateUserProps) => (\r\n verb=\"PUT\" path={`/User`} {...props} />\r\n);\r\n\r\nexport type UseUpdateUserProps = Omit<\r\n UseMutateProps,\r\n 'path' | 'verb'\r\n>;\r\n\r\nexport const useUpdateUser = (props: UseUpdateUserProps) =>\r\n useMutate('PUT', `/User`, props);\r\n","import React from 'react';\r\nimport { useStyles } from './SideMenuFooter.styles';\r\nimport { Button } from '@material-ui/core';\r\nimport { ExitToAppRounded } from '@material-ui/icons';\r\nimport { useLogoutHook } from '../../../customHooks/UseLogoutHook';\r\n\r\nexport const SideMenuFooter = () => {\r\n const classes = useStyles();\r\n const { onLogout } = useLogoutHook();\r\n return (\r\n \r\n );\r\n};\r\n","import React from 'react';\r\nimport { Divider, List, ListItem, ListItemIcon, ListItemText } from '@material-ui/core';\r\nimport { Block, HomeRounded, InfoRounded } from '@material-ui/icons';\r\nimport { NavLink } from 'react-router-dom';\r\nimport { useStyles } from './SideMenu.styles';\r\nimport { SideMenuHeader } from './SideMenuHeader/SideMenuHeader';\r\nimport { SideMenuFooter } from './SideMenuFooter/SideMenuFooter';\r\n\r\ninterface ISidemenu {\r\n category: string;\r\n items: IItems[];\r\n}\r\n\r\ninterface IItems {\r\n icon: React.ReactNode;\r\n title: string;\r\n link: string;\r\n}\r\n\r\nconst sidemenuItems: ISidemenu[] = [\r\n {\r\n category: 'Välkommen',\r\n items: [\r\n {\r\n icon: ,\r\n title: 'Startsida',\r\n link: '/dashboard',\r\n },\r\n {\r\n icon: ,\r\n title: 'Information',\r\n link: '/about',\r\n },\r\n ],\r\n },\r\n {\r\n category: 'Mina tjänster',\r\n items: [\r\n {\r\n icon: ,\r\n title: 'Spärrtjänster',\r\n link: '/blockservice',\r\n },\r\n ],\r\n },\r\n];\r\n\r\ninterface ISidemenuProps {\r\n closeMenu?: () => void;\r\n}\r\n\r\nexport const Sidemenu = (props: ISidemenuProps) => {\r\n const classes = useStyles();\r\n\r\n return (\r\n <>\r\n \r\n \r\n
\r\n {sidemenuItems.map((x: ISidemenu) => (\r\n \r\n \r\n \r\n {x.items.map((item: IItems) => (\r\n \r\n \r\n {item.icon}\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n ))}\r\n
\r\n \r\n \r\n );\r\n};\r\n","import { makeStyles, Theme } from '@material-ui/core';\r\n\r\nexport const useStyles = makeStyles((theme: Theme) => ({\r\n initals: {\r\n backgroundColor: theme.palette.secondary.main,\r\n borderRadius: '50px',\r\n padding: '0.3rem',\r\n marginRight: '0.5rem',\r\n '& > *': {\r\n fontWeight: 700,\r\n fontSize: '0.8rem',\r\n },\r\n },\r\n}));\r\n","import React from 'react';\r\nimport { KeyboardArrowDownRounded } from '@material-ui/icons';\r\nimport { Typography, MenuList, MenuItem, Popper, Paper, Grow, ClickAwayListener, Button } from '@material-ui/core';\r\nimport { useStyles } from './UserMenu.styles';\r\nimport { Link } from 'react-router-dom';\r\nimport { useLogoutHook } from '../../../customHooks/UseLogoutHook';\r\n\r\ninterface IUserMenu {\r\n userName: string;\r\n}\r\n\r\nexport const UserMenu = (props: IUserMenu) => {\r\n const classes = useStyles();\r\n const [open, setOpen] = React.useState(false);\r\n const anchorRef = React.useRef(null);\r\n const getInitals = props.userName\r\n .split(' ')\r\n .map((n) => n[0])\r\n .join('.');\r\n\r\n const handleToggle = () => {\r\n setOpen((prevOpen) => !prevOpen);\r\n };\r\n\r\n const { onLogout } = useLogoutHook();\r\n\r\n const handleClose = (event: React.MouseEvent) => {\r\n if (anchorRef.current?.contains(event.target as HTMLElement)) {\r\n return;\r\n }\r\n\r\n setOpen(false);\r\n };\r\n\r\n function handleListKeyDown(event: React.KeyboardEvent) {\r\n if (event.key === 'Tab') {\r\n event.preventDefault();\r\n setOpen(false);\r\n }\r\n }\r\n\r\n // return focus to the button when we transitioned from !open -> open\r\n const prevOpen = React.useRef(open);\r\n React.useEffect(() => {\r\n if (prevOpen.current === true && open === false) {\r\n anchorRef.current!.focus();\r\n }\r\n\r\n prevOpen.current = open;\r\n }, [open]);\r\n\r\n const Initals = () => (\r\n
\r\n {getInitals}\r\n
\r\n );\r\n\r\n return (\r\n
\r\n }\r\n >\r\n \r\n {props.userName}\r\n \r\n \r\n {({ TransitionProps }) => (\r\n \r\n \r\n \r\n \r\n \r\n Inställningar\r\n \r\n Logga ut\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n
\r\n );\r\n};\r\n","import { makeStyles, Theme } from '@material-ui/core';\r\nimport { commonBorder } from '../../../style/theme';\r\n\r\nconst drawerWidth = '19rem';\r\n\r\nexport const useStyles = makeStyles((theme: Theme) => ({\r\n appBar: {\r\n [theme.breakpoints.up('md')]: {\r\n width: `calc(100% - ${drawerWidth})`,\r\n marginLeft: drawerWidth,\r\n },\r\n borderBottom: commonBorder,\r\n },\r\n menuButton: {\r\n [theme.breakpoints.up('md')]: {\r\n display: 'none',\r\n },\r\n },\r\n toolbar: {\r\n [theme.breakpoints.down('sm')]: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n },\r\n },\r\n}));\r\n","import { makeStyles, Theme } from '@material-ui/core/styles';\r\n\r\nexport const useStyles = makeStyles((theme: Theme) => ({\r\n list: {\r\n padding: 0,\r\n display: 'flex',\r\n alignItems: 'center',\r\n color: theme.palette.primary.main,\r\n [theme.breakpoints.down('sm')]: {\r\n margin: '0 0 0.5rem',\r\n },\r\n },\r\n listItem: {\r\n listStyle: 'none',\r\n display: 'flex',\r\n alignItems: 'center',\r\n },\r\n link: {\r\n textDecoration: 'none',\r\n color: theme.palette.primary.main,\r\n '& > span': {\r\n borderBottom: '1px solid transparent',\r\n '&:hover': {\r\n borderColor: theme.palette.primary.main,\r\n },\r\n },\r\n },\r\n divider: {\r\n margin: '0 0.25rem',\r\n },\r\n}));\r\n","import React from 'react';\r\nimport { NavLink } from 'react-router-dom';\r\nimport { Typography } from '@material-ui/core';\r\nimport { useStyles } from './Breadcrumbs.styles';\r\nimport useBreadcrumbNavigationContext from './breadcrumbsNavigationContext/BreadcrumbNavigationContext';\r\n\r\nexport const Breadcrumbs = () => {\r\n const {\r\n breadcrumbState: { breadcrumbNavigationItems },\r\n } = useBreadcrumbNavigationContext();\r\n const classes = useStyles();\r\n\r\n return breadcrumbNavigationItems.length > 0 ? (\r\n \r\n ) : (\r\n \r\n );\r\n};\r\n\r\nexport default Breadcrumbs;\r\n","import React, { useContext } from 'react';\r\nimport { AppBar, Grid, IconButton, useMediaQuery, useTheme } from '@material-ui/core';\r\nimport { Toolbar as MuiToolbar } from '@material-ui/core';\r\nimport MenuIcon from '@material-ui/icons/Menu';\r\nimport { UserMenu } from '../userMenu/UserMenu';\r\nimport { useStyles } from './Toolbar.styles';\r\nimport { Breadcrumbs } from '../../breadcrumbs/Breadcrumbs';\r\nimport { AppContext } from '../../../states/AppState';\r\n\r\ninterface IToolbar {\r\n openMenu: () => void;\r\n}\r\n\r\nexport const Toolbar = (props: IToolbar) => {\r\n const classes = useStyles();\r\n const theme = useTheme();\r\n const mobileView = useMediaQuery(theme.breakpoints.down('sm'));\r\n const { state } = useContext(AppContext);\r\n const { name } = state.userDetails;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!mobileView && }\r\n \r\n \r\n \r\n {mobileView && (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n","import { makeStyles, Theme } from '@material-ui/core';\r\n\r\nconst drawerWidth = '19rem';\r\n\r\nexport const useStyles = makeStyles((theme: Theme) => ({\r\n root: {\r\n display: 'flex',\r\n },\r\n drawer: {\r\n [theme.breakpoints.up('md')]: {\r\n width: drawerWidth,\r\n flexShrink: 0,\r\n },\r\n },\r\n appBar: {\r\n [theme.breakpoints.up('md')]: {\r\n width: `calc(100% - ${drawerWidth})`,\r\n marginLeft: drawerWidth,\r\n },\r\n },\r\n menuButton: {\r\n [theme.breakpoints.up('md')]: {\r\n display: 'none',\r\n },\r\n },\r\n // necessary for content to be below app bar\r\n toolbar: {\r\n ...theme.mixins.toolbar,\r\n minHeight: `calc(${theme.mixins.toolbar.minHeight}px + 1rem)`,\r\n },\r\n drawerPaper: {\r\n width: drawerWidth,\r\n backgroundColor: theme.palette.primary.dark,\r\n color: theme.palette.primary.light,\r\n },\r\n content: {\r\n flexGrow: 1,\r\n maxWidth: '100%',\r\n },\r\n}));\r\n","import { useContext, useEffect } from 'react';\r\nimport { useGetAllCardCategoryGroups, useGetUser } from '../Fetchers';\r\nimport { AppContext } from '../states/AppState';\r\n\r\ninterface IProps {\r\n lazy?: boolean;\r\n}\r\n\r\nexport const useGetUserDetails = (props: IProps) => {\r\n const { dispatch } = useContext(AppContext);\r\n const { data, loading, refetch } = useGetUser({ lazy: props.lazy });\r\n const { data: categoryGroupsResult } = useGetAllCardCategoryGroups({});\r\n\r\n useEffect(() => {\r\n if (data && !loading) {\r\n dispatch({ type: 'UPDATE_USER_DETAILS', payload: data?.userDetails });\r\n }\r\n }, [data, dispatch, loading]);\r\n\r\n useEffect(() => {\r\n if (categoryGroupsResult?.cardCategoryGroups) {\r\n dispatch({ type: 'UPDATE_CATEGORY_GROUPS', payload: categoryGroupsResult.cardCategoryGroups });\r\n }\r\n }, [categoryGroupsResult, dispatch]);\r\n\r\n return { refetch };\r\n};\r\n","import React from 'react';\r\nimport { useTheme } from '@material-ui/core/styles';\r\nimport { Drawer, CssBaseline, useMediaQuery } from '@material-ui/core';\r\nimport { Sidemenu } from '../sidemenu/Sidemenu';\r\nimport { Toolbar } from '../navigation/toolbar/Toolbar';\r\nimport { useStyles } from './Main.styles';\r\nimport { useGetUserDetails } from '../../customHooks/UseGetUserDetails';\r\n\r\nexport const Main: React.FC = (props) => {\r\n const theme = useTheme();\r\n const [mobileOpen, setMobileOpen] = React.useState(false);\r\n const classes = useStyles();\r\n const mobileView = useMediaQuery(theme.breakpoints.down('sm'));\r\n useGetUserDetails({});\r\n const handleDrawerToggle = () => {\r\n setMobileOpen(!mobileOpen);\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n {props.children}\r\n
\r\n
\r\n );\r\n};\r\n","import { makeStyles, Theme } from '@material-ui/core';\r\nimport { commonBorder } from '../../../style/theme';\r\n\r\nexport const useStyles = makeStyles((theme: Theme) => ({\r\n root: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n borderBottom: commonBorder,\r\n padding: '1rem',\r\n },\r\n title: {\r\n wordBreak: 'break-word',\r\n marginRight: '0.5rem',\r\n [theme.breakpoints.down('sm')]: {\r\n fontSize: theme.typography.body1.fontSize,\r\n },\r\n },\r\n button: {\r\n minWidth: 0,\r\n padding: '0.5rem',\r\n maxHeight: '2.25rem',\r\n },\r\n icon: {\r\n display: 'flex',\r\n marginRight: '0.5rem',\r\n color: theme.palette.primary.main,\r\n },\r\n}));\r\n","import React from 'react';\r\nimport { Typography, Button, Grid } from '@material-ui/core';\r\nimport { Link } from 'react-router-dom';\r\nimport { AddRounded } from '@material-ui/icons';\r\nimport { useStyles } from './CardHeader.styles';\r\n\r\nexport interface ICardHeader {\r\n icon?: React.ReactNode;\r\n title?: string;\r\n to?: string;\r\n spacesLeft?: string;\r\n disabled?: boolean;\r\n}\r\n\r\nexport const CardHeader = (props: ICardHeader) => {\r\n const classes = useStyles();\r\n return (\r\n
\r\n \r\n {props.icon &&
{props.icon}
}\r\n {props.title && (\r\n \r\n {props.title} {props.spacesLeft && `(${props.spacesLeft})`}\r\n \r\n )}\r\n
\r\n {props.to && (\r\n \r\n \r\n \r\n )}\r\n
\r\n );\r\n};\r\n","import { makeStyles, Theme } from '@material-ui/core';\r\nimport { commonBorder } from '../../style/theme';\r\n\r\nexport const useStyles = makeStyles((theme: Theme) => ({\r\n card: {\r\n backgroundColor: theme.palette.background.paper,\r\n borderRadius: theme.shape.borderRadius,\r\n border: commonBorder,\r\n height: '100%',\r\n },\r\n content: {\r\n padding: '1rem',\r\n },\r\n scroll: {\r\n height: '20rem',\r\n overflowY: 'auto',\r\n },\r\n}));\r\n","import React from 'react';\r\nimport { CardHeader, ICardHeader } from './cardHeader/CardHeader';\r\nimport { useStyles } from './Card.styles';\r\n\r\ninterface ICardProps {\r\n header?: ICardHeader;\r\n disableMaxHeight?: boolean;\r\n}\r\n\r\nexport const Card: React.FC = (props) => {\r\n const classes = useStyles();\r\n\r\n return (\r\n
\r\n {props.header && }\r\n
{props.children}
\r\n
\r\n );\r\n};\r\n","import { makeStyles, Theme } from '@material-ui/core';\r\nimport { actionInTable, commonBorder } from '../../../../style/theme';\r\n\r\nexport const useStyles = makeStyles((theme: Theme) => ({\r\n container: {\r\n backgroundColor: theme.palette.background.paper,\r\n borderRadius: theme.shape.borderRadius,\r\n overflowX: 'auto',\r\n border: commonBorder,\r\n },\r\n head: {\r\n borderBottom: commonBorder,\r\n },\r\n title: {\r\n padding: '0.75rem 0',\r\n fontWeight: 700,\r\n },\r\n action: {\r\n ...actionInTable,\r\n },\r\n number: {\r\n fontWeight: 300,\r\n },\r\n bold: {\r\n fontWeight: 700,\r\n },\r\n availableSpaces: {\r\n color: theme.palette.success.dark,\r\n },\r\n icon: {\r\n display: 'flex',\r\n marginRight: '1rem',\r\n color: theme.palette.primary.main,\r\n '& > svg': {\r\n fontSize: '2.5rem',\r\n },\r\n },\r\n iconButton: {\r\n minWidth: 0,\r\n padding: '0.5rem',\r\n maxHeight: '2.25rem',\r\n },\r\n}));\r\n","import React from 'react';\r\nimport Table from '@material-ui/core/Table';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport { AddRounded } from '@material-ui/icons';\r\nimport { Button, Grid, Tooltip, Typography, useMediaQuery } from '@material-ui/core';\r\nimport { Link, useRouteMatch } from 'react-router-dom';\r\nimport { useStyles } from './ServiceTables.styles';\r\nimport theme from '../../../../style/theme';\r\n\r\ninterface IServiceTableRows {\r\n icon: React.ReactNode;\r\n name: string;\r\n registered: number;\r\n spacesLeft?: number;\r\n link: string;\r\n}\r\n\r\n// const rows: IServiceTableRows[] = [\r\n// {\r\n// icon: Categories[0].icon,\r\n// name: Categories[0].title,\r\n// registered: 2,\r\n// spacesLeft: 0,\r\n// link: `${Categories[0].id}`,\r\n// },\r\n// {\r\n// icon: Categories[1].icon,\r\n// name: Categories[1].title,\r\n// registered: 5,\r\n// spacesLeft: 0,\r\n// link: `${Categories[1].id}`,\r\n// },\r\n// {\r\n// icon: Categories[2].icon,\r\n// name: Categories[2].title,\r\n// registered: 5,\r\n// spacesLeft: 1,\r\n// link: `${Categories[2].id}`,\r\n// },\r\n// {\r\n// icon: Categories[3].icon,\r\n// name: Categories[3].title,\r\n// registered: 5,\r\n// link: `${Categories[3].id}`,\r\n// },\r\n// {\r\n// icon: Categories[4].icon,\r\n// name: Categories[4].title,\r\n// registered: 5,\r\n// link: `${Categories[4].id}`,\r\n// },\r\n// {\r\n// icon: Categories[5].icon,\r\n// name: Categories[5].title,\r\n// registered: 5,\r\n// spacesLeft: 0,\r\n// link: `${Categories[5].id}`,\r\n// },\r\n// ];\r\n\r\nexport interface ServiceTableProps {\r\n rows: IServiceTableRows[];\r\n}\r\n\r\nexport const ServiceTable = (props: ServiceTableProps) => {\r\n const { rows } = props;\r\n const classes = useStyles();\r\n const mobileView = useMediaQuery(theme.breakpoints.down('sm'));\r\n const { path } = useRouteMatch();\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n Tjänster\r\n \r\n \r\n Registrerade\r\n Kvar att registrera\r\n \r\n Knappar\r\n \r\n \r\n \r\n \r\n {rows.map((row: IServiceTableRows) => (\r\n \r\n \r\n \r\n \r\n {!mobileView &&
{row.icon}
}\r\n {row.name}\r\n
\r\n
\r\n
\r\n \r\n 0 ? classes.availableSpaces : ''}`}\r\n variant={!mobileView ? 'h3' : 'body1'}\r\n component=\"span\"\r\n >\r\n {row.registered}\r\n \r\n \r\n \r\n \r\n {row.spacesLeft || row.spacesLeft === 0 ? row.spacesLeft : 'Obegränsat'}\r\n \r\n \r\n\r\n \r\n {!mobileView ? (\r\n }\r\n component={Link}\r\n to={`${path}/registrer/${row.link}`}\r\n color=\"primary\"\r\n variant=\"contained\"\r\n >\r\n Registera\r\n \r\n ) : (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n
\r\n ))}\r\n
\r\n
\r\n
\r\n );\r\n};\r\n","import { makeStyles, Theme } from '@material-ui/core';\r\nimport { actionInTable } from '../../../../style/theme';\r\n\r\nexport const useStyles = makeStyles((theme: Theme) => ({\r\n table: {\r\n margin: '0 -1rem',\r\n width: 'calc(100% + 1rem)',\r\n '& td': {\r\n paddingTop: '0',\r\n paddingBottom: '0',\r\n [theme.breakpoints.down('sm')]: {\r\n paddingBottom: '0.5rem',\r\n },\r\n },\r\n },\r\n service: {\r\n '& > *': {\r\n marginRight: '0.5rem',\r\n },\r\n },\r\n action: {\r\n paddingRight: 0,\r\n ...actionInTable,\r\n },\r\n}));\r\n","import { makeStyles, Theme } from '@material-ui/core';\r\n\r\nexport const useStyles = makeStyles((theme: Theme) => ({\r\n title: {\r\n fontWeight: 700,\r\n },\r\n action: {\r\n marginTop: '0.5rem',\r\n },\r\n confirm: {\r\n backgroundColor: theme.palette.error.main,\r\n '&:hover': {\r\n backgroundColor: theme.palette.error.dark,\r\n },\r\n },\r\n remove: {\r\n padding: '0.5rem',\r\n minWidth: 0,\r\n color: theme.palette.error.main,\r\n },\r\n}));\r\n","import React, { useState } from 'react';\r\nimport Button from '@material-ui/core/Button';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport { useStyles } from './ConfirmRemoveDialog.styles';\r\nimport { Typography } from '@material-ui/core';\r\nimport { DeleteOutlineRounded } from '@material-ui/icons';\r\n\r\nexport interface ConfirmationDialogRawProps {\r\n name: string;\r\n confirmRemove: () => void;\r\n}\r\n\r\nexport const ConfirmRemoveDialog = (props: ConfirmationDialogRawProps) => {\r\n const classes = useStyles();\r\n\r\n function confirmRemoveRow() {\r\n setOpen(false);\r\n props.confirmRemove();\r\n }\r\n\r\n const [open, setOpen] = useState(false);\r\n\r\n const labelledby = props.name.replace(/ /g, '');\r\n\r\n return (\r\n <>\r\n \r\n setOpen(false)}\r\n onBackdropClick={() => setOpen(false)}\r\n aria-labelledby={labelledby}\r\n open={open}\r\n >\r\n \r\n \r\n Ta bort\r\n \r\n \r\n Är du säker på att du vill ta bort {props.name}?\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n","import React from 'react';\r\nimport { Grid, TableRow, TableHead, TableCell, TableBody, Table, TableContainer } from '@material-ui/core';\r\nimport { useStyles } from './RegisteredItemsTable.styles';\r\nimport { ConfirmRemoveDialog } from '../../../../components/confirmRemoveDialog/ConfirmRemoveDialog';\r\nimport { ProtectionObjectViewModel, useDeleteProtectionObject } from '../../../../Fetchers';\r\n\r\ninterface IRegisteredItemsTable {\r\n items: ProtectionObjectViewModel[];\r\n refetchObjects: () => void;\r\n}\r\n\r\nexport const RegisteredItemsTable = (props: IRegisteredItemsTable) => {\r\n const classes = useStyles();\r\n const { mutate: DeleteProtectionObject } = useDeleteProtectionObject({});\r\n const onDelete = async (objectId: number) => {\r\n await DeleteProtectionObject({ objectId });\r\n props.refetchObjects();\r\n };\r\n return (\r\n \r\n \r\n \r\n \r\n Typ\r\n Utfärdare\r\n Nummer\r\n Extra information\r\n Ägare\r\n \r\n Knappar\r\n \r\n \r\n \r\n \r\n {props.items.map((protectionObject: ProtectionObjectViewModel) => (\r\n \r\n \r\n \r\n {protectionObject.cardTypeName}\r\n \r\n \r\n {protectionObject.issuerName}\r\n {protectionObject.cardNumber}\r\n {protectionObject.additionalInformation}\r\n {protectionObject.ownerName}\r\n \r\n onDelete(protectionObject.objectId || 0)}\r\n name={protectionObject.cardTypeName || ''}\r\n />\r\n \r\n \r\n ))}\r\n \r\n
\r\n
\r\n );\r\n};\r\n","import React from 'react';\r\nimport { SvgIcon, SvgIconProps } from '@material-ui/core';\r\n\r\nexport const Phone = (props: SvgIconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n","import React from 'react';\r\nimport { SvgIcon, SvgIconProps } from '@material-ui/core';\r\n\r\nexport const CreditCard = (props: SvgIconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n","import React from 'react';\r\nimport { SvgIcon, SvgIconProps } from '@material-ui/core';\r\n\r\nexport const IDCard = (props: SvgIconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n","import React from 'react';\r\nimport { SvgIcon, SvgIconProps } from '@material-ui/core';\r\n\r\nexport const Tag = (props: SvgIconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n","import React from 'react';\r\nimport { SvgIcon, SvgIconProps } from '@material-ui/core';\r\n\r\nexport const Calculator = (props: SvgIconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n","import React, { useContext } from 'react';\r\nimport { Grid, Link, Typography } from '@material-ui/core';\r\nimport { PageHeader } from '../../../components/pageHeader/PageHeader';\r\nimport { PageSection } from '../../../components/pageSection/PageSection';\r\nimport { BlockRounded } from '@material-ui/icons';\r\nimport { Card } from '../../../components/card/Card';\r\nimport { ServiceTable } from '../components/serviceTable/ServiceTable';\r\nimport { RegisteredItemsTable } from '../components/registeredItemsTable/RegisteredItemsTable';\r\n\r\nimport { useGetAllProtectionObjects } from '../../../Fetchers';\r\nimport { getIconByCategoryGroupId } from '../../../helpers/CardCategoryGroup';\r\nimport { AppContext } from '../../../states/AppState';\r\n\r\nexport const BlockservicePage = () => {\r\n const { data, refetch } = useGetAllProtectionObjects({});\r\n const { state } = useContext(AppContext);\r\n // if (loading || !data || !data.groupResult) return null;\r\n\r\n return (\r\n <>\r\n }>\r\n \r\n Här registrerar du dina mobiler, mobila bredband, konto- och id-kort sam banksäkerhetsdosor.\r\n \r\n Det kan ta upp till två arbetsdagar innan uppgifterna registreras som spärrbara.\r\n \r\n Saknar du utställare/värdehandling i listorna du önskar registrera ber vi er vänligen att mejla in till oss på{' '}\r\n info@keycode.se.\r\n \r\n \r\n \r\n \r\n \r\n {\r\n const matchingGroupResult = data?.groupResult?.find((x) => x.groupId === categoryGroup.id);\r\n return {\r\n icon: getIconByCategoryGroupId(categoryGroup.id || 0),\r\n name: categoryGroup.name || '',\r\n spacesLeft: categoryGroup.maxCount\r\n ? categoryGroup.maxCount - (matchingGroupResult?.cards?.length || 0)\r\n : undefined,\r\n registered: matchingGroupResult?.cards?.length || 0,\r\n link: `${categoryGroup.id}`,\r\n };\r\n })}\r\n />\r\n \r\n {state.categoryGroups.map((categoryGroup) => {\r\n const matchingGroupResult = data?.groupResult?.find((x) => x.groupId === categoryGroup.id);\r\n const spacesLeft = matchingGroupResult?.cards?.length || 0;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n \r\n \r\n );\r\n};\r\n","import { makeStyles, Theme } from '@material-ui/core';\r\n\r\nexport const useStyles = makeStyles((theme: Theme) => ({\r\n label: {\r\n fontSize: theme.typography.h3.fontSize,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n flexDirection: 'column',\r\n marginRight: '2rem',\r\n fontWeight: 700,\r\n [theme.breakpoints.down('sm')]: {\r\n marginRight: 0,\r\n },\r\n },\r\n helperText: {\r\n fontSize: '1rem',\r\n },\r\n}));\r\n","import React from 'react';\r\nimport { Typography } from '@material-ui/core';\r\nimport { useStyles } from './Label.styles';\r\n\r\ninterface ILabelProps {\r\n label: string;\r\n helperText?: string;\r\n component?: 'label' | 'span' | 'legend';\r\n}\r\n\r\nexport const Label = (props: ILabelProps) => {\r\n const classes = useStyles();\r\n const labelWithoutSpaces = props.label?.replace(/ /g, '');\r\n\r\n return (\r\n <>\r\n \r\n {props.label}\r\n {props.helperText && {props.helperText}}\r\n \r\n \r\n );\r\n};\r\n","import { makeStyles, Theme } from '@material-ui/core';\r\nimport { StylesConfig } from 'react-select';\r\nimport theme from '../../style/theme';\r\n\r\nexport const useStyles = makeStyles((theme: Theme) => ({\r\n root: {\r\n display: 'flex',\r\n [theme.breakpoints.down('sm')]: {\r\n flexDirection: 'column',\r\n },\r\n },\r\n}));\r\n\r\nexport const styles = {\r\n control: (base, state: any) => {\r\n const borderColor = state.isFocused ? theme.palette.primary.main : theme.palette.grey[700];\r\n const isDisabled = state.isDisabled ? 0.5 : 1;\r\n return {\r\n border: `1px solid ${borderColor}`,\r\n color: theme.palette.grey[900],\r\n borderRadius: theme.shape.borderRadius,\r\n display: 'inline-flex',\r\n cursor: 'text',\r\n fontSize: '1rem',\r\n alignItems: 'center',\r\n minWidth: theme.breakpoints.up('sm') ? '20rem' : 'none',\r\n width: theme.breakpoints.down('xs') ? '100%' : 'auto',\r\n padding: '0.75rem 0.5rem 0.75rem 0',\r\n background: theme.palette.common.white,\r\n opacity: isDisabled,\r\n boxSizing: 'border-box',\r\n zIndex: 2,\r\n };\r\n },\r\n\r\n input: () =>\r\n ({\r\n font: 'inherit',\r\n color: 'currentColor',\r\n margin: 0,\r\n display: 'block',\r\n minWidth: '0',\r\n fontSize: '1rem',\r\n boxSizing: 'content-box',\r\n paddingLeft: '0.5rem',\r\n paddingRight: '0.5rem',\r\n backgroundColor: theme.palette.common.white,\r\n webkitTapHighlightColor: 'transparent',\r\n } as React.CSSProperties),\r\n container: () => ({\r\n position: 'relative',\r\n flexGrow: 1,\r\n }),\r\n valueContainer: () => ({\r\n alignItems: 'center',\r\n display: 'flex',\r\n flex: 1,\r\n flexWrap: 'wrap',\r\n webkitOverflowScrolling: 'touch',\r\n position: 'relative',\r\n overflow: 'hidden',\r\n boxSizing: 'border-box',\r\n }),\r\n dropdownIndicator: () => ({\r\n cursor: 'pointer',\r\n color: theme.palette.grey[600],\r\n display: 'flex',\r\n alignItems: 'center',\r\n '& > svg': {\r\n height: '1rem',\r\n },\r\n }),\r\n indicatorSeparator: () => ({}),\r\n placeholder: () => ({\r\n position: 'absolute',\r\n paddingLeft: '0.5rem',\r\n paddingRight: '0.5rem',\r\n fontSize: '1rem',\r\n color: theme.palette.grey[600],\r\n overflow: 'hidden',\r\n whiteSpace: 'nowrap',\r\n textOverflow: 'ellipsis',\r\n height: '100%',\r\n alignSelf: 'normal',\r\n '@media all and (-ms-high-contrast: none), (-ms-high-contrast: active)': {\r\n top: '20%',\r\n },\r\n }),\r\n singleValue: () => ({\r\n position: 'absolute',\r\n paddingLeft: '0.5rem',\r\n paddingRight: '0.5rem',\r\n fontSize: '1rem',\r\n overflow: 'hidden',\r\n whiteSpace: 'nowrap',\r\n textOverflow: 'ellipsis',\r\n height: '100%',\r\n alignSelf: 'normal',\r\n '@media all and (-ms-high-contrast: none), (-ms-high-contrast: active)': {\r\n top: '20%',\r\n },\r\n }),\r\n menu: () => {\r\n return {\r\n backgroundColor: '#fff',\r\n width: '100%',\r\n position: 'absolute',\r\n border: `1px solid ${theme.palette.grey[300]}`,\r\n borderRadius: `0 0 ${theme.shape.borderRadius} ${theme.shape.borderRadius}`,\r\n zIndex: 10,\r\n boxShadow: `0px 2px 5px 0px ${theme.palette.grey[300]}`,\r\n };\r\n },\r\n multiValueLabel: () => ({\r\n webkitAlignItems: 'center',\r\n webkitBoxAlign: 'center',\r\n msFlexAlign: 'center',\r\n alignItems: 'center',\r\n display: 'flex',\r\n webkitFlexWrap: 'wrap',\r\n msFlexWap: 'wrap',\r\n flexWrap: 'wrap',\r\n padding: '0.25rem 0 0.25rem 0.4rem',\r\n webkitOverflowScrolling: 'touch',\r\n position: 'relative',\r\n overflow: 'hidden',\r\n }),\r\n multiValue: () => ({\r\n backgroundColor: theme.palette.grey[200],\r\n borderRadius: '1rem',\r\n display: 'flex',\r\n margin: '0.25rem 0 0.25rem 0.5rem',\r\n minWidth: 0,\r\n }),\r\n option: (state: any) => ({\r\n paddingLeft: '1rem',\r\n paddingRight: '1rem',\r\n paddingTop: '0.5rem',\r\n paddingBottom: '0.5rem',\r\n fontSize: '1rem',\r\n backgroundColor: state.isFocused ? theme.palette.grey[200] : theme.palette.common.white,\r\n '&:hover': {\r\n cursor: 'pointer',\r\n backgroundColor: theme.palette.grey[200],\r\n },\r\n }),\r\n clearIndicator: () => ({\r\n cursor: 'pointer',\r\n marginRight: '0.5rem',\r\n display: 'flex',\r\n alignItems: 'center',\r\n color: theme.palette.grey[600],\r\n backgroundColor: theme.palette.grey[100],\r\n borderRadius: '50%',\r\n '& > svg': {\r\n height: '1.2rem',\r\n width: '1.2rem',\r\n },\r\n }),\r\n loadingIndicator: () => ({\r\n display: 'flex',\r\n padding: '0.25rem',\r\n transition: 'color 150ms ease 0s',\r\n alignSelf: 'center',\r\n fontSize: '4px',\r\n lineHeight: 1,\r\n marginRight: '4px',\r\n textAlign: 'center',\r\n verticalAlign: 'middle',\r\n boxSizing: 'border-box',\r\n }),\r\n multiValueRemove: () => ({\r\n alignItems: 'center',\r\n display: 'flex',\r\n paddingLeft: '0.4rem',\r\n paddingRight: '0.4rem',\r\n boxSizing: 'border-box',\r\n '&:hover': {\r\n cursor: 'pointer',\r\n color: theme.palette.error.main,\r\n },\r\n }),\r\n} as StylesConfig;\r\n","import React from 'react';\r\nimport ReactSelect, { Props } from 'react-select';\r\nimport AsyncSelect, { Props as AsyncProps } from 'react-select/async';\r\nimport { Label } from '../label/Label';\r\nimport { styles, useStyles } from './Select.styles';\r\n\r\nexport interface ISelectOption {\r\n value: string;\r\n label: string;\r\n}\r\n\r\ninterface ISelectProps {\r\n selectProps?: Props | AsyncProps;\r\n autoComplete?: boolean;\r\n label: string;\r\n helperText?: string;\r\n placeholder?: string;\r\n}\r\n\r\nfunction Select(props: ISelectProps) {\r\n const labelWithoutSpaces = props.label?.replace(/ /g, '');\r\n const classes = useStyles();\r\n\r\n return (\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default Select;\r\n","export enum ValidationEnum {\r\n NoValidation = 0,\r\n LastValidDate = 1,\r\n FourDigits = 2,\r\n SwedishCellphoneNumber = 4,\r\n ImeiNumber = 8,\r\n EightDigits = 16,\r\n OnlyDigits = 32,\r\n IdentificationOrOrganizationNumber = 64,\r\n}\r\n","import { makeStyles, Theme } from '@material-ui/core';\r\n\r\nexport const useStyles = makeStyles((theme: Theme) => ({\r\n root: {\r\n [theme.breakpoints.down('sm')]: {\r\n flexDirection: 'column',\r\n alignItems: 'flex-start',\r\n },\r\n },\r\n radioGroup: {\r\n [theme.breakpoints.up('sm')]: {\r\n minWidth: '20rem',\r\n },\r\n },\r\n}));\r\n","import React from 'react';\r\nimport { FormControl, Grid, RadioGroup as MuiRadioGroup } from '@material-ui/core';\r\nimport { Label } from '../label/Label';\r\nimport { useStyles } from './RadioGroup.styles';\r\n\r\ninterface IRadioGroupProps {\r\n label: string;\r\n value: string;\r\n onChange: (data: string) => void;\r\n}\r\n\r\nexport const RadioGroup: React.FC = (props) => {\r\n const classes = useStyles();\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n","import { makeStyles, Theme } from '@material-ui/core';\r\n\r\nexport const useStyles = makeStyles((theme: Theme) => ({\r\n root: {\r\n justifyContent: 'flex-end',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'flex-start',\r\n [theme.breakpoints.up('sm')]: {\r\n alignItems: 'flex-end',\r\n },\r\n [theme.breakpoints.down('xs')]: {\r\n width: '100%',\r\n },\r\n '& > *': {\r\n [theme.breakpoints.down('xs')]: {\r\n width: '100%',\r\n },\r\n '&:not(fieldset)': {\r\n marginBottom: '1.5rem',\r\n },\r\n marginBottom: '0.5rem',\r\n },\r\n\r\n [theme.breakpoints.up('md')]: {\r\n '& > *': {\r\n marginBottom: '1.5rem',\r\n },\r\n },\r\n '& button': {\r\n marginLeft: '1rem',\r\n },\r\n },\r\n}));\r\n","import React from 'react';\r\nimport { useStyles } from './Form.styles';\r\n\r\nexport const Form = (props: React.DetailedHTMLProps, HTMLFormElement>) => {\r\n const classes = useStyles();\r\n const { children, ...rest } = props;\r\n\r\n return (\r\n
\r\n {children}\r\n
\r\n );\r\n};\r\n","import { makeStyles, Theme } from '@material-ui/core';\r\n\r\nexport const useStyles = makeStyles((theme: Theme) => ({\r\n root: {\r\n display: 'flex',\r\n [theme.breakpoints.down('sm')]: {\r\n flexDirection: 'column',\r\n },\r\n },\r\n}));\r\n","import { KeyboardDatePicker } from '@material-ui/pickers';\r\nimport { ParsableDate } from '@material-ui/pickers/constants/prop-types';\r\nimport { MaterialUiPickersDate } from '@material-ui/pickers/typings/date';\r\nimport React from 'react';\r\nimport { Label } from '../label/Label';\r\nimport { useStyles } from './Datepicker.styles';\r\n\r\nexport interface ISelectOption {\r\n value: string;\r\n label: string;\r\n}\r\n\r\ninterface IDatePickerProps {\r\n value?: ParsableDate;\r\n label: string;\r\n helperText?: string;\r\n onChange: (date: MaterialUiPickersDate) => void;\r\n}\r\n\r\nexport const DatePicker = (props: IDatePickerProps) => {\r\n const classes = useStyles();\r\n\r\n return (\r\n
\r\n
\r\n );\r\n};\r\n","import { makeStyles, Theme } from '@material-ui/core';\r\nimport { CSSProperties } from '@material-ui/core/styles/withStyles';\r\nimport theme from '../../style/theme';\r\n\r\nexport const errorMessage = {\r\n minWidth: '100%',\r\n fontSize: theme.typography.h4.fontSize,\r\n color: theme.palette.error.main,\r\n marginTop: '-0.75rem',\r\n [theme.breakpoints.up('sm')]: {\r\n minWidth: '20rem',\r\n },\r\n} as CSSProperties;\r\n\r\nexport const useStyles = makeStyles((theme: Theme) => ({\r\n root: {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n [theme.breakpoints.down('sm')]: {\r\n width: '100%',\r\n flexDirection: 'column',\r\n alignItems: 'flex-start',\r\n },\r\n },\r\n input: {\r\n border: '1px solid',\r\n borderColor: theme.palette.grey[700],\r\n borderRadius: theme.shape.borderRadius,\r\n paddingLeft: '0.5rem',\r\n paddingRight: '0.5rem',\r\n '&:focus-within': {\r\n borderColor: theme.palette.primary.main,\r\n },\r\n },\r\n content: {\r\n paddingTop: '0.5rem',\r\n paddingBottom: '0.5rem',\r\n minWidth: '100%',\r\n fontSize: theme.typography.h3.fontSize,\r\n [theme.breakpoints.up('sm')]: {\r\n minWidth: '20rem',\r\n },\r\n },\r\n error: {\r\n ...errorMessage,\r\n },\r\n}));\r\n","import React from 'react';\r\nimport { FormControl, InputBase, InputProps, Typography } from '@material-ui/core';\r\nimport { Label } from '../label/Label';\r\nimport { useStyles } from './Input.styles';\r\nimport { FieldError, ValidationRules } from 'react-hook-form';\r\n\r\nexport interface IInputProps extends InputProps {\r\n label: string;\r\n helperText?: string;\r\n viewOnlyValue?: string;\r\n register?: any;\r\n registerRules?: ValidationRules;\r\n customError?: FieldError | undefined;\r\n}\r\n\r\nexport const Input = (props: IInputProps) => {\r\n const classes = useStyles();\r\n const labelWithoutSpaces = props.label?.replace(/ /g, '');\r\n const { helperText, label, value, viewOnlyValue, register, registerRules, customError, ...rest } = props;\r\n\r\n return (\r\n <>\r\n \r\n \r\n {customError && {customError.message}}\r\n \r\n );\r\n};\r\n","import React from 'react';\r\nimport { Control, Controller, FieldErrors } from 'react-hook-form';\r\nimport { DatePicker } from '../../../../components/datepicker/DatePicker';\r\nimport { Input } from '../../../../components/input/Input';\r\nimport { ValidationEnum } from '../../../../helpers/ValidationEnum';\r\n\r\nexport interface IValidationComponent {\r\n validation?: ValidationEnum;\r\n register: any;\r\n errors: FieldErrors>;\r\n control: Control>;\r\n}\r\n\r\nexport const ValidationComponent = (props: IValidationComponent) => {\r\n switch (props.validation) {\r\n case ValidationEnum.LastValidDate:\r\n return (\r\n (\r\n \r\n )}\r\n />\r\n );\r\n case ValidationEnum.FourDigits:\r\n return (\r\n \r\n );\r\n case ValidationEnum.SwedishCellphoneNumber:\r\n return (\r\n \r\n );\r\n case ValidationEnum.ImeiNumber:\r\n return (\r\n <>\r\n \r\n \r\n \r\n );\r\n case ValidationEnum.EightDigits:\r\n return (\r\n \r\n );\r\n case ValidationEnum.OnlyDigits:\r\n return (\r\n \r\n );\r\n case ValidationEnum.IdentificationOrOrganizationNumber:\r\n return (\r\n \r\n );\r\n case ValidationEnum.NoValidation:\r\n default:\r\n return null;\r\n }\r\n};\r\n","import React, { useCallback, useContext, useEffect, useState } from 'react';\r\nimport { Button, Grid, Typography, FormControlLabel, Radio } from '@material-ui/core';\r\nimport { PageHeader } from '../../../../components/pageHeader/PageHeader';\r\nimport { PageSection } from '../../../../components/pageSection/PageSection';\r\nimport { Card } from '../../../../components/card/Card';\r\nimport { RegisteredItemsTable } from '../../components/registeredItemsTable/RegisteredItemsTable';\r\nimport { useHistory, useParams } from 'react-router-dom';\r\nimport Select, { ISelectOption } from '../../../../components/select/Select';\r\nimport { RadioGroup } from '../../../../components/radioGroup/RadioGroup';\r\nimport { Form } from '../../../../components/form/Form';\r\nimport {\r\n useGetAllCardTypesByCategoryGroupAndIssuer,\r\n useGetAllIssuersByCategoryGroup,\r\n useGetAllProtectionObjectsByCategoryGroup,\r\n useGetCard,\r\n useCreateProtectionObject,\r\n GetCardResult,\r\n} from '../../../../Fetchers';\r\nimport { AppContext } from '../../../../states/AppState';\r\nimport { getIconByCategoryGroupId, getIngressByCategoryGroupId } from '../../../../helpers/CardCategoryGroup';\r\nimport { ValidationComponent } from './ValidationComponent';\r\nimport { useForm } from 'react-hook-form';\r\nimport dayjs from 'dayjs';\r\nimport { Input } from '../../../../components/input/Input';\r\n\r\nexport const RegisterItemPage = () => {\r\n const { id: idString } = useParams<{ id: string }>();\r\n const id = Number.parseInt(idString);\r\n const { state } = useContext(AppContext);\r\n const history = useHistory();\r\n const { handleSubmit, register, errors, control, clearErrors, reset } = useForm();\r\n\r\n const { data: protectionObjects, refetch: refetchProtectionObjects } = useGetAllProtectionObjectsByCategoryGroup({\r\n groupId: id,\r\n });\r\n const { data: issuers } = useGetAllIssuersByCategoryGroup({ groupId: id });\r\n const [selectedIssuer, setSelectedIssuer] = useState(null);\r\n const [selectedCardType, setSelectedCardType] = useState(null);\r\n const [otherOwner, setOtherOwner] = useState<'no' | 'yes'>('no');\r\n const [card, setCard] = useState(null);\r\n\r\n const { data: cardTypes, refetch: getCardTypes } = useGetAllCardTypesByCategoryGroupAndIssuer({\r\n lazy: true,\r\n groupId: 0,\r\n issuerId: 0,\r\n });\r\n\r\n const { data: cardData, refetch: getCard } = useGetCard({\r\n lazy: true,\r\n cardTypeId: 0,\r\n issuerId: 0,\r\n });\r\n\r\n useEffect(() => {\r\n setCard(cardData);\r\n }, [cardData]);\r\n\r\n const { mutate: createProtectionObject } = useCreateProtectionObject({});\r\n\r\n const onSubmit = async (submittedData: any) => {\r\n if (!card?.cardResult?.id) {\r\n return;\r\n }\r\n try {\r\n let cardNumber = submittedData.cardNumber;\r\n if (submittedData.lastValidDate) {\r\n cardNumber = dayjs(submittedData.lastValidDate).format('YYYY-MM-DD');\r\n }\r\n await createProtectionObject({\r\n cardId: card.cardResult.id,\r\n cardNumber: cardNumber,\r\n additionalInformation: submittedData.additionalInformation,\r\n groupId: id,\r\n otherOwnerIdentification: submittedData.otherOwnerIdentification,\r\n otherOwnerName: submittedData.otherOwnerName,\r\n });\r\n await refetchProtectionObjects({ pathParams: { groupId: id } });\r\n setSelectedIssuer(null);\r\n setSelectedCardType(null);\r\n setOtherOwner('no');\r\n setCard(null);\r\n reset();\r\n } catch (error) {}\r\n };\r\n const onIssuerChange = useCallback(\r\n (option) => {\r\n getCardTypes({ pathParams: { groupId: id, issuerId: Number.parseInt(option.value) } });\r\n setSelectedCardType(null);\r\n setSelectedIssuer(option);\r\n },\r\n [getCardTypes, id],\r\n );\r\n\r\n const onCardTypeChange = useCallback(\r\n (option) => {\r\n if (!selectedIssuer) {\r\n return;\r\n }\r\n getCard({\r\n pathParams: { cardTypeId: Number.parseInt(option.value), issuerId: Number.parseInt(selectedIssuer.value) },\r\n });\r\n setSelectedCardType(option);\r\n },\r\n [getCard, selectedIssuer],\r\n );\r\n\r\n const categoryGroup = state.categoryGroups.find((group) => group.id === id);\r\n if (!categoryGroup) {\r\n return null;\r\n }\r\n const ingress = getIngressByCategoryGroupId(id);\r\n\r\n const isMax = Boolean(\r\n categoryGroup.maxCount && categoryGroup.maxCount <= (protectionObjects?.groupResult?.[0]?.cards?.length || 0),\r\n );\r\n\r\n const getSpacesLeft = () => {\r\n const length = protectionObjects?.groupResult?.[0]?.cards?.length ?? 0;\r\n if (categoryGroup.maxCount) {\r\n return `${length} / ${categoryGroup.maxCount}`;\r\n } else {\r\n return `${length}`;\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n \r\n {ingress.MainIngress}\r\n {ingress.SubIngress}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n ({ value: x.id?.toString() || '', label: x.name || '' })) || [],\r\n }}\r\n label=\"Utställare\"\r\n >\r\n \r\n ({\r\n value: x.id?.toString() || '',\r\n label: x.name || '',\r\n }))) ||\r\n [],\r\n }}\r\n >\r\n \r\n {\r\n clearErrors();\r\n setOtherOwner(value as 'yes' | 'no');\r\n }}\r\n >\r\n } label=\"Nej\" />\r\n } label=\"Ja\" />\r\n \r\n {otherOwner === 'yes' && (\r\n <>\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n {isMax && (\r\n \r\n Max antal kort registrerade\r\n \r\n )}\r\n {card && (\r\n {card.cardResult?.canBeCancelled ? 'Spärrbar' : 'Ej Spärrbar'}\r\n )}\r\n \r\n
\r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n );\r\n};\r\n","import React from 'react';\r\nimport { Switch } from 'react-router-dom';\r\nimport { PrivateRoute } from '../../components/routes/PrivateRoute';\r\nimport { BlockservicePage } from './subpages/BlockservicePage';\r\nimport { RegisterItemPage } from './subpages/registerItemPage/RegisterItemPage';\r\n\r\nexport function BlockserviceRoute() {\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import React, { useContext, useEffect, useState } from 'react';\r\nimport { Button, Grid, Typography } from '@material-ui/core';\r\nimport { Card } from '../../components/card/Card';\r\nimport { PageSection } from '../../components/pageSection/PageSection';\r\nimport { PageHeader } from '../../components/pageHeader/PageHeader';\r\nimport { Input } from '../../components/input/Input';\r\nimport { SettingsRounded } from '@material-ui/icons';\r\nimport { Form } from '../../components/form/Form';\r\nimport { AppContext } from '../../states/AppState';\r\nimport { useForm } from 'react-hook-form';\r\nimport { useUpdateUser } from '../../Fetchers';\r\nimport { useGetUserDetails } from '../../customHooks/UseGetUserDetails';\r\n\r\nexport const SettingsPage = () => {\r\n const { state } = useContext(AppContext);\r\n const { register, handleSubmit, errors, setValue, setError } = useForm();\r\n const { refetch: refetchUserDetails } = useGetUserDetails({ lazy: true });\r\n const { mutate: UpdateUser } = useUpdateUser({});\r\n const [showSuccess, setShowSuccess] = useState(false);\r\n\r\n useEffect(() => {\r\n setValue('Email', state.userDetails.email);\r\n setValue('Name', state.userDetails.name);\r\n setValue('PhoneNumber', state.userDetails.phoneNumber);\r\n }, [state.userDetails, setValue]);\r\n\r\n const onSubmit = handleSubmit(async (data: any) => {\r\n if (data.Password !== data.Verifypassword) {\r\n setError('Verifypassword', { message: 'Lösenordet måste matcha' });\r\n return;\r\n }\r\n try {\r\n await UpdateUser(data);\r\n refetchUserDetails();\r\n setShowSuccess(true);\r\n } catch (error) {\r\n if (error.data.type === 'validation') {\r\n error.data.errors.forEach((er: any) => {\r\n setError(er.name, { message: er.error });\r\n });\r\n } else {\r\n setError('Verifypassword', { message: 'Tekniskt fel' });\r\n }\r\n }\r\n });\r\n\r\n return (\r\n <>\r\n }>\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n {showSuccess && Sparat!}\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n );\r\n};\r\n","export default __webpack_public_path__ + \"static/media/logo_black.a8b3c743.svg\";","import { makeStyles, Theme } from '@material-ui/core';\r\nimport { errorMessage } from '../../components/input/Input.styles';\r\n\r\nexport const useStyles = makeStyles((theme: Theme) => ({\r\n root: {\r\n backgroundColor: theme.palette.grey[600],\r\n padding: '2rem',\r\n [theme.breakpoints.up('sm')]: {\r\n marginTop: '1rem',\r\n marginBottom: '1rem',\r\n },\r\n [theme.breakpoints.down('xs')]: {\r\n height: '100vh',\r\n },\r\n },\r\n container: {\r\n height: '100vh',\r\n },\r\n form: {\r\n width: '100%', // Fix IE 11 issue.\r\n },\r\n button: {\r\n margin: '0 0 1rem',\r\n },\r\n logo: {\r\n width: '100%',\r\n marginBottom: '1.5rem',\r\n },\r\n input: {\r\n borderRadius: 4,\r\n backgroundColor: theme.palette.common.white,\r\n border: `1px solid ${theme.palette.primary.main}`,\r\n padding: '0.75rem 1rem',\r\n width: '100%',\r\n marginBottom: '1rem',\r\n },\r\n pass: {\r\n marginBottom: '0.25rem',\r\n },\r\n label: {\r\n fontSize: '1.25rem',\r\n display: 'block',\r\n marginBottom: '0.25rem',\r\n },\r\n link: {\r\n color: 'black',\r\n textDecoration: 'none',\r\n },\r\n forgot: {\r\n marginTop: '0.25rem',\r\n marginBottom: '1rem',\r\n },\r\n error: {\r\n ...errorMessage,\r\n },\r\n submit: {\r\n margin: '1.5rem 0 1rem',\r\n },\r\n header: {\r\n marginBottom: '1rem',\r\n },\r\n}));\r\n","import { makeStyles, Theme } from '@material-ui/core/styles';\r\n\r\nexport const useStyles = makeStyles((theme: Theme) => ({\r\n container: {\r\n position: 'fixed',\r\n bottom: 0,\r\n left: 0,\r\n right: 0,\r\n backgroundColor: theme.palette.grey[200],\r\n zIndex: 1000000,\r\n },\r\n root: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n width: '100%',\r\n padding: '1rem',\r\n alignItems: 'center',\r\n },\r\n close: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n },\r\n}));\r\n","import React from 'react';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Fab from '@material-ui/core/Fab/Fab';\r\nimport { useStyles } from './CookieBanner.styles';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport { Box } from '@material-ui/core';\r\n\r\nexport interface ICookies {\r\n onClose?: () => void;\r\n}\r\n\r\nexport const CookieBanner = (props: ICookies) => {\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n
\r\n
\r\n Cookies\r\n \r\n Vi har placerat cookies i din webbläsare och lagrar ditt IP-nummer för att ge dig en bättre upplevelse av\r\n vår webbplats.\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n};\r\n","import React, { useContext } from 'react';\r\nimport Button from '@material-ui/core/Button';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport { useForm } from 'react-hook-form';\r\nimport { Box, InputBase, Typography } from '@material-ui/core';\r\nimport { AppContext } from '../../states/AppState';\r\nimport { Link, useHistory } from 'react-router-dom';\r\nimport logo from '../../assets/logos/logo_black.svg';\r\nimport { useStyles } from './LoginPage.styles';\r\nimport { useLogin } from '../../Fetchers';\r\nimport { CookieBanner } from '../../components/cookieBanner/CookieBanner';\r\nimport { useGoogleReCaptcha } from 'react-google-recaptcha-v3';\r\nimport { Card } from '../../components/card/Card';\r\n\r\nexport const LoginPage = () => {\r\n const classes = useStyles();\r\n const {\r\n dispatch,\r\n state: { seenCookieBanner },\r\n } = useContext(AppContext);\r\n const { register, handleSubmit, errors, setError } = useForm();\r\n const { mutate: login, loading } = useLogin({});\r\n const history = useHistory();\r\n const { executeRecaptcha } = useGoogleReCaptcha();\r\n\r\n const onSubmit = handleSubmit(async (data) => {\r\n try {\r\n if (!executeRecaptcha) {\r\n return setError('Password', { message: 'Tekniskt fel' });\r\n }\r\n\r\n const token = await executeRecaptcha();\r\n const result = await login({ ...data, captchaToken: token });\r\n if (result.loggedInUser?.name) {\r\n dispatch({ type: 'UPDATE_USER_DETAILS', payload: { name: result.loggedInUser.name } });\r\n } else {\r\n throw new Error();\r\n }\r\n } catch (error) {\r\n return setError('Password', { message: 'Fel Personummer/lösenord' });\r\n }\r\n history.replace(\r\n history.location.pathname === '/' || history.location.pathname === '/login'\r\n ? '/dashboard'\r\n : history.location.pathname,\r\n );\r\n });\r\n\r\n return (\r\n \r\n {/* */}\r\n \r\n Logga in\r\n \r\n \r\n \r\n \r\n Nu har det kommit en uppdatering av spärrtjänsten med ett nytt utseende och bakomliggande system. På grund\r\n av ombyggnationen har inloggningsuppgifterna nollställts. Du kan därmed behöva använda glömt lösenords\r\n länken här nedanför för att sätta ett nytt lösenord. Kontakta kundtjänst info@keycode.se vid problem.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \"Logotyp\r\n\r\n
\r\n \r\n \r\n \r\n \r\n {errors.Password && (\r\n \r\n {errors.Password.message}\r\n \r\n )}\r\n \r\n \r\n \r\n Glömt lösenord?\r\n \r\n \r\n \r\n \r\n Logga in\r\n \r\n \r\n Registrera nytt konto\r\n \r\n \r\n Logga in med aktiveringskod\r\n \r\n {/* */}\r\n \r\n
\r\n
\r\n
\r\n {seenCookieBanner !== 'true' && (\r\n dispatch({ type: 'UPDATE_SEEN_COOKIE_BANNER', payload: 'true' })} />\r\n )}\r\n {/* */}\r\n
\r\n );\r\n};\r\n","import React from 'react';\r\nimport { Button, Grid, makeStyles, Typography } from '@material-ui/core';\r\nimport { Link } from 'react-router-dom';\r\nimport { Done } from '@material-ui/icons';\r\n\r\ninterface IReturnToLoginProps {\r\n message: string;\r\n}\r\n\r\nconst useStyles = makeStyles(() => ({\r\n submit: {\r\n margin: '1.5rem 0 1rem',\r\n },\r\n icon: {\r\n marginRight: '0.25rem',\r\n },\r\n text: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n },\r\n}));\r\n\r\nexport const ReturnToLogin: React.FC = (props) => {\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n \r\n \r\n {props.message}\r\n \r\n \r\n Gå till logga in\r\n \r\n \r\n );\r\n};\r\n","import { Grid, Typography, Box, InputBase, Button } from '@material-ui/core';\r\nimport React, { useState } from 'react';\r\nimport { useForm } from 'react-hook-form';\r\nimport { useRequestResetPasswordMail } from '../../Fetchers';\r\nimport { useStyles } from '../login/LoginPage.styles';\r\nimport { ReturnToLogin } from '../../components/returntologin/ReturnToLogin';\r\nimport logo from '../../assets/logos/logo_black.svg';\r\nimport { useGoogleReCaptcha } from 'react-google-recaptcha-v3';\r\n\r\nexport const RequestPasswordEmailPage = () => {\r\n const classes = useStyles();\r\n const { register, handleSubmit, errors, setError } = useForm();\r\n const [showSuccess, setShowSuccess] = useState(false);\r\n const { mutate: requestEmail, loading } = useRequestResetPasswordMail({});\r\n const { executeRecaptcha } = useGoogleReCaptcha();\r\n\r\n const onSubmit = handleSubmit(async (data) => {\r\n if (!executeRecaptcha) {\r\n return setError('Email', { message: 'Tekniskt fel' });\r\n }\r\n\r\n const token = await executeRecaptcha();\r\n await requestEmail({ ...data, captchaToken: token });\r\n setShowSuccess(true);\r\n });\r\n\r\n return (\r\n \r\n \r\n \r\n \"Logotyp\r\n \r\n \r\n \r\n Glömt lösenord\r\n \r\n \r\n {!showSuccess ? (\r\n
\r\n <>\r\n \r\n \r\n {errors.IdentificationNumber && (\r\n {errors.IdentificationNumber.message}\r\n )}\r\n \r\n \r\n {errors.Email && {errors.Email.message}}\r\n \r\n Återställ lösenord\r\n \r\n \r\n \r\n ) : (\r\n \r\n )}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n","import { Grid, Typography, Box, InputBase, Button } from '@material-ui/core';\r\nimport React, { useState } from 'react';\r\nimport { useForm } from 'react-hook-form';\r\nimport { useParams } from 'react-router-dom';\r\nimport { ReturnToLogin } from '../../components/returntologin/ReturnToLogin';\r\nimport { useSetNewPassword } from '../../Fetchers';\r\nimport { useStyles } from '../login/LoginPage.styles';\r\nimport logo from '../../assets/logos/logo_black.svg';\r\nimport { useGoogleReCaptcha } from 'react-google-recaptcha-v3';\r\n\r\nexport const SetNewPasswordPage = () => {\r\n const classes = useStyles();\r\n const { code } = useParams<{ code: string }>();\r\n\r\n const { register, handleSubmit, errors, setError } = useForm();\r\n const { mutate: SetNewPassword, loading } = useSetNewPassword({});\r\n const [showSuccess, setShowSuccess] = useState(false);\r\n const { executeRecaptcha } = useGoogleReCaptcha();\r\n\r\n const onSubmit = handleSubmit(async (data) => {\r\n if (!executeRecaptcha) {\r\n return setError('Verifypassword', { message: 'Tekniskt fel' });\r\n }\r\n\r\n const token = await executeRecaptcha();\r\n if (data.Password !== data.Verifypassword) {\r\n setError('Verifypassword', { message: 'Lösenordet måste matcha' });\r\n return;\r\n }\r\n\r\n try {\r\n await SetNewPassword({ resetCode: code, password: data.Password, captchaToken: token });\r\n setShowSuccess(true);\r\n } catch (error) {\r\n if (error.status === 400) {\r\n if (error?.data?.type === 'validation') {\r\n setError('Verifypassword', { message: error?.data?.errors.map((x: { error: string }) => x.error).join() });\r\n } else {\r\n setError('Verifypassword', { message: 'Länken är ogiltlig' });\r\n }\r\n } else if (error.status === 403) {\r\n setError('Verifypassword', { message: 'Länken är för gammal' });\r\n }\r\n }\r\n });\r\n\r\n return (\r\n \r\n \r\n \r\n \"Logotyp\r\n \r\n \r\n \r\n Byt lösenord\r\n \r\n \r\n {!showSuccess ? (\r\n
\r\n \r\n \r\n {errors.Password && {errors.Password.message}}\r\n \r\n \r\n {errors.Verifypassword && (\r\n {errors.Verifypassword.message}\r\n )}\r\n\r\n \r\n Spara lösenord\r\n \r\n \r\n ) : (\r\n \r\n )}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n","import React from 'react';\r\n\r\nexport const Required = () => {\r\n return *;\r\n};\r\n","import { Grid, Typography, Box, InputBase, Button } from '@material-ui/core';\r\nimport React, { useState } from 'react';\r\nimport { useGoogleReCaptcha } from 'react-google-recaptcha-v3';\r\nimport { useForm } from 'react-hook-form';\r\nimport { Redirect } from 'react-router-dom';\r\nimport { Required } from '../../components/required/Required';\r\nimport { ReturnToLogin } from '../../components/returntologin/ReturnToLogin';\r\nimport { useRegisterUser } from '../../Fetchers';\r\nimport { useStyles } from '../login/LoginPage.styles';\r\n\r\nexport const RegisterUserPage = () => {\r\n const classes = useStyles();\r\n\r\n const { register, handleSubmit, errors, setError } = useForm();\r\n const { mutate: RegisterUser, loading } = useRegisterUser({});\r\n const [showSuccess, setShowSuccess] = useState(false);\r\n const { executeRecaptcha } = useGoogleReCaptcha();\r\n\r\n const onSubmit = handleSubmit(async (data: any) => {\r\n if (!executeRecaptcha) {\r\n return setError('Verifypassword', { message: 'Tekniskt fel' });\r\n }\r\n\r\n if (data.Password !== data.Verifypassword) {\r\n return setError('Verifypassword', { message: 'Lösenordet måste matcha' });\r\n }\r\n\r\n try {\r\n const token = await executeRecaptcha();\r\n await RegisterUser({ ...data, captchaToken: token });\r\n setShowSuccess(true);\r\n } catch (error) {\r\n if (error.status === 400) {\r\n if (error?.data?.type === 'validation') {\r\n error?.data?.errors.forEach((x: { name: string; error: string }) => setError(x.name, { message: x.error }));\r\n } else {\r\n setError('Verifypassword', { message: 'Länken är ogiltlig' });\r\n }\r\n } else if (error.status === 403) {\r\n setError('Verifypassword', { message: 'Länken är för gammal' });\r\n }\r\n }\r\n });\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n Registera dig\r\n \r\n \r\n {!showSuccess ? (\r\n
\r\n \r\n \r\n {errors.ActivationCode && (\r\n {errors.ActivationCode.message}\r\n )}\r\n \r\n \r\n {errors.Name && {errors.Name.message}}\r\n \r\n \r\n {errors.Email && {errors.Email.message}}\r\n \r\n \r\n {errors.IdentificationNumber && (\r\n {errors.IdentificationNumber.message}\r\n )}\r\n \r\n \r\n \r\n \r\n {errors.Password && {errors.Password.message}}\r\n \r\n \r\n {errors.Verifypassword && (\r\n {errors.Verifypassword.message}\r\n )}\r\n {showSuccess ? (\r\n \r\n ) : (\r\n \r\n Registrera användare\r\n \r\n )}\r\n \r\n ) : (\r\n \r\n )}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n","import { makeStyles } from '@material-ui/core';\r\n\r\nexport const useStyles = makeStyles(() => ({\r\n information: {\r\n marginTop: '1rem',\r\n '& > *': {\r\n marginBottom: '2rem',\r\n },\r\n },\r\n}));\r\n","import React from 'react';\r\nimport { Grid, Typography } from '@material-ui/core';\r\nimport { PageHeader } from '../../components/pageHeader/PageHeader';\r\nimport { PageSection } from '../../components/pageSection/PageSection';\r\nimport { Info } from '@material-ui/icons';\r\nimport { useStyles } from './AboutPage.styles';\r\n\r\nexport const AboutPage = () => {\r\n const classes = useStyles();\r\n return (\r\n <>\r\n }>\r\n Här hittar du viktig information om din tjänst.\r\n \r\n \r\n \r\n \r\n Spärra?\r\n \r\n Ring 020-900 900 gratis dygnet runt från Sverige och{' '}\r\n +46 771 800 800 från utlandet. Alla värdehandlingar kan spärras med ett\r\n enda samtal.\r\n \r\n \r\n \r\n Så fungerar tjänsten\r\n \r\n Läs om hur tjänsten fungerar{' '}\r\n \r\n här\r\n \r\n .\r\n \r\n \r\n \r\n Integritetspolicy\r\n \r\n Läs vår fullständiga integritetspolicy och om hur vi hanterar cookies{' '}\r\n \r\n här\r\n \r\n .\r\n \r\n \r\n \r\n Kontakta kundtjänst\r\n \r\n Läs mer om hur du kontaktar oss på det sätt som passar just dig bäst{' '}\r\n \r\n här\r\n \r\n .\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n","import React, { useContext } from 'react';\r\nimport Button from '@material-ui/core/Button';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport { useForm } from 'react-hook-form';\r\nimport { Box, InputBase, Typography } from '@material-ui/core';\r\nimport { AppContext } from '../../states/AppState';\r\nimport { useHistory } from 'react-router-dom';\r\nimport logo from '../../assets/logos/logo_black.svg';\r\nimport { useStyles } from './LoginPage.styles';\r\nimport { useActivationCodeLogin } from '../../Fetchers';\r\nimport { CookieBanner } from '../../components/cookieBanner/CookieBanner';\r\nimport { useGoogleReCaptcha } from 'react-google-recaptcha-v3';\r\n\r\nexport const ActivationCodeLoginPage = () => {\r\n const classes = useStyles();\r\n const {\r\n dispatch,\r\n state: { seenCookieBanner },\r\n } = useContext(AppContext);\r\n const { register, handleSubmit, errors, setError } = useForm();\r\n const { mutate: login, loading } = useActivationCodeLogin({});\r\n const history = useHistory();\r\n const { executeRecaptcha } = useGoogleReCaptcha();\r\n\r\n const onSubmit = handleSubmit(async (data) => {\r\n try {\r\n if (!executeRecaptcha) {\r\n return setError('ActivationCode', { message: 'Tekniskt fel' });\r\n }\r\n const token = await executeRecaptcha();\r\n\r\n const result = await login({\r\n activationCode: data.ActivationCode,\r\n identificationNumber: data.IdentificationNumber,\r\n captchaToken: token,\r\n });\r\n if (result.loggedInUser?.name) {\r\n dispatch({ type: 'UPDATE_USER_DETAILS', payload: { name: result.loggedInUser.name } });\r\n localStorage.setItem('authenticatedName', result.loggedInUser?.name);\r\n } else {\r\n throw new Error();\r\n }\r\n } catch (error) {\r\n return setError('ActivationCode', { message: 'Fel Identifikation/aktiveringskod' });\r\n }\r\n history.replace('/settings');\r\n });\r\n\r\n return (\r\n \r\n \r\n Logga in med Aktiveringskod\r\n \r\n \r\n \r\n \r\n \"Logotyp\r\n\r\n
\r\n \r\n \r\n \r\n \r\n {errors.ActivationCode && (\r\n {errors.ActivationCode.message}\r\n )}\r\n \r\n Logga in\r\n \r\n \r\n
\r\n
\r\n
\r\n {seenCookieBanner !== 'true' && (\r\n dispatch({ type: 'UPDATE_SEEN_COOKIE_BANNER', payload: 'true' })} />\r\n )}\r\n
\r\n );\r\n};\r\n","import React from 'react';\r\nimport { GoogleReCaptchaProvider } from 'react-google-recaptcha-v3';\r\nimport { Route, RouteProps } from 'react-router-dom';\r\n\r\nexport const PublicRoute = (props: RouteProps) => {\r\n const { children, ...routeProps } = props;\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n","import { BrowserRouter as Router, Redirect, Route, Switch } from 'react-router-dom';\r\nimport React, { useContext } from 'react';\r\nimport { CssBaseline, ThemeProvider } from '@material-ui/core';\r\nimport { DashboardPage } from '../../pages/dashboard/DashboardPage';\r\nimport { PrivateRoute } from './PrivateRoute';\r\nimport { Main } from '../main/Main';\r\nimport theme from '../../style/theme';\r\nimport { BlockserviceRoute } from '../../pages/blockservice/BlockserviceRoute';\r\nimport { SettingsPage } from '../../pages/settings/SettingsPage';\r\nimport { LoginPage } from '../../pages/login/LoginPage';\r\nimport { AppContext } from '../../states/AppState';\r\nimport { RequestPasswordEmailPage } from '../../pages/passwordreset/RequestPasswordEmailPage';\r\nimport { SetNewPasswordPage } from '../../pages/passwordreset/SetNewPasswordPage';\r\nimport { RegisterUserPage } from '../../pages/registeruser/RegisterUser';\r\nimport { AboutPage } from '../../pages/about/AboutPage';\r\nimport { ActivationCodeLoginPage } from '../../pages/login/ActivationCodeLoginPage';\r\nimport { PublicRoute } from './PublicRoute';\r\n\r\nexport const Routes = () => {\r\n const { state } = useContext(AppContext);\r\n const NotFound = () =>

Sorry, nothing here

;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n","import React, { useReducer } from 'react';\r\nimport './App.css';\r\nimport { BreadcrumbNavigationContextProvider } from './components/breadcrumbs/breadcrumbsNavigationContext/BreadcrumbNavigationContext';\r\nimport { Routes } from './components/routes/Routes';\r\nimport { AppContext, AppReducer, InitialAppState } from './states/AppState';\r\nimport { RestfulProvider } from 'restful-react';\r\nimport { MuiPickersUtilsProvider } from '@material-ui/pickers';\r\nimport DayJsUtil from '@date-io/dayjs';\r\nimport 'dayjs/locale/sv';\r\nimport dayjs from 'dayjs';\r\n\r\nfunction App() {\r\n dayjs.locale('sv');\r\n const [state, dispatch] = useReducer(AppReducer, InitialAppState);\r\n function onError():\r\n | ((\r\n err: { message: string; data: unknown; status?: number | undefined },\r\n retry: () => Promise,\r\n response?: Response | undefined,\r\n ) => void)\r\n | undefined {\r\n return (error) => {\r\n if (\r\n (!error.status || error.status === 401) &&\r\n window.location.pathname !== '/login' &&\r\n window.location.pathname !== '/activationcodelogin'\r\n ) {\r\n localStorage.removeItem('authenticatedName');\r\n window.location.href = '/login';\r\n }\r\n };\r\n }\r\n return (\r\n \r\n ({ credentials: 'include' })}\r\n onError={onError()}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default App;\r\n","import { ReportHandler } from 'web-vitals';\r\n\r\nconst reportWebVitals = (onPerfEntry?: ReportHandler) => {\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 './index.css';\r\nimport App from './App';\r\nimport reportWebVitals from './reportWebVitals';\r\n\r\nReactDOM.render(\r\n \r\n \r\n ,\r\n document.getElementById('root'),\r\n);\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":""}