{"version":3,"sources":["contexts/ModalProvider/ModalProvider.tsx","images/dropdown.svg","components/user-input/input/SelectWithSearch/SelectWithSearch.tsx","components/buttons/IconButton/IconButton.styles.ts","components/buttons/IconButton/IconButton.tsx","components/LabelValueComponent/LabelValueComponent.styles.ts","components/LabelValueComponent/LabelValueComponent.tsx","components/selectComponents/SimpleSelect/SimpleSelect.styles.ts","components/selectComponents/SimpleSelect/SimpleSelect.tsx","ApplicationInsights/ApplicationInsightsContext.ts","contexts/MessageContext/MessageContext.reducer.ts","contexts/MessageContext/index.tsx","hooks/useMessagesEndpoint.ts","components/feedback/ProgressSpinner/ProgressSpinner.tsx","hooks/useWindowDimensions.tsx","ApplicationInsights/hooks.ts","images/Checked.svg","images/Unchecked.svg","components/FslCheckbox/FslCheckbox.tsx","components/FslCheckbox/FslCheckbox.styles.ts","layout/Panel/Panel.styles.ts","layout/Panel/Panel.tsx","components/Modal/Modal.hooks.ts","hooks/useFslSnackbar.ts","layout/ContentWrapper/ContentWrapper.styles.ts","layout/ContentWrapper/ContentWrapper.tsx","components/user-input/picker/FSLDatePicker/FSLDatePicker.styles.ts","components/user-input/picker/FSLDatePicker/FSLDatePicker.tsx","tools/utilities.ts","contexts/UserSelectionContext/UserSelectionContext.reducer.ts","contexts/UserSelectionContext/index.tsx","components/snackbars/GeneralErrorSnackbar.tsx","hooks/useMemberTypeFormatter.ts","components/SlideComponent/SlideComponent.tsx","routing/routing.ts","pages/MembershipPage/panels/MyInformation/MyInformation.hooks.ts","pages/MembershipPage/panels/MySubscription/MySubscription.styles.ts","webpack:///./src/images/dropdown.svg?9058","hooks/useJobTitlesEndpoint.ts","hooks/useSchoolNameEndpoint.ts","components/user-input/picker/AdressPicker/AddressPicker.types.ts","components/user-input/picker/AdressPicker/AddressPicker.hooks.ts","components/user-input/picker/AdressPicker/AddressPicker.tsx","components/user-input/picker/SchoolPicker/SchoolPicker.tsx","components/user-input/picker/SchoolPicker/SchoolPicker.hooks.ts","api/index.ts","ApplicationInsights/ApplicationInsightsProvider.tsx","AppPreload.tsx","components/Modal/Modal.styles.ts","components/Modal/Modal.tsx","images/Aeble_ikon.svg","ErrorBoundary.tsx","layout/ContentSwitch/ContentSwitch.tsx","layout/Navbar/DesktopNavbar/DesktopNavbar.styles.ts","layout/Navbar/items/logo/logo.styles.ts","images/Forside_menuikon.svg","layout/Navbar/items/logo/index.tsx","layout/Navbar/items/logo/logo.hooks.ts","images/Kursus_menuikon.svg","images/Logud.svg","images/events.svg","images/Min kreds_menuikon.svg","images/Min skole_menuikon.svg","images/Mit medlemskab_menuikon.svg","images/Pil.svg","layout/Navbar/DesktopNavbar/items/MenuItem/MenuItem.styles.ts","layout/Navbar/DesktopNavbar/items/MenuItem/MenuItem.tsx","layout/Navbar/DesktopNavbar/items/MenuItem/EventMenuItem.tsx","layout/Navbar/DesktopNavbar/ListMenu.tsx","layout/Navbar/DesktopNavbar/ListMenu.hooks.ts","layout/Navbar/DesktopNavbar/DesktopNavbar.tsx","layout/Navbar/MobileDeviceNavbar/Dashboard.mapping.ts","layout/Navbar/MobileDeviceNavbar/Dashboard.hooks.ts","layout/Navbar/MobileDeviceNavbar/MobileDeviceNavbar.styles.ts","layout/Navbar/MobileDeviceNavbar/items/CircleTile/CircleTile.styles.ts","images/Able_forsiden_cropped.svg","layout/Navbar/MobileDeviceNavbar/items/CircleTile/CircleTile.tsx","layout/Navbar/MobileDeviceNavbar/items/MembershipTile/MembershipTile.styles.ts","layout/Navbar/MobileDeviceNavbar/items/MembershipTile/MembershipTile.tsx","layout/Navbar/MobileDeviceNavbar/items/MessageTile/MessageTile.styles.ts","layout/Navbar/MobileDeviceNavbar/items/MessageTile/MessageTile.tsx","layout/Navbar/MobileDeviceNavbar/items/SchoolTile/SchoolTile.styles.ts","layout/Navbar/MobileDeviceNavbar/items/SchoolTile/SchoolTile.tsx","layout/Navbar/MobileDeviceNavbar/items/WelcomeTile/WelcomeTile.styles.ts","layout/Navbar/MobileDeviceNavbar/items/WelcomeTile/WelcomeTile.tsx","layout/Navbar/MobileDeviceNavbar/items/CasesTile/CasesTile.styles.ts","layout/Navbar/MobileDeviceNavbar/items/CasesTile/CasesTile.tsx","layout/Navbar/MobileDeviceNavbar/items/ZeventTile/ZeventTile.styles.ts","layout/Navbar/MobileDeviceNavbar/items/ZeventTile/ZeventTile.tsx","layout/Navbar/MobileDeviceNavbar/MobileDeviceNavbar.tsx","hooks/useTileInformationEndpoint.ts","layout/Navbar/Navbar.tsx","pages/NewMembershipPage/newMemberFlow/NewMemberFlow.styles.ts","pages/NewMembershipPage/newMemberFlow/flowPages/EmploymentPage/EmploymentPage.styles.ts","pages/NewMembershipPage/newMemberContext/newMemberContext.reducer.ts","pages/NewMembershipPage/newMemberContext/index.tsx","images/Cirkel_to_farver-01.svg","pages/NewMembershipPage/newMemberFlow/components/ButtonGroup/ButtonGroup.styles.ts","pages/NewMembershipPage/newMemberFlow/components/ButtonGroup/ButtonGroup.tsx","pages/NewMembershipPage/newMemberFlow/flowPages/EmploymentPage/termsAndConditions/TermsAndConditions.styles.ts","pages/NewMembershipPage/newMemberFlow/flowPages/EmploymentPage/termsAndConditions/TermsAndConditions.hooks.ts","hooks/useTermsAndConditionsEndpoint.ts","components/LanguageSelector/LanguageSelector.styles.ts","components/LanguageSelector/LanguageSelector.tsx","pages/NewMembershipPage/newMemberFlow/flowPages/EmploymentPage/termsAndConditions/TermsAndConditions.tsx","pages/NewMembershipPage/newMemberFlow/flowPages/EmploymentPage/EmploymentPage.tsx","pages/NewMembershipPage/newMemberFlow/flowPages/EmploymentPage/EmploymentPage.hooks.ts","pages/NewMembershipPage/newMemberFlow/flowPages/InformationPage/InformationPage.styles.ts","pages/NewMembershipPage/newMemberFlow/flowPages/InformationPage/InformationPage.tsx","pages/NewMembershipPage/newMemberFlow/flowPages/InformationPage/InformationPage.hooks.ts","pages/NewMembershipPage/newMemberFlow/flowPages/PositionPage/PositionPage.styles.ts","pages/NewMembershipPage/newMemberFlow/flowPages/PositionPage/FreeTextSchoolPosition.tsx","pages/NewMembershipPage/newMemberFlow/flowPages/PositionPage/PositionContent.tsx","pages/NewMembershipPage/newMemberFlow/flowPages/PositionPage/PositionContent.hooks.ts","pages/NewMembershipPage/newMemberFlow/flowPages/PositionPage/PositionPage.tsx","pages/NewMembershipPage/newMemberFlow/flowPages/PositionPage/PositionPage.hooks.ts","pages/NewMembershipPage/newMemberFlow/flowPages/AcknowledgePage/AcknowledgePage.styles.ts","pages/NewMembershipPage/newMemberFlow/flowPages/AcknowledgePage/Section.tsx","pages/NewMembershipPage/newMemberFlow/flowPages/AcknowledgePage/AcknowledgePage.actions.ts","pages/NewMembershipPage/newMemberFlow/flowPages/AcknowledgePage/AcknowledgePage.mapping.ts","pages/NewMembershipPage/newMemberFlow/flowPages/AcknowledgePage/AcknowledgePage.hooks.ts","pages/NewMembershipPage/newMemberFlow/flowPages/AcknowledgePage/AcknowledgePage.tsx","pages/NewMembershipPage/newMemberFlow/NewMemberFlow.tsx","pages/NewMembershipPage/newMemberFlow/flowPages/FinalPage/FinalPage.styles.tsx","pages/NewMembershipPage/newMemberFlow/NewMemberFlow.hooks.tsx","pages/NewMembershipPage/NewMembershipPage.styles.ts","pages/NewMembershipPage/NewMembershipPage.tsx","pages/NewMembershipPage/newMemberFlow/flowPages/MailValidationPage/MailValidationPage.styles.ts","pages/NewMembershipPage/newMemberFlow/flowPages/MailValidationPage/MailValidation.actions.ts","pages/NewMembershipPage/newMemberFlow/flowPages/MailValidationPage/MailValidationPage.tsx","pages/NewMembershipPage/newMemberFlow/flowPages/MailValidationPage/MailValidation.hooks.tsx","pages/FslAutoRedirectPage/FslAutoRedirectPage.tsx","pages/FslCallback/FslCallbackPage.tsx","App.tsx","index.tsx","components/user-input/input/FslTextField/FslTextField.tsx","tools/formatters.ts","auth/withOidc.tsx","config/index.ts","components/buttons/FslButton/ButtonProgressWrapper.tsx","components/buttons/FslButton/FslButton.tsx","api/fetch.ts","hooks/useScreenSizeProvider.ts","theming/theme.ts","components/misc/index.tsx","components/FadeComponent/FadeComponent.tsx","auth/UserService.ts","hooks/useFslQueryHook.ts","pages/NewMembershipPage/newMemberFlow/components/FlowButton/FlowButton.styles.tsx","pages/NewMembershipPage/newMemberFlow/components/FlowButton/FlowButton.tsx","components/user-input/input/BasicTextField/BasicTextField.tsx"],"names":["ModalContext","React","createContext","modalState","setModalState","toggleOpen","ModalProvider","children","useState","open","options","title","props","componentConstructor","Provider","value","prev","defaultGetOptionSelected","option","Object","keys","concat","map","k","every","v","SelectWithSearch","iconPosition","inputFieldId","placeholder","className","onChange","renderOption","getOptionLabel","onInputChange","inputValue","filterOptions","isLoading","noOptionsText","isClearable","clearOnBlur","getOptionSelected","popupIcon","hideIcon","inputAdornmentIcon","hidePopupIcon","autoFocus","isDisabled","helperText","error","isReadOnly","required","multiple","blurOnSelect","onClose","onOpen","updateDelay","BasicTextField","id","label","disabled","Autocomplete","style","width","toArray","loading","loadingText","disableClearable","src","dropdownIcon","alt","height","renderInput","params","FslTextField","minHeight","InputProps","startAdornment","InputAdornment","position","Search","endAdornment","CircularProgress","color","size","PopperComponent","Popper","minWidth","defaultProps","useIconButtonStyles","makeStyles","createStyles","root","display","background","border","outline","cursor","popover","padding","popoverContent","marginTop","buttonDivider","IconButton","withConfirmDialog","onClick","rest","classes","translateString","useTranslation","popoverAnchor","setPopoverAnchor","Boolean","handleClick","useCallback","event","currentTarget","handleClose","type","Popover","anchorEl","anchorOrigin","vertical","horizontal","transformOrigin","Typography","variant","FslButton","e","undefined","useLabelValueComponentStyles","theme","fontWeight","marginBottom","overflow","whiteSpace","wordBreak","customPalette","red","highlight","highlightColor","dot","content","backgroundColor","dotColor","borderRadius","marginRight","LabelValueComponent","showDot","valueColor","circleColor","displayValue","useMemo","valueClassNames","clsx","Array","isArray","index","FadeComponent","useSimpleSelectStyle","nativeSelect","paddingRight","paddingTop","stroke","strokeWidth","margin","fontSize","textAlign","lineHeight","letterSpacing","SimpleSelect","inputLabel","FormControl","InputLabel","NativeSelect","IconComponent","DropdownIcon","o","ApplicationInsightsContext","state","action","recipients","topic","currentDraftMessage","draftMessage","allowedSenders","senders","parentId","numberOfUnreadMessages","selectedThread","thread","messages","findIndex","m","messageId","isExpanded","previewIndex","message","sender","initialState","MessageContext","openNewMessage","openReplyMessage","setRecipients","updateTopic","setDraftMessage","updateSelectedThread","setMessageExpanded","updateMessages","MessageProvider","useReducer","reducer","dispatch","push","useHistory","isInitializing","useRef","useMessagesEndpoint","fetchSenders","fetchNumberOfReadMessages","useFSLQuery","onSuccess","data","count","updateStateOnNewMessage","positionOfTrustMessage","Routing","reply","newMessage","current","messagesEndpoint","draftEndpoint","threadEndpoint","deleteMessage","a","deleteRequest","deleteThread","threadId","fetchMessage","get","result","json","Promise","fetchSentMessages","pageSize","pageNumber","deleteAttachment","draftId","attachmentId","postAttachment","file","formData","FormData","append","name","post","uploadFile","sendMessage","fetchDraft","updateDraftReplyMessage","draftMessageId","body","put","updateDraftNewMessage","subject","recipientsCanSeeEachOther","postReply","response","postDraftMessage","fetchMessages","fetchThread","markMessageAsRead","obj","ProgressSpinner","getWindowDimensions","window","windowWidth","innerWidth","windowHeight","innerHeight","useWindowDimensions","windowDimensions","setWindowDimensions","useEffect","handleResize","addEventListener","removeEventListener","useApplicationInsights","useContext","appInsights","ApplicationInsights","config","instrumentationKey","disableTelemetry","_g","_extends","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","this","_objectWithoutProperties","excluded","sourceKeys","indexOf","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","SvgChecked","_ref","svgRef","titleId","xmlns","viewBox","ref","transform","fill","rx","x","y","d","ForwardRef","SvgUnchecked","CheckboxVariant","useFslCheckboxStyles","checkedRedVariant","white","uncheckedRedVariant","formControlLabel","marginLeft","FslCheckBox","checkboxes","Default","FormLabel","FormGroup","formProps","checkboxProps","FormControlLabel","control","Checkbox","checkedIcon","Red","icon","FormHelperText","usePanelStyles","accordionRoot","header","justifyContent","textTransform","accordionTitle","accordionIcon","accordionBar","breakpoints","up","down","Content","Grid","container","spacing","Panel","showAccordion","edit","sendMessageComponent","expanded","setExpanded","Accordion","AccordionSummary","expandIcon","AccordionDetails","useModal","openModal","optionsAndProps","toggleModal","closeModal","isModalOpen","useFslSnackbar","useSnackbar","enqueueSnackbar","closeSnackbar","parseSnackbarAction","parseSnackbarOptions","autoHideDuration","preventDuplicate","successSnackbar","failureSnackbar","useContentStyles","contentMargin","titleSection","paddingLeft","showTitleOnMobile","rightCornerComponent","alignSelf","spinner","alignItems","ContentWrapper","subTitle","showOnMobile","text","useFSLDatePickerStyles","FSLDatePicker","date","onDateChanged","datepickerProps","translateDate","language","locale","en","da","utils","DateFnsUtils","openTo","views","allowKeyboardControl","autoOk","disableToolbar","cancelLabel","okLabel","inputMode","KeyboardButtonProps","TextFieldComponent","InputLabelProps","shrink","filter","isValidDate","isNaN","getTime","sortDateDesc","b","sortDateAsc","selectedSchoolId","schooldId","selectedDistrictId","districtId","selectedInboxPage","inboxPage","selectedSentMessagesPage","sentMessagesPage","UserSelectionContext","setSelectedSchoolId","setSelectedDistrictId","setSelectedInboxPage","setSelectedSentMessagesPage","UserSelectionProvider","GeneralErrorSnackbar","useMemberTypeFormatter","formatMemberType","memberType","memberTypeText","SlideComponent","slideDirection","contentClassname","in","direction","timeout","frontpage","courses","membership","school","district","logout","newMember","cases","mailValidation","fslAutoRedirectLogin","fslCallback","useMemberStatusFormatter","status","yellow","green","grey","memberStatusColor","memberStatusText","useMySubscriptionStyles","flexDirection","sidePanel","lightGrey","sidePanelHeader","sidePanelValueHeader","sidePanelValue","sidePanelValuePair","paddingBottom","sidePanelValueIsNegative","tableContainer","firstColumnContent","_style","_path","SvgDropdown","xmlnsXlink","enableBackground","xmlSpace","useJobTitlesEndpoint","endpoint","fetchJobTitles","ignoreAuthentication","useSchoolNameEndpoint","fetchSchoolNames","query","DawaType","AddressPicker","fuzzy","q","setQuery","setOptions","selectedAddress","setSelectedAddress","selectedOption","setSelectedOption","isOpen","setIsOpen","getDawaAutocompleteAddresses","newOptions","doFetch","kommunekode","address","vejnavn","husnr","etage","dør","getDawaMunicipality","kommune","postalCode","postnr","city","postnrnavn","countryCode","municipality","navn","handleOnChange","_","handleOnInputChanged","newValue","forslagstekst","tekst","caretPos","useData","l","r","reason","SchoolPicker","fetchOptions","input","setInput","schoolType","path","fetchRequest","getDawa","fetch","queryString","stringify","caretpos","skipEmptyString","skipNull","municipalityCode","ApplicationInsightsProvider","history","ai","setAi","applicationInsightsKey","reactPlugin","ReactPlugin","extensions","extensionConfig","identifier","enableCorsCorrelation","autoTrackPageVisitTime","enableUnhandledPromiseRejectionTracking","enableDebugExceptions","deployEnvironment","loadAppInsights","addTelemetryInitializer","item","tags","context","application","ver","process","configureApplicationInsights","AppPreload","App","loadState","setLoadState","checkInBackground","setCheckInBackground","intervalToken","setIntervalToken","checkConnection","authPromise","authServer","backendPromise","apiUrl","catch","startsWith","setTimeout","clearTimeout","setInterval","clearInterval","test","server","warn","Button","useStyles","modal","modalContent","flexShrink","overflowY","paper","palette","boxShadow","shadows","maxWidth","headerWrapper","close","heading","darkBlue","closeButtonWrapper","Modal","hasChanges","setHasChanges","InitialModalState","ctor","Ctor","setCurrentModalState","disableEscapeKeyDown","disableBackdropClick","closeOnEscape","closeOnClickOutside","doClose","onFailure","aria-labelledby","aria-describedby","closeAfterTransition","BackdropComponent","Backdrop","BackdropProps","Fade","onExited","toUpperCase","hideCloseButton","_path2","ErrorBoundary","hasError","logException","exception","severityLevel","SeverityLevel","Critical","primaryMessage","secondaryMesage","Component","ContentSwitch","homeComponent","LazyMembershipPage","lazy","LazyCoursesPage","LazyMyDistrictPage","LazyMySchoolPage","LazyMessagePage","LazyCasesPage","LazyNewMessagePage","fallback","component","exact","useDesktopNavbarStyles","borderRight","borderRightColor","borderRightStyle","borderRightWidth","menuList","listStyleType","listItem","separator","borderBottom","useLogoStyles","showBottomLine","logoText","menu","SvgAebleIkon","fillRule","Logo","onBurgerClicked","subMenuOpened","renderedOnDesktop","logoSubtitle","screenSize","useScreenSizeProvider","pathname","useLocation","usePathname","useUserName","useUser","to","SvgForsideMenuikon","SvgKursusMenuikon","y2","strokeLinecap","cx","cy","SvgLogud","x1","strokeLinejoin","SvgEvents","SvgMinkredsMenuikon","SvgMinskoleMenuikon","SvgMitmedlemskabMenuikon","useMenuItemStyles","link","textDecoration","counter","button","fontFamily","MenuItem","linkTo","menuItemClicked","isActive","EventMenuItem","setLoading","ok","Error","url","console","ListItemWrapper","ListMenu","user","isMessagesLinkActive","match","location","useListMenuData","isInternalUser","DesktopNavbar","setBalance","balance","useMapping","myMembershipData","membernumber","memberNumber","memberStatus","memberEconomyStatus","positions","schoolMemberTrustPositions","p","positionOfTrustName","schoolName","districtMemberTrustPositions","districtName","negativeRate","mapToMyMembershipData","mySchoolData","schoolEmail","mapToMySchoolData","myDistrictData","memberTrustPositionsCount","districtNumber","mapToMyDistrictData","useMobileDeviceNavbarStyles","doubleListItem","tile","tilePadding","tileText","tileContent","bottomIcons","playIcon","right","bottom","opacity","useCircleTileStyles","black","SvgPil","_g2","defaultData","CircleTile","navbarClasses","tileClasses","sm","useMembershipTileStyles","memberFrom","MembershipTile","subscriptionClasses","valueClassName","useMessageTileStyles","MessageTile","useSchoolTileStyles","svg","SchoolTile","useWelcomeTileStyles","textContainer","SvgAbleForsidenCropped","WelcomeTile","fullName","useCasesTileStyles","CasesTile","useZeventTileStyles","eventHeading","gap","ZeventTile","MobileHomeComponent","fetchTileInformation","useTileInformationEndpoint","isExternal","xs","firstName","lastName","md","MobileDeviceNavbar","setSubMenuOpened","Slide","Navbar","smallScreen","useNewMemberFlowStyles","stepperIcon","stepperIconComplete","activeStepperText","contentHeader","centerContent","mobileComponentWrapper","usePositionPageStyles","flexRoot","selectorRoot","selector","otherTextField","NewMemberContextReducer","employment","information","uniqueId","jobTitles","splice","acceptedTermsAndConditions","eulaName","bypassPositions","_defs","_path3","_path4","_path5","_path6","_path7","_path8","_path9","_path10","_path11","_path12","_path13","_path14","_path15","_path16","_path17","_path18","_path19","_path20","_path21","_path22","_path23","_path24","_path25","_path26","NewMemberContext","NewMemberProvider","useButtonGroupStyles","buttonSeparator","ButtonGroup","stepperProgress","next","previous","buttonText","FlowButton","useTermsAndConditionsStyles","logo","conditions","buttons","firstButton","topbar","downloadLink","page","subheader","SvgCirkelToFarver01","eula","setEula","fetchPdf","then","useTermsAndConditionsEndpoint","base64Pdf","useLanguageSelectorStyles","activeItem","LanguageSelector","changeLanguage","setLanguage","handleOnClick","TermsAndConditions","acceptEula","pdfjs","GlobalWorkerOptions","workerSrc","version","pageAmount","setPageAmount","contentWidth","contentHeight","pages","download","href","TransitionProps","onLoadSuccess","numPages","replace","EmploymentPage","onNext","onPrevious","validator","useValidator","validateNotEmpty","validatorMessageTranslate","field","t","employmentId","employmentText","employmentChanged","find","Number","showErrorFor","selectedDisplayValue","showTextArea","employmentTextChanged","isEulaAccepted","check","setShowErrors","anyHasErrors","shouldShowErrors","getErrorsForDisplay","multiline","rowsMax","useInformationPageStyles","InformationPage","s","country","ssn","validateSsn","lastname","email","validateEmail","phoneNumber","updateData","showErrorsFor","repeatedEmail","handleAddressPickerOnChange","countryOptions","co","onPaste","preventDefault","rateSelector","positionSelector","otherTextarea","addAndRemovePositionSection","lightBlue","addAndRemovePositionText","fontStyle","contentSeparator","borderTop","workplaceNotInListGrid","firstJobAsTeacherGrid","schoolPickerGrid","removeCircleIcon","addCircleIcon","bypassButton","FreeTextSchoolPosition","showSchoolTextField","showPositionTextField","updatePosition","schoolNameNotInList","positionDescription","PositionContent","showErrors","startDate","employmentRate","workplaceNotInList","jobTitleNotInList","rateOptions","percent","guid","sort","indexA","indexB","localeCompare","onSchoolChanged","changes","fetchSchools","schools","getAddressString","addr","getPostalCode","code","getCity","getSchoolType","onPositionChanged","selectedJobTitle","selectedPosition","selectedSchool","positionOptions","checked","firstJobAsTeacher","miscellaneousText","PositionPage","errors","bypassValidation","err","addPosition","removePosition","useAcknowledgePageStyles","headerGrid","textSeparator","Section","texts","postMembershipRequest","request","mapToApi","byPassPosition","occupation","occupationText","employments","mapEmployments","schoolId","jobTitleId","jobTitleDescription","jobtitleNotInList","format","findEmploymentRate","trim","postalCodeAndCity","coString","postRequest","membershipRequest","findPositionText","positionText","findPositions","forEach","rate","AcknowledgePage","handleOnNext","formatSsn","StepIcon","buttonSection","isCompleted","NewMemberFlow","step","toggleAnimation","setToggleAnimation","setSlideDirection","setStepperProgress","redirectToFslPage","acknowledgePageNext","orderIndex","showInStepper","selectedContent","Stepper","alternativeLabel","orientation","c","Step","StepLabel","StepIconComponent","useNewMembershipPageStyles","sidepanel","NewMembershipPage","Paper","useMailValidationStyles","postMailHasBeenValidated","MailValidationPage","useParams","QueryStatus","Success","FslAutoRedirectPage","redirectUri","protocol","host","messageMemberId","URLSearchParams","search","userManager","signinRedirect","redirect_uri","FslCallbackPage","signinRedirectCallback","recipient","memberId","routing","danishTranslation","require","englishTranslation","setupi18n","MemberFlowWithOidc","withOidc","PerformLogout","signoutRedirect","PortalRouter","UseErrorBoundary","trackException","notistackRef","createRef","onClickDismiss","ThemeProvider","Theme","maxSnack","ReactDOM","render","document","getElementById","MaskedInput","IMaskMixin","inputRef","mask","setLazy","debounced","debounce","fn","f","actualValue","setActualValue","localOnChange","strValue","unmask","onFocus","onAccept","strNewValue","forwardRef","substr","translatedOptions","UserManager","automaticSilentRenew","authority","client_id","response_type","scope","post_logout_redirect_uri","postLogoutUrl","LoaderOrApp","auth","useAuth","userData","autoSignIn","onBeforeSignIn","sessionStorage","setItem","hash","onSignIn","returnTo","getItem","removeItem","runtimeConfig","smBreakpoint","datePattern","inlineContainer","wrapper","buttonProgress","blue","top","left","ButtonProgressWrapper","showProgress","secondary","buttonRef","buttonStyle","pathInit","method","useAuthServer","createRequestInit","requestInit","baseUrl","CONFIG","pathInitToString","removeUser","statusText","processedBody","JSON","headers","credentials","getUser","expired","clearStaleState","signinSilent","Authorization","access_token","parsePathInit","entries","encodeURIComponent","join","useMediaQuery","noSsr","createMuiTheme","primary","main","contrastText","overrides","MuiTab","MuiInputLabel","outlined","MuiStepLabel","MuiAccordionDetails","MuiAccordionSummary","MuiPaper","rounded","elevation1","MuiButton","outlinedPrimary","borderColor","outlinedSecondary","contained","containedPrimary","containedSecondary","MuiFormHelperText","MuiFormLabel","MuiNativeSelect","MuiInputBase","MuiTypography","body1","body2","h4","h6","MuiTableCell","head","FullScreenCenter","justify","FullScreenLoadingComponent","CenterContent","instance","_timestamp","_user","Date","setUser","fetchFunction","queryConfig","useQuery","refetchOnWindowFocus","retry","refetch","useFSLMutation","mutateFn","updateCache","mutationConfig","onError","previousValue","queryCache","getQueryData","useMutation","onMutate","cancelQueries","onSettled","previousLastUpdated","lastUpdated","hasBeenUpdated","delay","res","isAfter","invalidateQueries","newData","snapshotValue","setQueryData","mutate","useFlowButtonStyles","defaultValue","readOnly"],"mappings":"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","file":"static/js/main.6ff02219.chunk.js","sourcesContent":["import React, { useState } from 'react';\r\nimport { ModalInfo } from '../../components/Modal/Modal.types';\r\n\r\nexport const ModalContext = React.createContext<{\r\n modalState: ModalInfo | null;\r\n setModalState: React.Dispatch>;\r\n toggleOpen: () => void;\r\n}>({\r\n modalState: null,\r\n setModalState: () => {\r\n return null;\r\n },\r\n toggleOpen: () => {},\r\n});\r\n\r\nexport const ModalProvider: React.FunctionComponent = ({ children }) => {\r\n const [modalState, setModalState] = useState({ open: false, options: null, title: null, props: null, componentConstructor: null });\r\n return (\r\n {\r\n setModalState((prev) => {\r\n return {\r\n open: !prev?.open,\r\n componentConstructor: prev?.componentConstructor,\r\n props: prev?.props,\r\n options: prev?.options,\r\n title: prev?.title,\r\n } as ModalInfo;\r\n });\r\n },\r\n }}\r\n >\r\n {children}\r\n \r\n );\r\n};\r\n","export default __webpack_public_path__ + \"static/media/dropdown.fe89cc30.svg\";","import { CircularProgress, InputAdornment, Popper } from '@material-ui/core';\r\nimport { Search } from '@material-ui/icons';\r\nimport React from 'react';\r\nimport {\r\n Autocomplete,\r\n AutocompleteChangeDetails,\r\n AutocompleteChangeReason,\r\n AutocompleteCloseReason,\r\n AutocompleteInputChangeReason,\r\n AutocompleteRenderInputParams,\r\n AutocompleteRenderOptionState,\r\n FilterOptionsState,\r\n Value,\r\n} from '@material-ui/lab';\r\nimport dropdownIcon from '../../../../images/dropdown.svg';\r\nimport { toArray } from '../../../../tools/utilities';\r\nimport BasicTextField from '../BasicTextField/BasicTextField';\r\nimport FslTextField from '../FslTextField/FslTextField';\r\n\r\nfunction defaultGetOptionSelected(option: any, value: any) {\r\n if (typeof option !== typeof value) return false;\r\n if (option === value) return true;\r\n\r\n if (typeof option !== 'object') return false;\r\n\r\n return Object.keys(option)\r\n .concat(Object.keys(value))\r\n .map((k) => option[k] === value[k])\r\n .every((v) => v);\r\n}\r\n\r\nexport interface ISelectWithSearchProps {\r\n title?: string;\r\n placeholder?: string;\r\n className?: string;\r\n iconPosition?: 'start' | 'end';\r\n value?: Value;\r\n inputValue?: string;\r\n options?: T[];\r\n filterOptions?: (options: T[], state: FilterOptionsState) => T[];\r\n onChange?: (\r\n event: React.ChangeEvent<{}>,\r\n value: Value,\r\n reason: AutocompleteChangeReason,\r\n details?: AutocompleteChangeDetails\r\n ) => void;\r\n onInputChange?: (event: React.ChangeEvent<{}>, value: string, reason: AutocompleteInputChangeReason) => void;\r\n getOptionLabel?: (option: T) => string;\r\n renderOption?: (option: T, state: AutocompleteRenderOptionState) => React.ReactNode;\r\n inputFieldId?: string;\r\n isLoading?: boolean;\r\n noOptionsText?: string;\r\n isClearable?: boolean;\r\n clearOnBlur?: boolean;\r\n getOptionSelected?: (option: T, value: T) => boolean;\r\n popupIcon?: HTMLImageElement;\r\n hideIcon?: boolean;\r\n hidePopupIcon?: boolean;\r\n inputAdornmentIcon?: HTMLImageElement;\r\n autoFocus?: boolean;\r\n isDisabled?: boolean;\r\n helperText?: string;\r\n error?: boolean;\r\n isReadOnly?: boolean;\r\n required?: boolean;\r\n multiple?: Multiple;\r\n blurOnSelect?: boolean;\r\n open?: boolean;\r\n onOpen?: (event: React.ChangeEvent<{}>) => void;\r\n onClose?: (event: React.ChangeEvent<{}>, reason: AutocompleteCloseReason) => void;\r\n updateDelay?: number;\r\n}\r\n\r\nexport default function SelectWithSearch({\r\n iconPosition,\r\n inputFieldId,\r\n title,\r\n placeholder,\r\n className,\r\n value,\r\n options,\r\n onChange,\r\n renderOption,\r\n getOptionLabel,\r\n onInputChange,\r\n inputValue,\r\n filterOptions,\r\n isLoading,\r\n noOptionsText,\r\n isClearable,\r\n clearOnBlur,\r\n getOptionSelected,\r\n popupIcon,\r\n hideIcon,\r\n inputAdornmentIcon,\r\n hidePopupIcon,\r\n autoFocus,\r\n isDisabled,\r\n helperText,\r\n error,\r\n isReadOnly,\r\n required,\r\n multiple,\r\n blurOnSelect,\r\n open,\r\n onClose,\r\n onOpen,\r\n updateDelay,\r\n}: ISelectWithSearchProps) {\r\n if (isReadOnly && !multiple) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n multiple={multiple}\r\n style={{ width: '100%' }}\r\n value={value ?? null!}\r\n disabled={isDisabled}\r\n placeholder={title}\r\n options={options ?? (toArray(value) as T[])}\r\n filterOptions={filterOptions}\r\n onChange={onChange}\r\n inputValue={inputValue}\r\n onInputChange={onInputChange}\r\n clearOnBlur={clearOnBlur}\r\n getOptionLabel={getOptionLabel}\r\n renderOption={renderOption}\r\n loading={isLoading}\r\n loadingText=\"Henter...\"\r\n disableClearable={!isClearable}\r\n noOptionsText={noOptionsText ?? (!inputValue ? 'Foretag søgning' : 'Ingen resultater')}\r\n getOptionSelected={getOptionSelected ?? defaultGetOptionSelected}\r\n popupIcon={!hidePopupIcon ? popupIcon ?? \"dropdownButton\" : null}\r\n blurOnSelect={blurOnSelect}\r\n open={open}\r\n onOpen={onOpen}\r\n onClose={onClose}\r\n renderInput={(params: AutocompleteRenderInputParams) => (\r\n \r\n {params.InputProps.startAdornment}\r\n {popupIcon ? inputAdornmentIcon : }\r\n \r\n ) : (\r\n params.InputProps.startAdornment\r\n ),\r\n endAdornment: (\r\n <>\r\n {isLoading ? : null}\r\n {params.InputProps.endAdornment}\r\n \r\n ),\r\n }}\r\n />\r\n )}\r\n PopperComponent={(props) => {\r\n return ;\r\n }}\r\n />\r\n );\r\n}\r\n\r\nSelectWithSearch.defaultProps = {\r\n title: '',\r\n};\r\n","import { createStyles, makeStyles } from '@material-ui/core';\r\n\r\nexport const useIconButtonStyles = makeStyles(() =>\r\n createStyles({\r\n root: {\r\n display: 'flex',\r\n background: 'transparent',\r\n border: 'none',\r\n outline: 'none',\r\n '&:hover': { cursor: 'pointer' },\r\n },\r\n popover: {\r\n padding: '20px',\r\n },\r\n popoverContent: {\r\n display: 'flex',\r\n marginTop: '10px',\r\n },\r\n buttonDivider: {\r\n width: '15px',\r\n },\r\n })\r\n);\r\n","import { ButtonProps, Popover, Typography } from '@material-ui/core';\r\nimport React, { FunctionComponent, useCallback, useState } from 'react';\r\nimport { useTranslation } from '@fsl/fsl.common.npm';\r\nimport { FslButton } from '../FslButton/FslButton';\r\nimport { useIconButtonStyles } from './IconButton.styles';\r\n\r\ninterface IIconButtonProps extends ButtonProps {\r\n withConfirmDialog?: boolean;\r\n}\r\n\r\nconst IconButton: FunctionComponent = ({ children, withConfirmDialog, onClick, ...rest }) => {\r\n const classes = useIconButtonStyles();\r\n const { translateString } = useTranslation();\r\n const [popoverAnchor, setPopoverAnchor] = useState(null);\r\n const open = Boolean(popoverAnchor);\r\n\r\n const handleClick = useCallback((event: any) => {\r\n setPopoverAnchor(event.currentTarget);\r\n }, []);\r\n\r\n const handleClose = useCallback(() => {\r\n setPopoverAnchor(null);\r\n }, []);\r\n\r\n return (\r\n <>\r\n \r\n {withConfirmDialog ? (\r\n \r\n
\r\n {translateString('are_you_sure')}\r\n
\r\n {\r\n handleClose();\r\n if (onClick) {\r\n onClick(e);\r\n }\r\n }}\r\n >\r\n {translateString('yes')}\r\n \r\n
\r\n {translateString('no')}\r\n
\r\n
\r\n \r\n ) : undefined}\r\n \r\n );\r\n};\r\n\r\nexport default IconButton;\r\n","import { createStyles, makeStyles, Theme } from '@material-ui/core';\r\n\r\nexport const useLabelValueComponentStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n label: {\r\n fontWeight: theme.fontWeight,\r\n marginBottom: '5px',\r\n overflow: 'hidden',\r\n whiteSpace: 'nowrap',\r\n },\r\n value: {\r\n wordBreak: 'break-word',\r\n '& a': {\r\n color: theme.customPalette.red,\r\n fontWeight: theme.fontWeight,\r\n },\r\n },\r\n highlight: {\r\n color: (props) => props.highlightColor,\r\n fontWeight: theme.fontWeight,\r\n },\r\n dot: {\r\n '&::before': {\r\n content: '\"\"',\r\n display: 'inline-block',\r\n height: '12px',\r\n width: '12px',\r\n backgroundColor: (props) => props.dotColor,\r\n borderRadius: '20px',\r\n marginRight: '10px',\r\n },\r\n },\r\n })\r\n);\r\n","import { Typography } from '@material-ui/core';\r\nimport React, { FunctionComponent, useMemo } from 'react';\r\nimport clsx from 'clsx';\r\nimport { useLabelValueComponentStyles } from './LabelValueComponent.styles';\r\nimport FadeComponent from '../FadeComponent/FadeComponent';\r\n\r\ninterface ILabelValueComponentProps {\r\n label: string;\r\n value: string | string[] | JSX.Element;\r\n highlight?: { valueColor: string };\r\n showDot?: { circleColor: string };\r\n}\r\n\r\nconst LabelValueComponent: FunctionComponent = ({ label, value, highlight, showDot }) => {\r\n const classes = useLabelValueComponentStyles({\r\n highlightColor: highlight ? highlight.valueColor : '#000',\r\n dotColor: showDot ? showDot.circleColor : 'transparent',\r\n });\r\n\r\n const displayValue = useMemo(() => {\r\n const valueClassNames = clsx(classes.value, `${highlight ? classes.highlight : ''} ${showDot ? classes.dot : ''}`);\r\n if (Array.isArray(value)) {\r\n return (\r\n <>\r\n {value.map((v, index) => (\r\n // eslint-disable-next-line react/no-array-index-key\r\n
\r\n \r\n {v}\r\n \r\n
\r\n ))}\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n {value}\r\n \r\n );\r\n }, [value, classes.dot, classes.highlight, highlight, showDot, classes.value]);\r\n\r\n return (\r\n \r\n
\r\n \r\n {label}\r\n \r\n {displayValue}\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default LabelValueComponent;\r\n","import { createStyles, makeStyles, Theme } from '@material-ui/core';\r\n\r\nexport const useSimpleSelectStyle = makeStyles((theme: Theme) =>\r\n createStyles({\r\n nativeSelect: {\r\n height: '30px',\r\n '& .MuiNativeSelect-select:focus': { backgroundColor: 'transparent' },\r\n '& svg': {\r\n width: '10px',\r\n height: '10px',\r\n paddingRight: '10px',\r\n paddingTop: '7px',\r\n '& path': {\r\n stroke: theme.customPalette.red,\r\n strokeWidth: 3,\r\n },\r\n },\r\n },\r\n helperText: {\r\n color: theme.customPalette.red,\r\n margin: '0',\r\n fontSize: '0.75rem',\r\n marginTop: '3px',\r\n textAlign: 'left',\r\n lineHeight: '1.66',\r\n letterSpacing: '0.03333em',\r\n },\r\n })\r\n);\r\n","import { FormControl, InputLabel, NativeSelect, NativeSelectProps } from '@material-ui/core';\r\nimport React, { FunctionComponent } from 'react';\r\nimport { ReactComponent as DropdownIcon } from '../../../images/dropdown.svg';\r\nimport { useSimpleSelectStyle } from './SimpleSelect.styles';\r\n\r\ninterface ISimpleSelectProps {\r\n options: { id: number | string; displayValue: string }[];\r\n inputLabel: string;\r\n helperText?: string;\r\n}\r\n\r\nconst SimpleSelect: FunctionComponent = ({ options, inputLabel, helperText, ...rest }) => {\r\n const classes = useSimpleSelectStyle();\r\n\r\n return (\r\n \r\n {inputLabel}\r\n \r\n {options.map((o) => (\r\n \r\n ))}\r\n \r\n {helperText &&

{helperText}

}\r\n
\r\n );\r\n};\r\n\r\nexport default SimpleSelect;\r\n","import { ReactPlugin } from '@microsoft/applicationinsights-react-js';\r\nimport { ApplicationInsights } from '@microsoft/applicationinsights-web';\r\nimport { createContext } from 'react';\r\n\r\nexport const ApplicationInsightsContext = createContext<{ appInsights: ApplicationInsights; reactPlugin: ReactPlugin } | null>(null);\r\n","import { MessageContextAction, MessageContextState } from './MessageContext.types';\r\n\r\nexport default (state: MessageContextState, action: MessageContextAction): MessageContextState => {\r\n switch (action.type) {\r\n case 'setRecipients': {\r\n return { ...state, recipients: action.recipients };\r\n }\r\n case 'setTopic': {\r\n return { ...state, topic: action.topic };\r\n }\r\n case 'setDraftMessage': {\r\n return { ...state, currentDraftMessage: action.draftMessage };\r\n }\r\n case 'setAllowedSenders': {\r\n return { ...state, allowedSenders: action.senders };\r\n }\r\n case 'setParentId': {\r\n return { ...state, parentId: action.parentId };\r\n }\r\n case 'setNumberOfUnreadMessages': {\r\n return { ...state, numberOfUnreadMessages: action.numberOfUnreadMessages };\r\n }\r\n case 'setSelectedThread': {\r\n return { ...state, selectedThread: action.thread };\r\n }\r\n case 'setIsMessageExpanded': {\r\n const index = state.selectedThread?.messages.findIndex((m) => m.id === action.messageId);\r\n\r\n if (index !== undefined && state.selectedThread) {\r\n const messages = [...state.selectedThread.messages];\r\n messages[index].isExpanded = action.isExpanded;\r\n\r\n return { ...state, selectedThread: { ...state.selectedThread, messages } };\r\n }\r\n\r\n return state;\r\n }\r\n case 'updateMessages': {\r\n if (state.selectedThread) {\r\n const previewIndex = state.selectedThread?.messages.findIndex((m) => m.id === action.message.id);\r\n if (previewIndex !== undefined) {\r\n const messages = [...state.selectedThread.messages];\r\n messages[previewIndex] = action.message;\r\n\r\n return { ...state, selectedThread: { ...state.selectedThread, messages } };\r\n }\r\n }\r\n\r\n return state;\r\n }\r\n case 'setSender': {\r\n return { ...state, sender: action.sender };\r\n }\r\n\r\n default: {\r\n return state;\r\n }\r\n }\r\n};\r\n","import React, { createContext, FunctionComponent, useCallback, useReducer, useRef } from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { MessageContextState, MessageContextType, Recipient, ThreadMessageViewModel, ThreadViewModel } from './MessageContext.types';\r\nimport reducer from './MessageContext.reducer';\r\nimport Routing from '../../routing/routing';\r\nimport { useMessagesEndpoint } from '../../hooks/useMessagesEndpoint';\r\nimport { useFSLQuery } from '../../hooks/useFslQueryHook';\r\n\r\nconst initialState: MessageContextState = {\r\n recipients: [],\r\n topic: '',\r\n currentDraftMessage: '',\r\n allowedSenders: [],\r\n parentId: undefined,\r\n numberOfUnreadMessages: 0,\r\n selectedThread: undefined,\r\n sender: undefined,\r\n};\r\n\r\nexport const MessageContext = createContext({\r\n state: initialState,\r\n openNewMessage: () => null,\r\n openReplyMessage: () => null,\r\n setRecipients: () => null,\r\n updateTopic: () => null,\r\n setDraftMessage: () => null,\r\n updateSelectedThread: () => null,\r\n setMessageExpanded: () => null,\r\n updateMessages: () => null,\r\n});\r\n\r\nexport const MessageProvider: FunctionComponent = ({ children }) => {\r\n const [state, dispatch] = useReducer(reducer, initialState);\r\n const { push } = useHistory();\r\n const isInitializing = useRef(true);\r\n const { fetchSenders, fetchNumberOfReadMessages } = useMessagesEndpoint();\r\n\r\n useFSLQuery('sender', fetchSenders, { onSuccess: (data) => dispatch({ type: 'setAllowedSenders', senders: data }) });\r\n useFSLQuery('numberOfReadMessages', fetchNumberOfReadMessages, {\r\n onSuccess: (data) => dispatch({ type: 'setNumberOfUnreadMessages', numberOfUnreadMessages: data?.count ?? 0 }),\r\n });\r\n\r\n const updateStateOnNewMessage = useCallback(\r\n (positionOfTrustMessage: boolean, recipients: Recipient[], parentId: string | undefined, sender: Recipient | undefined) => {\r\n dispatch({ type: 'setRecipients', recipients: recipients ?? [] });\r\n dispatch({ type: 'setTopic', topic: '' });\r\n dispatch({ type: 'setParentId', parentId });\r\n dispatch({ type: 'setSender', sender });\r\n },\r\n []\r\n );\r\n\r\n const openReplyMessage = useCallback(\r\n (parentId: string) => {\r\n updateStateOnNewMessage(false, [], parentId, undefined);\r\n push(Routing.reply);\r\n },\r\n [push, updateStateOnNewMessage]\r\n );\r\n\r\n const openNewMessage = useCallback(\r\n (positionOfTrustMessage: boolean, recipients: Recipient[], sender: Recipient | undefined) => {\r\n updateStateOnNewMessage(positionOfTrustMessage, recipients ?? [], undefined, sender);\r\n push(Routing.newMessage);\r\n },\r\n [push, updateStateOnNewMessage]\r\n );\r\n\r\n const setRecipients = useCallback((recipients: Recipient[]) => {\r\n dispatch({ type: 'setRecipients', recipients });\r\n }, []);\r\n\r\n const updateTopic = useCallback((topic: string) => {\r\n dispatch({ type: 'setTopic', topic });\r\n }, []);\r\n\r\n const setDraftMessage = useCallback((draftMessage: string) => {\r\n dispatch({ type: 'setDraftMessage', draftMessage });\r\n }, []);\r\n\r\n const updateSelectedThread = useCallback((thread: ThreadViewModel | undefined) => {\r\n dispatch({ type: 'setSelectedThread', thread });\r\n }, []);\r\n\r\n const setMessageExpanded = useCallback((messageId: string, isExpanded: boolean) => {\r\n dispatch({ type: 'setIsMessageExpanded', messageId, isExpanded });\r\n }, []);\r\n\r\n const updateMessages = useCallback((message: ThreadMessageViewModel) => {\r\n dispatch({ type: 'updateMessages', message });\r\n }, []);\r\n\r\n isInitializing.current = false;\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n","import { useCallback } from 'react';\r\nimport { post, put, get, deleteRequest } from '../api';\r\nimport {\r\n AttachmentApi,\r\n DraftApiResponse,\r\n MessagesApiResponse,\r\n PaginatedApiResponse,\r\n SenderApiResponse,\r\n SentMessagesApiResponse,\r\n ThreadApiResponse,\r\n ThreadMessageApiResponse,\r\n} from '../api/responseTypes';\r\nimport { Recipient } from '../contexts/MessageContext/MessageContext.types';\r\n\r\nexport const useMessagesEndpoint = () => {\r\n const messagesEndpoint = '/messages';\r\n const draftEndpoint = `${messagesEndpoint}/drafts`;\r\n const threadEndpoint = `${messagesEndpoint}/threads`;\r\n\r\n const deleteMessage = useCallback(async (messageId: string) => {\r\n try {\r\n await deleteRequest(`${messagesEndpoint}/${messageId}`, undefined);\r\n } catch (error) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }, []);\r\n\r\n const deleteThread = useCallback(\r\n async (threadId: string) => {\r\n try {\r\n await deleteRequest(`${threadEndpoint}/${threadId}`, undefined);\r\n } catch (error) {\r\n return false;\r\n }\r\n return true;\r\n },\r\n [threadEndpoint]\r\n );\r\n\r\n const fetchMessage = useCallback(async (messageId: string): Promise => {\r\n const result = await get(`${messagesEndpoint}/${messageId}`);\r\n if (result) {\r\n return result.json();\r\n }\r\n return new Promise(() => undefined);\r\n }, []);\r\n\r\n const fetchSentMessages = useCallback(async (pageSize: number, pageNumber: number): Promise> => {\r\n const result = await get(`${messagesEndpoint}/sent?pageSize=${pageSize}&pageNo=${pageNumber}`);\r\n if (result) {\r\n return result.json();\r\n }\r\n return new Promise(() => undefined);\r\n }, []);\r\n\r\n const deleteAttachment = useCallback(\r\n async (draftId: string, attachmentId: string) => {\r\n await deleteRequest(`${draftEndpoint}/${draftId}/attachments/${attachmentId}`, {});\r\n },\r\n [draftEndpoint]\r\n );\r\n\r\n const postAttachment = useCallback(\r\n async (file: File, draftId: string): Promise => {\r\n const formData = new FormData();\r\n formData.append(file.name, file);\r\n const result = await post(formData, `${draftEndpoint}/${draftId}/attachments`, {\r\n uploadFile: true,\r\n });\r\n if (result) {\r\n return result.json();\r\n }\r\n return new Promise(() => undefined);\r\n },\r\n [draftEndpoint]\r\n );\r\n\r\n const fetchSenders = useCallback(async (): Promise => {\r\n const result = await get(`${messagesEndpoint}/contacts/senders`);\r\n if (result) {\r\n return result.json();\r\n }\r\n\r\n return new Promise(() => undefined);\r\n }, []);\r\n\r\n const sendMessage = useCallback(\r\n async (draftId: string) => {\r\n await post(undefined, `${draftEndpoint}/${draftId}/send`);\r\n },\r\n [draftEndpoint]\r\n );\r\n\r\n const fetchDraft = useCallback(\r\n async (draftId: string): Promise => {\r\n const result = await get(`${draftEndpoint}/${draftId}`);\r\n if (result) {\r\n return result.json();\r\n }\r\n return undefined;\r\n },\r\n [draftEndpoint]\r\n );\r\n\r\n const updateDraftReplyMessage = useCallback(\r\n (draftMessageId: string, body: string) => {\r\n put({ body }, `${draftEndpoint}/${draftMessageId}`);\r\n },\r\n [draftEndpoint]\r\n );\r\n\r\n const updateDraftNewMessage = useCallback(\r\n (draftMessageId: string, subject?: string, body?: string, recipientsCanSeeEachOther?: boolean) => {\r\n put({ subject, body, recipientsCanSeeEachOther }, `${draftEndpoint}/${draftMessageId}`);\r\n },\r\n [draftEndpoint]\r\n );\r\n\r\n const postReply = useCallback(\r\n async (parentId: string) => {\r\n const response = await post({ parentId }, draftEndpoint);\r\n const { id } = await response.json();\r\n return id;\r\n },\r\n [draftEndpoint]\r\n );\r\n\r\n const postDraftMessage = useCallback(\r\n async (subject?: string, body?: string, recipientsCanSeeEachOther?: boolean, recipients?: Recipient[], sender?: Recipient) => {\r\n const response = await post({ subject, body: body ?? '', recipientsCanSeeEachOther, recipients: recipients ?? [], sender }, draftEndpoint);\r\n const { id } = await response.json();\r\n return id;\r\n },\r\n [draftEndpoint]\r\n );\r\n\r\n const fetchMessages = useCallback(\r\n async (pageSize: number, pageNumber: number): Promise> => {\r\n const result = await get(`${threadEndpoint}?pageSize=${pageSize}&pageNo=${pageNumber}`);\r\n return result.json();\r\n },\r\n [threadEndpoint]\r\n );\r\n\r\n const fetchThread = useCallback(\r\n async (threadId: string): Promise => {\r\n const result = await get(`${threadEndpoint}/${threadId}`);\r\n if (result) {\r\n return result.json();\r\n }\r\n\r\n return new Promise(() => []);\r\n },\r\n [threadEndpoint]\r\n );\r\n\r\n const markMessageAsRead = useCallback(async (obj: { id: string }): Promise => {\r\n const response = await post(undefined, `/messages/${obj.id}/read`);\r\n return response;\r\n }, []);\r\n\r\n const fetchNumberOfReadMessages = useCallback(async () => {\r\n const response = await get('/messages/numberOfUnreadMessages');\r\n if (response) {\r\n return response.json();\r\n }\r\n\r\n return new Promise(() => 0);\r\n }, []);\r\n\r\n return {\r\n fetchMessage,\r\n fetchMessages,\r\n markMessageAsRead,\r\n deleteMessage,\r\n postDraftMessage,\r\n updateDraftNewMessage,\r\n updateDraftReplyMessage,\r\n sendMessage,\r\n fetchThread,\r\n fetchDraft,\r\n fetchNumberOfReadMessages,\r\n fetchSenders,\r\n postReply,\r\n postAttachment,\r\n deleteAttachment,\r\n fetchSentMessages,\r\n deleteThread,\r\n };\r\n};\r\n","import { CircularProgress } from '@material-ui/core';\r\nimport React, { CSSProperties } from 'react';\r\nimport { CenterContent } from '../../misc';\r\n\r\nexport interface IProgressSpinnerProps {\r\n style?: CSSProperties;\r\n className?: string;\r\n}\r\n\r\nexport function ProgressSpinner({ style, className }: IProgressSpinnerProps) {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport function InlineSpinner({ style, className }: IProgressSpinnerProps) {\r\n return ;\r\n}\r\n","// From https://stackoverflow.com/a/36862446\r\nimport { useState, useEffect } from 'react';\r\n\r\nfunction getWindowDimensions() {\r\n const { innerWidth: windowWidth, innerHeight: windowHeight } = window;\r\n return {\r\n windowWidth,\r\n windowHeight,\r\n };\r\n}\r\n\r\nexport default function useWindowDimensions() {\r\n const [windowDimensions, setWindowDimensions] = useState(getWindowDimensions());\r\n\r\n useEffect(() => {\r\n function handleResize() {\r\n setWindowDimensions(getWindowDimensions());\r\n }\r\n\r\n window.addEventListener('resize', handleResize);\r\n return () => window.removeEventListener('resize', handleResize);\r\n }, []);\r\n\r\n return windowDimensions;\r\n}\r\n","import { ReactPlugin } from '@microsoft/applicationinsights-react-js';\r\nimport { ApplicationInsights } from '@microsoft/applicationinsights-web';\r\nimport { useContext } from 'react';\r\nimport { ApplicationInsightsContext } from './ApplicationInsightsContext';\r\n\r\nexport function useApplicationInsights() {\r\n return useContext(ApplicationInsightsContext)?.appInsights ?? new ApplicationInsights({ config: { instrumentationKey: 'dummy', disableTelemetry: true } });\r\n}\r\n\r\nexport function useApplicationInsightsReactPlugin() {\r\n return useContext(ApplicationInsightsContext)?.reactPlugin ?? new ReactPlugin();\r\n}\r\n","var _g;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgChecked(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 15,\n height: 15,\n viewBox: \"0 0 15 15\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_950\",\n \"data-name\": \"Group 950\",\n transform: \"translate(-516 -368)\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Rectangle_410\",\n \"data-name\": \"Rectangle 410\",\n transform: \"translate(516 368)\",\n fill: \"#112f4a\",\n stroke: \"#112f4a\",\n strokeWidth: 1\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 15,\n height: 15,\n rx: 3,\n stroke: \"none\"\n }), /*#__PURE__*/React.createElement(\"rect\", {\n x: 0.5,\n y: 0.5,\n width: 14,\n height: 14,\n rx: 2.5,\n fill: \"none\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n id: \"tick-kopi\",\n transform: \"translate(518 303.715)\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_918\",\n \"data-name\": \"Group 918\",\n transform: \"translate(0 67.997)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_1240\",\n \"data-name\": \"Path 1240\",\n d: \"M11.665,68.171a.592.592,0,0,0-.837,0L3.736,75.263,1.01,72.537a.592.592,0,0,0-.837.837l3.145,3.145a.592.592,0,0,0,.837,0l7.511-7.511A.592.592,0,0,0,11.665,68.171Z\",\n transform: \"translate(0 -67.998)\",\n fill: \"#fff\"\n }))))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgChecked);\nexport default __webpack_public_path__ + \"static/media/Checked.a08cf9b5.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgUnchecked(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 15,\n height: 15,\n viewBox: \"0 0 15 15\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Rectangle_412\",\n \"data-name\": \"Rectangle 412\",\n fill: \"none\",\n stroke: \"#112f4a\",\n strokeWidth: 1\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 15,\n height: 15,\n rx: 3,\n stroke: \"none\"\n }), /*#__PURE__*/React.createElement(\"rect\", {\n x: 0.5,\n y: 0.5,\n width: 14,\n height: 14,\n rx: 2.5,\n fill: \"none\"\n }))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgUnchecked);\nexport default __webpack_public_path__ + \"static/media/Unchecked.de867b5a.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react';\r\nimport { FormControl, FormLabel, FormGroup, FormControlLabel, Checkbox, FormHelperText } from '@material-ui/core';\r\nimport { CheckboxProps } from '@material-ui/core/Checkbox/Checkbox';\r\nimport { FormControlLabelProps } from '@material-ui/core/FormControlLabel/FormControlLabel';\r\nimport { ReactComponent as CheckedIcon } from '../../images/Checked.svg';\r\nimport { ReactComponent as UncheckedIcon } from '../../images/Unchecked.svg';\r\nimport { useFslCheckboxStyles } from './FslCheckbox.styles';\r\n\r\nexport type FslCheckBoxTuple = [Omit, CheckboxProps];\r\nexport enum CheckboxVariant {\r\n Default,\r\n Red,\r\n}\r\ninterface IFslCheckBoxProps {\r\n checkboxes: Array;\r\n label?: string;\r\n helperText?: string;\r\n variant?: CheckboxVariant;\r\n}\r\n\r\nexport function FslCheckBox({ label, checkboxes, helperText, variant = CheckboxVariant.Default }: IFslCheckBoxProps) {\r\n const classes = useFslCheckboxStyles();\r\n\r\n return (\r\n \r\n {label}\r\n \r\n {checkboxes.map(([formProps, checkboxProps]) => (\r\n }\r\n icon={}\r\n {...checkboxProps}\r\n />\r\n }\r\n {...formProps}\r\n />\r\n ))}\r\n \r\n {helperText}\r\n \r\n );\r\n}\r\n","import { createStyles, makeStyles, Theme } from '@material-ui/core';\r\n\r\nexport const useFslCheckboxStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n checkedRedVariant: {\r\n '& g': {\r\n stroke: theme.customPalette.white,\r\n },\r\n '& :first-child g:first-child rect:first-child': {\r\n stroke: theme.customPalette.white,\r\n },\r\n '& :first-child g:first-child rect': {\r\n stroke: theme.customPalette.red,\r\n },\r\n '& :first-child g:first-child': {\r\n fill: theme.customPalette.red,\r\n },\r\n },\r\n uncheckedRedVariant: {\r\n '& g': {\r\n stroke: theme.customPalette.red,\r\n },\r\n '& :first-child g:first-child': {\r\n stroke: theme.customPalette.white,\r\n },\r\n },\r\n formControlLabel: {\r\n marginLeft: 0,\r\n marginRight: 0,\r\n },\r\n })\r\n);\r\n","import { createStyles, makeStyles, Theme } from '@material-ui/core';\r\n\r\nexport const usePanelStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n padding: '37px 30px',\r\n overflow: 'hidden',\r\n },\r\n accordionRoot: {\r\n padding: '14px 30px 30px 30px',\r\n minHeight: '0',\r\n '& .MuiAccordionSummary-content': {\r\n margin: '0',\r\n },\r\n '& .MuiAccordionSummary-content.Mui-expanded': {\r\n margin: '0',\r\n },\r\n },\r\n header: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n },\r\n title: {\r\n textTransform: 'uppercase',\r\n overflow: 'hidden',\r\n whiteSpace: 'nowrap',\r\n fontSize: '16px',\r\n marginTop: '0',\r\n },\r\n accordionTitle: {\r\n margin: '0',\r\n },\r\n accordionIcon: {\r\n fill: theme.customPalette.red,\r\n },\r\n accordionBar: {\r\n width: '100%',\r\n [theme.breakpoints.up('sm')]: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n },\r\n [theme.breakpoints.down('xs')]: {\r\n padding: '5px',\r\n },\r\n },\r\n })\r\n);\r\n","import React, { FunctionComponent, ReactNode, useState } from 'react';\r\nimport clsx from 'clsx';\r\nimport { Grid, Accordion, AccordionSummary, AccordionDetails } from '@material-ui/core';\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\r\nimport { usePanelStyles } from './Panel.styles';\r\n\r\ninterface IPanelProps {\r\n title?: string;\r\n showAccordion?: boolean;\r\n edit?: ReactNode;\r\n sendMessageComponent?: JSX.Element;\r\n}\r\n\r\nconst Panel: FunctionComponent = ({ children, title, showAccordion, edit, sendMessageComponent }) => {\r\n const [expanded, setExpanded] = useState(true);\r\n\r\n const classes = usePanelStyles();\r\n\r\n return (\r\n
\r\n {showAccordion ? (\r\n setExpanded((state) => !state)}>\r\n }>\r\n
\r\n
{title}
\r\n {sendMessageComponent || undefined}\r\n
\r\n
\r\n \r\n {children}\r\n \r\n
\r\n ) : (\r\n <>\r\n
\r\n {title ?
{title}
: null}\r\n {edit}\r\n
\r\n {children}\r\n \r\n )}\r\n
\r\n );\r\n};\r\n\r\nconst Content: FunctionComponent = ({ children }) => {\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport default Panel;\r\n","import React, { useCallback, useContext, useMemo } from 'react';\r\nimport { ModalInfo, ModalOptions, ModalProps } from './Modal.types';\r\nimport { ModalContext } from '../../contexts/ModalProvider/ModalProvider';\r\n\r\nexport function useModal() {\r\n const { setModalState, modalState } = useContext(ModalContext);\r\n\r\n const openModal = useCallback(\r\n (title: string, componentConstructor: React.ComponentType, optionsAndProps?: ModalOptions & { props?: TProps & ModalProps }) => {\r\n const { props, ...options } = optionsAndProps ?? {};\r\n\r\n setModalState({ title, props, options, componentConstructor, open: true } as ModalInfo);\r\n },\r\n [setModalState]\r\n );\r\n\r\n const toggleModal = useCallback(() => {\r\n setModalState(\r\n (prev) =>\r\n ({ componentConstructor: prev?.componentConstructor, props: prev?.props, title: prev?.title, options: prev?.options, open: !prev?.open } as ModalInfo)\r\n );\r\n }, [setModalState]);\r\n\r\n const closeModal = useCallback(() => {\r\n setModalState((prev) => {\r\n if (prev) return { ...prev, open: false };\r\n return null;\r\n });\r\n }, [setModalState]);\r\n\r\n const isModalOpen = useMemo(() => {\r\n return modalState?.open ?? false;\r\n }, [modalState]);\r\n\r\n return { openModal, toggleModal, isModalOpen, closeModal };\r\n}\r\n","import { OptionsObject, SnackbarAction, useSnackbar, VariantType } from 'notistack';\r\nimport { ReactNode } from 'react';\r\n\r\nexport type FslSnackbarOptions = { autoHideDuration?: number } & { action?: SnackbarAction };\r\n\r\nexport const useFslSnackbar = () => {\r\n const { enqueueSnackbar, closeSnackbar } = useSnackbar();\r\n\r\n const parseSnackbarAction = (options?: FslSnackbarOptions): SnackbarAction | undefined => {\r\n if (options) {\r\n if ('action' in options && options.action) {\r\n return options.action;\r\n }\r\n }\r\n\r\n return undefined;\r\n };\r\n\r\n const parseSnackbarOptions = (variant: VariantType, options?: FslSnackbarOptions): OptionsObject => {\r\n return {\r\n variant,\r\n autoHideDuration: options?.autoHideDuration ?? 5000,\r\n preventDuplicate: true,\r\n anchorOrigin: { horizontal: 'right', vertical: 'bottom' },\r\n onClick: () => closeSnackbar(),\r\n action: parseSnackbarAction(options),\r\n };\r\n };\r\n\r\n const successSnackbar = (content: ReactNode, options?: FslSnackbarOptions) => {\r\n enqueueSnackbar(content, parseSnackbarOptions('success', options));\r\n };\r\n\r\n const failureSnackbar = (content: ReactNode, options?: FslSnackbarOptions & { logError?: any }) => {\r\n enqueueSnackbar(content, parseSnackbarOptions('error', options));\r\n };\r\n\r\n return { successSnackbar, failureSnackbar, enqueueSnackbar, closeSnackbar };\r\n};\r\n","import { createStyles, makeStyles, Theme } from '@material-ui/core';\r\n\r\nexport const useContentStyles = makeStyles((theme: Theme) => {\r\n const contentMargin = 3 * theme.spacing();\r\n return createStyles({\r\n root: {\r\n width: 'calc(100% - 389px)',\r\n margin: `50px ${contentMargin}px 0 ${contentMargin}px`,\r\n [theme.breakpoints.down('xs')]: {\r\n margin: theme.spacing(),\r\n width: 'auto',\r\n },\r\n },\r\n header: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n },\r\n titleSection: {\r\n paddingLeft: theme.spacing(),\r\n marginBottom: '20px',\r\n '& h1': {\r\n margin: '0 0 8px 0',\r\n },\r\n '& h2': {\r\n margin: '0',\r\n },\r\n [theme.breakpoints.down('xs')]: {\r\n display: (props) => `${props.showTitleOnMobile ? 'inline-block' : 'none'}`,\r\n '& h1': {\r\n fontSize: '16px',\r\n },\r\n },\r\n },\r\n rightCornerComponent: {\r\n height: '60px',\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignSelf: 'center',\r\n [theme.breakpoints.down('xs')]: {\r\n width: (props) => `${props.showTitleOnMobile ? 'auto' : '100%'}`,\r\n },\r\n },\r\n spinner: {\r\n height: (props) => `${props.windowHeight - 120}px`,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n });\r\n});\r\n","import { CircularProgress } from '@material-ui/core';\r\nimport React, { FunctionComponent, ReactNode } from 'react';\r\nimport useWindowDimensions from '../../hooks/useWindowDimensions';\r\nimport { useContentStyles } from './ContentWrapper.styles';\r\n\r\ninterface IContentWrapperProps {\r\n title?: { text: string; showOnMobile?: boolean };\r\n subTitle?: string;\r\n isLoading?: boolean;\r\n rightCornerComponent?: ReactNode;\r\n}\r\n\r\nconst ContentWrapper: FunctionComponent = ({ title, subTitle, isLoading, children, rightCornerComponent }) => {\r\n const { windowHeight } = useWindowDimensions();\r\n const classes = useContentStyles({ windowHeight, showTitleOnMobile: title?.showOnMobile });\r\n\r\n return (\r\n
\r\n
\r\n
\r\n

{title?.text}

\r\n

{subTitle}

\r\n
\r\n {rightCornerComponent &&
{rightCornerComponent}
}\r\n
\r\n {isLoading ? (\r\n
\r\n \r\n
\r\n ) : (\r\n children\r\n )}\r\n
\r\n );\r\n};\r\n\r\nexport default ContentWrapper;\r\n","import { makeStyles, Theme } from '@material-ui/core';\r\n\r\nexport const useFSLDatePickerStyles = makeStyles((theme: Theme) => ({\r\n root: {\r\n '& svg': {\r\n fill: theme.customPalette.red,\r\n },\r\n },\r\n}));\r\n","import React, { FunctionComponent } from 'react';\r\nimport DateFnsUtils from '@date-io/date-fns';\r\nimport da from 'date-fns/locale/da';\r\nimport en from 'date-fns/locale/en-GB';\r\nimport { MuiPickersUtilsProvider, KeyboardDatePicker, KeyboardDatePickerProps } from '@material-ui/pickers';\r\nimport { useTranslation } from '@fsl/fsl.common.npm';\r\nimport { MaterialUiPickersDate } from '@material-ui/pickers/typings/date';\r\nimport BasicTextField from '../../input/BasicTextField/BasicTextField';\r\nimport { useFSLDatePickerStyles } from './FSLDatePicker.styles';\r\n\r\ninterface IFSLDatePickerProps {\r\n label: string;\r\n date: Date | undefined;\r\n onDateChanged: (d: Date | undefined) => void;\r\n error?: boolean | undefined;\r\n helperText?: React.ReactNode;\r\n disabled?: boolean;\r\n datepickerProps?: Omit;\r\n}\r\n\r\nconst FSLDatePicker: FunctionComponent = ({ label, date, onDateChanged, error, helperText, datepickerProps, disabled }): JSX.Element => {\r\n const { translateDate, language } = useTranslation();\r\n const classes = useFSLDatePickerStyles();\r\n\r\n return (\r\n \r\n onDateChanged(d || undefined)}\r\n KeyboardButtonProps={{\r\n 'aria-label': 'change date',\r\n }}\r\n TextFieldComponent={(props) => (\r\n \r\n )}\r\n {...datepickerProps}\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default FSLDatePicker;\r\n","import { MutableRefObject } from 'react';\r\n\r\nexport function delay(delayInMillis: number): Promise {\r\n return new Promise((resolve) => {\r\n setTimeout(resolve, delayInMillis);\r\n });\r\n}\r\n\r\nexport function mergeRefs(...refs: React.Ref[]): React.Ref {\r\n const filteredRefs = refs.concat();\r\n\r\n if (!filteredRefs.length) return null;\r\n if (filteredRefs.length === 0) return filteredRefs[0];\r\n\r\n return (inst: T) => {\r\n filteredRefs.forEach((ref) => {\r\n if (typeof ref === 'function') {\r\n ref(inst);\r\n } else if (ref) {\r\n (ref as MutableRefObject).current = inst;\r\n }\r\n });\r\n };\r\n}\r\n\r\nexport function makeKeysUpperCase(obj: Record): Record {\r\n const result: Record = {};\r\n\r\n Object.entries(obj).forEach(([key, value]) => {\r\n result[key.toUpperCase()] = value;\r\n });\r\n\r\n return result;\r\n}\r\n\r\nexport interface IDictionary {\r\n lookup(key: string, defaultValue?: T | undefined): T | undefined;\r\n lookup(key: string, defaultValue?: () => T | undefined): T | undefined;\r\n}\r\n\r\nexport function toDictionary(obj: Record): IDictionary {\r\n obj = makeKeysUpperCase(obj);\r\n\r\n return {\r\n lookup: (key: string, defaultValue?: T | (() => T | undefined)) => {\r\n const value = obj[`${key}`.toUpperCase()];\r\n\r\n if (value) return value;\r\n if (!defaultValue) return undefined;\r\n\r\n if (defaultValue instanceof Function) return defaultValue();\r\n\r\n return defaultValue;\r\n },\r\n };\r\n}\r\n\r\ntype Defined = Exclude;\r\nexport function toArray>(value?: T | T[] | undefined | null): Defined[] {\r\n if (!value) return [];\r\n\r\n if (Array.isArray(value)) return value.filter((v) => !!v) as Defined[];\r\n\r\n return [value as Defined];\r\n}\r\n\r\nexport function makeRegExpCaseInsensitive(regexp: RegExp): RegExp {\r\n if (regexp.ignoreCase) {\r\n return regexp;\r\n }\r\n\r\n return new RegExp(regexp.source, `${regexp.flags}i`);\r\n}\r\n\r\nexport function isValidDate(d: Date) {\r\n // eslint-disable-next-line no-restricted-globals\r\n return !isNaN(d.getTime());\r\n}\r\n\r\nexport const sortDateAsc = (a: Date | null | undefined, b: Date | null | undefined) => {\r\n if (a && b) {\r\n if (a < b) return -1;\r\n if (a > b) return 1;\r\n return 0;\r\n }\r\n if (!a) return -1;\r\n if (!b) return 1;\r\n return 0;\r\n};\r\n\r\nexport const sortDateDesc = (a: Date | null | undefined, b: Date | null | undefined) => {\r\n return sortDateAsc(a, b) * -1;\r\n};\r\n","import { UserSelectionState, UserSelectionAction } from './UserSelectionContext.types';\r\n\r\nexport default (state: UserSelectionState, action: UserSelectionAction): UserSelectionState => {\r\n switch (action.type) {\r\n case 'setSelectedSchoolId': {\r\n return { ...state, selectedSchoolId: action.schooldId };\r\n }\r\n case 'setSelectedDistrictId': {\r\n return { ...state, selectedDistrictId: action.districtId };\r\n }\r\n case 'setSelectedInboxPage': {\r\n return { ...state, selectedInboxPage: action.inboxPage };\r\n }\r\n case 'setSelectedSentMessagesPage': {\r\n return { ...state, selectedSentMessagesPage: action.sentMessagesPage };\r\n }\r\n default: {\r\n return state;\r\n }\r\n }\r\n};\r\n","import React, { createContext, FunctionComponent, useCallback, useReducer } from 'react';\r\nimport { UserSelectionState, UserSelectionType } from './UserSelectionContext.types';\r\nimport reducer from './UserSelectionContext.reducer';\r\n\r\nconst initialState: UserSelectionState = {\r\n selectedSchoolId: undefined,\r\n selectedDistrictId: undefined,\r\n selectedInboxPage: 1,\r\n selectedSentMessagesPage: 1,\r\n};\r\n\r\nexport const UserSelectionContext = createContext({\r\n state: initialState,\r\n setSelectedSchoolId: () => null,\r\n setSelectedDistrictId: () => null,\r\n setSelectedInboxPage: () => null,\r\n setSelectedSentMessagesPage: () => null,\r\n});\r\n\r\nexport const UserSelectionProvider: FunctionComponent = ({ children }) => {\r\n const [state, dispatch] = useReducer(reducer, initialState);\r\n\r\n const setSelectedSchoolId = useCallback((schooldId: string | undefined) => {\r\n dispatch({ type: 'setSelectedSchoolId', schooldId });\r\n }, []);\r\n\r\n const setSelectedDistrictId = useCallback((districtId: string | undefined) => {\r\n dispatch({ type: 'setSelectedDistrictId', districtId });\r\n }, []);\r\n\r\n const setSelectedInboxPage = useCallback((inboxPage: number) => {\r\n dispatch({ type: 'setSelectedInboxPage', inboxPage });\r\n }, []);\r\n\r\n const setSelectedSentMessagesPage = useCallback((sentMessagesPage: number) => {\r\n dispatch({ type: 'setSelectedSentMessagesPage', sentMessagesPage });\r\n }, []);\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n","import React, { FunctionComponent } from 'react';\r\nimport { useTranslation } from '@fsl/fsl.common.npm';\r\nimport { Typography } from '@material-ui/core';\r\n\r\nconst GeneralErrorSnackbar: FunctionComponent = () => {\r\n const { translateString } = useTranslation();\r\n return (\r\n
\r\n
\r\n {translateString('general_error_message_edit_1')}\r\n
\r\n
\r\n {translateString('general_error_message_edit_2')}\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default GeneralErrorSnackbar;\r\n","import { useTranslation } from '@fsl/fsl.common.npm';\r\nimport { useCallback } from 'react';\r\nimport { MemberType } from '../api/responseTypes';\r\n\r\nexport const useMemberTypeFormatter = () => {\r\n const { translateString } = useTranslation();\r\n\r\n const formatMemberType = useCallback(\r\n (memberType: MemberType | undefined) => {\r\n if (!memberType) {\r\n return '';\r\n }\r\n let memberTypeText = '';\r\n\r\n switch (memberType) {\r\n case 'Employed':\r\n memberTypeText = translateString('employed');\r\n break;\r\n case 'Left': {\r\n memberTypeText = translateString('membertype_left');\r\n break;\r\n }\r\n case 'Retired':\r\n memberTypeText = translateString('membertype_retired');\r\n break;\r\n case 'Student':\r\n memberTypeText = translateString('membertype_student');\r\n break;\r\n case 'Unemployed':\r\n memberTypeText = translateString('membertype_unemployed');\r\n break;\r\n default:\r\n memberTypeText = translateString('membertype_other');\r\n }\r\n\r\n return memberTypeText;\r\n },\r\n [translateString]\r\n );\r\n\r\n return { formatMemberType };\r\n};\r\n","import { Slide } from '@material-ui/core';\r\nimport React, { FunctionComponent } from 'react';\r\nimport FadeComponent from '../FadeComponent/FadeComponent';\r\n\r\nexport type SlideDirection = 'left' | 'right' | 'up' | 'down' | undefined;\r\n\r\ninterface ISlideComponentProps {\r\n slideDirection: SlideDirection;\r\n contentClassname?: string;\r\n}\r\n\r\nconst SlideComponent: FunctionComponent = ({ children, slideDirection, contentClassname }) => {\r\n if (slideDirection) {\r\n return (\r\n \r\n
{children}
\r\n
\r\n );\r\n }\r\n\r\n return (\r\n \r\n
{children}
\r\n
\r\n );\r\n};\r\n\r\nexport default SlideComponent;\r\n","const frontpage = '/';\r\nconst courses = '/kurser';\r\nconst membership = '/medlemskab';\r\nconst school = '/skole';\r\nconst district = '/kreds';\r\nconst logout = '/logout';\r\nconst newMember = '/nytmedlem';\r\nconst messages = '/beskeder';\r\nconst newMessage = '/nybesked';\r\nconst reply = '/besvar';\r\nconst mailValidation = '/verifyemail';\r\nconst fslAutoRedirectLogin = '/fslAutoRedirect';\r\nconst fslCallback = '/fslcallback';\r\nconst cases = '/cases';\r\n\r\nconst Routing = {\r\n frontpage,\r\n courses,\r\n membership,\r\n school,\r\n district,\r\n logout,\r\n newMember,\r\n messages,\r\n cases,\r\n newMessage,\r\n mailValidation,\r\n reply,\r\n fslAutoRedirectLogin,\r\n fslCallback,\r\n};\r\n\r\nexport default Routing;\r\n","import { Theme } from '@material-ui/core';\r\nimport { useMemo } from 'react';\r\nimport { useTranslation } from '@fsl/fsl.common.npm';\r\nimport { MemberEconomyStatus, MemberStatus } from '../../../../api/responseTypes';\r\n\r\nexport const useBalanceFormatter = (balance: number | undefined, balanceColor: string, translateNumber: (n: number) => string) => {\r\n const balanceText = useMemo(() => {\r\n if (balance === undefined) {\r\n return '';\r\n }\r\n return `${translateNumber(balance)} kr`;\r\n }, [balance, translateNumber]);\r\n\r\n const highlightBalance = useMemo(() => {\r\n if (balance && balance < 0) {\r\n return { valueColor: balanceColor };\r\n }\r\n return undefined;\r\n }, [balance, balanceColor]);\r\n\r\n return { balanceText, highlightBalance };\r\n};\r\n\r\nexport const useMemberStatusFormatter = (status: MemberStatus | MemberEconomyStatus, theme: Theme) => {\r\n const { translateString } = useTranslation();\r\n let color = '';\r\n let text = '';\r\n switch (status) {\r\n case 'Exempt': {\r\n color = theme.customPalette.yellow;\r\n text = translateString('exempt');\r\n break;\r\n }\r\n case 'Active': {\r\n color = theme.customPalette.green;\r\n text = translateString('active');\r\n break;\r\n }\r\n case 'AttentionNeeded': {\r\n color = theme.customPalette.red;\r\n text = translateString('attention_needed');\r\n break;\r\n }\r\n case 'Inactive': {\r\n color = theme.customPalette.red;\r\n text = translateString('inactive');\r\n break;\r\n }\r\n case 'UnderWaitingPeriod': {\r\n color = theme.customPalette.yellow;\r\n text = translateString('waiting_period');\r\n break;\r\n }\r\n default: {\r\n color = theme.customPalette.grey;\r\n text = translateString('unknown');\r\n }\r\n }\r\n\r\n return { memberStatusColor: color, memberStatusText: text };\r\n};\r\n","import { createStyles, makeStyles, Theme } from '@material-ui/core';\r\n\r\nexport const useMySubscriptionStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n width: '100%',\r\n display: 'flex',\r\n [theme.breakpoints.down('xs')]: {\r\n flexDirection: 'column',\r\n },\r\n },\r\n sidePanel: {\r\n width: '148px',\r\n backgroundColor: theme.customPalette.lightGrey,\r\n padding: '20px',\r\n [theme.breakpoints.down('xs')]: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n width: 'calc(100% - 40px)',\r\n },\r\n },\r\n sidePanelHeader: {\r\n fontWeight: theme.fontWeight,\r\n textTransform: 'uppercase',\r\n marginBottom: theme.spacing(),\r\n [theme.breakpoints.down('xs')]: {\r\n display: 'none',\r\n },\r\n },\r\n sidePanelValueHeader: {\r\n fontWeight: theme.fontWeight,\r\n },\r\n sidePanelValue: {\r\n wordBreak: 'break-word',\r\n fontWeight: theme.fontWeight,\r\n },\r\n sidePanelValuePair: {\r\n [theme.breakpoints.up('sm')]: {\r\n paddingBottom: theme.spacing() * 2,\r\n },\r\n [theme.breakpoints.down('xs')]: {\r\n paddingRight: theme.spacing() * 2,\r\n },\r\n },\r\n sidePanelValueIsNegative: {\r\n color: theme.customPalette.red,\r\n },\r\n tableContainer: {\r\n [theme.breakpoints.up('sm')]: {\r\n width: '100%',\r\n paddingLeft: '42.5px',\r\n },\r\n [theme.breakpoints.down('xs')]: {\r\n paddingTop: '20px',\r\n },\r\n },\r\n firstColumnContent: {\r\n display: 'flex',\r\n textTransform: 'capitalize',\r\n '& > :first-child': {\r\n paddingRight: '10px',\r\n },\r\n },\r\n })\r\n);\r\n","var _style, _path;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgDropdown(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Lag_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 24 24\",\n style: {\n enableBackground: \"new 0 0 24 24\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _style || (_style = /*#__PURE__*/React.createElement(\"style\", {\n type: \"text/css\"\n }, \"\\r\\n\\t.st0{fill:none;stroke:#E21B37;stroke-width:2;stroke-linecap:round;}\\r\\n\")), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_849\",\n className: \"st0\",\n d: \"M1.8,6.9l10.4,10.4L22.7,6.9\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgDropdown);\nexport default __webpack_public_path__ + \"static/media/dropdown.fe89cc30.svg\";\nexport { ForwardRef as ReactComponent };","import { useCallback } from 'react';\r\nimport { get } from '../api';\r\n\r\nexport const useJobTitlesEndpoint = () => {\r\n const endpoint = '/jobtitles';\r\n\r\n const fetchJobTitles = useCallback(async (): Promise<{ id: string; title: string }[]> => {\r\n const response = await get(endpoint, { ignoreAuthentication: true });\r\n const json = await response.json();\r\n\r\n return json;\r\n }, []);\r\n\r\n return { endpoint, fetchJobTitles };\r\n};\r\n","import { useCallback } from 'react';\r\nimport { get } from '../api';\r\n\r\nexport const useSchoolNameEndpoint = () => {\r\n const endpoint = '/schools';\r\n\r\n const fetchSchoolNames = useCallback(async (query: string): Promise<\r\n {\r\n id: string;\r\n name: string;\r\n address: string;\r\n postalCode: string;\r\n city: string;\r\n schoolType: string;\r\n }[]\r\n > => {\r\n const response = await get(`${endpoint}?Query=${query}`, { ignoreAuthentication: true });\r\n const json = await response.json();\r\n return json?.data;\r\n }, []);\r\n\r\n return { endpoint, fetchSchoolNames };\r\n};\r\n","export enum DawaType {\r\n vejnavn = 'vejnavn',\r\n adgangsadresse = 'adgangsadresse',\r\n adresse = 'adresse',\r\n}\r\n\r\nexport type DawaAutocompleteResult = {\r\n type: DawaType;\r\n tekst: string;\r\n forslagstekst: string;\r\n caretPos: number;\r\n data: DawaAdgangsadresse | DawaVejnavn | DawaAdresse;\r\n};\r\n\r\nexport type DawaAdgangsadresseResult = DawaAutocompleteResult & {\r\n type: DawaType.adgangsadresse;\r\n data: DawaAdgangsadresse;\r\n};\r\n\r\nexport type DawaAdresseResult = DawaAutocompleteResult & {\r\n type: DawaType.adresse;\r\n data: DawaAdresse;\r\n};\r\n\r\nexport type DawaVejnavnResult = DawaAutocompleteResult & {\r\n type: DawaType.vejnavn;\r\n data: DawaVejnavn;\r\n};\r\n\r\nexport type DawaVejnavn = {\r\n navn: string;\r\n href: string;\r\n};\r\n\r\nexport type DawaAdgangsadresse = {\r\n id: string;\r\n status?: number;\r\n darStatus?: number;\r\n vejKode?: string;\r\n vejnavn?: string;\r\n adresseringsVejnavn?: string;\r\n husnr?: string;\r\n supplerendeBynavn?: string;\r\n postnr?: string;\r\n postnrnavn?: string;\r\n stormodtagerPostnr?: string;\r\n stormodtagerPostnrNavn?: string;\r\n kommunekode?: string;\r\n x?: number;\r\n y?: number;\r\n href?: string;\r\n};\r\n\r\nexport type DawaAdresse = DawaAdgangsadresse & {\r\n etage: string;\r\n dør: string;\r\n};\r\n\r\nexport type DawaQueryOptions = {\r\n type?: DawaType;\r\n startFra?: DawaType;\r\n q?: string;\r\n caretpos?: number;\r\n postnr?: string;\r\n kommunekode?: string;\r\n adgangsadresseid?: string;\r\n multilinje?: boolean;\r\n supplerendebynavn?: boolean;\r\n fuzzy?: '';\r\n id?: string;\r\n gældende?: boolean;\r\n geometri?: 'adgangspunkt' | 'vejpunkt';\r\n side?: number;\r\n per_side?: number;\r\n};\r\n\r\nexport type FslAddress = {\r\n address?: string;\r\n city?: string;\r\n postalCode?: string;\r\n municipality?: string;\r\n countryCode?: 'DK';\r\n};\r\n\r\nexport type DawaKommuneOpslagResult = {\r\n kode: string;\r\n navn: string;\r\n regionskode: string;\r\n href: string;\r\n region: {\r\n href: string;\r\n kode: string;\r\n navn: string;\r\n };\r\n};\r\n","import { useCallback, useEffect, useState } from 'react';\r\nimport { getDawaAutocompleteAddresses, getDawaMunicipality } from '../../../../api';\r\nimport { DawaAdresse, DawaAutocompleteResult, DawaKommuneOpslagResult, DawaQueryOptions, DawaType, FslAddress } from './AddressPicker.types';\r\n\r\nexport const useData = (onChange?: (changes: Partial) => void) => {\r\n const [query, setQuery] = useState({ fuzzy: '', q: '' });\r\n const [options, setOptions] = useState([]);\r\n const [selectedAddress, setSelectedAddress] = useState();\r\n const [selectedOption, setSelectedOption] = useState();\r\n const [isOpen, setIsOpen] = useState(false);\r\n\r\n useEffect(() => {\r\n const doFetch = async () => {\r\n const newOptions: DawaAutocompleteResult[] = await getDawaAutocompleteAddresses(query);\r\n setOptions(newOptions);\r\n };\r\n\r\n doFetch();\r\n }, [query]);\r\n\r\n useEffect(() => {\r\n const doFetch = async () => {\r\n if (selectedAddress && selectedAddress.kommunekode) {\r\n const address = `${selectedAddress.vejnavn} ${selectedAddress.husnr}${selectedAddress.etage ? `, ${selectedAddress.etage}` : ''}${\r\n selectedAddress.dør ? `, ${selectedAddress.dør}` : ''\r\n }`;\r\n const kommune: DawaKommuneOpslagResult = await getDawaMunicipality(selectedAddress.kommunekode);\r\n if (kommune) {\r\n onChange?.({\r\n address,\r\n postalCode: selectedAddress.postnr,\r\n city: selectedAddress.postnrnavn,\r\n countryCode: 'DK',\r\n municipality: kommune.navn,\r\n });\r\n }\r\n }\r\n };\r\n doFetch();\r\n }, [selectedAddress, onChange]);\r\n\r\n const handleOnChange = useCallback(\r\n (_: React.ChangeEvent<{}>, value: DawaAutocompleteResult | null) => {\r\n if (value && value.type !== DawaType.vejnavn) {\r\n setIsOpen(false);\r\n setSelectedAddress(value?.data as DawaAdresse);\r\n }\r\n },\r\n [setIsOpen, setSelectedAddress]\r\n );\r\n\r\n const handleOnInputChanged = useCallback(\r\n (_: React.ChangeEvent<{}>, newValue: string) => {\r\n setQuery({ ...query, q: newValue });\r\n setSelectedOption({ forslagstekst: newValue, type: DawaType.vejnavn, tekst: '', caretPos: 0, data: { id: '' } });\r\n },\r\n [setQuery, query]\r\n );\r\n\r\n return { query, options, isOpen, setIsOpen, handleOnChange, handleOnInputChanged, selectedOption };\r\n};\r\n","import React, { FunctionComponent } from 'react';\r\nimport { AutocompleteCloseReason } from '@material-ui/lab';\r\nimport SelectWithSearch from '../../input/SelectWithSearch/SelectWithSearch';\r\nimport { DawaAutocompleteResult, FslAddress } from './AddressPicker.types';\r\nimport { useData } from './AddressPicker.hooks';\r\n\r\ninterface IAddressPickerProps {\r\n onChange?: (changes: Partial) => void;\r\n error?: boolean;\r\n helperText?: string;\r\n title?: string;\r\n disabled?: boolean;\r\n}\r\n\r\nconst AddressPicker: FunctionComponent = ({ onChange, error, helperText, title, disabled }) => {\r\n const { query, options, isOpen, setIsOpen, handleOnChange, handleOnInputChanged, selectedOption } = useData(onChange);\r\n\r\n return (\r\n \r\n value={selectedOption}\r\n title={title}\r\n error={error}\r\n helperText={helperText}\r\n onChange={handleOnChange}\r\n options={options}\r\n inputValue={query.q}\r\n onInputChange={handleOnInputChanged}\r\n updateDelay={50}\r\n open={isOpen}\r\n isReadOnly={disabled}\r\n isDisabled={disabled}\r\n onOpen={() => setIsOpen(true)}\r\n filterOptions={(x) => x}\r\n getOptionLabel={(option) => option.forslagstekst}\r\n getOptionSelected={(l, r) => l.forslagstekst === r.forslagstekst}\r\n onClose={(_, reason: AutocompleteCloseReason) => {\r\n if (reason === 'toggleInput') {\r\n setIsOpen(false);\r\n }\r\n }}\r\n />\r\n );\r\n};\r\n\r\nexport default AddressPicker;\r\n","import { AutocompleteCloseReason } from '@material-ui/lab';\r\nimport React, { FunctionComponent } from 'react';\r\nimport SelectWithSearch from '../../input/SelectWithSearch/SelectWithSearch';\r\nimport { useData } from './SchoolPicker.hooks';\r\nimport { ISchoolDropDownItem } from './SchoolPicker.types';\r\n\r\ninterface ISchoolPickerProps {\r\n onChange?: (changes: ISchoolDropDownItem | undefined) => void;\r\n error?: boolean;\r\n helperText?: string;\r\n title?: string;\r\n fetchOptions: (query: string) => Promise;\r\n value: ISchoolDropDownItem | undefined;\r\n disabled?: boolean;\r\n autoFocus?: boolean;\r\n}\r\n\r\nconst SchoolPicker: FunctionComponent = ({ onChange, error, helperText, title, fetchOptions, value, disabled, autoFocus }) => {\r\n const { input, handleOnInputChanged, isOpen, setIsOpen, options, selectedOption, handleOnChange } = useData(value, fetchOptions, onChange);\r\n\r\n return (\r\n \r\n autoFocus={autoFocus}\r\n value={selectedOption}\r\n title={title}\r\n error={error}\r\n helperText={helperText}\r\n onChange={handleOnChange}\r\n options={options}\r\n inputValue={input}\r\n onInputChange={handleOnInputChanged}\r\n updateDelay={50}\r\n open={isOpen && !disabled}\r\n onOpen={() => setIsOpen(true)}\r\n filterOptions={(x) => x}\r\n getOptionLabel={(option) => `${option.name}${option.schoolType ? ` (${option.schoolType})` : ''} `}\r\n getOptionSelected={(l, r) => l.id === r.id}\r\n onClose={(_, reason: AutocompleteCloseReason) => {\r\n if (reason === 'toggleInput') {\r\n setIsOpen(false);\r\n }\r\n }}\r\n isDisabled={disabled}\r\n />\r\n );\r\n};\r\n\r\nexport default SchoolPicker;\r\n","import React, { useCallback, useEffect, useState } from 'react';\r\nimport { ISchoolDropDownItem } from './SchoolPicker.types';\r\n\r\nexport const useData = (\r\n value: ISchoolDropDownItem | undefined,\r\n fetchOptions: (query: string) => Promise,\r\n onChange?: ((changes: ISchoolDropDownItem | undefined) => void) | undefined\r\n) => {\r\n const [input, setInput] = useState(value?.name ?? '');\r\n const [isOpen, setIsOpen] = useState(false);\r\n const [options, setOptions] = useState([]);\r\n const [selectedOption, setSelectedOption] = useState();\r\n\r\n useEffect(() => {\r\n if (value) {\r\n setInput(value.name);\r\n } else {\r\n setInput('');\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [value]);\r\n\r\n const handleOnInputChanged = useCallback(\r\n (e: React.ChangeEvent<{}>, newValue: string) => {\r\n // if i is null, e is fired on mount, in which case we want to ignore it\r\n if (e !== null) {\r\n setInput(newValue);\r\n }\r\n },\r\n [setInput]\r\n );\r\n\r\n useEffect(() => {\r\n const doFetch = async () => {\r\n const newOptions: ISchoolDropDownItem[] = await fetchOptions(input);\r\n setOptions(newOptions);\r\n };\r\n doFetch();\r\n }, [input, fetchOptions, onChange, selectedOption]);\r\n\r\n const handleOnChange = useCallback(\r\n (_: React.ChangeEvent<{}>, v: ISchoolDropDownItem | null) => {\r\n if (v) {\r\n setIsOpen(false);\r\n setSelectedOption(v);\r\n onChange?.(v);\r\n }\r\n },\r\n [setIsOpen, setSelectedOption, onChange]\r\n );\r\n\r\n return { input, handleOnInputChanged, isOpen, setIsOpen, options, selectedOption, handleOnChange };\r\n};\r\n","import { stringify } from 'query-string';\r\nimport { DawaQueryOptions } from '../components/user-input/picker/AdressPicker/AddressPicker.types';\r\nimport { fetchRequest } from './fetch';\r\nimport { ApiOptions } from './types';\r\n\r\nconst dawaBaseUrl = 'https://dawa.aws.dk';\r\n\r\nexport const get = (path: string, options?: ApiOptions) => {\r\n return fetchRequest(path, 'GET', undefined, undefined, options);\r\n};\r\n\r\nexport const put = (data: any, path: string) => {\r\n return fetchRequest(path, 'PUT', data);\r\n};\r\n\r\nexport const post = (data: any, path: string, options?: ApiOptions) => {\r\n return fetchRequest(path, 'POST', data, undefined, options);\r\n};\r\n\r\nexport const deleteRequest = (path: string, data: any) => {\r\n return fetchRequest(path, 'DELETE', data);\r\n};\r\n\r\nexport const getDawa = async (path: string) => {\r\n try {\r\n const response = await window.fetch(`${dawaBaseUrl}/${path}`);\r\n return await response.json();\r\n } catch (e) {\r\n return null;\r\n }\r\n};\r\n\r\nexport const getDawaAutocompleteAddresses = async (query: DawaQueryOptions) => {\r\n const queryString = stringify({ ...query, caretpos: query.q?.length } as DawaQueryOptions, { skipEmptyString: false, skipNull: true });\r\n return getDawa(`autocomplete?${queryString}`);\r\n};\r\n\r\nexport const getDawaMunicipality = async (municipalityCode: string) => {\r\n return getDawa(`kommuner/${municipalityCode}`);\r\n};\r\n","import { ReactPlugin } from '@microsoft/applicationinsights-react-js';\r\nimport { ApplicationInsights } from '@microsoft/applicationinsights-web';\r\nimport React, { PropsWithChildren, useState } from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\nimport config from '../config';\r\nimport { ApplicationInsightsContext } from './ApplicationInsightsContext';\r\n\r\nfunction configureApplicationInsights(history: any): { reactPlugin: ReactPlugin; appInsights: ApplicationInsights } | null {\r\n const { applicationInsightsKey } = config;\r\n if (!applicationInsightsKey) {\r\n return null;\r\n }\r\n\r\n const reactPlugin = new ReactPlugin();\r\n const appInsights = new ApplicationInsights({\r\n config: {\r\n instrumentationKey: applicationInsightsKey,\r\n extensions: [reactPlugin],\r\n extensionConfig: {\r\n [reactPlugin.identifier]: { history },\r\n },\r\n enableCorsCorrelation: true,\r\n autoTrackPageVisitTime: true,\r\n enableUnhandledPromiseRejectionTracking: true,\r\n enableDebugExceptions: config.deployEnvironment === 'develop',\r\n },\r\n });\r\n\r\n appInsights.loadAppInsights();\r\n\r\n appInsights.addTelemetryInitializer((item) => {\r\n if (!item) return;\r\n\r\n item.tags!['ai.cloud.role'] = 'FSL.MemberPortal.Frontend';\r\n });\r\n\r\n appInsights.addTelemetryInitializer((item) => {\r\n if (item.data?.message === 'Error: No matching state found in storage') {\r\n return false;\r\n }\r\n\r\n return true;\r\n });\r\n\r\n appInsights.context.application.ver = `${process.env.REACT_APP_VERSION}`;\r\n\r\n return { reactPlugin, appInsights };\r\n}\r\n\r\nexport function ApplicationInsightsProvider({ children }: PropsWithChildren<{}>) {\r\n const history = useHistory();\r\n const [ai, setAi] = useState<{ reactPlugin: ReactPlugin; appInsights: ApplicationInsights } | null>();\r\n\r\n if (ai === undefined) {\r\n setAi(configureApplicationInsights(history));\r\n return <>;\r\n }\r\n\r\n return {children};\r\n}\r\n","import { Button, CircularProgress } from '@material-ui/core';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { useTranslation } from '@fsl/fsl.common.npm';\r\nimport { FslButton } from './components/buttons/FslButton/FslButton';\r\nimport { FullScreenCenter, FullScreenLoadingComponent } from './components/misc';\r\nimport config from './config';\r\n\r\nexport function AppPreload({ App }: { App: React.ComponentType }) {\r\n const [loadState, setLoadState] = useState('CheckingConnection');\r\n const [checkInBackground, setCheckInBackground] = useState(false);\r\n const [intervalToken, setIntervalToken] = useState();\r\n const { translateString } = useTranslation();\r\n\r\n const checkConnection = async () => {\r\n const authPromise = fetch(`${config.authServer}/api/health`);\r\n const backendPromise = fetch(`${config.apiUrl}/health`);\r\n\r\n try {\r\n await authPromise;\r\n } catch {\r\n // Ignore backend promise since auth promise already failed\r\n backendPromise.catch(() => {});\r\n\r\n setLoadState('CannotReachAuthServer');\r\n setCheckInBackground(false);\r\n return;\r\n }\r\n\r\n try {\r\n await backendPromise;\r\n } catch {\r\n setLoadState('CannotReachApiServer');\r\n setCheckInBackground(false);\r\n return;\r\n }\r\n\r\n setLoadState('Ready');\r\n };\r\n\r\n useEffect(() => {\r\n if (loadState === 'CheckingConnection' || checkInBackground) {\r\n checkConnection();\r\n }\r\n\r\n if (loadState?.startsWith('CannotReach') && !checkInBackground) {\r\n const timeout = setTimeout(() => {\r\n setCheckInBackground(true);\r\n }, 3000);\r\n return () => clearTimeout(timeout);\r\n }\r\n return () => {};\r\n }, [loadState, checkInBackground]);\r\n\r\n useEffect(() => {\r\n if (loadState === 'Ready') {\r\n if (!intervalToken) {\r\n setIntervalToken(setInterval(() => checkConnection(), 60000));\r\n }\r\n } else {\r\n clearInterval(intervalToken);\r\n setIntervalToken(undefined);\r\n }\r\n\r\n return () => clearInterval(intervalToken);\r\n }, [intervalToken, loadState]);\r\n\r\n switch (loadState) {\r\n case 'CheckingConnection':\r\n return ;\r\n\r\n case 'Ready':\r\n return ;\r\n\r\n default:\r\n if (/CannotReach.*/.test(loadState)) {\r\n const server = loadState === 'CannotReachAuthServer' ? 'login' : 'data';\r\n return (\r\n \r\n {translateString('no_connection_to_server', { server })}\r\n
\r\n
\r\n
\r\n
\r\n {checkInBackground ? (\r\n \r\n ) : (\r\n setLoadState('CheckingConnection')}>\r\n {translateString('try_again')}\r\n \r\n )}\r\n
\r\n
\r\n );\r\n }\r\n return (\r\n \r\n {translateString('unexpected_error')}\r\n \r\n \r\n );\r\n }\r\n}\r\n","import { createStyles, makeStyles, Theme } from '@material-ui/core';\r\n\r\nexport const useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n modal: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n outline: 'none',\r\n },\r\n modalContent: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n '& > *': {\r\n flexShrink: 0,\r\n },\r\n '& > :global(#scroll)': {\r\n flexShrink: 'unset',\r\n overflowY: 'auto',\r\n },\r\n },\r\n paper: {\r\n backgroundColor: theme.palette.background.paper,\r\n boxShadow: theme.shadows[5],\r\n padding: `${theme.spacing(1)}px ${theme.spacing(2)}px`,\r\n borderRadius: 0,\r\n outline: 'none',\r\n overflowY: 'auto',\r\n [theme.breakpoints.down('xs')]: {\r\n maxWidth: '80%',\r\n },\r\n },\r\n headerWrapper: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'baseline',\r\n },\r\n close: {\r\n color: theme.customPalette.red,\r\n cursor: 'pointer',\r\n height: '28px',\r\n width: '28px',\r\n },\r\n heading: {\r\n textAlign: 'center',\r\n display: 'block',\r\n width: '100%',\r\n color: theme.customPalette.darkBlue,\r\n fontWeight: 900,\r\n },\r\n closeButtonWrapper: {\r\n '& .MuiIconButton-root': {\r\n padding: 0,\r\n [theme.breakpoints.down('xs')]: {\r\n paddingBottom: '12px',\r\n paddingLeft: '12px',\r\n },\r\n },\r\n },\r\n })\r\n);\r\n","import { IconButton } from '@material-ui/core';\r\nimport Backdrop from '@material-ui/core/Backdrop';\r\nimport Fade from '@material-ui/core/Fade';\r\nimport MuiModal from '@material-ui/core/Modal';\r\nimport ClearRoundedIcon from '@material-ui/icons/ClearRounded';\r\nimport React, { useCallback, useContext, useEffect, useState } from 'react';\r\nimport { ModalOptions, ModalResult } from './Modal.types';\r\nimport { ModalContext } from '../../contexts/ModalProvider/ModalProvider';\r\nimport { useStyles } from './Modal.styles';\r\n\r\ninterface ICurrentModalState {\r\n title: string | null;\r\n ctor: React.ComponentType | null;\r\n props: any;\r\n options: ModalOptions;\r\n}\r\n\r\nexport default function Modal() {\r\n const { modalState: props, toggleOpen } = useContext(ModalContext);\r\n const [hasChanges, setHasChanges] = useState();\r\n\r\n const InitialModalState = useCallback(\r\n () => (): ICurrentModalState => {\r\n return {\r\n title: props?.title ?? null,\r\n ctor: props?.componentConstructor ?? null,\r\n props: props?.props ?? null,\r\n options: props?.options ?? {},\r\n };\r\n },\r\n [props]\r\n );\r\n\r\n const [{ title, ctor: Ctor, options }, setCurrentModalState] = useState(InitialModalState());\r\n\r\n useEffect(() => {\r\n setCurrentModalState(InitialModalState());\r\n }, [props, InitialModalState]);\r\n\r\n const classes = useStyles();\r\n\r\n if (!Ctor) {\r\n return null;\r\n }\r\n\r\n let disableEscapeKeyDown;\r\n let disableBackdropClick;\r\n // If explicitly has changes then always disable esacpe and click-outside\r\n if (hasChanges === true) {\r\n disableEscapeKeyDown = true;\r\n disableBackdropClick = true;\r\n }\r\n // If explicitly has no changes then enable esacpe and click-outside unless options explicitly says otherwise\r\n else if (hasChanges === false) {\r\n disableEscapeKeyDown = options?.closeOnEscape !== undefined ? !options.closeOnEscape : false;\r\n disableBackdropClick = options?.closeOnClickOutside !== undefined ? !options.closeOnClickOutside : false;\r\n }\r\n // If hasChanges is undefined then disable esacpe and click-outside by default unless options says otherwise\r\n else if (hasChanges === undefined) {\r\n disableEscapeKeyDown = !options?.closeOnEscape;\r\n disableBackdropClick = !options?.closeOnClickOutside;\r\n }\r\n\r\n const clearInstance = () => {\r\n setCurrentModalState(InitialModalState());\r\n setHasChanges(undefined);\r\n };\r\n\r\n function doClose(result?: ModalResult, data?: any) {\r\n setTimeout(() => {\r\n options?.onClose?.(result, data);\r\n if (result === 'Success') options?.onSuccess?.(data);\r\n else if (result === 'Failure') options?.onFailure?.(data);\r\n\r\n toggleOpen();\r\n }, 100);\r\n }\r\n\r\n function onClose() {\r\n doClose();\r\n }\r\n\r\n return (\r\n \r\n \r\n
\r\n
\r\n {title && (\r\n

\r\n {title?.toUpperCase()}\r\n

\r\n )}\r\n\r\n {!options.hideCloseButton && (\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","var _path, _path2;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgAebleIkon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Group_35\",\n \"data-name\": \"Group 35\",\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 37.691,\n height: 36,\n viewBox: \"0 0 37.691 36\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_114\",\n \"data-name\": \"Path 114\",\n d: \"M49.014,95.195c3.014-3.941,6.708-8.693,12.344-8.152,5.375.515,5.875,6.024,4.947,10.219-1.249,5.645-5.852,9.759-9.612,13.852-2.9,3.152-8.593,9.89-13.4,6.766-6.265-4.071-12.345-10.435-14.058-18.037-1.084-4.811,1.541-9.049,5.819-11.28C40.492,85.725,47.81,93.889,49.014,95.195ZM35.988,93.7c-2.753,1.378-1.265,7.173.2,9.412a35.839,35.839,0,0,0,8,8.408c1.663,1.307,4.485,3.394,6.394,1.724a29.671,29.671,0,0,0,3.319-3.233c2.647-3.27,4.864-5.336,5.78-9.563.646-2.983,1.548-8.414-3.106-8.846-1.7-.157-3.717,2.5-4.4,4.175-.61,1.5-2.178,3.927-4.011,4.03-1.63.091-2.418-2.161-3.051-3.285C43.383,93.448,38.726,92.334,35.988,93.7Z\",\n transform: \"translate(-28.989 -82.685)\",\n fill: \"#df0c33\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_115\",\n \"data-name\": \"Path 115\",\n d: \"M80.162,73.633c-.69,1.522-.713,1.73-.461,1.855,2.85,1.414,4.244,3.227,5.86,5.73.013.02.283.236.283.236s.979-.742,1.067-1.294a1.165,1.165,0,0,0-.19-.779c-.042-.078-.437-.637-.383-.711.021-.029.031-.057.046-.06a1.093,1.093,0,0,0,.473-.21c1.041-.763,2.65-1.212,3.087-3.635a6.855,6.855,0,0,0-.368-3.143c-.179-.789-1.113-.721-2.041-.577a7.025,7.025,0,0,0-1.924.657,4.1,4.1,0,0,0-1.229.927,3.011,3.011,0,0,0-.5,1.673,2.929,2.929,0,0,0,.16,1.351c-.064.064-.107.017-.143-.018A28.935,28.935,0,0,0,80.94,73.5.562.562,0,0,0,80.162,73.633Zm5.3.655c.272-1.417,2.415-2.017,2.741-2.017.02.023.042.037.048.055a3.706,3.706,0,0,1-.41,2.864,5.091,5.091,0,0,1-1.462,1.3,4.042,4.042,0,0,1-.529.282.892.892,0,0,1-.118-.165A3.781,3.781,0,0,1,85.466,74.287Z\",\n transform: \"translate(-65.958 -70.954)\",\n fill: \"#df0c33\",\n fillRule: \"evenodd\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgAebleIkon);\nexport default __webpack_public_path__ + \"static/media/Aeble_ikon.ea432b4d.svg\";\nexport { ForwardRef as ReactComponent };","import { IExceptionTelemetry, SeverityLevel } from '@microsoft/applicationinsights-web';\r\nimport React, { Component } from 'react';\r\n\r\ninterface IErrorBoundaryProps {\r\n logException: (error: IExceptionTelemetry) => void;\r\n primaryMessage: string;\r\n secondaryMesage: string;\r\n}\r\n\r\ninterface IErrorBoundaryState {\r\n hasError: boolean;\r\n}\r\n\r\nexport default class ErrorBoundary extends Component {\r\n constructor(props: any) {\r\n super(props);\r\n this.state = { hasError: false };\r\n }\r\n\r\n static getDerivedStateFromError() {\r\n return { hasError: true };\r\n }\r\n\r\n componentDidCatch(error: Error) {\r\n this.props.logException({ exception: error, severityLevel: SeverityLevel.Critical });\r\n }\r\n\r\n render() {\r\n if (this.state.hasError) {\r\n return (\r\n <>\r\n

{this.props.primaryMessage}

\r\n

{this.props.secondaryMesage}

\r\n \r\n );\r\n }\r\n\r\n return this.props.children;\r\n }\r\n}\r\n","import React, { FunctionComponent, lazy, Suspense } from 'react';\r\nimport { Route, Switch } from 'react-router-dom';\r\nimport Routing from '../../routing/routing';\r\n\r\ninterface IContentSwitchProps {\r\n homeComponent: FunctionComponent;\r\n}\r\n\r\nconst ContentSwitch: FunctionComponent = ({ homeComponent }) => {\r\n const LazyMembershipPage = lazy(() => import('../../pages/MembershipPage/MembershipPage'));\r\n const LazyCoursesPage = lazy(() => import('../../pages/CoursePage/CoursePage'));\r\n const LazyMyDistrictPage = lazy(() => import('../../pages/myDistrictPage/myDistrictPage'));\r\n const LazyMySchoolPage = lazy(() => import('../../pages/MySchoolPage/MySchoolPage'));\r\n const LazyMessagePage = lazy(() => import('../../pages/MessagePage/MessagePage'));\r\n const LazyCasesPage = lazy(() => import('../../pages/MyCasesPage/MyCasesPage'));\r\n const LazyNewMessagePage = lazy(() => import('../../pages/NewMessagePage/NewMessagePage'));\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\nexport default ContentSwitch;\r\n","import { createStyles, makeStyles, Theme } from '@material-ui/core';\r\n\r\nexport const useDesktopNavbarStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n width: '250px',\r\n paddingLeft: theme.spacing(),\r\n paddingRight: theme.spacing(),\r\n minWidth: '250px',\r\n minHeight: '100vh',\r\n borderRight: theme.customPalette.red,\r\n display: 'flex',\r\n flexDirection: 'column',\r\n borderRightColor: theme.customPalette.red,\r\n borderRightStyle: 'solid',\r\n borderRightWidth: 1,\r\n },\r\n menuList: {\r\n listStyleType: 'none',\r\n padding: '0px',\r\n color: theme.customPalette.white,\r\n },\r\n listItem: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n },\r\n separator: {\r\n borderBottom: `1px solid ${theme.customPalette.red}`,\r\n width: '200px',\r\n margin: `${theme.spacing()}px 0 ${theme.spacing()}px ${theme.spacing()}px`,\r\n [theme.breakpoints.down('xs')]: {\r\n width: '345px',\r\n },\r\n },\r\n })\r\n);\r\n","import { createStyles, makeStyles, Theme } from '@material-ui/core';\r\n\r\nexport const useLogoStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n root: (props) => ({\r\n display: 'flex',\r\n marginTop: '30px',\r\n paddingLeft: theme.spacing(),\r\n paddingBottom: theme.spacing(),\r\n borderBottom: props.showBottomLine ? `1px solid ${theme.customPalette.red}` : 'none',\r\n }),\r\n logoText: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n justifyContent: 'center',\r\n marginLeft: theme.spacing(),\r\n width: '100%',\r\n },\r\n header: {\r\n fontWeight: theme.fontWeight,\r\n },\r\n menu: {\r\n display: 'flex',\r\n justifyContent: 'flex-end',\r\n width: '100%',\r\n paddingRight: theme.spacing(),\r\n\r\n '& svg': {\r\n height: '40px',\r\n width: '40px',\r\n },\r\n '& path': {\r\n fill: theme.customPalette.red,\r\n },\r\n [theme.breakpoints.up('sm')]: {\r\n display: 'none',\r\n },\r\n },\r\n })\r\n);\r\n","var _g;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgForsideMenuikon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 18,\n height: 16,\n viewBox: \"0 0 18 16\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_798\",\n \"data-name\": \"Group 798\",\n transform: \"translate(-43 -133.929)\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Rectangle_330\",\n \"data-name\": \"Rectangle 330\",\n transform: \"translate(43 133.929)\",\n fill: \"none\",\n stroke: \"#112f4a\",\n strokeWidth: 1.5\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 18,\n height: 6,\n rx: 1,\n stroke: \"none\"\n }), /*#__PURE__*/React.createElement(\"rect\", {\n x: 0.75,\n y: 0.75,\n width: 16.5,\n height: 4.5,\n rx: 0.25,\n fill: \"none\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Rectangle_331\",\n \"data-name\": \"Rectangle 331\",\n transform: \"translate(43 140.929)\",\n fill: \"none\",\n stroke: \"#112f4a\",\n strokeWidth: 1.5\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 8,\n height: 4,\n rx: 1,\n stroke: \"none\"\n }), /*#__PURE__*/React.createElement(\"rect\", {\n x: 0.75,\n y: 0.75,\n width: 6.5,\n height: 2.5,\n rx: 0.25,\n fill: \"none\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Rectangle_333\",\n \"data-name\": \"Rectangle 333\",\n transform: \"translate(43 145.929)\",\n fill: \"none\",\n stroke: \"#112f4a\",\n strokeWidth: 1.5\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 8,\n height: 4,\n rx: 1,\n stroke: \"none\"\n }), /*#__PURE__*/React.createElement(\"rect\", {\n x: 0.75,\n y: 0.75,\n width: 6.5,\n height: 2.5,\n rx: 0.25,\n fill: \"none\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Rectangle_332\",\n \"data-name\": \"Rectangle 332\",\n transform: \"translate(52 140.929)\",\n fill: \"none\",\n stroke: \"#112f4a\",\n strokeWidth: 1.5\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 9,\n height: 9,\n rx: 1,\n stroke: \"none\"\n }), /*#__PURE__*/React.createElement(\"rect\", {\n x: 0.75,\n y: 0.75,\n width: 7.5,\n height: 7.5,\n rx: 0.25,\n fill: \"none\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgForsideMenuikon);\nexport default __webpack_public_path__ + \"static/media/Forside_menuikon.1bef7733.svg\";\nexport { ForwardRef as ReactComponent };","import React, { FunctionComponent } from 'react';\r\nimport { NavLink } from 'react-router-dom';\r\nimport MenuRoundedIcon from '@material-ui/icons/MenuRounded';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport Routing from '../../../../routing/routing';\r\nimport { useLogoStyles } from './logo.styles';\r\nimport { ReactComponent as LogoIcon } from '../../../../images/Aeble_ikon.svg';\r\nimport IconButton from '../../../../components/buttons/IconButton/IconButton';\r\nimport { usePathname } from './logo.hooks';\r\nimport useUser from '../../../../auth/UserService';\r\n\r\ninterface ILogoProps {\r\n subMenuOpened?: boolean;\r\n onBurgerClicked?: () => void;\r\n renderedOnDesktop: boolean;\r\n}\r\n\r\nconst Logo: FunctionComponent = ({ onBurgerClicked, subMenuOpened, renderedOnDesktop }) => {\r\n const classes = useLogoStyles({ showBottomLine: !renderedOnDesktop && !subMenuOpened });\r\n const { logoSubtitle } = usePathname();\r\n\r\n const useUserName = useUser()?.name;\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n {logoSubtitle}\r\n {useUserName}\r\n \r\n
\r\n
\r\n {subMenuOpened ? : }\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default Logo;\r\n","import { useTranslation } from '@fsl/fsl.common.npm';\r\nimport { useLocation } from 'react-router-dom';\r\nimport { useScreenSizeProvider } from '../../../../hooks/useScreenSizeProvider';\r\nimport Routing from '../../../../routing/routing';\r\n\r\nexport const usePathname = () => {\r\n const { screenSize } = useScreenSizeProvider();\r\n const { translateString } = useTranslation();\r\n const { pathname } = useLocation();\r\n\r\n let logoSubtitle = translateString('logo_title');\r\n if (screenSize === 'SmallScreen') {\r\n switch (pathname) {\r\n case Routing.district:\r\n logoSubtitle = translateString('my_district');\r\n break;\r\n case Routing.membership:\r\n logoSubtitle = translateString('my_membership');\r\n break;\r\n case Routing.school:\r\n logoSubtitle = translateString('my_school');\r\n break;\r\n default: {\r\n logoSubtitle = translateString('logo_title');\r\n }\r\n }\r\n }\r\n\r\n return { logoSubtitle };\r\n};\r\n","var _g;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgKursusMenuikon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 27.331,\n height: 27.331,\n viewBox: \"0 0 27.331 27.331\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1026\",\n \"data-name\": \"Group 1026\",\n transform: \"translate(-41.453 -262.489)\"\n }, /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_48\",\n \"data-name\": \"Line 48\",\n y2: 5,\n transform: \"translate(44 271.46)\",\n fill: \"none\",\n stroke: \"#112f4a\",\n strokeWidth: 1\n }), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_1025\",\n \"data-name\": \"Group 1025\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Union_3\",\n \"data-name\": \"Union 3\",\n transform: \"translate(48 269.461)\",\n fill: \"#f3f3f3\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M 7.501049995422363 12.25 C 5.701099872589111 12.25 3.982830047607422 12.06023025512695 2.662780046463013 11.71565055847168 C 1.269878745079041 11.35204982757568 0.8116174340248108 10.9433536529541 0.75 10.81479644775391 L 0.75 0.7500004768371582 L 14.25 0.7500004768371582 L 14.25 10.81474304199219 C 14.18830394744873 10.94333744049072 13.72990226745605 11.35204410552979 12.33699989318848 11.71568012237549 C 11.01714038848877 12.06024074554443 9.299699783325195 12.25 7.501049995422363 12.25 Z\",\n stroke: \"none\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M 7.501049995422363 11.5 C 9.039699554443359 11.5 10.54638004302979 11.35345077514648 11.7435302734375 11.08735084533691 C 12.71303939819336 10.87185382843018 13.25459575653076 10.62889289855957 13.5 10.48069953918457 L 13.5 1.500000476837158 L 1.5 1.500000476837158 L 1.5 10.48077583312988 C 1.7453693151474 10.62895774841309 2.286905527114868 10.87190246582031 3.256500005722046 11.08737087249756 C 4.453889846801758 11.35346031188965 5.961299896240234 11.5 7.501049995422363 11.5 M 7.501049995422363 13 C 3.357630014419556 13 -8.881784197001252e-16 12.02987003326416 -8.881784197001252e-16 10.83333015441895 L -8.881784197001252e-16 4.76837158203125e-07 L 15 4.76837158203125e-07 L 15 10.83333015441895 C 15 12.02987003326416 11.64132022857666 13 7.501049995422363 13 Z\",\n stroke: \"none\",\n fill: \"#112f4a\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_978\",\n \"data-name\": \"Group 978\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Path_214\",\n \"data-name\": \"Path 214\",\n transform: \"translate(55.533 256.489) rotate(45)\",\n fill: \"#f3f3f3\",\n strokeLinecap: \"round\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M 0.7678291201591492 19.16225624084473 C 0.7666149139404297 19.16225624084473 0.7654135823249817 19.16225242614746 0.7642227411270142 19.1622486114502 C 0.7583304047584534 19.12398338317871 0.753875195980072 19.08025360107422 0.7515448927879333 19.0369701385498 L 5.580625534057617 7.074355602264404 C 5.620029449462891 6.99252986907959 5.852548122406006 6.523526668548584 6.156498908996582 6.197296142578125 C 6.452366352081299 5.879740715026855 6.852000713348389 5.662954807281494 6.915338039398193 5.629658699035645 L 17.54048156738281 0.776399552822113 C 17.59711647033691 0.765591025352478 17.69694709777832 0.7499963045120239 17.80198860168457 0.7499963045120239 C 17.86213684082031 0.7499963045120239 17.90274429321289 0.755198061466217 17.92765045166016 0.7600972652435303 C 17.96607208251953 0.8491551280021667 17.99215888977051 1.038841009140015 17.98983192443848 1.208112597465515 L 14.05156135559082 12.04418277740479 C 13.95542621612549 12.20931720733643 13.77803611755371 12.4783992767334 13.63053894042969 12.62589645385742 C 13.43668842315674 12.81974697113037 13.12758445739746 13.08205986022949 12.96535491943359 13.21601581573486 L 0.7901238799095154 19.16193771362305 C 0.782959520816803 19.16213989257812 0.7755057215690613 19.16225624084473 0.7678291201591492 19.16225624084473 Z\",\n stroke: \"none\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M 16.95125579833984 1.870061874389648 L 7.246698379516602 6.302837371826172 C 7.139741897583008 6.360714912414551 6.88068962097168 6.52023983001709 6.705228805541992 6.708566665649414 C 6.532160758972168 6.894314765930176 6.351559638977051 7.204806327819824 6.267043113708496 7.377519607543945 L 2.106304168701172 17.68450546264648 L 12.55511665344238 12.58170127868652 C 12.71252822875977 12.44994735717773 12.95079898834229 12.24497604370117 13.10020923614502 12.09556579589844 C 13.17058181762695 12.0251932144165 13.2863655090332 11.85957908630371 13.37090969085693 11.72131252288818 L 16.95125579833984 1.870061874389648 M 17.80196762084961 -3.814697265625e-06 C 18.03045463562012 -3.814697265625e-06 18.28573608398438 0.04421234130859375 18.44921875 0.2076969146728516 C 18.80550003051758 0.5639858245849609 18.73316955566406 1.358516693115234 18.73316955566406 1.358516693115234 L 14.73494911193848 12.35953617095947 C 14.73494911193848 12.35953617095947 14.46200942993164 12.85508632659912 14.16086959838867 13.15622615814209 C 13.8597297668457 13.45736694335938 13.37289905548096 13.85164642333984 13.37289905548096 13.85164642333984 L 0.9985790252685547 19.89479637145996 C 0.9985790252685547 19.89479637145996 0.4648170471191406 19.98935508728027 0.2156085968017578 19.73836708068848 C -0.03361129760742188 19.48737716674805 0.001718521118164062 18.89084625244141 0.001718521118164062 18.89084625244141 L 4.893269538879395 6.773496627807617 C 4.893269538879395 6.773496627807617 5.18411922454834 6.140726089477539 5.607759475708008 5.686036109924316 C 6.03140926361084 5.23133659362793 6.587839126586914 4.954716682434082 6.587839126586914 4.954716682434082 L 17.30034828186035 0.06153678894042969 C 17.30034828186035 0.06153678894042969 17.53251266479492 -3.814697265625e-06 17.80196762084961 -3.814697265625e-06 Z\",\n stroke: \"none\",\n fill: \"#112f4a\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Ellipse_37\",\n \"data-name\": \"Ellipse 37\",\n transform: \"translate(42 275.461)\",\n fill: \"#f3f3f3\",\n stroke: \"#112f4a\",\n strokeWidth: 1\n }, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 2,\n cy: 2,\n r: 2,\n stroke: \"none\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 2,\n cy: 2,\n r: 1.5,\n fill: \"none\"\n })))))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgKursusMenuikon);\nexport default __webpack_public_path__ + \"static/media/Kursus_menuikon.ea1ece53.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgLogud(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 22.5,\n height: 22.5,\n viewBox: \"0 0 22.5 22.5\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_856\",\n \"data-name\": \"Group 856\",\n transform: \"translate(-48.749 -958.75)\"\n }, /*#__PURE__*/React.createElement(\"line\", {\n id: \"Line_319\",\n \"data-name\": \"Line 319\",\n x1: 13,\n transform: \"translate(57.499 969.553)\",\n fill: \"none\",\n stroke: \"#112f4a\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1.5\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_1220\",\n \"data-name\": \"Path 1220\",\n d: \"M59.955,966.5,56.5,969.955l3.455,3.455\",\n transform: \"translate(-0.177 -0.5)\",\n fill: \"none\",\n stroke: \"#112f4a\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1.5\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_1221\",\n \"data-name\": \"Path 1221\",\n d: \"M69.65,965.658a10.5,10.5,0,1,0,.022,8.636\",\n transform: \"translate(0)\",\n fill: \"none\",\n stroke: \"#112f4a\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1.5\n }))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLogud);\nexport default __webpack_public_path__ + \"static/media/Logud.c8ef101d.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgEvents(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n fill: \"#112f4a\",\n viewBox: \"0 0 256 256\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M208,32H184V24a8,8,0,0,0-16,0v8H88V24a8,8,0,0,0-16,0v8H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32ZM72,48v8a8,8,0,0,0,16,0V48h80v8a8,8,0,0,0,16,0V48h24V80H48V48ZM208,208H48V96H208V208Zm-68-76a12,12,0,1,1-12-12A12,12,0,0,1,140,132Zm44,0a12,12,0,1,1-12-12A12,12,0,0,1,184,132ZM96,172a12,12,0,1,1-12-12A12,12,0,0,1,96,172Zm44,0a12,12,0,1,1-12-12A12,12,0,0,1,140,172Zm44,0a12,12,0,1,1-12-12A12,12,0,0,1,184,172Z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgEvents);\nexport default __webpack_public_path__ + \"static/media/events.0a015a7d.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgMinkredsMenuikon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 19,\n height: 18,\n viewBox: \"0 0 19 18\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_785\",\n \"data-name\": \"Group 785\",\n transform: \"translate(-1.923 -476)\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Ellipse_97\",\n \"data-name\": \"Ellipse 97\",\n transform: \"translate(5.923 479)\",\n fill: \"none\",\n stroke: \"#112f4a\",\n strokeWidth: 1.5\n }, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 7.5,\n cy: 7.5,\n r: 7.5,\n stroke: \"none\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 7.5,\n cy: 7.5,\n r: 6.75,\n fill: \"none\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Ellipse_98\",\n \"data-name\": \"Ellipse 98\",\n transform: \"translate(1.923 476)\",\n fill: \"none\",\n stroke: \"#112f4a\",\n strokeWidth: 1.5\n }, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 6.5,\n cy: 6.5,\n r: 6.5,\n stroke: \"none\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 6.5,\n cy: 6.5,\n r: 5.75,\n fill: \"none\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgMinkredsMenuikon);\nexport default __webpack_public_path__ + \"static/media/Min kreds_menuikon.a8cb1525.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgMinskoleMenuikon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 16.999,\n height: 20.007,\n viewBox: \"0 0 16.999 20.007\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Exclusion_1\",\n \"data-name\": \"Exclusion 1\",\n transform: \"translate(-8190 -12694.996)\",\n fill: \"none\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8197.206,12715h-5.642a1.571,1.571,0,0,1-1.564-1.574v-10.787l7.737-7.364a1.294,1.294,0,0,1,.721-.28h.041a1.846,1.846,0,0,1,.793.279l7.707,7.364v10.787a1.571,1.571,0,0,1-1.564,1.574h-5.865v-6.914h-2.363V12715Z\",\n stroke: \"none\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M 8195.7060546875 12713.5029296875 L 8195.7060546875 12708.087890625 L 8195.7060546875 12706.587890625 L 8197.2060546875 12706.587890625 L 8199.5693359375 12706.587890625 L 8201.0693359375 12706.587890625 L 8201.0693359375 12708.087890625 L 8201.0693359375 12713.501953125 L 8205.4345703125 12713.501953125 C 8205.46484375 12713.501953125 8205.4990234375 12713.4697265625 8205.4990234375 12713.427734375 L 8205.4990234375 12703.2822265625 L 8198.513671875 12696.607421875 L 8191.50048828125 12703.2841796875 L 8191.50048828125 12713.427734375 C 8191.50048828125 12713.4716796875 8191.5341796875 12713.501953125 8191.56494140625 12713.501953125 L 8195.7060546875 12713.5029296875 M 8197.2060546875 12715.0029296875 L 8197.205078125 12715.0029296875 L 8191.564453125 12715.001953125 C 8190.7021484375 12715.001953125 8190.00048828125 12714.2958984375 8190.00048828125 12713.427734375 L 8190.00048828125 12702.640625 L 8197.7373046875 12695.2763671875 C 8197.740234375 12695.2734375 8198.0771484375 12694.99609375 8198.4580078125 12694.99609375 C 8198.4716796875 12694.99609375 8198.4853515625 12694.99609375 8198.4990234375 12694.9970703125 C 8198.8994140625 12695.0185546875 8199.2890625 12695.2734375 8199.2919921875 12695.2763671875 L 8206.9990234375 12702.640625 L 8206.9990234375 12713.427734375 C 8206.9990234375 12714.2958984375 8206.296875 12715.001953125 8205.4345703125 12715.001953125 L 8199.5693359375 12715.001953125 L 8199.5693359375 12708.087890625 L 8197.2060546875 12708.087890625 L 8197.2060546875 12715.001953125 L 8197.2060546875 12715.0029296875 Z\",\n stroke: \"none\",\n fill: \"#112f4a\"\n }))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgMinskoleMenuikon);\nexport default __webpack_public_path__ + \"static/media/Min skole_menuikon.a8a272ba.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgMitmedlemskabMenuikon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 27,\n height: 17,\n viewBox: \"0 0 27 17\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_59\",\n \"data-name\": \"Group 59\",\n transform: \"translate(-35 -218.5)\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Subtraction_4\",\n \"data-name\": \"Subtraction 4\",\n transform: \"translate(49 226.5)\",\n fill: \"#f3f3f3\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M 12.24991893768311 6.25 L 0.7851961851119995 6.25 C 0.7681782245635986 6.209854602813721 0.7530810236930847 6.154855251312256 0.7503094673156738 6.116876125335693 C 0.8507227897644043 4.674354553222656 1.491071820259094 3.328355073928833 2.554574251174927 2.323909997940063 C 3.629194259643555 1.3089599609375 5.028114318847656 0.75 6.493654251098633 0.75 C 7.921964168548584 0.75 9.289753913879395 1.286260008811951 10.34506416320801 2.259989976882935 C 11.40154457092285 3.234780073165894 12.07091426849365 4.576650142669678 12.22987461090088 6.038400173187256 L 12.23269462585449 6.064330101013184 L 12.2373046875 6.090000152587891 C 12.24755573272705 6.147040843963623 12.25083923339844 6.203354835510254 12.24991893768311 6.25 Z\",\n stroke: \"none\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M 11.38053512573242 5.5 C 11.14435958862305 4.462210178375244 10.6086311340332 3.523655652999878 9.836474418640137 2.811189889907837 C 8.92009449005127 1.965659976005554 7.732924461364746 1.5 6.493654251098633 1.5 C 5.220404148101807 1.5 4.004374504089355 1.986240029335022 3.069544315338135 2.869169950485229 C 2.31054162979126 3.586022138595581 1.799095392227173 4.501752853393555 1.591088771820068 5.5 L 11.38053512573242 5.5 M 12.46885395050049 7 L 12.46883392333984 7 L 12.46880435943604 7 L 12.31338405609131 7 L 0.6179842948913574 7 C 0.1110542863607407 6.913949966430664 -0.01316571421921253 6.286670207977295 0.001064285985194147 6.080170154571533 C 0.1106842830777168 4.444349765777588 0.8346442580223083 2.916699886322021 2.039594173431396 1.77866005897522 C 3.254014253616333 0.6316699981689453 4.835824489593506 -4.440892098500626e-16 6.493654251098633 -4.440892098500626e-16 C 8.110994338989258 -4.440892098500626e-16 9.659414291381836 0.6068500280380249 10.85366439819336 1.70878005027771 C 12.04337406158447 2.806509971618652 12.79691410064697 4.315330028533936 12.97547435760498 5.957320213317871 C 12.99722385406494 6.078330039978027 13.05319404602051 6.494500160217285 12.86003398895264 6.768489837646484 C 12.77011394500732 6.89601993560791 12.63850402832031 6.973909854888916 12.46885395050049 7 Z\",\n stroke: \"none\",\n fill: \"#112f4a\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Ellipse_33\",\n \"data-name\": \"Ellipse 33\",\n transform: \"translate(38 218.5)\",\n fill: \"none\",\n stroke: \"#112f4a\",\n strokeWidth: 1.5\n }, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 3.5,\n cy: 3.5,\n r: 3.5,\n stroke: \"none\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 3.5,\n cy: 3.5,\n r: 2.75,\n fill: \"none\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Ellipse_35\",\n \"data-name\": \"Ellipse 35\",\n transform: \"translate(52 218.5)\",\n fill: \"#f3f3f3\",\n stroke: \"#112f4a\",\n strokeWidth: 1.5\n }, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 3.5,\n cy: 3.5,\n r: 3.5,\n stroke: \"none\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 3.5,\n cy: 3.5,\n r: 2.75,\n fill: \"none\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Subtraction_5\",\n \"data-name\": \"Subtraction 5\",\n transform: \"translate(35 226.5)\",\n fill: \"none\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.469,7H.618C.111,6.914-.013,6.287,0,6.08A6.537,6.537,0,0,1,6.494,0a6.414,6.414,0,0,1,4.36,1.709,6.765,6.765,0,0,1,2.122,4.249,1.176,1.176,0,0,1-.115.811A.562.562,0,0,1,12.469,7Z\",\n stroke: \"none\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M 11.38053512573242 5.5 C 11.14435958862305 4.462210178375244 10.6086311340332 3.523655652999878 9.836474418640137 2.811189889907837 C 8.92009449005127 1.965659976005554 7.732924461364746 1.5 6.493654251098633 1.5 C 5.220404148101807 1.5 4.004374504089355 1.986240029335022 3.069544315338135 2.869169950485229 C 2.31054162979126 3.586022138595581 1.799095392227173 4.501752853393555 1.591088771820068 5.5 L 11.38053512573242 5.5 M 12.46885395050049 7 L 12.46883392333984 7 L 12.46880435943604 7 L 12.31338405609131 7 L 0.6179842948913574 7 C 0.1110542863607407 6.913949966430664 -0.01316571421921253 6.286670207977295 0.001064285985194147 6.080170154571533 C 0.1106842830777168 4.444349765777588 0.8346442580223083 2.916699886322021 2.039594173431396 1.77866005897522 C 3.254014253616333 0.6316699981689453 4.835824489593506 -4.440892098500626e-16 6.493654251098633 -4.440892098500626e-16 C 8.110994338989258 -4.440892098500626e-16 9.659414291381836 0.6068500280380249 10.85366439819336 1.70878005027771 C 12.04337406158447 2.806509971618652 12.79691410064697 4.315330028533936 12.97547435760498 5.957320213317871 C 12.99722385406494 6.078330039978027 13.05319404602051 6.494500160217285 12.86003398895264 6.768489837646484 C 12.77011394500732 6.89601993560791 12.63850402832031 6.973909854888916 12.46885395050049 7 Z\",\n stroke: \"none\",\n fill: \"#112f4a\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Subtraction_1\",\n \"data-name\": \"Subtraction 1\",\n transform: \"translate(42 228.5)\",\n fill: \"#f3f3f3\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M 12.24991893768311 6.25 L 0.7851961851119995 6.25 C 0.7681782245635986 6.209854602813721 0.7530810236930847 6.154855251312256 0.7503094673156738 6.116876125335693 C 0.8507227897644043 4.674354553222656 1.491071820259094 3.328355073928833 2.554574251174927 2.323909997940063 C 3.629194259643555 1.3089599609375 5.028114318847656 0.75 6.493654251098633 0.75 C 7.921964168548584 0.75 9.289753913879395 1.286260008811951 10.34506416320801 2.259989976882935 C 11.40154457092285 3.234780073165894 12.07091426849365 4.576650142669678 12.22987461090088 6.038400173187256 L 12.23269462585449 6.064330101013184 L 12.2373046875 6.090000152587891 C 12.24755573272705 6.147040843963623 12.25083923339844 6.203354835510254 12.24991893768311 6.25 Z\",\n stroke: \"none\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M 11.38053512573242 5.5 C 11.14435958862305 4.462210178375244 10.6086311340332 3.523655652999878 9.836474418640137 2.811189889907837 C 8.92009449005127 1.965659976005554 7.732924461364746 1.5 6.493654251098633 1.5 C 5.220404148101807 1.5 4.004374504089355 1.986240029335022 3.069544315338135 2.869169950485229 C 2.31054162979126 3.586022138595581 1.799095392227173 4.501752853393555 1.591088771820068 5.5 L 11.38053512573242 5.5 M 12.46885395050049 7 L 12.46883392333984 7 L 12.46880435943604 7 L 12.31338405609131 7 L 0.6179842948913574 7 C 0.1110542863607407 6.913949966430664 -0.01316571421921253 6.286670207977295 0.001064285985194147 6.080170154571533 C 0.1106842830777168 4.444349765777588 0.8346442580223083 2.916699886322021 2.039594173431396 1.77866005897522 C 3.254014253616333 0.6316699981689453 4.835824489593506 -4.440892098500626e-16 6.493654251098633 -4.440892098500626e-16 C 8.110994338989258 -4.440892098500626e-16 9.659414291381836 0.6068500280380249 10.85366439819336 1.70878005027771 C 12.04337406158447 2.806509971618652 12.79691410064697 4.315330028533936 12.97547435760498 5.957320213317871 C 12.99722385406494 6.078330039978027 13.05319404602051 6.494500160217285 12.86003398895264 6.768489837646484 C 12.77011394500732 6.89601993560791 12.63850402832031 6.973909854888916 12.46885395050049 7 Z\",\n stroke: \"none\",\n fill: \"#112f4a\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Ellipse_31\",\n \"data-name\": \"Ellipse 31\",\n transform: \"translate(45 220.5)\",\n fill: \"#f3f3f3\",\n stroke: \"#112f4a\",\n strokeWidth: 1.5\n }, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 3.5,\n cy: 3.5,\n r: 3.5,\n stroke: \"none\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 3.5,\n cy: 3.5,\n r: 2.75,\n fill: \"none\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgMitmedlemskabMenuikon);\nexport default __webpack_public_path__ + \"static/media/Mit medlemskab_menuikon.97aabcb8.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgPil(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 29,\n height: 29,\n viewBox: \"0 0 29 29\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_778\",\n \"data-name\": \"Group 778\",\n transform: \"translate(-136 -254)\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_908\",\n \"data-name\": \"Group 908\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_1177\",\n \"data-name\": \"Path 1177\",\n d: \"M1267.218,55.5l4.5,5,4.5-5\",\n transform: \"translate(93.5 1540.217) rotate(-90)\",\n fill: \"none\",\n stroke: \"#e21b37\",\n strokeLinecap: \"round\",\n strokeWidth: 2\n }), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Ellipse_86\",\n \"data-name\": \"Ellipse 86\",\n transform: \"translate(136 254)\",\n fill: \"none\",\n stroke: \"#e21b37\",\n strokeWidth: 1\n }, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 14.5,\n cy: 14.5,\n r: 14.5,\n stroke: \"none\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 14.5,\n cy: 14.5,\n r: 14,\n fill: \"none\"\n }))))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgPil);\nexport default __webpack_public_path__ + \"static/media/Pil.08abf4a3.svg\";\nexport { ForwardRef as ReactComponent };","import { createStyles, makeStyles, Theme } from '@material-ui/core';\r\n\r\nexport const useMenuItemStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n display: 'flex',\r\n fontSize: '14px',\r\n marginBottom: theme.spacing(),\r\n },\r\n title: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n marginLeft: theme.spacing(),\r\n textTransform: 'uppercase',\r\n },\r\n icon: {\r\n width: '20px',\r\n height: '20px',\r\n },\r\n link: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n width: '100%',\r\n textDecoration: 'none',\r\n padding: `${theme.spacing()}px ${theme.spacing()}px 0 ${theme.spacing()}px`,\r\n color: theme.customPalette.darkBlue,\r\n '&.active': {\r\n fontWeight: theme.fontWeight,\r\n },\r\n [theme.breakpoints.down('xs')]: {\r\n padding: `${theme.spacing()}px ${theme.spacing()}px 0 ${theme.spacing() * 2}px`,\r\n },\r\n },\r\n counter: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n backgroundColor: theme.customPalette.red,\r\n color: theme.customPalette.white,\r\n fontSize: '10px',\r\n borderRadius: '20px',\r\n width: '20px',\r\n height: '20px',\r\n marginLeft: '5px',\r\n },\r\n button: {\r\n border: 'none',\r\n fontFamily: 'Montserrat, sans-serif',\r\n color: theme.customPalette.darkBlue,\r\n backgroundColor: 'transparent',\r\n '&:hover': {\r\n cursor: 'pointer',\r\n },\r\n },\r\n })\r\n);\r\n","import React, { FunctionComponent, ReactNode } from 'react';\r\nimport { NavLink } from 'react-router-dom';\r\nimport { useMenuItemStyles } from './MenuItem.styles';\r\n\r\ninterface IMenuItemProps {\r\n linkTo: string;\r\n icon: ReactNode;\r\n title: string;\r\n counter?: number | undefined;\r\n menuItemClicked?: () => void;\r\n isActive?: (match: any, location: { pathname: string }) => boolean;\r\n}\r\n\r\nconst MenuItem: FunctionComponent = ({ linkTo, icon, title, counter, menuItemClicked, isActive }) => {\r\n const classes = useMenuItemStyles();\r\n return (\r\n \r\n
\r\n
{icon}
\r\n
\r\n {title}\r\n {counter ?
{counter}
: null}\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default MenuItem;\r\n","import React, { FunctionComponent, ReactNode, useCallback, useState } from 'react';\r\nimport { fetchRequest } from '../../../../../api/fetch';\r\nimport { useMenuItemStyles } from './MenuItem.styles';\r\n\r\ninterface IMenuItemProps {\r\n icon: ReactNode;\r\n title: string;\r\n counter?: number | undefined;\r\n}\r\n\r\nconst EventMenuItem: FunctionComponent = ({ icon, title, counter }) => {\r\n const classes = useMenuItemStyles();\r\n const [loading, setLoading] = useState(false);\r\n\r\n const handleClick = useCallback(async () => {\r\n if (loading) return; // Prevent multiple clicks\r\n\r\n setLoading(true);\r\n\r\n try {\r\n const response = await fetchRequest('/members/me/zarrangement/remote-login-url');\r\n\r\n if (!response.ok) {\r\n throw new Error('Network response was not ok');\r\n }\r\n\r\n const url = await response.text();\r\n window.open(url, '_blank');\r\n } catch (error) {\r\n console.error('Failed to fetch URL', error);\r\n } finally {\r\n setLoading(false);\r\n }\r\n }, [loading]);\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default EventMenuItem;\r\n","import { useTranslation } from '@fsl/fsl.common.npm';\r\nimport CommentOutlinedIcon from '@material-ui/icons/CommentOutlined';\r\nimport React, { FunctionComponent } from 'react';\r\nimport DescriptionOutlinedIcon from '@material-ui/icons/DescriptionOutlined';\r\nimport { ReactComponent as FrontPageIcon } from '../../../images/Forside_menuikon.svg';\r\nimport { ReactComponent as CoursePageIcon } from '../../../images/Kursus_menuikon.svg';\r\nimport { ReactComponent as LogoutPageIcon } from '../../../images/Logud.svg';\r\nimport { ReactComponent as EventsPageIcon } from '../../../images/events.svg';\r\nimport { ReactComponent as MyCirclePageIcon } from '../../../images/Min kreds_menuikon.svg';\r\nimport { ReactComponent as MySchoolPageIcon } from '../../../images/Min skole_menuikon.svg';\r\nimport { ReactComponent as MembershipPageIcon } from '../../../images/Mit medlemskab_menuikon.svg';\r\nimport Routing from '../../../routing/routing';\r\nimport { useDesktopNavbarStyles } from './DesktopNavbar.styles';\r\nimport MenuItem from './items/MenuItem/MenuItem';\r\nimport { useListMenuData } from './ListMenu.hooks';\r\nimport useUser from '../../../auth/UserService';\r\nimport EventMenuItem from './items/MenuItem/EventMenuItem';\r\n\r\ninterface IListMenuProps {\r\n menuItemClicked?: () => void;\r\n}\r\n\r\nconst ListItemWrapper: FunctionComponent = ({ children }) => {\r\n return
  • {children}
  • ;\r\n};\r\n\r\nconst ListMenu: FunctionComponent = ({ menuItemClicked }) => {\r\n const classes = useDesktopNavbarStyles();\r\n const user = useUser();\r\n const { translateString } = useTranslation();\r\n\r\n const { isMessagesLinkActive, numberOfUnreadMessages } = useListMenuData();\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default ListMenu;\r\n","import { useCallback, useContext } from 'react';\r\nimport { MessageContext } from '../../../contexts/MessageContext';\r\nimport Routing from '../../../routing/routing';\r\n\r\nexport const useListMenuData = () => {\r\n const { state } = useContext(MessageContext);\r\n\r\n const isMessagesLinkActive = useCallback((match: any, location: { pathname: string }) => {\r\n return location && (location.pathname?.startsWith(Routing.messages) || location.pathname?.startsWith(Routing.newMessage));\r\n }, []);\r\n\r\n return { isMessagesLinkActive, numberOfUnreadMessages: state.numberOfUnreadMessages };\r\n};\r\n","import React, { FunctionComponent } from 'react';\r\nimport { useDesktopNavbarStyles } from './DesktopNavbar.styles';\r\nimport Logo from '../items/logo';\r\nimport ListMenu from './ListMenu';\r\n\r\nconst DesktopNavbar: FunctionComponent = () => {\r\n const classes = useDesktopNavbarStyles();\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default DesktopNavbar;\r\n","import { MyDistrictData, MyMembershipData, MySchoolData } from './Dashboard.types';\r\nimport { TileInformationApiResponseData } from '../../../api/responseTypes';\r\n\r\n/*\r\nThe balance needs its sign flipped for ui purposes\r\nThe balance is saved as a positive number in the database when the member hasn't paid\r\nBut it needs to be shown as a negative number\r\nFlipping \"balance\" as well as the \"negativeRate\" to match\r\n */\r\nexport const mapToMyMembershipData = (data: TileInformationApiResponseData): MyMembershipData | undefined => {\r\n if (data) {\r\n return {\r\n membernumber: data.memberNumber ? `${data.memberNumber}` : '',\r\n balance: setBalance(data.balance),\r\n memberStatus: data.memberEconomyStatus === 'Exempt' ? data.memberEconomyStatus : data.memberStatus,\r\n memberType: data.memberType,\r\n positions: [\r\n ...(data.schoolMemberTrustPositions?.map((p) => `${p.positionOfTrustName} - ${p.schoolName}`) ?? []),\r\n ...(data.districtMemberTrustPositions?.map((p) => `${p.positionOfTrustName} - ${p.districtName}`) ?? []),\r\n ],\r\n negativeRate: data.balance ? -data.balance < 0 : false,\r\n };\r\n }\r\n return undefined;\r\n};\r\n\r\nexport const mapToMySchoolData = (data: TileInformationApiResponseData): MySchoolData | undefined => {\r\n if (data) {\r\n return {\r\n schoolName: data.schoolName,\r\n schoolEmail: data.schoolEmail,\r\n };\r\n }\r\n\r\n return undefined;\r\n};\r\n\r\nexport const mapToMyDistrictData = (data: TileInformationApiResponseData): MyDistrictData | undefined => {\r\n if (data) {\r\n return {\r\n memberTrustPositionsCount: data.memberTrustPositionsCount,\r\n districtNumber: data.districtNumber,\r\n };\r\n }\r\n return undefined;\r\n};\r\n\r\nconst setBalance = (balance: number | null | undefined) => {\r\n if (typeof balance === 'number') {\r\n return balance > 0 ? -balance : balance;\r\n }\r\n\r\n return undefined;\r\n};\r\n","import { useMemo } from 'react';\r\nimport { mapToMyDistrictData, mapToMyMembershipData, mapToMySchoolData } from './Dashboard.mapping';\r\nimport { TileInformationApiResponseData } from '../../../api/responseTypes';\r\n\r\nexport const useMapping = (data: TileInformationApiResponseData) => {\r\n const myMembershipMapping = useMemo(() => {\r\n if (data) {\r\n return mapToMyMembershipData(data);\r\n }\r\n\r\n return undefined;\r\n }, [data]);\r\n\r\n const mySchoolDataMapping = useMemo(() => {\r\n if (data) {\r\n return mapToMySchoolData(data);\r\n }\r\n\r\n return undefined;\r\n }, [data]);\r\n\r\n const myDistrictDataMapping = useMemo(() => {\r\n if (data) {\r\n return mapToMyDistrictData(data);\r\n }\r\n\r\n return undefined;\r\n }, [data]);\r\n\r\n return {\r\n myMembershipData: myMembershipMapping,\r\n mySchoolData: mySchoolDataMapping,\r\n myDistrictData: myDistrictDataMapping,\r\n };\r\n};\r\n","import { createStyles, makeStyles, Theme } from '@material-ui/core';\r\n\r\nexport const useMobileDeviceNavbarStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n width: '100%',\r\n [theme.breakpoints.up('sm')]: {\r\n padding: 37,\r\n },\r\n },\r\n menuList: {\r\n listStyleType: 'none',\r\n padding: `${theme.spacing()}px ${theme.spacing()}px 0 ${theme.spacing()}px`,\r\n color: theme.customPalette.white,\r\n [theme.breakpoints.up('sm')]: {\r\n width: '100%',\r\n },\r\n },\r\n listItem: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n },\r\n doubleListItem: {\r\n display: 'flex',\r\n width: '100%',\r\n },\r\n tile: {\r\n width: '100%',\r\n height: '125px',\r\n marginBottom: theme.spacing(),\r\n textDecoration: 'none',\r\n [theme.breakpoints.up('sm')]: {\r\n height: '232px',\r\n },\r\n },\r\n tilePadding: {\r\n padding: '37px 30px',\r\n overflow: 'hidden',\r\n height: '100%',\r\n position: 'relative',\r\n },\r\n tileText: {\r\n fontWeight: theme.fontWeight,\r\n textTransform: 'uppercase',\r\n fontSize: '14px',\r\n },\r\n tileContent: {\r\n paddingLeft: theme.spacing(),\r\n },\r\n bottomIcons: {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n justifyContent: 'space-between',\r\n overflow: 'hidden',\r\n height: '100%',\r\n width: '100%',\r\n '& svg': {\r\n marginTop: '15px',\r\n height: '65px',\r\n width: '85px',\r\n [theme.breakpoints.up('sm')]: {\r\n height: '130px',\r\n width: '179px',\r\n },\r\n },\r\n [theme.breakpoints.up('sm')]: {\r\n alignItems: 'flex-end',\r\n },\r\n },\r\n playIcon: {\r\n position: 'absolute',\r\n right: 10,\r\n bottom: -10,\r\n width: 'max-content',\r\n padding: `0 ${theme.spacing()}px ${theme.spacing()}px 0`,\r\n '& svg': {\r\n height: '30px',\r\n width: '30px',\r\n opacity: '1',\r\n '& path': {\r\n stroke: theme.customPalette.red,\r\n },\r\n '& g': {\r\n stroke: theme.customPalette.red,\r\n },\r\n },\r\n },\r\n })\r\n);\r\n","import { makeStyles, createStyles, Theme } from '@material-ui/core';\r\n\r\nexport const useCircleTileStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n backgroundColor: theme.customPalette.white,\r\n color: theme.customPalette.black,\r\n marginRight: theme.spacing(),\r\n },\r\n icon: {\r\n paddingTop: '5px',\r\n marginBottom: '-50px',\r\n },\r\n })\r\n);\r\n","var _g, _g2;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgAbleForsidenCropped(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 150,\n height: 100,\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"title\", null, \"background\"), /*#__PURE__*/React.createElement(\"rect\", {\n fill: \"none\",\n id: \"canvas_background\",\n height: 102,\n width: 152,\n y: -1,\n x: -1\n }))), _g2 || (_g2 = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"title\", null, \"Layer 1\"), /*#__PURE__*/React.createElement(\"g\", {\n stroke: \"null\",\n id: \"Group_907\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"null\",\n opacity: 0.502,\n fill: \"#edb1ba\",\n d: \"m78.68158,54.09162c11.5423,-15.81655 25.68631,-34.88346 47.2675,-32.71785c20.57953,2.0731 22.50015,24.17713 18.94231,41.01124c-4.78157,22.65127 -22.40816,39.16015 -36.80584,55.58431c-11.08793,12.64798 -32.90327,39.68792 -51.31967,27.149c-23.99149,-16.3375 -47.27029,-41.87105 -53.83124,-72.37947c-4.15159,-19.30353 5.90124,-36.31389 22.28086,-45.26358c20.8332,-11.38308 48.85454,21.37663 53.46608,26.61636zm-49.88129,-5.98172c-10.5425,5.5299 -4.8429,28.78294 0.76379,37.76769c8.17216,13.09396 18.95532,24.11188 30.65001,33.73931c6.36862,5.24362 17.17593,13.61783 24.48209,6.91359c4.07818,-3.74016 9.31226,-8.57772 12.7075,-12.97224c10.13552,-13.12317 18.62639,-21.41461 22.13126,-38.37628c2.47441,-11.97025 5.92725,-33.76462 -11.89353,-35.49594c-6.50428,-0.63099 -14.23414,10.02179 -16.84607,16.74842c-2.33689,6.02359 -8.34127,15.75715 -15.35752,16.17099c-6.24225,0.3671 -9.25837,-8.67315 -11.68354,-13.18257c-6.63622,-12.33833 -24.46909,-16.81172 -34.95398,-11.31395l0,0.00097z\",\n id: \"Path_1233\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"null\",\n opacity: 0.502,\n fillRule: \"evenodd\",\n fill: \"#edb1ba\",\n d: \"m56.38864,10.74924c-2.64352,6.10636 -2.72808,6.94475 -1.76545,7.44428c10.91232,5.67401 16.2514,12.95081 22.43882,22.99402c0.05018,0.08179 1.08343,0.94648 1.08343,0.94648s3.74832,-2.97577 4.0884,-5.19201a4.46007,4.67398 0 0 0 -0.72662,-3.12572c-0.16261,-0.31257 -1.67253,-2.55706 -1.46718,-2.85502c0.07991,-0.11393 0.11801,-0.2298 0.17469,-0.24052a4.18132,4.38185 0 0 0 1.81191,-0.84132c3.98526,-3.05951 10.14574,-4.86873 11.82106,-14.58865c0.96449,-5.60488 -0.88365,-10.18148 -1.40957,-12.61292c-0.68574,-3.16662 -4.26309,-2.893 -7.81442,-2.31557a26.89983,28.18993 0 0 0 -7.36749,2.6369a15.68367,16.43585 0 0 0 -4.70538,3.72166c-1.34731,1.5132 -1.81098,4.66132 -1.9327,6.71884a11.21523,11.75311 0 0 0 0.61326,5.42084c-0.2453,0.25804 -0.40977,0.06719 -0.54915,-0.07303c-3.19546,-3.17441 -7.2532,-5.50264 -11.31279,-8.56896a2.15292,2.25617 0 0 0 -2.98082,0.53069zm20.31007,2.62911c1.03975,-5.68765 9.24629,-8.09572 10.49418,-8.09572c0.07619,0.09056 0.16261,0.14704 0.18584,0.22007a14.19047,14.87104 0 0 1 -1.56846,11.4902c-1.30086,2.24935 -3.62381,3.68368 -5.59739,5.20272a15.48389,16.22649 0 0 1 -2.02748,1.12954a3.41474,3.57851 0 0 1 -0.45158,-0.6602a14.47945,15.17388 0 0 1 -1.03511,-9.28856l0,0.00195z\",\n id: \"Path_1234\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgAbleForsidenCropped);\nexport default __webpack_public_path__ + \"static/media/Able_forsiden_cropped.ca3d2114.svg\";\nexport { ForwardRef as ReactComponent };","import React, { FunctionComponent } from 'react';\r\nimport { NavLink } from 'react-router-dom';\r\nimport { useTranslation } from '@fsl/fsl.common.npm';\r\nimport { Grid } from '@material-ui/core';\r\nimport { useMobileDeviceNavbarStyles } from '../../MobileDeviceNavbar.styles';\r\nimport { useCircleTileStyles } from './CircleTile.styles';\r\nimport { ReactComponent as ArrowIcon } from '../../../../../images/Pil.svg';\r\nimport Routing from '../../../../../routing/routing';\r\nimport { MyDistrictData } from '../../Dashboard.types';\r\n\r\ninterface ICircleTileProps {\r\n data?: MyDistrictData;\r\n}\r\n\r\nconst CircleTile: FunctionComponent = ({ data = defaultData }) => {\r\n const navbarClasses = useMobileDeviceNavbarStyles();\r\n const tileClasses = useCircleTileStyles();\r\n const { translateString } = useTranslation();\r\n\r\n return (\r\n \r\n \r\n \r\n
    {translateString('my_district')}
    \r\n
    \r\n \r\n {data?.districtNumber && (\r\n <>\r\n {translateString('district')} {data.districtNumber}\r\n \r\n )}\r\n \r\n \r\n {data?.memberTrustPositionsCount && (\r\n <>\r\n {data.memberTrustPositionsCount} {translateString('trusted_positions')}\r\n \r\n )}\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nconst defaultData: MyDistrictData = {\r\n districtNumber: undefined,\r\n memberTrustPositionsCount: undefined,\r\n};\r\n\r\nexport default CircleTile;\r\n","import { makeStyles, createStyles, Theme } from '@material-ui/core';\r\n\r\nexport const useMembershipTileStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n backgroundColor: theme.customPalette.white,\r\n color: theme.customPalette.black,\r\n marginRight: theme.spacing(),\r\n },\r\n })\r\n);\r\n","import React, { FunctionComponent } from 'react';\r\nimport { Grid, Typography } from '@material-ui/core';\r\nimport { NavLink } from 'react-router-dom';\r\nimport { useTranslation } from '@fsl/fsl.common.npm';\r\nimport clsx from 'clsx';\r\nimport { useMobileDeviceNavbarStyles } from '../../MobileDeviceNavbar.styles';\r\nimport { useMembershipTileStyles } from './MembershipTile.styles';\r\nimport { ReactComponent as ArrowIcon } from '../../../../../images/Pil.svg';\r\nimport Routing from '../../../../../routing/routing';\r\nimport LabelValueComponent from '../../../../../components/LabelValueComponent/LabelValueComponent';\r\nimport { MyMembershipData } from '../../Dashboard.types';\r\nimport { useMemberStatusFormatter } from '../../../../../pages/MembershipPage/panels/MyInformation/MyInformation.hooks';\r\nimport theme from '../../../../../theming/theme';\r\nimport { useMemberTypeFormatter } from '../../../../../hooks/useMemberTypeFormatter';\r\nimport { useMySubscriptionStyles } from '../../../../../pages/MembershipPage/panels/MySubscription/MySubscription.styles';\r\n\r\ninterface IMembershipTileProps {\r\n data?: MyMembershipData;\r\n}\r\nconst MembershipTile: FunctionComponent = ({ data = defaultData }) => {\r\n const navbarClasses = useMobileDeviceNavbarStyles();\r\n const tileClasses = useMembershipTileStyles();\r\n const { translateString } = useTranslation();\r\n const { memberStatusColor, memberStatusText } = useMemberStatusFormatter(data.memberStatus ?? 'Unknown', theme);\r\n const { formatMemberType } = useMemberTypeFormatter();\r\n const subscriptionClasses = useMySubscriptionStyles();\r\n const valueClassName = data.negativeRate\r\n ? clsx(subscriptionClasses.sidePanelValue, subscriptionClasses.sidePanelValueIsNegative)\r\n : subscriptionClasses.sidePanelValue;\r\n\r\n return (\r\n \r\n \r\n \r\n
    {translateString('my_membership')}
    \r\n
    \r\n {data?.positions && data?.positions.length > 0 && (\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 {data.balance} kr\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nconst defaultData: MyMembershipData = {\r\n balance: undefined,\r\n memberFrom: '',\r\n memberStatus: 'Unknown',\r\n memberType: 'Other',\r\n membernumber: '',\r\n negativeRate: false,\r\n};\r\n\r\nexport default MembershipTile;\r\n","import { createStyles, makeStyles, Theme } from '@material-ui/core';\r\n\r\nexport const useMessageTileStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n backgroundColor: theme.customPalette.white,\r\n color: theme.customPalette.darkBlue,\r\n },\r\n icon: {\r\n paddingTop: '5px',\r\n marginBottom: '-25px',\r\n '& svg': {\r\n fill: '#EA6073',\r\n },\r\n },\r\n })\r\n);\r\n","import React, { FunctionComponent } from 'react';\r\nimport { NavLink } from 'react-router-dom';\r\nimport { useTranslation } from '@fsl/fsl.common.npm';\r\nimport { Grid } from '@material-ui/core';\r\nimport Routing from '../../../../../routing/routing';\r\nimport { useMobileDeviceNavbarStyles } from '../../MobileDeviceNavbar.styles';\r\nimport { useMessageTileStyles } from './MessageTile.styles';\r\nimport { ReactComponent as ArrowIcon } from '../../../../../images/Pil.svg';\r\n\r\nconst MessageTile: FunctionComponent = () => {\r\n const navbarClasses = useMobileDeviceNavbarStyles();\r\n const tileClasses = useMessageTileStyles();\r\n const { translateString } = useTranslation();\r\n\r\n return (\r\n \r\n \r\n \r\n
    {translateString('my_messages')}
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default MessageTile;\r\n","import { makeStyles, createStyles, Theme } from '@material-ui/core';\r\n\r\nexport const useSchoolTileStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n backgroundColor: theme.customPalette.white,\r\n color: theme.customPalette.darkBlue,\r\n },\r\n svg: {\r\n '& svg': {\r\n stroke: theme.customPalette.red,\r\n '& path': {\r\n stroke: theme.customPalette.red,\r\n },\r\n '& g': {\r\n stroke: theme.customPalette.red,\r\n },\r\n },\r\n },\r\n icon: {\r\n paddingTop: '5px',\r\n },\r\n })\r\n);\r\n","import React, { FunctionComponent } from 'react';\r\nimport { useTranslation } from '@fsl/fsl.common.npm';\r\nimport { Grid } from '@material-ui/core';\r\nimport { NavLink } from 'react-router-dom';\r\nimport Routing from '../../../../../routing/routing';\r\nimport { useMobileDeviceNavbarStyles } from '../../MobileDeviceNavbar.styles';\r\nimport { useSchoolTileStyles } from './SchoolTile.styles';\r\nimport { ReactComponent as ArrowIcon } from '../../../../../images/Pil.svg';\r\nimport { MySchoolData } from '../../Dashboard.types';\r\n\r\ninterface ISchoolTileProps {\r\n data?: MySchoolData;\r\n}\r\n\r\nconst SchoolTile: FunctionComponent = ({ data }) => {\r\n const navbarClasses = useMobileDeviceNavbarStyles();\r\n const tileClasses = useSchoolTileStyles();\r\n const { translateString } = useTranslation();\r\n\r\n return (\r\n \r\n \r\n \r\n
    {translateString('my_school')}
    \r\n
    \r\n \r\n {data?.schoolName}\r\n \r\n \r\n {data?.schoolEmail}\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default SchoolTile;\r\n","import { createStyles, makeStyles, Theme } from '@material-ui/core';\r\n\r\nexport const useWelcomeTileStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n backgroundColor: theme.customPalette.darkBlue,\r\n color: theme.customPalette.white,\r\n },\r\n icon: {\r\n display: 'flex',\r\n justifyContent: 'flex-end',\r\n margin: `25px ${theme.spacing()}px 0 0`,\r\n [theme.breakpoints.up('sm')]: {\r\n height: '100%',\r\n margin: `0px 0 0`,\r\n alignItems: 'flex-end',\r\n },\r\n },\r\n textContainer: {\r\n position: 'absolute',\r\n marginTop: theme.spacing(2),\r\n paddingLeft: '15px',\r\n },\r\n header: {\r\n fontWeight: theme.fontWeight,\r\n fontSize: '20px',\r\n color: theme.customPalette.white,\r\n },\r\n text: {\r\n marginTop: '10px',\r\n fontSize: '14px',\r\n },\r\n })\r\n);\r\n","import React, { FunctionComponent } from 'react';\r\nimport { useTranslation } from '@fsl/fsl.common.npm';\r\nimport { useMobileDeviceNavbarStyles } from '../../MobileDeviceNavbar.styles';\r\nimport { useWelcomeTileStyles } from './WelcomeTile.styles';\r\n\r\nimport { ReactComponent as WelcomeIcon } from '../../../../../images/Able_forsiden_cropped.svg';\r\n\r\ninterface IWelcomeTileProps {\r\n fullName?: string;\r\n memberNumber?: number | undefined;\r\n}\r\n\r\nconst WelcomeTile: FunctionComponent = ({ fullName, memberNumber }) => {\r\n const navbarClasses = useMobileDeviceNavbarStyles();\r\n const tileClasses = useWelcomeTileStyles();\r\n const { translateString } = useTranslation();\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n {translateString('welcome_user', { user: fullName })}\r\n
    \r\n
    \r\n {`${translateString('member_number')}: ${memberNumber}`}\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default WelcomeTile;\r\n","import { createStyles, makeStyles, Theme } from '@material-ui/core';\r\n\r\nexport const useCasesTileStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n backgroundColor: theme.customPalette.white,\r\n color: theme.customPalette.darkBlue,\r\n },\r\n icon: {\r\n paddingTop: '5px',\r\n marginBottom: '-25px',\r\n '& svg': {\r\n fill: '#EA6073',\r\n },\r\n },\r\n })\r\n);\r\n","import React, { FunctionComponent } from 'react';\r\nimport { NavLink } from 'react-router-dom';\r\nimport { useTranslation } from '@fsl/fsl.common.npm';\r\nimport { Grid } from '@material-ui/core';\r\nimport Routing from '../../../../../routing/routing';\r\nimport { useMobileDeviceNavbarStyles } from '../../MobileDeviceNavbar.styles';\r\nimport { ReactComponent as ArrowIcon } from '../../../../../images/Pil.svg';\r\nimport { useCasesTileStyles } from './CasesTile.styles';\r\n\r\nconst CasesTile: FunctionComponent = () => {\r\n const navbarClasses = useMobileDeviceNavbarStyles();\r\n const tileClasses = useCasesTileStyles();\r\n const { translateString } = useTranslation();\r\n\r\n return (\r\n \r\n \r\n \r\n
    {translateString('my_cases')}
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default CasesTile;\r\n","import { createStyles, makeStyles, Theme } from '@material-ui/core';\r\n\r\nexport const useZeventTileStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n backgroundColor: theme.customPalette.white,\r\n color: theme.customPalette.black,\r\n marginRight: theme.spacing(),\r\n },\r\n event: {\r\n border: 'none',\r\n textAlign: 'left',\r\n padding: 0,\r\n '&:hover': {\r\n cursor: 'pointer',\r\n },\r\n },\r\n eventHeading: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: '16px',\r\n fontFamily: 'Montserrat, sans-serif',\r\n },\r\n })\r\n);\r\n","import type React from 'react';\r\nimport { useCallback, useState } from 'react';\r\nimport { CircularProgress, Grid } from '@material-ui/core';\r\nimport { useTranslation } from '@fsl/fsl.common.npm';\r\nimport { useMobileDeviceNavbarStyles } from '../../MobileDeviceNavbar.styles';\r\nimport { useZeventTileStyles } from './ZeventTile.styles';\r\nimport { ReactComponent as ArrowIcon } from '../../../../../images/Pil.svg';\r\nimport { fetchRequest } from '../../../../../api/fetch';\r\n\r\nconst ZeventTile: React.FC = () => {\r\n const [loading, setLoading] = useState(false);\r\n const navbarClasses = useMobileDeviceNavbarStyles();\r\n const tileClasses = useZeventTileStyles();\r\n const { translateString } = useTranslation();\r\n\r\n const handleClick = useCallback(async () => {\r\n if (loading) return; // Prevent multiple clicks\r\n\r\n setLoading(true);\r\n\r\n try {\r\n const response = await fetchRequest('/members/me/zarrangement/remote-login-url');\r\n\r\n if (!response.ok) {\r\n throw new Error('Network response was not ok');\r\n }\r\n\r\n const url = await response.text();\r\n window.open(url, '_blank');\r\n } catch (error) {\r\n console.error('Failed to fetch URL', error);\r\n } finally {\r\n setLoading(false);\r\n }\r\n }, [loading]);\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default ZeventTile;\r\n","import { Grid, Slide } from '@material-ui/core';\r\nimport React, { FunctionComponent, useState } from 'react';\r\nimport { TileInformationApiResponseData } from '../../../api/responseTypes';\r\nimport { useFSLQuery } from '../../../hooks/useFslQueryHook';\r\nimport { useTileInformationEndpoint } from '../../../hooks/useTileInformationEndpoint';\r\nimport ContentSwitch from '../../ContentSwitch/ContentSwitch';\r\nimport ListMenu from '../DesktopNavbar/ListMenu';\r\nimport Logo from '../items/logo';\r\nimport { useMapping } from './Dashboard.hooks';\r\nimport CircleTile from './items/CircleTile/CircleTile';\r\nimport MembershipTile from './items/MembershipTile/MembershipTile';\r\n\r\nimport MessageTile from './items/MessageTile/MessageTile';\r\nimport SchoolTile from './items/SchoolTile/SchoolTile';\r\nimport WelcomeTile from './items/WelcomeTile/WelcomeTile';\r\nimport { useMobileDeviceNavbarStyles } from './MobileDeviceNavbar.styles';\r\nimport useUser from '../../../auth/UserService';\r\nimport CasesTile from './items/CasesTile/CasesTile';\r\nimport ZeventTile from './items/ZeventTile/ZeventTile';\r\n\r\nexport const MobileHomeComponent = () => {\r\n const classes = useMobileDeviceNavbarStyles();\r\n const { fetchTileInformation } = useTileInformationEndpoint();\r\n const { data } = useFSLQuery('tileInformation', fetchTileInformation);\r\n\r\n const { myMembershipData, mySchoolData, myDistrictData } = useMapping(data);\r\n const user = useUser();\r\n const isExternal = user && !user?.isInternalUser;\r\n\r\n // Frontpage\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n {isExternal ? (\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 \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\nconst MobileDeviceNavbar: FunctionComponent = () => {\r\n const [subMenuOpened, setSubMenuOpened] = useState(false);\r\n\r\n const classes = useMobileDeviceNavbarStyles();\r\n\r\n return (\r\n
    \r\n \r\n {subMenuOpened ? (\r\n \r\n
    \r\n setSubMenuOpened(false)} />\r\n
    \r\n
    \r\n ) : (\r\n \r\n )}\r\n
    \r\n );\r\n};\r\n\r\nexport default MobileDeviceNavbar;\r\n","import { useCallback } from 'react';\r\nimport { get } from '../api';\r\nimport { TileInformationApiResponseData } from '../api/responseTypes';\r\n\r\nexport const useTileInformationEndpoint = () => {\r\n const endpoint = '/tile/me';\r\n\r\n const fetchTileInformation = useCallback(async (): Promise => {\r\n const response = await get(endpoint);\r\n return response.json();\r\n }, []);\r\n\r\n return { fetchTileInformation, endpoint };\r\n};\r\n","import React, { FunctionComponent } from 'react';\r\nimport DesktopNavbar from './DesktopNavbar/DesktopNavbar';\r\nimport MobileDeviceNavbar from './MobileDeviceNavbar/MobileDeviceNavbar';\r\n\r\ninterface INavbarProps {\r\n smallScreen: boolean;\r\n}\r\n\r\nconst Navbar: FunctionComponent = ({ smallScreen }) => {\r\n if (smallScreen) {\r\n return ;\r\n }\r\n\r\n return ;\r\n};\r\n\r\nexport default Navbar;\r\n","import { createStyles, makeStyles, Theme } from '@material-ui/core';\r\n\r\nexport const useNewMemberFlowStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n stepperIcon: {\r\n borderRadius: '17.5px',\r\n height: '22px',\r\n width: '22px',\r\n border: `2px solid ${theme.customPalette.red}`,\r\n },\r\n stepperIconComplete: {\r\n backgroundColor: theme.customPalette.red,\r\n },\r\n activeStepperText: {\r\n fontWeight: theme.fontWeight,\r\n },\r\n contentHeader: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n [theme.breakpoints.down('xs')]: {\r\n fontSize: '16px',\r\n fontWeight: theme.fontWeight,\r\n },\r\n },\r\n content: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n paddingTop: '50px',\r\n [theme.breakpoints.down('xs')]: {\r\n paddingTop: '20px',\r\n paddingLeft: '39.5px',\r\n paddingRight: '28.5px',\r\n },\r\n },\r\n centerContent: {\r\n width: '500px',\r\n },\r\n mobileComponentWrapper: {\r\n paddingLeft: '34px',\r\n paddingRight: '10px',\r\n },\r\n })\r\n);\r\n","import { createStyles, makeStyles, Theme } from '@material-ui/core';\r\n\r\nexport const usePositionPageStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n height: '200px',\r\n '& svg path': {\r\n stroke: theme.customPalette.darkBlue,\r\n },\r\n '& .MuiFormControl-root': {\r\n width: '100%',\r\n },\r\n [theme.breakpoints.down('xs')]: {\r\n paddingTop: '25px',\r\n height: 'auto',\r\n marginBottom: theme.spacing(),\r\n },\r\n },\r\n flexRoot: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n },\r\n selectorRoot: {\r\n width: '100%',\r\n display: 'flex',\r\n justifyContent: 'center',\r\n },\r\n selector: {\r\n width: '282px',\r\n },\r\n otherTextField: {\r\n marginTop: '40px',\r\n '& .MuiOutlinedInput-multiline': {\r\n borderRadius: '17.5px',\r\n },\r\n [theme.breakpoints.up('sm')]: {\r\n width: '551px',\r\n },\r\n [theme.breakpoints.down('xs')]: {\r\n '& .MuiInputBase-root': {\r\n padding: '25px',\r\n },\r\n },\r\n },\r\n })\r\n);\r\n","import _ from 'lodash';\r\nimport { INewMemberContextState, NewMemberContextAction } from './newMemberContext.types';\r\n\r\nexport default function NewMemberContextReducer(state: INewMemberContextState, action: NewMemberContextAction): INewMemberContextState {\r\n switch (action.type) {\r\n case 'setEmployment': {\r\n return { ...state, employment: { ...state.employment, ...action.employment } };\r\n }\r\n case 'setInformation': {\r\n return { ...state, information: { ...state.information, ...action.information } };\r\n }\r\n case 'updatePositions': {\r\n const positions = [...state.positions];\r\n if (positions[action.index]) {\r\n positions[action.index] = { ...positions[action.index], ...action.position };\r\n } else {\r\n positions[action.index] = { ...positions[action.index], ...action.position, key: _.uniqueId() };\r\n }\r\n\r\n return { ...state, positions };\r\n }\r\n case 'setJobTitles': {\r\n return { ...state, jobTitles: action.jobTitles };\r\n }\r\n case 'removePosition': {\r\n const positions = [...state.positions];\r\n positions.splice(action.index, 1);\r\n return { ...state, positions };\r\n }\r\n case 'setEulaName': {\r\n return { ...state, acceptedTermsAndConditions: action.eulaName };\r\n }\r\n case 'setBypassPosition': {\r\n return { ...state, bypassPositions: action.value };\r\n }\r\n default: {\r\n return state;\r\n }\r\n }\r\n}\r\n","import React, { createContext, Dispatch, FunctionComponent, useReducer } from 'react';\r\nimport _ from 'lodash';\r\nimport { INewMemberContextState, NewMemberContextAction } from './newMemberContext.types';\r\nimport reducer from './newMemberContext.reducer';\r\n\r\nconst initialState: INewMemberContextState = {\r\n employment: undefined,\r\n information: undefined,\r\n positions: [{ key: _.uniqueId() }],\r\n jobTitles: undefined,\r\n acceptedTermsAndConditions: undefined,\r\n bypassPositions: false,\r\n};\r\n\r\nexport const NewMemberContext = createContext<{\r\n state: INewMemberContextState;\r\n dispatch: Dispatch;\r\n}>({\r\n state: initialState,\r\n dispatch: () => null,\r\n});\r\n\r\nexport const NewMemberProvider: FunctionComponent = ({ children }) => {\r\n const [state, dispatch] = useReducer(reducer, initialState);\r\n return {children};\r\n};\r\n","var _defs, _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path10, _path11, _path12, _path13, _path14, _path15, _path16, _path17, _path18, _path19, _path20, _path21, _path22, _path23, _path24, _path25, _path26;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgCirkelToFarver01(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n width: 80,\n height: 80,\n \"data-name\": \"Layer 1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 595.28 595.28\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-1,.cls-2{fill:#e82943;}.cls-2{fill-rule:evenodd;}.cls-3{fill:#2e3e4e;}\"))), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-1\",\n d: \"M310.27,249.77c26-34,57.82-74.94,106.41-70.28,46.33,4.45,50.64,51.93,42.65,88.1-10.77,48.66-50.45,84.13-82.86,119.41-25,27.17-74.08,85.26-115.54,58.32-54-35.09-106.42-89.95-121.19-155.49-9.35-41.47,13.28-78,50.16-97.24C236.8,168.14,299.88,238.52,310.27,249.77ZM198,236.92c-23.74,11.88-10.91,61.83,1.72,81.14,18.39,28.13,42.67,51.79,69,72.48,14.34,11.26,38.67,29.25,55.12,14.86,9.18-8,21-18.43,28.6-27.87,22.82-28.2,41.94-46,49.83-82.44,5.57-25.72,13.34-72.54-26.78-76.26-14.63-1.36-32,21.53-37.92,36-5.26,12.94-18.78,33.85-34.58,34.74-14,.79-20.84-18.63-26.3-28.32C261.72,234.72,221.57,225.11,198,236.92Z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-2\",\n d: \"M260.08,164.34c-5.95,13.12-6.14,14.92-4,16,24.57,12.19,36.59,27.81,50.52,49.4.11.17,2.44,2,2.44,2s8.44-6.39,9.2-11.15c.4-2.55-.46-4.55-1.64-6.72-.37-.67-3.77-5.49-3.3-6.13.18-.25.26-.5.39-.52a9.32,9.32,0,0,0,4.08-1.81c9-6.57,22.84-10.45,26.61-31.34,2.17-12-2-21.87-3.17-27.09-1.54-6.81-9.6-6.22-17.6-5-5.86.91-11.29,3.16-16.58,5.67a35.15,35.15,0,0,0-10.59,8c-3,3.25-4.08,10-4.36,14.43-.47,7.74.8,9,1.39,11.64-.56.56-.93.15-1.24-.15-7.19-6.82-16.33-11.83-25.47-18.42C264.17,161.29,260.75,162.86,260.08,164.34ZM305.8,170c2.34-12.21,20.82-17.39,23.63-17.39.17.2.36.32.41.48a32,32,0,0,1-3.53,24.69c-2.94,4.83-8.16,7.91-12.6,11.17a34.56,34.56,0,0,1-4.57,2.43,7.77,7.77,0,0,1-1-1.42C305.31,183,304.4,177.28,305.8,170Z\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-3\",\n d: \"M30,306.85H40l0-20.07H50l0,20.08H65.52l0,12.86L20,319.7l0-35.66H30Z\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-3\",\n d: \"M58.86,251.81l-1.44,6.86,11.82,2.48-2.63,12.59L22.1,264.41l4.27-20.34A25.87,25.87,0,0,1,30.57,234,15.43,15.43,0,0,1,47,227.74a15.86,15.86,0,0,1,8,4,15.56,15.56,0,0,1,4.27,7.63l16-6.67-2.82,13.48ZM39.07,241.42q-2.13,1.61-2.94,5.49l-1.47,7,13,2.73,1.47-7c.54-2.59.39-4.65-.46-6.2a6.12,6.12,0,0,0-4.39-3A6.19,6.19,0,0,0,39.07,241.42Z\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-3\",\n d: \"M37.23,206.12l4.68-12,42.35,16.55-4.68,12Z\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-3\",\n d: \"M99.47,161.22l8.57,5L89.58,197.74l-39.22-23,18-30.76L77,149l-11.6,19.78L72,172.66,82.2,155.24l8.29,4.86L80.27,177.53l7.18,4.2Z\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-3\",\n d: \"M134.51,134.78a26,26,0,0,1-8.69,3l-3.27-9.85a27.44,27.44,0,0,0,7.43-2.37,26.75,26.75,0,0,0,6.68-4.42q5.47-5,3-7.73a3.08,3.08,0,0,0-3.51-.71,38.46,38.46,0,0,0-6.35,3.11,66,66,0,0,1-7.94,4,14.52,14.52,0,0,1-7.1,1,11,11,0,0,1-6.9-3.91,13,13,0,0,1-3.37-7.08,15.2,15.2,0,0,1,1.45-8.48,27.78,27.78,0,0,1,6.88-8.9A39.25,39.25,0,0,1,120,87.23a27,27,0,0,1,7.65-3l3.5,9.73a26.35,26.35,0,0,0-11.67,5.89q-2.84,2.58-3.37,4.6a3.42,3.42,0,0,0,.69,3.36,2.93,2.93,0,0,0,3.38.62,37.22,37.22,0,0,0,6.21-3.11,61.72,61.72,0,0,1,8-4,14.92,14.92,0,0,1,7.08-1,10.75,10.75,0,0,1,6.9,3.87,12.77,12.77,0,0,1,3.31,7,15.49,15.49,0,0,1-1.48,8.51,27.6,27.6,0,0,1-6.83,8.9A41.61,41.61,0,0,1,134.51,134.78Z\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-3\",\n d: \"M172.5,85.27,171,92.14l5.85,9.76-10.93,6.54-23.36-39,10.92-6.55,9.71,16.22,5.39-25.27,12.14-7.27-5.58,26.82,29.79,11.68-12.82,7.68Z\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-3\",\n d: \"M219.57,78a22.79,22.79,0,0,1-17.91-16,22.77,22.77,0,0,1,5.59-23.33A29,29,0,0,1,232,31a22.76,22.76,0,0,1,17.9,16,22.72,22.72,0,0,1-5.58,23.32A29.08,29.08,0,0,1,219.57,78Zm15.55-14.55A11.7,11.7,0,0,0,238,57.79a15,15,0,0,0-4.06-12.95,11.69,11.69,0,0,0-5.59-3.05,12.83,12.83,0,0,0-11.9,3.73,11.68,11.68,0,0,0-2.84,5.69,13.71,13.71,0,0,0,.48,7,13.89,13.89,0,0,0,3.58,6,11.75,11.75,0,0,0,5.58,3,12.78,12.78,0,0,0,11.9-3.74Z\"\n })), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-3\",\n d: \"M263.74,22.28l12.81-1.11,3.05,35.14,21.61-1.88.88,10.16-34.42,3Z\"\n })), _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-3\",\n d: \"M349,58.91l-1.06,9.88-36.29-3.9,4.85-45.21,35.46,3.81-1.06,9.88-22.8-2.45-.82,7.62,20.09,2.16-1,9.56L326.2,48.1l-.88,8.27Z\"\n })), _path12 || (_path12 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-3\",\n d: \"M381.78,65.88l-6.66-2.19-3.76,11.49-12.22-4L373.28,28,393,34.43a25.8,25.8,0,0,1,9.55,5.27,16.54,16.54,0,0,1-.45,24.46,15.59,15.59,0,0,1-8.05,3.41L399,84.21l-13.09-4.29Zm12.49-18.54c-.91-1.53-2.62-2.7-5.13-3.53l-6.79-2.22-4.14,12.66L385,56.47c2.51.82,4.58.9,6.21.22a6.08,6.08,0,0,0,3.44-4A6.21,6.21,0,0,0,394.27,47.34Z\"\n })), _path13 || (_path13 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-3\",\n d: \"M413.12,91.29a26.43,26.43,0,0,1-5.5-7.37L416,77.81a27.35,27.35,0,0,0,4.52,6.35,26.74,26.74,0,0,0,6.25,5q6.41,3.69,8.26.49a3.06,3.06,0,0,0-.39-3.56,38.1,38.1,0,0,0-4.89-5.1,65,65,0,0,1-6.25-6.34,14.53,14.53,0,0,1-3.09-6.47A11,11,0,0,1,422,60.44a13,13,0,0,1,5.72-5.36,15.15,15.15,0,0,1,8.52-1.2,27.86,27.86,0,0,1,10.57,3.84A39,39,0,0,1,454,63a26.9,26.9,0,0,1,5.17,6.39L451,75.68a26.46,26.46,0,0,0-9.17-9.33q-3.32-1.91-5.4-1.8a3.4,3.4,0,0,0-3,1.69,2.92,2.92,0,0,0,.44,3.4,37.07,37.07,0,0,0,4.86,5A62.11,62.11,0,0,1,445,81a14.89,14.89,0,0,1,3.11,6.44,10.78,10.78,0,0,1-1.58,7.75,12.83,12.83,0,0,1-5.66,5.28,15.49,15.49,0,0,1-8.56,1.18,27.61,27.61,0,0,1-10.55-3.79A42.18,42.18,0,0,1,413.12,91.29Z\"\n })), _path14 || (_path14 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-3\",\n d: \"M127.89,446.46l8.76,9.41-25.81,24,14.78,15.87-7.46,7L94.61,477.44Z\"\n })), _path15 || (_path15 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-3\",\n d: \"M191.88,542.23l-5.3,8.4L155.7,531.17l4.71-7.48-13.08-8.24-8.61,5-11.1-7,45.24-25.24,37.25,23.49-5.3,8.4L185.42,507.9l-4.09,6.48,17.09,10.77-5.13,8.14L176.2,522.51l-4.43,7Zm-26.41-26.56,9.18-14.56-1.27-.8-16.76,9.78Z\"\n })), _path16 || (_path16 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-3\",\n d: \"M229.37,552l-6.72-2-3.47,11.57-12.32-3.7,13.07-43.55,19.91,6a26,26,0,0,1,9.67,5,15.42,15.42,0,0,1,4.84,16.88,15.71,15.71,0,0,1-4.68,7.58,15.53,15.53,0,0,1-8,3.61L247,569.86l-13.19-4Zm12-18.84c-1-1.5-2.69-2.64-5.22-3.39l-6.85-2.06-3.82,12.76,6.84,2.05q3.79,1.14,6.22.07a6.09,6.09,0,0,0,3.34-4.12A6.21,6.21,0,0,0,241.4,533.12Z\"\n })), _path17 || (_path17 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-3\",\n d: \"M302.68,565.69l-.77,9.91-36.39-2.83,3.53-45.33,35.55,2.76-.77,9.91L281,538.33l-.6,7.64,20.14,1.57-.74,9.58-20.14-1.56-.65,8.29Z\"\n })), _path18 || (_path18 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-3\",\n d: \"M339.69,560.34l-6.94,1,1.66,12L321.67,575l-6.25-45L336,527.15a26,26,0,0,1,10.9.55,16.55,16.55,0,0,1,10.32,22.18,15.68,15.68,0,0,1-5.74,6.6l11.68,12.81-13.64,1.89Zm3.1-22.13c-1.49-1-3.55-1.28-6.16-.92l-7.08,1,1.83,13.18,7.08-1c2.61-.36,4.51-1.2,5.68-2.52a7,7,0,0,0-1.35-9.75Z\"\n })), _path19 || (_path19 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-3\",\n d: \"M381,526.35l3.44,9.4,18.85-6.89,3.41,9.33-18.85,6.89,5.35,14.64-12.08,4.41-15.61-42.7L399,509.19l3.41,9.33Z\"\n })), _path20 || (_path20 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-3\",\n d: \"M438.57,536.81a23.24,23.24,0,0,1-22.28-34.63,29,29,0,0,1,21.79-14,23.24,23.24,0,0,1,22.28,34.63,29,29,0,0,1-21.79,14Zm11.15-18.14a11.74,11.74,0,0,0,1.24-6.24A15,15,0,0,0,443.61,501a11.65,11.65,0,0,0-6.19-1.46,12.81,12.81,0,0,0-10.49,6.75,11.74,11.74,0,0,0-1.24,6.24,14,14,0,0,0,2.31,6.59,13.8,13.8,0,0,0,5,4.83,11.74,11.74,0,0,0,6.19,1.46,12.81,12.81,0,0,0,10.49-6.75Z\"\n })), _path21 || (_path21 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-3\",\n d: \"M491.84,481.94,487,487l8.75,8.33-8.87,9.32L454,473.32l14.33-15.06a26.09,26.09,0,0,1,8.87-6.35A16.55,16.55,0,0,1,499,462.83a15.68,15.68,0,0,1-.38,8.74l17.11,2.75-9.49,10Zm-11.37-19.25q-2.66.26-5.39,3.12L470.16,471l9.64,9.18,4.93-5.18q2.73-2.87,2.87-5.51a6.1,6.1,0,0,0-2.16-4.84A6.24,6.24,0,0,0,480.47,462.69Z\"\n })), _path22 || (_path22 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-3\",\n d: \"M537.17,422.62l8.5,5.15L526.77,459l-38.9-23.54,18.47-30.51,8.5,5.15L503,429.71l6.56,4L520,416.39l8.22,5-10.46,17.28,7.11,4.31Z\"\n })), _path23 || (_path23 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-3\",\n d: \"M524.81,354.31,568,368.65l-3.34,10.05-29.32,11.4,23,7.64-4,12-43.15-14.35,3.35-10,29.32-11.4-23-7.65Z\"\n })), _path24 || (_path24 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-3\",\n d: \"M526.37,341.81l1.83-12.73,45,6.47-1.83,12.73Z\"\n })), _path25 || (_path25 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-3\",\n d: \"M528.67,273.39l45.44-1.64.38,10.58L551,303.27l24.21-.89.46,12.6-45.44,1.65-.39-10.58,23.49-20.94-24.21.88Z\"\n })), _path26 || (_path26 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-3\",\n d: \"M539.43,226.76l-3.08-10.94,18.13-5.11a29.6,29.6,0,0,1,6.55,7.47,35.19,35.19,0,0,1,4.19,9.35,27,27,0,0,1,.58,13.19,22.48,22.48,0,0,1-5.66,10.91,24.59,24.59,0,0,1-23.51,6.63,22.49,22.49,0,0,1-10.55-6.41,27.71,27.71,0,0,1-6.44-11.75,28.88,28.88,0,0,1-1-11.58,21.93,21.93,0,0,1,3.65-9.8l9.34,5.86a14.48,14.48,0,0,0-1.88,12,12.25,12.25,0,0,0,16,9,13.66,13.66,0,0,0,6-3.39,11.72,11.72,0,0,0,3.21-5.63,13.4,13.4,0,0,0-.22-6.89,16.39,16.39,0,0,0-3.33-6.28Z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCirkelToFarver01);\nexport default __webpack_public_path__ + \"static/media/Cirkel_to_farver-01.621b8c45.svg\";\nexport { ForwardRef as ReactComponent };","import { createStyles, makeStyles, Theme } from '@material-ui/core';\r\n\r\nexport const useButtonGroupStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n [theme.breakpoints.up('sm')]: {\r\n '& button': {\r\n minWidth: '150px',\r\n },\r\n },\r\n },\r\n buttonSeparator: {\r\n width: '40px',\r\n },\r\n })\r\n);\r\n","import React, { FunctionComponent, useMemo } from 'react';\r\nimport { useTranslation } from '@fsl/fsl.common.npm';\r\nimport { useButtonGroupStyles } from './ButtonGroup.styles';\r\nimport FlowButton from '../FlowButton/FlowButton';\r\n\r\ninterface IButtonGroup {\r\n stepperProgress: number;\r\n next: () => void;\r\n previous: () => void;\r\n}\r\n\r\nconst ButtonGroup: FunctionComponent = ({ stepperProgress, next, previous }) => {\r\n const classes = useButtonGroupStyles();\r\n const { translateString } = useTranslation();\r\n\r\n const buttonText = useMemo(() => {\r\n return stepperProgress === 3 ? translateString('send') : translateString('next');\r\n }, [stepperProgress, translateString]);\r\n\r\n return (\r\n
    \r\n \r\n {translateString('previous')}\r\n \r\n
    \r\n\r\n \r\n {buttonText}\r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default ButtonGroup;\r\n","import { createStyles, makeStyles, Theme } from '@material-ui/core';\r\n\r\nexport const useTermsAndConditionsStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n marginLeft: '15px',\r\n width: (props) => `${props.windowWidth}px`,\r\n '& .MuiAccordionSummary-root': {\r\n display: 'inline-flex',\r\n },\r\n [theme.breakpoints.down('xs')]: {\r\n width: '80% !important',\r\n },\r\n },\r\n accordionIcon: {\r\n fill: theme.customPalette.red,\r\n },\r\n accordionRoot: {\r\n minHeight: '0',\r\n '& .MuiAccordionSummary-content': {\r\n margin: '0',\r\n },\r\n '& .MuiAccordionSummary-content.Mui-expanded': {\r\n margin: '0',\r\n },\r\n '& .react-pdf__Document': {\r\n height: '100% !important',\r\n width: '100% !important',\r\n },\r\n '& .react-pdf__Page__canvas': {\r\n height: '100% !important',\r\n width: '100% !important',\r\n },\r\n },\r\n logo: {\r\n margin: '30px 0',\r\n },\r\n conditions: {\r\n textTransform: 'uppercase',\r\n },\r\n buttons: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n marginTop: '30px',\r\n '& button': {\r\n minWidth: '225px',\r\n },\r\n [theme.breakpoints.down('xs')]: {\r\n flexDirection: 'Column',\r\n },\r\n },\r\n firstButton: {\r\n marginRight: '15px',\r\n [theme.breakpoints.down('xs')]: {\r\n marginBottom: '15px',\r\n },\r\n },\r\n topbar: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n },\r\n downloadLink: {\r\n marginTop: '15px',\r\n '& a': {\r\n textDecoration: 'none',\r\n color: '#112F4A',\r\n },\r\n },\r\n page: {\r\n border: `1px solid ${theme.customPalette.grey}`,\r\n marginBottom: '5px',\r\n },\r\n header: {\r\n textAlign: 'center',\r\n marginBottom: '10px',\r\n whiteSpace: 'pre-wrap',\r\n },\r\n subheader: {\r\n fontSize: '16px',\r\n textAlign: 'center',\r\n marginBottom: '15px',\r\n fontWeight: 800,\r\n },\r\n })\r\n);\r\n","import { useEffect, useState } from 'react';\r\nimport { useTermsAndConditionsEndpoint } from '../../../../../../hooks/useTermsAndConditionsEndpoint';\r\n\r\nexport const useData = (language: string) => {\r\n const [eula, setEula] = useState<{ name: string; eula: string }>();\r\n const { fetchPdf } = useTermsAndConditionsEndpoint(language);\r\n\r\n useEffect(() => {\r\n const fetch = async () => {\r\n const response = await fetchPdf();\r\n setEula({ name: response?.name, eula: response?.base64Pdf });\r\n };\r\n\r\n fetch();\r\n }, [fetchPdf]);\r\n\r\n return { eula };\r\n};\r\n","import { useCallback, useMemo } from 'react';\r\nimport { get } from '../api';\r\n\r\nexport const useTermsAndConditionsEndpoint = (language: string) => {\r\n const endpoint = useMemo(() => `/terms-and-conditions/${language}`, [language]);\r\n\r\n const fetchPdf = useCallback(async () => {\r\n return get(endpoint, { ignoreAuthentication: true }).then((response) => response.json());\r\n }, [endpoint]);\r\n\r\n return { fetchPdf, endpoint };\r\n};\r\n","import { createStyles, makeStyles, Theme } from '@material-ui/core';\r\n\r\nexport const useLanguageSelectorStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n display: 'flex',\r\n height: '50px',\r\n '& .MuiButton-text': {\r\n textDecoration: 'none',\r\n color: theme.customPalette.darkBlue,\r\n fontWeight: 'normal',\r\n },\r\n },\r\n item: {\r\n alignSelf: 'flex-end',\r\n },\r\n separator: {\r\n marginRight: '10px',\r\n marginLeft: '10px',\r\n },\r\n activeItem: {\r\n '& .MuiButton-text': {\r\n fontWeight: theme.fontWeight,\r\n },\r\n },\r\n })\r\n);\r\n","import { Button, Typography } from '@material-ui/core';\r\nimport React, { FunctionComponent, useCallback, useState } from 'react';\r\nimport clsx from 'clsx';\r\nimport { useTranslation } from '@fsl/fsl.common.npm';\r\nimport { useLanguageSelectorStyles } from './LanguageSelector.styles';\r\n\r\ntype Language = 'da' | 'en';\r\n\r\nconst LanguageSelector: FunctionComponent = () => {\r\n const classes = useLanguageSelectorStyles();\r\n const { changeLanguage } = useTranslation();\r\n const [language, setLanguage] = useState('da');\r\n\r\n const handleOnClick = useCallback(\r\n (l: Language) => () => {\r\n setLanguage(l);\r\n changeLanguage(l);\r\n },\r\n [setLanguage, changeLanguage]\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\nexport default LanguageSelector;\r\n","import { Accordion, AccordionDetails, AccordionSummary, Typography } from '@material-ui/core';\r\nimport React, { FunctionComponent, useMemo, useState } from 'react';\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\r\nimport { useTranslation } from '@fsl/fsl.common.npm';\r\nimport { Document, pdfjs, Page } from 'react-pdf';\r\nimport { useTermsAndConditionsStyles } from './TermsAndConditions.styles';\r\nimport useWindowDimensions from '../../../../../../hooks/useWindowDimensions';\r\nimport { ReactComponent as LogoIcon } from '../../../../../../images/Cirkel_to_farver-01.svg';\r\nimport { FslButton } from '../../../../../../components/buttons/FslButton/FslButton';\r\nimport FlowButton from '../../../components/FlowButton/FlowButton';\r\nimport { useData } from './TermsAndConditions.hooks';\r\nimport LanguageSelector from '../../../../../../components/LanguageSelector/LanguageSelector';\r\nimport { useScreenSizeProvider } from '../../../../../../hooks/useScreenSizeProvider';\r\nimport { ProgressSpinner } from '../../../../../../components/feedback/ProgressSpinner/ProgressSpinner';\r\n\r\ninterface ITermsAndConditionsProps {\r\n acceptEula: (eulaName: string | undefined) => void;\r\n}\r\n\r\nconst TermsAndConditions: FunctionComponent = ({ acceptEula }) => {\r\n pdfjs.GlobalWorkerOptions.workerSrc = `//cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjs.version}/pdf.worker.js`;\r\n\r\n const [expanded, setExpanded] = useState(false);\r\n const [pageAmount, setPageAmount] = useState();\r\n\r\n const { windowWidth, windowHeight } = useWindowDimensions();\r\n\r\n const contentWidth = useMemo(() => {\r\n return windowWidth * 0.5;\r\n }, [windowWidth]);\r\n\r\n const contentHeight = useMemo(() => {\r\n return windowHeight * 0.8;\r\n }, [windowHeight]);\r\n\r\n const { translateString, language } = useTranslation();\r\n const { eula } = useData(language);\r\n const classes = useTermsAndConditionsStyles({ windowWidth: contentWidth });\r\n const { screenSize } = useScreenSizeProvider();\r\n\r\n const pages = useMemo(() => {\r\n const p: any[] = [];\r\n for (let i = 0; i < (pageAmount ?? 0); i++) {\r\n p.push(\r\n
    \r\n \r\n
    \r\n );\r\n }\r\n return p;\r\n }, [pageAmount, contentWidth, contentHeight, classes]);\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n {translateString('terms_header')}\r\n \r\n \r\n {translateString('terms_subheader')}\r\n \r\n {translateString('terms_text')}\r\n {!eula?.name ? (\r\n \r\n ) : (\r\n <>\r\n {' '}\r\n {screenSize === 'SmallScreen' && eula && (\r\n \r\n )}\r\n {screenSize === 'LargeScreen' && (\r\n
    \r\n setExpanded((state) => !state)}\r\n >\r\n }>\r\n \r\n {translateString('terms_general')}\r\n \r\n \r\n \r\n {eula && eula.eula && (\r\n setPageAmount(numPages)}>\r\n {pages}\r\n \r\n )}\r\n \r\n \r\n
    \r\n )}\r\n
    \r\n
    \r\n window.location.replace('https://www.fsl.dk/')}>\r\n {translateString('eula_not_accept')}\r\n \r\n
    \r\n acceptEula(eula?.name)}>\r\n {translateString('eula_accept')}\r\n \r\n
    \r\n \r\n )}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default TermsAndConditions;\r\n","import React, { FunctionComponent, useCallback, useEffect } from 'react';\r\nimport { useTranslation } from '@fsl/fsl.common.npm';\r\nimport SimpleSelect from '../../../../../components/selectComponents/SimpleSelect/SimpleSelect';\r\nimport { usePositionPageStyles } from './EmploymentPage.styles';\r\nimport { useData } from './EmploymentPage.hooks';\r\nimport FslTextField from '../../../../../components/user-input/input/FslTextField/FslTextField';\r\nimport { useScreenSizeProvider } from '../../../../../hooks/useScreenSizeProvider';\r\nimport ButtonGroup from '../../components/ButtonGroup/ButtonGroup';\r\nimport { useModal } from '../../../../../components/Modal/Modal.hooks';\r\nimport TermsAndConditions from './termsAndConditions/TermsAndConditions';\r\n\r\ninterface IEmploymentPageProps {\r\n onNext: () => void;\r\n onPrevious: () => void;\r\n}\r\n\r\nconst EmploymentPage: FunctionComponent = ({ onNext, onPrevious }) => {\r\n const classes = usePositionPageStyles();\r\n const { screenSize } = useScreenSizeProvider();\r\n const { translateString } = useTranslation();\r\n const { openModal, isModalOpen, closeModal } = useModal();\r\n\r\n const { options, employmentChanged, data, showTextArea, employmentTextChanged, validator, isEulaAccepted, acceptEula } = useData();\r\n\r\n const next = useCallback(() => {\r\n validator.setShowErrors(true);\r\n if (!validator.anyHasErrors) {\r\n onNext();\r\n }\r\n }, [onNext, validator]);\r\n\r\n useEffect(() => {\r\n if (!isEulaAccepted) {\r\n openModal('', () => , { hideCloseButton: true });\r\n } else if (isModalOpen) {\r\n closeModal();\r\n }\r\n }, [isModalOpen, openModal, isEulaAccepted, acceptEula, closeModal]);\r\n\r\n return (\r\n <>\r\n
    \r\n
    \r\n
    \r\n
    \r\n employmentChanged(e.target.value)}\r\n value={data.employment}\r\n error={validator.shouldShowErrors('employment')}\r\n helperText={validator.getErrorsForDisplay('employment')}\r\n />\r\n
    \r\n
    \r\n {showTextArea && (\r\n
    \r\n employmentTextChanged(text)}\r\n error={validator.shouldShowErrors('employmentText')}\r\n helperText={validator.getErrorsForDisplay('employmentText')}\r\n />\r\n
    \r\n )}\r\n
    \r\n
    \r\n \r\n \r\n );\r\n};\r\n\r\nexport default EmploymentPage;\r\n","import { useTranslation, useValidator } from '@fsl/fsl.common.npm';\r\nimport { useCallback, useContext, useMemo } from 'react';\r\nimport { validatorMessageTranslate } from '../../../../../tools/formatters';\r\nimport { NewMemberContext } from '../../../newMemberContext';\r\nimport { EditableEmploymentData } from './EmploymentPage.types';\r\n\r\nexport const useData = () => {\r\n const { translateString } = useTranslation();\r\n const { state, dispatch } = useContext(NewMemberContext);\r\n\r\n const validator = useValidator((v) => ({\r\n employment: v.validateNotEmpty(validatorMessageTranslate(translateString, 'cannot_be_empty', { field: 'employment' }), (t) => t.employmentId),\r\n employmentText: (t) => {\r\n if (t.employmentId === 0 && (t.employmentText === undefined || t.employmentText === '')) {\r\n return `${translateString('cannot_be_empty', { field: translateString('employment_sitation') })}`;\r\n }\r\n return undefined;\r\n },\r\n }));\r\n\r\n const options = useMemo(\r\n () => [\r\n { id: -1, displayValue: '' },\r\n { id: 1, displayValue: translateString('in_work') },\r\n { id: 4, displayValue: translateString('studying') },\r\n { id: 0, displayValue: translateString('other') },\r\n ],\r\n [translateString]\r\n );\r\n\r\n const employmentChanged = useCallback(\r\n (id: string) => {\r\n if (id) {\r\n const employment = options.find((o) => o.id === Number(id));\r\n validator.showErrorFor('employment');\r\n if (employment) {\r\n dispatch({ type: 'setEmployment', employment: { employment: employment.displayValue, employmentId: employment.id } });\r\n }\r\n }\r\n },\r\n [options, dispatch, validator]\r\n );\r\n\r\n const selectedDisplayValue = useMemo(() => options.find((o) => o.displayValue === state.employment?.employment)?.displayValue, [options, state.employment]);\r\n\r\n const showTextArea = useMemo(() => state.employment?.employment === translateString('other'), [state.employment, translateString]);\r\n\r\n const employmentTextChanged = useCallback(\r\n (employmentText: string) => {\r\n validator.showErrorFor('employmentText');\r\n dispatch({ type: 'setEmployment', employment: { employmentText: employmentText ?? '' } });\r\n },\r\n [dispatch, validator]\r\n );\r\n\r\n const data = useMemo(() => {\r\n return { employment: state.employment?.employmentId, employmentText: state.employment?.employmentText };\r\n }, [state.employment]);\r\n\r\n const isEulaAccepted = useMemo(() => {\r\n return state.acceptedTermsAndConditions !== undefined;\r\n }, [state.acceptedTermsAndConditions]);\r\n\r\n const acceptEula = useCallback(\r\n (eulaName: string | undefined) => {\r\n if (eulaName) {\r\n dispatch({ type: 'setEulaName', eulaName });\r\n }\r\n },\r\n [dispatch]\r\n );\r\n\r\n validator.check({ employment: selectedDisplayValue, employmentText: data.employmentText, employmentId: data.employment });\r\n\r\n return {\r\n data,\r\n options,\r\n employmentChanged,\r\n showTextArea,\r\n employmentTextChanged,\r\n validator,\r\n isEulaAccepted,\r\n acceptEula,\r\n };\r\n};\r\n","import { createStyles, makeStyles, Theme } from '@material-ui/core';\r\n\r\nexport const useInformationPageStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n marginBottom: theme.spacing(),\r\n '& .MuiAutocomplete-inputRoot[class*=\"MuiInput-root\"]': {\r\n paddingBottom: '5px',\r\n },\r\n [theme.breakpoints.down('xs')]: {\r\n paddingTop: '25px',\r\n },\r\n },\r\n })\r\n);\r\n","import React, { FunctionComponent, useCallback } from 'react';\r\nimport { useTranslation } from '@fsl/fsl.common.npm';\r\nimport { Grid } from '@material-ui/core';\r\nimport FslTextField from '../../../../../components/user-input/input/FslTextField/FslTextField';\r\nimport { useInformationPageStyles } from './InformationPage.styles';\r\nimport AddressPicker from '../../../../../components/user-input/picker/AdressPicker/AddressPicker';\r\nimport { useData } from './InformationPage.hooks';\r\nimport ButtonGroup from '../../components/ButtonGroup/ButtonGroup';\r\nimport { FslAddress } from '../../../../../components/user-input/picker/AdressPicker/AddressPicker.types';\r\nimport SelectWithSearch from '../../../../../components/user-input/input/SelectWithSearch/SelectWithSearch';\r\n\r\ninterface IInformationProps {\r\n onNext: () => void;\r\n onPrevious: () => void;\r\n}\r\n\r\nconst InformationPage: FunctionComponent = ({ onNext, onPrevious }) => {\r\n const { translateString } = useTranslation();\r\n const classes = useInformationPageStyles();\r\n const { data, updateData, validator } = useData();\r\n\r\n const next = useCallback(() => {\r\n validator.setShowErrors(true);\r\n if (!validator.anyHasErrors) {\r\n onNext();\r\n }\r\n }, [onNext, validator]);\r\n\r\n const handleAddressPickerOnChange = useCallback(\r\n (newValue: Partial) => {\r\n if (newValue) {\r\n updateData({\r\n postalCode: newValue.postalCode,\r\n city: newValue.city,\r\n municipality: newValue.municipality,\r\n country: newValue.countryCode,\r\n address: newValue.address,\r\n });\r\n }\r\n },\r\n [updateData]\r\n );\r\n\r\n const countryOptions = [\r\n { key: 'DK', name: 'Danmark' },\r\n { key: 'DE', name: 'Tyskland' },\r\n { key: 'SE', name: 'Sverige' },\r\n { key: 'NO', name: 'Norge' },\r\n { key: 'FI', name: 'Finland' },\r\n ] as { key: string; name: string }[];\r\n\r\n return (\r\n <>\r\n
    \r\n \r\n \r\n \r\n \r\n value={countryOptions.find((x) => x.key === data?.country)}\r\n getOptionLabel={(x) => x.name}\r\n getOptionSelected={(l, r) => l.key === r.key}\r\n options={countryOptions}\r\n onChange={(_, v) => {\r\n if (v) updateData({ country: v.key });\r\n }}\r\n title={translateString('country')}\r\n error={validator.shouldShowErrors('country')}\r\n helperText={validator.getErrorsForDisplay('country')}\r\n />\r\n \r\n \r\n \r\n \r\n updateData({ ssn: v })}\r\n label={translateString('ssn')}\r\n title={translateString('ssn')}\r\n error={validator.shouldShowErrors('ssn')}\r\n helperText={validator.getErrorsForDisplay('ssn')}\r\n />\r\n \r\n \r\n \r\n \r\n updateData({ firstName: v })}\r\n label={translateString('firstnames')}\r\n title={translateString('firstnames')}\r\n error={validator.shouldShowErrors('firstName')}\r\n helperText={validator.getErrorsForDisplay('firstName')}\r\n />\r\n \r\n \r\n updateData({ lastname: v })}\r\n label={translateString('lastname')}\r\n title={translateString('lastname')}\r\n error={validator.shouldShowErrors('lastname')}\r\n helperText={validator.getErrorsForDisplay('lastname')}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n updateData({ address: v })}\r\n />\r\n \r\n \r\n updateData({ co: v })} label=\"C/o\" title=\"C/o\" />\r\n \r\n \r\n \r\n \r\n updateData({ postalCode: v })}\r\n />\r\n \r\n \r\n updateData({ city: v })}\r\n />\r\n \r\n \r\n \r\n \r\n updateData({ municipality: v })}\r\n />\r\n \r\n \r\n \r\n \r\n updateData({ email: v })}\r\n label={translateString('e-mail')}\r\n title={translateString('e-mail')}\r\n error={validator.shouldShowErrors('email')}\r\n helperText={validator.getErrorsForDisplay('email')}\r\n updateDelay={100}\r\n />\r\n \r\n \r\n updateData({ repeatedEmail: v })}\r\n label={translateString('repeat_email')}\r\n title={translateString('repeat_email')}\r\n updateDelay={100}\r\n onPaste={(e) => e.preventDefault()}\r\n />\r\n \r\n \r\n \r\n \r\n updateData({ phoneNumber: v })}\r\n label={translateString('phone_number')}\r\n title={translateString('phone_number')}\r\n error={validator.shouldShowErrors('phoneNumber')}\r\n helperText={validator.getErrorsForDisplay('phoneNumber')}\r\n />\r\n \r\n \r\n \r\n
    \r\n \r\n \r\n );\r\n};\r\n\r\nexport default InformationPage;\r\n","import { useCallback, useContext } from 'react';\r\nimport { useValidator, useTranslation } from '@fsl/fsl.common.npm';\r\nimport { NewMemberContext } from '../../../newMemberContext';\r\nimport { EditableInformationData } from './InformationPage.types';\r\nimport { validatorMessageTranslate } from '../../../../../tools/formatters';\r\n\r\nexport const useData = () => {\r\n const { state, dispatch } = useContext(NewMemberContext);\r\n const { translateString } = useTranslation();\r\n const validator = useValidator>((v) => ({\r\n address: v.validateNotEmpty(validatorMessageTranslate(translateString, 'cannot_be_empty', { field: 'address' }), (s) => s.address),\r\n country: v.validateNotEmpty(validatorMessageTranslate(translateString, 'cannot_be_empty', { field: 'country' }), (s) => s.country),\r\n postalCode: v.validateNotEmpty(validatorMessageTranslate(translateString, 'cannot_be_empty', { field: 'postal_code' }), (s) => s.postalCode),\r\n city: v.validateNotEmpty(validatorMessageTranslate(translateString, 'cannot_be_empty', { field: 'city' }), (s) => s.city),\r\n ssn: [\r\n v.validateNotEmpty(validatorMessageTranslate(translateString, 'cannot_be_empty', { field: 'ssn' }), (s) => s.ssn),\r\n v.validateSsn(validatorMessageTranslate(translateString, 'invalid_ssn'), (s) => s.ssn),\r\n ],\r\n firstName: v.validateNotEmpty(validatorMessageTranslate(translateString, 'cannot_be_empty', { field: 'firstnames' }), (s) => s.firstName),\r\n lastname: v.validateNotEmpty(validatorMessageTranslate(translateString, 'cannot_be_empty', { field: 'lastname' }), (s) => s.lastname),\r\n email: [\r\n v.validateEmail(validatorMessageTranslate(translateString, 'invalid_email'), (s) => s.email),\r\n v.validateNotEmpty(validatorMessageTranslate(translateString, 'cannot_be_empty', { field: 'e-mail' }), (s) => s.email),\r\n ],\r\n phoneNumber: v.validateNotEmpty(validatorMessageTranslate(translateString, 'cannot_be_empty', { field: 'phone_number' }), (s) => s.phoneNumber),\r\n }));\r\n\r\n const updateData = useCallback(\r\n (data: Partial) => {\r\n validator.showErrorsFor(data);\r\n dispatch({ type: 'setInformation', information: data });\r\n },\r\n [dispatch, validator]\r\n );\r\n\r\n validator.check(state.information ?? {}, {\r\n email: state.information?.email === state.information?.repeatedEmail ? undefined : translateString('similar_emails'),\r\n });\r\n\r\n return { data: state.information, updateData, validator };\r\n};\r\n","import { createStyles, makeStyles, Theme } from '@material-ui/core';\r\n\r\nexport const usePositionPageStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n marginBottom: theme.spacing(),\r\n '& .MuiOutlinedInput-multiline': {\r\n borderRadius: '17.5px',\r\n },\r\n [theme.breakpoints.down('xs')]: {\r\n paddingTop: '25px',\r\n },\r\n },\r\n rateSelector: {\r\n paddingTop: '2px',\r\n width: '100%',\r\n '& .MuiFormControl-root': {\r\n width: '100%',\r\n },\r\n },\r\n positionSelector: {\r\n paddingTop: '-5px',\r\n marginBottom: '20px',\r\n width: '100%',\r\n '& .MuiFormControl-root': {\r\n width: '100%',\r\n },\r\n '& .MuiInput-underline:before': {\r\n bottom: '1px',\r\n },\r\n },\r\n otherTextarea: {\r\n paddingTop: theme.spacing(),\r\n [theme.breakpoints.down('xs')]: {\r\n '& .MuiInputBase-root': {\r\n padding: '25px',\r\n },\r\n },\r\n },\r\n addAndRemovePositionSection: {\r\n '& path': {\r\n color: theme.customPalette.lightBlue,\r\n },\r\n },\r\n addAndRemovePositionText: {\r\n marginLeft: '15px',\r\n fontStyle: 'italic',\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n '& .MuiTypography-body1': {\r\n lineHeight: 'unset',\r\n },\r\n },\r\n contentSeparator: {\r\n width: '100%',\r\n borderTop: `2px solid ${theme.customPalette.darkBlue}`,\r\n marginBottom: '30px',\r\n },\r\n workplaceNotInListGrid: {\r\n marginTop: '-12px',\r\n marginBottom: '10px',\r\n [theme.breakpoints.down('xs')]: {\r\n marginTop: '15px',\r\n },\r\n },\r\n firstJobAsTeacherGrid: {\r\n [theme.breakpoints.down('xs')]: {\r\n marginTop: '15px',\r\n },\r\n },\r\n schoolPickerGrid: {\r\n paddingBottom: '0 !important',\r\n '& img': {\r\n height: '12px !important',\r\n width: '12px !important',\r\n },\r\n },\r\n removeCircleIcon: {\r\n fill: theme.customPalette.red,\r\n },\r\n addCircleIcon: {\r\n fill: theme.customPalette.darkBlue,\r\n },\r\n bypassButton: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n marginTop: '15px',\r\n '& .MuiButton-label': {\r\n fontWeight: 'normal',\r\n color: theme.customPalette.darkBlue,\r\n textTransform: 'none',\r\n },\r\n '& .MuiTouchRipple-root': {\r\n color: theme.customPalette.darkBlue,\r\n },\r\n },\r\n })\r\n);\r\n","import { Grid } from '@material-ui/core';\r\nimport React, { FunctionComponent } from 'react';\r\nimport { useTranslation } from '@fsl/fsl.common.npm';\r\nimport { SingleValidator } from '@fsl/fsl.common.npm/build/validation/SingleValidator';\r\nimport FslTextField from '../../../../../components/user-input/input/FslTextField/FslTextField';\r\nimport { EditablePositionData } from './PositionPage.types';\r\n\r\ninterface IFreeTextSchoolPositionProps {\r\n showSchoolTextField: boolean;\r\n showPositionTextField: boolean;\r\n position: Partial;\r\n updatePosition: (p: Partial) => void;\r\n validator: SingleValidator, Partial>;\r\n}\r\n\r\nconst FreeTextSchoolPosition: FunctionComponent = ({\r\n showSchoolTextField,\r\n showPositionTextField,\r\n position,\r\n updatePosition,\r\n validator,\r\n}) => {\r\n const { translateString } = useTranslation();\r\n if (!showSchoolTextField && !showPositionTextField) {\r\n return null;\r\n }\r\n return (\r\n \r\n \r\n {showSchoolTextField && (\r\n updatePosition({ school: undefined, schoolNameNotInList: v })}\r\n label={translateString('workplace_name')}\r\n title={translateString('workplace_name')}\r\n error={validator.shouldShowErrors('schoolNameNotInList')}\r\n helperText={validator.getErrorsForDisplay('schoolNameNotInList')}\r\n />\r\n )}\r\n \r\n \r\n {showPositionTextField && (\r\n updatePosition({ positionDescription: v })}\r\n label={translateString('describe_position')}\r\n title={translateString('describe_position')}\r\n error={validator.shouldShowErrors('positionDescription')}\r\n helperText={validator.getErrorsForDisplay('positionDescription')}\r\n />\r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default FreeTextSchoolPosition;\r\n","import { Grid } from '@material-ui/core';\r\nimport React, { FunctionComponent, useEffect } from 'react';\r\nimport { useTranslation } from '@fsl/fsl.common.npm';\r\nimport FslTextField from '../../../../../components/user-input/input/FslTextField/FslTextField';\r\nimport { EditablePositionData } from './PositionPage.types';\r\nimport { FslCheckBox } from '../../../../../components/FslCheckbox/FslCheckbox';\r\nimport FSLDatePicker from '../../../../../components/user-input/picker/FSLDatePicker/FSLDatePicker';\r\nimport SimpleSelect from '../../../../../components/selectComponents/SimpleSelect/SimpleSelect';\r\nimport { usePositionPageStyles } from './PositionPage.styles';\r\nimport { useData } from './PositionContent.hooks';\r\nimport SchoolPicker from '../../../../../components/user-input/picker/SchoolPicker/SchoolPicker';\r\nimport FadeComponent from '../../../../../components/FadeComponent/FadeComponent';\r\nimport FreeTextSchoolPosition from './FreeTextSchoolPosition';\r\n\r\ninterface IPositionContentProps {\r\n position: Partial;\r\n index: number;\r\n showErrors: boolean;\r\n hasError: (err: boolean) => void;\r\n}\r\n\r\nconst PositionContent: FunctionComponent = ({ position, index, showErrors, hasError }) => {\r\n const classes = usePositionPageStyles();\r\n const { translateString } = useTranslation();\r\n\r\n const { updatePosition, validator, rateOptions, fetchSchools, onSchoolChanged, onPositionChanged, positionOptions, selectedPosition, selectedSchool } =\r\n useData(position, index);\r\n\r\n useEffect(() => {\r\n if (showErrors) {\r\n validator.setShowErrors(true);\r\n }\r\n }, [showErrors, validator]);\r\n\r\n useEffect(() => {\r\n hasError(validator.anyHasErrors);\r\n }, [hasError, validator.anyHasErrors]);\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 updatePosition({ workplaceNotInList: e.target.checked });\r\n onSchoolChanged(undefined);\r\n },\r\n },\r\n ],\r\n ]}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n {positionOptions && (\r\n onPositionChanged(e.target.value)}\r\n value={selectedPosition?.id}\r\n error={validator.shouldShowErrors('position')}\r\n helperText={validator.getErrorsForDisplay('position')}\r\n />\r\n )}\r\n
    \r\n
    \r\n
    \r\n\r\n \r\n \r\n updatePosition({ startDate: d })}\r\n error={validator.shouldShowErrors('startDate')}\r\n helperText={validator.getErrorsForDisplay('startDate')}\r\n />\r\n \r\n \r\n
    \r\n updatePosition({ employmentRate: e.target.value })}\r\n value={position.employmentRate}\r\n options={rateOptions}\r\n error={validator.shouldShowErrors('employmentRate')}\r\n helperText={validator.getErrorsForDisplay('employmentRate')}\r\n />\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n updatePosition({ firstJobAsTeacher: e.target.checked }) },\r\n ],\r\n ]}\r\n />\r\n \r\n \r\n \r\n \r\n
    \r\n updatePosition({ miscellaneousText: t })}\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default PositionContent;\r\n","import { useValidator, useTranslation } from '@fsl/fsl.common.npm';\r\nimport { useCallback, useContext, useEffect, useMemo } from 'react';\r\nimport { ISchoolDropDownItem } from '../../../../../components/user-input/picker/SchoolPicker/SchoolPicker.types';\r\nimport { useJobTitlesEndpoint } from '../../../../../hooks/useJobTitlesEndpoint';\r\nimport { useSchoolNameEndpoint } from '../../../../../hooks/useSchoolNameEndpoint';\r\nimport { NewMemberContext } from '../../../newMemberContext';\r\nimport { EditablePositionData } from './PositionPage.types';\r\n\r\nexport const useData = (position: Partial, index: number) => {\r\n const { translateString } = useTranslation();\r\n const { dispatch, state } = useContext(NewMemberContext);\r\n const { fetchSchoolNames } = useSchoolNameEndpoint();\r\n const { fetchJobTitles } = useJobTitlesEndpoint();\r\n\r\n const validator = useValidator>(() => ({\r\n startDate: (p) => {\r\n if (!p.startDate) {\r\n return `${translateString('cannot_be_empty', { field: translateString('employment_start') })}`;\r\n }\r\n return undefined;\r\n },\r\n position: (p) => {\r\n if (!p.position || p.position.displayValue === '') {\r\n return `${translateString('cannot_be_empty', { field: translateString('position') })}`;\r\n }\r\n\r\n return undefined;\r\n },\r\n employmentRate: (p) => {\r\n if (!p.employmentRate || p.employmentRate === '1') {\r\n return `${translateString('cannot_be_empty', { field: translateString('employment_percent') })}`;\r\n }\r\n return undefined;\r\n },\r\n schoolNameNotInList: (t) => {\r\n if (t.workplaceNotInList && (t.schoolNameNotInList === undefined || t.schoolNameNotInList === '')) {\r\n return `${translateString('cannot_be_empty', { field: translateString('workplace_name') })}`;\r\n }\r\n return undefined;\r\n },\r\n positionDescription: (t) => {\r\n if (t.jobTitleNotInList && (t.positionDescription === undefined || t.positionDescription === '')) {\r\n return `${translateString('cannot_be_empty', { field: translateString('describe_position') })}`;\r\n }\r\n return undefined;\r\n },\r\n school: (t) => {\r\n if (!t.workplaceNotInList && !t.school) {\r\n return `${translateString('cannot_be_empty', { field: translateString('school') })}`;\r\n }\r\n if (!t.workplaceNotInList && !t.school) {\r\n return `${translateString('cannot_be_empty', { field: translateString('school') })}`;\r\n }\r\n\r\n return undefined;\r\n },\r\n }));\r\n\r\n const updatePosition = useCallback(\r\n (p: Partial) => {\r\n validator.showErrorsFor(p);\r\n dispatch({ type: 'updatePositions', position: p, index });\r\n },\r\n [dispatch, validator, index]\r\n );\r\n\r\n const rateOptions = useMemo(() => {\r\n return [\r\n { id: 1, displayValue: '' },\r\n { id: 2, displayValue: translateString('above_percent', { percent: 51 }) },\r\n { id: 3, displayValue: translateString('below_percent', { percent: 50 }) },\r\n ];\r\n }, [translateString]);\r\n\r\n useEffect(() => {\r\n const fetch = async () => {\r\n const positions = await fetchJobTitles();\r\n const options = positions.map((p, i) => ({ id: i + 2, guid: p.id, displayValue: p.title }));\r\n options.sort((a, b) => {\r\n const indexA = ['Andet'].indexOf(a.displayValue);\r\n const indexB = ['Andet'].indexOf(b.displayValue);\r\n if (indexA === -1 && indexB === -1) {\r\n return a.displayValue.localeCompare(b.displayValue, 'da');\r\n }\r\n return indexA - indexB;\r\n });\r\n const jobTitles = [{ id: 0, guid: null, displayValue: '' }, ...options];\r\n dispatch({ type: 'setJobTitles', jobTitles });\r\n };\r\n\r\n if (!state.jobTitles) {\r\n fetch();\r\n }\r\n }, [dispatch, state.jobTitles, translateString, fetchJobTitles]);\r\n\r\n const onSchoolChanged = useCallback(\r\n (changes: ISchoolDropDownItem | undefined) => {\r\n updatePosition({ school: changes });\r\n },\r\n [updatePosition]\r\n );\r\n\r\n const fetchSchools = useCallback(\r\n async (q: string) => {\r\n const schools = await fetchSchoolNames(q);\r\n const getAddressString = (addr: string | undefined) => (addr ? `, ${addr}` : '');\r\n const getPostalCode = (code: string | undefined) => (code ? `, ${code}` : '');\r\n const getCity = (city: string | undefined) => (city ? ` ${city}` : '');\r\n const getSchoolType = (schoolType: string | undefined) => (schoolType ? `, ${schoolType}` : '');\r\n return schools.map((s) => ({\r\n id: s.id,\r\n name: `${s.name}${getAddressString(s.address)}${getPostalCode(s.postalCode)}${getCity(s.city)}${getSchoolType(s.schoolType)}`,\r\n }));\r\n },\r\n [fetchSchoolNames]\r\n );\r\n\r\n const onPositionChanged = useCallback(\r\n (id: string) => {\r\n const selectedJobTitle = state.jobTitles?.find((p) => p.id === Number(id));\r\n if (selectedJobTitle) {\r\n const jobTitleNotInList = selectedJobTitle.id === 1;\r\n updatePosition({ position: selectedJobTitle, jobTitleNotInList });\r\n }\r\n },\r\n [updatePosition, state.jobTitles]\r\n );\r\n\r\n const selectedPosition = useMemo(() => {\r\n return state.positions[index]?.position;\r\n }, [index, state.positions]);\r\n\r\n const selectedSchool = useMemo(() => {\r\n return state.positions[index]?.school;\r\n }, [index, state.positions]);\r\n\r\n validator.check(position);\r\n\r\n return {\r\n updatePosition,\r\n rateOptions,\r\n validator,\r\n onSchoolChanged,\r\n fetchSchools,\r\n onPositionChanged,\r\n positionOptions: state.jobTitles,\r\n selectedPosition,\r\n selectedSchool,\r\n };\r\n};\r\n","import { Grid, Typography } from '@material-ui/core';\r\nimport React, { Fragment, FunctionComponent } from 'react';\r\nimport { useTranslation } from '@fsl/fsl.common.npm';\r\nimport AddCircleIcon from '@material-ui/icons/AddCircle';\r\nimport RemoveCircleIcon from '@material-ui/icons/RemoveCircle';\r\nimport { usePositionPageStyles } from './PositionPage.styles';\r\nimport { useData } from './PositionPage.hooks';\r\nimport ButtonGroup from '../../components/ButtonGroup/ButtonGroup';\r\nimport IconButton from '../../../../../components/buttons/IconButton/IconButton';\r\nimport PositionContent from './PositionContent';\r\nimport { FslButton } from '../../../../../components/buttons/FslButton/FslButton';\r\n\r\ninterface IPositionPageProps {\r\n onNext: () => void;\r\n onPrevious: () => void;\r\n}\r\n\r\nconst PositionPage: FunctionComponent = ({ onNext, onPrevious }) => {\r\n const { translateString } = useTranslation();\r\n const classes = usePositionPageStyles();\r\n\r\n const { positions, addPosition, removePosition, next, showErrors, errors } = useData(onNext);\r\n\r\n return (\r\n <>\r\n
    \r\n \r\n {positions.map((p, index) => {\r\n const hasError = (err: boolean) => {\r\n errors.current[index] = err;\r\n };\r\n\r\n return (\r\n \r\n {index > 0 &&
    }\r\n\r\n \r\n\r\n {positions.length > 1 && (\r\n
    \r\n removePosition(index)}>\r\n
    \r\n \r\n
    \r\n {translateString('remove_position')}\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 {translateString('add_another_position')}\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 {translateString('not_in_a_position')}\r\n \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default PositionPage;\r\n","import { useCallback, useContext, useEffect, useRef, useState } from 'react';\r\nimport { NewMemberContext } from '../../../newMemberContext';\r\n\r\nexport const useData = (onNext: () => void) => {\r\n const { state, dispatch } = useContext(NewMemberContext);\r\n const [showErrors, setShowErrors] = useState(false);\r\n const errors = useRef([true]);\r\n\r\n useEffect(() => {\r\n dispatch({ type: 'setBypassPosition', value: false });\r\n }, [dispatch]);\r\n\r\n const next = useCallback(\r\n ({ bypassValidation }: { bypassValidation: boolean }) =>\r\n () => {\r\n if (bypassValidation) {\r\n dispatch({ type: 'setBypassPosition', value: true });\r\n onNext();\r\n } else if (errors.current.every((err) => !err)) {\r\n onNext();\r\n } else {\r\n setShowErrors(true);\r\n }\r\n },\r\n [onNext, dispatch]\r\n );\r\n\r\n useEffect(() => {\r\n if (showErrors) {\r\n setShowErrors(false);\r\n }\r\n }, [showErrors]);\r\n\r\n const addPosition = useCallback(() => {\r\n dispatch({ type: 'updatePositions', position: {}, index: state.positions.length });\r\n }, [dispatch, state.positions]);\r\n\r\n const removePosition = useCallback(\r\n (index: number) => {\r\n errors.current.splice(index, 1);\r\n dispatch({ type: 'removePosition', index });\r\n },\r\n [dispatch]\r\n );\r\n\r\n return { positions: state.positions, addPosition, removePosition, next, showErrors, errors };\r\n};\r\n","import { createStyles, makeStyles, Theme } from '@material-ui/core';\r\n\r\nexport const useAcknowledgePageStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n marginBottom: theme.spacing(),\r\n },\r\n header: {\r\n fontWeight: theme.fontWeight,\r\n },\r\n headerGrid: {\r\n [theme.breakpoints.up('sm')]: {\r\n marginBottom: theme.spacing(),\r\n },\r\n [theme.breakpoints.down('xs')]: {\r\n marginTop: theme.spacing(),\r\n },\r\n },\r\n textSeparator: {\r\n height: '25px',\r\n },\r\n })\r\n);\r\n","import { Grid, Typography } from '@material-ui/core';\r\nimport React, { FunctionComponent } from 'react';\r\nimport { useAcknowledgePageStyles } from './AcknowledgePage.styles';\r\n\r\ninterface ISectionProps {\r\n title: string;\r\n texts: (string | undefined)[];\r\n}\r\n\r\nconst Section: FunctionComponent = ({ title, texts }) => {\r\n const classes = useAcknowledgePageStyles();\r\n\r\n return (\r\n <>\r\n \r\n \r\n {title}\r\n \r\n \r\n \r\n {texts\r\n .filter((t) => t !== undefined)\r\n .map((t, index) => {\r\n if (t === '') {\r\n // eslint-disable-next-line react/no-array-index-key\r\n return
    ;\r\n }\r\n // eslint-disable-next-line react/no-array-index-key\r\n return {t};\r\n })}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default Section;\r\n","import { post } from '../../../../../api';\r\nimport { NewMemberApi } from './AcknowledgePage.types';\r\n\r\nexport const postMembershipRequest = async (request: NewMemberApi) => {\r\n await post(request, '/members/new', { ignoreAuthentication: true });\r\n};\r\n","import { format } from 'date-fns';\r\nimport { Rate } from '../../../../../api/responseTypes';\r\nimport { EditableEmploymentData } from '../EmploymentPage/EmploymentPage.types';\r\nimport { EditableInformationData } from '../InformationPage/InformationPage.types';\r\nimport { EditablePositionData } from '../PositionPage/PositionPage.types';\r\nimport { NewMemberApi, NewMemberPositionApi } from './AcknowledgePage.types';\r\n\r\nexport const mapToApi = (\r\n acceptedTermsAndConditions: string,\r\n employment: Partial,\r\n information: Partial,\r\n positions: Partial[],\r\n byPassPosition: boolean\r\n): NewMemberApi => {\r\n return {\r\n acceptedTermsAndConditions,\r\n occupation: employment.employmentId ?? 0,\r\n occupationText: employment.employmentText ?? null,\r\n firstName: information.firstName ?? '',\r\n ssn: information.ssn ? information.ssn.replace('-', '') : '',\r\n lastname: information.lastname ?? '',\r\n address: information.address ?? '',\r\n postalCode: information.postalCode ?? '',\r\n city: information.city ?? '',\r\n municipality: information.municipality ?? '',\r\n country: information.country ?? '',\r\n co: information.co ?? null,\r\n email: information.email ?? '',\r\n phoneNumber: information.phoneNumber ?? '',\r\n employments: byPassPosition ? [] : mapEmployments(positions),\r\n };\r\n};\r\n\r\nconst mapEmployments = (positions: Partial[]): NewMemberPositionApi[] => {\r\n return positions.map((p) => {\r\n return {\r\n schoolId: p.school?.id,\r\n schoolNameNotInList: p.schoolNameNotInList ?? null,\r\n workplaceNotInList: p.workplaceNotInList ?? false,\r\n jobTitleId: p.position?.guid,\r\n jobTitleDescription: p.positionDescription ?? null,\r\n jobtitleNotInList: p.jobTitleNotInList ?? false,\r\n startDate: p.startDate ? format(p.startDate, 'yyyy-MM-dd') : '',\r\n employmentRate: findEmploymentRate(p.employmentRate),\r\n firstJobAsTeacher: p.firstJobAsTeacher ?? false,\r\n miscellaneousText: p.miscellaneousText ?? null,\r\n };\r\n });\r\n};\r\n\r\nconst findEmploymentRate = (id: string | undefined): Rate | '' => {\r\n switch (id) {\r\n case '2': {\r\n return 'AboveFiftyPercent';\r\n }\r\n case '3': {\r\n return 'BelowFiftyPercent';\r\n }\r\n default: {\r\n return '';\r\n }\r\n }\r\n};\r\n","import { useTranslation } from '@fsl/fsl.common.npm';\r\nimport { useCallback, useContext, useMemo } from 'react';\r\nimport { NewMemberContext } from '../../../newMemberContext';\r\nimport { EditablePositionData } from '../PositionPage/PositionPage.types';\r\nimport { postMembershipRequest } from './AcknowledgePage.actions';\r\nimport { mapToApi } from './AcknowledgePage.mapping';\r\n\r\nexport const useData = (onNext: () => void) => {\r\n const { translateDate, translateString } = useTranslation();\r\n const { state } = useContext(NewMemberContext);\r\n\r\n const fullName = useCallback((firstName: string | undefined, lastName: string | undefined) => {\r\n if (!firstName && !lastName) {\r\n return undefined;\r\n }\r\n\r\n return `${firstName ?? ''} ${lastName ?? ''}`.trim();\r\n }, []);\r\n\r\n const postalCodeAndCity = useCallback((postalCode: string | undefined, city: string | undefined) => {\r\n if (!postalCode && !city) {\r\n return undefined;\r\n }\r\n\r\n return `${postalCode ?? ''} ${city ?? ''}`.trim();\r\n }, []);\r\n\r\n const co = useCallback((coString: string | undefined) => {\r\n if (coString) {\r\n return `C/o ${coString}`;\r\n }\r\n\r\n return undefined;\r\n }, []);\r\n\r\n const postRequest = useCallback(async () => {\r\n if (state.acceptedTermsAndConditions && state.employment && state.information && state.positions) {\r\n const membershipRequest = mapToApi(state.acceptedTermsAndConditions, state.employment, state.information, state.positions, state.bypassPositions);\r\n try {\r\n await postMembershipRequest(membershipRequest);\r\n } catch (e) {\r\n return false;\r\n }\r\n }\r\n\r\n onNext();\r\n return true;\r\n }, [onNext, state.acceptedTermsAndConditions, state.employment, state.information, state.positions, state.bypassPositions]);\r\n\r\n const findPositionText = useCallback((position: { id: string | number; displayValue: string } | undefined, positionText: string | undefined): string => {\r\n if (position) {\r\n if (position.id === 1) {\r\n return positionText ?? '';\r\n }\r\n return position.displayValue;\r\n }\r\n\r\n return '';\r\n }, []);\r\n\r\n const findPositions = useCallback(\r\n (positions: Partial[]) => {\r\n const findRate = (rate: string | undefined): string => {\r\n if (rate === '2') {\r\n return translateString('above_percent', { percent: 51 });\r\n }\r\n if (rate === '3') {\r\n return translateString('below_percent', { percent: 50 });\r\n }\r\n return '';\r\n };\r\n\r\n const result: string[] = [];\r\n positions.forEach((p) => {\r\n result.push(findPositionText(p.position, p.positionDescription));\r\n result.push(p.school?.name ?? p.schoolNameNotInList ?? '');\r\n result.push(p.startDate ? translateDate(p.startDate) : '');\r\n result.push(findRate(p.employmentRate));\r\n result.push('');\r\n });\r\n return result;\r\n },\r\n [translateDate, findPositionText, translateString]\r\n );\r\n\r\n const employmentText = useMemo((): string => {\r\n const { employment } = state;\r\n\r\n if (employment?.employmentId === 1) {\r\n return translateString('in_work');\r\n }\r\n\r\n if (employment?.employmentId === 4) {\r\n return translateString('studying');\r\n }\r\n\r\n return employment?.employmentText ?? '';\r\n }, [state, translateString]);\r\n\r\n return {\r\n fullName: fullName(state.information?.firstName, state.information?.lastname),\r\n postalCodeAndCity: postalCodeAndCity(state.information?.postalCode, state.information?.city),\r\n co: co(state.information?.co),\r\n employment: state.employment,\r\n ssn: state.information?.ssn,\r\n address: state.information?.address,\r\n municipality: state?.information?.municipality,\r\n country: state.information?.country,\r\n email: state.information?.email,\r\n phoneNumber: state.information?.phoneNumber,\r\n positions: state.bypassPositions ? [] : findPositions(state.positions),\r\n employmentText,\r\n postRequest,\r\n };\r\n};\r\n","import { Grid } from '@material-ui/core';\r\nimport React, { FunctionComponent, useCallback } from 'react';\r\nimport { useTranslation } from '@fsl/fsl.common.npm';\r\nimport { useAcknowledgePageStyles } from './AcknowledgePage.styles';\r\nimport Section from './Section';\r\nimport { useData } from './AcknowledgePage.hooks';\r\nimport ButtonGroup from '../../components/ButtonGroup/ButtonGroup';\r\nimport { formatSsn } from '../../../../../tools/formatters';\r\nimport { useFslSnackbar } from '../../../../../hooks/useFslSnackbar';\r\nimport GeneralErrorSnackbar from '../../../../../components/snackbars/GeneralErrorSnackbar';\r\n\r\ninterface IAcknowledgeProps {\r\n onNext: () => void;\r\n onPrevious: () => void;\r\n}\r\n\r\nconst AcknowledgePage: FunctionComponent = ({ onNext, onPrevious }) => {\r\n const { translateString } = useTranslation();\r\n const classes = useAcknowledgePageStyles();\r\n const { co, fullName, postalCodeAndCity, ssn, address, municipality, country, email, phoneNumber, employmentText, positions, postRequest } = useData(onNext);\r\n const { failureSnackbar } = useFslSnackbar();\r\n\r\n const handleOnNext = useCallback(async () => {\r\n const result = await postRequest();\r\n if (!result) {\r\n failureSnackbar();\r\n }\r\n }, [postRequest, failureSnackbar]);\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\nexport default AcknowledgePage;\r\n","import { Step, StepLabel, Stepper } from '@material-ui/core';\r\nimport React, { FunctionComponent } from 'react';\r\nimport Panel from '../../../layout/Panel/Panel';\r\nimport { useNewMemberFlowStyles } from './NewMemberFlow.styles';\r\nimport { useScreenSizeProvider } from '../../../hooks/useScreenSizeProvider';\r\nimport FadeComponent from '../../../components/FadeComponent/FadeComponent';\r\nimport SlideComponent from '../../../components/SlideComponent/SlideComponent';\r\nimport { useData } from './NewMemberFlow.hooks';\r\n\r\nconst NewMemberFlow: FunctionComponent<{ step?: number }> = ({ step }) => {\r\n const { screenSize } = useScreenSizeProvider();\r\n\r\n const smallScreen = screenSize === 'SmallScreen';\r\n\r\n const { content, selectedContent, stepperProgress, toggleAnimation, slideDirection } = useData(smallScreen, step);\r\n\r\n const classes = useNewMemberFlowStyles();\r\n\r\n return (\r\n \r\n
    \r\n {stepperProgress !== 4 && (\r\n \r\n {content\r\n .filter((c) => c.showInStepper)\r\n .map((c) => (\r\n \r\n = c.orderIndex} />}>\r\n {c.title}\r\n \r\n {smallScreen && c.orderIndex === stepperProgress ? (\r\n \r\n
    {c.component}
    \r\n
    \r\n ) : null}\r\n
    \r\n ))}\r\n
    \r\n )}\r\n {smallScreen && stepperProgress === 4 && (\r\n \r\n
    \r\n

    {selectedContent.title}

    \r\n
    \r\n
    {selectedContent.component}
    \r\n
    \r\n
    \r\n
    \r\n )}\r\n {!smallScreen && toggleAnimation && (\r\n \r\n
    \r\n

    {selectedContent.title}

    \r\n
    \r\n
    {selectedContent.component}
    \r\n
    \r\n
    \r\n
    \r\n )}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nconst StepIcon: FunctionComponent<{ isCompleted: boolean }> = ({ isCompleted }) => {\r\n const classes = useNewMemberFlowStyles();\r\n return
    ;\r\n};\r\n\r\nexport default NewMemberFlow;\r\n","import { createStyles, makeStyles, Theme } from '@material-ui/core';\r\n\r\nexport const useFinalPageStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n width: '600px',\r\n [theme.breakpoints.down('xs')]: {\r\n width: 'auto',\r\n },\r\n },\r\n buttonSection: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n marginTop: '50px',\r\n },\r\n })\r\n);\r\n","import React, { useCallback, useEffect, useMemo, useState } from 'react';\r\nimport { useTranslation } from '@fsl/fsl.common.npm';\r\nimport { SlideDirection } from '../../../components/SlideComponent/SlideComponent';\r\nimport EmploymentPage from './flowPages/EmploymentPage/EmploymentPage';\r\nimport InformationPage from './flowPages/InformationPage/InformationPage';\r\nimport PositionPage from './flowPages/PositionPage/PositionPage';\r\nimport AcknowledgePage from './flowPages/AcknowledgePage/AcknowledgePage';\r\nimport FinalPage from './flowPages/FinalPage/FinalPage';\r\n\r\nexport const useData = (smallScreen: boolean, step: number | undefined) => {\r\n const { translateString } = useTranslation();\r\n const [toggleAnimation, setToggleAnimation] = useState(true);\r\n const [slideDirection, setSlideDirection] = useState(undefined);\r\n const [stepperProgress, setStepperProgress] = useState(step ?? 0);\r\n const redirectToFslPage = true;\r\n\r\n useEffect(() => {\r\n if (!toggleAnimation) {\r\n setToggleAnimation(true);\r\n }\r\n }, [toggleAnimation]);\r\n\r\n const previous = useCallback(() => {\r\n setToggleAnimation(false);\r\n setSlideDirection(smallScreen ? 'down' : 'right');\r\n setStepperProgress((prev) => prev - 1);\r\n }, [smallScreen]);\r\n\r\n const next = useCallback(() => {\r\n setToggleAnimation(false);\r\n setSlideDirection(smallScreen ? 'up' : 'left');\r\n setStepperProgress((prev) => prev + 1);\r\n }, [smallScreen]);\r\n\r\n const acknowledgePageNext = useCallback(() => {\r\n if (redirectToFslPage) {\r\n window.location.replace('https://www.fsl.dk/tak-for-din-indmeldelse-husk-at-bekraefte-din-mailadresse/');\r\n } else {\r\n next();\r\n }\r\n }, [next, redirectToFslPage]);\r\n\r\n const content = useMemo(\r\n () => [\r\n {\r\n title: translateString('employment'),\r\n component: ,\r\n orderIndex: 0,\r\n showInStepper: true,\r\n },\r\n {\r\n title: translateString('your_information'),\r\n component: ,\r\n orderIndex: 1,\r\n showInStepper: true,\r\n },\r\n {\r\n title: translateString('terms_of_employment'),\r\n component: ,\r\n orderIndex: 2,\r\n showInStepper: true,\r\n },\r\n {\r\n title: translateString('acknowledge_and_send'),\r\n component: ,\r\n orderIndex: 3,\r\n showInStepper: true,\r\n },\r\n ...(!redirectToFslPage\r\n ? [\r\n {\r\n title: translateString('request_thanks'),\r\n component: ,\r\n orderIndex: 4,\r\n showInStepper: false,\r\n },\r\n ]\r\n : []),\r\n ],\r\n [translateString, next, previous, acknowledgePageNext, redirectToFslPage]\r\n );\r\n\r\n const selectedContent = content[stepperProgress];\r\n\r\n return { content, selectedContent, stepperProgress, toggleAnimation, slideDirection };\r\n};\r\n","import { createStyles, makeStyles, Theme } from '@material-ui/core';\r\n\r\nexport const useNewMembershipPageStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n width: '100%',\r\n [theme.breakpoints.up('sm')]: {\r\n display: 'flex',\r\n },\r\n },\r\n sidepanel: {\r\n paddingTop: '29px',\r\n paddingLeft: '34px',\r\n width: '310px',\r\n [theme.breakpoints.down('xs')]: {\r\n width: 'auto',\r\n '& svg': {\r\n width: '56px',\r\n height: '56px',\r\n },\r\n },\r\n },\r\n })\r\n);\r\n","import { Grid, Paper } from '@material-ui/core';\r\nimport React, { FunctionComponent } from 'react';\r\nimport { useTranslation } from '@fsl/fsl.common.npm';\r\nimport ContentWrapper from '../../layout/ContentWrapper/ContentWrapper';\r\nimport NewMemberFlow from './newMemberFlow/NewMemberFlow';\r\nimport { useNewMembershipPageStyles } from './NewMembershipPage.styles';\r\nimport { NewMemberProvider } from './newMemberContext';\r\nimport LanguageSelector from '../../components/LanguageSelector/LanguageSelector';\r\nimport { ReactComponent as LogoIcon } from '../../images/Cirkel_to_farver-01.svg';\r\n\r\nconst NewMembershipPage: FunctionComponent<{ step?: number }> = ({ step, children }) => {\r\n const classes = useNewMembershipPageStyles();\r\n const { translateString } = useTranslation();\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n }>\r\n \r\n \r\n {children || }\r\n \r\n \r\n \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default NewMembershipPage;\r\n","import { createStyles, makeStyles, Theme } from '@material-ui/core';\r\n\r\nexport const useMailValidationStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n content: {\r\n width: '600px',\r\n height: '600px',\r\n [theme.breakpoints.down('xs')]: {\r\n width: 'auto',\r\n },\r\n },\r\n root: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n paddingTop: '15px',\r\n [theme.breakpoints.down('xs')]: {\r\n paddingTop: '20px',\r\n paddingLeft: '39.5px',\r\n paddingRight: '28.5px',\r\n },\r\n },\r\n centerContent: {\r\n width: '500px',\r\n },\r\n spinner: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n '& :first-child': {\r\n marginBottom: '5px',\r\n },\r\n },\r\n })\r\n);\r\n","import { post } from '../../../../../api';\r\n\r\nexport const postMailHasBeenValidated = async (id: string) => {\r\n await post(undefined, `/verifyemail/${id}`, { ignoreAuthentication: true });\r\n};\r\n","import React, { FunctionComponent } from 'react';\r\nimport { useMailValidationStyles } from './MailValidationPage.styles';\r\nimport { useData } from './MailValidation.hooks';\r\n\r\nconst MailValidationPage: FunctionComponent = () => {\r\n const classes = useMailValidationStyles();\r\n\r\n const { content } = useData();\r\n\r\n return (\r\n
    \r\n
    \r\n
    {content}
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default MailValidationPage;\r\n","import React, { useMemo } from 'react';\r\nimport { Typography } from '@material-ui/core';\r\n\r\nimport { useTranslation } from '@fsl/fsl.common.npm';\r\nimport { useParams } from 'react-router-dom';\r\nimport { QueryStatus } from 'react-query';\r\nimport { ProgressSpinner } from '../../../../../components/feedback/ProgressSpinner/ProgressSpinner';\r\nimport { useMailValidationStyles } from './MailValidationPage.styles';\r\nimport { useFSLQuery } from '../../../../../hooks/useFslQueryHook';\r\nimport { postMailHasBeenValidated } from './MailValidation.actions';\r\n\r\nexport const useData = () => {\r\n const classes = useMailValidationStyles();\r\n const { translateString } = useTranslation();\r\n\r\n const { id } = useParams<{ id: string }>();\r\n const { error, isLoading, status } = useFSLQuery('validateEmail', () => postMailHasBeenValidated(id));\r\n\r\n const content = useMemo(() => {\r\n if (isLoading) {\r\n return (\r\n
    \r\n \r\n {translateString('validating')}\r\n
    \r\n );\r\n }\r\n\r\n if (error) {\r\n return (\r\n <>\r\n {translateString('general_primary_error_message')}\r\n {translateString('general_secondary_error_message')}\r\n \r\n );\r\n }\r\n\r\n if (status === QueryStatus.Success) {\r\n return {translateString('email_verification_text')};\r\n }\r\n\r\n return undefined;\r\n }, [isLoading, error, status, classes.spinner, translateString]);\r\n\r\n return { content };\r\n};\r\n","import { useTranslation } from '@fsl/fsl.common.npm';\r\nimport React, { FunctionComponent } from 'react';\r\nimport { userManager } from '../../auth';\r\n\r\nconst FslAutoRedirectPage: FunctionComponent = () => {\r\n const { translateString } = useTranslation();\r\n const redirectUri = `${window.location.protocol}//${window.location.host}/fslcallback`;\r\n\r\n const urlSearchParams = new URLSearchParams(window.location.search);\r\n const messageMemberId = urlSearchParams.get('messageMemberId');\r\n\r\n if (messageMemberId) {\r\n userManager.signinRedirect({ redirect_uri: redirectUri, state: `${messageMemberId}` });\r\n } else {\r\n userManager.signinRedirect({ redirect_uri: redirectUri });\r\n }\r\n\r\n return (\r\n <>\r\n

    {translateString('fsl_identity_redirect')}

    \r\n \r\n );\r\n};\r\n\r\nexport default FslAutoRedirectPage;\r\n","import React, { FunctionComponent } from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { userManager } from '../../auth';\r\nimport { useMessagesEndpoint } from '../../hooks/useMessagesEndpoint';\r\nimport routing from '../../routing/routing';\r\nimport { Recipient } from '../../contexts/MessageContext/MessageContext.types';\r\n\r\nconst FslCallbackPage: FunctionComponent = () => {\r\n const { postDraftMessage } = useMessagesEndpoint();\r\n const { push } = useHistory();\r\n userManager\r\n .signinRedirectCallback()\r\n .then((user) => {\r\n if (user?.state) {\r\n const recipient: Recipient = {\r\n memberId: user.state,\r\n };\r\n postDraftMessage('', '', false, [recipient], undefined)\r\n .then((response) => {\r\n push(`${routing.newMessage}/${response}`);\r\n })\r\n .catch(() => {});\r\n } else {\r\n window.location.href = `${window.location.protocol}//${window.location.host}${routing.messages}/`;\r\n }\r\n })\r\n .catch(() => {});\r\n return <>;\r\n};\r\n\r\nexport default FslCallbackPage;\r\n","import { setupi18n, TranslationProvider, useTranslation } from '@fsl/fsl.common.npm';\r\nimport { ThemeProvider } from '@material-ui/core/styles';\r\nimport React, { FunctionComponent, useCallback, useEffect } from 'react';\r\nimport { BrowserRouter, Route, Switch } from 'react-router-dom';\r\nimport { SnackbarKey, SnackbarProvider } from 'notistack';\r\nimport { Button } from '@material-ui/core';\r\nimport { ApplicationInsightsProvider, useApplicationInsights } from './ApplicationInsights';\r\nimport { AppPreload } from './AppPreload';\r\nimport { userManager, withOidc } from './auth';\r\nimport Modal from './components/Modal/Modal';\r\nimport { ModalProvider } from './contexts/ModalProvider/ModalProvider';\r\nimport ErrorBoundary from './ErrorBoundary';\r\nimport ContentSwitch from './layout/ContentSwitch/ContentSwitch';\r\nimport Navbar from './layout/Navbar/Navbar';\r\nimport NewMembershipPage from './pages/NewMembershipPage/NewMembershipPage';\r\nimport Routing from './routing/routing';\r\nimport Theme from './theming/theme';\r\nimport { useScreenSizeProvider } from './hooks/useScreenSizeProvider';\r\nimport { MobileHomeComponent } from './layout/Navbar/MobileDeviceNavbar/MobileDeviceNavbar';\r\nimport MailValidationPage from './pages/NewMembershipPage/newMemberFlow/flowPages/MailValidationPage/MailValidationPage';\r\nimport { MessageProvider } from './contexts/MessageContext';\r\nimport { UserSelectionProvider } from './contexts/UserSelectionContext';\r\nimport { FullScreenLoadingComponent } from './components/misc';\r\nimport FslAutoRedirectPage from './pages/FslAutoRedirectPage/FslAutoRedirectPage';\r\nimport FslCallbackPage from './pages/FslCallback/FslCallbackPage';\r\n\r\nconst danishTranslation = require('./translations/danish.json');\r\nconst englishTranslation = require('./translations/english.json');\r\n\r\nsetupi18n([danishTranslation, englishTranslation]);\r\n\r\nconst MemberFlow: FunctionComponent = () => {\r\n const { screenSize } = useScreenSizeProvider();\r\n const smallScreen = screenSize === 'SmallScreen';\r\n return (\r\n \r\n \r\n
    \r\n \r\n {!smallScreen && }\r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nconst MemberFlowWithOidc = withOidc(MemberFlow);\r\n\r\nconst PerformLogout: FunctionComponent = () => {\r\n useEffect(() => {\r\n userManager.signoutRedirect();\r\n }, []);\r\n\r\n return ;\r\n};\r\n\r\nfunction PortalRouter() {\r\n return (\r\n \r\n \r\n \r\n (\r\n \r\n \r\n \r\n )}\r\n exact\r\n />\r\n\r\n {/* The following routes are so far only for debugging.\r\n If enabled in production you need to make sure that state is stored in something else than memeory, perhaps local or session storage */}\r\n\r\n {/* } exact />\r\n } exact />\r\n } exact />\r\n } exact /> */}\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nfunction App() {\r\n const notistackRef = React.createRef();\r\n const onClickDismiss = useCallback(\r\n (key: SnackbarKey) => () => {\r\n notistackRef.current?.closeSnackbar(key);\r\n },\r\n [notistackRef]\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}\r\n\r\nconst UseErrorBoundary: FunctionComponent<{ children: JSX.Element }> = ({ children }) => {\r\n const { trackException } = useApplicationInsights();\r\n const { translateString } = useTranslation();\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport default App;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport App from './App';\r\nimport './index.css';\r\n\r\nReactDOM.render(\r\n // \r\n ,\r\n // ,\r\n document.getElementById('root')\r\n);\r\n","import IMask from 'imask';\r\nimport { debounce } from 'lodash';\r\nimport React, { useState, useEffect, useMemo } from 'react';\r\nimport { IMaskMixin } from 'react-imask';\r\nimport BasicTextField from '../BasicTextField/BasicTextField';\r\n\r\ntype IFslTextFieldProps = Omit, 'onChange' | 'defaultValue'> & {\r\n value?: unknown;\r\n mask?: IMask.AnyMaskedOptions | string;\r\n onChange?: (value: string) => void;\r\n updateDelay?: number;\r\n};\r\n\r\nconst MaskedInput = IMaskMixin(({ inputRef, ref, ...props }: any) => {\r\n return ;\r\n});\r\n\r\nfunction FslTextField({ value, mask, onChange, updateDelay, ...props }: IFslTextFieldProps, ref: React.Ref) {\r\n const [lazy, setLazy] = useState(true);\r\n\r\n const debounced = useMemo(() => ((updateDelay ?? 0) > 0 ? debounce((fn: () => void) => fn(), 500) : (f: () => void) => f()), [updateDelay]);\r\n const [actualValue, setActualValue] = useState();\r\n\r\n useEffect(() => {\r\n setActualValue(value);\r\n }, [value]);\r\n\r\n function localOnChange(value: string) {\r\n setActualValue(value);\r\n\r\n debounced(() => onChange?.(value));\r\n }\r\n\r\n useEffect(() => {\r\n if (actualValue !== null && actualValue !== undefined) {\r\n setLazy(false);\r\n }\r\n }, [actualValue]);\r\n\r\n const strValue = `${actualValue ?? ''}`;\r\n\r\n if (!mask) {\r\n return (\r\n {\r\n const strNewValue = `${e.target.value ?? ''}`;\r\n if (strNewValue !== strValue) {\r\n localOnChange(strNewValue);\r\n }\r\n }}\r\n {...props}\r\n />\r\n );\r\n }\r\n\r\n return (\r\n setLazy(false)}\r\n onAccept={(newValue: string) => {\r\n const strNewValue = `${newValue ?? ''}`;\r\n if (strNewValue !== strValue) {\r\n localOnChange(strNewValue);\r\n }\r\n }}\r\n {...(typeof mask === 'string' ? { mask } : mask)}\r\n ref={ref}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nexport default React.forwardRef(FslTextField);\r\n","export const formatSsn = (ssn: string | undefined): string => {\r\n return ssn && ssn.length > 7 ? `${ssn.substr(0, 6)} - ${ssn.substr(6)}` : '';\r\n};\r\n\r\nexport const validatorMessageTranslate = (translateString: (k: string, options?: any) => string, key: string, options?: any) => () => {\r\n const translatedOptions: any = {};\r\n\r\n if (options) {\r\n Object.keys(options)\r\n .filter((k) => k)\r\n .forEach((k) => {\r\n translatedOptions[k] = translateString(options[k]);\r\n });\r\n }\r\n\r\n return translateString(key, translatedOptions);\r\n};\r\n","import { AuthProvider, useAuth, UserManager } from 'oidc-react';\r\nimport React from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { FullScreenLoadingComponent } from '../components/misc';\r\nimport config from '../config';\r\n\r\nexport const userManager = new UserManager({\r\n automaticSilentRenew: true,\r\n authority: config.authServer,\r\n client_id: 'fsl_memberportal_frontend',\r\n redirect_uri: `${window.location.protocol}//${window.location.host}/callback`,\r\n response_type: 'code',\r\n scope: 'openid profile fsl_memberportal_backend fsl_employments fsl_positions_of_trust fsl_districts fsl_internal_client',\r\n post_logout_redirect_uri: config.postLogoutUrl ?? `${window.location.protocol}//${window.location.host}`,\r\n});\r\n\r\nexport const withOidc = (App: React.ComponentType) => {\r\n function LoaderOrApp() {\r\n const auth = useAuth();\r\n\r\n if (auth?.userData) {\r\n return ;\r\n }\r\n\r\n return ;\r\n }\r\n\r\n return () => {\r\n const history = useHistory();\r\n\r\n return (\r\n {\r\n sessionStorage.setItem('OnSigninRedirect', document.location.pathname + document.location.search + document.location.hash);\r\n }}\r\n onSignIn={(userData) => {\r\n if (!userData) return;\r\n\r\n const returnTo = sessionStorage.getItem('OnSigninRedirect');\r\n if (returnTo) {\r\n history.push(returnTo);\r\n sessionStorage.removeItem('OnSigninRedirect');\r\n }\r\n }}\r\n >\r\n \r\n \r\n );\r\n };\r\n};\r\n","declare global {\r\n interface Window {\r\n runtimeConfig: {\r\n deployEnvironment: string;\r\n showComponentShowcases: boolean;\r\n applicationInsightsKey: string;\r\n\r\n apiUrl: string;\r\n authServer: string;\r\n postLogoutUrl: string;\r\n };\r\n }\r\n}\r\n\r\nconst { runtimeConfig } = window;\r\n\r\nexport default {\r\n ...runtimeConfig,\r\n smBreakpoint: 767,\r\n datePattern: 'DD.MM.YYYY',\r\n};\r\n","import { CircularProgress, createStyles, makeStyles } from '@material-ui/core';\r\nimport React, { PropsWithChildren } from 'react';\r\nimport theme from '../../../theming/theme';\r\n\r\nconst useStyles = makeStyles(() =>\r\n createStyles({\r\n container: {\r\n display: 'flex',\r\n },\r\n inlineContainer: {\r\n display: 'inline',\r\n },\r\n wrapper: {\r\n position: 'relative',\r\n },\r\n buttonProgress: {\r\n color: theme.customPalette.blue,\r\n position: 'absolute',\r\n top: '50%',\r\n left: '50%',\r\n marginTop: -12,\r\n marginLeft: -12,\r\n },\r\n })\r\n);\r\n\r\nexport function ButtonProgressWrapper({ showProgress, children, inlineContainer }: PropsWithChildren<{ showProgress?: boolean; inlineContainer?: boolean }>) {\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n \r\n {children}\r\n {showProgress && }\r\n \r\n \r\n );\r\n}\r\n","import Button, { ButtonProps } from '@material-ui/core/Button';\r\nimport React, { Ref } from 'react';\r\nimport { ButtonProgressWrapper } from './ButtonProgressWrapper';\r\nimport Theme from '../../../theming/theme';\r\n\r\nexport type IFslButtonProps = Omit & {\r\n showProgress?: boolean;\r\n warn?: boolean;\r\n ok?: boolean;\r\n secondary?: boolean;\r\n link?: boolean;\r\n icon?: string;\r\n buttonRef?: Ref;\r\n};\r\n\r\nexport function FslButton({ showProgress, disabled, warn, ok, secondary, link, icon, children, onClick, buttonRef, ...props }: IFslButtonProps) {\r\n let variant: 'text' | 'outlined' | 'contained' = 'outlined';\r\n if (warn || ok) {\r\n variant = 'contained';\r\n } else if (link) {\r\n variant = 'text';\r\n }\r\n\r\n const color = warn || (!ok && !secondary) ? 'primary' : 'secondary';\r\n\r\n const buttonStyle: React.CSSProperties =\r\n variant === 'text' ? { ...props.style, display: 'flex', color: Theme.customPalette.red, textDecoration: 'none', fontWeight: 'bold' } : { ...props.style };\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n","import 'whatwg-fetch';\r\nimport CONFIG from '../config';\r\nimport { userManager } from '../auth';\r\nimport { ApiOptions } from './types';\r\n\r\nexport type PathInit = string | { path: string; query?: any } | [string, any];\r\n\r\nexport async function fetchRequest(\r\n pathInit: PathInit,\r\n method: 'GET' | 'PUT' | 'POST' | 'DELETE' | 'HEAD' | 'OPTION' = 'GET',\r\n body?: any,\r\n useAuthServer?: boolean,\r\n options?: ApiOptions\r\n): Promise {\r\n const requestInit = await createRequestInit(body, method, options).catch(() => undefined);\r\n\r\n const baseUrl = useAuthServer ? CONFIG.authServer : CONFIG.apiUrl;\r\n const url = pathInitToString(pathInit);\r\n\r\n const response = await fetch(`${baseUrl}${url}`, requestInit);\r\n\r\n if (response.status >= 200 && response.status < 300) {\r\n return response;\r\n }\r\n\r\n if (response.status === 401) {\r\n await userManager.removeUser();\r\n return fetchRequest(pathInit, method, body, useAuthServer);\r\n }\r\n\r\n const error = new Error(response.statusText);\r\n (error as any).response = response;\r\n throw error;\r\n}\r\n\r\nasync function createRequestInit(body: any, method: string, options?: ApiOptions): Promise {\r\n let processedBody: any;\r\n if (body) {\r\n if (options?.uploadFile) {\r\n processedBody = body;\r\n } else {\r\n processedBody = JSON.stringify(body);\r\n }\r\n }\r\n const requestInit: RequestInit = {\r\n body: processedBody,\r\n method,\r\n headers: options?.uploadFile\r\n ? undefined\r\n : {\r\n 'Content-Type': 'application/json',\r\n },\r\n credentials: 'same-origin',\r\n };\r\n\r\n if (options?.ignoreAuthentication) {\r\n return requestInit;\r\n }\r\n\r\n let user = await userManager.getUser();\r\n\r\n if (!user || user.expired) {\r\n try {\r\n await userManager.clearStaleState();\r\n await userManager.signinSilent();\r\n } catch {\r\n await userManager.signinRedirect();\r\n }\r\n\r\n user = await userManager.getUser();\r\n }\r\n\r\n if (!user) {\r\n await userManager.signinRedirect();\r\n throw new Error('Signing in');\r\n }\r\n\r\n requestInit.headers = { ...requestInit.headers, Authorization: `Bearer ${user.access_token}` };\r\n\r\n return requestInit;\r\n}\r\n\r\nexport function parsePathInit(pathInit: PathInit) {\r\n let path: string;\r\n let query: object | undefined;\r\n if (typeof pathInit === 'string') {\r\n path = pathInit;\r\n } else if (Array.isArray(pathInit)) {\r\n [path, query] = pathInit;\r\n } else {\r\n path = pathInit.path;\r\n query = pathInit.query;\r\n }\r\n\r\n return { path, query };\r\n}\r\n\r\nexport function pathInitToString(pathInit: PathInit) {\r\n const { path, query } = parsePathInit(pathInit);\r\n\r\n let queryString = Object.entries(query ?? {})\r\n .map(([key, value]) => (value ? `${encodeURIComponent(key)}=${encodeURIComponent(value)}` : ''))\r\n .join('&');\r\n if (queryString) queryString = `?${queryString}`;\r\n\r\n const url = `${path}${queryString}`;\r\n return url;\r\n}\r\n","import { useMediaQuery } from '@material-ui/core';\r\nimport Theme from '../theming/theme';\r\n\r\nexport const useScreenSizeProvider = (): { screenSize: 'SmallScreen' | 'LargeScreen' } => {\r\n const smallScreen = useMediaQuery(Theme.breakpoints.down('xs'), { noSsr: true });\r\n\r\n return { screenSize: smallScreen ? 'SmallScreen' : 'LargeScreen' };\r\n};\r\n","import { createMuiTheme } from '@material-ui/core';\r\n\r\ndeclare module '@material-ui/core/styles/createMuiTheme' {\r\n interface Theme {\r\n customPalette: {\r\n darkBlue: string;\r\n red: string;\r\n white: string;\r\n black: string;\r\n lightBlue: string;\r\n blue: string;\r\n green: string;\r\n grey: string;\r\n yellow: string;\r\n lightGrey: string;\r\n };\r\n fontWeight: number;\r\n }\r\n interface ThemeOptions {\r\n customPalette: {\r\n darkBlue: string;\r\n red: string;\r\n white: string;\r\n black: string;\r\n lightBlue: string;\r\n blue: string;\r\n green: string;\r\n grey: string;\r\n yellow: string;\r\n lightGrey: string;\r\n };\r\n fontWeight: number;\r\n }\r\n}\r\n\r\nconst theme = createMuiTheme({\r\n palette: {\r\n primary: {\r\n main: '#006CCE',\r\n contrastText: '#fff',\r\n },\r\n secondary: {\r\n main: '#112F4A',\r\n contrastText: '#fff',\r\n },\r\n },\r\n customPalette: {\r\n darkBlue: '#112F4A',\r\n red: '#E21B37',\r\n white: '#FFF',\r\n black: '#000',\r\n lightBlue: '#006CCE',\r\n blue: '#006CCE',\r\n green: '#44AE38',\r\n grey: 'grey',\r\n yellow: '#ECD11F',\r\n lightGrey: '#F3F3F3',\r\n },\r\n spacing: 15,\r\n fontWeight: 600,\r\n overrides: {\r\n MuiTab: {\r\n root: {\r\n fontFamily: 'Montserrat, sans-serif',\r\n },\r\n },\r\n MuiInputLabel: {\r\n root: {\r\n fontStyle: 'italic',\r\n fontSize: '10px',\r\n },\r\n outlined: {\r\n fontSize: '14px',\r\n },\r\n shrink: {\r\n fontSize: '14px',\r\n fontStyle: 'normal',\r\n },\r\n },\r\n MuiStepLabel: {\r\n label: {\r\n color: 'black',\r\n },\r\n },\r\n MuiAccordionDetails: {\r\n root: {\r\n padding: '0',\r\n },\r\n },\r\n MuiAccordionSummary: {\r\n root: {\r\n padding: '0',\r\n height: '64px',\r\n },\r\n },\r\n MuiPaper: {\r\n root: {\r\n color: 'none',\r\n },\r\n rounded: { borderRadius: 0 },\r\n elevation1: { boxShadow: '0', height: '100%' },\r\n },\r\n MuiButton: {\r\n root: {\r\n borderRadius: '17.5px',\r\n fontFamily: 'Montserrat, sans-serif',\r\n fontWeight: 'bolder',\r\n fontSize: '12px',\r\n },\r\n outlined: {\r\n boxShadow: 'none',\r\n fontWeight: 600,\r\n border: '2px solid !important',\r\n lineHeight: 1.5,\r\n fontFamily: 'Montserrat, sans-serif',\r\n padding: '5px 15px',\r\n '&:hover': {\r\n backgroundColor: 'rgba(0, 0, 0, 0.04) !important',\r\n },\r\n },\r\n outlinedPrimary: {\r\n borderColor: `#006CCE !important`,\r\n color: '#006CCE',\r\n },\r\n outlinedSecondary: {\r\n borderColor: `${'#112F4A'} !important`,\r\n },\r\n contained: {\r\n boxShadow: 'none !important',\r\n '&:hover': {\r\n backgroundColor: '#d5d5d5 !important',\r\n },\r\n },\r\n containedPrimary: {\r\n backgroundColor: '#E21B37',\r\n color: '#FFF',\r\n },\r\n containedSecondary: {\r\n backgroundColor: '#006CCE',\r\n color: '#FFF',\r\n fontFamily: 'Montserrat, sans-serif',\r\n },\r\n text: {\r\n textDecoration: 'underline',\r\n margin: 0,\r\n padding: 0,\r\n display: 'inline',\r\n border: 0,\r\n width: 'unset',\r\n minWidth: 'unset',\r\n lineHeight: 'unset',\r\n },\r\n },\r\n MuiFormHelperText: {\r\n root: {\r\n fontFamily: 'Montserrat, sans-serif',\r\n '&$error': {\r\n color: '#E21B37',\r\n },\r\n },\r\n },\r\n MuiFormLabel: {\r\n root: {\r\n fontFamily: 'Montserrat, sans-serif',\r\n },\r\n },\r\n MuiNativeSelect: {\r\n root: {\r\n fontFamily: 'Montserrat, sans-serif',\r\n fontSize: '14px',\r\n },\r\n },\r\n MuiInputBase: {\r\n input: {\r\n fontFamily: 'Montserrat, sans-serif',\r\n },\r\n },\r\n MuiTypography: {\r\n body1: {\r\n fontFamily: 'Montserrat, sans-serif',\r\n fontSize: '14px',\r\n },\r\n body2: {\r\n fontFamily: 'Montserrat, sans-serif',\r\n fontSize: '12px',\r\n },\r\n h4: {\r\n fontFamily: 'Montserrat, sans-serif',\r\n fontWeight: 600,\r\n },\r\n h6: {\r\n fontFamily: 'Montserrat, sans-serif',\r\n fontSize: '14px',\r\n fontWeight: 600,\r\n },\r\n },\r\n MuiTableCell: {\r\n head: {\r\n fontFamily: 'Montserrat, sans-serif',\r\n paddingTop: '0',\r\n paddingBottom: '0',\r\n },\r\n body: {\r\n fontFamily: 'Montserrat, sans-serif',\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport default theme;\r\n","import { CircularProgress, Grid } from '@material-ui/core';\r\nimport React, { CSSProperties, PropsWithChildren } from 'react';\r\n\r\nexport function FullScreenCenter({ children }: PropsWithChildren) {\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}\r\n\r\nexport function FullScreenLoadingComponent() {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport function CenterContent({ children, style, className }: PropsWithChildren<{ style?: CSSProperties; className?: string }>) {\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}\r\n\r\nexport function VerticallyCenterContent({ children, style, className }: PropsWithChildren<{ style?: CSSProperties; className?: string }>) {\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}\r\n","import { Fade } from '@material-ui/core';\r\nimport React, { ReactElement } from 'react';\r\n\r\ninterface IFadeComponentsProps {\r\n children: ReactElement | undefined;\r\n}\r\n\r\nconst FadeComponent = ({ children }: IFadeComponentsProps) => {\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport default FadeComponent;\r\n","import { useState, useEffect } from 'react';\r\nimport { fetchRequest } from '../api/fetch';\r\n\r\ninterface IUser {\r\n name: string;\r\n features: string[];\r\n isInternalUser: boolean;\r\n}\r\n\r\nfunction nowAsNumber(): number {\r\n return new Date().getTime();\r\n}\r\n\r\nclass UserService {\r\n private _timestamp: number = 0;\r\n\r\n private _user: Promise | null = null;\r\n\r\n public async getUser(): Promise {\r\n const diff = nowAsNumber() - this._timestamp;\r\n if (diff < 60000) return this._user!;\r\n\r\n this._user = null;\r\n\r\n const response = await fetchRequest('/identity/whoami', 'GET');\r\n this._user = await response.json();\r\n\r\n return this._user!;\r\n }\r\n}\r\n\r\nconst instance = new UserService();\r\n\r\nexport default function useUser(): IUser | null {\r\n const [user, setUser] = useState();\r\n\r\n useEffect(() => {\r\n (async () => {\r\n setUser(await instance.getUser());\r\n })();\r\n }, []);\r\n\r\n return user ?? null;\r\n}\r\n","import { useQuery, QueryConfig, queryCache, MutationConfig, useMutation } from 'react-query';\r\nimport { isAfter } from 'date-fns';\r\n\r\nexport type QuerykeyString =\r\n | 'messages'\r\n | 'message'\r\n | 'thread'\r\n | 'sender'\r\n | 'numberOfReadMessages'\r\n | 'membership'\r\n | 'sentMessages'\r\n | 'districts'\r\n | 'school'\r\n | 'validateEmail'\r\n | 'employment'\r\n | 'positionsOfTrust'\r\n | 'schoolAssociations'\r\n | 'tileInformation'\r\n | 'courses'\r\n | 'cases';\r\n\r\nexport const useFSLQuery = (\r\n key: QuerykeyString | any[],\r\n fetchFunction: () => void,\r\n queryConfig?: Omit, 'refetchOnWindowFocus' | 'retry'>\r\n) => {\r\n const { data, error, status, isLoading, refetch } = useQuery(key, fetchFunction, {\r\n refetchOnWindowFocus: false,\r\n retry: 0,\r\n ...(queryConfig || {}),\r\n });\r\n\r\n return { data: data as T, error, status, isLoading, refetch };\r\n};\r\n\r\nexport const useFSLMutation = (\r\n key: QuerykeyString | any[],\r\n mutateFn: (data: T) => Promise,\r\n updateCache: (newData: T, previousValue: K | undefined) => K,\r\n mutationConfig?: Omit, 'onMutate' | 'onSettled' | 'onError'>,\r\n onError?: () => void\r\n) => {\r\n const previousValue = queryCache.getQueryData(key);\r\n\r\n const [mutate] = useMutation(mutateFn, {\r\n onMutate: () => {\r\n queryCache.cancelQueries(key);\r\n\r\n return previousValue;\r\n },\r\n onSettled: async () => {\r\n const previousLastUpdated = previousValue?.lastUpdated;\r\n if (previousLastUpdated) {\r\n let i = 0;\r\n let hasBeenUpdated = false;\r\n\r\n const delay = () => new Promise((res) => setTimeout(res, 500));\r\n\r\n while (i < 10 && !hasBeenUpdated) {\r\n i++;\r\n\r\n const data = queryCache.getQueryData(key);\r\n const lastUpdated = data?.lastUpdated;\r\n\r\n if (lastUpdated) {\r\n if (isAfter(new Date(lastUpdated), new Date(previousLastUpdated))) {\r\n hasBeenUpdated = true;\r\n } else {\r\n queryCache.invalidateQueries(key);\r\n await delay();\r\n }\r\n } else {\r\n // no lastupdated ? Bailing out\r\n hasBeenUpdated = true;\r\n queryCache.invalidateQueries(key);\r\n }\r\n }\r\n } else {\r\n queryCache.invalidateQueries(key);\r\n }\r\n },\r\n onError: (error, newData, snapshotValue) => {\r\n if (snapshotValue) {\r\n queryCache.setQueryData(key, snapshotValue);\r\n }\r\n onError?.();\r\n },\r\n ...mutationConfig,\r\n });\r\n\r\n return { mutate };\r\n};\r\n","import { createStyles, makeStyles, Theme } from '@material-ui/core';\r\n\r\nexport const useFlowButtonStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n '& .MuiButton-root': {\r\n borderRadius: '20px',\r\n fontWeight: theme.fontWeight,\r\n },\r\n '& .MuiButton-root:hover': {\r\n color: theme.customPalette.darkBlue,\r\n },\r\n '& .MuiButton-containedSecondary': {\r\n backgroundColor: theme.customPalette.darkBlue,\r\n },\r\n '& .MuiButton-contained.Mui-disabled': {\r\n backgroundColor: 'transparent',\r\n border: `2px solid ${theme.customPalette.grey}`,\r\n color: theme.customPalette.grey,\r\n fontWeight: theme.fontWeight,\r\n height: '33px',\r\n },\r\n },\r\n })\r\n);\r\n","import React, { FunctionComponent } from 'react';\r\nimport { FslButton, IFslButtonProps } from '../../../../../components/buttons/FslButton/FslButton';\r\nimport { useFlowButtonStyles } from './FlowButton.styles';\r\n\r\nconst FlowButton: FunctionComponent = (props) => {\r\n const classes = useFlowButtonStyles();\r\n return (\r\n
    \r\n {props.children}\r\n
    \r\n );\r\n};\r\n\r\nexport default FlowButton;\r\n","import React from 'react';\r\nimport { TextField, TextFieldProps } from '@material-ui/core';\r\n\r\ntype IBasicTextFieldProps = TextFieldProps & { isReadOnly?: boolean } & ({ value?: string | null } | { defaultValue?: string });\r\n\r\nfunction BasicTextField({ helperText, isReadOnly, InputProps, value, defaultValue, ...props }: IBasicTextFieldProps, ref: React.Ref) {\r\n if (defaultValue !== undefined && defaultValue !== null) {\r\n value = undefined;\r\n } else {\r\n value = value ?? '';\r\n }\r\n\r\n return (\r\n \r\n );\r\n}\r\n\r\nexport default React.forwardRef(BasicTextField);\r\n"],"sourceRoot":""}