{"version":3,"sources":["serviceWorkerRegistration.js","Routes.jsx","OnlineApp.jsx","store/Store.js","styles/Globals.js","assets/device-tilt.svg","components/BrowserHistory.js","helper/Localization.js","components/LandscapeTipOverlay.jsx","components/hearingTest/ProgressItem.jsx","assets/uvex.svg","components/OfflineSwitch.jsx","components/hearingTest/TestProgressBar.jsx","components/busyIndicators/BusySpinnerOverlay.jsx","components/hearingTest/TestLayout.jsx","helper/ValidationHelper.js","components/hearingTest/OfflineIntroView.jsx","helper/OperatingSystemHelper.js","components/hearingTest/TestIntroView.jsx","components/hearingTest/TestInstructionCard.jsx","components/hearingTest/TestInstructionsView.jsx","helper/SoundHelper.js","components/hearingTest/TestExecutionView.jsx","components/hearingTest/TestSuccessView.jsx","components/hearingTest/TestFailedView.jsx","components/dialogs/BasicDialog.jsx","components/hearingTest/HearingTest.jsx","components/hearingTest/OfflineHearingTest.jsx","OfflineApp.jsx","components/Table.jsx","helper/GlobalConstants.js","helper/AuthHelper.js","helper/ApiHelper.js","helper/DateFormatHelper.js","components/PaginationControls.jsx","components/busyIndicators/BusySpinner.jsx","components/CustomSearchBox.jsx","components/dialogs/inviteUser/DebtorSearch.jsx","components/dialogs/inviteUser/DebtorList.jsx","components/dialogs/endCustomerDialog/OpenEndCustomerDialogButton.jsx","components/dialogs/endCustomerDialog/EndCustomerNumberTag.jsx","components/dialogs/endCustomerDialog/EndCustomerDialog.jsx","components/dialogs/inviteUser/InviteUserDialog.jsx","helper/NavigationHelper.js","types/roles.js","helper/RoleHelper.js","components/dialogs/connectOfflineTestsDialog/OfflineTestResultCard.jsx","components/dialogs/connectOfflineTestsDialog/OrderPositionTable.jsx","components/dialogs/connectOfflineTestsDialog/ConnectOfflineTestsDialog.jsx","components/dialogs/manualOrderDialog/ConfirmationDialog.jsx","components/dialogs/manualOrderDialog/ManualOrderDialog.jsx","components/NavMenu.jsx","components/Avatar.jsx","components/UserMenu.jsx","components/LanguageSelector.jsx","components/TopMenu.jsx","components/Layout.jsx","components/LayoutRoute.jsx","components/RefreshRoute.jsx","components/busyIndicators/busyIndicator.jsx","components/views/TableView.jsx","components/ContextMenu.jsx","components/InfoButton.jsx","components/StartButton.jsx","components/StatusIcon.jsx","components/TestStatusTeachingBubbleContent.jsx","helper/DateReturningHelper.js","components/dialogs/orderDetail/OrderTestList.jsx","components/dialogs/orderDetail/OrderDetailDialog.jsx","components/BasicDatePicker.jsx","components/dialogs/ManualTestDialog.jsx","components/views/OrdersView.jsx","components/dialogs/userDetail/UserDetailDialog.jsx","components/views/UsersView.jsx","helper/SortHelper.js","components/views/ResultsView.jsx","components/RoleAuthorization.jsx","components/hearingTest/OnlineHearingTest.jsx","components/AppInsights.js","AppInitializer.jsx","assets/info-circle-solid.svg","assets/check-solid.svg","assets/ellipsis-v-solid.svg","assets/pen-solid.svg","assets/disable-white.svg","assets/circle-notch-solid.svg","assets/home-solid.svg","assets/users-solid.svg","assets/folder-open-solid.svg","assets/business-and-finance.svg","assets/times-solid.svg","assets/menu-arrow.svg","assets/failed.svg","assets/succeeded.svg","assets/pending.svg","assets/user-alt-solid.svg","assets/download-solid.svg","assets/disable.svg","assets/download-solid-white.svg","assets/search-solid.svg","assets/hörtest-avatar-04.svg","assets/hörtest-avatar-02.svg","assets/hörtest-avatar-05.svg","assets/hörtest-avatar-03.svg","assets/system-volume_01.svg","assets/system-volume-04.svg","assets/system-volume-02.svg","assets/system-volume-03.svg","assets/system-volume-05.svg","assets/system-volume-06.svg","assets/enable-solid.svg","assets/Arrow-left-white.svg","assets/Arrow-left-black.svg","assets/Arrow-left-gray.svg","assets/check-white.svg","assets/slider-bubble-orange-03.svg","assets/slider-bubble-white.svg","assets/music.svg","assets/close.svg","assets/ipad-system-volume-01.svg","assets/ipad-system-volume-02.svg","index.jsx"],"names":["isLocalhost","Boolean","window","location","hostname","match","registerValidSW","swUrl","config","navigator","serviceWorker","register","then","registration","onupdatefound","installingWorker","installing","onstatechange","state","controller","console","log","onUpdate","onSuccess","catch","error","component","generalOptions","userModel","user","undefined","updateUser","action","payload","roles","addRole","push","uiModel","menuOpen","toggleMenu","currentNavKey","changeCurrentNavKey","notifications","addNotification","isOfflineModeEnabled","updateIsOfflineModeEnabled","enableChFeatures","updateEnableChFeatures","dataModel","debtors","changeDebtors","storeModel","ui","data","Store","createStore","Mono","styled","div","Colors","baseUrl","document","querySelectorAll","getAttribute","createBrowserHistory","basename","Localization","initialLng","loadLocales","options","requestedLanguage","callback","a","validLngKeys","onLine","result","localStorage","getItem","status","JSON","parse","includes","toLowerCase","lng","fetch","localeResult","json","locale","setItem","stringify","message","backend","request","this","allowMultiLoading","requestOptions","mode","credentials","cache","loadPath","enabled","debug","defaultNS","initImmediate","interpolation","escapeValue","ns","react","nsMode","wait","storedLanguageKey","initPromise","i18n","use","HttpApi","initReactI18next","init","i18nInstance","inst","getInstance","instance","get","changeLanguage","History","pathname","LandscapeTipOverlayContainer","ContentContainer","TextWrapper","LandscapeTipOverlay","theme","getTheme","useState","isVisible","setIsVisible","useEffect","handleResize","innerWidth","innerHeight","addEventListener","removeEventListener","closeButtonStyles","root","position","right","top","borderRadius","color","palette","black","closeOverlay","IconButton","styles","iconProps","iconName","onClick","src","DeviceTiltIcon","height","alt","I18n","t","PrimaryButton","fontSize","minWidth","width","marginTop","rootHovered","backgroundColor","rootPressed","rootFocused","outline","text","ItemContainer","TextContainer","Circle","props","progressColor","IconContainer","ProgressItem","iconStyles","mergeStyles","textAlign","justifyContent","marginLeft","marginBottom","checked","FontIcon","className","OfflineSwitchContainer","StatusText","isDisabled","OfflineSwitch","useStoreState","useStoreActions","actions","Toggle","disabled","margin","onChange","event","TestProgressBarContainer","LogoContainer","OfflineSwitchWrapper","Logo","img","ProgressWrapper","ProgressContainer","Line","lineWidth","TestProgressBar","UvexLogo","progress","neutralTertiary","BusyOverlay","BusySpinnerOverlay","isBusy","Spinner","size","SpinnerSize","large","LayoutContainer","ContainerElement","TestLayout","children","Component","validateEmail","value","test","OfflineIntroViewContainer","DataInputWrapper","TextfieldWrapper","TextareaWrapper","DataInputContainer","DataInputHeadline","DataInputSubHeadline","DataInputText","ExplanationContainer","fontColor","ErrorBar","ExplanationHeadline","ExplanationText","li","ButtonContainer","OfflineIntroView","errorMessage","setErrorMessage","continueButtonStyles","border","boxShadow","background","themePrimary","rootDisabled","TextField","label","userMail","onGetErrorMessage","newValue","updateEmail","multiline","notes","resizable","rows","updateNotes","continue","white","os","determineOperatingSystem","appVersion","indexOf","IntroContainer","LeftContainer","RightContainer","HeadlineLeftContainer","HeadlineRightContainer","TextRightContainer","SlideImageWrapper","SlideImageContainer","borderColor","SlideControlsContainer","TutorialTextContainer","TutorialTextWarning","TestIntroView","tutorialProgress","setTutorialProgress","continueButtonStyle","abortButtonStyle","iconStylesCircle","icon","cursor","outlineWidth","maxProgress","isMobile","wearerName","currentOs","switchTutorialImage","switchTutorialText","dangerouslySetInnerHTML","__html","Array","from","_","i","map","index","DefaultButton","abort","CardContainer","shadowColor","HeadlineContainer","InstructionContainer","TestInstructionCard","neutralDark","lightGrey","number","InstructionsContainer","InstructionCardsContainer","WarningHearingImpaired","TestInstructionsView","playSound","side","gain","frequency","duration","offsetDuration","AudioContext","webkitAudioContext","alert","audioContext","ZERO","fadeDuration","oscillator","createOscillator","gainNodeL","createGain","gainNodeR","merger","createChannelMerger","connect","destination","setValueAtTime","currentTime","exponentialRampToValueAtTime","type","start","resume","setTimeout","stop","close","TestExecutionContainer","ExplanationWrapper","HeaderContainer","UserIconContainer","MarginBottom","CountdownOverlay","visible","StyledList","ol","defaultGainValue","TestExecutionView","soundIconClass","paddingLeft","classNames","mergeStyleSets","whiteIcon","commonButtonStyles","minHeight","beginButtonStyles","toneButtonStyles","abortButtonStyles","fontWeight","previousSoundButtonStyles","previousTestButtonStylesLeft","previousTestButtonStylesTestActive","switchHeadline","ear","withHearingProtection","calcGainRatio","baseValue","finishCurrentTest","dbHandler","currentGainValue","continueWithNextTest","setState","isTestActive","callbackStartTest","playWithDelay","isSoundPlaying","countdownValue","isCountdownRunning","interval","setInterval","clearInterval","callbackToneHeard","callbackPreviousSound","newGain","callbackPreviousTest","back","style","neutralLight","blue","red","hidden","marginRight","ResultContainer","SubHeadlineContainer","ListContainer","BottomContainer","BottomTextWrapper","List","ul","ListItem","confirmButtonStyle","TestSuccessView","green","TestFailedView","restartButtonStyle","neutralSecondary","restart","BasicDialog","useBoolean","isDraggable","labelId","useId","subTextId","dialogContentProps","DialogType","normal","title","closeButtonAriaLabel","subText","modalProps","React","titleAriaId","subtitleAriaId","isBlocking","dragOptions","moveMenuItemText","closeMenuItemText","menu","ContextualMenu","Dialog","DialogFooter","confirmCallback","cancelCallback","HearingTest","isAbortDialogOpen","setIsAbortDialogOpen","setProgress","dbLeftWithoutProtection","setDbLeftWithoutProtection","dbRightWithoutProtection","setDbRightWithoutProtection","dbLeftWithProtection","setDbLeftWithProtection","dbRightWithProtection","setDbRightWithProtection","setIsBusy","progressHandler","useCallback","Math","min","startProgress","finishAndSaveTest","calcInsulation","restartHandler","updateOfflineNotes","progressHandlerBackwards","site","withProtection","db","toggleAbortDialog","abortHandler","goBack","dbWithoutProtection","dbWithProtection","round","log10","param","executorEmail","offlineNotes","email","updateExecutorMail","renderSwitch","OfflineHearingTest","setExecutorEmail","setOfflineNotes","lastLoggedInUserMail","insulationLeft","insulationRight","isSuccessfulLeft","isSuccessfulRight","newStoredResults","currentStoredResults","newTestResult","dateExecuted","Date","toISOString","measurementLeftWithoutProtection","measurementLeftWithProtection","measurementRightWithoutProtection","measurementRightWithProtection","OfflineApp","i18nPromise","getPromise","isInitialized","setIsInitialized","Promise","all","TableWrapper","Header","HeaderLabel","StyledRow","StyledCell","HeaderRowWrapper","BodyWrapper","getTableScrollbarWidth","table","getElementById","scrollbarWidth","offsetWidth","clientWidth","Table","setScrollbarWidth","defaultColumn","useMemo","maxWidth","useTable","autoResetSortBy","columns","disableSortBy","disableSort","sortTypes","alphanumeric","row1","row2","columnName","value1","values","value2","localeCompare","warn","useSortBy","useFlexLayout","getTableProps","getTableBodyProps","headerGroups","prepareRow","showHeader","id","headerGroup","getHeaderGroupProps","headers","column","getHeaderProps","getSortByToggleProps","render","row","getRowProps","onRowClick","original","cells","cell","getCellProps","ORDERSSORTASCENDING","ORDERSSORTPROPERTYNAME","isIE","ua","userAgent","msie","msie11","isEdge","getToken","scopes","msalApp","app","_config","azureAdOptions","redirectUri","origin","callbackPath","acquireTokenSilent","errorCode","length","acquireTokenRedirect","authResponse","accessToken","signIn","redirectError","getAccount","login","logout","removeItem","sessionStorage","_app","b2COptions","flow","signUp","signUpAndSignIn","UserAgentApplication","auth","clientId","authority","domain","validateAuthority","navigateToLoginRequestUrl","postLogoutRedirectUri","cacheLocation","storeAuthStateInCookie","handleRedirectCallback","authRedirectCallBack","locationOrigin","pathName","ui_locales","loginRequest","Scopes","extraQueryParameters","loginRedirect","response","passwordReset","tokenType","idToken","claims","HttpError","Error","fetchApiString","relativePath","abortSignal","fetchApi","deleteFromApi","ok","fetchApiObject","postToApi","body","putToApi","postToApiBlob","fileName","blob","url","URL","createObjectURL","createElement","href","download","appendChild","click","remove","method","apiConfig","apiOptions","fetchWithHeader","scope","token","withCredentials","getTimezoneOffset","Authorization","language","signal","toFormattedDate","dateTimeString","toLocaleDateString","day","month","year","toCustomFormattedDateTime","date","getDate","getMonth","getFullYear","hours","getHours","minutes","getMinutes","slice","CurrentPageDisplay","TableControls","PaginationControls","pageControlButtonStyles","neutralPrimary","padding","tableControlButtonStyles","currentPage","navigateBackwards","navigateToBegin","Label","maxPages","navigateToEnd","navigateForward","BusySpinnerContainer","BusySpinner","busySize","SearchBoxWrapper","SearchBoxBusyWrapper","CustomSearchBox","searchBoxStyles","fieldGroup","maxHeight","small","placeholder","busyText","searchValue","updateSearchValue","updateLastDataUpdate","onKeyDown","e","key","applySearch","ActionWrapper","DebtorSearchContainer","DebtorSearchTable","Text","p","EmptyPageMassage","DebtorSearch","abortController","AbortController","setSearchValue","setDebtors","filteredDebtors","setFilteredDebtors","setMaxPages","setCurrentPage","previousSearchValue","useRef","searchToggle","setSearchToggle","assignedDebtors","tmpDebtors","filter","deb","some","assDebtor","defaultReqBody","itemsPerPage","sortDirection","sortPropertyName","reqBody","current","filterText","pageToDeliver","formattedData","results","debtor","identifier","companyName","address","street","houseNumber","postalCode","city","page","pagesAvailable","fetchData","buttonStyles","accessor","Cell","ariaLabel","preventDefault","selectDebtor","DebtorTable","DebtorList","target","deselectDebtor","OpenEndCustomerDialogButton","TagContainer","TagTextWrapper","EndCustomerNumberTag","deleteButtonStyles","endCustomerNumber","PanelBody","InfoTextWrapper","AddCustomerNumberContainer","PanelFooter","EndCustomerDialog","currentTagValue","setCurrentTagValue","addIconProps","addButtonStyles","cancleButtonStyles","textFieldStyles","field","onDismiss","closeCallback","addNewEndCustomerNumber","tmpEndCustomerNumbers","endCustomerNumbers","setEndCustomerNumbers","Panel","allowTouchBodyScroll","headerText","PanelType","custom","customWidth","onRenderBody","splice","removeEndCustomerNumber","onRenderFooter","isFooterAtBottom","onOuterClick","isOpen","TopContainer","UserInputContainer","InputElement","FlexRow","UserInput","UserInputHeadline","EndCustomerButtonWrapper","InviteUserDialog","submitDisabled","setSubmitDisabled","userMessage","setUserMessage","setAssignedDebtors","setEmail","setCompanyName","department","setDepartment","userLanguage","setUserLanguage","MessageBarType","info","userMessageType","setUserMessageType","isEndCustomerDialogOpen","setIsEndCustomerDialogOpen","inputStyles","messageBarStyles","inviteButtonStyles","languageIcon","Icon","onRenderPlaceholder","onRenderTitle","option","dropdownOptions","dropdownStyles","dropdown","closePanel","toggleHideDialog","openAbortDialog","updatedSelection","submit","validateForm","company","debtorIds","isActive","lastLogin","transactionLanguageKey","preferredLanguage","success","validateInputNotEmpty","emailOnGetError","inMemoryAssignedDedbtorList","inMemorySearchableDebtorsList","extraLarge","defaultValue","validateOnFocusOut","validateOnLoad","Dropdown","selectedKey","MessageBar","isMultiline","messageBarType","getLocationFromPath","indexOfSecondPath","substring","User","Administrator","AccountManager","isUserAdministrator","userRoles","r","debtorId","role","Roles","isUserAccountManager","isUserUser","OfflineTestResultCardContainer","ProgressIndicator","NotesContainer","CardHeadline","OfflineTestTimeWrapper","OfflineTestResultCard","isButtonDisabled","currentTestResultNumber","testResultsCount","offlineTestResult","delete","isConnectDisabled","OrderPositionTableContainer","SortableTableHeader","Headline","OrderPositionTable","orderPositions","setOrderPositions","isSearchBusy","setIsSearchBusy","sortAscending","setSortAscending","setSortPropertyName","hasSorted","handlePropertySort","propertyName","radioUncheckedIconProps","radioCheckedIconProps","radioButtonStyles","currentOrderPositionId","updateSelectedOrderPositionId","OrderPositionTableWrapper","ConnectOfflineTestsDialog","offlineTestResults","setOfflineTestResults","currentOfflineTestResultNumber","setCurrentOfflineTestResultNumber","selectedOrderPositionId","setSelectedOrderPositionId","setUserMail","userName","setUserName","storedOfflineTestResults","deletionOffset","setConfirmCallback","_msalApp","emails","name","getUser","sort","b","finishButtonStyles","continueWithNextOfflineTestResult","deleteOfflineTestResult","connectCallback","orderPositionId","testerName","tmp","connectOfflineTestResult","DialogContent","ConfirmationDialog","ComboBoxWrapper","MessageWrapper","InputArea","InputAreaHeadline","DeleteButtonWrapper","ManualOrderDialog","isConfirmSaveDialogOpen","setIsConfirmSaveDialogOpen","availableDebtors","setAvailableDebtors","availableEndCustomerNumbers","setAvailableEndCustomerNumbers","selectedDebtor","setSelectedDebtor","selectedEndCustomerNumber","setSelectedEndCustomerNumber","deliveryInvoiceNumber","setDeliveryInvoiceNumber","serialNumber","wearer","successMessage","setSuccessMessage","hasUserClickedDebtorDropdown","setHasUserClickedDebtorDropdown","hasUserClickedEndCustomerNumberDropdown","setHasUserClickedEndCustomerNumberDropdown","debtorSuggestions","setDebtorSuggestions","debtorNumberAndLabelCombobox","DebtorNumberAndLabelComboBoxComponentRef","fetchAvailableDebtors","allDebtors","fetchUserEndCustomerNumbers","allEndCustomerNumbers","debtorPromise","endCustomerNumberPromise","finally","saveButtonStyles","requiredTextFieldStyles","plusIconProps","closeIconProps","comboBoxStyles","submitManualOrder","manualOrderRequestBody","isManualOrder","positions","validateNotEmpty","onGetErrorOrderDeliveryInvoiceNumber","onGetErrorWearer","isSaveButtonDisabled","filterDebtorOptions","focus","filteredOptions","o","medium","ComboBox","componentRef","allowFreeform","concat","tmpDebtor","find","d","onPendingValueChanged","maxLength","orderPosition","tmpOrderPositions","NavContainer","open","NavControls","OfflineTestResultIndicator","absoluteLeft","OfflineTestResultLengthText","NavMenu","isUserInviteDialogOpen","toggleUserInviteDialog","toggle","isAdministrator","isAccountManager","isUser","isConnectOfflineTestsDialogOpen","setIsConnectOfflineTestsDialogOpen","isConfirmDialogOpen","setIsConfirmDialogOpen","isManualOrderDialogOpen","setIsManualOrderDialogOpen","availableOfflineTestResults","setAvailableOfflineTestResults","canInviteUsers","determineIfOfflineTestResultsAvailable","navStyles","navItem","link","selectors","toggleButtonStyles","rootChecked","rootCheckedHovered","iconChecked","transform","flexContainer","plusButtonStyles","textContainer","menuIcon","display","plusMenuProps","items","plusMenuItems","directionalHint","DirectionalHint","rightTopEdge","menuProps","split","allowDisabledFocus","Nav","onLinkClick","item","reload","groups","links","navLinkGroups","AvatarContainer","Avatar","username","setUsername","browserMessageHidden","setBrowserMessageHidden","shouldBrowserMessageBeDisplayed","fetchAvatar","toggleBrowserMessage","sender","largeHeader","showCloseButton","Persona","imageUrl","PersonaSize","size24","hidePersonaDetails","imageAlt","zIndex","UserMenuContainer","MenuItem","UserMenu","Overlay","LanguageSelector","TopMenuContainer","LanguageMenuWrapper","UserMenuWrapper","TopMenu","isUserMenuOpen","setIsUserMenuOpen","clickListener","separatorStyles","Separator","vertical","Footer","ImprintLink","Layout","imprint","LayoutRoute","rest","matchProperties","refresh","history","replace","path","RefreshRoute","BusyIndicator","itemProgress","paddingTop","FlexColumnContainer","SearchBoxContainer","ExportBusyWrapper","BusyContainer","Content","ControlsContainer","TitleContainer","TableView","userPreferredLanguage","lastDataUpdate","setLastDataUpdate","isExportBusy","setIsExportBusy","exportXlsx","dateTimeFormat","Intl","DateTimeFormat","formatToParts","today","viewName","languageKeys","worksheetName","clientCulture","endpoint","viewKey","isBusyAlt","rowClick","contextStyles","beak","visibility","ContextMenu","linkRef","showContextualMenu","setShowContextualMenu","onShowContextualMenu","useConstCallback","onHideContextualMenu","ref","isBeakVisible","menuItems","onItemClick","Container","InfoButton","teachingBubbleVisible","setTeachingBubbleVisible","toggleTeachingBubbleVisible","stopPropagation","closeButtonProps","autoFocus","TeachingBubble","primaryButtonProps","headline","headlineText","teachingBubbleContent","StartButton","startButtonStyles","pending","returning","Status","StatusIcon","TeachingBubbleContent","TeachingBubbleRow","StatusIconWrapper","TestStatusTeachingBubbleContent","isDateReturning","now","getTime","OrderTestListContainer","TestTable","ColumnHeader","OrderTestList","downloadTestResultAsPdf","testResult","setBusy","testResults","insulation","OrderTestListWrapper","Data","UserDataContainer","LabelContainer","DataContainer","UserData","EditWrapper","OrderDetailDialog","editButtonControls","setTestResults","editWearerMode","setEditWearerMode","editEndCustomerNumberMode","setEditEndCustomerNumberMode","setWearer","setEndCustomerNumber","isBusyWearerUpdate","SetIsBusyWearerUpdate","isBusyEndCustomerNumberUpdate","SetIsBusyEndCustomerNumberUpdate","isAdmin","selectedOrderPosition","closeDialog","updateEndCustomerNumber","orderId","updatedOrderPostion","setSelectedOrderPosition","updateOrderPositionsAtCurrentIndex","updateWearer","isLightDismiss","orderDeliveryInvoiceNumber","materialName","materialNumber","BasicDatePicker","setValue","DayPickerStrings","months","shortMonths","days","shortDays","controlClass","control","DatePicker","formatDate","firstDayOfWeek","DayOfWeek","Monday","strings","maxDate","onSelectDate","onChangeCallback","SubHeadline","InputHeadlineContainer","InputContainer","InputContainerSmall","PanelHeader","FlexEnd","ManualTestDialog","setDateExecuted","setMeasurementLeftWithoutProtection","setMeasurementLeftWithProtection","setMeasurementRightWithoutProtection","setMeasurementRightWithProtection","setInsulationLeft","setInsulationRight","setOrderPositionId","orderPositionNumber","setOrderPositionNumber","setWearerName","resultLeft","setResultLeft","resultRight","setResultRight","resetParentIsBusy","cancelButtonStyles","dateExecutedHandler","validateInputIsNumber","submitTestResult","updateTableData","onRenderHeader","required","Number","InfoWrapper","OrderViewContainer","InactiveText","FlexColumn","FlexRowSpace","FlexRowEnd","UserDetailDialog","isUserInvitationBusy","setIsUserInvitationBusy","fetchedEndCustomerNumbers","selectedUser","formatDebtorData","isHidden","dateCreated","x","userUpdated","inviteUser","UserViewContainer","PanelRow","PanelHeaderHeadline","PanelHeaderVerticalCenteredText","booleanSortType","rowA","rowB","columnId","desc","RoleAuthorization","requiredRole","WrappedComponent","routes","exact","ActivateConfirmationDialogOpen","setActivateConfirmationDialogOpen","DeleteConfirmationDialogOpen","setDeleteConfirmationDialogOpen","orderDetailHidden","setOrderDetailHidden","isManualTestDialogOpen","setManualTestDialogOpen","isDownloadBusy","setIsDownloadBusy","currentIndexOfOrderPositions","setCurrentIndexOfOrderPositions","lastTestDateExecuted","lastTestResultId","toggleHideManualTestDialog","toggleIsActive","idx","findIndex","forEach","toggleActivateConfirmationDialog","deleteEntry","toggleDeleteConfirmationDialog","canDownload","commonItems","onDetailsClick","orderIsManualOrder","TooltipHost","content","debtorCompanyName","toLocaleString","hour","minute","newOrderPosition","nextOrderPositions","c","wasLastTestSuccessful","testResultViewModels","order","isSuccessful","sortType","isDeleteDialogOpen","setIsDeleteDialogOpen","isDebtorPanelOpen","setIsDebtorPanelOpen","users","setUsers","setSelectedUser","editUserHidden","setEditUserHidden","editButtonStyles","viewButtonStyles","disableButtonStyles","enableButtonStyles","apiUsers","tableUsers","userDebtors","isNormalUser","n","updatedUsers","deleteUser","newUsers","userToRemoveIndex","u","openDebtorPanelButton","cellContent","displayName","toUpperCase","debtorTableColumns","to","aiPromise","reactPlugin","ReactPlugin","aiKey","ApplicationInsights","instrumentationKey","disableFetchTracking","enableAutoRouteTracking","enableRequestHeaderTracking","autoTrackPageVisitTime","extensions","extensionConfig","loadAppInsights","OnlineApp","setInitialized","signedIn","userPromise","rolesPromise","userRole","targetPath","withAITracking","AppInitilizer","rootElement","initializeIcons","registerIcons","icons","IPadStepOne","IPadStepTwo","CloseIcon","MusicIcon","ArrowLeftWhiteIcon","ArrowLeftBackIcon","ArrowLeftGrayIcon","CheckWhiteIcon","SliderBubbleOrange","SliderBubbleWhite","EditIcon","DisableWhiteIcon","CheckIcon","EnableIcon","InfoIcon","HomeIcon","UsersIcon","FolderIcon","ResultIcon","PlusIcon","ChevronIcon","ContextIcon","FailedIcon","SucceededIcon","PendingIcon","UserIcon","DownloadIcon","DisableIcon","DownloadWhiteIcon","SearchIcon","LeftOutlined","LeftFilled","RightOutlined","RightFilled","WindowsStepOne","WindowsStepTwo","MacStepOne","MacStepTwo","MacStepThree","MacStepFour","EnableSolidIcon","loadTheme","themeLighterAlt","themeLighter","themeLight","themeTertiary","themeSecondary","themeDarkAlt","themeDark","themeDarker","neutralLighterAlt","neutralLighter","neutralQuaternaryAlt","neutralQuaternary","neutralTertiaryAlt","neutralPrimaryAlt","transparentGrey","ReactDOM","store","AppInitializer","process","contentType","ready","unregister","checkValidServiceWorker","serviceWorkerRegistration"],"mappings":"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","file":"static/js/main.e91fdbcf.chunk.js","sourcesContent":["// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://cra.link/PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(/^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/)\n );\n \n export function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n \n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n \n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n \n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://cra.link/PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n }\n \n function registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then((registration) => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://cra.link/PWA.'\n );\n \n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n \n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch((error) => {\n console.error('Error during service worker registration:', error);\n });\n }\n \n function checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { 'Service-Worker': 'script' },\n })\n .then((response) => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then((registration) => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log('No internet connection found. App is running in offline mode.');\n });\n }\n \n export function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready\n .then((registration) => {\n registration.unregister();\n })\n .catch((error) => {\n console.error(error.message);\n });\n }\n }\n ","import React from 'react';\nimport { Router, Switch, Route, Redirect } from 'react-router-dom';\nimport { LayoutRoute } from './components/LayoutRoute';\nimport History from './components/BrowserHistory';\nimport { RefreshRoute } from './components/RefreshRoute';\nimport { OrdersView } from './components/views/OrdersView';\nimport { UsersView } from './components/views/UsersView';\nimport { ResultsView } from './components/views/ResultsView';\nimport { OnlineHearingTest } from './components/hearingTest/OnlineHearingTest';\nimport RoleAuthorization from './components/RoleAuthorization';\nimport Roles from './types/roles';\n\n// Restricts the access to administrators or account managers.\nconst AdministratorOrAccountManager = (component) => RoleAuthorization([Roles.Administrator, Roles.AccountManager])(component);\n\nexport const routes = (\n \n \n \n \n \n \n \n \n \n \n);\n","import React, { useEffect, useState } from 'react';\nimport { routes } from './Routes';\nimport { useStoreActions } from 'easy-peasy';\nimport History from './components/BrowserHistory';\nimport { getLocationFromPath } from './helper/NavigationHelper';\nimport { isUserAdministrator, isUserAccountManager } from './helper/RoleHelper';\nimport { withAITracking } from '@microsoft/applicationinsights-react-js';\nimport { reactPlugin } from './components/AppInsights';\nimport I18n from './helper/Localization';\nimport { signIn, getToken } from './helper/AuthHelper';\nimport { fetchApiObject } from './helper/ApiHelper';\nimport { LandscapeTipOverlay } from './components/LandscapeTipOverlay';\n\n/**\n * Global object that holds the general options defined in the appsettings.json.\n */\nexport let generalOptions;\n\n// retrieve configuration values from the server side\nexport const _config = fetch('api/Configuration').then((config) => config.json());\n\n/** Main app component with an initialized redux store and theme. */\nconst OnlineApp = () => {\n /**\n * Action to add a role to the store state.\n */\n const addRole = useStoreActions((actions) => actions.user.addRole);\n /**\n * Action to update the logged in user.\n */\n const updateUser = useStoreActions((actions) => actions.user.updateUser);\n /**\n * Action to update the enabled status of the CH features.\n */\n const updateEnableChFeatures = useStoreActions((actions) => actions.ui.updateEnableChFeatures);\n /**\n * Whether the app is configured correctly for online mode or not.\n */\n const [isInitialized, setInitialized] = useState(false);\n\n useEffect(() => {\n // Resolve the configuration.\n _config.then((config) => {\n // Sign in the user.\n signIn().then((signedIn) => {\n if (!signedIn) {\n // Login Redirect will happen, no need to render.\n return;\n }\n // Set the general options.\n generalOptions = config.generalOptions;\n updateEnableChFeatures(generalOptions.enableChFeatures);\n // Populate token cache.\n getToken([config.apiOptions.scope]);\n // Fetch the user model.\n const userPromise = fetchApiObject('v1.0/User/ForContext');\n // Fetch the roles.\n const rolesPromise = fetchApiObject('v1.0/User/Roles');\n Promise.all([rolesPromise, userPromise]).then((results) => {\n const userRoles = results[0];\n const user = results[1];\n // Update the user model in the store.\n updateUser(user);\n // Adding each role to the redux store.\n userRoles.forEach((userRole) => {\n addRole(userRole);\n });\n // I18n initialization\n I18n.getPromise(user.preferredLanguage).then(() => {\n setInitialized(true);\n const targetPath = getLocationFromPath(History.location.pathname);\n // User might be global administrator for all debtors or for a subset of debtors.\n const isAdministrator = isUserAdministrator(userRoles);\n const isAccountManager = isUserAccountManager(userRoles);\n if (!isAdministrator && !isAccountManager) {\n if (targetPath !== '/orders' && targetPath !== '/results') {\n // If the deep link targets a non authorized path as a regular user, send him where he should be.\n History.replace('/orders');\n }\n } else {\n if (targetPath === '/') {\n History.replace('/orders');\n }\n }\n });\n });\n });\n });\n }, [addRole, updateEnableChFeatures, updateUser]);\n\n return isInitialized ? (\n <>\n \n {routes}\n \n ) : null;\n};\n\nexport default withAITracking(reactPlugin, OnlineApp, OnlineApp.name, 'app-container');\n\nexport const displayName = OnlineApp.name;\n","import { createStore, action } from 'easy-peasy';\n\n/**\n * Holds relevant user data and actions to modify that data.\n */\nconst userModel = {\n /**\n * The model of the logged in user.\n */\n user: undefined,\n /**\n * Action to update the logged in user.\n */\n updateUser: action((state, payload) => {\n state.user = payload;\n }),\n /**\n * Roles assigned to the user, used for authorization\n */\n roles: [],\n /**\n * Adds a role to the user\n */\n addRole: action((state, payload) => {\n state.roles.push(payload);\n }),\n};\n\n/**\n * State for ui elements and actions to alter that state.\n */\nconst uiModel = {\n /**\n * Whether or not the nav menu is open.\n */\n menuOpen: true,\n /**\n * Action to set menuOpen state.\n */\n toggleMenu: action((state, payload) => {\n state.menuOpen = payload;\n }),\n /**\n * Used by the fluent ui nav to indicate which element should be highlighted.\n */\n currentNavKey: '/users',\n /**\n * Changes the highlighted nav element.\n */\n changeCurrentNavKey: action((state, payload) => {\n state.currentNavKey = payload;\n }),\n /**\n * List of notifications which need to be displayed to the user.\n */\n notifications: [],\n /**\n * Adds a notification to the list.\n */\n addNotification: action((state, payload) => {\n state.notifications.push(payload);\n }),\n /**\n * Whether the offline mode is enabled or not.\n */\n isOfflineModeEnabled: false,\n /**\n * Action to set offline mode state.\n */\n updateIsOfflineModeEnabled: action((state, payload) => {\n state.isOfflineModeEnabled = payload;\n }),\n /**\n * Whether the CH features are enabled or not.\n */\n enableChFeatures: false,\n /**\n * Action to update the enabled status of the CH features.\n */\n updateEnableChFeatures: action((state, payload) => {\n state.enableChFeatures = payload;\n }),\n};\n\n/**\n * Holds common data that is used across the whole site.\n */\nconst dataModel = {\n /**\n * List of available debtors.\n */\n debtors: null,\n /**\n * Action to alter the debtor list.\n */\n changeDebtors: action((state, payload) => {\n state.debtors = payload;\n }),\n};\n\nconst storeModel = {\n user: userModel,\n ui: uiModel,\n data: dataModel,\n};\n\nconst Store = createStore(storeModel);\n\nexport default Store;\n","import styled from 'styled-components/macro';\n\n/**\n * style element which applies a monospace font used in some table cells for better readability.\n */\nexport const Mono = styled.div`\n font-family: 'Droid Sans Mono';\n`;\n\n/**\n * Global accessable colors.\n */\nexport const Colors = {\n white: '#ffffff',\n lightGray: '#f7f7f7',\n dialogGray: '#A3A3A3',\n inactiveGray: '#999999',\n altGray: '#6C6C6C',\n boxShadow: '#00000077',\n hoverLightGray: '#D3D3D3',\n borderGray: '#dbdbdb',\n errorRed: '#a4262c',\n errorRedLight: '#FDE7E9',\n overlayGray: '#a2a2a2',\n backgroundGray: '#f1f1f1',\n darkGreen: '#215252',\n};\n","export default __webpack_public_path__ + \"static/media/device-tilt.5d533fa6.svg\";","import { createBrowserHistory } from 'history';\n\n// Create browser history to use in the Redux store\nconst baseUrl = document.querySelectorAll('base')[0].getAttribute('href');\nexport default createBrowserHistory({ basename: baseUrl });\n","import i18n from 'i18next';\nimport HttpApi from 'i18next-http-backend';\nimport { initReactI18next } from 'react-i18next';\nimport History from '../components/BrowserHistory';\n\n/** Localization class initiating i18n. */\nexport default class Localization {\n /** i18n instance. */\n i18nInstance;\n\n /** Promise for the loading i18next instance. */\n initPromise;\n\n /** Singleton instance. */\n static instance;\n\n /**\n * Loads the i18n requested languages from the localization api.\n *\n * @param requestedLanguage The ISO-code for the language to load.\n * @param callback The callback to execute when the languages are returned from the api.\n * @param options ajax options.\n * @param payload the requested language.\n */\n loadLocales = async (options, requestedLanguage, payload, callback) => {\n const validLngKeys = ['de', 'en', 'fr'];\n try {\n if (!navigator.onLine) {\n const result = localStorage.getItem('localization');\n callback(null, { status: 200, data: JSON.parse(result) });\n return;\n }\n if (!validLngKeys.includes(requestedLanguage.toLowerCase())) {\n // do nothing when a language is requested, that isn't the one the user selected\n callback(null, { status: 200 });\n return;\n }\n this.options.lng = requestedLanguage;\n const localeResult = await fetch(`api/Localization/Get?culture=${this.options.lng}`);\n const locale = await localeResult.json();\n localStorage.setItem('localization', JSON.stringify(locale));\n localStorage.setItem('lng', requestedLanguage);\n callback(null, { status: 200, data: locale });\n } catch (error) {\n console.error(`Failed language: ${requestedLanguage}. Error: ${error.message}`);\n callback(error, { status: 404 });\n }\n };\n\n /** I18n Options. */\n options = {\n backend: {\n request: this.loadLocales,\n allowMultiLoading: false,\n requestOptions: {\n mode: 'cors',\n credentials: 'same-origin',\n cache: 'default',\n },\n loadPath: '{{lng}}',\n parse: (data) => data,\n },\n cache: {\n enabled: true,\n },\n debug: false,\n defaultNS: 'common',\n initImmediate: false,\n interpolation: {\n escapeValue: false,\n },\n ns: ['common'],\n react: {\n nsMode: 'default',\n wait: true,\n },\n };\n\n constructor(initialLng) {\n if (initialLng && initialLng !== 0) {\n switch (initialLng) {\n case 1:\n this.options.lng = 'en';\n break;\n case 2:\n this.options.lng = 'de';\n break;\n case 3:\n this.options.lng = 'fr';\n break;\n default:\n this.options.lng = 'de';\n break;\n }\n } else {\n const storedLanguageKey = localStorage.getItem('lng');\n this.options.lng = storedLanguageKey ? storedLanguageKey : 'de';\n }\n this.initPromise = i18n.use(HttpApi).use(initReactI18next).init(this.options);\n this.initPromise.then(() => (this.i18nInstance = i18n));\n }\n\n /** Retrieves the single i18n instance. */\n static get() {\n const inst = this.getInstance();\n while (inst.i18nInstance == null) {\n // wait for i18n to load...\n }\n return inst.i18nInstance;\n }\n\n /** Retrieves the promise for the i18n instance. */\n static getPromise(initialLng) {\n return this.getInstance(initialLng).initPromise;\n }\n\n /** Retrieves the singleton instance. */\n static getInstance(initialLng) {\n if (initialLng !== undefined && initialLng !== this.instance?.options?.lng) {\n this.instance = new this(initialLng);\n }\n return this.instance || (this.instance = new this(initialLng));\n }\n\n /**\n * Change the language.\n *\n * @param {string} lng The targeted language.\n * @param {Function} callback The callback to execute.\n */\n static changeLanguage(lng, callback) {\n this.get().changeLanguage(lng, () => {\n if (callback) {\n callback();\n }\n History.push(`/refresh${History.location.pathname}`);\n });\n }\n}\n","import React, { useState, useEffect } from 'react';\nimport styled from 'styled-components/macro';\nimport { Colors } from '../styles/Globals';\nimport { IconButton, getTheme } from 'office-ui-fabric-react';\nimport DeviceTiltIcon from '../assets/device-tilt.svg';\nimport { PrimaryButton } from 'office-ui-fabric-react';\nimport I18n from '../helper/Localization';\n\nconst LandscapeTipOverlayContainer = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n height: 100%;\n width: 100%;\n position: fixed;\n top: 0;\n left: 0;\n background-color: rgba(162, 162, 162, 0.9);\n z-index: 1000003;\n`;\n\nconst ContentContainer = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n border: 1px solid #f0f0f0;\n border-radius: 11px;\n padding: 25px;\n background-color: ${Colors.white};\n position: relative;\n width: 300px;\n max-width: 300px;\n height: 350px;\n max-height: 350px;\n`;\n\nconst TextWrapper = styled.div`\n padding-top: 20px;\n font-size: 14px;\n text-align: center;\n word-wrap: break-word;\n`;\n\n/**\n * Overlay component that advises the user to rotate the device into landscape mode.\n */\nexport const LandscapeTipOverlay = () => {\n const theme = getTheme();\n\n /**\n * Whether the overlay is visible or not.\n */\n const [isVisible, setIsVisible] = useState(false);\n\n /**\n * Set the window size state after the window has resized.\n */\n useEffect(() => {\n function handleResize() {\n if (window.innerWidth < window.innerHeight && window.innerWidth < 1100) {\n setIsVisible(true);\n } else {\n setIsVisible(false);\n }\n }\n handleResize();\n window.addEventListener('resize', () => handleResize());\n return () => window.removeEventListener('resize', () => handleResize());\n }, []);\n\n /**\n * Styles of the close button.\n */\n const closeButtonStyles = {\n root: {\n position: 'absolute',\n right: 5,\n top: 5,\n borderRadius: 4,\n color: theme.palette.black,\n },\n };\n\n /**\n * Styles of the confirm button.\n */\n const confirmButtonStyles = {\n root: {\n fontSize: 10,\n borderRadius: 4,\n minWidth: 110,\n width: 110,\n height: 24,\n marginTop: 45,\n },\n rootHovered: {\n backgroundColor: 'none',\n },\n rootPressed: {\n backgroundColor: 'none',\n },\n rootFocused: {\n outline: 0,\n },\n };\n\n /**\n * Callback to close the overlay.\n */\n const closeOverlay = () => setIsVisible(false);\n\n return (\n <>\n {isVisible ? (\n \n \n \n
\n \"\"\n
\n {I18n.get().t('LandscapeTipOverlay_Text')}\n \n
\n
\n ) : null}\n \n );\n};\n","import React from 'react';\nimport styled from 'styled-components/macro';\nimport { FontIcon } from 'office-ui-fabric-react';\nimport { mergeStyles } from 'office-ui-fabric-react/lib/Styling';\n\nconst ItemContainer = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n padding: 5px;\n position: relative;\n`;\n\nconst TextContainer = styled.div`\n position: absolute;\n top: 40px;\n min-width: max-content;\n @media only screen and (max-width: 1400px) {\n top: 30px;\n }\n`;\n\nconst Circle = styled.div`\n height: 20px;\n width: 20px;\n border-radius: 50%;\n display: flex;\n justify-content: center;\n align-items: center;\n background-color: ${(props) => props.progressColor};\n`;\n\nconst IconContainer = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n`;\n\n/**\n * takes the item text and if it es finished as prop and renders the progress dependent style\n * @param props\n */\nexport const ProgressItem = (props) => {\n const iconStyles = mergeStyles({\n textAlign: 'center',\n justifyContent: 'center',\n marginLeft: '1px',\n marginBottom: '2px',\n });\n\n return (\n \n \n {props.checked ? : ''}\n \n {props.text}\n \n );\n};\n","export default __webpack_public_path__ + \"static/media/uvex.ccb42562.svg\";","import React from 'react';\nimport { useStoreActions, useStoreState } from 'easy-peasy';\nimport { Toggle } from 'office-ui-fabric-react/lib/Toggle';\nimport styled from 'styled-components/macro';\nimport I18n from '../helper/Localization';\nimport { Colors } from '../styles/Globals';\n\nconst OfflineSwitchContainer = styled.div`\n display: flex;\n align-items: center;\n min-height: max-content;\n min-width: max-content;\n`;\n\nconst StatusText = styled.div`\n font-size: 12px;\n margin-left: 15px;\n color: ${(props) => props.isDisabled && Colors.inactiveGray};\n`;\n\n/**\n * The switch component to toggle the offline store state.\n */\nexport const OfflineSwitch = (props) => {\n /**\n * Retrieve the store state of the offline mode.\n */\n const isOfflineModeEnabled = useStoreState((state) => state.ui.isOfflineModeEnabled);\n\n /**\n * Retrieve the action to update the store offline mode state.\n */\n const updateIsOfflineModeEnabled = useStoreActions((actions) => actions.ui.updateIsOfflineModeEnabled);\n\n /**\n * Styles of the offline switch.\n */\n const switchStyles = {\n root: {\n margin: 0,\n },\n };\n\n /**\n * Callback to toggle the store state of the offline mode.\n * @param {*} event The click event.\n * @param {*} checked The checked status of the toggle component.\n */\n const toggleOfflineMode = (event, checked) => {\n updateIsOfflineModeEnabled(checked);\n };\n\n return (\n \n \n {isOfflineModeEnabled ? I18n.get().t('OfflineSwitch_Active') : I18n.get().t('OfflineSwitch_Inactive')}\n \n );\n};\n","import React from 'react';\nimport I18n from '../../helper/Localization';\nimport styled from 'styled-components/macro';\nimport { ProgressItem } from './ProgressItem';\nimport UvexLogo from '../../assets/uvex.svg';\nimport { getTheme } from 'office-ui-fabric-react';\nimport { OfflineSwitch } from '../OfflineSwitch';\nimport { useStoreState } from 'easy-peasy';\n\nconst TestProgressBarContainer = styled.div`\n display: flex;\n flex-direction: column;\n border-bottom: 1px solid #eee;\n background-color: #ffffff;\n width: 100%;\n`;\n\nconst LogoContainer = styled.div`\n width: 100%;\n height: 50px;\n padding-left: 16px;\n display: flex;\n align-items: center;\n border-bottom: 0.2px solid #c3c3c3;\n`;\n\nconst OfflineSwitchWrapper = styled.div`\n margin-left: 20px;\n`;\n\nconst Logo = styled.img`\n height: 20px;\n`;\n\nconst ProgressWrapper = styled.div`\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n justify-content: center;\n align-items: center;\n width: 100%;\n height: 120px;\n border-bottom: 0.2px solid #c3c3c3;\n @media only screen and (max-width: 1400px) {\n height: 65px;\n font-size: 10px;\n align-items: baseline;\n }\n`;\n\nconst ProgressContainer = styled.div`\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n padding: 10px;\n width: 100%;\n`;\n\nconst Line = styled.div`\n width: ${(props) => props.lineWidth};\n height: 3px;\n background-color: ${(props) => props.progressColor};\n`;\n\n/**\n * component that indicates the current process of the hearing test\n */\nexport const TestProgressBar = (props) => {\n /**\n * Retrieve the store state of the offline mode.\n */\n const isOfflineModeEnabled = useStoreState((state) => state.ui.isOfflineModeEnabled);\n\n /**\n * Fluent ui theme.\n */\n const theme = getTheme();\n\n return (\n \n \n \n \n 0} />\n \n \n \n \n \n {isOfflineModeEnabled && (\n <>\n = -1 ? theme.palette.black : theme.palette.neutralTertiary}\n checked={props.progress >= 0 ? true : false}\n />\n \n \n )}\n = 0 ? theme.palette.black : theme.palette.neutralTertiary}\n checked={props.progress >= 1 ? true : false}\n />\n = 1 ? theme.palette.black : theme.palette.neutralTertiary} />\n = 1 ? theme.palette.black : theme.palette.neutralTertiary}\n checked={props.progress >= 2 ? true : false}\n />\n = 2 ? theme.palette.black : theme.palette.neutralTertiary} />\n = 2 ? theme.palette.black : theme.palette.neutralTertiary}\n checked={props.progress >= 3 ? true : false}\n />\n = 3 ? theme.palette.black : theme.palette.neutralTertiary} />\n = 3 ? theme.palette.black : theme.palette.neutralTertiary}\n checked={props.progress >= 4 ? true : false}\n />\n = 4 ? theme.palette.black : theme.palette.neutralTertiary} />\n = 4 ? theme.palette.black : theme.palette.neutralTertiary}\n checked={props.progress >= 5 ? true : false}\n />\n = 5 ? theme.palette.black : theme.palette.neutralTertiary} />\n \n \n \n );\n};\n","import React from 'react';\nimport styled from 'styled-components/macro';\nimport { Spinner, SpinnerSize } from '@fluentui/react';\n\nconst BusyOverlay = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba(255, 255, 255, 0.85);\n z-index: 1;\n`;\n\n/**\n * Basic component to indicate async operations.\n * NOTE: To use place this component inside a container that has set 'position: relative'. This component then will take 100% of that container space and displays itself as overlay.\n */\nexport const BusySpinnerOverlay = (props) => {\n return (\n <>\n {props.isBusy ? (\n \n \n \n ) : null}\n \n );\n};\n","import React, { Component } from 'react';\nimport styled from 'styled-components/macro';\nimport { TestProgressBar } from './TestProgressBar';\nimport { Colors } from '../../styles/Globals';\nimport { BusySpinnerOverlay } from '../busyIndicators/BusySpinnerOverlay';\n\nconst LayoutContainer = styled.div`\n display: flex;\n flex-direction: column;\n height: 100%;\n width: 100%;\n background-color: ${Colors.lightGray};\n position: relative;\n overflow: auto;\n`;\n\nconst ContainerElement = styled.div`\n display: flex;\n flex: 1;\n min-height: max-content;\n max-height: calc(100% - 171px);\n @media only screen and (max-width: 1400px) {\n max-height: calc(100% - 151px);\n }\n`;\n\nconst ContentContainer = styled.div`\n display: flex;\n flex: 1;\n margin: 20px;\n background-color: ${Colors.white};\n box-shadow: 14px 17px 54px -15px rgba(0, 0, 0, 0.3);\n`;\n\n/**\n * layout for the hearing test without navigation menu\n */\nexport default class TestLayout extends Component {\n render() {\n return (\n \n \n \n \n {this.props.children}\n \n \n );\n }\n}\n","/**\n * Regex email validation.\n * Returns a error text to fluent ui.\n * @param value The data that requires validation.\n */\nexport const validateEmail = (value) => {\n return /^\\w+([.-]?\\w+)*@\\w+([.-]?\\w+)*(\\.\\w{2,13})+$/.test(value);\n};\n","import React, { useState } from 'react';\nimport styled from 'styled-components/macro';\nimport I18n from '../../helper/Localization';\nimport { getTheme } from 'office-ui-fabric-react';\nimport { Colors } from '../../styles/Globals';\nimport { PrimaryButton } from 'office-ui-fabric-react/lib/Button';\nimport { TextField } from 'office-ui-fabric-react/lib/TextField';\nimport { validateEmail } from '../../helper/ValidationHelper';\n\nconst OfflineIntroViewContainer = styled.div`\n display: flex;\n flex: 1;\n`;\n\nconst DataInputWrapper = styled.div`\n display: flex;\n flex: 10;\n flex-direction: column;\n padding: 50px 60px 25px 60px;\n @media only screen and (max-width: 1800px) {\n padding: 15px 20px;\n }\n`;\n\nconst TextfieldWrapper = styled.div`\n min-height: 85px;\n`;\n\nconst TextareaWrapper = styled.div`\n margin: 20px 0;\n @media only screen and (max-width: 1800px) {\n margin: 10px 0;\n }\n`;\n\nconst DataInputContainer = styled.div`\n max-width: 45%;\n flex-direction: column;\n @media only screen and (max-width: 1800px) {\n max-width: 70%;\n }\n`;\n\nconst DataInputHeadline = styled.div`\n font-size: 40px;\n font-weight: bold;\n @media only screen and (max-width: 1800px) {\n font-size: 33px;\n }\n`;\n\nconst DataInputSubHeadline = styled.div`\n font-size: 30px;\n margin-bottom: 20px;\n @media only screen and (max-width: 1800px) {\n font-size: 23px;\n margin-bottom: 15px;\n }\n`;\n\nconst DataInputText = styled.div`\n font-size: 14px;\n color: ${Colors.inactiveGray};\n`;\n\nconst ExplanationContainer = styled.div`\n display: flex;\n flex: 9;\n padding: 50px 40px;\n flex-direction: column;\n background-color: ${(props) => props.backgroundColor};\n color: ${(props) => props.fontColor};\n @media only screen and (max-width: 1800px) {\n padding: 25px 20px;\n }\n`;\n\nconst ErrorBar = styled.div`\n width: 100%;\n margin-right: 20px;\n font-size: 12px;\n padding: 8px 12px;\n background-color: ${Colors.errorRedLight};\n`;\n\nconst ExplanationHeadline = styled.div`\n font-size: 30px;\n margin-top: 49px;\n word-wrap: break-word;\n @media only screen and (max-width: 1800px) {\n font-size: 23px;\n margin-top: 39px;\n }\n`;\n\nconst ExplanationText = styled.li`\n font-size: 14px;\n word-wrap: break-word;\n margin-top: 30px;\n`;\n\nconst ButtonContainer = styled.div`\n display: flex;\n justify-content: flex-end;\n margin-top: auto;\n`;\n\n/**\n * The intro view for the hearing test when the user is in offline mode.\n */\nexport const OfflineIntroView = (props) => {\n const theme = getTheme();\n\n /**\n * State of the error message to display.\n */\n const [errorMessage, setErrorMessage] = useState('');\n\n /**\n * Styles of the continue button.\n */\n const continueButtonStyles = {\n root: {\n borderRadius: '5px',\n fontSize: '15px',\n border: 0,\n minWidth: '120px',\n height: '33px',\n boxShadow: '1px 2px 3px #00000079',\n },\n rootHovered: {\n background: theme.palette.themePrimary,\n },\n rootPressed: {\n background: theme.palette.themePrimary,\n },\n rootDisabled: {\n background: theme.palette.themePrimary,\n },\n };\n\n /**\n * Regex email validation.\n * Returns a error text to fluent ui.\n * @param value The data that requires validation.\n */\n const onGetErrorEmail = (value) => {\n return validateEmail(value) ? '' : I18n.get().t('Invite_User_InvalidEmail');\n };\n\n /**\n * Start the hearing test in offline mode after checking necessary informations.\n */\n const startOfflineTest = () => {\n if (!validateEmail(props.userMail) || props.notes === '') {\n setErrorMessage(I18n.get().t('OfflineMode_DataInput_ErrorMessage'));\n return;\n }\n setErrorMessage('');\n props.continue();\n };\n\n return (\n \n \n \n {I18n.get().t('OfflineMode_DataInput_Headline')}\n {I18n.get().t('OfflineMode_DataInput_SubHeadline')}\n \n {\n if (newValue || newValue === '') {\n props.updateEmail(newValue);\n }\n }}\n />\n \n {I18n.get().t('OfflineMode_DataInput_EmailTip')}\n \n = 1800 ? 7 : 4}\n onChange={(event, newValue) => {\n if (newValue || newValue === '') {\n props.updateNotes(newValue);\n }\n }}\n />\n \n {I18n.get().t('OfflineMode_DataInput_TextTip')}\n \n \n {errorMessage !== '' && {errorMessage}}\n \n \n \n \n {I18n.get().t('OfflineMode_Tutorial_Headline')}\n
    \n {I18n.get().t('OfflineMode_Tutorial_TextOne')}\n {I18n.get().t('OfflineMode_Tutorial_TextTwo')}\n {I18n.get().t('OfflineMode_Tutorial_TextThree')}\n {I18n.get().t('OfflineMode_Tutorial_TextFour')}\n {I18n.get().t('OfflineMode_Tutorial_TextFive')}\n
\n
\n
\n );\n};\n","/**\n * enum for possible user operating systems\n */\nexport const os = {\n Windows: 0,\n Mac: 1,\n Linux: 2,\n Unix: 3,\n};\n\n/**\n * detects the operating system of the user and returns the os enum constant\n */\nexport const determineOperatingSystem = () => {\n if (navigator.appVersion.indexOf('Win') !== -1) {\n return os.Windows;\n }\n if (navigator.appVersion.indexOf('Mac') !== -1) {\n return os.Mac;\n }\n if (navigator.appVersion.indexOf('X11') !== -1) {\n return os.Unix;\n }\n if (navigator.appVersion.indexOf('Linux') !== -1) {\n return os.Linux;\n }\n};\n","import React, { useState } from 'react';\nimport styled from 'styled-components/macro';\nimport I18n from '../../helper/Localization';\nimport { FontIcon } from 'office-ui-fabric-react/lib/Icon';\nimport { DefaultButton, PrimaryButton, IconButton, getTheme } from 'office-ui-fabric-react';\nimport { determineOperatingSystem, os } from '../../helper/OperatingSystemHelper';\nimport { isMobile } from 'react-device-detect';\n\nconst IntroContainer = styled.div`\n display: flex;\n flex: 1;\n`;\n\nconst LeftContainer = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n flex: 5;\n`;\n\nconst RightContainer = styled.div`\n display: flex;\n flex-direction: column;\n flex: 3;\n background-color: ${(props) => props.backgroundColor};\n`;\n\nconst HeadlineLeftContainer = styled.div`\n padding: 56px 84px 35px 54px;\n font-size: 30px;\n justify-content: center;\n align-items: center;\n font-weight: bold;\n color: #000000;\n @media only screen and (max-width: 1800px) {\n font-size: 23px;\n }\n`;\n\nconst HeadlineRightContainer = styled.div`\n padding: 56px 0 12px 54px;\n font-size: 40px;\n font-weight: bold;\n color: #ffffff;\n @media only screen and (max-width: 1800px) {\n font-size: 23px;\n padding: 36px 0 12px 54px;\n }\n`;\n\nconst TextRightContainer = styled.div`\n padding: 0 54px 51px 54px;\n font-size: 30px;\n color: #ffffff;\n @media only screen and (max-width: 1800px) {\n font-size: 18px;\n padding: 0 54px 31px 54px;\n }\n`;\n\nconst ButtonContainer = styled.div`\n padding: 20px 39px 34px 39px;\n display: flex;\n justify-content: center;\n flex-direction: row;\n margin-top: auto;\n @media only screen and (max-width: 1800px) {\n font-size: 18px;\n padding: 10px 39px 24px 39px;\n }\n`;\n\nconst SlideImageWrapper = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n padding: 0 45px;\n`;\n\nconst SlideImageContainer = styled.div`\n display: flex;\n flex-direction: column;\n border: 20px solid ${(props) => props.borderColor};\n width: 100%;\n height: auto;\n max-width: 470px;\n @media only screen and (max-width: 1800px) {\n max-width: 400px;\n }\n @media only screen and (max-width: 1400px) {\n max-width: 300px;\n }\n`;\n\nconst SlideControlsContainer = styled.div`\n padding: 0 39px;\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: row;\n margin-top: 20px;\n`;\n\nconst TutorialTextContainer = styled.div`\n display: flex;\n justify-content: center;\n color: ${(props) => props.fontColor};\n margin-top: 10px;\n font-size: 14px;\n`;\n\nconst TutorialTextWarning = styled.div`\n font-size: ${(props) => props.fontSize};\n`;\n\n/**\n * view component that contains the welcome and the tutorial for setting the volume correctly\n */\nexport const TestIntroView = (props) => {\n const theme = getTheme();\n\n /**\n * Whether the component is initialized correctly.\n */\n const [tutorialProgress, setTutorialProgress] = useState(0);\n\n const continueButtonStyle = {\n root: {\n borderRadius: '5px',\n fontSize: '15px',\n border: 0,\n minWidth: '210px',\n height: '39px',\n },\n rootHovered: {\n backgroundColor: 'none',\n color: 'none',\n },\n rootPressed: {\n backgroundColor: 'none',\n color: 'none',\n },\n };\n\n const abortButtonStyle = {\n root: {\n border: 0,\n fontSize: '15px',\n minWidth: '210px',\n height: '39px',\n backgroundColor: theme.palette.black,\n color: theme.palette.white,\n },\n rootHovered: {\n backgroundColor: 'none',\n color: 'none',\n },\n rootPressed: {\n backgroundColor: 'none',\n color: 'none',\n },\n };\n\n const iconStylesCircle = {\n icon: {\n fontSize: '14px',\n },\n root: {\n cursor: 'default !important',\n },\n rootHovered: {\n backgroundColor: 'none',\n },\n rootPressed: {\n backgroundColor: 'none',\n },\n rootFocused: {\n outlineWidth: 0,\n },\n };\n /**\n * The maximum steps to configure system volume.\n */\n const maxProgress = determineOperatingSystem() === os.Windows || isMobile ? 1 : 3;\n\n /**\n * Return the correct tutorial icon name.\n */\n const switchTutorialImage = () => {\n const currentOs = determineOperatingSystem();\n switch (tutorialProgress) {\n case 0:\n return isMobile ? 'ipad-step-one' : currentOs === os.Windows ? 'windows-step-one' : 'mac-step-one';\n case 1:\n return isMobile ? 'ipad-step-two' : currentOs === os.Windows ? 'windows-step-two' : 'mac-step-two';\n case 2:\n return currentOs === os.Mac && !isMobile ? 'mac-step-three' : '';\n case 3:\n return currentOs === os.Mac && !isMobile ? 'mac-step-four' : '';\n default:\n break;\n }\n };\n\n /**\n * Return the correct tutorial text.\n */\n const switchTutorialText = () => {\n const currentOs = determineOperatingSystem();\n switch (tutorialProgress) {\n case 0:\n return isMobile\n ? I18n.get().t('Test_Intro_Tutorial_iPad_One')\n : currentOs === os.Windows\n ? I18n.get().t('Test_Intro_Tutorial_Windows_One')\n : os.Mac && I18n.get().t('Test_Intro_Tutorial_Mac_One');\n case 1:\n return isMobile\n ? I18n.get().t('Test_Intro_Tutorial_iPad_Two')\n : currentOs === os.Windows\n ? I18n.get().t('Test_Intro_Tutorial_Windows_Two')\n : I18n.get().t('Test_Intro_Tutorial_Mac_Two');\n case 2:\n return currentOs === os.Mac && !isMobile ? I18n.get().t('Test_Intro_Tutorial_Mac_Three') : '';\n case 3:\n return currentOs === os.Mac && !isMobile ? I18n.get().t('Test_Intro_Tutorial_Mac_Four') : '';\n default:\n break;\n }\n };\n\n return (\n \n \n \n {I18n.get().t('Test_Intro_Welcome')}\n {props.wearerName && `, ${props.wearerName}`}\n \n \n \n {I18n.get().t('Test_Intro_Instructions')}\n {I18n.get().t('Test_Intro_Settings')}\n \n \n \n \n {switchTutorialText()}\n \n \n \n \n \n {Array.from(Array(maxProgress + 1), (_, i) => i + 1).map((index) => {\n if (tutorialProgress + 1 === index) {\n return ;\n } else {\n return ;\n }\n })}\n \n \n \n {tutorialProgress < maxProgress ? (\n setTutorialProgress(tutorialProgress + 1)} />\n ) : (\n \n )}\n \n \n \n );\n};\n","import React, { Component } from 'react';\nimport styled from 'styled-components/macro';\nimport { getTheme } from 'office-ui-fabric-react';\n\nconst CardContainer = styled.div`\n display: flex;\n border-radius: 5px;\n flex-direction: column;\n min-width: 282px;\n width: 25%;\n max-height: 300px;\n background-color: ${(props) => props.backgroundColor};\n box-shadow: 1px 2px 6px ${(props) => props.shadowColor};\n`;\n\nconst HeadlineContainer = styled.div`\n display: flex;\n flex-direction: row;\n font-weight: bold;\n padding: 10px 0 0 10px;\n font-size: 30px;\n @media only screen and (max-width: 1400px) {\n font-size: 18px;\n }\n color: ${(props) => props.fontColor};\n`;\n\nconst InstructionContainer = styled.div`\n display: flex;\n flex-direction: row;\n padding: 0px 22px 15px 22px;\n font-size: 35px;\n color: ${(props) => props.fontColor};\n font-weight: bold;\n @media only screen and (max-width: 1400px) {\n font-size: 23px;\n }\n`;\n\n/**\n * card component that contains the instruction number and the instruction text\n */\nexport class TestInstructionCard extends Component {\n theme = getTheme();\n render() {\n return (\n \n {this.props.number}\n {this.props.text}\n \n );\n }\n}\n","import React, { Component } from 'react';\nimport styled from 'styled-components/macro';\nimport I18n from '../../helper/Localization';\nimport { TestInstructionCard } from './TestInstructionCard';\nimport { DefaultButton, PrimaryButton } from 'office-ui-fabric-react';\n\nconst InstructionsContainer = styled.div`\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n justify-content: center;\n align-items: center;\n`;\n\nconst HeadlineContainer = styled.div`\n display: flex;\n flex-direction: row;\n padding: 55px 0 73px 51px;\n width: 70%;\n font-size: 40px;\n font-weight: bold;\n color: #000000;\n align-self: flex-start;\n @media only screen and (max-width: 1400px) {\n font-size: 23px;\n }\n`;\n\nconst InstructionCardsContainer = styled.div`\n display: flex;\n flex-direction: row;\n width: 93%;\n height: 40%;\n justify-content: space-around;\n margin-top: auto;\n margin-bottom: auto;\n`;\n\nconst ButtonContainer = styled.div`\n padding: 35px;\n width: 90%;\n display: flex;\n justify-content: flex-end;\n flex-direction: row;\n`;\n\nconst WarningHearingImpaired = styled.div`\n margin-right: auto;\n margin-left: -5%;\n margin-top: auto;\n margin-bottom: auto;\n`;\n\nconst continueButtonStyle = {\n root: {\n borderRadius: '5px',\n fontSize: '15px',\n border: 0,\n minWidth: '185px',\n height: '39px',\n },\n rootHovered: {\n backgroundColor: 'none',\n color: 'none',\n },\n rootPressed: {\n backgroundColor: 'none',\n color: 'none',\n },\n};\n\nconst abortButtonStyle = {\n root: {\n border: 0,\n fontSize: '15px',\n minWidth: '179px',\n height: '39px',\n },\n rootHovered: {\n backgroundColor: 'none',\n color: 'none',\n },\n rootPressed: {\n backgroundColor: 'none',\n color: 'none',\n },\n};\n\n/**\n * view component that contains the instructions to be followed before starting the test\n */\nexport class TestInstructionsView extends Component {\n render() {\n return (\n \n {I18n.get().t('Test_Instructions_Header')}\n \n \n \n \n \n \n {I18n.get().t('Test_Instructions_WarningHearingImpaired')}\n \n \n \n \n );\n }\n}\n","/**\n * plays a sound\n * @param side 'left' ear or 'right' ear, default=both ears\n * @param gain the volume of the tone, between 0 and 1\n * @param frequency the frequency of the tone\n * @param duration the duration of the tone in seconds\n * @param offsetDuration an offset in seconds before the tone is played.\n * @param callback the callback function to execute after sound is played\n */\nexport const playSound = (side, gain, frequency, duration, offsetDuration, callback) => {\n // Default, Safari and older versions of Chrome\n const AudioContext = window.AudioContext || window.webkitAudioContext || false;\n if (!AudioContext) {\n console.error('No audio context available');\n alert('Your device does not support an audio output.');\n return;\n }\n const audioContext = new AudioContext();\n // The volume can not reach an absolute zero, therefore the nearest approximation.\n const ZERO = 0.000001;\n // Fading duration in seconds before and after each sound.\n const fadeDuration = 0.1;\n const oscillator = audioContext.createOscillator();\n const gainNodeL = audioContext.createGain();\n const gainNodeR = audioContext.createGain();\n const merger = audioContext.createChannelMerger(2);\n // connect left and right node to the oscillator\n oscillator.connect(gainNodeL);\n oscillator.connect(gainNodeR);\n // connect channel merger to the left and right node\n gainNodeL.connect(merger, 0, 0);\n gainNodeR.connect(merger, 0, 1);\n // connect the audio destination to the channel merger\n merger.connect(audioContext.destination);\n // Offset of silence\n gainNodeR.gain.setValueAtTime(ZERO, audioContext.currentTime);\n gainNodeL.gain.setValueAtTime(ZERO, audioContext.currentTime);\n // determine on which ear the sound will be played using the given gain\n switch (side) {\n case 'left':\n // play sound on left ear\n gainNodeR.gain.setValueAtTime(ZERO, audioContext.currentTime + offsetDuration);\n gainNodeL.gain.setValueAtTime(ZERO, audioContext.currentTime + offsetDuration);\n gainNodeL.gain.exponentialRampToValueAtTime(gain, audioContext.currentTime + fadeDuration + offsetDuration);\n gainNodeL.gain.setValueAtTime(gain, audioContext.currentTime + duration + offsetDuration);\n gainNodeL.gain.exponentialRampToValueAtTime(ZERO, audioContext.currentTime + duration + fadeDuration + offsetDuration);\n break;\n case 'right':\n // play sound on right ear\n gainNodeL.gain.setValueAtTime(ZERO, audioContext.currentTime + offsetDuration);\n gainNodeR.gain.setValueAtTime(ZERO, audioContext.currentTime + offsetDuration);\n gainNodeR.gain.exponentialRampToValueAtTime(gain, audioContext.currentTime + fadeDuration + offsetDuration);\n gainNodeR.gain.setValueAtTime(gain, audioContext.currentTime + duration + offsetDuration);\n gainNodeR.gain.exponentialRampToValueAtTime(ZERO, audioContext.currentTime + duration + fadeDuration + offsetDuration);\n break;\n default:\n // play sound on both ears\n gainNodeL.gain.setValueAtTime(ZERO, audioContext.currentTime + offsetDuration);\n gainNodeL.gain.exponentialRampToValueAtTime(gain, audioContext.currentTime + fadeDuration + offsetDuration);\n gainNodeL.gain.setValueAtTime(gain, audioContext.currentTime + duration + offsetDuration);\n gainNodeL.gain.exponentialRampToValueAtTime(ZERO, audioContext.currentTime + duration + fadeDuration + offsetDuration);\n gainNodeR.gain.setValueAtTime(ZERO, audioContext.currentTime + offsetDuration);\n gainNodeR.gain.exponentialRampToValueAtTime(gain, audioContext.currentTime + fadeDuration + offsetDuration);\n gainNodeR.gain.setValueAtTime(gain, audioContext.currentTime + duration + offsetDuration);\n gainNodeR.gain.exponentialRampToValueAtTime(ZERO, audioContext.currentTime + duration + fadeDuration + offsetDuration);\n break;\n }\n // set the sound type to sine\n oscillator.type = 'sine';\n // set the frequency\n oscillator.frequency.setValueAtTime(frequency, audioContext.currentTime + offsetDuration);\n // start playing the sound\n oscillator.start();\n if (audioContext.state === 'suspended') {\n // Mobile and Safari suspend the audio context if it is not playing.\n audioContext.resume();\n }\n // stop the sound after given amount of seconds\n setTimeout(() => {\n oscillator.stop();\n audioContext.close();\n callback();\n }, (duration + 2 * fadeDuration + offsetDuration) * 1000);\n};\n","import React, { Component } from 'react';\nimport styled from 'styled-components/macro';\nimport I18n from '../../helper/Localization';\nimport { DefaultButton, FontIcon, getTheme, PrimaryButton } from 'office-ui-fabric-react';\nimport { playSound } from '../../helper/SoundHelper';\nimport { mergeStyles, mergeStyleSets } from 'office-ui-fabric-react/lib/Styling';\n\nconst TestExecutionContainer = styled.div`\n display: flex;\n flex-direction: row;\n flex: 1;\n`;\n\nconst LeftContainer = styled.div`\n display: flex;\n min-width: 440px;\n flex-direction: column;\n color: white;\n flex: 1;\n`;\n\nconst RightContainer = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n flex: 2;\n`;\n\nconst ExplanationWrapper = styled.div`\n padding: 55px 70px 0 47px;\n @media only screen and (max-width: 1400px) {\n padding: 25px 40px 0 47px;\n }\n`;\n\nconst HeaderContainer = styled.div`\n display: flex;\n flex-direction: row;\n font-weight: bold;\n font-size: 40px;\n @media only screen and (max-width: 1400px) {\n font-size: 23px;\n }\n`;\n\nconst ExplanationContainer = styled.div`\n display: flex;\n flex-direction: row;\n padding-top: 20px;\n font-size: 18px;\n @media only screen and (max-width: 1400px) {\n font-size: 14px;\n padding-top: 10px;\n }\n`;\n\nconst ButtonContainer = styled.div`\n margin-top: auto;\n padding: 30px 48px 47px 48px;\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n min-width: max-content;\n @media only screen and (max-width: 1500px) {\n padding: 30px 15px 27px 15px;\n }\n`;\n\nconst UserIconContainer = styled.div`\n display: flex;\n position: relative;\n flex-direction: column;\n margin-top: auto;\n padding: 10px;\n min-width: 430px;\n @media only screen and (max-width: 1400px) {\n min-width: 350px;\n }\n`;\n\nconst MarginBottom = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 15px;\n width: 100%;\n`;\n\nconst CountdownOverlay = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n background: 'none';\n width: 100%;\n height: 100%;\n z-index: 10;\n top: -50px;\n left: 0;\n position: absolute;\n font-size: 103px;\n font-weight: bold;\n color: ${(props) => props.fontColor};\n visibility: ${(props) => (props.visible ? 'visible' : 'hidden')};\n`;\n\nconst StyledList = styled.ol`\n padding-left: 15px;\n`;\n\n/**\n * the default gain value\n */\nconst defaultGainValue = 0.0125;\n/**\n * the default frequency in herz\n */\nconst defaultFrequency = 500;\n/**\n * the default length of a sound in seconds\n */\nconst defaultSoundLength = 1.5;\n/**\n * the step size to decrease the current gain value\n */\nconst lowerGainDivisor = 1.41;\n\n/**\n * an offset in seconds before the tone is played.\n */\nconst offsetDuration = 3;\n\n/**\n * view component that displays the test execution for left or right ear with or without hearing protection\n */\nexport class TestExecutionView extends Component {\n constructor(props) {\n super(props);\n this.interval = null;\n this.state = {\n ear: 'left',\n isTestActive: false,\n withHearingProtection: false,\n currentGainValue: defaultGainValue,\n isSoundPlaying: false,\n isCountdownRunning: false,\n countdownValue: 0,\n };\n }\n\n theme = getTheme();\n\n soundIconClass = mergeStyles({\n fontSize: 32,\n height: 50,\n width: 50,\n margin: '0 auto',\n paddingLeft: 8,\n });\n classNames = mergeStyleSets({\n whiteIcon: [{ color: this.theme.palette.white }, this.soundIconClass],\n });\n\n commonButtonStyles = {\n root: {\n borderRadius: '4px',\n height: '39px',\n minHeight: '39px',\n fontSize: '15px',\n },\n rootHovered: {\n backgroundColor: 'none',\n color: 'none',\n },\n rootPressed: {\n backgroundColor: 'none',\n color: 'none',\n },\n };\n\n beginButtonStyles = {\n ...this.commonButtonStyles,\n root: {\n ...this.commonButtonStyles.root,\n color: 'white',\n border: '1px solid white',\n minWidth: '195px',\n backgroundColor: this.theme.palette.white,\n },\n };\n\n toneButtonStyles = {\n ...this.commonButtonStyles,\n root: {\n ...this.commonButtonStyles.root,\n boxShadow: '1px 2px 3px #00000079',\n border: 0,\n minWidth: '180px',\n },\n };\n\n abortButtonStyles = {\n ...this.commonButtonStyles,\n root: {\n ...this.commonButtonStyles.root,\n border: 0,\n color: this.theme.palette.black,\n fontWeight: 'bold',\n minWidth: '195px',\n },\n };\n\n previousSoundButtonStyles = {\n ...this.commonButtonStyles,\n root: {\n ...this.commonButtonStyles.root,\n border: `1px solid ${this.theme.palette.black}`,\n color: this.theme.palette.black,\n fontWeight: 'bold',\n minWidth: '100%',\n },\n icon: {\n marginBottom: 3,\n },\n };\n\n previousTestButtonStylesLeft = {\n ...this.commonButtonStyles,\n root: {\n ...this.commonButtonStyles.root,\n border: `1px solid ${this.theme.palette.white}`,\n color: this.theme.palette.white,\n fontWeight: 'bold',\n minWidth: '100%',\n backgroundColor: 'rgba(0, 0, 0, 0.0)',\n },\n icon: {\n marginBottom: 3,\n },\n };\n\n previousTestButtonStylesTestActive = {\n ...this.commonButtonStyles,\n root: {\n ...this.commonButtonStyles.root,\n border: `1px solid ${this.theme.palette.black}`,\n color: this.theme.palette.black,\n fontWeight: 'bold',\n minWidth: '100%',\n backgroundColor: 'rgba(0, 0, 0, 0.0)',\n },\n icon: {\n marginBottom: 3,\n },\n };\n\n /**\n * switch the current hearing test state to determine which heading is displayed\n */\n switchHeadline = () => {\n if (this.state.ear === 'left' && this.state.withHearingProtection) {\n return I18n.get().t('Test_Execution_LeftWithProtection');\n } else if (this.state.ear === 'left' && !this.state.withHearingProtection) {\n return I18n.get().t('Test_Execution_LeftWithoutProtection');\n } else if (this.state.ear === 'right' && this.state.withHearingProtection) {\n return I18n.get().t('Test_Execution_RightWithProtection');\n } else if (this.state.ear === 'right' && !this.state.withHearingProtection) {\n return I18n.get().t('Test_Execution_RightWithoutProtection');\n }\n };\n\n /**\n * calculates the gain ratio based on the max gain and the gain value at which the user can't hear the sound anymore\n * @param baseValue the max gain value\n * @param value the gain value at which the user can't hear the sound anymore\n */\n calcGainRatio = (baseValue, value) => {\n return value / baseValue;\n };\n\n /**\n * save the test result, reset the values and continue with the next test\n */\n finishCurrentTest = () => {\n // save result in test state\n this.props.dbHandler(this.state.ear, this.state.withHearingProtection, this.calcGainRatio(defaultGainValue, this.state.currentGainValue), () =>\n this.continueWithNextTest()\n );\n // change test status to finished\n this.setState({ isTestActive: false });\n };\n\n /**\n * helper function that takes the current test state and knows next test\n */\n continueWithNextTest = () => {\n this.setState({ currentGainValue: defaultGainValue });\n if (this.state.ear === 'left') {\n this.setState({ ear: 'right' });\n } else if (this.state.ear === 'right' && !this.state.withHearingProtection) {\n this.props.continue();\n this.setState({ ear: 'left', withHearingProtection: true });\n }\n };\n\n /**\n * function that is used when the \"start test\" button is pressed\n */\n callbackStartTest = () => {\n // set the test status to active\n this.setState({ isTestActive: true });\n // play the first sound with initial gain after a three seconds countdown\n this.playWithDelay();\n };\n\n /**\n * Plays the test tone with a delay in form of a countdown.\n */\n playWithDelay = () => {\n playSound(this.state.ear, this.state.currentGainValue, defaultFrequency, defaultSoundLength, offsetDuration, () => this.setState({ isSoundPlaying: false }));\n this.setState({ countdownValue: offsetDuration, isCountdownRunning: true });\n this.interval = setInterval(() => {\n this.setState({ countdownValue: this.state.countdownValue - 1 }, () => {\n if (this.state.countdownValue <= 0) {\n clearInterval(this.interval);\n this.setState({ isCountdownRunning: false, isSoundPlaying: true });\n }\n });\n }, 1000);\n };\n\n /**\n * function that is used when the \"tone heard\" button is pressed\n */\n callbackToneHeard = () => {\n // lower the gain by one step and play a sound afterwards.\n this.setState({ currentGainValue: this.state.currentGainValue / lowerGainDivisor, isSoundPlaying: true }, () => {\n playSound(this.state.ear, this.state.currentGainValue, defaultFrequency, defaultSoundLength, 0, () => this.setState({ isSoundPlaying: false }));\n });\n };\n\n /**\n * Function that is used when the \"previous sound\" button is pressed.\n */\n callbackPreviousSound = () => {\n const newGain = this.state.currentGainValue * lowerGainDivisor;\n this.setState({ currentGainValue: newGain, isSoundPlaying: true }, () => {\n playSound(this.state.ear, this.state.currentGainValue, defaultFrequency, defaultSoundLength, 0, () => this.setState({ isSoundPlaying: false }));\n });\n };\n\n /**\n * Function that is used when the \"previous site\" button ios pressed.\n */\n callbackPreviousTest = () => {\n this.setState({ currentGainValue: defaultGainValue, isTestActive: false });\n if (this.state.ear === 'right' && this.state.withHearingProtection === false) {\n this.setState({ ear: 'left' });\n } else if (this.state.ear === 'left' && this.state.withHearingProtection === true) {\n this.props.back();\n this.setState({ ear: 'right', withHearingProtection: false });\n } else if (this.state.ear === 'right' && this.state.withHearingProtection === true) {\n this.setState({ ear: 'left' });\n }\n };\n\n render() {\n return (\n \n \n \n \n
\n \n {!this.state.isTestActive && (\n \n {this.state.withHearingProtection === true && (\n
  • \n {I18n.get().t('Test_Execution_One')}\n
  • \n )}\n
  • \n {I18n.get().t('Test_Execution_Two')}\n
  • \n
  • \n {I18n.get().t('Test_Execution_Three')}\n
  • \n
  • \n {I18n.get().t('Test_Execution_Four')}\n
  • \n
  • \n {I18n.get().t('Test_Execution_Five')}\n
  • \n
    \n )}\n \n \n \n \n {!this.state.isTestActive && (\n this.callbackStartTest()}\n disabled={this.state.isTestActive}\n />\n )}\n \n {!(this.state.ear === 'left' && this.state.withHearingProtection === false) && (\n this.callbackPreviousTest()}\n />\n )}\n \n \n \n \n \n {this.state.countdownValue}\n \n \n \n \n this.callbackToneHeard()}\n disabled={this.state.isCountdownRunning || !this.state.isTestActive || this.state.isSoundPlaying}\n />\n this.finishCurrentTest()}\n disabled={this.state.isCountdownRunning || !this.state.isTestActive || this.state.isSoundPlaying}\n />\n \n = defaultGainValue\n ? 'arrow-left-gray'\n : 'arrow-left-black',\n }}\n text={I18n.get().t('TestExecution_PreviousSoundLevel')}\n disabled={this.state.isCountdownRunning || !this.state.isTestActive || this.state.isSoundPlaying || this.state.currentGainValue >= defaultGainValue}\n onClick={() => this.callbackPreviousSound()}\n />\n \n \n \n );\n }\n}\n","import React from 'react';\nimport styled from 'styled-components/macro';\nimport I18n from '../../helper/Localization';\nimport { PrimaryButton, getTheme } from 'office-ui-fabric-react';\nimport { useStoreState } from 'easy-peasy';\nimport { Colors } from '../../styles/Globals';\n\nconst ResultContainer = styled.div`\n display: flex;\n flex-direction: column;\n flex: 1;\n`;\n\nconst HeadlineContainer = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: flex-start;\n width: 100%;\n font-size: 40px;\n font-weight: bold;\n padding: 55px 0 0 51px;\n color: ${(props) => props.fontColor};\n @media only screen and (max-width: 1400px) {\n font-size: 23px;\n padding: 15px;\n }\n`;\n\nconst SubHeadlineContainer = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: flex-start;\n width: 100%;\n font-size: 40px;\n font-weight: bold;\n padding-left: 51px;\n color: ${(props) => props.fontColor};\n @media only screen and (max-width: 1400px) {\n font-size: 23px;\n padding-left: 15px;\n }\n`;\n\nconst ListContainer = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n overflow: auto;\n margin-top: 40px;\n max-height: calc(100vh - 540px);\n @media only screen and (max-width: 1400px) {\n max-height: calc(100vh - 440px);\n }\n`;\n\nconst BottomContainer = styled.div`\n display: flex;\n flex-direction: row;\n margin-top: auto;\n justify-content: flex-start;\n align-items: center;\n width: 100%;\n height: 60px;\n padding: 0 50px 50px 50px;\n min-height: max-content;\n @media only screen and (max-width: 1400px) {\n padding: 15px;\n }\n`;\n\nconst BottomTextWrapper = styled.div`\n margin-right: 20px;\n`;\n\nconst List = styled.ul`\n min-height: max-content;\n`;\n\nconst ListItem = styled.li`\n font-size: 16px;\n margin: 15px 51px;\n`;\n\nconst confirmButtonStyle = {\n root: {\n borderRadius: '5px',\n fontSize: '15px',\n border: `1px solid ${Colors.white}`,\n minWidth: 'max-content',\n width: '200px',\n height: '39px',\n marginLeft: 'auto',\n },\n rootHovered: {\n backgroundColor: 'none',\n color: 'none',\n border: '1px solid #ffffff',\n },\n rootPressed: {\n backgroundColor: 'none',\n color: 'none',\n border: '1px solid #ffffff',\n },\n};\n\n/**\n * view component that contains the success result of the hearing test\n */\nexport const TestSuccessView = (props) => {\n const theme = getTheme();\n\n /**\n * Retrieve the store state of the offline mode.\n */\n const isOfflineModeEnabled = useStoreState((state) => state.ui.isOfflineModeEnabled);\n\n return (\n \n {I18n.get().t('Test_Result_HeadlineSuccess')}\n {I18n.get().t('Test_Result_SubHeadlineSuccess')}\n \n \n {I18n.get().t('Test_Result_One')}\n {I18n.get().t('Test_Result_Two')}\n {I18n.get().t('Test_Result_Three')}\n {I18n.get().t('Test_Result_Four')}\n {I18n.get().t('Test_Result_Five')}\n {I18n.get().t('Test_Result_Six')}\n {I18n.get().t('Test_Result_Seven')}\n {I18n.get().t('Test_Result_Eight')}\n {I18n.get().t('Test_Result_Nine')}\n {I18n.get().t('Test_Result_Ten')}\n \n \n \n {I18n.get().t('Test_Result_PleaseConfirmText')}\n \n \n \n );\n};\n","import React from 'react';\nimport styled from 'styled-components/macro';\nimport I18n from '../../helper/Localization';\nimport { PrimaryButton, DefaultButton, getTheme } from 'office-ui-fabric-react';\nimport { useStoreState } from 'easy-peasy';\n\nconst ResultContainer = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n width: 100%;\n height: 100%;\n background-color: ${(props) => props.backgroundColor};\n`;\n\nconst HeadlineContainer = styled.div`\n margin-top: auto;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: flex-start;\n width: 90%;\n color: ${(props) => props.fontColor};\n font-size: 40px;\n font-weight: bold;\n @media only screen and (max-width: 1400px) {\n font-size: 23px;\n }\n`;\n\nconst TextContainer = styled.div`\n margin-bottom: auto;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: flex-start;\n width: 90%;\n color: ${(props) => props.fontColor};\n font-size: 30px;\n`;\n\nconst BottomContainer = styled.div`\n display: flex;\n flex-direction: row;\n justify-content: flex-end;\n align-items: center;\n width: 100%;\n padding: 35px;\n`;\n\n/**\n * view component that contains the failed result of the hearing test\n */\nexport const TestFailedView = (props) => {\n const theme = getTheme();\n\n /** Whether the CH features are enabled or not. */\n const enableChFeatures = useStoreState((state) => state.ui.enableChFeatures);\n\n /**\n * Retrieve the store state of the offline mode.\n */\n const isOfflineModeEnabled = useStoreState((state) => state.ui.isOfflineModeEnabled);\n\n const restartButtonStyle = {\n root: {\n border: 0,\n fontSize: '15px',\n minWidth: '179px',\n height: '39px',\n backgroundColor: theme.palette.neutralSecondary,\n color: theme.palette.white,\n },\n rootHovered: {\n backgroundColor: 'none',\n color: 'none',\n },\n rootPressed: {\n backgroundColor: 'none',\n color: 'none',\n },\n };\n\n const leaveButtonStyle = {\n root: {\n borderRadius: '5px',\n fontSize: '15px',\n border: 0,\n minWidth: 'max-content',\n width: '200px',\n height: '39px',\n },\n rootHovered: {\n backgroundColor: 'none',\n color: 'none',\n },\n rootPressed: {\n backgroundColor: 'none',\n color: 'none',\n },\n };\n\n return (\n \n {I18n.get().t('Test_Result_HeadlineFailed')}\n \n {isOfflineModeEnabled ? I18n.get().t('Test_Result_TextFailed_Offline') : I18n.get().t('Test_Result_TextFailed')}\n \n \n {I18n.get().t('Test_Result_TextFailed_UsageNote')}\n
    \n {I18n.get().t('Test_Result_TextFailed_ContactInfo')}\n
    \n {enableChFeatures ? (\n <>\n {I18n.get().t('Test_Result_TextFailed_ContactDetails_T_CH')}\n
    {I18n.get().t('Test_Result_TextFailed_ContactDetails_E_CH')}\n
    {I18n.get().t('Test_Result_TextFailed_ContactDetails_W_CH')}\n \n ) : (\n <>\n {I18n.get().t('Test_Result_TextFailed_ContactDetails_T_DE')}\n
    {I18n.get().t('Test_Result_TextFailed_ContactDetails_E_DE')}\n
    {I18n.get().t('Test_Result_TextFailed_ContactDetails_W_DE')}\n \n )}\n
    \n \n {!isOfflineModeEnabled && }\n \n \n
    \n );\n};\n","import * as React from 'react';\nimport I18n from '../../helper/Localization';\nimport { Dialog, DialogType, DialogFooter } from 'office-ui-fabric-react/lib/Dialog';\nimport { PrimaryButton, DefaultButton } from 'office-ui-fabric-react/lib/Button';\nimport { ContextualMenu } from 'office-ui-fabric-react/lib/ContextualMenu';\nimport { useId, useBoolean } from '@uifabric/react-hooks';\n\n/**\n * Basic dialog with custom headline, text and confirm / cancel callbacks\n * @param props the hidden status, the headline text, the sub-text, the confirm callback and the cancel callback.\n */\nexport const BasicDialog = (props) => {\n const [isDraggable] = useBoolean(false);\n const labelId = useId('dialogLabel');\n const subTextId = useId('subTextLabel');\n\n const dialogContentProps = {\n type: DialogType.normal,\n title: props.title,\n closeButtonAriaLabel: 'Close',\n subText: props.text,\n };\n const modalProps = React.useMemo(\n () => ({\n titleAriaId: labelId,\n subtitleAriaId: subTextId,\n isBlocking: false,\n dragOptions: isDraggable\n ? {\n moveMenuItemText: 'Move',\n closeMenuItemText: 'Close',\n menu: ContextualMenu,\n }\n : undefined,\n }),\n [isDraggable, labelId, subTextId]\n );\n\n const cancleButtonStyles = {\n root: {\n border: 'unset',\n },\n };\n\n return (\n <>\n \n \n );\n};\n","import React, { useState, useEffect, useCallback } from 'react';\nimport TestLayout from './TestLayout';\nimport History from '../BrowserHistory';\nimport I18n from '../../helper/Localization';\nimport { OfflineIntroView } from './OfflineIntroView';\nimport { TestIntroView } from './TestIntroView';\nimport { TestInstructionsView } from './TestInstructionsView';\nimport { TestExecutionView } from './TestExecutionView';\nimport { TestSuccessView } from './TestSuccessView';\nimport { TestFailedView } from './TestFailedView';\nimport { BasicDialog } from '../dialogs/BasicDialog';\n\n/**\n * component that handles the complete hearing test\n */\nexport const HearingTest = (props) => {\n const minimumInsulationPerEar = 12;\n\n /**\n * Whether the abort dialog is open or not.\n */\n const [isAbortDialogOpen, setIsAbortDialogOpen] = useState(false);\n\n /**\n * State of the current test progress.\n */\n const [progress, setProgress] = useState(0);\n\n /**\n * State of the left db value without protection.\n */\n const [dbLeftWithoutProtection, setDbLeftWithoutProtection] = useState(-1);\n\n /**\n * State of the right db value without protection.\n */\n const [dbRightWithoutProtection, setDbRightWithoutProtection] = useState(-1);\n\n /**\n * State of the left db value with protection.\n */\n const [dbLeftWithProtection, setDbLeftWithProtection] = useState(-1);\n\n /**\n * State of the right db value with protection.\n */\n const [dbRightWithProtection, setDbRightWithProtection] = useState(-1);\n\n /**\n * Whether the hearing test is busy or not.\n */\n const [isBusy, setIsBusy] = useState(false);\n\n /**\n * continues the test progress\n */\n const progressHandler = useCallback(() => {\n setProgress(Math.min(5, progress + 1));\n }, [progress]);\n\n useEffect(() => {\n if (props.startProgress) {\n setProgress(props.startProgress);\n }\n }, [props.startProgress]);\n\n /**\n * Finish test after last test step is finished.\n */\n useEffect(() => {\n if (dbRightWithProtection !== -1 && progress === 3) {\n try {\n setIsBusy(true);\n props.finishAndSaveTest(\n dbLeftWithoutProtection,\n dbLeftWithProtection,\n dbRightWithoutProtection,\n dbRightWithProtection,\n calcInsulation(dbLeftWithoutProtection, dbLeftWithProtection),\n calcInsulation(dbRightWithoutProtection, dbRightWithProtection),\n calcInsulation(dbLeftWithoutProtection, dbLeftWithProtection) >= minimumInsulationPerEar,\n calcInsulation(dbRightWithoutProtection, dbRightWithProtection) >= minimumInsulationPerEar\n );\n progressHandler();\n } catch (error) {\n console.error(error);\n } finally {\n setIsBusy(false);\n }\n }\n }, [dbLeftWithProtection, dbLeftWithoutProtection, dbRightWithProtection, dbRightWithoutProtection, progress, progressHandler, props, setDbRightWithProtection]);\n\n /**\n * restarts the test for the same user with the same order position\n */\n const restartHandler = () => {\n if (props.isOfflineModeEnabled) {\n setProgress(-1);\n } else {\n setProgress(0);\n }\n setDbLeftWithoutProtection(-1);\n setDbRightWithoutProtection(-1);\n setDbLeftWithProtection(-1);\n setDbRightWithProtection(-1);\n if (props.updateOfflineNotes) {\n props.updateOfflineNotes('');\n }\n };\n\n /**\n * go back in the test progress\n */\n const progressHandlerBackwards = () => {\n setProgress(Math.min(5, progress - 1));\n };\n\n /**\n * sets the db state for the ear site with and without hearing protection based on params\n * @param site the ear site\n * @param withProtection if the test was with or without hearing protection\n * @param db the calculated decibel value\n */\n const dbHandler = (site, withProtection, db, callback) => {\n if (site === 'left' && !withProtection) {\n setDbLeftWithoutProtection(db);\n callback();\n } else if (site === 'right' && !withProtection) {\n setDbRightWithoutProtection(db);\n callback();\n } else if (site === 'left' && withProtection) {\n setDbLeftWithProtection(db);\n callback();\n } else if (site === 'right' && withProtection) {\n setDbRightWithProtection(db);\n }\n };\n\n /**\n * toggle the visibility of the abort dialog\n */\n const toggleAbortDialog = () => {\n setIsAbortDialogOpen(!isAbortDialogOpen);\n };\n\n /**\n * aborts the current test\n */\n const abortHandler = () => {\n setDbLeftWithoutProtection(-1);\n setDbRightWithoutProtection(-1);\n setDbLeftWithProtection(-1);\n setDbRightWithProtection(-1);\n if (props.isOfflineModeEnabled) {\n setProgress(-1);\n if (props.updateOfflineNotes) {\n props.updateOfflineNotes('');\n }\n setIsAbortDialogOpen(false);\n } else {\n History.goBack();\n }\n };\n\n /**\n * calculates the test result db\n */\n const calcInsulation = (dbWithoutProtection, dbWithProtection) => {\n return Math.round(20 * Math.log10(dbWithProtection / dbWithoutProtection));\n };\n\n /**\n * helper method that returns the correct test view\n * @param param\n */\n const renderSwitch = (param) => {\n switch (param) {\n case -1:\n return (\n props.updateExecutorMail(email)}\n updateNotes={(notes) => props.updateOfflineNotes(notes)}\n />\n );\n case 0:\n return ;\n case 1:\n return ;\n case 2:\n return ;\n case 3:\n return ;\n case 4:\n return calcInsulation(dbLeftWithoutProtection, dbLeftWithProtection) >= minimumInsulationPerEar &&\n calcInsulation(dbRightWithoutProtection, dbRightWithProtection) >= minimumInsulationPerEar ? (\n \n ) : (\n \n );\n default:\n return
    ;\n }\n };\n\n return (\n \n \n );\n};\n","import React, { useState, useEffect } from 'react';\nimport { HearingTest } from './HearingTest';\nimport { useStoreState } from 'easy-peasy';\n\n/**\n * component that handles the complete hearing test\n */\nexport const OfflineHearingTest = () => {\n /**\n * State of the email address of the test executor (needed for offline mode).\n */\n const [executorEmail, setExecutorEmail] = useState('');\n\n /**\n * State of the notes the test executor writes to assign the test result to an order (needed for offline mode).\n */\n const [offlineNotes, setOfflineNotes] = useState('');\n\n /**\n * Retrieve the store state of the offline mode.\n */\n const isOfflineModeEnabled = useStoreState((state) => state.ui.isOfflineModeEnabled);\n\n /**\n * Initialize the hearing test.\n */\n useEffect(() => {\n if (isOfflineModeEnabled) {\n const lastLoggedInUserMail = localStorage.getItem('lastLoggedInUserMail');\n setExecutorEmail(lastLoggedInUserMail);\n }\n }, [isOfflineModeEnabled]);\n\n /**\n * Save the test result in local browser storage.\n */\n const saveTestResultLocally = (\n dbLeftWithoutProtection,\n dbLeftWithProtection,\n dbRightWithoutProtection,\n dbRightWithProtection,\n insulationLeft,\n insulationRight,\n isSuccessfulLeft,\n isSuccessfulRight\n ) => {\n // Retrieve the currently stored offline test results.\n const currentStoredResults = JSON.parse(localStorage.getItem('offlineTestResults'));\n // Create the new test result.\n const newTestResult = {\n executorEmail: executorEmail,\n notes: offlineNotes,\n dateExecuted: new Date().toISOString(),\n measurementLeftWithoutProtection: dbLeftWithoutProtection,\n measurementLeftWithProtection: dbLeftWithProtection,\n measurementRightWithoutProtection: dbRightWithoutProtection,\n measurementRightWithProtection: dbRightWithProtection,\n insulationLeft: insulationLeft,\n insulationRight: insulationRight,\n isSuccessfulLeft: isSuccessfulLeft,\n isSuccessfulRight: isSuccessfulRight,\n };\n // Create the new array of offline test results.\n let newStoredResults;\n if (currentStoredResults) {\n newStoredResults = [...currentStoredResults, newTestResult];\n } else {\n newStoredResults = [newTestResult];\n }\n // Save all offline test results in the local storage.\n localStorage.setItem('offlineTestResults', JSON.stringify(newStoredResults));\n };\n\n return (\n setOfflineNotes(newValue)}\n offlineNotes={offlineNotes}\n updateExecutorMail={(newValue) => setExecutorEmail(newValue)}\n executorEmail={executorEmail}\n />\n );\n};\n","import React, { useEffect, useState } from 'react';\nimport { LandscapeTipOverlay } from './components/LandscapeTipOverlay';\nimport { OfflineHearingTest } from './components/hearingTest/OfflineHearingTest';\nimport I18n from './helper/Localization';\n\n/** Offline app component that is used when the user is in offline mode. */\nconst OfflineApp = () => {\n // I18n initialization\n const i18nPromise = I18n.getPromise();\n\n /**\n * Whether the component is initialized correctly.\n */\n const [isInitialized, setIsInitialized] = useState(false);\n\n useEffect(() => {\n Promise.all([i18nPromise]).then(() => {\n setIsInitialized(true);\n });\n }, [i18nPromise]);\n\n return isInitialized ? (\n <>\n \n \n \n ) : null;\n};\n\nexport default OfflineApp;\n","import React from 'react';\nimport { useTable, useSortBy, useFlexLayout } from 'react-table';\nimport styled from 'styled-components/macro';\nimport I18n from '../helper/Localization';\nimport { Colors } from '../styles/Globals';\n\nconst TableWrapper = styled.div`\n min-width: max-content !important;\n max-height: 100%;\n display: flex;\n flex: 1;\n flex-direction: column;\n`;\n\nconst Header = styled.div`\n display: flex;\n justify-content: left;\n align-items: center;\n`;\n\nconst HeaderLabel = styled.div`\n font-weight: bold;\n color: #8b8b8b;\n font-size: 14px;\n height: 24px;\n display: flex;\n justify-content: center;\n align-items: center;\n`;\n\nconst StyledRow = styled.div`\n padding: 15px 35px;\n border-bottom: solid 1px ${Colors.borderGray};\n :hover {\n background-color: ${Colors.hoverLightGray};\n }\n`;\n\nconst StyledCell = styled.div`\n margin-top: auto;\n margin-bottom: auto;\n word-wrap: break-word;\n font-size: 14px;\n`;\n\nconst HeaderRowWrapper = styled.div`\n border-bottom: solid 1px ${Colors.borderGray};\n padding: 10px 35px 10px 35px;\n margin-right: ${(props) => props.marginRight + 'px'};\n`;\n\nconst BodyWrapper = styled.div`\n display: block;\n width: 100%;\n overflow-y: auto;\n height: auto;\n`;\n\n/**\n *\n */\nconst getTableScrollbarWidth = () => {\n const table = document.getElementById('table-body');\n let scrollbarWidth = 0;\n if (table) {\n scrollbarWidth = table.offsetWidth - table.clientWidth;\n }\n return scrollbarWidth;\n};\n\n\n/**\n * Generic table which supports basic sorting.\n */\nconst Table = (props) => {\n \n const [scrollbarWidth, setScrollbarWidth] = React.useState(getTableScrollbarWidth());\n\n React.useEffect(() => {\n function triggerRender() {\n // Set value to scrollbar width result, thus not triggering a re-render, if the height is the same.\n setScrollbarWidth(getTableScrollbarWidth());\n }\n window.addEventListener('resize', triggerRender);\n setScrollbarWidth(getTableScrollbarWidth());\n }, []);\n\n // Case insensitive sorting for strings, numbers and dates.\n const compareIgnoreCase = (value1, value2) => {\n if (value1 === value2) {\n return 0;\n }\n if (value1 == null) {\n return -1;\n }\n if (value2 == null) {\n return 1;\n }\n if (typeof value1 === 'string' && typeof value2 === 'string') {\n return value1.toLowerCase().localeCompare(value2.toLowerCase());\n }\n if (typeof value1 === 'number' && typeof value2 === 'number') {\n return value1 > value2 ? 1 : -1;\n }\n if (value1 instanceof Date && value2 instanceof Date) {\n return value1 > value2 ? 1 : -1;\n }\n console.warn('Unknown comparison types:', typeof value1, typeof value2);\n };\n\n const defaultColumn = React.useMemo(\n () => ({\n minWidth: 30,\n width: 150,\n maxWidth: 200,\n }),\n []\n );\n\n const { getTableProps, getTableBodyProps, headerGroups, rows, prepareRow } = useTable(\n {\n autoResetSortBy: false,\n columns: props.columns,\n data: props.data,\n defaultColumn,\n disableSortBy: props.disableSort,\n sortTypes: {\n alphanumeric: (row1, row2, columnName) => {\n return compareIgnoreCase(row1.values[columnName], row2.values[columnName]);\n },\n },\n },\n useSortBy,\n useFlexLayout\n );\n\n return (\n \n {(props.showHeader || props.showHeader == null) && (\n \n {headerGroups.map((headerGroup, i) => (\n
    \n {headerGroup.headers.map((column, i) => (\n \n
    \n {column.render('Header')}\n
    \n
    \n ))}\n
    \n ))}\n \n )}\n \n {rows.map((row, i) => {\n prepareRow(row);\n return (\n props.onRowClick && props.onRowClick(row.original)}>\n {row.cells.map((cell) => {\n return {cell.render('Cell')};\n })}\n \n );\n })}\n \n \n );\n};\n\nexport default Table;\n","export const ORDERSSORTASCENDING = \"ordersSortAscending\";\nexport const ORDERSSORTPROPERTYNAME = \"ordersSortPropertyName\";\n","import { UserAgentApplication } from 'msal';\nimport { _config } from '../OnlineApp';\nimport { ORDERSSORTASCENDING, ORDERSSORTPROPERTYNAME } from './GlobalConstants';\n\n/**\n * Determines from the error message whether a user interaction is required.\n * @param {string} errorMessage The text of the current error message\n */\nexport const requiresInteraction = (errorMessage) => {\n if (!errorMessage || !errorMessage.length) {\n return false;\n }\n return errorMessage.indexOf('consent_required') > -1 || errorMessage.indexOf('interaction_required') > -1 || errorMessage.indexOf('login_required') > -1;\n};\n\n/**\n * Determines whether the current browser is an Internet Explorer.\n */\nexport const isIE = () => {\n const ua = window.navigator.userAgent;\n const msie = ua.indexOf('MSIE ') > -1;\n const msie11 = ua.indexOf('Trident/') > -1;\n // If you as a developer are testing using Edge InPrivate mode, please add \"isEdge\" to the if check\n const isEdge = ua.indexOf('Edge/') > -1;\n return msie || msie11 || isEdge;\n};\n\n/**\n * Retrieves an authentication token.\n * @param {string[]} scopes The scopes to request a token for\n */\nexport const getToken = async (scopes) => {\n const app = await msalApp();\n const azureAdOptions = (await _config).azureAdOptions;\n const request = { scopes: scopes, redirectUri: window.location.origin + azureAdOptions.callbackPath };\n const authResponse = await app.acquireTokenSilent(request).catch((error) => {\n if (requiresInteraction(error.errorCode)) {\n return app.acquireTokenRedirect(request);\n }\n });\n return authResponse ? authResponse.accessToken : null;\n};\n\n/**\n * Primary Sign-In method for authorization.\n * Returns true, if the user is signed in, false otherwise.\n */\nexport const signIn = async () => {\n const app = await msalApp();\n if (app.redirectError && app.redirectError.errorMessage.indexOf('AADB2C90118') > -1) {\n // App is redirecting due to forgotten password.\n return false;\n }\n if (app.getAccount()) {\n // User is already signed in.\n return true;\n }\n await login();\n // The app will redirect to sign-in, thus the user is not yet signed in.\n return false;\n};\n\n/**\n * Sign-out the user\n */\nexport const logout = async () => {\n const app = await msalApp();\n localStorage.removeItem('lastLoggedInUserMail');\n sessionStorage.removeItem(ORDERSSORTASCENDING);\n sessionStorage.removeItem(ORDERSSORTPROPERTYNAME);\n // Removes all sessions, need to call AAD endpoint to do full logout\n app.logout(app.getAccount());\n};\n\n/**\n * Internal singleton MSAL-client\n */\nlet _app = undefined;\n\n/**\n * Authentication handler for login and acquiring tokens.\n */\nexport const msalApp = async () => {\n if (!_app) {\n // initialize the MSAL-client\n const azureAdOptions = (await _config).azureAdOptions;\n const b2COptions = (await _config).b2COptions;\n const flow = window.location.pathname.includes('signup') ? b2COptions.signUp : b2COptions.signUpAndSignIn;\n _app = new UserAgentApplication({\n auth: {\n clientId: azureAdOptions.clientId,\n authority: `${azureAdOptions.instance}/tfp/${azureAdOptions.domain}/${flow}`,\n validateAuthority: false,\n redirectUri: window.location.origin + azureAdOptions.callbackPath,\n navigateToLoginRequestUrl: true,\n postLogoutRedirectUri: window.location.origin,\n },\n cache: {\n cacheLocation: 'localStorage',\n storeAuthStateInCookie: isIE(),\n },\n });\n _app.handleRedirectCallback(authRedirectCallBack);\n }\n return _app;\n};\n\n/**\n * Login request against the configured authority.\n */\nconst login = async () => {\n const b2COptions = (await _config).b2COptions;\n const locationOrigin = window.location.origin;\n const pathName = window.location.pathname;\n let ui_locales = 'de';\n if (pathName.includes('-de') || locationOrigin.includes('-ch-') || locationOrigin.includes('.ch')) {\n ui_locales = 'de-CH';\n }\n if (pathName.includes('-en')) {\n ui_locales = 'en';\n }\n if (pathName.includes('-fr')) {\n ui_locales = 'fr';\n }\n const loginRequest = {\n scopes: b2COptions.Scopes,\n extraQueryParameters: {\n ui_locales: ui_locales,\n },\n };\n\n await _app.loginRedirect(loginRequest);\n};\n\n/**\n * Authorization redirect callback. This is called after the user has interacted with the login dialog.\n * @param {*} error An error has occurred and must be handled.\n * @param {*} response The response containing tokens.\n */\nconst authRedirectCallBack = async (error, response) => {\n const b2COptions = (await _config).b2COptions;\n // Error handling\n if (error) {\n // Check for forgot password error\n if (error.errorMessage.indexOf('AADB2C90118') > -1) {\n try {\n const azureAdOptions = (await _config).azureAdOptions;\n // Password reset policy/authority\n _app.authority = `${azureAdOptions.instance}/tfp/${azureAdOptions.domain}/${b2COptions.passwordReset}`;\n await login();\n } catch (err) {\n console.error(err);\n }\n }\n } else {\n // We need to reject id tokens that were not issued with the default sign-in policy.\n if (response.tokenType === 'id_token' && response.idToken.claims['tfp'] !== b2COptions.signUpAndSignIn) {\n _app.logout();\n }\n }\n};\n","import { getToken } from './AuthHelper';\nimport { _config } from '../OnlineApp';\nimport I18n from './Localization';\n\n/**\n * Custom error class for HTTP errors.\n */\nexport class HttpError extends Error {\n constructor(status, message) {\n super(message);\n this.status = status;\n console.error(`HTTP Request (${status}): \"${message}\"`);\n }\n status = -1;\n}\n\n/**\n * Fetches the API for a simple string response.\n * @param {string} relativePath The relative path to the endpoint to query.\n * @param {signal} abortSignal An abort signal to cancel the request.\n */\nexport const fetchApiString = (relativePath, abortSignal) => {\n return fetchApi(relativePath, 'GET', null, abortSignal).then((response) => response.text());\n};\n\n/**\n * Deletes an object from the api.\n *\n * @template T\n * @param {string} relativePath The relative path to the endpoint to query.\n * @param {signal} abortSignal An abort signal to cancel the request.\n */\nexport const deleteFromApi = async (relativePath, abortSignal) => {\n return fetchApi(relativePath, 'DELETE', undefined, abortSignal).then(async (response) => {\n if (response.ok) {\n return response.json();\n }\n throw new HttpError(response.status, response.text());\n });\n};\n\n/**\n * Fetches the API for a JSON object.\n * @param {string} relativePath The relative path to the endpoint to query.\n * @param {signal} abortSignal An abort signal to cancel the request.\n */\nexport const fetchApiObject = (relativePath, abortSignal) => {\n return fetchApi(relativePath, 'GET', null, abortSignal).then((response) => response.json());\n};\n\n/**\n * Posts a request to the backend API.\n * @param {string} relativePath The relative path to the endpoint to query.\n * @param {any} body The object to put in the body of the request\n * @param {signal} abortSignal An abort signal to cancel the request.\n */\nexport const postToApi = (relativePath, body, abortSignal) => {\n return fetchApi(relativePath, 'POST', JSON.stringify(body), abortSignal).then((response) => {\n if (response.ok) {\n return response.json();\n }\n throw new HttpError(response.status, response.text());\n });\n};\n\n/**\n * Posts a put request to the backend API.\n * @param {string} relativePath The relative path to the endpoint to query.\n * @param {any} body The object to put in the body of the request\n * @param {signal} abortSignal An abort signal to cancel the request.\n */\nexport const putToApi = (relativePath, body, abortSignal) => {\n return fetchApi(relativePath, 'PUT', JSON.stringify(body), abortSignal).then((response) => {\n if (response.ok) {\n return response.json();\n }\n throw new HttpError(response.status, response.text());\n });\n};\n/**\n * Posts a request to the backend API.\n * @param {string} relativePath The relative path to the endpoint to query.\n * @param {any} body The object to put in the body of the request\n * @param {signal} abortSignal An abort signal to cancel the request.\n */\nexport const postToApiBlob = async (relativePath, body, fileName, abortSignal) => {\n return fetchApi(relativePath, 'POST', body, abortSignal)\n .then((response) => response.blob())\n .then((blob) => {\n const url = window.URL.createObjectURL(blob);\n const a = document.createElement('a');\n a.href = url;\n a.download = fileName;\n document.body.appendChild(a);\n a.click();\n a.remove();\n });\n};\n\n/**\n * Calls the backend API.\n * @param {string} relativePath The relative path to the endpoint to query.\n * @param {string} method The HTTP verb to use.\n * @param {any} body The object to put in the body of the request.\n * @param {signal} abortSignal An abort signal to cancel the request.\n */\nconst fetchApi = async (relativePath, method, body, abortSignal) => {\n const apiConfig = (await _config).apiOptions;\n return fetchWithHeader(`${apiConfig.baseUrl}/${relativePath}`, method, [apiConfig.scope], body, abortSignal);\n};\n\n/**\n * Fetches the API with required default headers.\n * @param {string} relativePath The relative path to the endpoint to query.\n * @param {string} method The HTTP verb to use.\n * @param {string[]} scopes The scopes to request for authorization.\n * @param {any} body The object to put in the body of the request.\n * @param {signal} abortSignal An abort signal to cancel the request.\n */\nconst fetchWithHeader = async (url, method, scopes, body, abortSignal) => {\n const token = await getToken(scopes);\n return fetch(url, {\n method,\n withCredentials: true,\n headers: {\n 'Time-Offset': new Date().getTimezoneOffset() * -1,\n Authorization: `Bearer ${token}`,\n 'Content-Type': 'application/json',\n 'Accept-Language': I18n.getInstance().i18nInstance?.language ? I18n.getInstance().i18nInstance.language : 'de-de',\n },\n signal: abortSignal,\n body,\n }).catch((error) => {\n throw error;\n });\n};\n","/**\n * expects a datetime string and returns a formatted date string.\n */\nexport const toFormattedDate = (locale, dateTimeString) => {\n const date = new Date(dateTimeString);\n const options = {\n day: '2-digit',\n month: '2-digit',\n year: 'numeric'\n };\n return date.toLocaleDateString(locale, options);\n};\n/**\n * expects a datetime string and returns a formatted date and time string.\n */\nexport const toFormattedDateTime = (locale, dateTimeString) => {\n const date = new Date(dateTimeString);\n const options = {\n day: '2-digit',\n month: '2-digit',\n year: 'numeric',\n hour: '2-digit',\n minute: '2-digit'\n };\n return date.toLocaleString(locale, options);\n};\n/**\n * expects a datetime string and returns a formatted date and time string.\n */\nexport const toCustomFormattedDateTime = (dateTimeString) => {\n const date = new Date(dateTimeString);\n const day = date.getDate();\n const month = date.getMonth() + 1;\n const year = date.getFullYear();\n const hours = date.getHours();\n const minutes = date.getMinutes();\n return `${('0' + day).slice(-2)}.${('0' + month).slice(-2)}.${year} - ${('0' + hours).slice(-2)}:${('0' + minutes).slice(-2)} Uhr`;\n};\n","import React from 'react';\nimport styled from 'styled-components/macro';\nimport { PrimaryButton, getTheme, Label } from 'office-ui-fabric-react';\nimport I18n from '../helper/Localization';\n\nconst CurrentPageDisplay = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 2px;\n border: 1px solid ${(props) => props.borderColor};\n min-height: 25px;\n max-height: 25px;\n min-width: 30px;\n max-width: 30px;\n margin: 0 10px;\n`;\n\nconst TableControls = styled.div`\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n margin: 10px 60px 0 60px;\n @media only screen and (max-width: 1400px) {\n margin: 10px 20px 0 20px;\n }\n`;\n\n/**\n * Basic controls for paged table.\n */\nexport const PaginationControls = (props) => {\n const theme = getTheme();\n\n /**\n * Styles for the page control button.\n */\n const pageControlButtonStyles = {\n root: {\n backgroundColor: theme.palette.neutralPrimary,\n border: 'unset',\n borderRadius: '2px',\n height: 25,\n minWidth: 30,\n padding: 0,\n margin: '0 10px',\n },\n rootHovered: {\n backgroundColor: 'none',\n border: 'unset',\n },\n rootPressed: {\n backgroundColor: 'none',\n border: 'unset',\n },\n rootFocused: {\n border: 'unset',\n outline: 0,\n },\n };\n\n /**\n * Styles for the table control button.\n */\n const tableControlButtonStyles = {\n root: {\n backgroundColor: theme.palette.neutralPrimary,\n border: 'unset',\n borderRadius: '2px',\n height: 25,\n width: 75,\n minWidth: 0,\n margin: '0 10px',\n },\n rootHovered: {\n backgroundColor: 'none',\n border: 'unset',\n outline: 0,\n },\n rootPressed: {\n backgroundColor: 'none',\n border: 'unset',\n outline: 0,\n },\n rootFocused: {\n border: 'unset',\n outline: 0,\n },\n };\n return (\n \n \n \n {props.currentPage}\n \n \n = props.maxPages}\n styles={tableControlButtonStyles}\n text={I18n.get().t('TableControls_PageForward')}\n onClick={props.navigateForward}\n />\n \n );\n};\n","import React from 'react';\nimport styled from 'styled-components/macro';\nimport { Spinner, SpinnerSize } from 'office-ui-fabric-react/lib/Spinner';\n\nconst BusySpinnerContainer = styled.div`\n display: flex;\n`;\n\n/**\n * Basic busy spinner component.\n */\nexport const BusySpinner = (props) => {\n return (\n <>\n {props.isBusy ? (\n \n \n \n ) : null}\n \n );\n};\n","import React from 'react';\nimport styled from 'styled-components/macro';\nimport { BusySpinner } from './busyIndicators/BusySpinner';\nimport { SpinnerSize } from 'office-ui-fabric-react/lib/Spinner';\nimport { TextField, IconButton } from 'office-ui-fabric-react';\n\nconst SearchBoxWrapper = styled.div`\n display: flex;\n flex: 1;\n align-items: center;\n position: relative;\n`;\n\nconst SearchBoxBusyWrapper = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n position: absolute;\n left: 10px;\n z-index: 1;\n`;\n\n/**\n * Custom search box component.\n */\nexport const CustomSearchBox = (props) => {\n /**\n * Styles of the search box.\n */\n const searchBoxStyles = {\n root: {\n width: props.width,\n },\n fieldGroup: {\n maxHeight: '24px',\n height: '24px',\n borderRadius: '2px',\n padding: '1px 0',\n },\n };\n\n /**\n * Icon props for the search button.\n */\n const searchButtonIcon = {\n iconName: 'Search',\n };\n\n /**\n * Styles for the search button.\n */\n const searchButtonStyles = {\n root: {\n position: 'absolute',\n right: 1,\n height: 21,\n width: 30,\n fontSize: 11,\n },\n rootHovered: {\n backgroundColor: '#F7F7F7',\n },\n rootPressed: {\n backgroundColor: '#F7F7F7',\n color: 'none',\n },\n rootFocused: {\n outline: 0,\n },\n };\n\n return (\n \n \n \n \n {\n props.updateSearchValue(newValue);\n if (props.updateLastDataUpdate) {\n props.updateLastDataUpdate(new Date());\n }\n }}\n onKeyDown={(e) => {\n if (e.key === 'Enter') {\n props.applySearch();\n }\n }}\n />\n \n \n );\n};\n","import React, { useState, useEffect, useRef } from 'react';\nimport styled from 'styled-components/macro';\nimport I18n from '../../../helper/Localization';\nimport { PrimaryButton, getTheme } from 'office-ui-fabric-react';\nimport { Colors } from '../../../styles/Globals';\nimport Table from '../../Table';\nimport { postToApi } from '../../../helper/ApiHelper';\nimport { toFormattedDate } from '../../../helper/DateFormatHelper';\nimport { PaginationControls } from '../../PaginationControls';\nimport { BusySpinnerOverlay } from '../../busyIndicators/BusySpinnerOverlay';\nimport { CustomSearchBox } from '../../CustomSearchBox';\n\n/**\n * styled components\n */\nconst ActionWrapper = styled.div`\n display: flex;\n flex-direction: row;\n justify-content: flex-end;\n align-items: center;\n`;\n\nconst DebtorSearchContainer = styled.div`\n display: flex;\n flex-direction: column;\n width: 100%;\n background-color: ${Colors.backgroundGray};\n padding: 20px;\n border: 1px solid var(--unnamed-color-f0f0f0);\n border-radius: 4px;\n overflow: hidden;\n`;\n\nconst DebtorSearchTable = styled.div`\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n overflow: auto;\n`;\n\nconst Text = styled.p`\n color: var(--unnamed-color-000000);\n text-align: left;\n margin: 0px;\n font: Bold 12px/15px NHaasGroteskTXW01-75Bd;\n letter-spacing: 0px;\n color: #000000;\n opacity: 1;\n`;\n\nconst TableWrapper = styled.div`\n display: flex;\n flex: 1;\n overflow: auto;\n position: relative;\n`;\n\nconst EmptyPageMassage = styled.div`\n display: flex;\n flex: 1;\n justify-content: center;\n align-items: center;\n`;\n\n/**\n * Debtor search component\n */\nconst DebtorSearch = (props) => {\n /** Request abort controller. */\n const abortController = new AbortController();\n\n const [searchValue, setSearchValue] = useState('');\n\n /**\n * State of the currently fetched debtors.\n */\n const [debtors, setDebtors] = useState([]);\n\n /**\n * State of the currently filtered debtors.\n */\n const [filteredDebtors, setFilteredDebtors] = useState([]);\n\n /**\n * The maximum number of pages of the current fetched data.\n */\n const [maxPages, setMaxPages] = useState(1);\n\n /**\n * The current selected data page.\n */\n const [currentPage, setCurrentPage] = useState(1);\n\n /**\n * visible state for the busy indicator\n */\n const [isBusy, setIsBusy] = useState(false);\n\n /**\n * Reference to the previous search value to compare with the current search value.\n */\n const previousSearchValue = useRef('');\n\n /**\n * State that is used to trigger the search and therefore a new fetch.\n */\n const [searchToggle, setSearchToggle] = useState(false);\n\n /**\n * Handle the filter of already assigned debtors.\n */\n useEffect(() => {\n if (props.assignedDebtors && props.assignedDebtors.length > 0) {\n // Create shallow copy of all debtors.\n let tmpDebtors = [...debtors];\n // Filter out the already assigned debtors.\n tmpDebtors = tmpDebtors.filter((deb) => !props.assignedDebtors.some((assDebtor) => assDebtor.id === deb.id));\n // Set the state of the filtered debtors.\n setFilteredDebtors([...tmpDebtors]);\n } else {\n // If no debtors are assigned yet, the filtered are the same.\n setFilteredDebtors([...debtors]);\n }\n }, [props.assignedDebtors, debtors]);\n\n /**\n * Mimics a ComponentDidMount lifecycle method\n */\n useEffect(() => {\n const fetchData = async () => {\n try {\n setIsBusy(true);\n const defaultReqBody = {\n itemsPerPage: 25,\n sortDirection: 1,\n sortPropertyName: 'CompanyName',\n };\n let reqBody;\n if (searchValue && searchValue !== '') {\n if (searchValue !== previousSearchValue.current) {\n reqBody = {\n filterText: searchValue.toLowerCase(),\n pageToDeliver: 1,\n ...defaultReqBody,\n };\n } else {\n reqBody = {\n filterText: searchValue.toLowerCase(),\n pageToDeliver: currentPage,\n ...defaultReqBody,\n };\n }\n } else {\n reqBody = {\n pageToDeliver: currentPage,\n ...defaultReqBody,\n };\n }\n const data = await postToApi('v1/Debtor/Paged', reqBody, abortController.signal);\n if (data) {\n const formattedData = data.results.map((debtor) => {\n const result = {\n id: debtor.id,\n identifier: debtor.identifier,\n companyName: debtor.companyName ? debtor.companyName : '',\n address: `${debtor.street ? debtor.street : ''} ${debtor.houseNumber ? debtor.houseNumber : ''} ${debtor.postalCode ? debtor.postalCode : ''} ${\n debtor.city ? debtor.city : ''\n }`\n };\n return result;\n });\n setDebtors(formattedData);\n }\n setCurrentPage(data.page);\n setMaxPages(data.pagesAvailable);\n } catch (error) {\n setMaxPages(1);\n setCurrentPage(1);\n setDebtors([]);\n } finally {\n previousSearchValue.current = searchValue;\n setIsBusy(false);\n }\n };\n fetchData();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [currentPage, setCurrentPage, searchToggle, setSearchToggle]);\n\n /**\n * fluent ui theme\n */\n const theme = getTheme();\n /**\n * fluent ui\n */\n const buttonStyles = {\n icon: {\n color: 'white',\n fontSize: 10,\n },\n root: {\n border: 0,\n fontSize: 10,\n borderRadius: '2px',\n boxShadow: '1px 2px 3px #0000003C',\n backgroundColor: theme.palette.themePrimary,\n width: 22,\n height: 22,\n marginRight: 10,\n },\n rootHovered: {\n backgroundColor: 'none',\n },\n\n rootPressed: {\n backgroundColor: 'none',\n },\n };\n\n const columns = [\n {\n Header: '',\n accessor: 'identifier',\n width: 80,\n },\n {\n Header: '',\n accessor: 'companyName',\n width: 140,\n },\n {\n Header: '',\n accessor: 'address',\n width: 140,\n },\n {\n Header: '',\n accessor: 'select',\n width: 60,\n Cell: (table) => {\n const debtor = table.row.original;\n return (\n \n {\n event.preventDefault();\n props.selectDebtor(debtor);\n }}\n />\n \n );\n },\n },\n ];\n\n return (\n \n {I18n.get().t('Debtor_Search_Title')}\n
    \n setSearchValue(newValue)}\n applySearch={() => {\n setSearchToggle(!searchToggle);\n setCurrentPage(1);\n }}\n />\n
    \n \n \n \n {filteredDebtors.length <= 0 && {I18n.get().t('DebtorTable_EmptyPageMessage')}}\n {filteredDebtors.length >= 1 && }\n \n setCurrentPage(currentPage - 1)}\n navigateToBegin={() => setCurrentPage(1)}\n navigateToEnd={() => setCurrentPage(maxPages)}\n navigateForward={() => setCurrentPage(currentPage + 1)}\n />\n \n \n );\n};\n\nexport default DebtorSearch;\n","import React from 'react';\nimport I18n from '../../../helper/Localization';\nimport styled from 'styled-components/macro';\nimport { IconButton, getTheme } from 'office-ui-fabric-react';\nimport Table from '../../Table';\n\n/**\n * styled components\n */\nconst ActionWrapper = styled.div`\n display: flex;\n flex-direction: row;\n justify-content: flex-end;\n align-items: center;\n`;\n\nconst ContentContainer = styled.div`\n display: flex;\n flex: 1;\n\n flex-direction: column;\n`;\n\nconst DebtorTable = styled.div`\n height: 230px;\n margin-right: 20px;\n`;\n\nconst Text = styled.p`\n color: var(--unnamed-color-000000);\n text-align: left;\n margin: 0px;\n font: Bold 12px/15px NHaasGroteskTXW01-75Bd;\n letter-spacing: 0px;\n color: #000000;\n opacity: 1;\n`;\n\n/**\n * Debtor list component\n */\nconst DebtorList = (props) => {\n /**\n * fluent ui theme\n */\n const theme = getTheme();\n /**\n * fluent ui\n */\n const buttonStyles = {\n icon: {\n color: 'white',\n fontSize: 10,\n },\n root: {\n border: 0,\n borderRadius: '2px',\n boxShadow: '1px 2px 3px #0000003C',\n backgroundColor: theme.palette.themePrimary,\n width: 22,\n height: 22,\n marginRight: 10,\n },\n rootHovered: {\n backgroundColor: 'none',\n },\n\n rootPressed: {\n backgroundColor: 'none',\n },\n };\n\n const columns = [\n {\n Header: I18n.get().t('Debtor_List_ColumnHeader_Number'),\n accessor: 'identifier',\n width: 70,\n },\n {\n Header: I18n.get().t('Debtor_List_ColumnHeader_CompanyName'),\n accessor: 'companyName',\n width: 120,\n },\n {\n Header: I18n.get().t('Debtor_List_ColumnHeader_Address'),\n accessor: 'address',\n width: 120,\n },\n {\n Header: I18n.get().t('Debtor_List_ColumnHeader_Actions'),\n accessor: 'interactions',\n width: 20,\n Cell: (table) => {\n const debtor = table.row.original;\n return (\n \n props.deselectDebtor(debtor)}\n />\n \n );\n },\n },\n ];\n\n return (\n \n {I18n.get().t('Debtor_List_Title')}\n \n
    \n \n \n );\n};\n\nexport default DebtorList;\n","import { DefaultButton } from 'office-ui-fabric-react';\nimport React from 'react';\nimport I18n from '../../../helper/Localization';\n\n/**\n * The button to open the end customer dialog.\n */\nexport const OpenEndCustomerDialogButton = (props) => {\n /**\n * Styles of the button.\n */\n const buttonStyles = {\n root: {\n minWidth: '100%',\n },\n };\n\n return ;\n};\n","import React from 'react';\nimport styled from 'styled-components/macro';\nimport { Colors } from '../../../styles/Globals';\nimport { IconButton } from 'office-ui-fabric-react';\n\nconst TagContainer = styled.div`\n display: flex;\n align-items: center;\n width: max-content;\n position: relative;\n background-color: ${(props) => props.backgroundColor};\n border-radius: 4px;\n margin: 5px;\n`;\n\nconst TagTextWrapper = styled.div`\n font-size: 12px;\n color: ${Colors.white};\n padding: 3px 10px;\n`;\n\n/**\n * Tag to display a single end customer number.\n */\nexport const EndCustomerNumberTag = (props) => {\n /**\n * Styles of the delete button.\n */\n const deleteButtonStyles = {\n root: {\n minHeight: 20,\n maxHeight: 20,\n minWidth: 20,\n maxWidth: 20,\n marginRight: 6,\n },\n icon: {\n fontSize: 10,\n color: Colors.white,\n },\n rootHovered: {\n backgroundColor: 'none',\n outline: 0,\n },\n rootPressed: {\n backgroundColor: 'none',\n outline: 0,\n },\n rootFocused: {\n backgroundColor: 'none',\n outline: 0,\n },\n };\n\n /**\n * Props of the delete icon.\n */\n const deleteIconProps = {\n iconName: 'ChromeClose',\n };\n\n return (\n \n {props.endCustomerNumber}\n \n \n );\n};\n","import React, { useState } from 'react';\nimport styled from 'styled-components/macro';\nimport { Panel, PanelType } from 'office-ui-fabric-react/lib/Panel';\nimport I18n from '../../../helper/Localization';\nimport { TextField } from 'office-ui-fabric-react/lib/TextField';\nimport { PrimaryButton, DefaultButton, getTheme } from 'office-ui-fabric-react';\nimport { Colors } from '../../../styles/Globals';\nimport { EndCustomerNumberTag } from './EndCustomerNumberTag';\n\nconst PanelBody = styled.div`\n display: flex;\n flex-direction: column;\n padding: 0 24px;\n`;\n\nconst InfoTextWrapper = styled.div`\n margin: 20px 0 10px 0;\n`;\n\nconst AddCustomerNumberContainer = styled.div`\n display: flex;\n justify-content: center;\n align-items: space-between;\n`;\n\nconst PanelFooter = styled.div`\n display: flex;\n justify-content: flex-end;\n padding: 10px 20px;\n`;\n\nconst TagContainer = styled.div`\n display: flex;\n flex: 1;\n flex-wrap: wrap;\n margin-top: 25px;\n`;\n\n/**\n * Dialog to edit and review the end customer numbers of a user.\n */\nexport const EndCustomerDialog = (props) => {\n const theme = getTheme();\n\n /**\n * The current tag value that the user entered in the input field.\n */\n const [currentTagValue, setCurrentTagValue] = useState('');\n\n /**\n * Props of the add icon.\n */\n const addIconProps = {\n iconName: 'Add',\n };\n\n /**\n * Styles of the add button.\n */\n const addButtonStyles = {\n root: {\n maxWidth: 23,\n minWidth: 23,\n maxHeight: 23,\n marginLeft: 10,\n },\n icon: {\n color: 'white',\n fontSize: 14,\n fontWeight: 'bolder',\n },\n };\n\n /**\n * Styles of the cancel button.\n */\n const cancleButtonStyles = {\n root: {\n border: 'unset',\n fontSize: '10px',\n marginLeft: '15px',\n },\n };\n\n /**\n * Styles of the customer number input field.\n */\n const textFieldStyles = {\n root: {\n width: '100%',\n fontSize: 10,\n },\n field: {\n height: 23,\n paddingLeft: 20,\n },\n fieldGroup: {\n height: 24,\n border: `0.5px solid ${Colors.borderGray};`,\n },\n errorMessage: {\n fontSize: 10,\n },\n };\n\n /**\n * Callback to dismiss the panel.\n */\n const onDismiss = () => {\n setCurrentTagValue('');\n props.closeCallback();\n };\n\n /**\n * Add a new end customer number to the list of customer numbers.\n */\n const addNewEndCustomerNumber = () => {\n if (currentTagValue && currentTagValue !== '') {\n // Create shallow copy of current end customer numbers.\n const tmpEndCustomerNumbers = [...props.endCustomerNumbers];\n // Add the new end customer number.\n tmpEndCustomerNumbers.push(currentTagValue);\n // Update the list state.\n props.setEndCustomerNumbers([...tmpEndCustomerNumbers]);\n // Reset the user tag input.\n setCurrentTagValue('');\n }\n };\n\n /**\n * Remove an end customer number by it's index.\n */\n const removeEndCustomerNumber = (index) => {\n // Create shallow copy of the current end customer numbers.\n const tmpEndCustomerNumbers = [...props.endCustomerNumbers];\n // Remove the item.\n tmpEndCustomerNumbers.splice(index, 1);\n // Update the list state.\n props.setEndCustomerNumbers([...tmpEndCustomerNumbers]);\n };\n\n /**\n * Body of the panel.\n */\n const onRenderBody = () => (\n \n {I18n.get().t('EndCustomerDialog_InfoText')}\n \n {\n if (newValue || newValue === '') {\n setCurrentTagValue(newValue);\n }\n }}\n />\n \n \n \n {props.endCustomerNumbers.map((endCustomerNumber, i) => (\n removeEndCustomerNumber(i)}\n />\n ))}\n \n \n );\n\n /**\n * Footer of the panel.\n */\n const onRenderFooter = () => (\n \n \n \n );\n\n return (\n {\n // NOTE: This is needed to prevent the panel from closing when the user interacts with the dialog.\n }}\n isOpen={props.isOpen}\n />\n );\n};\n","import React, { useCallback, useMemo, useState } from 'react';\nimport { MessageBar, MessageBarType } from 'office-ui-fabric-react';\nimport { TextField } from 'office-ui-fabric-react/lib/TextField';\nimport { PrimaryButton, DefaultButton } from 'office-ui-fabric-react/lib/Button';\nimport DebtorSearch from './DebtorSearch';\nimport DebtorList from './DebtorList';\nimport styled from 'styled-components/macro';\nimport I18n from '../../../helper/Localization';\nimport { postToApi } from '../../../helper/ApiHelper';\nimport { BasicDialog } from '../BasicDialog';\nimport { Panel, PanelType } from 'office-ui-fabric-react/lib/Panel';\nimport { Colors } from '../../../styles/Globals';\nimport { BusySpinner } from '../../busyIndicators/BusySpinner';\nimport { validateEmail } from '../../../helper/ValidationHelper';\nimport { OpenEndCustomerDialogButton } from '../endCustomerDialog/OpenEndCustomerDialogButton';\nimport { EndCustomerDialog } from '../endCustomerDialog/EndCustomerDialog';\nimport { useStoreState } from 'easy-peasy';\nimport { Dropdown } from '@fluentui/react/lib/Dropdown';\nimport { Icon } from '@fluentui/react/lib/Icon';\nimport { getTheme } from 'office-ui-fabric-react';\n\n/**\n * styled components\n */\nconst TopContainer = styled.div`\n display: flex;\n flex-direction: row;\n height: 300px;\n justify-content: space-between;\n`;\n\nconst BottomContainer = styled.div`\n margin-top: auto;\n display: flex;\n flex: 1;\n overflow: hidden;\n height: calc(100% - 335px);\n`;\n\nconst UserInputContainer = styled.div`\n display: flex;\n flex-direction: column;\n width: 40%;\n margin-right: 30px;\n`;\n\nconst InputElement = styled.div`\n height: 50px;\n`;\n\nconst FlexRow = styled.div`\n display: flex;\n flex: 1;\n justify-content: flex-end;\n`;\n\nconst UserInput = styled.div`\n border: 1px solid var(--unnamed-color-f0f0f0);\n padding: 20px 20px 0px 20px;\n background-color: ${Colors.backgroundGray};\n border-radius: 4px;\n display: flex;\n flex-direction: column;\n height: fit-content;\n margin: 0px;\n`;\n\nconst UserInputHeadline = styled.p`\n color: var(--unnamed-color-000000);\n text-align: left;\n margin-bottom: 10px;\n font: Bold 12px/15px NHaasGroteskTXW01-75Bd;\n letter-spacing: 0px;\n color: #000000;\n opacity: 1;\n`;\n\nconst PanelBody = styled.div`\n display: flex;\n flex-direction: column;\n padding: 0 24px;\n height: calc(100vh - 110px);\n @media only screen and (max-width: 1400px) {\n height: calc(100vh - 135px);\n }\n`;\n\nconst PanelFooter = styled.div`\n display: flex;\n padding: 10px 20px;\n`;\n\nconst EndCustomerButtonWrapper = styled.div`\n display: flex;\n margin-bottom: auto;\n padding: 15px 0;\n`;\n\n/**\n * The dialog to invite users\n */\nconst InviteUserDialog = (props) => {\n /**\n * Whether the CH features are enabled or not.\n */\n const enableChFeatures = useStoreState((state) => state.ui.enableChFeatures);\n\n /**\n * Disabled state of the submit button.\n */\n const [submitDisabled, setSubmitDisabled] = useState(false);\n\n /**\n * User notification message for the MessageBar.\n */\n const [userMessage, setUserMessage] = useState('');\n\n /**\n * visible state for the busy indicator\n */\n const [isBusy, setIsBusy] = useState(false);\n\n /**\n * A list of all currently assigned debtors.\n */\n const [assignedDebtors, setAssignedDebtors] = useState([]);\n\n /**\n * Email property directly wired to the email input.\n */\n const [email, setEmail] = useState('');\n\n /**\n * CompanyName property directly wired to the CompanyName input.\n */\n const [companyName, setCompanyName] = useState('');\n\n /**\n * Department property directly wired to the Department input.\n */\n const [department, setDepartment] = useState('');\n\n /**\n * The language of the user (only relevant for ch).\n */\n const [userLanguage, setUserLanguage] = useState('de');\n\n /**\n * Used by fluent ui for different message bar themes based on this type.\n */\n const [userMessageType, setUserMessageType] = useState(MessageBarType.info);\n\n /**\n * Whether the abort dialog is open or not.\n */\n const [isAbortDialogOpen, setIsAbortDialogOpen] = useState(false);\n\n /**\n * Whether the dialog to edit end customer numbers is open or not.\n */\n const [isEndCustomerDialogOpen, setIsEndCustomerDialogOpen] = useState(false);\n\n /**\n * State of the current assigned end customer numbers for the user.\n */\n const [endCustomerNumbers, setEndCustomerNumbers] = useState([]);\n\n /**\n * fluent ui styles and properties\n */\n const inputStyles = {\n root: {\n width: '100%',\n fontSize: 10,\n },\n field: {\n height: 23,\n paddingLeft: 20,\n },\n fieldGroup: {\n height: 24,\n border: `0.5px solid ${Colors.borderGray};`,\n },\n errorMessage: {\n fontSize: 10,\n },\n };\n\n const messageBarStyles = {\n root: {\n width: '100%',\n },\n icon: {\n color: Colors.errorRed,\n },\n };\n\n const cancleButtonStyles = {\n root: {\n border: 'unset',\n fontSize: '10px',\n marginLeft: '15px',\n },\n };\n\n const inviteButtonStyles = {\n root: {\n fontSize: '10px',\n marginLeft: '15px',\n },\n };\n\n /** Access global theme. */\n const theme = getTheme();\n\n /** The styled language icon. */\n const languageIcon = ;\n\n /** Render func for the dropdown placeholder. */\n const onRenderPlaceholder = (props) => (\n
    \n {languageIcon}\n {props.placeholder}\n
    \n );\n\n /** Render func for the title. */\n const onRenderTitle = (options) => {\n const option = options[0];\n return (\n
    \n {languageIcon}\n {option.text}\n
    \n );\n };\n\n /** The available language options. */\n const dropdownOptions = [\n { key: 'en', text: I18n.get().t('LanguageSelector_Option_English'), data: { icon: 'Globe' } },\n { key: 'de', text: I18n.get().t('LanguageSelector_Option_German'), data: { icon: 'Globe' } },\n { key: 'fr', text: I18n.get().t('LanguageSelector_Option_French'), data: { icon: 'Globe' } },\n ];\n\n /** Styles for the language selection dropdown. */\n const dropdownStyles = {\n root: {\n minWidth: 120,\n },\n title: {\n border: 'none',\n ':focus::after': {\n border: 'none',\n },\n fontSize: 12,\n },\n dropdown: {\n ':focus::after': {\n border: 'none',\n },\n },\n };\n\n /**\n * Reset the states and close the dialog.\n */\n const closePanel = () => {\n setIsAbortDialogOpen(false);\n setSubmitDisabled(false);\n setUserMessage('');\n setIsBusy(false);\n setAssignedDebtors([]);\n setEmail('');\n setCompanyName('');\n setDepartment('');\n setUserLanguage('');\n setUserMessageType(MessageBarType.info);\n setEndCustomerNumbers([]);\n props.toggleHideDialog();\n };\n\n /**\n * Open the abort dialog when the input states are not default. If abort dialog must not be open, trigger close.\n */\n const openAbortDialog = () => {\n if (userMessage.length !== 0 || assignedDebtors.length !== 0 || email.length !== 0 || companyName.length !== 0 || department.length !== 0) {\n setIsAbortDialogOpen(true);\n } else {\n closePanel();\n }\n };\n\n /**\n * Handles the deselection of a debtor in the assigned debtors list.\n * @param {object} target the targeted debtor.\n */\n const deselectDebtor = useCallback(\n (target) => {\n const updatedSelection = assignedDebtors.filter((debtor) => debtor.id !== target.id);\n setAssignedDebtors(updatedSelection);\n },\n [assignedDebtors]\n );\n\n /**\n * Handles the selection of a debtor in the debtors list.\n * @param {object} target The targeted debtor.\n */\n const selectDebtor = useCallback(\n (target) => {\n setAssignedDebtors([...assignedDebtors, target]);\n },\n [assignedDebtors]\n );\n\n /**\n * Form submit.\n */\n const submit = async () => {\n if (!validateForm()) {\n return;\n }\n const reqBody = {\n company: companyName,\n debtorIds: assignedDebtors.length > 0 ? assignedDebtors.map((debtor) => debtor.id) : [],\n endCustomerNumbers: endCustomerNumbers,\n department: department,\n email: email,\n isActive: true,\n lastLogin: new Date().toISOString(),\n transactionLanguageKey: enableChFeatures ? userLanguage : undefined,\n preferredLanguage: userLanguage === 'en' ? 1 : userLanguage === 'de' ? 2 : userLanguage === 'fr' ? 3 : 0,\n id: 0,\n };\n try {\n setSubmitDisabled(true);\n setIsBusy(true);\n await postToApi('v1.0/User', reqBody);\n setUserMessageType(MessageBarType.success);\n setUserMessage(I18n.get().t('Invite_User_SuccessMessage'));\n setTimeout(() => closePanel(), 2000);\n } catch (error) {\n if (error.status === 409) {\n setUserMessage(I18n.get().t('Invite_User_EmailExistsError'));\n setUserMessageType(MessageBarType.error);\n } else {\n setUserMessage(I18n.get().t('Invite_User_Error'));\n setUserMessageType(MessageBarType.error);\n console.error(error.text);\n }\n } finally {\n setSubmitDisabled(false);\n setIsBusy(false);\n }\n };\n\n /**\n * Validates if the input fields contain valid data.\n */\n const validateForm = () => {\n setUserMessage('');\n if (!validateEmail(email)) {\n setUserMessage(I18n.get().t('Invite_User_InsertEmail'));\n setUserMessageType(MessageBarType.error);\n return false;\n }\n if (validateInputNotEmpty(companyName) !== '') {\n setUserMessage(I18n.get().t('Invite_User_InsertCompany'));\n setUserMessageType(MessageBarType.error);\n return false;\n }\n return true;\n };\n\n /**\n * Regex email validation.\n * Returns a error text to fluent ui.\n * @param value The data that requires validation.\n */\n const emailOnGetError = (value) => {\n return validateEmail(value) ? '' : I18n.get().t('Invite_User_InvalidEmail');\n };\n\n /**\n * Validates whether or not a input is empty.\n * Returns a error text to fluent ui.\n * @param value The data that requires validation\n */\n const validateInputNotEmpty = (value) => {\n return value === '' ? I18n.get().t('Invite_User_InvalidInput') : '';\n };\n\n /**\n * In memory list of the assigned debtors.\n */\n const inMemoryAssignedDedbtorList = useMemo(() => , [assignedDebtors, deselectDebtor]);\n\n /**\n * Callback to close the end customer panel.\n */\n const closeEndCustomerPanel = () => {\n setIsEndCustomerDialogOpen(false);\n };\n\n /**\n * In memory list of all possible debtors.\n */\n const inMemorySearchableDebtorsList = useMemo(() => , [assignedDebtors, selectDebtor]);\n\n /**\n * Body of the article timeline panel\n */\n const onRenderBody = () => (\n \n \n \n {I18n.get().t('Invite_User_Input_Title')}\n \n \n setEmail(e.target.value)}\n />\n \n \n setCompanyName(e.target.value)}\n />\n \n \n setDepartment(e.target.value)}\n />\n \n {enableChFeatures && (\n \n setUserLanguage(newValue.key)}\n />\n \n )}\n \n \n setIsEndCustomerDialogOpen(true)} />\n \n \n {inMemoryAssignedDedbtorList}\n \n {inMemorySearchableDebtorsList}\n \n );\n\n /**\n * Footer content of the panel.\n */\n const onRenderFooterContent = () => (\n \n {userMessage !== '' && (\n \n {userMessage}\n \n )}\n\n \n \n \n \n \n \n );\n\n return (\n <>\n \n {\n // NOTE: This is needed to prevent the panel from closing when the user interacts with the dialog.\n }}\n />\n
    \n \n setCurrentPage(currentPage - 1)}\n navigateToBegin={() => setCurrentPage(1)}\n navigateToEnd={() => setCurrentPage(maxPages)}\n navigateForward={() => setCurrentPage(currentPage + 1)}\n />\n \n );\n};\n","import React, { useEffect, useRef, useState } from 'react';\nimport styled from 'styled-components/macro';\nimport { Panel, PanelType } from 'office-ui-fabric-react/lib/Panel';\nimport I18n from '../../../helper/Localization';\nimport { PrimaryButton } from 'office-ui-fabric-react/lib/Button';\nimport { BasicDialog } from '../BasicDialog';\nimport { OfflineTestResultCard } from './OfflineTestResultCard';\nimport { OrderPositionTable } from './OrderPositionTable';\nimport { msalApp } from '../../../helper/AuthHelper';\nimport { postToApi } from '../../../helper/ApiHelper';\nimport { BusySpinnerOverlay } from '../../busyIndicators/BusySpinnerOverlay';\n\nconst PanelBody = styled.div`\n display: flex;\n flex-direction: column;\n padding: 30px 45px;\n height: calc(100vh - 150px);\n position: relative;\n @media only screen and (max-width: 1800px) {\n padding: 15px 25px;\n }\n`;\n\nconst PanelFooter = styled.div`\n display: flex;\n justify-content: flex-end;\n align-items: center;\n padding: 30px 45px;\n @media only screen and (max-width: 1800px) {\n padding: 15px 25px;\n }\n`;\n\nconst OrderPositionTableWrapper = styled.div`\n display: flex;\n flex: 1;\n height: calc(100vh - 410px);\n margin-top: 45px;\n @media only screen and (max-width: 1800px) {\n height: calc(100vh - 400px);\n }\n`;\n\n/**\n * Dialog component to connect existing offline test results to a corresponding order position.\n */\nexport const ConnectOfflineTestsDialog = (props) => {\n /**\n * Whether this component is busy or not.\n */\n const [isBusy, setIsBusy] = useState(false);\n\n /**\n * Whether the abort dialog is open or not.\n */\n const [isAbortDialogOpen, setIsAbortDialogOpen] = useState(false);\n\n /**\n * State of the current offline test results.\n */\n const [offlineTestResults, setOfflineTestResults] = useState([]);\n\n /**\n * State of the currently displayed offline test result number.\n */\n const [currentOfflineTestResultNumber, setCurrentOfflineTestResultNumber] = useState(0);\n\n /**\n * The currently selected order position id.\n */\n const [selectedOrderPositionId, setSelectedOrderPositionId] = useState(-1);\n\n /**\n * State of the mail address of the currently logged in user.\n */\n const [userMail, setUserMail] = useState('');\n\n /**\n * The name of the currently logged in user.\n */\n const [userName, setUserName] = useState('');\n\n /**\n * The initial state of the locally stored offline test results.\n */\n const storedOfflineTestResults = useRef([]);\n\n /**\n * The offset that is used to delete processed offline test results from local storage.\n */\n const deletionOffset = useRef(1);\n\n /**\n * Confirm callback for the abort dialog.\n */\n const [confirmCallback, setConfirmCallback] = useState(undefined);\n\n /**\n * State of the search value used for filtering.\n */\n const [searchValue, setSearchValue] = useState('');\n\n /**\n * Toggle to apply the current search value and fetch new data.\n */\n const [searchToggle, setSearchToggle] = useState(false);\n\n /**\n * Initially set the email of the current logged in user.\n */\n useEffect(() => {\n const getUser = async () => {\n const _msalApp = await msalApp();\n const userMail = _msalApp.getAccount().idToken.emails[0];\n setUserMail(userMail);\n const name = _msalApp.getAccount().name;\n setUserName(name);\n };\n getUser();\n }, []);\n\n /**\n * Determine the available offline test results to connect.\n */\n useEffect(() => {\n if (props.isOpen === true && userMail && userMail !== '') {\n // Get all available offline test results from local storage.\n const offlineTestResults = JSON.parse(localStorage.getItem('offlineTestResults'));\n if (offlineTestResults && offlineTestResults.length > 0) {\n // Filter the saved results for the current logged in user.\n storedOfflineTestResults.current = offlineTestResults.filter((offlineTestResult) => offlineTestResult.executorEmail === userMail);\n // Order the filtered offline test results by execution date.\n storedOfflineTestResults.current.sort((a, b) => {\n return new Date(a.dateExecuted) - new Date(b.dateExecuted);\n });\n if (storedOfflineTestResults.current.length > 0) {\n setCurrentOfflineTestResultNumber(1);\n }\n setOfflineTestResults(storedOfflineTestResults.current);\n } else {\n setCurrentOfflineTestResultNumber(0);\n setOfflineTestResults([]);\n }\n }\n }, [props.isOpen, userMail, setUserMail]);\n\n /**\n * Styles of the finish button.\n */\n const finishButtonStyles = {\n root: {\n fontSize: '10px',\n marginLeft: '15px',\n },\n };\n\n /**\n * Reset the states and close the dialog.\n */\n const closePanel = () => {\n setOfflineTestResults([]);\n setSelectedOrderPositionId(-1);\n setCurrentOfflineTestResultNumber(0);\n setIsAbortDialogOpen(false);\n setSearchValue('');\n storedOfflineTestResults.current = [];\n deletionOffset.current = 1;\n props.toggleHideDialog();\n };\n\n /**\n * Continue with the processing of the next offline test result.\n */\n const continueWithNextOfflineTestResult = () => {\n // Reset order position so the user need to choose again.\n setSelectedOrderPositionId(-1);\n if (currentOfflineTestResultNumber + 1 > offlineTestResults.length) {\n closePanel();\n } else {\n // Progress to the next offline test result;\n setCurrentOfflineTestResultNumber(currentOfflineTestResultNumber + 1);\n }\n };\n\n /**\n * Callback to delete the current offline test result.\n */\n const deleteCallback = () => {\n // Delete the current test result.\n const tmp = [...storedOfflineTestResults.current];\n tmp.splice(currentOfflineTestResultNumber - deletionOffset.current, 1);\n deletionOffset.current = deletionOffset.current + 1;\n storedOfflineTestResults.current = tmp;\n // Update the local storage.\n localStorage.setItem('offlineTestResults', JSON.stringify(storedOfflineTestResults.current));\n // Continue with the next offline test result to connect.\n continueWithNextOfflineTestResult();\n setIsAbortDialogOpen(false);\n };\n\n /**\n * Delete the current offline test result.\n */\n const deleteOfflineTestResult = () => {\n setConfirmCallback('delete');\n setIsAbortDialogOpen(true);\n };\n\n /**\n * Callback to connect the current offline test result.\n */\n const connectCallback = async () => {\n setIsBusy(true);\n // Build the test result based on the user selected order position.\n const newTestResult = {\n dateExecuted: offlineTestResults[currentOfflineTestResultNumber - 1].dateExecuted,\n measurementLeftWithoutProtection: offlineTestResults[currentOfflineTestResultNumber - 1].measurementLeftWithoutProtection,\n measurementLeftWithProtection: offlineTestResults[currentOfflineTestResultNumber - 1].measurementLeftWithProtection,\n measurementRightWithoutProtection: offlineTestResults[currentOfflineTestResultNumber - 1].measurementRightWithoutProtection,\n measurementRightWithProtection: offlineTestResults[currentOfflineTestResultNumber - 1].measurementRightWithProtection,\n insulationLeft: offlineTestResults[currentOfflineTestResultNumber - 1].insulationLeft,\n insulationRight: offlineTestResults[currentOfflineTestResultNumber - 1].insulationRight,\n isSuccessfulLeft: offlineTestResults[currentOfflineTestResultNumber - 1].isSuccessfulLeft,\n isSuccessfulRight: offlineTestResults[currentOfflineTestResultNumber - 1].isSuccessfulRight,\n orderPositionId: selectedOrderPositionId,\n testerName: userName,\n };\n try {\n // Save the connected test result.\n await postToApi('v1.0/TestResult', newTestResult);\n // Delete the current test result.\n const tmp = [...storedOfflineTestResults.current];\n tmp.splice(currentOfflineTestResultNumber - deletionOffset.current, 1);\n deletionOffset.current = deletionOffset.current + 1;\n storedOfflineTestResults.current = tmp;\n // Update the local storage.\n localStorage.setItem('offlineTestResults', JSON.stringify(storedOfflineTestResults.current));\n // Reset the search value.\n setSearchValue('');\n setSearchToggle(!searchToggle);\n } catch (error) {\n console.error(error);\n } finally {\n setIsBusy(false);\n }\n // Continue with the next offline test result to connect.\n continueWithNextOfflineTestResult();\n setIsAbortDialogOpen(false);\n };\n\n /**\n * Connect the current test result with the selected order position.\n */\n const connectOfflineTestResult = () => {\n setConfirmCallback('connect');\n setIsAbortDialogOpen(true);\n };\n\n /**\n * Body of the panel.\n */\n const onRenderBody = () => (\n \n \n \n \n setSelectedOrderPositionId(id)}\n searchValue={searchValue}\n setSearchValue={setSearchValue}\n searchToggle={searchToggle}\n setSearchToggle={setSearchToggle}\n />\n \n \n );\n\n /**\n * Footer content of the panel.\n */\n const onRenderFooter = () => (\n \n \n \n );\n\n return (\n <>\n {\n // NOTE: This is needed to prevent the panel from closing when the user interacts with the dialog.\n }}\n />\n
    \n \n );\n };\n\n /**\n * Footer content of the panel.\n */\n const onRenderFooterContent = () => (\n \n setIsDebtorPanelOpen(false)} />\n \n );\n\n /**\n * Header content of the panel.\n */\n const onRenderHeader = () => (\n \n \n {I18n.get().t('DebtorPanel_Name')}\n
    {`${selectedUser.displayName !== null && selectedUser.displayName !== undefined ? selectedUser.displayName : ''}`}
    \n
    \n \n {I18n.get().t('DebtorPanel_Mail')}\n
    {`${selectedUser.email !== null && selectedUser.email !== undefined ? selectedUser.email : ''}`}
    \n
    \n \n {I18n.get().t('DebtorPanel_Company')}\n
    {`${selectedUser.company !== null && selectedUser.company !== undefined ? selectedUser.company : ''}`}
    \n
    \n\n {enableChFeatures && (\n \n {I18n.get().t('DebtorPanel_UserLanguage')}\n {`${\n selectedUser.transactionLanguageKey !== null && selectedUser.transactionLanguageKey !== undefined ? selectedUser.transactionLanguageKey.toUpperCase() : ''\n }`}\n \n )}\n
    \n );\n\n return (\n \n \n );\n};\n","// Boolean sort method.\nexport const booleanSortType = (rowA, rowB, columnId, desc) => {\n const a = rowA.values[columnId];\n const b = rowB.values[columnId];\n if (a === b) {\n return 0;\n }\n return a && !b ? -1 : 1;\n};\n","import React, { useState, useEffect, useRef, useMemo } from 'react';\nimport I18n from '../../helper/Localization';\nimport styled from 'styled-components/macro';\nimport { TableView } from './TableView';\nimport { IconButton, getTheme } from 'office-ui-fabric-react';\nimport { InfoButton } from '../InfoButton';\nimport { StatusIcon, Status } from '../../components/StatusIcon';\nimport { isDateReturning } from '../../helper/DateReturningHelper';\nimport { FontIcon } from 'office-ui-fabric-react/lib/Icon';\nimport { postToApi, postToApiBlob } from '../../helper/ApiHelper';\nimport { booleanSortType } from '../../helper/SortHelper';\nimport { TestStatusTeachingBubbleContent } from '../TestStatusTeachingBubbleContent';\nimport { toFormattedDate } from '../../helper/DateFormatHelper';\nimport { Mono } from '../../styles/Globals';\n\nconst InfoWrapper = styled.div`\n display: flex;\n width: 100%;\n cursor: pointer;\n`;\n\nconst SortableTableHeader = styled.div`\n cursor: pointer;\n`;\n\n/**\n * component to display the results view\n */\nexport const ResultsView = (props) => {\n const theme = getTheme();\n\n /**\n * The test results to display in the table.\n */\n const [testResults, setTestResults] = useState([]);\n\n /**\n * visible state for the busy indicator\n */\n const [isBusy, setIsBusy] = useState(false);\n\n /**\n * Whether the table search is busy or not.\n */\n const [isSearchBusy, setIsSearchBusy] = useState(false);\n\n /**\n * Whether the pdf download is busy or not.\n */\n const [isDownloadBusy, setIsDownloadBusy] = useState(false);\n\n /**\n * The maximum number of pages of the current fetched data.\n */\n const [maxPages, setMaxPages] = useState(1);\n\n /**\n * The current selected data page.\n */\n const [currentPage, setCurrentPage] = useState(1);\n\n /**\n * State of the current sort direction. true for ASC, false for DESC.\n */\n const [sortAscending, setSortAscending] = useState(false);\n\n /**\n * State of the current sort property.\n */\n const [sortPropertyName, setSortPropertyName] = useState('DateExecuted');\n\n /**\n * State of the current sort property.\n */\n const [searchValue, setSearchValue] = useState('');\n\n /**\n * Whether the user has sorted the table or not.\n */\n const hasSorted = useRef(false);\n\n const previousSearchValue = useRef('');\n\n /**\n * fluent ui\n */\n const buttonStyles = {\n icon: {\n fontSize: 12,\n marginBottom: '4px',\n },\n root: {\n border: 0,\n borderRadius: '2px',\n boxShadow: '1px 2px 3px #0000003C',\n backgroundColor: theme.palette.themePrimary,\n width: 28,\n height: 28,\n },\n rootHovered: {\n backgroundColor: 'none',\n },\n rootPressed: {\n backgroundColor: 'none',\n },\n };\n\n /** Request abort controller. */\n const abortController = useMemo(() => new AbortController(), []);\n\n /**\n * Component will unmount, so abort.\n */\n useEffect(() => {\n return () => {\n abortController.abort();\n };\n }, [abortController]);\n\n useEffect(() => {\n const fetchData = async () => {\n setIsBusy(true);\n try {\n const defaultReqBody = {\n itemsPerPage: 50,\n sortDirection: sortAscending ? 1 : 2,\n sortPropertyName: sortPropertyName,\n };\n let reqBody;\n if (searchValue && searchValue !== '') {\n setIsSearchBusy(true);\n if (searchValue !== previousSearchValue.current) {\n reqBody = {\n filterText: searchValue.toLowerCase(),\n pageToDeliver: 1,\n ...defaultReqBody,\n };\n } else {\n reqBody = {\n filterText: searchValue.toLowerCase(),\n pageToDeliver: currentPage,\n ...defaultReqBody,\n };\n }\n } else {\n if (previousSearchValue.current !== '') {\n setIsSearchBusy(true);\n }\n reqBody = {\n pageToDeliver: currentPage,\n ...defaultReqBody,\n };\n }\n const testResults = await postToApi('v1.0/TestResult/Paged', reqBody, abortController.signal);\n setMaxPages(testResults.pagesAvailable);\n const testResultViewModels = testResults.results.map((testResult) => {\n return {\n deliveryInvoiceNumber: testResult.orderPosition.order.deliveryInvoiceNumber,\n position: testResult.orderPosition.position,\n wearer: testResult.orderPosition.wearer,\n isSuccessful: testResult.isSuccessful,\n insulationLeft: testResult.insulationLeft,\n insulationRight: testResult.insulationRight,\n dateExecuted: testResult.dateExecuted,\n id: testResult.id,\n };\n });\n setTestResults(testResultViewModels);\n } catch (error) {\n setMaxPages(1);\n setCurrentPage(1);\n setTestResults([]);\n } finally {\n previousSearchValue.current = searchValue;\n setIsBusy(false);\n setIsSearchBusy(false);\n }\n };\n fetchData();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [currentPage, setCurrentPage, searchValue, setSearchValue, sortAscending, setSortAscending, sortPropertyName, setSortPropertyName]);\n\n /**\n * Sorts the table by the given property name considering the sort direction state.\n */\n const handlePropertySort = (propertyName) => {\n if (sortPropertyName === propertyName) {\n setSortAscending(!sortAscending);\n } else {\n setSortAscending(true);\n setSortPropertyName(propertyName);\n }\n };\n\n /**\n * callback function for the download of one test result as pdf file.\n */\n const downloadTestResultAsPdf = async (testResult) => {\n setIsDownloadBusy(true);\n const date = toFormattedDate('de-DE', testResult.dateExecuted);\n const fileName = `${I18n.get().t('PDFExport_FileName')}_${date}.pdf`;\n await postToApiBlob(\n `v1.0/Documents/result-document/${I18n.getInstance().i18nInstance?.language ? I18n.getInstance().i18nInstance.language : 'de'}/${testResult.id}`,\n null,\n fileName,\n abortController.signal\n );\n setIsDownloadBusy(false);\n };\n\n const columns = [\n {\n Header: '',\n accessor: 'interactions',\n width: 75,\n maxWidth: -1,\n minWidth: 75,\n Cell: (table) => (\n downloadTestResultAsPdf(table.row.original)}\n />\n ),\n },\n {\n Header: (\n handlePropertySort('OrderPosition.Wearer')}>\n {I18n.get().t('Table_Header_Supporter')}\n {sortPropertyName === 'OrderPosition.Wearer' && }\n \n ),\n accessor: 'wearer',\n width: 110,\n },\n {\n Header: (\n handlePropertySort('OrderPosition.Order.DeliveryInvoiceNumber')}>\n {I18n.get().t('Table_Header_Order')}\n {sortPropertyName === 'OrderPosition.Order.DeliveryInvoiceNumber' && }\n \n ),\n accessor: 'deliveryInvoiceNumber',\n width: 75,\n Cell: (table) => {table.cell.value},\n },\n {\n Header: (\n handlePropertySort('OrderPosition.Position')}>\n {I18n.get().t('Table_Header_Position')}\n {sortPropertyName === 'OrderPosition.Position' && }\n \n ),\n accessor: 'position',\n width: 75,\n Cell: (table) => {table.cell.value},\n },\n {\n Header: (\n handlePropertySort('IsSuccessful')}>\n {I18n.get().t('Table_Header_Status')}\n {sortPropertyName === 'IsSuccessful' && }\n \n \n ),\n accessor: 'isSuccessful',\n Cell: (table) => (\n \n ),\n width: 70,\n sortType: booleanSortType,\n },\n {\n Header: I18n.get().t('Table_Header_InsulationValue'),\n accessor: 'insulationLeft',\n width: 115,\n Cell: (table) => `${table.row.original.insulationLeft} dB / ${table.row.original.insulationRight} dB`,\n },\n {\n Header: (\n {\n hasSorted.current = true;\n handlePropertySort('DateExecuted');\n }}\n >\n {I18n.get().t('Table_Header_Execution')}\n {hasSorted.current !== false && sortPropertyName === 'DateExecuted' && }\n \n ),\n accessor: 'dateExecuted',\n width: 115,\n Cell: (table) => toFormattedDate('de-DE', table.cell.value),\n },\n ];\n\n return (\n setCurrentPage(page)}\n setSearchValue={(searchValue) => setSearchValue(searchValue)}\n isSearchBusy={isSearchBusy}\n />\n );\n};\n","import React from 'react';\nimport { useStoreState } from 'easy-peasy';\n\nconst RoleAuthorization = (requiredRole) => (WrappedComponent) => {\n const WithAuthorizationWrapper = (props) => {\n const userRoles = useStoreState((state) => state.user.roles);\n if (userRoles.map((r) => r.role.label).some((r) => requiredRole.includes(r))) {\n return ;\n }\n console.error(`Unauthorized, \"${requiredRole}\" is required.`);\n return <>;\n };\n\n return WithAuthorizationWrapper;\n};\n\nexport default RoleAuthorization;\n","import React, { useEffect, useState } from 'react';\nimport { HearingTest } from './HearingTest';\nimport { postToApi } from '../../helper/ApiHelper';\nimport { msalApp } from '../../helper/AuthHelper';\nimport History from '../BrowserHistory';\n\n/**\n * component that handles the complete hearing test\n */\nexport const OnlineHearingTest = (props) => {\n /**\n * Name of the wearer.\n */\n const [wearerName, setWearerName] = useState('');\n\n /**\n * Initialize the hearing test.\n */\n useEffect(() => {\n if (!props || !props.location || !props.location.orderPositionId) {\n // If user is not in offline mode and did not provide order pos id, deny access.\n History.replace('/orders');\n }\n if (props && props.location && props.location.wearer) {\n // If there is a wearer name given by location, set the state.\n setWearerName(props.location.wearer);\n }\n }, [props]);\n\n /**\n * submit the hearing test result\n */\n const submitTestResult = async (\n dbLeftWithoutProtection,\n dbLeftWithProtection,\n dbRightWithoutProtection,\n dbRightWithProtection,\n insulationLeft,\n insulationRight,\n isSuccessfulLeft,\n isSuccessfulRight\n ) => {\n const _msalApp = await msalApp();\n const name = _msalApp.getAccount().name;\n const reqBody = {\n dateExecuted: new Date().toISOString(),\n measurementLeftWithoutProtection: dbLeftWithoutProtection,\n measurementLeftWithProtection: dbLeftWithProtection,\n measurementRightWithoutProtection: dbRightWithoutProtection,\n measurementRightWithProtection: dbRightWithProtection,\n insulationLeft: insulationLeft,\n insulationRight: insulationRight,\n isSuccessfulLeft: isSuccessfulLeft,\n isSuccessfulRight: isSuccessfulRight,\n orderPositionId: props.location.orderPositionId,\n testerName: name,\n };\n try {\n await postToApi('v1.0/TestResult', reqBody);\n } catch (error) {\n console.error(error);\n }\n };\n\n return ;\n};\n","import { ApplicationInsights } from '@microsoft/applicationinsights-web';\nimport { ReactPlugin } from '@microsoft/applicationinsights-react-js';\nimport History from './BrowserHistory';\n\nconst aiPromise = fetch('api/Configuration/AppInsightsKey').then((key) => key.json());\nconst reactPlugin = new ReactPlugin();\nlet appInsights;\n\naiPromise.then((aiKey) => {\n appInsights = new ApplicationInsights({\n config: {\n instrumentationKey: aiKey,\n disableFetchTracking: false,\n enableAutoRouteTracking: true,\n enableRequestHeaderTracking: true,\n autoTrackPageVisitTime: true,\n extensions: [reactPlugin],\n extensionConfig: {\n [reactPlugin.identifier]: { history: History },\n },\n },\n });\n appInsights.loadAppInsights();\n});\n\nexport { reactPlugin, appInsights };\n","import React, { useEffect } from 'react';\nimport OfflineApp from './OfflineApp';\nimport OnlineApp from './OnlineApp';\nimport { useStoreActions, useStoreState } from 'easy-peasy';\n\n/**\n * Decide if the offline or the online app is used.\n */\nconst AppInitilizer = () => {\n /**\n * Retrieve the store state of the offline mode.\n */\n const isOfflineModeEnabled = useStoreState((state) => state.ui.isOfflineModeEnabled);\n /**\n * Retrieve the action to update the store offline mode state.\n */\n const updateIsOfflineModeEnabled = useStoreActions((actions) => actions.ui.updateIsOfflineModeEnabled);\n\n /**\n * Update to offline mode if no internet connection exists.\n */\n useEffect(() => {\n if (!navigator.onLine && !isOfflineModeEnabled) {\n updateIsOfflineModeEnabled(true);\n }\n }, [isOfflineModeEnabled, updateIsOfflineModeEnabled]);\n\n return isOfflineModeEnabled ? : ;\n};\n\nexport default AppInitilizer;\n","export default __webpack_public_path__ + \"static/media/info-circle-solid.16d18470.svg\";","export default __webpack_public_path__ + \"static/media/check-solid.49fb1db0.svg\";","export default __webpack_public_path__ + \"static/media/ellipsis-v-solid.3e8c2ed2.svg\";","export default __webpack_public_path__ + \"static/media/pen-solid.867a313f.svg\";","export default __webpack_public_path__ + \"static/media/disable-white.27d5a1c4.svg\";","export default __webpack_public_path__ + \"static/media/circle-notch-solid.848fc069.svg\";","export default __webpack_public_path__ + \"static/media/home-solid.b9304e90.svg\";","export default __webpack_public_path__ + \"static/media/users-solid.24182c7e.svg\";","export default __webpack_public_path__ + \"static/media/folder-open-solid.4e56e750.svg\";","export default __webpack_public_path__ + \"static/media/business-and-finance.47742ddc.svg\";","export default __webpack_public_path__ + \"static/media/times-solid.0268d196.svg\";","export default __webpack_public_path__ + \"static/media/menu-arrow.5fd47716.svg\";","export default __webpack_public_path__ + \"static/media/failed.fb0c5ede.svg\";","export default __webpack_public_path__ + \"static/media/succeeded.6b02a169.svg\";","export default __webpack_public_path__ + \"static/media/pending.a2b50645.svg\";","export default __webpack_public_path__ + \"static/media/user-alt-solid.ed9f4794.svg\";","export default __webpack_public_path__ + \"static/media/download-solid.b8a97b08.svg\";","export default __webpack_public_path__ + \"static/media/disable.b791572e.svg\";","export default __webpack_public_path__ + \"static/media/download-solid-white.dd7ec20f.svg\";","export default __webpack_public_path__ + \"static/media/search-solid.fb5a13db.svg\";","export default __webpack_public_path__ + \"static/media/hörtest-avatar-04.e9ac19dc.svg\";","export default __webpack_public_path__ + \"static/media/hörtest-avatar-02.de15e92b.svg\";","export default __webpack_public_path__ + \"static/media/hörtest-avatar-05.dc20500c.svg\";","export default __webpack_public_path__ + \"static/media/hörtest-avatar-03.73a49a75.svg\";","export default __webpack_public_path__ + \"static/media/system-volume_01.fb476854.svg\";","export default __webpack_public_path__ + \"static/media/system-volume-04.c685d851.svg\";","export default __webpack_public_path__ + \"static/media/system-volume-02.d21071e1.svg\";","export default __webpack_public_path__ + \"static/media/system-volume-03.ae2868b1.svg\";","export default __webpack_public_path__ + \"static/media/system-volume-05.bf3c31fd.svg\";","export default __webpack_public_path__ + \"static/media/system-volume-06.fec5e1fb.svg\";","export default __webpack_public_path__ + \"static/media/enable-solid.c5e219c0.svg\";","export default __webpack_public_path__ + \"static/media/Arrow-left-white.fdcd2c88.svg\";","export default __webpack_public_path__ + \"static/media/Arrow-left-black.d2c3febd.svg\";","export default __webpack_public_path__ + \"static/media/Arrow-left-gray.02f49528.svg\";","export default __webpack_public_path__ + \"static/media/check-white.6b8185f1.svg\";","export default __webpack_public_path__ + \"static/media/slider-bubble-orange-03.7b60ae2d.svg\";","export default __webpack_public_path__ + \"static/media/slider-bubble-white.39dc478c.svg\";","export default __webpack_public_path__ + \"static/media/music.ea3b69a8.svg\";","export default __webpack_public_path__ + \"static/media/close.49af635e.svg\";","export default __webpack_public_path__ + \"static/media/ipad-system-volume-01.15294f07.svg\";","export default __webpack_public_path__ + \"static/media/ipad-system-volume-02.d705ed5e.svg\";","import 'bootstrap/dist/css/bootstrap.css';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport * as serviceWorkerRegistration from './serviceWorkerRegistration';\nimport { StoreProvider } from 'easy-peasy';\nimport Store from './store/Store';\nimport AppInitializer from './AppInitializer';\nimport { loadTheme } from '@fluentui/react';\nimport { initializeIcons } from '@uifabric/icons';\nimport { registerIcons } from 'office-ui-fabric-react/lib/Styling';\n\nimport InfoIcon from './assets/info-circle-solid.svg';\nimport CheckIcon from './assets/check-solid.svg';\nimport ContextIcon from './assets/ellipsis-v-solid.svg';\nimport EditIcon from './assets/pen-solid.svg';\nimport DisableWhiteIcon from './assets/disable-white.svg';\nimport EnableIcon from './assets/circle-notch-solid.svg';\nimport HomeIcon from './assets/home-solid.svg';\nimport UsersIcon from './assets/users-solid.svg';\nimport FolderIcon from './assets/folder-open-solid.svg';\nimport ResultIcon from './assets/business-and-finance.svg';\nimport PlusIcon from './assets/times-solid.svg';\nimport ChevronIcon from './assets/menu-arrow.svg';\nimport FailedIcon from './assets/failed.svg';\nimport SucceededIcon from './assets/succeeded.svg';\nimport PendingIcon from './assets/pending.svg';\nimport UserIcon from './assets/user-alt-solid.svg';\nimport DownloadIcon from './assets/download-solid.svg';\nimport DisableIcon from './assets/disable.svg';\nimport DownloadWhiteIcon from './assets/download-solid-white.svg';\nimport SearchIcon from './assets/search-solid.svg';\nimport LeftOutlined from './assets/hörtest-avatar-04.svg';\nimport LeftFilled from './assets/hörtest-avatar-02.svg';\nimport RightOutlined from './assets/hörtest-avatar-05.svg';\nimport RightFilled from './assets/hörtest-avatar-03.svg';\nimport WindowsStepOne from './assets/system-volume_01.svg';\nimport WindowsStepTwo from './assets/system-volume-04.svg';\nimport MacStepOne from './assets/system-volume-02.svg';\nimport MacStepTwo from './assets/system-volume-03.svg';\nimport MacStepThree from './assets/system-volume-05.svg';\nimport MacStepFour from './assets/system-volume-06.svg';\nimport EnableSolidIcon from './assets/enable-solid.svg';\nimport ArrowLeftWhiteIcon from './assets/Arrow-left-white.svg';\nimport ArrowLeftBackIcon from './assets/Arrow-left-black.svg';\nimport ArrowLeftGrayIcon from './assets/Arrow-left-gray.svg';\nimport CheckWhiteIcon from './assets/check-white.svg';\nimport SliderBubbleOrange from './assets/slider-bubble-orange-03.svg';\nimport SliderBubbleWhite from './assets/slider-bubble-white.svg';\nimport MusicIcon from './assets/music.svg';\nimport CloseIcon from './assets/close.svg';\nimport IPadStepOne from './assets/ipad-system-volume-01.svg';\nimport IPadStepTwo from './assets/ipad-system-volume-02.svg';\n\nconst rootElement = document.getElementById('root');\n\n// Initialize icons.\ninitializeIcons();\nregisterIcons({\n icons: {\n 'ipad-step-one': \"\",\n 'ipad-step-two': \"\",\n 'close-icon': \"\",\n 'music-icon': \"\",\n 'arrow-left-white': \"\",\n 'arrow-left-black': \"\",\n 'arrow-left-gray': \"\",\n 'check-white': \"\",\n 'slider-bubble-orange': \"\",\n 'slider-bubble-white': \"\",\n 'pen-solid-svg': \"\",\n 'disable-white-svg': \"\",\n 'check-solid-svg': \"\",\n 'circle-notch-solid-svg': \"\",\n 'info-circle-solid-svg': \"\",\n 'home-svg': \"\",\n 'users-svg': \"\",\n 'folder-svg': \"\",\n 'result-svg': \"\",\n 'plus-svg': \"\",\n 'chevron-svg': \"\",\n 'ellipsis-v-solid-svg': \"\",\n 'failed-svg': \"\",\n 'succeeded-svg': \"\",\n 'pending-svg': \"\",\n 'user-alt-solid-svg': \"\",\n 'download-solid-svg': \"\",\n 'disable-svg': \"\",\n 'download-solid-white-svg': \"\",\n 'search-svg': \"\",\n 'active-left-outlined': \"\",\n 'active-left-filled': \"\",\n 'active-right-outlined': \"\",\n 'active-right-filled': \"\",\n 'windows-step-one': \"\",\n 'windows-step-two': \"\",\n 'mac-step-one': \"\",\n 'mac-step-two': \"\",\n 'mac-step-three': \"\",\n 'mac-step-four': \"\",\n 'enable-solid-svg': \"\",\n },\n});\n\n// Load fluent ui theme.\nloadTheme({\n palette: {\n themePrimary: '#ff6600',\n themeLighterAlt: '#fff9f5',\n themeLighter: '#ffe7d6',\n themeLight: '#ffd1b3',\n themeTertiary: '#ffa366',\n themeSecondary: '#ff781f',\n themeDarkAlt: '#e65c00',\n themeDark: '#c24e00',\n themeDarker: '#8f3900',\n neutralLighterAlt: '#faf9f8',\n neutralLighter: '#f3f2f1',\n neutralLight: '#edebe9',\n neutralQuaternaryAlt: '#e1dfdd',\n neutralQuaternary: '#d0d0d0',\n neutralTertiaryAlt: '#c8c6c4',\n neutralTertiary: '#c2c2c2',\n neutralSecondary: '#858585',\n neutralPrimaryAlt: '#4b4b4b',\n neutralPrimary: '#333333',\n neutralDark: '#272727',\n black: '#1d1d1d',\n white: '#ffffff',\n red: '#ea1e1e',\n blue: '#00349A',\n green: '#12B361',\n lightGrey: '#666666',\n transparentGrey: '#000',\n },\n});\n\nReactDOM.render(\n \n \n ,\n rootElement\n);\n\n// Register the service worker.\nserviceWorkerRegistration.register();\n"],"sourceRoot":""}