{"version":3,"sources":["configValues.ts","config.ts","context/auth/authReducer.ts","context/auth/AuthContext.ts","context/auth/useAuth.ts","context/error/ErrorContext.ts","context/error/useError.ts","context/notification/NotificationContext.ts","context/notification/useNotification.ts","context/workingTime/WorkingTimeContext.ts","context/workingTime/useWorkingTime.ts","serviceMiddlewares/errorMiddleware.ts","serviceMiddlewares/cacheMiddleware.ts","helpers/standardInputHelper/generalStandardInputHelper.ts","helpers/contractHelper/generalContractHelper.ts","service/types/Contract.ts","service/types/Address.ts","service/types/User.ts","service/types/Customer.ts","service/types/MaterialTool.ts","service/types/RhenusCase.ts","service/types/RhenusOverviewInformation.ts","service/types/StandardCase.ts","service/types/Travel.ts","service/types/BreakTime.ts","service/types/WorkingTime.ts","service/types/WorkTimeTrack.ts","service/types/Transport.ts","service/types/BreakTimeQA.ts","service/types/Invoice.ts","service/client.ts","service/notImplemented.ts","helpers/authHelper.ts","serviceMiddlewares/successMiddleware.ts","service/service.ts","atoms/userAtom.ts","components/LoadingWrapper.tsx","context/auth/createAuthReducer.ts","context/notification/notificationReducer.ts","context/workingTime/workingTimeReducer.ts","context/workingTime/createWorkingTimeReducer.ts","context/error/errorReducer.ts","context/ContextProvider.tsx","context/notification/createNotificationReducer.ts","context/error/createErrorReducer.ts","i18n/index.ts","router/Routes.ts","components/Button.tsx","consts/colors.ts","consts/fonts.ts","consts/globalStyles.ts","svgComponents/ErrorIcon.tsx","components/AuthTextField.tsx","consts/language.ts","components/Language.tsx","components/LanguageList.tsx","assets/images/backgroud.png","assets/images/login_photo.png","svgComponents/IQRLogoBlack.tsx","screens/LoginScreen.tsx","svgComponents/CloseIcon.tsx","svgComponents/WarningIcon.tsx","components/Transition.tsx","components/StandardDialog.tsx","svgComponents/BackArrow.tsx","screens/ForgotPasswordScreen.tsx","screens/MailSentScreen.tsx","helpers/loginHelper.ts","containers/ForgotPasswordContainer.tsx","consts/rules.ts","consts/login.ts","svgComponents/BackKey.tsx","components/Key.tsx","components/NumericKeyboard.tsx","components/PinDialog.tsx","helpers/navigationHelper.ts","containers/LoginContainer.tsx","svgComponents/IQRLogo.tsx","screens/ResetPasswordScreen.tsx","screens/ResetPasswordSuccessScreen.tsx","containers/ResetPasswordContainer.tsx","hooks/useQuery.ts","screens/ContactUsScreen.tsx","containers/ContactUsContainer.tsx","svgComponents/ErrorScreenIcon.tsx","screens/ErrorScreen.tsx","components/ErrorWrapper.tsx","svgComponents/CheckboxFilled.tsx","svgComponents/CheckboxEmpty.tsx","components/LegalNoticeDialog.tsx","components/ErrorServiceDialog.tsx","svgComponents/AvatarIcon.tsx","svgComponents/UserIcon.tsx","components/AvatarCard.tsx","components/Avatar.tsx","components/MenuItem.tsx","helpers/workingTimeHelper/generalWorkingTimeHelper.ts","svgComponents/DropdownArrow.tsx","svgComponents/BarcodeScannerIcon.tsx","components/StandardTextField.tsx","consts/priceListTypes.ts","consts/priceListOptions.ts","components/ReduceWorkTimeTracking.tsx","svgComponents/UsersIcon.tsx","svgComponents/ContractsIcon.tsx","svgComponents/DashboardIcon.tsx","svgComponents/CustomersIcon.tsx","svgComponents/EditContractsIcon.tsx","svgComponents/GroupIcon.tsx","consts/menuItems.tsx","screens/HomeScreen.tsx","containers/HomeContainer.tsx","screens/SettingsScreen.tsx","containers/SettingsContainer.tsx","components/Spinner.tsx","screens/StandardTextFieldWithContoler.tsx","components/AddressItem.tsx","components/table/ButtonCell.tsx","components/table/ApproveCell.tsx","components/table/LinkTypeCell.tsx","components/table/TextTypeCell.tsx","helpers/dataSorter.ts","components/table/TitleTypeCell.tsx","components/table/WithButtonCell.tsx","svgComponents/Dots.tsx","components/table/ExpandableCell.tsx","svgComponents/DropdownIcon.tsx","components/table/WithDropdownTitleCell.tsx","components/table/StandardTableCell.tsx","consts/contactPerson.tsx","components/CustomTableBody.tsx","components/ContactPersonList.tsx","components/StandardCRUDButtons.tsx","svgComponents/CheckedIcon.tsx","svgComponents/UncheckedIcon.tsx","components/StandardRadioButton.tsx","helpers/customerHelper/readCustomerHelper.ts","svgComponents/Plus.tsx","assets/images/svgs/Arrow.tsx","svgComponents/GoBack.tsx","svgComponents/DeleteIcon.tsx","assets/images/svgs/Home.tsx","consts/testIDs.ts","svgComponents/HomeButton.tsx","screens/CustomerScreen.tsx","helpers/customerHelper/createCustomerHelper.ts","helpers/customerHelper/updateCustomerHelper.ts","containers/CustomerContainer.tsx","helpers/customerHelper/deleteCustomerHelper.ts","helpers/customerHelper/generalCustomerHelper.tsx","helpers/filters.ts","svgComponents/FilterIcon.tsx","components/Filter.tsx","components/StandardAutoComplete.tsx","components/KeyValueAutoComplete.tsx","components/NewLink.tsx","consts/user.ts","helpers/userHelper/generalUserHelper.ts","components/UserList.tsx","consts/latinLetters.ts","helpers/userHelper/createUserHelper.ts","helpers/userHelper/readUserHelper.ts","helpers/userHelper/updateUserHelper.ts","components/Autocomplete.tsx","atoms/group.ts","atoms/allCustomers.ts","screens/UserScreen.tsx","containers/UserContainer.tsx","helpers/userHelper/deleteUserHelper.ts","screens/UserOverviewScreen.tsx","containers/UserOverviewContainer.tsx","components/StandardCheckbox.tsx","components/StandardDatePicker.tsx","svgComponents/RemoveIcon.tsx","components/FileLink.tsx","components/StandardFileInput.tsx","svgComponents/AttachmentIcon.tsx","svgComponents/PdfAttachmentIcon.tsx","consts/billingCycleType.ts","consts/projectType.ts","consts/calculationType.ts","components/StandardTimePicker.tsx","components/ShiftInputRow.tsx","components/TableTextField.tsx","svgComponents/SaveIcon.tsx","svgComponents/EditIcon.tsx","components/WorkLocationInputRow.tsx","screens/ContractScreen.tsx","helpers/contractHelper/createContractHelper.ts","helpers/contractHelper/updateContractHelper.ts","containers/ContractContainer.tsx","helpers/contractHelper/readContractHelper.ts","helpers/contractHelper/deleteContractHelper.ts","consts/customer.ts","components/CustomerList.tsx","screens/CustomerOverviewScreen.tsx","containers/CustomerOverviewContainer.tsx","helpers/standardInputHelper/createStandardInputHelper.ts","helpers/standardInputHelper/readStandardInputHelper.ts","components/ErrorInputRow.tsx","components/TableAutoCompleteInput.tsx","svgComponents/PhotoButton.tsx","components/CameraDialog.tsx","components/ApproveItem.tsx","svgComponents/PhotoIcon.tsx","components/BarcodeScanner.tsx","screens/StandardCaseInputScreen.tsx","helpers/standardInputHelper/updateStandardInputHelper.ts","containers/StandardCaseInputContainer.tsx","helpers/standardInputHelper/deleteStandardInputHelper.ts","svgComponents/SearchIcon.tsx","components/SearchInput.tsx","components/CustomerQAIZoneItem.tsx","components/CustomerQAIZoneOverview.tsx","consts/rhenusOverview.ts","components/StandardDateTimePicker.tsx","components/AdminTLZoneOverview.tsx","screens/RhenusOverviewScreen.tsx","containers/RhenusOverviewContainer.tsx","components/CustomDate.tsx","svgComponents/CalendarArrowIcon.tsx","components/IntervalDatePicker.tsx","consts/standardCaseInput.ts","components/StandardCaseInputList.tsx","svgComponents/WorkingTimeIcon.tsx","svgComponents/ExpensessIcon.tsx","components/WorkingTimeMaterialExpenses.tsx","screens/StandardCaseOverviewScreen.tsx","helpers/timeAndDate.ts","helpers/fileDownloader.ts","containers/StandardCaseOverviewContainer.tsx","containers/ProcessContractContainer.tsx","consts/contract.ts","components/ContractList.tsx","screens/ContractOverviewScreen.tsx","containers/ContractOverviewContainer.tsx","helpers/rhenusInputHelper/generalRhenusHelper.ts","consts/rhenusCase.ts","components/RhenusCaseList.tsx","helpers/rhenusInputHelper/createRhenusCaseHelper.ts","helpers/rhenusInputHelper/updateRhenusCaseHelper.ts","helpers/rhenusInputHelper/readRhenusCaseHelper.ts","screens/RhenusCaseScreen.tsx","containers/RhenusCaseContainer.tsx","helpers/rhenusInputHelper/deleteRhenusCaseHelper.ts","screens/ZoneOverviewScreen.tsx","containers/ZoneOverviewContainer.tsx","screens/ContactPersonScreen.tsx","helpers/contactPersonHelper/readContactHelper.ts","helpers/contactPersonHelper/createContactHelper.ts","helpers/contactPersonHelper/updateContactHelper.ts","containers/ContactPersonContainer.tsx","helpers/contactPersonHelper/deleteContactHelper.ts","helpers/workingTimeHelper/createWorkingTimeHelper.tsx","helpers/workingTimeHelper/deleteWorkingTimeHelper.ts","components/AddWorkingTime.tsx","components/BilledItem.tsx","helpers/expenses/generalExpensesHelper.ts","components/RecordItem.tsx","helpers/workingTimeHelper/updateWorkingTimeHelper.ts","components/RecordTitle.tsx","helpers/breakTimeHelper/updateBreakTimeHelper.ts","components/BreakItem.tsx","components/RecordListWorkingTime.tsx","components/TrackWorkingTime.tsx","screens/WorkingTimeScreen.tsx","containers/WorkingTimeContainer.tsx","helpers/workingTimeHelper/readWorkingTimeHelper.ts","components/AddExpensesItemKeyValue.tsx","components/AddExpensesItemStandard.tsx","components/AddExpensesItemStatic.tsx","components/AddExpenseItemDate.tsx","components/AddExpensesItemEdit.tsx","components/AddExpenseItemCell.tsx","components/AddExpensesItem.tsx","components/ExpensesButtonsCellType.tsx","components/ExpensesTextFieldCellType.tsx","components/ExpensesKeyValueCellType.tsx","components/ExpensesDateFieldCellType.tsx","components/ExpensesEditFieldCellType.tsx","components/ExpensesItemCell.tsx","components/ExpensesTabelItem.tsx","components/ExpensesTabel.tsx","components/TabTitle.tsx","consts/material.ts","consts/tools.ts","consts/transport.ts","consts/travel.ts","consts/expenses.ts","screens/ExpensesScreen.tsx","containers/ExpensesContainer.tsx","helpers/expenses/readExpensesHelper.ts","helpers/expenses/updateExpensesHelper.ts","helpers/expenses/createExpensesHelper.ts","helpers/expenses/deleteExpensesHelper.ts","components/RecordTitleSummary.tsx","components/RecordItemSummary.tsx","components/BreakItemSummary.tsx","components/RecordListSummary.tsx","components/SummaryExpensesWrapper.tsx","assets/images/svgs/CalendarIcon.tsx","consts/invoice.ts","components/InvoiceListSummary.tsx","screens/SummaryScreen.tsx","containers/SummaryContainer.tsx","helpers/summaryHelper/readSummaryHelper.ts","screens/ChangePasswordScreen.tsx","containers/ChangePasswordContainer.tsx","components/table/SimpleDataTable.tsx","helpers/dashboardHelper/chartHelper.tsx","helpers/dashboardHelper/generalDashboardHelper.ts","svgComponents/BackIcon.tsx","screens/DashboardScreen.tsx","containers/DashboardContainer.tsx","helpers/dashboardHelper/readDashboardHelper.ts","components/Notification.tsx","screens/InvoiceScreen.tsx","containers/InvoiceContainer.tsx","pages/Entities.tsx","components/MuiAutocomplete.tsx","pages/GroupCreatePage.tsx","atoms/teamLeaders.ts","pages/groupUpdatePage/GroupUpdatePage.tsx","pages/groupOverview/components/Header.tsx","pages/groupOverview/components/GroupList.tsx","pages/groupOverview/GroupOverview.tsx","router/MainRouter.tsx","hooks/usePrevious.ts","wrappers/InitWrapper.tsx","App.tsx","reportWebVitals.ts","index.tsx"],"names":["configValues","BACKEND_SCHEME","BACKEND","BACKEND_VERSION","TIMEOUT","Config","constructor","scheme","backend","version","timeout","this","getConfig","getBackendScheme","getBackend","getBackendVersion","getTimeout","authInitialState","user","undefined","AUTH_TOKEN","REFRESH_TOKEN","SET_USER","authReducer","state","arguments","length","action","type","initialStateContext","initalActionContext","setUser","AuthStateContext","React","createContext","AuthActionsContext","useAuthStateContext","useContext","useAuthActionContext","error","setError","ErrorStateContext","ErrorActionsContext","useErrorActionContext","visible","notification","text","additional","setNotification","hideNotification","NotificationStateContext","NotificationActionsContext","useNotificationActionContext","record","setRecord","startTracking","Promise","resolve","stopTracking","WorkingTimeStateContext","WorkingTimeActionsContext","useWorkingTimeStateContext","useWorkingTimeActionContext","ErrorMiddleware","next","setService","setJWTToken","JWTToken","login","params","e","JSON","parse","message","code","loginQAI","checkToken","getAuthToken","refreshToken","requestPasswordReset","email","checkPasswordRessetToken","token","resetPassword","resetPasswordQAI","getAllUsers","readGroups","createGroup","data","readGroup","id","updateGroup","deleteGroup","logout","getContracts","createEmployee","createQAI","getUserInfo","getAllQAIs","getAllTeamLeaders","getAllCustomers","getAllQAIsByTeamLeader","teamLeaderID","createCustomer","customer","createUserForCustomer","getCustomerFromUser","deleteUserByID","updateUserByID","updateCustomerByID","getAllStandardCaseInputs","contractID","updateStandradCaseInput","errorInput","createContract","contract","createInvoice","dateOfInvoice","fromDate","toDate","updateInvoice","creationDate","billNumber","completeInvoice","deleteInvoice","deleteContractByID","contact","createStandradCaseInput","deleteStandradCaseInputByID","errorInputID","getRhenusOverviewInformations","from","to","getZoneCaseInputs","zoneID","deleteRhenusCaseInputByID","errorID","createRhenusCaseInput","rhenusCaseInput","updateRhenusCaseInput","sendErrorReport","addManualWorkTime","worktime","addManualBreakTime","startTrackingTime","stopTrackingTime","profession","getAllRecords","readShifts","deleteRecordByID","recordID","deleteBreakByID","deleteWaitingByID","updateRecordByID","updateBreakByID","updateWaitingByID","getMaterialExpenses","getToolExpenses","getAllInvoices","exportInvoice","getInvoiceById","invoiceID","getTravelExpenses","createMaterialExpenses","material","createTravelExpenses","travel","createToolExpenses","tool","updateMaterialExpenses","updateTravelExpenses","updateToolExpenses","deleteMaterialExpensesByID","materialID","deleteTravelExpensesByID","travelID","deleteToolExpensesByID","toolID","openCloseContract","status","changePassword","oldPassword","newPassword","aprroveInput","inputID","updateContract","checkTrackingTime","getTeamLeaderByContract","getCustomerByContract","acceptPrivacyPolicy","getContract","getStandardCaseInputByID","getUserByID","userID","getCustomerByID","customerID","getTransportExpenses","updateTransportExpenses","transport","deleteTransportExpensesByID","transportID","createTransportExpenses","getContactQAI24ByContract","getRhenusCaseInputByID","getPhoto","photoURL","deleteCustomerByID","createStandardErrorInputsExcelSheet","language","createProcessContractStandardErrorInputsExcelSheet","createWorkingTimeExcelSheet","contractSummary","ALL_USERS","ALL_TEAM_LEADERS","ALL_QAIS","ALL_CUSTOMERS","saveData","key","localStorage","setItem","stringify","lastPull","moment","toISOString","getData","localAllUsers","getItem","localAllUsersParsed","time","tempTime","currentTime","Math","abs","diff","getHoursDiffFromTimeAndCurrentTime","removeAllData","forEach","removeItem","CacheMiddleware","res","DEFAULT_NO_VALUE","value","ErrorInputFromJSON","maybe","amount","Error","type_name","ErrorInputToJSON","Number","ApprovedStatus","filterApprovedStatusKeyValuePairs","Approved","NotApproved","textsForStandardAutomaticalUpdate","ContractType","ContractStatusType","ErrorType","ContractViewType","TypeOfInspection","ContractZoneFromJSON","name","ContractZoneToJSON","zone","ShiftName","ShiftFromJSON","shift_start","shift_end","replaceAll","ShiftToJSON","shift","createContractIsPhotoKeyValuePairs","createContractErrorTypeKeyValuePairs","Missing","Incorrect","Damaged","createContractTypeOfInspectionKeyValuePairs","StandardCheck","Erstteilkontrolle","PVBCount","Umpacken","Funktionsprufung","Sichtprufung","NacharbeitenEinfachesWerkzeug","NacharbeitenSpezialwerkzeug","filterContractData","Morning","Afternoon","Night","filterOpenClosed","NotClosed","Closed","Contract","contractNumber","date","workLocations","typeOfActivity","partDesignation","markingOfIOparts","shiftTimes","errorTypes","typesOfInspection","contractType","isPhotoAllowed","automatedUpdates","assignedQAIs","assignedTeamLeader","orderDescription","contactPerson","contactQAI24","billingCycle","drivingRate","drivingTime","kilometer","priceList","projectType","calculationType","administrationFee","zones","contractData","attachments","amountOfParts","applicationIntake","tlGroups","tlGroupsIds","billed_until","next_billing","trim","fromJSON","_maybe$zones","contract_number","customer_id","isValid","type_of_activity","part_designation","errors","shifts","checking_types","marking_of_parts","contract_type","contract_status","is_photo_allowed","assigned_qais","assigned_team_leader","automated_updates","contact_person","contact_qai_24","order_description","work_locations","map","billing_cycle","driving_rate","driving_time","price_list","project_type","calculation_type","administration_fee","contract_data","amount_of_parts","application_intake","toJSON","_this$zones","Address","postcode","city","street","houseNumber","country","costCenter","house_number","cost_center","address","toString","concat","UserRole","OriginOfEmployee","User","role","firstName","lastName","originOfEmployee","teamLeaderIDs","contactFor","phonenumber","username","deleted","fromJWT","decodedToken","jwt_decode","sub","FromIQR","first_name","last_name","origin","includes","tl","fromCustomer","Customer","External","fromUserUpdate","_maybe$teamLeader","teamLeader","_tl$value","billingAddress","deliveryAddress","users","customerNumber","supplierNumber","invoiceEmail","reminderEmail","otherEmails","vatNumber","termOfPayment","billingAddressGenerated","deliveryAddressGenerated","billingAdrress","billing_address","delivery_address","customer_number","supplier_number","invoice_email","reminder_email","other_emails","vat_number","term_of_payment","MaterialTool","quantity","reporter","qai","billed","price","createMaterialToolWithID","withoutIDMaterialTool","RhenusCase","productionNumber","partNumber","storage","partStatus","approved","typeOfInspection","errorType","partNumberShould","colorNumber","colorNumberShould","comment","photo","production_number","part_number","part_status","qai_id","type_of_inspection","zone_id","shift_id","part_number_should","color_number","color_number_should","error_type","rhenusCase","RhenusOverviewInformation","totalPartsTested","numberOfErrorParts","precentageOfErrorParts","numberOfQAI","total_parts_tested","number_of_error_parts","percentage_of_error_parts","number_of_qai","precentage_of_error_parts","StandardCaseInput","deliveryNoteNumber","deliveryNoteDate","partsNIO","partsIO","partsReworked","checkNumber","locationID","delivery_note_number","parts_NIO","parts_IO","parts_reworked","check_number","error_types","delivery_note_date","filter","item","location_id","standardCase","_standardCase$deliver","Travel","travelTime","distance","waitedTime","typeOfTransport","travel_time","type_of_transport","waited_time","createTravelWithID","withoutIDTravel","RecordTimeType","BreakTime","duration","createWorkingTimeWithID","withoutIDWorkingTime","workingTime","WorkingTime","startTime","endTime","Working","start_time","end_time","WorkTimeTrack","contract_id","TransportType","Transport","createTransportWithID","BreakTimeQA","qaiID","InvoiceItem","creation_date","date_of_invoice","from_date","to_date","completed","bill_number","number_of_shifts","number_of_workers","inspector_hours","inspector_late_hours","inspector_night_hours","inspector_sunday_night_hours","inspector_week_overtime_hours","teamlead_hours","teamlead_late_hours","teamlead_night_hours","teamlead_sunday_night_hours","teamlead_week_overtime_hours","resident_hours","resident_late_hours","resident_night_hours","resident_sunday_night_hours","resident_week_overtime_hours","gloves","kilometers","travel_fee","Invoice","convertFileToBase64","file","reject","reader","FileReader","readAsDataURL","onload","result","onerror","Client","clientInstances","services","service","setJWTtoken","auth","call","details","rt","at","acceptedPp","uuid","userDetails","_res$result$details","Boolean","groupId","getAll","contracts","customerDetails","errorInputs","invoice","invoices","sort","a","b","_res$result","start","end","overview","ID","Break","breakTime","waitingTime","wt","times","working_time","waiting_time","Waiting","break_time","breakTimefromJSON","workID","breakID","waitiD","materials","tools","travels","mID","tID","TLID","seiID","tc","cID","Axios","get","headers","responseType","excelFile","anonymous","Anonymous","export_materials","ExportMaterials","export_tools","ExportTools","export_travels","ExportTravels","export_transport","ExportTransport","NotImplementedService","invoiceId","zoneId","onAuthTokenSuccess","onAuthTokenError","SuccessMiddleware","userAtom","atom","LoadingWrapper","props","isTokenChecked","setIsTokenChecked","useState","setUserAtom","useAtom","useEffect","adapter","config","instances","AxiosInstance","create","interceptors","response","use","async","_response$data","_response$data$error","catch","rq","url","method","request","JSONRPCClient","client","cacheMiddleware","errorMiddleware","createServiceWithConfigAndToken","then","children","_jsx","notificationInitialState","SET_NOTIFICATION","HIDE_NOTIFICATION","notificationReducer","workTimeInitialState","START_TRACKING_TIME","STOP_TRACKING_TIME","workingTimeReducer","errorInitialState","SET_ERROR","errorReducer","ContextProvider","authState","dispatchAuth","useReducer","errorState","dispatchError","workingTimeState","dispatchWorkingTime","notificationState","dispatchNotificationTime","authStateContext","useMemo","createStateAuthContext","authActionContext","createActionAuthContext","dispatch","workingTimeStateContext","createWorkingTimeState","wokringTimeActionContext","createActionWorkingTimeContext","notificationStateContext","createNotificationState","notificationActionContext","createActionNotificationContext","errorStateContext","createErrorState","errorActionContext","createActionErrorContext","Provider","i18n","initReactI18next","init","resources","translations","lng","keySeparator","interpolation","escapeValue","Routes","routeParamKeys","RoutesName","Login","QAILogin","Home","ForgotPassword","ResetPassword","Settings","Dashboard","AdminContracts","Users","Customers","ProcessContract","ProcessContracts","ZoneOverview","ContactUs","ContactPerson","RhenusCaseInput","Expenses","Summary","ChangePassowrd","CustomerContracts","GroupOverview","GroupCreate","GroupUpdate","Entities","RouteRestrictions","Administrator","QualityAssuranceInspector","TeamLeader","Accounting","Contracts","Button","_Fragment","renderAsButton","otherProps","className","buttonWrapperClassName","style","onClick","textClassName","colors","yellow","darkGray","lightGray","gray","white","keyButton","borderColor","iconColor","timetrack","timetrackBorderd","addTimeBorder","backgroundColor","lightDarkGray","lightYellow","lighterYellow","lightPink","someYellow","someDarkYellow","lightGreen","green","photoGray","partsNIOChart","partReworkedChart","billGreen","billRed","billOragne","red","lightRed","black","fonts","bold","boldItalic","extraLight","extraLightItalic","italic","light","lightItalic","medium","mediumItalic","regular","semiBold","semiBoldItalic","thin","thinItalic","globalInputStyle","disabled","margin","color","fontSize","lineHeight","fontFamily","opacity","baseTableTitle","p","borderWidth","borderStyle","isTableTitleOpen","cursor","borderBottom","borderBottomColor","left","top","zIndex","useGlobalStyles","makeStyles","label","fixed","isUserNotEditing","whiteSpace","title","buttonTextYellow","buttonText","buttonWrapper","width","borderRadius","border","padding","buttonWrapperBlack","buttonYellowText","buttonDarkWrapper","buttonWrapperSecondary","marginLeft","height","link","textDecoration","linkWrapper","description","homeButtonWrapper","justifyContent","display","alignItems","backArrowWrapper","position","tableTitle","tableTitleWrapper","tableTitleWrapperSticky","tableTitleWrapperStickyRight","right","buttonTextInverted","buttonWrapperInverted","buttonWrapperPlain","labelAddOn","subtitle","container","paddingLeft","paddingRight","marginBottom","filterWrapper","showFilters","pointerEvents","transition","filterWrapperClosed","maxHeight","marginTop","filterWrapperOpened","filterContainer","filterFieldWrapper","deleteLink","deleteLinkWrapper","authContainerWrapper","_p$window","_p$window2","window","minHeight","dialogTitle","dialogDescription","dialogDescriptionLink","cameraButton","underline","errorInputMenuItem","errorInputMenuItemWrapper","standardLink","smallTextLight","smallerTextLight","letterSpacing","smallText","smallTextDark","bigText","bigTextBold","mediumTextSemiLight","mediumTextSemiDark","mediumTextDark","inputTableStyle","textAlign","number","inputColor","inputTableStyleNumber","logo","ErrorIcon","_jsxs","viewBox","xmlns","fill","fillRule","stroke","strokeWidth","strokeLinecap","strokeLinejoin","cx","cy","r","d","TextFieldWithCSS","withStyles","root","borderBottomStyle","transform","TextField","useStyles","row","shrinkLabel","underlineField","input","inputWrapper","errorImageWrapper","marginRight","AuthTextField","classes","globalClasses","t","useTranslation","onChange","helperText","InputLabelProps","shrink","formControl","InputProps","LANGUAGE_KEY","languages","english","deutchland","active","inverted","textWrapper","Language","activeLanguage","onLanguagePress","LanguageList","setActiveLanguage","changeLanguage","Object","values","index","array","IQRLogoBlack","xmlnsXlink","xlinkHref","mask","titleWrapper","passwordWrapper","emailWrapper","languageWarpper","backgroundImage","backgroundImageWrapper","loginImage","loginImageWrapper","bottom","LoginScreen","windowWidth","windowHeight","useWindowSize","password","watch","loginFields","src","background","alt","loginPhoto","Grid","sm","Controller","defaultValue","control","rules","dataForLogin","render","_ref","onKeyPress","onLoginPress","onPinPress","_ref2","pin","onForgotPasswordPress","forgotTitle","CloseIcon","WarningIcon","Transition","forwardRef","ref","Slide","direction","StandardDialog","isOpen","setIsOpen","useImperativeHandle","setDialogState","val","Dialog","paper","notShrinkable","paperClass","wrapper","open","TransitionComponent","keepMounted","onClose","onCancle","testID","showWarning","warningIconWrapper","descriptionWrapper","onAccept","acceptText","cancleText","closeIconWarpper","maxWidth","flex","flexShrink","BackArrow","history","useHistory","dialogRef","useRef","onBackArrowPress","onBackPress","_dialogRef$current","edit","current","goBack","onAcceptDialog","onCancelDialog","_dialogRef$current2","ForgotPasswordScreen","dataForForgotPassword","onSearchPress","linkTitleWrapper","linkTitle","MailSentScreen","sentTitle","sentDescription","onLinkPress","setLoginError","ForgotPasswordState","ForgotPasswordContainer","handleSubmit","useForm","forgotPasswordState","setForgotPasswordState","EmailNotSent","emailRef","replace","historyState","location","LoginType","QALogin","getDataForForgotPassword","StandardLogin","EmailSent","EmailResent","push","route","required","numberPattern","minLength","maxLength","emailPattern","phoneNumberPattern","numberPatternBelow999","numberPatternAny","notEmptyPattern","BACK_SPACE","MAX_PASSWORD_LENGTH","standardLogin","pattern","qaiLogin","qaSentMail","qaResentMail","qaNotSentMail","standardSentMail","standardResentMail","standardNotSentMail","qaForgotPassword","standardForgotPassword","standardPasswordReset","redirectRoute","qaiPasswordReset","getLoginRedirectRoute","BackKey","boxShadow","Key","keyValue","NumericKeyboard","keys","i","tmp","floor","random","splice","getKeysForPin","spacing","center","forgotPasswordWrapper","backButtonWrapper","dot","dotWrapper","PinDialog","onOKButtonPress","pins","setPins","alignContent","justify","Array","_","slice","goToCustomer","goToCustomers","goToUser","goToUsers","goToAdminContracts","goToDashboard","goToHome","goToContract","goToProcessContract","goToStandardCase","goToForgotPassword","goToZoneOverview","goToRhenusCase","goToWorkingTime","goToExpenses","LoginContainer","legalNoticeRef","setValue","showPinModal","setShowPinModal","setPin","getDataForLogin","loginRes","_legalNoticeRef$curre","fullScreen","PaperProps","IQRLogo","wrappper","ResetPasswordScreen","globalClassess","resetPasswordFields","dataForResetPassword","onResetPasswordPress","repeatPassword","validate","getValues","ResetPasswordSuccessScreen","ResetPasswordContainer","isTokenValid","setIsTokenValid","isPasswordReseted","setIsPasswordReseted","query","URLSearchParams","useLocation","search","_props$match","match","ContactUsScreen","contactUsFields","_ref3","multiline","rows","onContactUsPress","ContactUsContainer","goToLogin","ErrorScreenIcon","gridWrapper","flexDirection","descriptionWarpper","reportErrorTitleWrapper","ErrorScreen","sendReport","setSendReport","href","refreshPage","reload","ErrorWrapper","Component","super","hasError","componentDidCatch","info","setState","CheckboxFilled","CheckboxEmpty","LegalNoticeDialog","warning","setWarning","accepted","setAccepted","onCheckboxPress","curr","ErrorServiceDialog","AvatarIcon","UserIcon","logoutWrapper","paddingBottom","image","imageWrapper","infoWrapper","paddingTop","settings","usernameWrapper","settingsWrapper","AvatarCard","standardDialogRef","unstable_batchedUpdates","Link","avatarContainer","avatarWrapper","avatarCard","showAvatarCard","overflow","Avatar","setShowAvatarCard","ClickAwayListener","onClickAway","onAvatarPress","prev","imageWarpper","nameWrapper","MenuItem","imageSource","accessRoles","some","SECOND","addWorkingTimeFields","addBreakTimeFields","exportWorkingTimeFields","workingTimeFields","initWorkingTimeFilters","filterWorkingTimeKeyValuePairs","freeze","createRecordTimeKeyValuePairs","filterRecordTimeTypeKeyValuePairs","timeFormat","initTimeValue","set","padNumber","num","String","padStart","timeFromSeconds","_seconds","leadingSign","hours","minutes","seconds","timeFromUnixToStringFormat","unixTime","isNegative","unixTimeAbs","calculateTimeDifference","momentFromTime","momentToTime","format","isBefore","add","updateWorkTime","timer","setWorkingTime","setTimeout","DropdownArrow","BarcodeScannerIcon","barcode","labelWrapper","withOutBackgroundColor","focused","maxInputWidth","dropdownContainer","dropdownArrowWrapper","onScanClick","dropdownMenuWrapper","rotate","StandardTextField","rotateArrow","setRotateArrow","setFocused","select","onPaste","placeholder","SelectProps","IconComponent","onOpen","MenuProps","rounded","anchorOrigin","vertical","horizontal","transformOrigin","getContentAnchorEl","selectMenu","onFocus","onBlur","endAdornment","PriceListTypes","priceListOptions","Admin","TruckDriver","QAISimpleRework","QAIVisualControl","Resident","ForkliftDriver","Teamlead","homeScreen","contractTitle","timeText","timeWrapper","button","inputWrapperDropdown","textOverflow","ReduceWorkTimeTracking","setButtonText","clearTimeout","target","recordToSave","parseInt","UsersIcon","x","y","filterUnits","radius","in","dy","stdDeviation","rx","ContractsIcon","DashboardIcon","CustomersIcon","EditContractIcon","GroupIcon","clipRule","colorInterpolationFilters","floodOpacity","in2","entitiesItems","containerWrapper","contentWrapper","recordWrapper","HomeScreen","useWindowHeight","admin","_createElement","HomeContainer","rowWrapper","SettingsScreen","onChangePasswordPress","SettingsContainer","goToChangePassword","minWidth","Spinner","ClipLoader","loading","size","StandardTextFieldWithControler","isUserEditing","AddressItem","localRules","MIN_CUSTOMER_LENGTH","toUpperCase","ButtonCell","ApproveCell","LinkTypeCell","redCell","TextTypeCell","sticky","markTextAsRed","split","SortingDir","dataSorter","field","sortedData","localeCompare","numeric","sensitivity","isMoment","ASC","reverse","ArrowSort","TitleTypeCell","displaySort","setSort","handlePress","DCS","WithButtonCell","redirectTo","Dots","dots","dotsWrapper","descriptionWarapper","isExpanded","ExpandableCell","setIsExpanded","setOverflow","spanRef","_spanRef$current","offsetHeight","DropdownIcon","borderTopWidth","menuList","WithDropdownCellType","_props$restProps4","_props$restProps5","anchorRef","TableCellWithCss","restProps","filterKey","_props$restProps","_props$restProps2","_props$restProps3","Menu","offsetWidth","MenuListProps","anchorEl","onBackdropClick","filterOptions","selected","_props$restProps6","_props$restProps7","onFilterChange","TableCellType","createStyles","head","body","TableCell","StandardTableCell","cell","_props$restProps8","_props$restProps9","_props$restProps10","_props$restProps11","Title","Sticky","onButtonClick","Approve","Text","Date","Expandable","onLinkClick","TitleWithDropdown","getTableCell","contactPersonListParams","titleType","itemWrapper","tableLayout","borderCollapse","stickyItemWrapper","stickyItemWrapperInverse","itemWrapperInverse","tableContainer","CustomTableBody","dataTablePramas","tableKey","filters","filtersOptions","buttonProps","onClickItemId","markTextAsRedFn","header","sortable","items","TableRow","_buttonProps$key","itemClass","_buttonProps$key2","TableContainer","Table","TableHead","ReactList","itemsRenderer","warpperRef","TableBody","innerRef","itemRenderer","ContactPersonList","transformedContactPersons","contactPersons","onEditPress","StandardCRUDButtons","editButtonText","updateButtonText","createButtonText","createStartNewButtonText","cancelButtonText","deleteButtonText","canDelete","childrenElement","removeEditUpdateCreateBtn","onSubmitPress","onSubmitStartNewPress","onCancelPress","onDeletePress","allowedToDelete","_dialogRef$current3","CheckedIcon","iconKey","UncheckedIcon","StandardRadioButton","isChecked","radioButtonValue","setCustomerInfo","customerFields","setAddressInfo","getCustomerOptionsKeyValuePairs","setLoading","watchFields","transformFields","formatedAddress","Plus","Arrow","GoBack","event","preventDefault","DeleteIcon","testIDs","HomeButton","workingTimeScreen","onHomePress","fullWidth","newPersonMessageWrapper","subtitleWrapper","textFieldWrapper","contactPersonWrapper","addNewWrapper","addressRow","CustomerScreen","_props$customer","billingAddressWatch","_props$customer2","deliveryAddressWatch","formDirty","rowGap","_ref4","_ref5","IconButton","appendEmailFields","selectedValue","emailFields","oldValues","newValue","removeEmailFields","_ref6","_ref7","radio","_ref8","sameAddress","onEditContactPerson","onCancelDeleteDialogPress","onDeleteCustomerDialogPress","deleteDialogRef","setCustomer","emails","setIsUserEditing","newCustomerWithoutID","createAddress","getCustomerWithoutContactPersons","newCustomerWithID","updateCustomer","updatedCustomer","getUpdatedCustomer","pathname","replaceCustomerHistoryData","addressFields","CustomerContainer","routeParams","useParams","formState","mounted","setMounted","fields","append","appendEmail","remove","removeEmail","useFieldArray","onCustomerScreenMount","_customer$otherEmails","tempArr","el","onUpdatePress","onCreatePress","isDirty","backTo","_deleteDialogRef$curr","deleteCustomer","_deleteDialogRef$curr2","initCustomerFilters","customerOverviewFields","filterData","filterKeys","reduce","toLowerCase","_item$date","isAfter","_item$fromDate","_item$date2","_item$toDate","checkIfUserStopWriting","FilterIcon","iconWrapper","clearWrapper","clear","Filter","onFilterPress","onClearAllPress","createFilterOptions","StandardAutoComplete","options","setOptions","hasOptions","setHasOptions","zoneNameRef","rerender","setRerender","uuidv4","limitTags","setLimitTags","autoCompleteRef","setOpen","useAutocompleteStyles","removeCloseIcon","withCheckbox","freeSolo","zoneName","option","filtered","multiple","inputValue","withOutAddOption","getLoading","opt","Autocomplete","inputRoot","optionClass","clearIndicator","listbox","listBox","renderTags","tagValue","getTagProps","Chip","chipHeight","deleteIcon","autoSelect","openText","closeText","getLimitTagsText","disableCloseOnSelect","noOptionsText","noOptionText","loadingText","popupIcon","tempNewValue","getOptionLabel","renderOption","menuItem","dropDownInputWrapper","checkboxWrapper","dropdownInput","renderInput","inputRow","zoneWrapper","endAdormentWrapper","CircularProgress","KeyValueAutoComplete","prevOptions","prevOption","closeIcon","withoutClose","clearText","getOptionSelected","withoutArrow","customGetOptionLabel","newWrapper","new","NewLink","userListParams","filterUserRoleKeyValuePairs","filterUserRole","createUserRoleKeyValuePairs","externalEmployeeRoles","originOfEmployeeKeyValuePairs","filterOriginOfEmployeeKeyValuePairs","filterOriginOfEmployee","UserList","transformedUsers","_filterUserRoleKeyVal","_filterOriginOfEmploy","find","latin","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","c","f","g","h","j","k","l","m","n","o","q","s","u","v","w","z","Á","Ă","Ắ","Ặ","Ằ","Ẳ","Ẵ","Ǎ","Â","Ấ","Ậ","Ầ","Ẩ","Ẫ","Ä","Ǟ","Ȧ","Ǡ","Ạ","Ȁ","À","Ả","Ȃ","Ā","Ą","Å","Ǻ","Ḁ","Ⱥ","Ã","Ꜳ","Æ","Ǽ","Ǣ","Ꜵ","Ꜷ","Ꜹ","Ꜻ","Ꜽ","Ḃ","Ḅ","Ɓ","Ḇ","Ƀ","Ƃ","Ć","Č","Ç","Ḉ","Ĉ","Ċ","Ƈ","Ȼ","Ď","Ḑ","Ḓ","Ḋ","Ḍ","Ɗ","Ḏ","Dz","Dž","Đ","Ƌ","DZ","DŽ","É","Ĕ","Ě","Ȩ","Ḝ","Ê","Ế","Ệ","Ề","Ể","Ễ","Ḙ","Ë","Ė","Ẹ","Ȅ","È","Ẻ","Ȇ","Ē","Ḗ","Ḕ","Ę","Ɇ","Ẽ","Ḛ","Ꝫ","Ḟ","Ƒ","Ǵ","Ğ","Ǧ","Ģ","Ĝ","Ġ","Ɠ","Ḡ","Ǥ","Ḫ","Ȟ","Ḩ","Ĥ","Ⱨ","Ḧ","Ḣ","Ḥ","Ħ","Í","Ĭ","Ǐ","Î","Ï","Ḯ","İ","Ị","Ȉ","Ì","Ỉ","Ȋ","Ī","Į","Ɨ","Ĩ","Ḭ","Ꝺ","Ꝼ","Ᵹ","Ꞃ","Ꞅ","Ꞇ","Ꝭ","Ĵ","Ɉ","Ḱ","Ǩ","Ķ","Ⱪ","Ꝃ","Ḳ","Ƙ","Ḵ","Ꝁ","Ꝅ","Ĺ","Ƚ","Ľ","Ļ","Ḽ","Ḷ","Ḹ","Ⱡ","Ꝉ","Ḻ","Ŀ","Ɫ","Lj","Ł","LJ","Ḿ","Ṁ","Ṃ","Ɱ","Ń","Ň","Ņ","Ṋ","Ṅ","Ṇ","Ǹ","Ɲ","Ṉ","Ƞ","Nj","Ñ","NJ","Ó","Ŏ","Ǒ","Ô","Ố","Ộ","Ồ","Ổ","Ỗ","Ö","Ȫ","Ȯ","Ȱ","Ọ","Ő","Ȍ","Ò","Ỏ","Ơ","Ớ","Ợ","Ờ","Ở","Ỡ","Ȏ","Ꝋ","Ꝍ","Ō","Ṓ","Ṑ","Ɵ","Ǫ","Ǭ","Ø","Ǿ","Õ","Ṍ","Ṏ","Ȭ","Ƣ","Ꝏ","Ɛ","Ɔ","Ȣ","Ṕ","Ṗ","Ꝓ","Ƥ","Ꝕ","Ᵽ","Ꝑ","Ꝙ","Ꝗ","Ŕ","Ř","Ŗ","Ṙ","Ṛ","Ṝ","Ȑ","Ȓ","Ṟ","Ɍ","Ɽ","Ꜿ","Ǝ","Ś","Ṥ","Š","Ṧ","Ş","Ŝ","Ș","Ṡ","Ṣ","Ṩ","Ť","Ţ","Ṱ","Ț","Ⱦ","Ṫ","Ṭ","Ƭ","Ṯ","Ʈ","Ŧ","Ɐ","Ꞁ","Ɯ","Ʌ","Ꜩ","Ú","Ŭ","Ǔ","Û","Ṷ","Ü","Ǘ","Ǚ","Ǜ","Ǖ","Ṳ","Ụ","Ű","Ȕ","Ù","Ủ","Ư","Ứ","Ự","Ừ","Ử","Ữ","Ȗ","Ū","Ṻ","Ų","Ů","Ũ","Ṹ","Ṵ","Ꝟ","Ṿ","Ʋ","Ṽ","Ꝡ","Ẃ","Ŵ","Ẅ","Ẇ","Ẉ","Ẁ","Ⱳ","Ẍ","Ẋ","Ý","Ŷ","Ÿ","Ẏ","Ỵ","Ỳ","Ƴ","Ỷ","Ỿ","Ȳ","Ɏ","Ỹ","Ź","Ž","Ẑ","Ⱬ","Ż","Ẓ","Ȥ","Ẕ","Ƶ","IJ","Œ","ᴀ","ᴁ","ʙ","ᴃ","ᴄ","ᴅ","ᴇ","ꜰ","ɢ","ʛ","ʜ","ɪ","ʁ","ᴊ","ᴋ","ʟ","ᴌ","ᴍ","ɴ","ᴏ","ɶ","ᴐ","ᴕ","ᴘ","ʀ","ᴎ","ᴙ","ꜱ","ᴛ","ⱻ","ᴚ","ᴜ","ᴠ","ᴡ","ʏ","ᴢ","á","ă","ắ","ặ","ằ","ẳ","ẵ","ǎ","â","ấ","ậ","ầ","ẩ","ẫ","ä","ǟ","ȧ","ǡ","ạ","ȁ","à","ả","ȃ","ā","ą","ᶏ","ẚ","å","ǻ","ḁ","ⱥ","ã","ꜳ","æ","ǽ","ǣ","ꜵ","ꜷ","ꜹ","ꜻ","ꜽ","ḃ","ḅ","ɓ","ḇ","ᵬ","ᶀ","ƀ","ƃ","ɵ","ć","č","ç","ḉ","ĉ","ɕ","ċ","ƈ","ȼ","ď","ḑ","ḓ","ȡ","ḋ","ḍ","ɗ","ᶑ","ḏ","ᵭ","ᶁ","đ","ɖ","ƌ","ı","ȷ","ɟ","ʄ","dz","dž","é","ĕ","ě","ȩ","ḝ","ê","ế","ệ","ề","ể","ễ","ḙ","ë","ė","ẹ","ȅ","è","ẻ","ȇ","ē","ḗ","ḕ","ⱸ","ę","ᶒ","ɇ","ẽ","ḛ","ꝫ","ḟ","ƒ","ᵮ","ᶂ","ǵ","ğ","ǧ","ģ","ĝ","ġ","ɠ","ḡ","ᶃ","ǥ","ḫ","ȟ","ḩ","ĥ","ⱨ","ḧ","ḣ","ḥ","ɦ","ẖ","ħ","ƕ","í","ĭ","ǐ","î","ï","ḯ","ị","ȉ","ì","ỉ","ȋ","ī","į","ᶖ","ɨ","ĩ","ḭ","ꝺ","ꝼ","ᵹ","ꞃ","ꞅ","ꞇ","ꝭ","ǰ","ĵ","ʝ","ɉ","ḱ","ǩ","ķ","ⱪ","ꝃ","ḳ","ƙ","ḵ","ᶄ","ꝁ","ꝅ","ĺ","ƚ","ɬ","ľ","ļ","ḽ","ȴ","ḷ","ḹ","ⱡ","ꝉ","ḻ","ŀ","ɫ","ᶅ","ɭ","ł","lj","ſ","ẜ","ẛ","ẝ","ḿ","ṁ","ṃ","ɱ","ᵯ","ᶆ","ń","ň","ņ","ṋ","ȵ","ṅ","ṇ","ǹ","ɲ","ṉ","ƞ","ᵰ","ᶇ","ɳ","ñ","nj","ó","ŏ","ǒ","ô","ố","ộ","ồ","ổ","ỗ","ö","ȫ","ȯ","ȱ","ọ","ő","ȍ","ò","ỏ","ơ","ớ","ợ","ờ","ở","ỡ","ȏ","ꝋ","ꝍ","ⱺ","ō","ṓ","ṑ","ǫ","ǭ","ø","ǿ","õ","ṍ","ṏ","ȭ","ƣ","ꝏ","ɛ","ᶓ","ɔ","ᶗ","ȣ","ṕ","ṗ","ꝓ","ƥ","ᵱ","ᶈ","ꝕ","ᵽ","ꝑ","ꝙ","ʠ","ɋ","ꝗ","ŕ","ř","ŗ","ṙ","ṛ","ṝ","ȑ","ɾ","ᵳ","ȓ","ṟ","ɼ","ᵲ","ᶉ","ɍ","ɽ","ↄ","ꜿ","ɘ","ɿ","ś","ṥ","š","ṧ","ş","ŝ","ș","ṡ","ṣ","ṩ","ʂ","ᵴ","ᶊ","ȿ","ɡ","ᴑ","ᴓ","ᴝ","ť","ţ","ṱ","ț","ȶ","ẗ","ⱦ","ṫ","ṭ","ƭ","ṯ","ᵵ","ƫ","ʈ","ŧ","ᵺ","ɐ","ᴂ","ǝ","ᵷ","ɥ","ʮ","ʯ","ᴉ","ʞ","ꞁ","ɯ","ɰ","ᴔ","ɹ","ɻ","ɺ","ⱹ","ʇ","ʌ","ʍ","ʎ","ꜩ","ú","ŭ","ǔ","û","ṷ","ü","ǘ","ǚ","ǜ","ǖ","ṳ","ụ","ű","ȕ","ù","ủ","ư","ứ","ự","ừ","ử","ữ","ȗ","ū","ṻ","ų","ᶙ","ů","ũ","ṹ","ṵ","ᵫ","ꝸ","ⱴ","ꝟ","ṿ","ʋ","ᶌ","ⱱ","ṽ","ꝡ","ẃ","ŵ","ẅ","ẇ","ẉ","ẁ","ⱳ","ẘ","ẍ","ẋ","ᶍ","ý","ŷ","ÿ","ẏ","ỵ","ỳ","ƴ","ỷ","ỿ","ȳ","ẙ","ɏ","ỹ","ź","ž","ẑ","ʑ","ⱬ","ż","ẓ","ȥ","ẕ","ᵶ","ᶎ","ʐ","ƶ","ɀ","ff","ffi","ffl","fi","fl","ij","œ","st","ₐ","ₑ","ᵢ","ⱼ","ₒ","ᵣ","ᵤ","ᵥ","ₓ","createUser","setGroups","_data$userFields$tlGr","getCreateService","userFields","setCreateUserError","getUserOptionsKeyValuePairs","property","setUserInfo","setTeamLeaders","_user$teamLeaderIDs","teamLeaders","updateUser","updatedUser","getUpdatedUser","replaceUserHistoryData","AutoComplete","isOptionEqualToValue","groupAtom","allCustomersAtom","fieldWrapper","pinWrapper","UserScreen","_user$role","_user$tlGroups","userRole","userRoles","onTeamLeaderFieldPress","onCancelDialogPress","onDeleteUserDialogPress","groups","allCustomers","MIN_USER_NAME_LENGTH","MIN_PHONE_NUMBER_LENGTH","_groups$map","group","_ref9","test","_ref10","_ref11","_ref12","MIN_ABBRIVIATION_LENGTH","_ref13","UserContainer","clearErrors","userFirstName","userLastName","setUserRoles","useSetAtom","user_id","onUserScreenMount","firstCharOfName","charAt","lastfName","cur","resUsers","teamleader","deleteUser","UserOverviewScreen","setShowFilters","filterListRef","searchRef","initUserFilters","clearAllFilters","UserOverviewContainer","setUsers","setFilters","allUsersRef","currentUser","tempValue","onNewUserClick","StandardCheckbox","customOnChange","customName","DatePickerWithStyles","KeyboardDatePicker","hide","StandardDatePicker","currentLanguage","MuiPickersUtilsProvider","utils","DateFnsUtils","locale","de","enGB","cancelLabel","okLabel","clearable","clearLabel","orientation","RemoveIcon","SPLITTER","pdf","FileLink","splittedName","showFormatedName","download","StandardFileInput","icon","newValues","setNewValues","onChangeHandler","files","rowName","accept","multipleAttachments","mulitpleWrapper","removeIconWrapper","itemIndex","removeFile","AttachmentIcon","PdfAttachmentIcon","BillingCycleType","ProjectType","CalculationType","TimePickerWithStyles","textWrap","KeyboardTimePicker","StandardTimePicker","ampm","openTo","minutesStep","step","shiftNameWrapper","SHIFT_NAME_WIDTH","fromWrapper","SHIFT_FROM_WIDTH","alignSelf","checkBoxWrapper","shiftWrapper","row123","ShiftInputRow","shiftControl","shiftErrors","shiftTypeName","shiftNameLabel","checkedShifts","onShiftCheckboxChange","clearShiftErrors","isRowChecked","inputSelect","inputWrapperSelect","TableTextField","customClassName","onKeyDown","SaveIcon","EditIcon","flexGrow","inputDisabled","errorRow","WorkLocationInputRow","workLocation","setWorkLocations","reset","editMode","setEditMode","onSavePress","old","toUpdate","parseFloat","onEdit","onDelete","ind","topWrapper","inputForFields","assignQAIWrapper","shiftErrorImageWrapper","statusWrapper","contractStatus","titleRow","summaryWrapper","iconWrappper","ContractScreen","_props$contract","_props$contract2","onSummaryPress","contractFields","pdfContract","Standard","RhenusType","BiWeekly","Monthly","WorkContract","TemporaryEmployment","HourlyRate","UnitPrice","priceListType","hourlyRateFields","hourlyRate","register","newPriceListType","removeHourlyRateField","_ref14","customers","workLocationErrors","workLocationControl","contractWorkLocationFields","_ref15","_ref16","onWorkLocationSubmitPress","_ref17","_ref18","assignTeamLeader","_ref19","assignQAI","_ref20","qais","_ref21","_ref22","_ref23","_ref24","_ref25","_ref26","_ref27","takingPhotos","_ref28","_ref29","attachmentsInputRef","_ref30","_ref31","onDeleteContractDialogPress","shiftsData","checkedShift","newContract","_teamLeaders$find","_qais$find2","_data$contractFields$","_data$contractFields$2","priceListArray","intType","hourly_rate","person","_qais$find","createNewContractWithoutID","setContract","updatedContract","prevShift","_contract$zones","_contract$zones2","createNewContractWithID","shiftName","ContractContainer","setShiftErrors","getShiftValues","setShiftValue","defaultValues","dayShift","earlyShift","lateShift","nightShift","handleWorkLocationSubmit","resetWorkLocationForm","setCheckedShifts","setQAIs","setCustomers","qaisLoading","mountedRefs","mountedCustomer","appendHourlyRateField","useCallback","leaders","_contract$tlGroups","shiftKeys","defaultCheckedShifts","defaultShift","_contract$priceList","contractPriceListFiltered","_contract$priceList2","_contract$priceList3","found","_contract$contactPers","currCustomer","contactPeopleIds","contactPeople","onContractScreenMount","tempZones","setBasicContractInfo","currentTeamLeader","deleteContract","setContractInfo","contractCustomer","goToSummary","newChecked","customerListParams","CustomerList","CustomerOverviewScreen","CustomerOverviewContainer","allCustomersRef","onNewContractPress","onNewContractScreenPress","createStandardInputCase","errorParts","refreshForm","updateAllStandardCaseInputs","_contract$workLocatio","_contract$workLocatio2","standardCaseInputFields","getStandardCaseInputWithoutID","createNewErrorInput","setErrorParts","checkNumberError","errorTypeError","checkIfCheckNumberIsValid","checkIfErrorTypeIsValid","checkIfThereAreEnoughTestedParts","findCurrentShift","currentShift","isBetween","closestIndex","smallestDifference","stratTimeDiff","endTimeDiff","setStandardInputCaseInfo","standardInputCase","checkNumberWrapper","CHECK_NUMBER_WIDTH","TABLE_PADDING","errorTypeWrapper","ERROR_TYPE_WIDTH","ErrorInputRow","onRemovePress","foucsed","TableAutoCompleteInput","setFoucsed","PhotoButton","CameraDialog","saveText","cancelText","isPreview","setIsPreview","setImage","webcamRef","cancel","previewPartWrapper","previewTitleWrapper","saveImage","retakeImage","Webcam","audio","screenshotFormat","videoConstraints","facingMode","ideal","photoWrapper","captureImage","maybeImage","getScreenshot","backgroundRepeat","backgroundSize","aprroveWrapper","approveTextWrapper","ApproveItem","fieldName","PhotoIcon","Image","BarcodeScanner","callback","codeReader","BrowserMultiFormatReader","gridRef","lineRef","lineRef2","capture","_webcamRef$current","imageSrc","canvas","document","getElementById","canvas2","context","getContext","context2","drawImage","decodeFromImage","toDataURL","interval","clearInterval","setInterval","onScan","totalCheckWrapper","totalCheckContentWrapper","bottomWrapper","errorTypeTitleWrapper","commentWrapper","uploadImageWrapper","tableRowWrapper","addErrorPart","inputCheckNumber","outline","errorWrapper","uploadPhotoWrapper","StandardCaseInputScreen","_props$standardCaseIn","_props$standardCaseIn2","_props$standardCaseIn3","_props$standardCaseIn4","_props$standardCaseIn5","_props$contract2$work","_props$contract2$work2","_props$contract3","_props$standardCaseIn7","_props$contract4","cameraDialogRef","barcodeDialogRef","standardCaseInput","partNumberOptions","_barcodeDialogRef$cur","disablePaste","_barcodeDialogRef$cur2","_barcodeDialogRef$cur3","_props$contractShifts","contractShifts","_props$standardCaseIn6","addControl","addErrors","Other","addNewErrorPart","errorPart","onRemoveErrorPart","commentRef","openCameraInCaptureMode","_cameraDialogRef$curr","openCameraInPreviewMode","_cameraDialogRef$curr2","_props$standardCaseIn8","onDeleteErrorInputDialogPress","contractIDRef","setStandardInputCase","addSetValue","tempStandardCase","getUpdatedStandradCase","replaceStandardCaseHistoryData","StandardCaseInputContainer","addHandleSubmit","addSetError","addReset","setContractShifts","allStandardCaseInputs","setAllStandardCaseInputs","contractId","onStandardInputScreenMount","inputs","resetAllValues","formRefresh","onCreateStartNewPress","indexOf","deleteStandardInput","SearchIcon","searchIcon","SearchInput","startAdornment","CustomerQAIZoneItem","onPress","CustomerQAIZoneOverview","onZonePress","rhenusOverviewParams","percentageOfErrorParts","StandardDateTimePicker","AdminTLZoneOverview","transformedZones","informations","information","subtract","rhenusOverviewFields","contractNumberWrapper","RhenusOverviewScreen","contractName","onSearchChange","RhenusOverviewContainer","setInformations","allZonesRef","fetchnig","btn","whiteText","darkText","disabledText","day","default","startEndDate","btnWrapper","startDateWrapper","endDateWrapper","rangeDate","CustomDate","hasRoundWrapper","btnStyle","buttonClassname","CalendarArrowIcon","IntervalDatePickerWithStyles","intervalCalendarTheme","createMuiTheme","overrides","MuiDialog","paperWidthSm","MuiPaper","MuiPickersBasePicker","pickerViewLandscape","pickerView","MuiDialogActions","MuiPickersStaticWrapper","staticWrapperRoot","MuiButton","textTransform","MuiPickersDay","daySelected","hidden","boxSizing","MuiTypography","body1","fontWeight","noWrap","MuiPickersCalendarHeader","iconButton","dayLabel","switchHeader","daysHeader","MuiDialogContent","MuiPickersCalendar","week","transitionContainer","leftArrowIcon","resetBtn","cancelBtn","useBtn","toolbarContainer","toolbarWrapper","toolbarContent","toolbarText","customDateBtn","IntervalDatePicker","isAccepted","renderDay","startDate","endDate","dayInCurrentMonth","currentDate","dayInWeek","getUTCDay","getDate","isSame","ThemeProvider","theme","maxDate","onDateChange","onKeyboardDateChange","onDatesCancel","autoOk","clearDates","onDatesAccept","dates","DialogProps","rightArrowIcon","ToolbarComponent","year","getFullYear","month","toLocaleString","standardCaseInputListParams","StandardCaseInputList","standardCaseInputs","allAssignedQAIs","typesOfInspections","dashboard","onViewPress","onApprovePress","setPartNumber","transformedStandardCaseInputs","_allAssignedQAIs$find","_shiftTimes$find","onPreviewImage","transformedListParams","tempParams","WorkingTimeIcon","ExpensessIcon","WorkinTimeMaterialExpensess","onWorkingTimePress","onMaterialAndExpensses","lastUpdateWrapper","StandardCaseOverviewScreen","_props$allAssignedQAI","_props$contractData$s","initStandardCaseInputFilters","useFormContext","onNewErrorCasePress","onExpensesPress","intervalDates","downloadTable","updatedText","generateAndDownloadExcel","overviewType","createElement","generateDocumentName","appendChild","click","removeChild","StandardCaseOverviewContainer","methods","setUpdatedText","setStandardCaseInputs","setAllAssignedQAIs","fetching","setIntervalDates","initializeContainer","smallestDate","earliestDate","getEarliestDate","getDataAutomaticly","cycleNumber","offset","utcOffset","dateMoment","isSameOrAfter","FormProvider","goToProcessContracts","isSameOrBefore","prevDates","_localStorage$getItem","lang","excelData","ProcessContractContainer","setContractData","contractListParams","ContractList","allQAIs","allTeamLeaders","buttonAction","transformedContract","_customers$find","_allTeamLeaders$find","loc","join","_allQAIs$find","_allQAIs$find2","today","valMoment","ContractOverviewScreen","_props$teamLeaders$fi","initContractFilter","viewType","ContractOverviewContainer","setAssignedQAIs","setContracts","allContractsRef","fetchingData","createRef","fetchData","PartStatusType","filterRhenusCasePartStatusKeyValuePairs","PartIO","PartNIO","PartRework","createRhenusCasePartStatusKeyValuePairs","textsForRhenusAutomaticalUpdate","rhenusCaseInputListParams","RhenusCaseList","rhenusCaseInputs","_createRhenusCasePart","table","rhenusCaseInputFields","getRhenusCaseInputWithoutID","setRhenusCaseInput","tempRhenusCase","getUpdatedRhenusCase","replaceRhenusCaseHistoryData","setRhenusInputCaseInfo","rhenusInputCase","setShift","setZone","approveWrapper","RhenusCaseScreen","_props$rhenusCaseInpu","_props$rhenusCaseInpu2","_props$rhenusCaseInpu3","_props$rhenusCaseInpu4","_props$rhenusCaseInpu5","_props$rhenusCaseInpu6","_props$rhenusCaseInpu7","_props$rhenusCaseInpu8","_props$rhenusCaseInpu9","_props$rhenusCaseInpu10","_props$rhenusCaseInpu11","_props$contract$amoun","_props$rhenusCaseInpu12","RhenusCaseContainer","setRhenusInputCase","contractFromState","onRhenusInputScreenMount","deleteRhenusInput","ZoneOverviewScreen","initRhenusCaseInputFilters","ZoneOverviewContainer","setRhenusCaseInputs","allRhenusCaseInputs","fetchingUser","ContactPersonScreen","contactPersonFields","onDeleteContactPersonDialogPress","setContactPersonInfo","createContactPerson","goToCustomerWithID","setContactPersonError","updateContactPerson","setContactPerson","updatedContactPerson","getUpdatedContactPerson","replaceContactPersonHistoryData","ContactPersonContainer","setCustomerID","contactPersonID","onContactScreenMount","deleteContactPerson","addWorkTime","manualWorkTime","newRecord","setDateWithTime","newDate","newTime","setEndDateWithTime","createWorkingTimeWithoutID","resetAddWorkingTimeFields","round","HOURS_24","createBreakTimeWithoutID","deleteWorkingTime","deleteRecord","records","allRecordsRef","setRecords","getDeleteService","filtereRecords","dateTimeErrorWrapper","trackItemWrapper","trackItemWrapperEnd","rowEnd","addItemWrapper","addTimeWrapper","addTimeItemWrapper","addContainer","breakpoints","down","addContainerInnerWrapper","inputAddWrapper","dateTimeInputWrapper","dateTimeWrapper","clockWrapper","AddWorkingTime","fromTime","onAddManualWorkTime","circle","billable","BilledItem","TypeOfTravel","initExpensesFilters","expensesFilterFields","initExpenses","billedOptions","filterBilledOptions","TravelOptions","Own","Company","TransportOptions","PKW","LKW","Transporter","Spedition","indexWrapper","toWrapper","timeTitleWrapper","buttonsWrapper","itemWrapperSpaceBetween","itemWrapperEnd","timeInputWrapper","inputKeyValueWrapper","dashWrapper","editIconWrapper","closeIconWrapper","autoCompleteInputAddWrapper","autoCompletewrapper","leftWrapper","alignItem","RecordItem","onSaveRecordPress","setEdit","toTime","timeDiff","utc","asMilliseconds","_data$addWorkingTimeF","_data$addWorkingTimeF2","recordDateMoment","defaultProfession","selectedProfession","onDeletePressHandler","translateWrapper","RecordTitle","sumTime","createBreakTimeWithID","BreakItem","_filterRecordTimeType","fullBreakTime","getHours","getMinutes","mainTitleWrapper","RecordListWorkingTime","transformedRecords","unix","scrollParentGetter","index2","trackContainer","TrackWorkingTime","onStopButtonPressWhenCIDAndRID","closeDialog","trackWrapper","rowCenter","gap","WorkingTimeScreen","_props$allUsers$find","_props$allUsers$find2","allUsers","Typography","changeExportFields","onDeleteRecordDialogPress","WorkingTimeContainer","setAllUsers","deleteRecordID","fetchingRecords","routeParmas","setExportWorkingTimeFields","manualWorkTimeFromUnix","onWorkingTimeMount","tempUsers","getUpdateWorkingTimeService","recordIndex","findIndex","cancelDialog","lan","newFilters","shouldFocus","AddExpensesItemKeyValue","mainClass","addExpenseFields","fieldKey","AddExpensesItemStandard","inputType","inputTextWrapper","rightAlign","AddExpensesItemStatic","textClass","AddExpensesItemDate","AddExpensesItemEdit","AddExpenseItemCellType","AddExpenseItemCell","addType","Edit","KeyValue","Static","baseWrapper","itemWrapperStickyLeft","itemWrapperStickyRight","AddExpenseTabelItem","expensesTablePramas","onAddPressHandler","onAddPress","_expensesTablePramas$","_expensesTablePramas$2","ExpensesButtonCellType","inputEndWrapper","ExpensesTextFieldCellType","ExpensesKeyValueCellType","currentValue","valueID","showAsValue","placeContent","ExpensesEditFieldCellType","setInvoice","goToInvoice","ExpensesItemCell","_props$reporter","isSummary","expense","ExpensesDateFieldCellType","itemWrapperSticky","itemWrapperInverted","itemWrapperStickyInverted","ExpenseTabelItem","expenseTablePramas","stickyClass","_expenseTablePramas$e","ExpensesTabel","expensesTableParams","tabType","expenses","underlineDark","underlineLight","TabTitle","underlineClass","titleClass","materialTabelParams","toolTabelParams","transportTabelParams","travelRules","regex","travelTabelParams","expensesTabelParams","tabWrapper","ExpensesScreen","onTabPress","ExpensesContainer","setTabType","setExpenses","allExpensesRef","filterNameRef","deleteExpenseID","onExpensesMount","getExpensesData","expenseID","newExpense","getUpdateExpense","updateExpensesData","expenseIndex","createExpense","createExpensesData","newExpenses","closeDeleteDialog","deleteExpense","deleteExpensesData","rangeWrapper","RECORD_LIST_PARAMS","RANGE","TIME","reporterWrapper","REPORTER","STATUS","RecordTitleSummary","timeTitle","dateWrapper","RecordItemSummary","BreakItemSummary","RecordListSummary","_props$users$find","_props$users$find2","SummaryExpensesWrapper","transformedSummaryData","summaryData","currentExpense","prevState","currKey","CalendarIcon","invoiceTableParams","yearText","section","tableMargin","InvoiceListSummary","transformedInvoices","dateOfInvoiceArr","inv","maxYear","max","min","invoicesArr","horizontalLine","openCloseWrapper","tableWrapper","btnText","pickerInputRight","pickerInput","last","calendarIcon","periodLabel","btnContainer","SummaryScreen","isAdmin","startBillingDates","openCloseContractPress","onDialogCancel","clearStartBillingDates","onStartBillingDateChange","onStartBillingDatesAccept","onStartBillingDatesCancel","openDialog","onSubmit","onKeyboardBillingDateChange","startBillingFields","billingPeriodStart","billingPeriodEnd","initSummaryFilters","SummaryContainer","setContractStatus","setSummaryData","allSummaryDataRef","setStartBillingDates","onSummaryMount","getSummaryData","newContractStatus","replaceSummaryHistoryData","previousStartDate","previousEndDate","ChangePasswordScreen","changePasswordFields","onChangePasswordPRess","ChangePasswordContainer","SimpleDataTable","DATA","column","employeeTotalAmount","totalBillableHours","toFixed","billedHours","notBilledHours","renderActiveShape","totalData","RADIAN","PI","midAngle","innerRadius","outerRadius","startAngle","endAngle","payload","sin","cos","sx","sy","mx","my","ex","ey","textAnchor","Sector","renderCustomLegend","entry","initDashboardFilters","dashboardInputFields","chartColors","BackIcon","MAX_TABLE_HEIGHT","zoneSubtitle","zoneRow","chartContainer","backIcon","DashboardScreen","_props$teamLeader","_props$teamLeader2","_props$contactQAI","_props$contactQAI2","_find","useWindowWidth","activeIndex","setActiveIndex","chartData","getChartData","currentZone","zoneInformations","getTotalPartsTested","onZoneOverviewPress","onBackIconPress","PieChart","Legend","verticalAlign","align","layout","content","Pie","dataKey","activeShape","onMouseEnter","onPieMouseEnter","Cell","LabelList","formatter","DashboardContainer","setErrors","setTeamLeader","setContactQAI24","setCurrentZone","setZoneInformations","allErrors","zoneErrors","setContractSummary","allInputs","getErrorService","acc","getZoneData","newData","setRhenusOverviewInforamtions","shown","Notification","setShown","setDisplay","onCloseNotification","invoiceUnderline","downloadWrapper","downloadBtn","InvoiceScreen","_props$invoice","downloadAsPdf","invoiceInputFields","closeBilling","onDeleteInvoiceDialogPress","InvoiceContainer","invoice_id","linkSource","downloadLink","fileName","MuiAutocomplete","formFields","groupName","groupMembers","GroupCreatePage","mode","teamLeadsIds","_errors$groupName","noMargin","onCancel","addMember","teamLeadersAtom","GroupUpdatePage","_state$name","_state$name2","groupRef","shouldUnregister","openDeleteDialog","getTeamLeaders","leader","_groupRef$current$gro","_groupRef$current3","preparedData","resetForm","_groupRef$current","_groupRef$current2","Header","TABLE_HEAD","GroupList","groupNameFilter","setGroupNameFilter","groupMemberFilter","setGroupMemberFilter","groupData","startsWith","member","MainRouter","previousUserRole","usePrevious","recordRef","Router","Switch","Route","strict","exact","path","RouteGuard","homeRoute","loginRoute","authenticationToken","Process","Redirect","createBrowserHistory","InitWrapper","setAllCustomers","App","tz","setDefault","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","StrictMode"],"mappings":"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AAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,KACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,OAAG,IACHC,SAAG,IACHC,SAAG,IACHC,OAAG,IACHC,OAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,OAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,KACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,KACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,OAAG,IACHC,SAAG,KACHC,OAAG,IACHC,SAAG,IACHC,SAAG,IACHC,OAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,OAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,OAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,OAAG,IACHC,SAAG,IACHC,OAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,KACHC,SAAG,KACHC,SAAG,IACHC,SAAG,IACHC,SAAG,KACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,KACHC,OAAG,IACHC,SAAG,IACHC,SAAG,IACHC,OAAG,IACHC,SAAG,IACHC,OAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,OAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,KACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,OAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,KACHC,SAAG,KACHC,SAAG,IACHC,SAAG,KACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,KACHC,SAAG,IACHC,SAAG,KACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,OAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,OAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,OAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,OAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,OAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,OAAG,IACHC,SAAG,KACHC,OAAG,KACHC,SAAG,KACHC,SAAG,KACHC,SAAG,KACHC,SAAG,KACHC,SAAG,KACHC,SAAG,KACHC,SAAG,KACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,OAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,KACHC,SAAG,KACHC,OAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,OAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,OAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,OAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,KACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,KACHC,OAAG,IACHC,SAAG,IACHC,SAAG,IACHC,OAAG,IACHC,OAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,OAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,KACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,KACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,OAAG,IACHC,SAAG,KACHC,OAAG,IACHC,SAAG,IACHC,SAAG,IACHC,OAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,OAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,OAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,OAAG,IACHC,SAAG,IACHC,OAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,KACHC,SAAG,KACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,KACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,KACHC,SAAG,IACHC,SAAG,KACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,KACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,KACHC,OAAG,IACHC,SAAG,IACHC,SAAG,IACHC,OAAG,IACHC,SAAG,IACHC,OAAG,IACHC,SAAG,IACHC,SAAG,IACHC,SAAG,IA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","file":"static/js/main.0aa455f6.chunk.js","sourcesContent":["const configValues = {\n\tBACKEND_SCHEME: '',\n\tBACKEND: '/jsonrpc2/buggy.ants.house/',\n\tBACKEND_VERSION: 'v1',\n\tTIMEOUT: 20,\n};\n\nexport default configValues;","import configValues from './configValues';\n\nclass Config {\n\tprivate BACKEND_SCHEME: string;\n\tprivate BACKEND: string;\n\tprivate BACKEND_VERSION: string;\n\tprivate TIMEOUT: number;\n\n\tconstructor(scheme: string, backend: string, version: string, timeout: number) {\n\t\tthis.BACKEND_SCHEME = scheme;\n\t\tthis.BACKEND = backend;\n\t\tthis.BACKEND_VERSION = version;\n\t\tthis.TIMEOUT = timeout;\n\t}\n\n\tpublic static getConfig(): Config {\n\t\treturn new Config(\n\t\t\tconfigValues.BACKEND_SCHEME,\n\t\t\tconfigValues.BACKEND,\n\t\t\tconfigValues.BACKEND_VERSION,\n\t\t\tconfigValues.TIMEOUT\n\t\t);\n\t}\n\n\tpublic getBackendScheme() {\n\t\treturn this.BACKEND_SCHEME;\n\t}\n\n\tpublic getBackend() {\n\t\treturn this.BACKEND;\n\t}\n\n\tpublic getBackendVersion() {\n\t\treturn this.BACKEND_VERSION;\n\t}\n\n\tpublic getTimeout() {\n\t\treturn this.TIMEOUT;\n\t}\n}\n\nexport default Config;\n","import User from '../../service/types/User';\n\nexport type AuthState = {\n\tuser: User | undefined;\n};\n\nexport type Action = {\n\ttype: string;\n\t[key: string]: any;\n};\n\nexport const authInitialState: AuthState = {\n\tuser: undefined,\n};\n\nexport const AUTH_TOKEN = 'AUTH_TOKEN';\nexport const REFRESH_TOKEN = 'REFRESH_TOKEN';\n\nexport const SET_USER = 'SET_USER';\n\nconst authReducer = (state = authInitialState, action: Action) => {\n\tswitch (action.type) {\n\t\tcase SET_USER:\n\t\t\treturn { ...state, user: action.user };\n\n\t\tdefault:\n\t\t\treturn state;\n\t}\n};\n\nexport default authReducer;\n","import React from 'react';\nimport User from '../../service/types/User';\nimport { AuthState } from './authReducer';\n\nexport type AuthContextActions = {\n\tsetUser: (user: User | undefined) => void;\n};\n\nconst initialStateContext: AuthState = {\n\tuser: undefined,\n};\n\nconst initalActionContext: AuthContextActions = {\n\tsetUser: (user: User | undefined) => {},\n};\n\nexport const AuthStateContext = React.createContext(initialStateContext);\nexport const AuthActionsContext = React.createContext(initalActionContext);\n","import React from 'react';\n\nimport { AuthActionsContext, AuthStateContext } from './AuthContext';\n\nexport function useAuthStateContext() {\n\treturn React.useContext(AuthStateContext);\n}\n\nexport function useAuthActionContext() {\n\treturn React.useContext(AuthActionsContext);\n}\n","import React from 'react';\nimport { ErrorState } from './errorReducer';\n\nexport type ErrorContextActions = {\n\tsetError: (error: string) => void;\n};\n\nconst initialStateContext: ErrorState = {\n\terror: '',\n};\n\nconst initalActionContext: ErrorContextActions = {\n\tsetError: (error: string) => {},\n};\n\nexport const ErrorStateContext = React.createContext(initialStateContext);\nexport const ErrorActionsContext = React.createContext(initalActionContext);\n","import React from 'react';\n\nimport { ErrorActionsContext, ErrorStateContext } from './ErrorContext';\n\nexport function useErrorStateContext() {\n\treturn React.useContext(ErrorStateContext);\n}\n\nexport function useErrorActionContext() {\n\treturn React.useContext(ErrorActionsContext);\n}\n","import React from 'react';\nimport { NotificationInterface, NotificationState } from './notificationReducer';\n\nexport type NotificationContextActions = {\n\tsetNotification: (notification: NotificationInterface) => void;\n\thideNotification: () => void;\n};\n\nconst initialStateContext: NotificationState = {\n\tvisible: false,\n\tnotification: {\n\t\ttext: '',\n\t\tadditional: '',\n\t},\n};\n\nconst initalActionContext: NotificationContextActions = {\n\tsetNotification: (notification: NotificationInterface) => {},\n\thideNotification: () => {},\n};\n\nexport const NotificationStateContext = React.createContext(initialStateContext);\nexport const NotificationActionsContext = React.createContext(initalActionContext);\n","import React from 'react';\n\nimport { NotificationActionsContext, NotificationStateContext } from './NotificationContext';\n\nexport function useNotificationStateContext() {\n\treturn React.useContext(NotificationStateContext);\n}\n\nexport function useNotificationActionContext() {\n\treturn React.useContext(NotificationActionsContext);\n}\n","import React from 'react';\nimport WorkingTime from '../../service/types/WorkingTime';\nimport WorkTimeTrack from '../../service/types/WorkTimeTrack';\nimport { WorkingTimeState } from './workingTimeReducer';\n\nexport type WorkingTimeContextActions = {\n\tsetRecord: (record: WorkTimeTrack | undefined) => void;\n\tstartTracking: (record: WorkTimeTrack) => Promise;\n\tstopTracking: (record: WorkTimeTrack) => Promise;\n};\n\nconst initialStateContext: WorkingTimeState = {\n\trecord: undefined,\n};\n\nconst initalActionContext: WorkingTimeContextActions = {\n\tsetRecord: (record: WorkTimeTrack | undefined) => {},\n\tstartTracking: (record: WorkTimeTrack) => {\n\t\treturn Promise.resolve();\n\t},\n\tstopTracking: (record: WorkTimeTrack) => {\n\t\treturn Promise.resolve();\n\t},\n};\n\nexport const WorkingTimeStateContext = React.createContext(initialStateContext);\nexport const WorkingTimeActionsContext = React.createContext(initalActionContext);\n","import React from 'react';\n\nimport { WorkingTimeActionsContext, WorkingTimeStateContext } from './WorkingTimeContext';\n\nexport function useWorkingTimeStateContext() {\n\treturn React.useContext(WorkingTimeStateContext);\n}\n\nexport function useWorkingTimeActionContext() {\n\treturn React.useContext(WorkingTimeActionsContext);\n}\n","import { Service } from '../service/service';\nimport Contract from '../service/types/Contract';\nimport User, { CreateEmployeeParams, UpdateEmployeeParams } from '../service/types/User';\nimport { QAILoginParams, ResetPasswordParams, UserLoginParams } from '../helpers/userHelper/generalUserHelper';\nimport Customer from '../service/types/Customer';\nimport StandardCaseInput, { StandardCaseFilterInterface } from '../service/types/StandardCase';\nimport { ContactParams } from '../containers/ContactUsContainer';\nimport RhenusOverviewInformation from '../service/types/RhenusOverviewInformation';\nimport RhenusCase from '../service/types/RhenusCase';\nimport WorkingTime from '../service/types/WorkingTime';\nimport MaterialTool from '../service/types/MaterialTool';\nimport Travel from '../service/types/Travel';\nimport { ContractStatusType, ShiftInterface } from '../helpers/contractHelper/generalContractHelper';\nimport WorkTimeTrack from '../service/types/WorkTimeTrack';\nimport { LoginResponse } from '../consts/login';\nimport Transport from '../service/types/Transport';\nimport { Moment } from 'moment';\nimport BreakTime from '../service/types/BreakTime';\nimport { DashboardFilterInterface } from '../helpers/dashboardHelper/generalDashboardHelper';\nimport { WorkingTimeFilterInterface } from '../helpers/workingTimeHelper/generalWorkingTimeHelper';\nimport { InvoiceItem } from '../service/types/Invoice';\nimport { CreateGroup, UpdateGroup } from '../pages/GroupCreatePage';\nimport { Group } from '../pages/groupOverview/GroupOverview';\n\nclass ErrorMiddleware implements Service {\n\tnext: Service;\n\tsetError: (error: string) => void;\n\tconstructor(next: Service, setError?: (error: string) => void) {\n\t\tthis.next = next;\n\t\tthis.setError = setError ? setError : () => {};\n\t}\n\n\tpublic setService(next: Service) {\n\t\tthis.next = next;\n\t}\n\n\tpublic setJWTToken(JWTToken: string) {\n\t\tthis.next.setJWTToken(JWTToken);\n\t}\n\n\tpublic async login(params: UserLoginParams): Promise {\n\t\ttry {\n\t\t\treturn await this.next.login(params);\n\t\t} catch (e) {\n\t\t\tconst error = JSON.parse(e.message);\n\t\t\tif (error && error.error && !(error.error.code === -32001 || error.error.code === -32006)) {\n\t\t\t\tthis.setError('login_request');\n\t\t\t}\n\t\t\tthrow e;\n\t\t}\n\t}\n\n\tpublic async loginQAI(params: QAILoginParams): Promise {\n\t\ttry {\n\t\t\treturn await this.next.loginQAI(params);\n\t\t} catch (e) {\n\t\t\tconst error = JSON.parse(e.message);\n\t\t\tif (error && error.error && !(error.error.code === -32001 || error.error.code === -32006)) {\n\t\t\t\tthis.setError('login_qai_request');\n\t\t\t}\n\t\t\tthrow e;\n\t\t}\n\t}\n\n\tpublic async checkToken(): Promise {\n\t\treturn await this.next.checkToken();\n\t}\n\tpublic async getAuthToken(refreshToken: string): Promise {\n\t\treturn await this.next.getAuthToken(refreshToken);\n\t}\n\n\tpublic async requestPasswordReset(email: string): Promise {\n\t\ttry {\n\t\t\treturn await this.next.requestPasswordReset(email);\n\t\t} catch (e) {\n\t\t\tconst error = JSON.parse(e.message);\n\n\t\t\tif (error && error.error && !(error.error.code === -32001 || error.error.code === -32006)) {\n\t\t\t\tthis.setError('request_password_reset_request');\n\t\t\t}\n\t\t\tthrow e;\n\t\t}\n\t}\n\n\tpublic async checkPasswordRessetToken(token: string): Promise {\n\t\ttry {\n\t\t\treturn await this.next.checkPasswordRessetToken(token);\n\t\t} catch (e) {\n\t\t\tthis.setError('check_password_reset_token_request');\n\t\t\tthrow e;\n\t\t}\n\t}\n\n\tpublic async resetPassword(params: ResetPasswordParams): Promise {\n\t\ttry {\n\t\t\treturn await this.next.resetPassword(params);\n\t\t} catch (e) {\n\t\t\tthis.setError('reset_password_request');\n\t\t\tthrow e;\n\t\t}\n\t}\n\tpublic async resetPasswordQAI(params: ResetPasswordParams): Promise {\n\t\ttry {\n\t\t\treturn await this.next.resetPasswordQAI(params);\n\t\t} catch (e) {\n\t\t\tthis.setError('reset_password_request');\n\t\t\tthrow e;\n\t\t}\n\t}\n\tpublic async getAllUsers(): Promise {\n\t\treturn await this.next.getAllUsers();\n\t}\n\n\tpublic async readGroups(): Promise {\n\t\treturn await this.next.readGroups();\n\t}\n\tpublic async createGroup(data: CreateGroup): Promise {\n\t\treturn await this.next.createGroup(data);\n\t}\n\tpublic async readGroup(id: number): Promise {\n\t\treturn await this.next.readGroup(id);\n\t}\n\tpublic async updateGroup(data: UpdateGroup): Promise {\n\t\treturn await this.next.updateGroup(data);\n\t}\n\tpublic async deleteGroup(id: number): Promise {\n\t\treturn await this.next.deleteGroup(id);\n\t}\n\n\tpublic async logout(): Promise {\n\t\ttry {\n\t\t\treturn await this.next.logout();\n\t\t} catch (e) {\n\t\t\tthis.setError('logout_request');\n\t\t\tthrow e;\n\t\t}\n\t}\n\n\tpublic async getContracts(): Promise {\n\t\treturn await this.next.getContracts();\n\t}\n\tpublic async createEmployee(params: CreateEmployeeParams): Promise {\n\t\ttry {\n\t\t\treturn await this.next.createEmployee(params);\n\t\t} catch (e) {\n\t\t\tconst error = JSON.parse(e.message);\n\t\t\tif ((error && error.error && error.code !== 32000) || error.error.code === -32006) {\n\t\t\t\tthis.setError('create_employee_request');\n\t\t\t}\n\t\t\tthrow e;\n\t\t}\n\t}\n\tpublic async createQAI(params: CreateEmployeeParams): Promise {\n\t\ttry {\n\t\t\treturn await this.next.createQAI(params);\n\t\t} catch (e) {\n\t\t\tconst error = JSON.parse(e.message);\n\n\t\t\tif (error && error.error && !(error.error.code === -32000 || error.error.code === -32006)) {\n\t\t\t\tthis.setError('create_employee_request');\n\t\t\t}\n\t\t\tthrow e;\n\t\t}\n\t}\n\tpublic async getUserInfo(): Promise {\n\t\treturn await this.next.getUserInfo();\n\t}\n\tpublic async getAllQAIs(): Promise {\n\t\treturn await this.next.getAllQAIs();\n\t}\n\tpublic async getAllTeamLeaders(): Promise {\n\t\treturn await this.next.getAllTeamLeaders();\n\t}\n\tpublic async getAllCustomers(): Promise {\n\t\treturn await this.next.getAllCustomers();\n\t}\n\tpublic async getAllQAIsByTeamLeader(teamLeaderID: number): Promise {\n\t\treturn await this.next.getAllQAIsByTeamLeader(teamLeaderID);\n\t}\n\tpublic async createCustomer(customer: Customer): Promise {\n\t\ttry {\n\t\t\treturn await this.next.createCustomer(customer);\n\t\t} catch (e) {\n\t\t\tthis.setError('create_customer_request');\n\t\t\tthrow e;\n\t\t}\n\t}\n\tpublic async createUserForCustomer(id: number, params: CreateEmployeeParams): Promise {\n\t\ttry {\n\t\t\treturn await this.next.createUserForCustomer(id, params);\n\t\t} catch (e) {\n\t\t\tconst error = JSON.parse(e.message);\n\t\t\tif (error && error.error && error.error.code !== -32000) {\n\t\t\t\tthis.setError('create_contact_person_request');\n\t\t\t}\n\t\t\tthrow e;\n\t\t}\n\t}\n\tpublic async getCustomerFromUser(id: number): Promise {\n\t\treturn await this.next.getCustomerFromUser(id);\n\t}\n\tpublic async deleteUserByID(id: number): Promise {\n\t\ttry {\n\t\t\treturn await this.next.deleteUserByID(id);\n\t\t} catch (e) {\n\t\t\tthis.setError('delete_user_request');\n\t\t\tthrow e;\n\t\t}\n\t}\n\tpublic async updateUserByID(id: number, params: UpdateEmployeeParams): Promise {\n\t\ttry {\n\t\t\treturn await this.next.updateUserByID(id, params);\n\t\t} catch (e) {\n\t\t\tthis.setError('update_user_request');\n\t\t\tthrow e;\n\t\t}\n\t}\n\tpublic async updateCustomerByID(id: number, customer: Customer): Promise {\n\t\ttry {\n\t\t\treturn await this.next.updateCustomerByID(id, customer);\n\t\t} catch (e) {\n\t\t\tthis.setError('update_customer_request');\n\t\t\tthrow e;\n\t\t}\n\t}\n\tpublic async getAllStandardCaseInputs(contractID: number): Promise {\n\t\treturn await this.next.getAllStandardCaseInputs(contractID);\n\t}\n\tpublic async updateStandradCaseInput(contractID: number, errorInput: StandardCaseInput): Promise {\n\t\ttry {\n\t\t\treturn await this.next.updateStandradCaseInput(contractID, errorInput);\n\t\t} catch (e) {\n\t\t\tthis.setError('update_standrad_case_input_request');\n\t\t\tthrow e;\n\t\t}\n\t}\n\tpublic async createContract(contract: Contract): Promise {\n\t\ttry {\n\t\t\treturn await this.next.createContract(contract);\n\t\t} catch (e) {\n\t\t\tthis.setError('create_contract_request');\n\t\t\tthrow e;\n\t\t}\n\t}\n\n\tpublic async createInvoice(\n\t\tcontractID: number,\n\t\tdateOfInvoice: Moment,\n\t\tfromDate: Moment,\n\t\ttoDate: Moment\n\t): Promise {\n\t\ttry {\n\t\t\treturn await this.next.createInvoice(contractID, dateOfInvoice, fromDate, toDate);\n\t\t} catch (e) {\n\t\t\tthis.setError('create_invoice_request');\n\t\t\tthrow e;\n\t\t}\n\t}\n\n\tpublic async updateInvoice(\n\t\tid: number,\n\t\tcreationDate: Moment,\n\t\tdateOfInvoice: Moment,\n\t\tfromDate: Moment,\n\t\ttoDate: Moment,\n\t\tbillNumber: string\n\t): Promise {\n\t\ttry {\n\t\t\treturn await this.next.updateInvoice(id, creationDate, dateOfInvoice, fromDate, toDate, billNumber);\n\t\t} catch (e) {\n\t\t\tthrow e;\n\t\t}\n\t}\n\n\tpublic async completeInvoice(id: number): Promise {\n\t\ttry {\n\t\t\treturn await this.next.completeInvoice(id);\n\t\t} catch (e) {\n\t\t\tthrow e;\n\t\t}\n\t}\n\n\tpublic async deleteInvoice(id: number): Promise {\n\t\ttry {\n\t\t\treturn await this.next.deleteInvoice(id);\n\t\t} catch (e) {\n\t\t\tthrow e;\n\t\t}\n\t}\n\n\tpublic async deleteContractByID(contractID: number): Promise {\n\t\ttry {\n\t\t\treturn await this.next.deleteContractByID(contractID);\n\t\t} catch (e) {\n\t\t\tthis.setError('delete_contract_request');\n\t\t\tthrow e;\n\t\t}\n\t}\n\tpublic async contact(params: ContactParams): Promise {\n\t\ttry {\n\t\t\treturn await this.next.contact(params);\n\t\t} catch (e) {\n\t\t\tthis.setError('contact');\n\t\t\tthrow e;\n\t\t}\n\t}\n\tpublic async createStandradCaseInput(contractID: number, errorInput: StandardCaseInput): Promise {\n\t\ttry {\n\t\t\treturn await this.next.createStandradCaseInput(contractID, errorInput);\n\t\t} catch (e) {\n\t\t\tthis.setError('create_standrad_case_input_request');\n\t\t\tthrow e;\n\t\t}\n\t}\n\tpublic async deleteStandradCaseInputByID(contractID: number, errorInputID: number): Promise {\n\t\ttry {\n\t\t\treturn await this.next.deleteStandradCaseInputByID(contractID, errorInputID);\n\t\t} catch (e) {\n\t\t\tthis.setError('delete_standrad_case_input_request');\n\t\t\tthrow e;\n\t\t}\n\t}\n\tpublic async getRhenusOverviewInformations(\n\t\tcontractID: number,\n\t\tfrom: Moment,\n\t\tto: Moment\n\t): Promise {\n\t\treturn await this.next.getRhenusOverviewInformations(contractID, from, to);\n\t}\n\tpublic async getZoneCaseInputs(contractID: number, zoneID: number): Promise {\n\t\treturn await this.next.getZoneCaseInputs(contractID, zoneID);\n\t}\n\tpublic async deleteRhenusCaseInputByID(contractID: number, zoneID: number, errorID: number): Promise {\n\t\ttry {\n\t\t\treturn await this.next.deleteRhenusCaseInputByID(contractID, zoneID, errorID);\n\t\t} catch (e) {\n\t\t\tthis.setError('delete_standrad_case_input_request');\n\t\t\tthrow e;\n\t\t}\n\t}\n\tpublic async createRhenusCaseInput(\n\t\tcontractID: number,\n\t\tzoneID: number,\n\t\trhenusCaseInput: RhenusCase\n\t): Promise {\n\t\ttry {\n\t\t\treturn await this.next.createRhenusCaseInput(contractID, zoneID, rhenusCaseInput);\n\t\t} catch (e) {\n\t\t\tthis.setError('create_standrad_case_input_request');\n\t\t\tthrow e;\n\t\t}\n\t}\n\tpublic async updateRhenusCaseInput(\n\t\tcontractID: number,\n\t\tzoneID: number,\n\t\trhenusCaseInput: RhenusCase\n\t): Promise {\n\t\ttry {\n\t\t\treturn await this.next.updateRhenusCaseInput(contractID, zoneID, rhenusCaseInput);\n\t\t} catch (e) {\n\t\t\tthis.setError('update_standrad_case_input_request');\n\t\t\tthrow e;\n\t\t}\n\t}\n\tpublic async sendErrorReport(message: string): Promise {\n\t\ttry {\n\t\t\treturn await this.next.sendErrorReport(message);\n\t\t} catch (e) {\n\t\t\tthis.setError('sendErrorReport');\n\t\t\tthrow e;\n\t\t}\n\t}\n\tpublic async addManualWorkTime(contractID: number, worktime: WorkingTime): Promise {\n\t\ttry {\n\t\t\treturn await this.next.addManualWorkTime(contractID, worktime);\n\t\t} catch (e) {\n\t\t\tthis.setError('add_manual_working_time_request');\n\t\t\tthrow e;\n\t\t}\n\t}\n\tpublic async addManualBreakTime(contractID: number, worktime: BreakTime): Promise {\n\t\ttry {\n\t\t\treturn await this.next.addManualBreakTime(contractID, worktime);\n\t\t} catch (e) {\n\t\t\tthis.setError('add_manual_working_time_request');\n\t\t\tthrow e;\n\t\t}\n\t}\n\tpublic async startTrackingTime(contractID: number): Promise {\n\t\ttry {\n\t\t\treturn await this.next.startTrackingTime(contractID);\n\t\t} catch (e) {\n\t\t\tthis.setError('start_tracking_time_request');\n\t\t\tthrow e;\n\t\t}\n\t}\n\tpublic async stopTrackingTime(\n\t\tcontractID: number,\n\t\tprofession: number | undefined\n\t): Promise {\n\t\ttry {\n\t\t\treturn await this.next.stopTrackingTime(contractID, profession);\n\t\t} catch (e) {\n\t\t\tthis.setError('stop_tracking_time_request');\n\t\t\tthrow e;\n\t\t}\n\t}\n\tpublic async getAllRecords(contractID: number): Promise<(WorkingTime | BreakTime)[]> {\n\t\treturn await this.next.getAllRecords(contractID);\n\t}\n\n\tpublic async readShifts(contractID: number): Promise {\n\t\treturn await this.next.readShifts(contractID);\n\t}\n\n\tpublic async deleteRecordByID(contractID: number, recordID: number): Promise {\n\t\ttry {\n\t\t\treturn await this.next.deleteRecordByID(contractID, recordID);\n\t\t} catch (e) {\n\t\t\tthis.setError('delete_working_time_request');\n\t\t\tthrow e;\n\t\t}\n\t}\n\tpublic async deleteBreakByID(contractID: number, recordID: number): Promise {\n\t\ttry {\n\t\t\treturn await this.next.deleteBreakByID(contractID, recordID);\n\t\t} catch (e) {\n\t\t\tthis.setError('delete_working_time_request');\n\t\t\tthrow e;\n\t\t}\n\t}\n\tpublic async deleteWaitingByID(contractID: number, recordID: number): Promise {\n\t\ttry {\n\t\t\treturn await this.next.deleteWaitingByID(contractID, recordID);\n\t\t} catch (e) {\n\t\t\tthis.setError('delete_working_time_request');\n\t\t\tthrow e;\n\t\t}\n\t}\n\tpublic async updateRecordByID(contractID: number, record: WorkingTime): Promise {\n\t\ttry {\n\t\t\treturn await this.next.updateRecordByID(contractID, record);\n\t\t} catch (e) {\n\t\t\tthis.setError('update_working_time_request');\n\t\t\tthrow e;\n\t\t}\n\t}\n\tpublic async updateBreakByID(contractID: number, record: BreakTime): Promise {\n\t\ttry {\n\t\t\treturn await this.next.updateBreakByID(contractID, record);\n\t\t} catch (e) {\n\t\t\tthis.setError('update_working_time_request');\n\t\t\tthrow e;\n\t\t}\n\t}\n\tpublic async updateWaitingByID(contractID: number, record: BreakTime): Promise {\n\t\ttry {\n\t\t\treturn await this.next.updateWaitingByID(contractID, record);\n\t\t} catch (e) {\n\t\t\tthis.setError('update_working_time_request');\n\t\t\tthrow e;\n\t\t}\n\t}\n\tpublic async getMaterialExpenses(contractID: number): Promise {\n\t\treturn await this.next.getMaterialExpenses(contractID);\n\t}\n\tpublic async getToolExpenses(contractID: number): Promise {\n\t\treturn await this.next.getToolExpenses(contractID);\n\t}\n\n\tpublic async getAllInvoices(contractID: number): Promise {\n\t\treturn await this.next.getAllInvoices(contractID);\n\t}\n\n\tpublic async exportInvoice(id: number): Promise {\n\t\ttry {\n\t\t\treturn await this.next.exportInvoice(id);\n\t\t} catch (e) {\n\t\t\tthrow e;\n\t\t}\n\t}\n\n\tpublic async getInvoiceById(invoiceID: number): Promise {\n\t\treturn await this.next.getInvoiceById(invoiceID);\n\t}\n\tpublic async getTravelExpenses(contractID: number): Promise {\n\t\treturn await this.next.getTravelExpenses(contractID);\n\t}\n\tpublic async createMaterialExpenses(contractID: number, material: MaterialTool): Promise {\n\t\ttry {\n\t\t\treturn await this.next.createMaterialExpenses(contractID, material);\n\t\t} catch (e) {\n\t\t\tthis.setError('create_expense_request');\n\t\t\tthrow e;\n\t\t}\n\t}\n\tpublic async createTravelExpenses(contractID: number, travel: Travel): Promise {\n\t\ttry {\n\t\t\treturn await this.next.createTravelExpenses(contractID, travel);\n\t\t} catch (e) {\n\t\t\tthis.setError('create_expense_request');\n\t\t\tthrow e;\n\t\t}\n\t}\n\tpublic async createToolExpenses(contractID: number, tool: MaterialTool): Promise {\n\t\ttry {\n\t\t\treturn await this.next.createToolExpenses(contractID, tool);\n\t\t} catch (e) {\n\t\t\tthis.setError('create_expense_request');\n\t\t\tthrow e;\n\t\t}\n\t}\n\tpublic async updateMaterialExpenses(contractID: number, material: MaterialTool): Promise {\n\t\ttry {\n\t\t\treturn await this.next.updateMaterialExpenses(contractID, material);\n\t\t} catch (e) {\n\t\t\tthis.setError('update_expense_request');\n\t\t\tthrow e;\n\t\t}\n\t}\n\tpublic async updateTravelExpenses(contractID: number, travel: Travel): Promise {\n\t\ttry {\n\t\t\treturn await this.next.updateTravelExpenses(contractID, travel);\n\t\t} catch (e) {\n\t\t\tthis.setError('update_expense_request');\n\t\t\tthrow e;\n\t\t}\n\t}\n\tpublic async updateToolExpenses(contractID: number, tool: MaterialTool): Promise {\n\t\ttry {\n\t\t\treturn await this.next.updateToolExpenses(contractID, tool);\n\t\t} catch (e) {\n\t\t\tthis.setError('update_expense_request');\n\t\t\tthrow e;\n\t\t}\n\t}\n\n\tpublic async deleteMaterialExpensesByID(contractID: number, materialID: number): Promise {\n\t\ttry {\n\t\t\treturn await this.next.deleteMaterialExpensesByID(contractID, materialID);\n\t\t} catch (e) {\n\t\t\tthis.setError('delete_expense_request');\n\t\t\tthrow e;\n\t\t}\n\t}\n\tpublic async deleteTravelExpensesByID(contractID: number, travelID: number): Promise {\n\t\ttry {\n\t\t\treturn await this.next.deleteTravelExpensesByID(contractID, travelID);\n\t\t} catch (e) {\n\t\t\tthis.setError('delete_expense_request');\n\t\t\tthrow e;\n\t\t}\n\t}\n\tpublic async deleteToolExpensesByID(contractID: number, toolID: number): Promise {\n\t\ttry {\n\t\t\treturn await this.next.deleteToolExpensesByID(contractID, toolID);\n\t\t} catch (e) {\n\t\t\tthis.setError('delete_expense_request');\n\t\t\tthrow e;\n\t\t}\n\t}\n\tpublic async openCloseContract(contractID: number, status: ContractStatusType): Promise {\n\t\ttry {\n\t\t\treturn await this.next.openCloseContract(contractID, status);\n\t\t} catch (e) {\n\t\t\tthis.setError('contract_status_error');\n\t\t\tthrow e;\n\t\t}\n\t}\n\n\tpublic async changePassword(oldPassword: string, newPassword: string): Promise {\n\t\ttry {\n\t\t\treturn await this.next.changePassword(oldPassword, newPassword);\n\t\t} catch (e) {\n\t\t\tthis.setError('change_password_request');\n\t\t\tthrow e;\n\t\t}\n\t}\n\tpublic async aprroveInput(contractID: number, inputID: number, zoneID?: number): Promise {\n\t\ttry {\n\t\t\treturn await this.next.aprroveInput(contractID, inputID, zoneID);\n\t\t} catch (e) {\n\t\t\tthis.setError('approve_inuput_request');\n\t\t\tthrow e;\n\t\t}\n\t}\n\tpublic async updateContract(contract: Contract): Promise {\n\t\ttry {\n\t\t\treturn await this.next.updateContract(contract);\n\t\t} catch (e) {\n\t\t\tthis.setError('update_contract_request');\n\t\t\tthrow e;\n\t\t}\n\t}\n\tpublic async checkTrackingTime(): Promise {\n\t\ttry {\n\t\t\treturn await this.next.checkTrackingTime();\n\t\t} catch (e) {\n\t\t\tthis.setError('check_tracking_time_request');\n\t\t\tthrow e;\n\t\t}\n\t}\n\tpublic async getTeamLeaderByContract(contractID: number): Promise {\n\t\treturn await this.next.getTeamLeaderByContract(contractID);\n\t}\n\tpublic async getCustomerByContract(contractID: number): Promise {\n\t\treturn await this.next.getCustomerByContract(contractID);\n\t}\n\tpublic async acceptPrivacyPolicy(): Promise {\n\t\ttry {\n\t\t\treturn await this.next.acceptPrivacyPolicy();\n\t\t} catch (e) {\n\t\t\tthis.setError('accept_privacy_policy');\n\t\t\tthrow e;\n\t\t}\n\t}\n\n\tpublic async getContract(contractID: number): Promise {\n\t\treturn await this.next.getContract(contractID);\n\t}\n\tpublic async getStandardCaseInputByID(\n\t\tcontractID: number,\n\t\terrorInputID: number\n\t): Promise {\n\t\treturn await this.next.getStandardCaseInputByID(contractID, errorInputID);\n\t}\n\tpublic async getUserByID(userID: number): Promise {\n\t\treturn await this.next.getUserByID(userID);\n\t}\n\tpublic async getCustomerByID(customerID: number): Promise {\n\t\treturn await this.next.getCustomerByID(customerID);\n\t}\n\tpublic async getTransportExpenses(contractID: number): Promise {\n\t\treturn await this.next.getTransportExpenses(contractID);\n\t}\n\tpublic async updateTransportExpenses(contractID: number, transport: Transport): Promise {\n\t\ttry {\n\t\t\treturn await this.next.updateTransportExpenses(contractID, transport);\n\t\t} catch (e) {\n\t\t\tthis.setError('update_expense_request');\n\t\t\tthrow e;\n\t\t}\n\t}\n\tpublic async deleteTransportExpensesByID(contractID: number, transportID: number): Promise {\n\t\ttry {\n\t\t\treturn await this.next.deleteTransportExpensesByID(contractID, transportID);\n\t\t} catch (e) {\n\t\t\tthis.setError('delete_expense_request');\n\t\t\tthrow e;\n\t\t}\n\t}\n\tpublic async createTransportExpenses(contractID: number, transport: Transport): Promise {\n\t\ttry {\n\t\t\treturn await this.next.createTransportExpenses(contractID, transport);\n\t\t} catch (e) {\n\t\t\tthis.setError('create_expense_request');\n\t\t\tthrow e;\n\t\t}\n\t}\n\tpublic async getContactQAI24ByContract(contractID: number): Promise {\n\t\treturn await this.next.getContactQAI24ByContract(contractID);\n\t}\n\n\tpublic async getRhenusCaseInputByID(errorID: number): Promise {\n\t\treturn await this.next.getRhenusCaseInputByID(errorID);\n\t}\n\tpublic async getPhoto(photoURL: string): Promise {\n\t\treturn await this.next.getPhoto(photoURL);\n\t}\n\tpublic async deleteCustomerByID(customerID: number): Promise {\n\t\ttry {\n\t\t\treturn await this.next.deleteCustomerByID(customerID);\n\t\t} catch (e) {\n\t\t\tthis.setError('delete_customer_request');\n\t\t\tthrow e;\n\t\t}\n\t}\n\n\tpublic async createStandardErrorInputsExcelSheet(\n\t\tcontractID: number,\n\t\tdata: DashboardFilterInterface,\n\t\tlanguage: string\n\t): Promise {\n\t\ttry {\n\t\t\treturn await this.next.createStandardErrorInputsExcelSheet(contractID, data, language);\n\t\t} catch (e) {\n\t\t\tthis.setError('create_standard_error_inputs_excel_sheet');\n\t\t\tthrow e;\n\t\t}\n\t}\n\n\tpublic async createProcessContractStandardErrorInputsExcelSheet(\n\t\tcontractID: number,\n\t\tdata: StandardCaseFilterInterface,\n\t\tlanguage: string\n\t): Promise {\n\t\ttry {\n\t\t\treturn await this.next.createProcessContractStandardErrorInputsExcelSheet(contractID, data, language);\n\t\t} catch (e) {\n\t\t\tthis.setError('create_standard_error_inputs_excel_sheet');\n\t\t\tthrow e;\n\t\t}\n\t}\n\n\tpublic async createWorkingTimeExcelSheet(\n\t\tcontractID: number,\n\t\tdata: WorkingTimeFilterInterface,\n\t\tlanguage: string\n\t): Promise {\n\t\ttry {\n\t\t\treturn await this.next.createWorkingTimeExcelSheet(contractID, data, language);\n\t\t} catch (e) {\n\t\t\tthis.setError('create_working_time_excel_sheet');\n\t\t\tthrow e;\n\t\t}\n\t}\n\n\tpublic async contractSummary(contractID: number, fromDate: Moment | null, toDate: Moment | null): Promise {\n\t\treturn await this.next.contractSummary(contractID, fromDate, toDate);\n\t}\n}\n\nexport default ErrorMiddleware;\n","import moment from 'moment';\n\nimport { Service } from '../service/service';\nimport Contract from '../service/types/Contract';\nimport User, { CreateEmployeeParams, UpdateEmployeeParams } from '../service/types/User';\nimport { QAILoginParams, ResetPasswordParams, UserLoginParams } from '../helpers/userHelper/generalUserHelper';\nimport Customer from '../service/types/Customer';\nimport StandardCaseInput, { StandardCaseFilterInterface } from '../service/types/StandardCase';\nimport { ContactParams } from '../containers/ContactUsContainer';\nimport RhenusOverviewInformation from '../service/types/RhenusOverviewInformation';\nimport RhenusCase from '../service/types/RhenusCase';\nimport WorkingTime from '../service/types/WorkingTime';\nimport MaterialTool from '../service/types/MaterialTool';\nimport Travel from '../service/types/Travel';\nimport { ContractStatusType, ShiftInterface } from '../helpers/contractHelper/generalContractHelper';\nimport WorkTimeTrack from '../service/types/WorkTimeTrack';\nimport { LoginResponse } from '../consts/login';\nimport Transport from '../service/types/Transport';\nimport { Moment } from 'moment';\nimport BreakTime from '../service/types/BreakTime';\nimport { DashboardFilterInterface } from '../helpers/dashboardHelper/generalDashboardHelper';\nimport { WorkingTimeFilterInterface } from '../helpers/workingTimeHelper/generalWorkingTimeHelper';\nimport { InvoiceItem } from '../service/types/Invoice';\nimport { CreateGroup, UpdateGroup } from '../pages/GroupCreatePage';\nimport { Group } from '../pages/groupOverview/GroupOverview';\n\nconst UPDATE_DIFF = 1;\nconst ALL_USERS = 'ALL_USERS';\nconst ALL_TEAM_LEADERS = 'ALL_TEAM_LEADERS';\nconst ALL_QAIS = 'ALL_QAIS';\nconst ALL_CUSTOMERS = 'ALL_CUSTOMERS';\n\ninterface LocalData {\n\tlastPull: string;\n\tdata: any;\n}\n\nclass CacheMiddleware implements Service {\n\tnext: Service;\n\tconstructor(next: Service) {\n\t\tthis.next = next;\n\t}\n\tpublic setJWTToken(JWTToken: string) {\n\t\tthis.next.setJWTToken(JWTToken);\n\t}\n\n\tpublic async login(params: UserLoginParams): Promise {\n\t\treturn this.next.login(params);\n\t}\n\n\tpublic async loginQAI(params: QAILoginParams): Promise {\n\t\treturn await this.next.loginQAI(params);\n\t}\n\n\tpublic async checkToken(): Promise {\n\t\treturn await this.next.checkToken();\n\t}\n\n\tpublic async getAuthToken(refreshToken: string): Promise {\n\t\treturn await this.next.getAuthToken(refreshToken);\n\t}\n\n\tpublic async requestPasswordReset(refreshToken: string): Promise {\n\t\treturn await this.next.requestPasswordReset(refreshToken);\n\t}\n\tpublic async checkPasswordRessetToken(token: string): Promise {\n\t\treturn await this.next.checkPasswordRessetToken(token);\n\t}\n\n\tpublic async resetPassword(params: ResetPasswordParams): Promise {\n\t\treturn await this.next.resetPassword(params);\n\t}\n\tpublic async resetPasswordQAI(params: ResetPasswordParams): Promise {\n\t\treturn await this.next.resetPasswordQAI(params);\n\t}\n\n\tpublic async getAllUsers(): Promise {\n\t\tconst data = getData(ALL_USERS);\n\t\tif (data) return data;\n\t\tconst res = await this.next.getAllUsers();\n\t\tsaveData(ALL_USERS, res);\n\t\treturn res;\n\t}\n\n\tpublic async readGroups(): Promise {\n\t\treturn await this.next.readGroups();\n\t}\n\tpublic async createGroup(data: CreateGroup): Promise {\n\t\treturn await this.next.createGroup(data);\n\t}\n\tpublic async readGroup(id: number): Promise {\n\t\treturn await this.next.readGroup(id);\n\t}\n\tpublic async updateGroup(data: UpdateGroup): Promise {\n\t\treturn await this.next.updateGroup(data);\n\t}\n\tpublic async deleteGroup(id: number): Promise {\n\t\treturn await this.next.deleteGroup(id);\n\t}\n\n\tpublic async logout(): Promise {\n\t\treturn await this.next.logout();\n\t}\n\tpublic async getContracts(): Promise {\n\t\treturn await this.next.getContracts();\n\t}\n\tpublic async createEmployee(params: CreateEmployeeParams): Promise {\n\t\tlocalStorage.removeItem(ALL_TEAM_LEADERS);\n\t\tlocalStorage.removeItem(ALL_USERS);\n\t\treturn await this.next.createEmployee(params);\n\t}\n\tpublic async createQAI(params: CreateEmployeeParams): Promise {\n\t\tlocalStorage.removeItem(ALL_QAIS);\n\t\tlocalStorage.removeItem(ALL_USERS);\n\t\treturn await this.next.createQAI(params);\n\t}\n\tpublic async getUserInfo(): Promise {\n\t\treturn await this.next.getUserInfo();\n\t}\n\tpublic async getAllQAIs(): Promise {\n\t\tconst data = getData(ALL_QAIS);\n\t\tif (data) return data;\n\t\tconst res = await this.next.getAllQAIs();\n\t\tsaveData(ALL_QAIS, res);\n\t\treturn res;\n\t}\n\tpublic async getAllTeamLeaders(): Promise {\n\t\tconst data = getData(ALL_TEAM_LEADERS);\n\t\tif (data) return data;\n\t\tconst res = await this.next.getAllTeamLeaders();\n\t\tsaveData(ALL_TEAM_LEADERS, res);\n\t\treturn res;\n\t}\n\tpublic async getAllCustomers(): Promise {\n\t\tconst data = getData(ALL_CUSTOMERS);\n\t\tif (data) return data;\n\t\tconst res = await this.next.getAllCustomers();\n\t\tsaveData(ALL_CUSTOMERS, res);\n\t\treturn res;\n\t}\n\tpublic async createCustomer(customer: Customer): Promise {\n\t\tlocalStorage.removeItem(ALL_CUSTOMERS);\n\t\treturn await this.next.createCustomer(customer);\n\t}\n\tpublic async createUserForCustomer(id: number, params: CreateEmployeeParams): Promise {\n\t\tremoveAllData();\n\t\treturn await this.next.createUserForCustomer(id, params);\n\t}\n\tpublic async getCustomerFromUser(id: number): Promise {\n\t\treturn await this.next.getCustomerFromUser(id);\n\t}\n\tpublic async deleteUserByID(id: number): Promise {\n\t\tremoveAllData();\n\t\treturn await this.next.deleteUserByID(id);\n\t}\n\tpublic async updateUserByID(id: number, params: UpdateEmployeeParams): Promise {\n\t\tremoveAllData();\n\t\treturn await this.next.updateUserByID(id, params);\n\t}\n\tpublic async updateCustomerByID(id: number, customer: Customer): Promise {\n\t\tremoveAllData();\n\t\treturn await this.next.updateCustomerByID(id, customer);\n\t}\n\tpublic async getAllStandardCaseInputs(contractID: number): Promise {\n\t\treturn await this.next.getAllStandardCaseInputs(contractID);\n\t}\n\tpublic async updateStandradCaseInput(contractID: number, errorInput: StandardCaseInput): Promise {\n\t\treturn await this.next.updateStandradCaseInput(contractID, errorInput);\n\t}\n\tpublic async createContract(contract: Contract): Promise {\n\t\treturn await this.next.createContract(contract);\n\t}\n\tpublic async deleteContractByID(contractID: number): Promise {\n\t\treturn await this.next.deleteContractByID(contractID);\n\t}\n\n\tpublic async createInvoice(\n\t\tcontractID: number,\n\t\tdateOfInvoice: Moment,\n\t\tfromDate: Moment,\n\t\ttoDate: Moment\n\t): Promise {\n\t\treturn await this.next.createInvoice(contractID, dateOfInvoice, fromDate, toDate);\n\t}\n\n\tpublic async updateInvoice(\n\t\tid: number,\n\t\tcreationDate: Moment,\n\t\tdateOfInvoice: Moment,\n\t\tfromDate: Moment,\n\t\ttoDate: Moment,\n\t\tbillNumber: string\n\t): Promise {\n\t\tawait this.next.updateInvoice(id, creationDate, dateOfInvoice, fromDate, toDate, billNumber);\n\t}\n\n\tpublic async completeInvoice(id: number): Promise {\n\t\tawait this.next.completeInvoice(id);\n\t}\n\n\tpublic async deleteInvoice(id: number): Promise {\n\t\tawait this.next.deleteInvoice(id);\n\t}\n\n\tpublic async contact(params: ContactParams): Promise {\n\t\treturn await this.next.contact(params);\n\t}\n\tpublic async createStandradCaseInput(contractID: number, errorInput: StandardCaseInput): Promise {\n\t\treturn await this.next.createStandradCaseInput(contractID, errorInput);\n\t}\n\tpublic async deleteStandradCaseInputByID(contractID: number, errorInputID: number): Promise {\n\t\treturn await this.next.deleteStandradCaseInputByID(contractID, errorInputID);\n\t}\n\tpublic async getRhenusOverviewInformations(\n\t\tcontractID: number,\n\t\tfrom: Moment,\n\t\tto: Moment\n\t): Promise {\n\t\treturn await this.next.getRhenusOverviewInformations(contractID, from, to);\n\t}\n\tpublic async getZoneCaseInputs(contractID: number, zoneID: number): Promise {\n\t\treturn await this.next.getZoneCaseInputs(contractID, zoneID);\n\t}\n\tpublic async deleteRhenusCaseInputByID(contractID: number, zoneID: number, errorID: number): Promise {\n\t\treturn await this.next.deleteRhenusCaseInputByID(contractID, zoneID, errorID);\n\t}\n\tpublic async createRhenusCaseInput(\n\t\tcontractID: number,\n\t\tzoneID: number,\n\t\trhenusCaseInput: RhenusCase\n\t): Promise {\n\t\treturn await this.next.createRhenusCaseInput(contractID, zoneID, rhenusCaseInput);\n\t}\n\tpublic async updateRhenusCaseInput(\n\t\tcontractID: number,\n\t\tzoneID: number,\n\t\trhenusCaseInput: RhenusCase\n\t): Promise {\n\t\treturn await this.next.updateRhenusCaseInput(contractID, zoneID, rhenusCaseInput);\n\t}\n\n\tpublic async sendErrorReport(message: string): Promise {\n\t\treturn await this.next.sendErrorReport(message);\n\t}\n\tpublic async addManualWorkTime(contractID: number, worktime: WorkingTime): Promise {\n\t\treturn await this.next.addManualWorkTime(contractID, worktime);\n\t}\n\tpublic async addManualBreakTime(contractID: number, worktime: BreakTime): Promise {\n\t\treturn await this.next.addManualBreakTime(contractID, worktime);\n\t}\n\tpublic async startTrackingTime(contractID: number): Promise {\n\t\treturn await this.next.startTrackingTime(contractID);\n\t}\n\tpublic async stopTrackingTime(\n\t\tcontractID: number,\n\t\tprofession: number | undefined\n\t): Promise {\n\t\treturn await this.next.stopTrackingTime(contractID, profession);\n\t}\n\tpublic async getAllRecords(contractID: number): Promise<(WorkingTime | BreakTime)[]> {\n\t\treturn await this.next.getAllRecords(contractID);\n\t}\n\n\tpublic async readShifts(contractID: number): Promise {\n\t\treturn await this.next.readShifts(contractID);\n\t}\n\n\tpublic async getAllInvoices(contractID: number): Promise {\n\t\treturn await this.next.getAllInvoices(contractID);\n\t}\n\tpublic async getInvoiceById(invoiceID: number): Promise {\n\t\treturn await this.next.getInvoiceById(invoiceID);\n\t}\n\n\tpublic async exportInvoice(id: number): Promise {\n\t\treturn await this.next.exportInvoice(id);\n\t}\n\n\tpublic async deleteRecordByID(contractID: number, recordID: number): Promise {\n\t\treturn await this.next.deleteRecordByID(contractID, recordID);\n\t}\n\tpublic async deleteBreakByID(contractID: number, recordID: number): Promise {\n\t\treturn await this.next.deleteBreakByID(contractID, recordID);\n\t}\n\tpublic async deleteWaitingByID(contractID: number, recordID: number): Promise {\n\t\treturn await this.next.deleteWaitingByID(contractID, recordID);\n\t}\n\tpublic async updateRecordByID(contractID: number, record: WorkingTime): Promise {\n\t\treturn await this.next.updateRecordByID(contractID, record);\n\t}\n\tpublic async updateBreakByID(contractID: number, record: BreakTime): Promise {\n\t\treturn await this.next.updateBreakByID(contractID, record);\n\t}\n\tpublic async updateWaitingByID(contractID: number, record: BreakTime): Promise {\n\t\treturn await this.next.updateWaitingByID(contractID, record);\n\t}\n\tpublic async getMaterialExpenses(contractID: number): Promise {\n\t\treturn await this.next.getMaterialExpenses(contractID);\n\t}\n\tpublic async getToolExpenses(contractID: number): Promise {\n\t\treturn await this.next.getToolExpenses(contractID);\n\t}\n\tpublic async getTravelExpenses(contractID: number): Promise {\n\t\treturn await this.next.getTravelExpenses(contractID);\n\t}\n\tpublic async createMaterialExpenses(contractID: number, material: MaterialTool): Promise {\n\t\treturn await this.next.createMaterialExpenses(contractID, material);\n\t}\n\tpublic async createTravelExpenses(contractID: number, travel: Travel): Promise {\n\t\treturn await this.next.createTravelExpenses(contractID, travel);\n\t}\n\tpublic async createToolExpenses(contractID: number, tool: MaterialTool): Promise {\n\t\treturn await this.next.createToolExpenses(contractID, tool);\n\t}\n\tpublic async updateMaterialExpenses(contractID: number, material: MaterialTool): Promise {\n\t\treturn await this.next.updateMaterialExpenses(contractID, material);\n\t}\n\tpublic async updateTravelExpenses(contractID: number, travel: Travel): Promise {\n\t\treturn await this.next.updateTravelExpenses(contractID, travel);\n\t}\n\tpublic async updateToolExpenses(contractID: number, tool: MaterialTool): Promise {\n\t\treturn await this.next.updateToolExpenses(contractID, tool);\n\t}\n\n\tpublic async deleteMaterialExpensesByID(contractID: number, materialID: number): Promise {\n\t\treturn await this.next.deleteMaterialExpensesByID(contractID, materialID);\n\t}\n\tpublic async deleteTravelExpensesByID(contractID: number, travelID: number): Promise {\n\t\treturn await this.next.deleteTravelExpensesByID(contractID, travelID);\n\t}\n\tpublic async deleteToolExpensesByID(contractID: number, toolID: number): Promise {\n\t\treturn await this.next.deleteToolExpensesByID(contractID, toolID);\n\t}\n\tpublic async openCloseContract(contractID: number, status: ContractStatusType): Promise {\n\t\treturn await this.next.openCloseContract(contractID, status);\n\t}\n\tpublic async changePassword(oldPassword: string, newPassword: string): Promise {\n\t\treturn await this.next.changePassword(oldPassword, newPassword);\n\t}\n\tpublic async getAllQAIsByTeamLeader(teamLeaderID: number): Promise {\n\t\treturn await this.next.getAllQAIsByTeamLeader(teamLeaderID);\n\t}\n\tpublic async aprroveInput(contractID: number, inputID: number, zoneID?: number): Promise {\n\t\treturn await this.next.aprroveInput(contractID, inputID, zoneID);\n\t}\n\tpublic async updateContract(contract: Contract): Promise {\n\t\treturn await this.next.updateContract(contract);\n\t}\n\tpublic async checkTrackingTime(): Promise {\n\t\treturn await this.next.checkTrackingTime();\n\t}\n\tpublic async getTeamLeaderByContract(contractID: number): Promise {\n\t\treturn await this.next.getTeamLeaderByContract(contractID);\n\t}\n\tpublic async getCustomerByContract(contractID: number): Promise {\n\t\treturn await this.next.getCustomerByContract(contractID);\n\t}\n\tpublic async acceptPrivacyPolicy(): Promise {\n\t\treturn await this.next.acceptPrivacyPolicy();\n\t}\n\tpublic async getContract(contractID: number): Promise {\n\t\treturn await this.next.getContract(contractID);\n\t}\n\tpublic async getStandardCaseInputByID(\n\t\tcontractID: number,\n\t\terrorInputID: number\n\t): Promise {\n\t\treturn await this.next.getStandardCaseInputByID(contractID, errorInputID);\n\t}\n\tpublic async getUserByID(userID: number): Promise {\n\t\treturn await this.next.getUserByID(userID);\n\t}\n\tpublic async getCustomerByID(customerID: number): Promise {\n\t\treturn await this.next.getCustomerByID(customerID);\n\t}\n\tpublic async getTransportExpenses(contractID: number): Promise {\n\t\treturn await this.next.getTransportExpenses(contractID);\n\t}\n\tpublic async updateTransportExpenses(contractID: number, transport: Transport): Promise {\n\t\treturn await this.next.updateTransportExpenses(contractID, transport);\n\t}\n\tpublic async deleteTransportExpensesByID(contractID: number, transportID: number): Promise {\n\t\treturn await this.next.deleteTransportExpensesByID(contractID, transportID);\n\t}\n\tpublic async createTransportExpenses(contractID: number, transport: Transport): Promise {\n\t\treturn await this.next.createTransportExpenses(contractID, transport);\n\t}\n\tpublic async getContactQAI24ByContract(contractID: number): Promise {\n\t\treturn await this.next.getContactQAI24ByContract(contractID);\n\t}\n\n\tpublic async getRhenusCaseInputByID(errorID: number): Promise {\n\t\treturn await this.next.getRhenusCaseInputByID(errorID);\n\t}\n\tpublic async getPhoto(photoURL: string): Promise {\n\t\treturn await this.next.getPhoto(photoURL);\n\t}\n\tpublic async deleteCustomerByID(contractID: number): Promise {\n\t\tremoveAllData();\n\t\treturn await this.next.deleteCustomerByID(contractID);\n\t}\n\n\tpublic async createStandardErrorInputsExcelSheet(\n\t\tcontractID: number,\n\t\tdata: DashboardFilterInterface,\n\t\tlanguage: string\n\t): Promise {\n\t\treturn await this.next.createStandardErrorInputsExcelSheet(contractID, data, language);\n\t}\n\n\tpublic async createProcessContractStandardErrorInputsExcelSheet(\n\t\tcontractID: number,\n\t\tdata: StandardCaseFilterInterface,\n\t\tlanguage: string\n\t): Promise {\n\t\treturn await this.next.createProcessContractStandardErrorInputsExcelSheet(contractID, data, language);\n\t}\n\n\tpublic async createWorkingTimeExcelSheet(\n\t\tcontractID: number,\n\t\tdata: WorkingTimeFilterInterface,\n\t\tlanguage: string\n\t): Promise {\n\t\treturn await this.next.createWorkingTimeExcelSheet(contractID, data, language);\n\t}\n\n\tpublic async contractSummary(contractID: number, fromDate: Moment | null, toDate: Moment | null): Promise {\n\t\treturn await this.next.contractSummary(contractID, fromDate, toDate);\n\t}\n}\n\nfunction getHoursDiffFromTimeAndCurrentTime(time: string) {\n\tconst tempTime = moment(time);\n\tconst currentTime = moment();\n\tconst diff = Math.abs(currentTime.diff(tempTime));\n\treturn diff / 1000 / 60;\n}\n\nfunction saveData(key: string, data: any) {\n\tlocalStorage.setItem(key, JSON.stringify({ lastPull: moment().toISOString(), data: data }));\n}\n\nfunction getData(key: string) {\n\tconst localAllUsers = localStorage.getItem(key);\n\tif (localAllUsers) {\n\t\tconst localAllUsersParsed: LocalData = JSON.parse(localAllUsers);\n\t\tif (getHoursDiffFromTimeAndCurrentTime(localAllUsersParsed.lastPull) < UPDATE_DIFF) {\n\t\t\treturn localAllUsersParsed.data;\n\t\t}\n\t}\n}\nexport function removeAllData() {\n\tconst keys = [ALL_TEAM_LEADERS, ALL_USERS, ALL_QAIS, ALL_CUSTOMERS];\n\tkeys.forEach((key) => localStorage.removeItem(key));\n}\n\nexport default CacheMiddleware;\n","import { ErrorInputType } from '../../service/types/StandardCase';\nimport { KeyValue } from '../userHelper/generalUserHelper';\n\nexport const DEFAULT_NO_VALUE = {\n\tkey: ' ',\n\tvalue: '',\n};\n\nexport function ErrorInputFromJSON(maybe: any): ErrorInputType {\n\tif (typeof maybe.amount !== 'number') {\n\t\tthrow new Error('amount must be number');\n\t}\n\tif (typeof maybe.type_name !== 'string') {\n\t\tthrow new Error('type must be string');\n\t}\n\treturn {\n\t\tamount: maybe.amount,\n\t\ttype: maybe.type_name,\n\t};\n}\n\nexport function ErrorInputToJSON(error: ErrorInputType) {\n\treturn {\n\t\tamount: Number(error.amount),\n\t\ttype_name: error.type,\n\t};\n}\n\nexport enum ApprovedStatus {\n\tApproved = 'approved_status_aprroved',\n\tNotApproved = 'approved_status_not_approved',\n}\n\nexport const filterApprovedStatusKeyValuePairs: KeyValue[] = [\n\tDEFAULT_NO_VALUE,\n\t{ key: ApprovedStatus.Approved, value: true },\n\t{ key: ApprovedStatus.NotApproved, value: false },\n];\n\nexport const textsForStandardAutomaticalUpdate = [\n\t'standard_update_data_text_now',\n\t'standard_update_data_text_one_minute',\n\t'standard_update_data_text_two_minutes',\n\t'standard_update_data_text_three_minutes',\n\t'standard_update_data_text_four_minutes',\n\t'standard_update_data_text_five_minutes',\n];\n","import { DEFAULT_NO_VALUE } from '../standardInputHelper/generalStandardInputHelper';\nimport { KeyValue } from '../userHelper/generalUserHelper';\n\nexport enum ContractType {\n\tStandard = 1,\n\tRhenusType = 2,\n}\nexport enum ContractStatusType {\n\tClosed = 0,\n\tNotClosed = 1,\n}\n\nexport enum ErrorType {\n\tMissing = 'Missing',\n\tIncorrect = 'Incorrect',\n\tDamaged = 'Damaged',\n\tOther = 'Other',\n}\n\nexport enum ContractViewType {\n\tProcess,\n\tAdmin,\n\tCustomer,\n}\n\nexport enum TypeOfInspection {\n\tStandardCheck = 'Standard check',\n\tErstteilkontrolle = 'Erstteilkontrolle',\n\tPVBCount = 'PVB Count',\n\tUmpacken = 'Umpacken',\n\tFunktionsprufung = 'Funktionsprüfung',\n\tSichtprufung = 'Sichtprüfung',\n\tNacharbeitenEinfachesWerkzeug = 'Nacharbeiten (einfaches Werkzeug)',\n\tNacharbeitenSpezialwerkzeug = 'Nacharbeiten (Spezialwerkzeug)',\n}\n\nexport interface ContractZone {\n\tid: number;\n\tname: string;\n}\n\nexport function ContractZoneFromJSON(maybe: any): ContractZone {\n\tif (!maybe) {\n\t\tthrow new Error('zone must be exist');\n\t}\n\tif (typeof maybe.id !== 'number') {\n\t\tthrow new Error('id must be number');\n\t}\n\tif (typeof maybe.name !== 'string') {\n\t\tthrow new Error('name must be string');\n\t}\n\treturn {\n\t\tid: maybe.id,\n\t\tname: maybe.name,\n\t};\n}\n\nexport function ContractZoneToJSON(zone: ContractZone) {\n\treturn {\n\t\tid: zone.id,\n\t\tname: zone.name,\n\t};\n}\n\nexport interface ShiftInterface {\n\tid?: number;\n\tname: string;\n\tfrom: string;\n\tto: string;\n}\n\nexport enum ShiftName {\n\tMorning = 'Morning shift',\n\tAfternoon = 'Afternoon shift',\n\tNight = 'Night shift',\n}\n\nexport function ShiftFromJSON(maybe: any): ShiftInterface {\n\tif (typeof maybe.name !== 'string') {\n\t\tthrow new Error('name must be string');\n\t}\n\tif (typeof maybe.shift_start !== 'string') {\n\t\tthrow new Error('shift_start must be string');\n\t}\n\tif (typeof maybe.shift_end !== 'string') {\n\t\tthrow new Error('shift_end must be string');\n\t}\n\treturn {\n\t\tid: maybe.id,\n\t\tname: maybe.name.replaceAll('\"', ''),\n\t\tfrom: maybe.shift_start,\n\t\tto: maybe.shift_end,\n\t};\n}\n\nexport function ShiftToJSON(shift: ShiftInterface) {\n\treturn {\n\t\tname: shift.name.replaceAll('\"', ''),\n\t\tshift_start: shift.from,\n\t\tshift_end: shift.to,\n\t};\n}\n\nexport const createContractIsPhotoKeyValuePairs: KeyValue[] = [\n\t{ key: 'contract_allowed', value: true },\n\t{ key: 'contract_not_allowed', value: false },\n];\n\nexport const createContractErrorTypeKeyValuePairs: KeyValue[] = [\n\t{ key: 'contract_error_missing', value: ErrorType.Missing },\n\t{ key: 'contract_error_incorrect', value: ErrorType.Incorrect },\n\t{ key: 'contract_error_damaged', value: ErrorType.Damaged },\n];\n\nexport const createContractTypeOfInspectionKeyValuePairs: KeyValue[] = [\n\t{ key: 'contract_type_of_inspection_standard', value: TypeOfInspection.StandardCheck },\n\t{ key: 'contract_type_of_inspection_erstteilkontrolle', value: TypeOfInspection.Erstteilkontrolle },\n\t{ key: 'contract_type_of_inspection_pvb_count', value: TypeOfInspection.PVBCount },\n\t{ key: 'contract_type_of_inspection_umpacken', value: TypeOfInspection.Umpacken },\n\t{ key: 'contract_type_of_inspection_funktionsprugun', value: TypeOfInspection.Funktionsprufung },\n\t{ key: 'contract_type_of_inspection_sichtprufung', value: TypeOfInspection.Sichtprufung },\n\t{\n\t\tkey: 'contract_type_of_inspection_nacharbeiten_einfaches',\n\t\tvalue: TypeOfInspection.NacharbeitenEinfachesWerkzeug,\n\t},\n\t{ key: 'contract_type_of_inspection_nacharbeiten_spez', value: TypeOfInspection.NacharbeitenSpezialwerkzeug },\n];\n\nexport const createContractShiftKeyValuePairs: KeyValue[] = [\n\t{ key: 'contract_screen_shift_name_placeholder', value: 'contract_screen_shift_name_placeholder' },\n\t{ key: 'Morning shift', value: ShiftName.Morning },\n\t{ key: 'Afternoon shift', value: ShiftName.Afternoon },\n\t{ key: 'Night shift', value: ShiftName.Night },\n];\n\nexport const filterContractDataKeyValuePairs: KeyValue[] = [\n\tDEFAULT_NO_VALUE,\n\t{ key: 'contract_overview_screen_have_attachment', value: true },\n\t{ key: 'contract_overview_screen_dont_have_attachment', value: false },\n];\n\nexport const filterContractData: KeyValue[] = [\n\t{ key: 'contract_overview_screen_have_attachment', value: true },\n\t{ key: 'contract_overview_screen_dont_have_attachment', value: false },\n];\n\nexport const filterContractStatusKeyValuePairs: KeyValue[] = [\n\tDEFAULT_NO_VALUE,\n\t{ key: 'contract_screen_opened', value: ContractStatusType.NotClosed },\n\t{ key: 'contract_screen_closed', value: ContractStatusType.Closed },\n];\n\nexport const filterOpenClosed: KeyValue[] = [\n\t{ key: 'contract_screen_closed', value: ContractStatusType.Closed },\n\t{ key: 'contract_screen_opened', value: ContractStatusType.NotClosed },\n];\n\nexport interface FileInterface {\n\tdata: string;\n\tname: string;\n}\n","import moment, { Moment } from 'moment';\nimport { IPriceListItem } from '../../consts/IPriceListItem';\nimport {\n\tContractStatusType,\n\tContractType,\n\tContractZoneFromJSON,\n\tContractZone,\n\tContractZoneToJSON,\n\tShiftFromJSON,\n\tShiftInterface,\n\tShiftToJSON,\n\tFileInterface,\n} from '../../helpers/contractHelper/generalContractHelper';\nimport { GroupUser } from '../../pages/groupOverview/GroupOverview';\nimport { IdNamePair } from './User';\n\nexport interface ContractSummaryInterface {\n\tbilledHours: number;\n\temployeeTotalAmount: number;\n\tnotBilledHours: number;\n\ttotalBillableHours: number;\n}\n\nexport interface ContractFilterInterface {\n\tcontractNumber: any;\n\tcustomer: any;\n\tdate: any;\n\tworkLocation: any;\n\tpartDesignation: any;\n\tmarkingOfIOparts: any;\n\tshiftTimes: any;\n\terrorTypes: any;\n\ttypesOfInspection: any;\n\tassignedQAIs: any;\n\tassignedTeamLeader: any;\n\tfromDate?: any;\n\ttoDate?: any;\n}\n\nexport interface ContractInterface {\n\tcontractType: any;\n\tcontractData?: any;\n\tstatus: any;\n\tisPhotoAllowed: any;\n\tautomatedUpdates: any;\n\tcontractNumber: any;\n\tcustomer: any;\n\tdate: any;\n\tworkLocations: any;\n\tpartDesignation: any;\n\tmarkingOfIOparts: any;\n\tshiftTimes: any;\n\terrorTypes: any;\n\ttypesOfInspection: any;\n\tassignedQAIs: any;\n\tassignedTeamLeader: any;\n\tfromDate?: any;\n\ttoDate?: any;\n}\n\nexport interface IContractWorkLocation {\n\tid: number;\n\tname: string;\n\tdistance: number;\n}\n\nclass Contract implements ContractInterface {\n\tpublic id: number;\n\tpublic contractType: ContractType;\n\tcontractNumber: string;\n\tcustomer: number;\n\tdate: Moment;\n\tworkLocations: IContractWorkLocation[];\n\ttypeOfActivity: string;\n\tpartDesignation: string;\n\tmarkingOfIOparts: string;\n\tshiftTimes: ShiftInterface[];\n\terrorTypes: string[];\n\ttypesOfInspection: string[];\n\tstatus: ContractStatusType;\n\tisPhotoAllowed: boolean;\n\tautomatedUpdates: boolean;\n\tassignedQAIs: number[];\n\tassignedTeamLeader: number;\n\torderDescription: string;\n\tcontactPerson: IdNamePair[] | number[] | { id: number }[];\n\tcontactQAI24: number;\n\tbillingCycle?: number;\n\tdrivingRate?: number;\n\tdrivingTime?: number;\n\tkilometer?: number;\n\tpriceList?: IPriceListItem[];\n\tprojectType?: number;\n\tcalculationType?: number;\n\tadministrationFee?: number;\n\tzones?: ContractZone[];\n\tattachments?: FileInterface[];\n\tcontractData?: FileInterface;\n\tamountOfParts?: string[];\n\tapplicationIntake?: number;\n\ttlGroups?: GroupUser[];\n\ttlGroupsIds?: number[];\n\tbilled_until?: Moment;\n\tnext_billing?: Moment;\n\n\tconstructor(\n\t\tid: number,\n\t\tcontractNumber: string,\n\t\tcustomer: number,\n\t\tdate: Moment,\n\t\tworkLocations: IContractWorkLocation[],\n\t\ttypeOfActivity: string,\n\t\tpartDesignation: string,\n\t\tmarkingOfIOparts: string,\n\t\tshiftTimes: ShiftInterface[],\n\t\terrorTypes: string[],\n\t\ttypesOfInspection: string[],\n\t\tcontractType: ContractType,\n\t\tstatus: ContractStatusType,\n\t\tisPhotoAllowed: boolean,\n\t\tautomatedUpdates: boolean,\n\t\tassignedQAIs: number[],\n\t\tassignedTeamLeader: number,\n\t\torderDescription: string,\n\t\tcontactPerson: IdNamePair[] | number[] | { id: number }[],\n\t\tcontactQAI24: number,\n\t\tbillingCycle?: number,\n\t\tdrivingRate?: number,\n\t\tdrivingTime?: number,\n\t\tkilometer?: number,\n\t\tpriceList?: IPriceListItem[],\n\t\tprojectType?: number,\n\t\tcalculationType?: number,\n\t\tadministrationFee?: number,\n\t\tzones?: ContractZone[],\n\t\tcontractData?: FileInterface,\n\t\tattachments?: FileInterface[],\n\t\tamountOfParts?: string[],\n\t\tapplicationIntake?: number,\n\t\ttlGroups?: GroupUser[],\n\t\ttlGroupsIds?: number[],\n\t\tbilled_until?: Moment,\n\t\tnext_billing?: Moment\n\t) {\n\t\tthis.contractNumber = contractNumber.trim();\n\t\tthis.customer = customer;\n\t\tthis.date = date;\n\t\tthis.workLocations = workLocations;\n\t\tthis.typeOfActivity = typeOfActivity;\n\t\tthis.partDesignation = partDesignation.trim();\n\t\tthis.markingOfIOparts = markingOfIOparts.trim();\n\t\tthis.shiftTimes = shiftTimes;\n\t\tthis.errorTypes = errorTypes;\n\t\tthis.typesOfInspection = typesOfInspection;\n\t\tthis.id = id;\n\t\tthis.contractType = contractType;\n\t\tthis.status = status;\n\t\tthis.isPhotoAllowed = isPhotoAllowed;\n\t\tthis.automatedUpdates = automatedUpdates;\n\t\tthis.assignedQAIs = assignedQAIs;\n\t\tthis.assignedTeamLeader = assignedTeamLeader;\n\t\tthis.zones = zones;\n\t\tthis.contractData = contractData;\n\t\tthis.attachments = attachments;\n\t\tthis.orderDescription = orderDescription.trim();\n\t\tthis.contactPerson = contactPerson;\n\t\tthis.contactQAI24 = contactQAI24;\n\t\tthis.billingCycle = billingCycle;\n\t\tthis.drivingRate = drivingRate;\n\t\tthis.drivingTime = drivingTime;\n\t\tthis.kilometer = kilometer;\n\t\tthis.amountOfParts = amountOfParts;\n\t\tthis.priceList = priceList;\n\t\tthis.projectType = projectType;\n\t\tthis.calculationType = calculationType;\n\t\tthis.administrationFee = administrationFee;\n\t\tthis.applicationIntake = applicationIntake;\n\t\tthis.tlGroups = tlGroups;\n\t\tthis.tlGroupsIds = tlGroupsIds;\n\t\tthis.billed_until = billed_until;\n\t\tthis.next_billing = next_billing;\n\t}\n\n\tpublic static fromJSON(maybe: any) {\n\t\tif (typeof maybe.contract_number !== 'string') {\n\t\t\tthrow new Error('contractNumber must be string');\n\t\t}\n\n\t\tif (typeof maybe.id !== 'number') {\n\t\t\tthrow new Error('id must be number');\n\t\t}\n\n\t\tif (typeof maybe.customer_id !== 'number') {\n\t\t\tthrow new Error('customer must be number');\n\t\t}\n\t\tconst date = moment(maybe.date);\n\t\tif (!date.isValid()) {\n\t\t\tthrow new Error('date is not valid date');\n\t\t}\n\n\t\tif (typeof maybe.type_of_activity !== 'string') {\n\t\t\tthrow new Error('typeOfActivity must be string');\n\t\t}\n\t\tif (typeof maybe.part_designation !== 'string') {\n\t\t\tthrow new Error('partDesignation must be string');\n\t\t}\n\n\t\tif (!maybe.errors) {\n\t\t\tthrow new Error('errorTypes must exist');\n\t\t}\n\t\tif (!maybe.shifts) {\n\t\t\tthrow new Error('shifts must be exist');\n\t\t}\n\t\tif (!maybe.checking_types) {\n\t\t\tthrow new Error('typesOfInspection must exist');\n\t\t}\n\t\tif (typeof maybe.marking_of_parts !== 'string') {\n\t\t\tthrow new Error('markingOfIOparts must be string');\n\t\t}\n\t\tif (typeof maybe.contract_type !== 'number') {\n\t\t\tthrow new Error('contractType must be number');\n\t\t}\n\t\tif (maybe.contract_status === undefined) {\n\t\t\tthrow new Error('contract_status must exist');\n\t\t}\n\t\tif (maybe.is_photo_allowed === undefined) {\n\t\t\tthrow new Error('isPhotoAllowed must exist');\n\t\t}\n\t\tif (!maybe.assigned_qais) {\n\t\t\tthrow new Error('assignedQAIs must exist');\n\t\t}\n\t\tif (!maybe.assigned_team_leader) {\n\t\t\tthrow new Error('assignedTeamLeader must exist');\n\t\t}\n\t\tif (maybe.automated_updates === undefined) {\n\t\t\tthrow new Error('automatedUpdates must exist');\n\t\t}\n\t\tif (typeof maybe.contact_person !== 'object') {\n\t\t\tthrow new Error('contact_person must be an array');\n\t\t}\n\t\tif (typeof maybe.contact_qai_24 !== 'number') {\n\t\t\tthrow new Error('contact_qai_24 must be number');\n\t\t}\n\t\tif (typeof maybe.order_description !== 'string') {\n\t\t\tthrow new Error('order_description must be string');\n\t\t}\n\n\t\treturn new Contract(\n\t\t\tmaybe.id,\n\t\t\tmaybe.contract_number,\n\t\t\tmaybe.customer_id,\n\t\t\tdate,\n\t\t\tmaybe.work_locations,\n\t\t\tmaybe.type_of_activity,\n\t\t\tmaybe.part_designation,\n\t\t\tmaybe.marking_of_parts,\n\t\t\tmaybe.shifts.map(ShiftFromJSON),\n\t\t\tmaybe.errors,\n\t\t\tmaybe.checking_types,\n\t\t\tmaybe.contract_type,\n\t\t\tmaybe.contract_status,\n\t\t\tmaybe.is_photo_allowed,\n\t\t\tmaybe.automated_updates,\n\t\t\tmaybe.assigned_qais,\n\t\t\tmaybe.assigned_team_leader,\n\t\t\tmaybe.order_description,\n\t\t\tmaybe.contact_person,\n\t\t\tmaybe.contact_qai_24,\n\t\t\tmaybe.billing_cycle,\n\t\t\tmaybe.driving_rate,\n\t\t\tmaybe.driving_time,\n\t\t\tmaybe.kilometer,\n\t\t\tmaybe.price_list,\n\t\t\tmaybe.project_type,\n\t\t\tmaybe.calculation_type,\n\t\t\tmaybe.administration_fee,\n\t\t\tmaybe.zones && maybe.zones.length !== 0 && maybe.zones[0].id\n\t\t\t\t? maybe.zones?.map(ContractZoneFromJSON)\n\t\t\t\t: undefined,\n\t\t\tmaybe.contract_data && maybe.contract_data.name ? maybe.contract_data : undefined,\n\t\t\tmaybe.attachments,\n\t\t\tmaybe.amount_of_parts,\n\t\t\tmaybe.application_intake,\n\t\t\tmaybe.tlGroups,\n\t\t\tmaybe.tlGroupsIds,\n\t\t\tmaybe.billed_until,\n\t\t\tmaybe.next_billing\n\t\t);\n\t}\n\n\tpublic toJSON() {\n\t\treturn {\n\t\t\tcontract_number: this.contractNumber,\n\t\t\tcustomer_id: this.customer,\n\t\t\tdate: this.date.toISOString(),\n\t\t\twork_locations: this.workLocations,\n\t\t\ttype_of_activity: this.typeOfActivity,\n\t\t\tpart_designation: this.partDesignation,\n\t\t\tmarking_of_parts: this.markingOfIOparts,\n\t\t\tshifts: this.shiftTimes.map(ShiftToJSON),\n\t\t\terrors: this.errorTypes,\n\t\t\tchecking_types: this.typesOfInspection,\n\t\t\tid: this.id,\n\t\t\tcontract_type: this.contractType,\n\t\t\tcontract_status: this.status,\n\t\t\tis_photo_allowed: this.isPhotoAllowed,\n\t\t\tautomated_updates: this.automatedUpdates,\n\t\t\tassigned_qais: this.assignedQAIs,\n\t\t\tassigned_team_leader: this.assignedTeamLeader,\n\t\t\tzones: this.zones?.map(ContractZoneToJSON),\n\t\t\tcontract_data: this.contractData ? this.contractData : {},\n\t\t\tattachments: this.attachments,\n\t\t\torder_description: this.orderDescription,\n\t\t\tcontact_qai_24: this.contactQAI24,\n\t\t\tcontact_person: this.contactPerson,\n\t\t\tamount_of_parts: this.amountOfParts,\n\t\t\tbilling_cycle: this.billingCycle,\n\t\t\tdriving_rate: this.drivingRate,\n\t\t\tdriving_time: this.drivingTime,\n\t\t\tkilometer: this.kilometer,\n\t\t\tprice_list: this.priceList,\n\t\t\tproject_type: this.projectType,\n\t\t\tcalculation_type: this.calculationType,\n\t\t\tadministration_fee: this.administrationFee,\n\t\t\tapplication_intake: this.applicationIntake,\n\t\t\ttlGroupsIds: this.tlGroupsIds,\n\t\t\tbilled_until: this.billed_until,\n\t\t\tnext_billing: this.next_billing,\n\t\t};\n\t}\n}\n\nexport default Contract;\n","export interface AddressInterface {\n\tpostcode: string | number;\n\tcity: string;\n\tstreet: string;\n\thouseNumber: string;\n\tcountry: string;\n\tcostCenter?: string;\n}\n\nclass Address implements AddressInterface {\n\tpostcode: number;\n\tcity: string;\n\tstreet: string;\n\thouseNumber: string;\n\tcountry: string;\n\tcostCenter?: string;\n\n\tconstructor(\n\t\tpostcode: number,\n\t\tcity: string,\n\t\tstreet: string,\n\t\thouseNumber: string,\n\t\tcountry: string,\n\t\tcostCenter?: string\n\t) {\n\t\tthis.postcode = postcode;\n\t\tthis.city = city.trim();\n\t\tthis.street = street.trim();\n\t\tthis.houseNumber = houseNumber.trim();\n\t\tthis.country = country.trim();\n\t\tthis.costCenter = costCenter?.trim();\n\t}\n\n\tpublic static fromJSON(maybe: any): Address {\n\t\tif (!maybe) {\n\t\t\tthrow Error('object must exist');\n\t\t}\n\t\tif (typeof maybe.postcode !== 'number') {\n\t\t\tthrow Error('postcode must be type of number');\n\t\t}\n\t\tif (typeof maybe.city !== 'string') {\n\t\t\tthrow Error('city must be type of string');\n\t\t}\n\t\tif (typeof maybe.street !== 'string') {\n\t\t\tthrow Error('street must be type of string');\n\t\t}\n\t\tif (typeof maybe.house_number !== 'string') {\n\t\t\tthrow Error('city must be type of string');\n\t\t}\n\n\t\treturn new Address(\n\t\t\tmaybe.postcode,\n\t\t\tmaybe.city,\n\t\t\tmaybe.street,\n\t\t\tmaybe.house_number,\n\t\t\tmaybe.country,\n\t\t\tmaybe.cost_center\n\t\t);\n\t}\n\n\tpublic static toJSON(address: Address) {\n\t\treturn {\n\t\t\tpostcode: address.postcode,\n\t\t\tcity: address.city,\n\t\t\tstreet: address.street,\n\t\t\thouse_number: address.houseNumber,\n\t\t\tcountry: address.country,\n\t\t\tcost_center: address.costCenter,\n\t\t};\n\t}\n\n\tpublic toString() {\n\t\treturn `${this.street} ${this.houseNumber}, ${this.postcode} ${this.city}, ${this.country}${\n\t\t\tthis.costCenter ? ', ' + this.costCenter : ''\n\t\t}`;\n\t}\n}\n\nexport default Address;\n","import jwt_decode from 'jwt-decode';\nimport { JWT_TOKEN_PARAMS } from '../../helpers/userHelper/generalUserHelper';\nimport { GroupUser } from '../../pages/groupOverview/GroupOverview';\n\nexport enum UserRole {\n\t// Administrator\n\tAdministrator = 0,\n\t// Teamleiter\n\tTeamLeader = 1,\n\t// Prüfer\n\tQualityAssuranceInspector = 2,\n\t// Kunde\n\tCustomer = 3,\n\t// Buchhaltung\n\tAccounting = 4,\n}\n\nexport enum OriginOfEmployee {\n\tFromIQR = 1,\n\tExternal = 2,\n}\n\nexport interface CreateEmployeeParams {\n\temail: string;\n\tpassword: string;\n\trole: UserRole;\n\tfirst_name: string;\n\tlast_name: string;\n\torigin: OriginOfEmployee;\n\ttl?: number[];\n\tphonenumber?: string;\n\tusername?: string;\n\ttlGroupsIds?: number[] | null;\n\tcontactFor?: number[] | null;\n}\n\nexport interface UpdateEmployeeParams {\n\temail: string;\n\tpassword?: string;\n\trole: UserRole;\n\tfirst_name: string;\n\tlast_name: string;\n\torigin: OriginOfEmployee;\n\ttl?: number[];\n\tphonenumber?: string;\n\tusername?: string;\n\ttlGroupsIds?: number[] | null;\n\tcontactFor?: number[] | null;\n}\n\nexport interface UserFilterInterface {\n\trole: any;\n\tfirstName: any;\n\tlastName: any;\n\toriginOfEmployee: any;\n}\n\nexport interface UserTableInterface extends UserFilterInterface {}\n\nexport interface IdNamePair {\n\tid: string;\n\tname: string;\n}\n\nclass User implements UserFilterInterface {\n\tpublic id: number;\n\tpublic email: string;\n\tpublic teamLeaderIDs?: number[] | undefined;\n\ttlGroups?: GroupUser[];\n\trole: UserRole;\n\tcontactFor?: number[];\n\tfirstName: string;\n\tlastName: string;\n\toriginOfEmployee: OriginOfEmployee;\n\tdeleted: boolean;\n\tphonenumber?: string | undefined;\n\tusername?: string | undefined;\n\n\tconstructor(\n\t\tid: number,\n\t\temail: string,\n\t\trole: UserRole,\n\t\tfirstName: string,\n\t\tlastName: string,\n\t\toriginOfEmployee: OriginOfEmployee,\n\t\tteamLeaderIDs?: number[] | undefined,\n\t\ttlGroups?: GroupUser[],\n\t\tcontactFor?: number[],\n\t\tphonenumber?: string | undefined,\n\t\tusername?: string | undefined,\n\t\tdeleted?: boolean\n\t) {\n\t\tthis.id = id;\n\t\tthis.email = email.trim();\n\t\tthis.role = role;\n\t\tthis.firstName = firstName.trim();\n\t\tthis.lastName = lastName.trim();\n\t\tthis.originOfEmployee = originOfEmployee;\n\t\tthis.teamLeaderIDs = teamLeaderIDs;\n\t\tthis.tlGroups = tlGroups;\n\t\tthis.contactFor = contactFor;\n\t\tthis.phonenumber = phonenumber ? phonenumber.trim() : undefined;\n\t\tthis.username = username ? username.trim() : undefined;\n\t\tthis.deleted = deleted || false;\n\t}\n\n\tpublic static fromJWT(token: string): User {\n\t\tconst decodedToken: JWT_TOKEN_PARAMS = jwt_decode(token);\n\n\t\treturn new User(\n\t\t\t0,\n\t\t\tdecodedToken.sub,\n\t\t\tdecodedToken.role,\n\t\t\t'',\n\t\t\t'',\n\t\t\tOriginOfEmployee.FromIQR,\n\t\t\t[],\n\t\t\t[],\n\t\t\tundefined,\n\t\t\t'',\n\t\t\t''\n\t\t);\n\t}\n\n\tpublic static fromJSON(maybe: any): User {\n\t\tif (typeof maybe.id !== 'number') {\n\t\t\tthrow new Error('id must be number');\n\t\t}\n\n\t\tif (typeof maybe.role !== 'number') {\n\t\t\tthrow new Error('roler must be number');\n\t\t}\n\n\t\tif (typeof maybe.email !== 'string') {\n\t\t\tthrow new Error('email must be string');\n\t\t}\n\n\t\tif (typeof maybe.first_name !== 'string') {\n\t\t\tthrow new Error('firstName must be string');\n\t\t}\n\n\t\tif (typeof maybe.last_name !== 'string') {\n\t\t\tthrow new Error('lastName must be string');\n\t\t}\n\n\t\tif (typeof maybe.origin !== 'number') {\n\t\t\tthrow new Error('origin must be number');\n\t\t}\n\n\t\treturn new User(\n\t\t\tmaybe.id,\n\t\t\tmaybe.email.includes('@') ? maybe.email : '',\n\t\t\tmaybe.role,\n\t\t\tmaybe.first_name,\n\t\t\tmaybe.last_name,\n\t\t\tmaybe.origin,\n\t\t\tmaybe.tl,\n\t\t\tmaybe.tlGroups,\n\t\t\tmaybe.contactFor,\n\t\t\tmaybe.phonenumber,\n\t\t\tmaybe.username,\n\t\t\tmaybe.deleted\n\t\t);\n\t}\n\n\tpublic static fromCustomer(maybe: any): User {\n\t\tif (typeof maybe.id !== 'number') {\n\t\t\tthrow new Error('id must be number');\n\t\t}\n\n\t\tif (typeof maybe.email !== 'string') {\n\t\t\tthrow new Error('email must be string');\n\t\t}\n\n\t\tif (typeof maybe.first_name !== 'string') {\n\t\t\tthrow new Error('firstName must be string');\n\t\t}\n\n\t\tif (typeof maybe.last_name !== 'string') {\n\t\t\tthrow new Error('lastName must be string');\n\t\t}\n\n\t\treturn new User(\n\t\t\tmaybe.id,\n\t\t\tmaybe.email,\n\t\t\tUserRole.Customer,\n\t\t\tmaybe.first_name,\n\t\t\tmaybe.last_name,\n\t\t\tOriginOfEmployee.External,\n\t\t\tmaybe.tl,\n\t\t\tmaybe.tlGroups,\n\t\t\tmaybe.contactFor,\n\t\t\tmaybe.phonenumber,\n\t\t\tmaybe.username,\n\t\t\tmaybe.deleted\n\t\t);\n\t}\n\n\tpublic static fromUserUpdate(maybe: any): User {\n\t\treturn new User(\n\t\t\tmaybe.id,\n\t\t\tmaybe.email,\n\t\t\tmaybe.role,\n\t\t\tmaybe.firstName,\n\t\t\tmaybe.lastName,\n\t\t\tmaybe.originOfEmployee,\n\t\t\tmaybe.teamLeader?.map((tl: any) => tl?.value?.id),\n\t\t\tmaybe.tlGroups,\n\t\t\tmaybe.contactFor,\n\t\t\tmaybe.phonenumber,\n\t\t\tmaybe.username,\n\t\t\tmaybe.deleted\n\t\t);\n\t}\n\n\tpublic static toJSON(user: User) {\n\t\treturn {\n\t\t\tid: user.id,\n\t\t\temail: user.email,\n\t\t\trole: user.role,\n\t\t\tfirst_name: user.firstName,\n\t\t\tlast_name: user.lastName,\n\t\t\torigin: user.originOfEmployee,\n\t\t\ttlGroupsIds: user.tlGroups || [],\n\t\t\tcontactFor: user.contactFor || [],\n\t\t\ttl: user.teamLeaderIDs || [],\n\t\t\tusername: user.username,\n\t\t\tphonenumber: user.phonenumber,\n\t\t\tdeleted: user.deleted,\n\t\t};\n\t}\n}\n\nexport default User;\n","import Address from './Address';\nimport User from './User';\n\nexport interface CustomerInterface {\n\tname: any;\n\tbillingAddressGenerated: any;\n\tdeliveryAddressGenerated: any;\n}\n\nclass Customer implements CustomerInterface {\n\tid: number;\n\tname: string;\n\tbillingAddressGenerated: string;\n\tdeliveryAddressGenerated: string;\n\tbillingAdrress: Address;\n\tdeliveryAddress: Address;\n\tusers: User[];\n\n\tcustomerNumber?: string;\n\tsupplierNumber?: string;\n\tinvoiceEmail?: string;\n\treminderEmail?: string;\n\totherEmails?: string[];\n\tvatNumber?: string;\n\ttermOfPayment?: string;\n\n\tconstructor(\n\t\tid: number,\n\t\tname: string,\n\t\tbillingAddress: Address,\n\t\tdeliveryAddress: Address,\n\t\tusers: User[],\n\t\tcustomerNumber: string,\n\t\tsupplierNumber: string,\n\t\tinvoiceEmail: string,\n\t\treminderEmail: string,\n\t\totherEmails: string[],\n\t\tvatNumber: string,\n\t\ttermOfPayment: string\n\t) {\n\t\tthis.id = id;\n\t\tthis.name = name.trim();\n\t\tthis.billingAddressGenerated = billingAddress.toString();\n\t\tthis.deliveryAddressGenerated = deliveryAddress.toString();\n\t\tthis.billingAdrress = billingAddress;\n\t\tthis.deliveryAddress = deliveryAddress;\n\t\tthis.users = users;\n\n\t\tthis.customerNumber = customerNumber;\n\t\tthis.supplierNumber = supplierNumber;\n\t\tthis.invoiceEmail = invoiceEmail;\n\t\tthis.reminderEmail = reminderEmail;\n\t\tthis.otherEmails = otherEmails;\n\t\tthis.vatNumber = vatNumber;\n\t\tthis.termOfPayment = termOfPayment;\n\t}\n\n\tpublic static fromJSON(maybe: any): Customer {\n\t\tif (!maybe) {\n\t\t\tthrow Error('must exist');\n\t\t}\n\n\t\tif (typeof maybe.name !== 'string') {\n\t\t\tthrow Error('id must be type string');\n\t\t}\n\t\tconst users = maybe.users ? maybe.users.map(User.fromCustomer) : [];\n\n\t\treturn new Customer(\n\t\t\tmaybe.id,\n\t\t\tmaybe.name,\n\t\t\tAddress.fromJSON(maybe.billing_address),\n\t\t\tAddress.fromJSON(maybe.delivery_address),\n\t\t\tusers,\n\t\t\tmaybe.customer_number,\n\t\t\tmaybe.supplier_number,\n\t\t\tmaybe.invoice_email,\n\t\t\tmaybe.reminder_email,\n\t\t\tmaybe.other_emails,\n\t\t\tmaybe.vat_number,\n\t\t\tmaybe.term_of_payment\n\n\t\t);\n\t}\n\n\tpublic static toJSON(customer: Customer) {\n\t\treturn {\n\t\t\tid: customer.id,\n\t\t\tname: customer.name,\n\t\t\tbilling_address: Address.toJSON(customer.billingAdrress),\n\t\t\tdelivery_address: Address.toJSON(customer.deliveryAddress),\n\t\t\tusers: customer.users,\n\t\t\tcustomer_number: customer.customerNumber,\n\t\t\tsupplier_number: customer.supplierNumber,\n\t\t\tinvoice_email: customer.invoiceEmail,\n\t\t\treminder_email: customer.reminderEmail,\n\t\t\tother_emails: customer.otherEmails,\n\t\t\tvat_number: customer.vatNumber,\n\t\t\tterm_of_payment: customer.termOfPayment\n\t\t\t\n\t\t};\n\t}\n}\n\nexport default Customer;\n","import moment, { Moment } from 'moment';\n\nclass MaterialTool {\n\tid: number;\n\tname: string;\n\tquantity: number;\n\treporter: number;\n\tqai: number;\n\tdate: Moment;\n\tbilled: boolean;\n\tprice: number;\n\n\tconstructor(\n\t\tid: number,\n\t\tname: string,\n\t\tquantity: number,\n\t\treporter: number,\n\t\tqai: number,\n\t\tdate: Moment,\n\t\tbilled: boolean,\n\t\tprice: number\n\t) {\n\t\tthis.id = id;\n\t\tthis.name = name.trim();\n\t\tthis.quantity = quantity;\n\t\tthis.reporter = reporter;\n\t\tthis.qai = qai;\n\t\tthis.date = date;\n\t\tthis.billed = billed;\n\t\tthis.price = price;\n\t}\n\n\tpublic static fromJSON(maybe: any): MaterialTool {\n\t\tif (!maybe) {\n\t\t\tthrow new Error('must exist');\n\t\t}\n\t\tif (typeof maybe.id !== 'number') {\n\t\t\tthrow new Error('id must be number');\n\t\t}\n\n\t\tif (typeof maybe.name !== 'string') {\n\t\t\tthrow new Error('name must be string');\n\t\t}\n\t\tif (typeof maybe.quantity !== 'number') {\n\t\t\tthrow new Error('quantity must be number');\n\t\t}\n\t\tif (typeof maybe.reporter !== 'number') {\n\t\t\tthrow new Error('reporter must be number');\n\t\t}\n\t\tif (typeof maybe.qai !== 'number') {\n\t\t\tthrow new Error('qai must be number');\n\t\t}\n\t\tconst date = moment(maybe.date);\n\t\tif (!date.isValid()) {\n\t\t\tthrow new Error('date is not valid date');\n\t\t}\n\t\treturn new MaterialTool(\n\t\t\tmaybe.id,\n\t\t\tmaybe.name,\n\t\t\tmaybe.quantity,\n\t\t\tmaybe.reporter,\n\t\t\tmaybe.qai,\n\t\t\tdate,\n\t\t\tmaybe.billed,\n\t\t\tmaybe.price\n\t\t);\n\t}\n\n\tpublic static createMaterialToolWithID(id: number, withoutIDMaterialTool: MaterialTool) {\n\t\treturn new MaterialTool(\n\t\t\tid,\n\t\t\twithoutIDMaterialTool.name,\n\t\t\twithoutIDMaterialTool.quantity,\n\t\t\twithoutIDMaterialTool.reporter,\n\t\t\twithoutIDMaterialTool.qai,\n\t\t\twithoutIDMaterialTool.date,\n\t\t\twithoutIDMaterialTool.billed,\n\t\t\twithoutIDMaterialTool.price\n\t\t);\n\t}\n\n\tpublic static toJSON(material: MaterialTool) {\n\t\treturn {\n\t\t\tid: material.id,\n\t\t\tname: material.name,\n\t\t\tquantity: material.quantity,\n\t\t\treporter: material.reporter,\n\t\t\tqai: material.qai,\n\t\t\tdate: material.date.toISOString(),\n\t\t\tbilled: material.billed,\n\t\t};\n\t}\n}\n\nexport default MaterialTool;\n","import { FileInterface } from '../../helpers/contractHelper/generalContractHelper';\nimport moment, { Moment } from 'moment';\nimport { PartStatusType } from '../../helpers/rhenusInputHelper/generalRhenusHelper';\n\nexport interface RhenusCaseFilterInterface {\n\tproductionNumber: any;\n\tpartStatus: any;\n\tstorage: any;\n\tcolorNumber: any;\n\tpartNumber: any;\n\tqai: any;\n\tapproved: any;\n\ttypeOfInspection: any;\n\terrorType: any;\n\tshift: any;\n\tamountOfParts: any;\n\tfromDate?: any;\n\ttoDate?: any;\n}\n\nexport interface RhenusCaseTableInterface extends RhenusCaseFilterInterface {\n\tdate: any;\n\tshift: any;\n\tcomment?: any;\n\tphoto?: any;\n\tpartNumberShould: any;\n\tcolorNumberShould: any;\n}\n\nclass RhenusCase implements RhenusCaseTableInterface {\n\tid: number;\n\tdate: Moment;\n\tshift: number;\n\terrorType: string;\n\tproductionNumber: number;\n\tpartNumber: string;\n\tpartNumberShould: string;\n\tzone: number;\n\tstorage: string;\n\tpartStatus: PartStatusType;\n\tqai: number;\n\tapproved: boolean;\n\ttypeOfInspection: string;\n\tcolorNumber: string;\n\tcolorNumberShould: string;\n\tamountOfParts: string;\n\tphoto?: FileInterface;\n\tcomment?: string;\n\n\tconstructor(\n\t\tid: number,\n\t\tdate: Moment,\n\t\tshift: number,\n\t\tproductionNumber: number,\n\t\tpartNumber: string,\n\t\tzone: number,\n\t\tstorage: string,\n\t\tpartStatus: PartStatusType,\n\t\tqai: number,\n\t\tapproved: boolean,\n\t\ttypeOfInspection: string,\n\t\terrorType: string,\n\t\tpartNumberShould: string,\n\t\tcolorNumber: string,\n\t\tcolorNumberShould: string,\n\t\tamountOfParts: string,\n\t\tcomment?: string,\n\t\tphoto?: FileInterface\n\t) {\n\t\tthis.id = id;\n\t\tthis.date = date;\n\t\tthis.shift = shift;\n\t\tthis.productionNumber = productionNumber;\n\t\tthis.partNumber = partNumber.trim();\n\t\tthis.zone = zone;\n\t\tthis.storage = storage.trim();\n\t\tthis.partStatus = partStatus;\n\t\tthis.qai = qai;\n\t\tthis.approved = approved;\n\t\tthis.photo = photo;\n\t\tthis.comment = comment ? comment.trim() : undefined;\n\t\tthis.typeOfInspection = typeOfInspection.trim();\n\t\tthis.errorType = errorType.trim();\n\t\tthis.partNumberShould = partNumberShould.trim();\n\t\tthis.colorNumber = colorNumber;\n\t\tthis.colorNumberShould = colorNumberShould;\n\t\tthis.amountOfParts = amountOfParts;\n\t}\n\n\tpublic static fromJSON(maybe: any): RhenusCase {\n\t\tif (!maybe) {\n\t\t\tthrow Error('must exist');\n\t\t}\n\t\tif (typeof maybe.id !== 'number') {\n\t\t\tthrow Error('id must be number');\n\t\t}\n\t\tif (typeof maybe.production_number !== 'number') {\n\t\t\tthrow Error('productionNumber must be number');\n\t\t}\n\t\tif (typeof maybe.part_number !== 'string') {\n\t\t\tthrow Error('partNumber must be string');\n\t\t}\n\t\tif (typeof maybe.part_status !== 'number') {\n\t\t\tthrow Error('partStatus must be number');\n\t\t}\n\t\tif (typeof maybe.storage !== 'string') {\n\t\t\tthrow Error('storage must be string');\n\t\t}\n\t\tif (typeof maybe.qai_id !== 'number') {\n\t\t\tthrow Error('qai must be number');\n\t\t}\n\t\tif (typeof maybe.type_of_inspection !== 'string') {\n\t\t\tthrow Error('typeOfInspection must be number');\n\t\t}\n\t\tif (!maybe.zone_id) {\n\t\t\tthrow Error('zone must exist');\n\t\t}\n\t\tif (!maybe.shift_id) {\n\t\t\tthrow Error('shift must exist');\n\t\t}\n\t\tif (maybe.approved === undefined) {\n\t\t\tthrow Error('approved must exist');\n\t\t}\n\t\tif (typeof maybe.part_number_should !== 'string') {\n\t\t\tthrow Error('partNumberShould must be number');\n\t\t}\n\t\tif (typeof maybe.color_number !== 'string') {\n\t\t\tthrow Error('colorNumber must be number');\n\t\t}\n\t\tif (typeof maybe.color_number_should !== 'string') {\n\t\t\tthrow Error('colorNumberShould must be number');\n\t\t}\n\t\tif (typeof maybe.amount_of_parts !== 'string') {\n\t\t\tthrow Error('amountOfParts must be number');\n\t\t}\n\t\tif (typeof maybe.error_type !== 'string') {\n\t\t\tthrow Error('errorType must be string');\n\t\t}\n\t\tconst date = moment(maybe.date);\n\t\tif (!date.isValid()) {\n\t\t\tthrow new Error('date is not valid date');\n\t\t}\n\n\t\treturn new RhenusCase(\n\t\t\tmaybe.id,\n\t\t\tdate,\n\t\t\tmaybe.shift_id,\n\t\t\tmaybe.production_number,\n\t\t\tmaybe.part_number,\n\t\t\tmaybe.zone_id,\n\t\t\tmaybe.storage,\n\t\t\tmaybe.part_status,\n\t\t\tmaybe.qai_id,\n\t\t\tmaybe.approved,\n\t\t\tmaybe.type_of_inspection,\n\t\t\tmaybe.error_type,\n\t\t\tmaybe.part_number_should,\n\t\t\tmaybe.color_number,\n\t\t\tmaybe.color_number_should,\n\t\t\tmaybe.amount_of_parts,\n\t\t\tmaybe.comment,\n\t\t\tmaybe.photo && maybe.photo.name ? maybe.photo : undefined\n\t\t);\n\t}\n\n\tpublic static toJSON(rhenusCase: RhenusCase) {\n\t\treturn {\n\t\t\tid: rhenusCase.id,\n\t\t\tdate: rhenusCase.date.toISOString(),\n\t\t\tshift_id: rhenusCase.shift,\n\t\t\tproduction_number: rhenusCase.productionNumber,\n\t\t\tpart_number: rhenusCase.partNumber,\n\t\t\tstorage: rhenusCase.storage,\n\t\t\tpart_status: rhenusCase.partStatus,\n\t\t\tqai_id: rhenusCase.qai,\n\t\t\tzone_id: rhenusCase.zone,\n\t\t\tapproved: rhenusCase.approved,\n\t\t\tphoto: rhenusCase.photo,\n\t\t\tcomment: rhenusCase.comment,\n\t\t\terror_type: rhenusCase.errorType,\n\t\t\ttype_of_inspection: rhenusCase.typeOfInspection,\n\t\t\tpart_number_should: rhenusCase.partNumberShould,\n\t\t\tcolor_number: rhenusCase.colorNumber,\n\t\t\tcolor_number_should: rhenusCase.colorNumberShould,\n\t\t\tamount_of_parts: rhenusCase.amountOfParts,\n\t\t};\n\t}\n}\n\nexport default RhenusCase;\n","import {\n\tContractZone,\n\tContractZoneFromJSON,\n\tContractZoneToJSON,\n} from '../../helpers/contractHelper/generalContractHelper';\n\nclass RhenusOverviewInformation {\n\tzone: ContractZone;\n\ttotalPartsTested: number;\n\tnumberOfErrorParts: number;\n\tprecentageOfErrorParts: string;\n\tnumberOfQAI: number;\n\n\tconstructor(\n\t\tzone: ContractZone,\n\t\ttotalPartsTested: number,\n\t\tnumberOfErrorParts: number,\n\t\tprecentageOfErrorParts: string,\n\t\tnumberOfQAI: number\n\t) {\n\t\tthis.zone = zone;\n\t\tthis.totalPartsTested = totalPartsTested;\n\t\tthis.numberOfErrorParts = numberOfErrorParts;\n\t\tthis.precentageOfErrorParts = precentageOfErrorParts;\n\t\tthis.numberOfQAI = numberOfQAI;\n\t}\n\n\tpublic static fromJSON(maybe: any): RhenusOverviewInformation {\n\t\tif (!maybe) {\n\t\t\tthrow Error('must exist');\n\t\t}\n\t\tif (!maybe.zone) {\n\t\t\tthrow Error('zonename must exist');\n\t\t}\n\t\tif (typeof maybe.total_parts_tested !== 'number') {\n\t\t\tthrow Error('totalPartsTested be number');\n\t\t}\n\t\tif (typeof maybe.number_of_error_parts !== 'number') {\n\t\t\tthrow Error('numberOfErrorParts be number');\n\t\t}\n\t\tif (typeof maybe.percentage_of_error_parts !== 'string') {\n\t\t\tthrow Error('precentageOfErrorParts be string');\n\t\t}\n\t\tif (typeof maybe.number_of_qai !== 'number') {\n\t\t\tthrow Error('numberOfQAI be number');\n\t\t}\n\n\t\treturn new RhenusOverviewInformation(\n\t\t\tContractZoneFromJSON(maybe.zone),\n\t\t\tmaybe.total_parts_tested,\n\t\t\tmaybe.number_of_error_parts,\n\t\t\tmaybe.percentage_of_error_parts,\n\t\t\tmaybe.number_of_qai\n\t\t);\n\t}\n\n\tpublic toJSON() {\n\t\treturn {\n\t\t\tzone: ContractZoneToJSON(this.zone),\n\t\t\ttotal_parts_tested: this.totalPartsTested,\n\t\t\tnumber_of_error_parts: this.numberOfErrorParts,\n\t\t\tprecentage_of_error_parts: this.precentageOfErrorParts,\n\t\t\tnumber_of_qai: this.numberOfQAI,\n\t\t};\n\t}\n}\n\nexport default RhenusOverviewInformation;\n","import moment, { Moment } from 'moment';\nimport { FileInterface } from '../../helpers/contractHelper/generalContractHelper';\nimport { ErrorInputFromJSON, ErrorInputToJSON } from '../../helpers/standardInputHelper/generalStandardInputHelper';\n\nexport interface StandardCaseFilterInterface {\n\tpartNumber: any;\n\tdeliveryNoteNumber: any;\n\tdeliveryNoteDate: any;\n\ttotalPartsTested: any;\n\tpartsNIO: any;\n\tpartsIO: any;\n\tpartsReworked: any;\n\tcheckNumber: any;\n\tqai: any;\n\ttypeOfInspection: any;\n\tapproved: any;\n\tshift: any;\n\ttoDate?: any;\n\tfromDate?: any;\n}\n\nexport interface ErrorInputType {\n\tamount: number;\n\ttype: string;\n}\n\nexport interface StandardCaseTableInterface extends StandardCaseFilterInterface {\n\terrorTypes: any;\n\tphoto?: any;\n\tcomment?: any;\n}\n\nclass StandardCaseInput implements StandardCaseTableInterface {\n\tid: number;\n\tpartNumber: string;\n\tdeliveryNoteNumber: number | null;\n\tdeliveryNoteDate: Moment | null;\n\ttotalPartsTested: number;\n\tpartsNIO: number;\n\tpartsIO: number;\n\tpartsReworked: number;\n\tcheckNumber: number;\n\tqai: number;\n\ttypeOfInspection: string;\n\terrorTypes: ErrorInputType[];\n\tshift: number;\n\tdate: Moment;\n\tapproved: boolean;\n\tphoto?: FileInterface;\n\tcomment?: string;\n\tlocationID?: number;\n\n\tconstructor(\n\t\tid: number,\n\t\tpartNumber: string,\n\t\tdeliveryNoteNumber: number | null,\n\t\tdeliveryNoteDate: Moment | null,\n\t\ttotalPartsTested: number,\n\t\tpartsNIO: number,\n\t\tpartsIO: number,\n\t\tpartsReworked: number,\n\t\tcheckNumber: number,\n\t\tqai: number,\n\t\ttypeOfInspection: string,\n\t\terrorTypes: ErrorInputType[],\n\t\tshift: number,\n\t\tdate: Moment,\n\t\tapproved: boolean,\n\t\tcomment?: string,\n\t\tphoto?: FileInterface,\n\t\tlocationID?: number\n\t) {\n\t\tthis.id = id;\n\t\tthis.partNumber = partNumber.trim();\n\t\tthis.deliveryNoteNumber = deliveryNoteNumber;\n\t\tthis.deliveryNoteDate = deliveryNoteDate;\n\t\tthis.totalPartsTested = totalPartsTested;\n\t\tthis.partsNIO = partsNIO;\n\t\tthis.partsIO = partsIO;\n\t\tthis.partsReworked = partsReworked;\n\t\tthis.checkNumber = checkNumber;\n\t\tthis.qai = qai;\n\t\tthis.typeOfInspection = typeOfInspection.trim();\n\t\tthis.errorTypes = errorTypes;\n\t\tthis.shift = shift;\n\t\tthis.photo = photo;\n\t\tthis.date = date;\n\t\tthis.comment = comment ? comment.trim() : undefined;\n\t\tthis.approved = approved;\n\t\tthis.locationID = locationID;\n\t}\n\n\tpublic static fromJSON(maybe: any) {\n\t\tif (!maybe) {\n\t\t\tthrow Error('standard case must exist');\n\t\t}\n\t\tif (typeof maybe.id !== 'number') {\n\t\t\tthrow Error('id must be number');\n\t\t}\n\t\tif (typeof maybe.part_number !== 'string') {\n\t\t\tthrow Error('part_number must be string');\n\t\t}\n\t\tif (typeof maybe.delivery_note_number !== 'number' && maybe.delivery_note_number !== null) {\n\t\t\tthrow Error('deliveryNoteNumber must be number or null');\n\t\t}\n\t\tif (typeof maybe.total_parts_tested !== 'number') {\n\t\t\tthrow Error('totalPartsTested must be number');\n\t\t}\n\t\tif (typeof maybe.parts_NIO !== 'number') {\n\t\t\tthrow Error('partsNIO must be number');\n\t\t}\n\t\tif (typeof maybe.parts_IO !== 'number') {\n\t\t\tthrow Error('partsIO must be number');\n\t\t}\n\t\tif (typeof maybe.parts_reworked !== 'number') {\n\t\t\tthrow Error('partsReworked must be number');\n\t\t}\n\t\tif (typeof maybe.check_number !== 'number') {\n\t\t\tthrow Error('checkNumber must be number');\n\t\t}\n\t\tif (!maybe.type_of_inspection) {\n\t\t\tthrow Error('typeOfInspection must exist');\n\t\t}\n\t\tif (!maybe.qai_id) {\n\t\t\tthrow Error('qai must exist');\n\t\t}\n\t\tif (!maybe.error_types) {\n\t\t\tthrow Error('errorType must exist');\n\t\t}\n\t\tconst deliveryNoteDate = maybe.delivery_note_date ? moment(maybe.delivery_note_date) : null;\n\t\t// if (!deliveryNoteDate.isValid()) {\n\t\t// \tthrow new Error('deliveryNoteDate is not valid date');\n\t\t// }\n\n\t\tconst date = moment(maybe.date);\n\t\tif (!date.isValid()) {\n\t\t\tthrow new Error('date is not valid date');\n\t\t}\n\n\t\tif (maybe.approved === undefined) {\n\t\t\tthrow new Error('approved must exist');\n\t\t}\n\n\t\treturn new StandardCaseInput(\n\t\t\tmaybe.id,\n\t\t\tmaybe.part_number,\n\t\t\tmaybe.delivery_note_number ? maybe.delivery_note_number.toString() : '',\n\t\t\tdeliveryNoteDate,\n\t\t\tmaybe.total_parts_tested,\n\t\t\tmaybe.parts_NIO,\n\t\t\tmaybe.parts_IO,\n\t\t\tmaybe.parts_reworked,\n\t\t\tmaybe.check_number,\n\t\t\tmaybe.qai_id,\n\t\t\tmaybe.type_of_inspection,\n\t\t\tmaybe.error_types.map(ErrorInputFromJSON).filter((item: ErrorInputType) => item.amount),\n\t\t\tmaybe.shift_id,\n\t\t\tdate,\n\t\t\tmaybe.approved,\n\t\t\tmaybe.comment,\n\t\t\tmaybe.photo && maybe.photo.name ? maybe.photo : undefined,\n\t\t\tmaybe.location_id\n\t\t);\n\t}\n\n\tpublic static toJSON(standardCase: StandardCaseInput) {\n\t\treturn {\n\t\t\tid: standardCase.id,\n\t\t\tpart_number: standardCase.partNumber,\n\t\t\tdelivery_note_number: standardCase.deliveryNoteNumber,\n\t\t\tdelivery_note_date: standardCase?.deliveryNoteDate?.toISOString(),\n\t\t\ttotal_parts_tested: Number(standardCase.totalPartsTested),\n\t\t\tparts_NIO: standardCase.partsNIO,\n\t\t\tparts_IO: standardCase.partsIO,\n\t\t\tparts_reworked: Number(standardCase.partsReworked),\n\t\t\tcheck_number: standardCase.checkNumber,\n\t\t\tqai_id: standardCase.qai,\n\t\t\terror_types: standardCase.errorTypes.map(ErrorInputToJSON),\n\t\t\tphoto: standardCase.photo,\n\t\t\tcomment: standardCase.comment,\n\t\t\ttype_of_inspection: standardCase.typeOfInspection,\n\t\t\tshift_id: standardCase.shift,\n\t\t\tdate: standardCase.date.toISOString(),\n\t\t\tapproved: standardCase.approved,\n\t\t\tlocation_id: standardCase.locationID,\n\t\t};\n\t}\n}\n\nexport default StandardCaseInput;\n","import moment, { Moment } from 'moment';\nimport { TypeOfTravel } from '../../helpers/expenses/generalExpensesHelper';\n\nclass Travel {\n\tid: number;\n\tdistance: string;\n\ttravelTime: string;\n\treporter: number;\n\tqai: number;\n\tdate: Moment;\n\tbilled: boolean;\n\twaitedTime: string;\n\ttypeOfTransport: TypeOfTravel;\n\n\tconstructor(\n\t\tid: number,\n\t\ttravelTime: string,\n\t\tdistance: string,\n\t\treporter: number,\n\t\tqai: number,\n\t\tdate: Moment,\n\t\tbilled: boolean,\n\t\twaitedTime: string,\n\t\ttypeOfTransport: TypeOfTravel\n\t) {\n\t\tthis.id = id;\n\t\tthis.distance = distance.trim();\n\t\tthis.travelTime = travelTime.trim();\n\t\tthis.reporter = reporter;\n\t\tthis.qai = qai;\n\t\tthis.date = date;\n\t\tthis.billed = billed;\n\t\tthis.waitedTime = waitedTime;\n\t\tthis.typeOfTransport = typeOfTransport;\n\t}\n\n\tpublic static fromJSON(maybe: any): Travel {\n\t\tif (!maybe) {\n\t\t\tthrow new Error('must exist');\n\t\t}\n\t\tif (typeof maybe.id !== 'number') {\n\t\t\tthrow new Error('id must be number');\n\t\t}\n\n\t\tif (typeof maybe.distance !== 'string') {\n\t\t\tthrow new Error('distance must be string');\n\t\t}\n\t\tif (typeof maybe.travel_time !== 'string') {\n\t\t\tthrow new Error('travel_time must be string');\n\t\t}\n\t\tif (typeof maybe.reporter !== 'number') {\n\t\t\tthrow new Error('reporter must be number');\n\t\t}\n\t\tif (typeof maybe.qai !== 'number') {\n\t\t\tthrow new Error('qai must be number');\n\t\t}\n\t\tif (typeof maybe.type_of_transport !== 'number') {\n\t\t\tthrow new Error('type_of_transport must be number');\n\t\t}\n\t\tif (typeof maybe.waited_time !== 'string') {\n\t\t\tthrow new Error('waited_time must be string');\n\t\t}\n\t\tconst date = moment(maybe.date);\n\t\tif (!date.isValid()) {\n\t\t\tthrow new Error('date is not valid date');\n\t\t}\n\n\t\treturn new Travel(\n\t\t\tmaybe.id,\n\t\t\tmaybe.travel_time,\n\t\t\tmaybe.distance,\n\t\t\tmaybe.reporter,\n\t\t\tmaybe.qai,\n\t\t\tdate,\n\t\t\tmaybe.billed,\n\t\t\tmaybe.waited_time,\n\t\t\tmaybe.type_of_transport\n\t\t);\n\t}\n\n\tpublic static createTravelWithID(id: number, withoutIDTravel: Travel) {\n\t\treturn new Travel(\n\t\t\tid,\n\t\t\twithoutIDTravel.travelTime,\n\t\t\twithoutIDTravel.distance,\n\t\t\twithoutIDTravel.reporter,\n\t\t\twithoutIDTravel.qai,\n\t\t\twithoutIDTravel.date,\n\t\t\twithoutIDTravel.billed,\n\t\t\twithoutIDTravel.waitedTime,\n\t\t\twithoutIDTravel.typeOfTransport\n\t\t);\n\t}\n\n\tpublic static toJSON(material: Travel) {\n\t\treturn {\n\t\t\tid: material.id,\n\t\t\tdistance: material.distance,\n\t\t\ttravel_time: material.travelTime,\n\t\t\treporter: material.reporter,\n\t\t\tqai: material.qai,\n\t\t\tdate: material.date.toISOString(),\n\t\t\tbilled: material.billed,\n\t\t\twaited_time: material.waitedTime,\n\t\t\ttype_of_transport: material.typeOfTransport,\n\t\t};\n\t}\n}\n\nexport default Travel;\n","import moment, { Moment } from 'moment';\n\nexport enum RecordTimeType {\n\tWorking = 1,\n\tBreak,\n\tWaiting,\n}\n\nclass BreakTime {\n\tid: number;\n\treporter: number;\n\tqai: number;\n\tdate: Moment;\n\tduration: number;\n\tbilled: boolean;\n\ttype: RecordTimeType;\n\n\tconstructor(id: number, reporter: number, qai: number, date: Moment, duration: number, type: RecordTimeType) {\n\t\tthis.id = id;\n\t\tthis.reporter = reporter;\n\t\tthis.qai = qai;\n\t\tthis.date = date;\n\t\tthis.duration = duration;\n\t\tthis.type = type;\n\t\tthis.billed = false;\n\t}\n\n\tpublic static fromJSON(maybe: any, type: RecordTimeType): BreakTime {\n\t\tif (!maybe) {\n\t\t\tthrow Error('workingtime must exist');\n\t\t}\n\t\tif (typeof maybe.id !== 'number') {\n\t\t\tthrow Error('id must be number');\n\t\t}\n\t\tif (typeof maybe.reporter !== 'number') {\n\t\t\tthrow Error('reporter must be number');\n\t\t}\n\t\tif (typeof maybe.qai !== 'number') {\n\t\t\tthrow Error('qai must be number');\n\t\t}\n\t\tif (typeof maybe.duration !== 'number') {\n\t\t\tthrow Error('duration must be number');\n\t\t}\n\n\t\tconst date = moment(maybe.date);\n\t\tif (!date.isValid()) {\n\t\t\tthrow new Error('date is not valid date');\n\t\t}\n\n\t\treturn new BreakTime(\n\t\t\tmaybe.id,\n\t\t\tmaybe.reporter,\n\t\t\tmaybe.qai,\n\t\t\tdate,\n\t\t\tmaybe.duration < 0 ? maybe.duration + 60 * 60 * 24 : maybe.duration,\n\t\t\ttype\n\t\t);\n\t}\n\n\tpublic static createWorkingTimeWithID(id: number, withoutIDWorkingTime: BreakTime) {\n\t\treturn new BreakTime(\n\t\t\tid,\n\t\t\twithoutIDWorkingTime.reporter,\n\t\t\twithoutIDWorkingTime.qai,\n\t\t\twithoutIDWorkingTime.date,\n\t\t\twithoutIDWorkingTime.duration,\n\t\t\twithoutIDWorkingTime.type\n\t\t);\n\t}\n\n\tpublic static toJSON(workingTime: BreakTime) {\n\t\treturn {\n\t\t\tid: workingTime.id,\n\t\t\treporter: workingTime.reporter,\n\t\t\tqai: workingTime.qai,\n\t\t\tdate: workingTime.date.toISOString(),\n\t\t\tduration: workingTime.duration,\n\t\t};\n\t}\n}\n\nexport default BreakTime;\n\nexport const breakTimefromJSON = (maybe: any, type: RecordTimeType): BreakTime => {\n\tif (!maybe) {\n\t\tthrow Error('workingtime must exist');\n\t}\n\tif (typeof maybe.id !== 'number') {\n\t\tthrow Error('id must be number');\n\t}\n\tif (typeof maybe.reporter !== 'number') {\n\t\tthrow Error('reporter must be number');\n\t}\n\tif (typeof maybe.qaiID !== 'number') {\n\t\tthrow Error('qai must be number');\n\t}\n\tif (typeof maybe.duration !== 'number') {\n\t\tthrow Error('duration must be number');\n\t}\n\n\tconst date = moment(maybe.date);\n\tif (!date.isValid()) {\n\t\tthrow new Error('date is not valid date');\n\t}\n\n\treturn new BreakTime(\n\t\tmaybe.id,\n\t\tmaybe.reporter,\n\t\tmaybe.qaiID,\n\t\tdate,\n\t\tmaybe.duration < 0 ? maybe.duration + 60 * 60 * 24 : maybe.duration,\n\t\ttype\n\t);\n};\n","import moment, { Moment } from 'moment';\nimport { RecordTimeType } from './BreakTime';\n\nclass WorkingTime {\n\tid: number;\n\treporter: number;\n\tqai: number;\n\tdate: Moment;\n\tbilled?: boolean | undefined;\n\tstartTime: Moment;\n\tendTime: Moment;\n\tduration: number;\n\ttype: RecordTimeType;\n\tprofession: number;\n\n\tconstructor(\n\t\tid: number,\n\t\treporter: number,\n\t\tqai: number,\n\t\tdate: Moment,\n\t\tstartTime: Moment,\n\t\tendTime: Moment,\n\t\tduration: number,\n\t\tprofession: number,\n\t\tbilled?: boolean | undefined\n\t) {\n\t\tthis.id = id;\n\t\tthis.reporter = reporter;\n\t\tthis.qai = qai;\n\t\tthis.date = date;\n\t\tthis.billed = billed;\n\t\tthis.startTime = startTime;\n\t\tthis.endTime = endTime;\n\t\tthis.duration = duration;\n\t\tthis.type = RecordTimeType.Working;\n\t\tthis.profession = profession;\n\t}\n\n\tpublic static fromJSON(maybe: any): WorkingTime {\n\t\tif (!maybe) {\n\t\t\tthrow Error('workingtime must exist');\n\t\t}\n\t\tif (typeof maybe.id !== 'number') {\n\t\t\tthrow Error('id must be number');\n\t\t}\n\t\tif (typeof maybe.reporter !== 'number') {\n\t\t\tthrow Error('reporter must be number');\n\t\t}\n\t\tif (typeof maybe.qai !== 'number') {\n\t\t\tthrow Error('qai must be number');\n\t\t}\n\t\tif (typeof maybe.duration !== 'number') {\n\t\t\tthrow Error('duration must be number');\n\t\t}\n\t\tif (maybe.billed === undefined) {\n\t\t\tthrow Error('billed must be exist');\n\t\t}\n\t\tconst date = moment(maybe.date);\n\t\tif (!date.isValid()) {\n\t\t\tthrow new Error('date is not valid date');\n\t\t}\n\t\tconst startTime = moment(maybe.start_time);\n\t\tif (!date.isValid()) {\n\t\t\tthrow new Error('start_time is not valid date');\n\t\t}\n\t\tconst endTime = moment(maybe.end_time);\n\t\tif (!date.isValid()) {\n\t\t\tthrow new Error('end_time is not valid date');\n\t\t}\n\n\t\treturn new WorkingTime(\n\t\t\tmaybe.id,\n\t\t\tmaybe.reporter,\n\t\t\tmaybe.qai,\n\t\t\tdate,\n\t\t\tstartTime,\n\t\t\tendTime,\n\t\t\tmaybe.duration < 0 ? maybe.duration + 60 * 60 * 24 : maybe.duration,\n\t\t\tmaybe.profession,\n\t\t\tmaybe.billed\n\t\t);\n\t}\n\n\tpublic static createWorkingTimeWithID(id: number, withoutIDWorkingTime: WorkingTime) {\n\t\treturn new WorkingTime(\n\t\t\tid,\n\t\t\twithoutIDWorkingTime.reporter,\n\t\t\twithoutIDWorkingTime.qai,\n\t\t\twithoutIDWorkingTime.date,\n\t\t\twithoutIDWorkingTime.startTime,\n\t\t\twithoutIDWorkingTime.endTime,\n\t\t\twithoutIDWorkingTime.duration,\n\t\t\twithoutIDWorkingTime.profession,\n\t\t\twithoutIDWorkingTime.billed\n\t\t);\n\t}\n\n\tpublic static toJSON(workingTime: WorkingTime) {\n\t\treturn {\n\t\t\tid: workingTime.id,\n\t\t\treporter: workingTime.reporter,\n\t\t\tqai: workingTime.qai,\n\t\t\tdate: workingTime.date.toISOString(),\n\t\t\tbilled: workingTime.billed,\n\t\t\tstart_time: workingTime.startTime.toISOString(),\n\t\t\tend_time: workingTime.endTime.toISOString(),\n\t\t\tduration: workingTime.duration,\n\t\t\tprofession: workingTime.profession,\n\t\t};\n\t}\n}\n\nexport default WorkingTime;\n","import moment, { Moment } from 'moment';\n\nclass WorkTimeTrack {\n\tcontractID: number;\n\tstartTime: Moment;\n\tcontractNumber: string;\n\tprofession?: number;\n\n\tconstructor(contractID: number, startTime: Moment, contractNumber: string, profession?: number) {\n\t\tthis.contractID = contractID;\n\t\tthis.startTime = startTime;\n\t\tthis.contractNumber = contractNumber;\n\t\tthis.profession = profession;\n\t}\n\n\tpublic static fromJSON(maybe: any): WorkTimeTrack {\n\t\tif (!maybe) {\n\t\t\tthrow new Error('must exist');\n\t\t}\n\t\tif (typeof maybe.contract_id !== 'number') {\n\t\t\tthrow new Error('contract_id must be number');\n\t\t}\n\t\tif (!maybe.contract_id) {\n\t\t\tthrow new Error('contract_id must exist');\n\t\t}\n\t\tif (typeof maybe.contract_number !== 'string') {\n\t\t\tthrow new Error('contract_number must be string');\n\t\t}\n\t\tconst startTime = moment(maybe.start_time);\n\t\tif (!startTime.isValid()) {\n\t\t\tthrow new Error('start_time is not valid date');\n\t\t}\n\t\treturn new WorkTimeTrack(maybe.contract_id, startTime, maybe.contract_number, maybe.profession);\n\t}\n}\n\nexport default WorkTimeTrack;\n","import moment, { Moment } from 'moment';\n\nexport enum TransportType {\n\tPKW = 1,\n\tLKW = 2,\n\tTransporter = 3,\n\tSpedition = 4,\n}\n\nclass Transport {\n\tid: number;\n\ttype: TransportType;\n\treporter: number;\n\tqai: number;\n\tdate: Moment;\n\tbilled: boolean;\n\n\tconstructor(id: number, type: TransportType, reporter: number, qai: number, date: Moment, billed: boolean) {\n\t\tthis.id = id;\n\t\tthis.type = type;\n\t\tthis.reporter = reporter;\n\t\tthis.qai = qai;\n\t\tthis.date = date;\n\t\tthis.billed = billed;\n\t}\n\n\tpublic static fromJSON(maybe: any): Transport {\n\t\tif (!maybe) {\n\t\t\tthrow new Error('must exist');\n\t\t}\n\t\tif (typeof maybe.id !== 'number') {\n\t\t\tthrow new Error('id must be number');\n\t\t}\n\t\tif (typeof maybe.type !== 'number') {\n\t\t\tthrow new Error('name must be string');\n\t\t}\n\t\tif (typeof maybe.reporter !== 'number') {\n\t\t\tthrow new Error('reporter must be number');\n\t\t}\n\t\tif (typeof maybe.qai !== 'number') {\n\t\t\tthrow new Error('qai must be number');\n\t\t}\n\t\tconst date = moment(maybe.date);\n\t\tif (!date.isValid()) {\n\t\t\tthrow new Error('date is not valid date');\n\t\t}\n\n\t\treturn new Transport(maybe.id, maybe.type, maybe.reporter, maybe.qai, date, maybe.billed);\n\t}\n\n\tpublic static createTransportWithID(id: number, withoutIDTravel: Transport) {\n\t\treturn new Transport(\n\t\t\tid,\n\t\t\twithoutIDTravel.type,\n\t\t\twithoutIDTravel.reporter,\n\t\t\twithoutIDTravel.qai,\n\t\t\twithoutIDTravel.date,\n\t\t\twithoutIDTravel.billed\n\t\t);\n\t}\n\n\tpublic static toJSON(transport: Transport) {\n\t\treturn {\n\t\t\tid: transport.id,\n\t\t\ttype: transport.type,\n\t\t\treporter: transport.reporter,\n\t\t\tqai: transport.qai,\n\t\t\tdate: transport.date.toISOString(),\n\t\t\tbilled: transport.billed,\n\t\t};\n\t}\n}\n\nexport default Transport;\n","import moment, { Moment } from 'moment';\n\nexport enum RecordTimeType {\n\tWorking = 1,\n\tBreak,\n\tWaiting,\n}\n\nclass BreakTimeQA {\n\tid: number;\n\treporter: number;\n\tqai: number;\n\tdate: Moment;\n\tduration: number;\n\tbilled: boolean;\n\ttype: RecordTimeType;\n\n\tconstructor(id: number, reporter: number, qai: number, date: Moment, duration: number, type: RecordTimeType) {\n\t\tthis.id = id;\n\t\tthis.reporter = reporter;\n\t\tthis.qai = qai;\n\t\tthis.date = date;\n\t\tthis.duration = duration;\n\t\tthis.type = type;\n\t\tthis.billed = false;\n\t}\n\n\tpublic static fromJSON(maybe: any, type: RecordTimeType): BreakTimeQA {\n\t\tif (!maybe) {\n\t\t\tthrow Error('workingtime must exist');\n\t\t}\n\t\tif (typeof maybe.id !== 'number') {\n\t\t\tthrow Error('id must be number');\n\t\t}\n\t\tif (typeof maybe.reporter !== 'number') {\n\t\t\tthrow Error('reporter must be number');\n\t\t}\n\t\tif (typeof maybe.qai !== 'number') {\n\t\t\tthrow Error('qai must be number');\n\t\t}\n\t\tif (typeof maybe.duration !== 'number') {\n\t\t\tthrow Error('duration must be number');\n\t\t}\n\n\t\tconst date = moment(maybe.date);\n\t\tif (!date.isValid()) {\n\t\t\tthrow new Error('date is not valid date');\n\t\t}\n\n\t\treturn new BreakTimeQA(\n\t\t\tmaybe.id,\n\t\t\tmaybe.reporter,\n\t\t\tmaybe.qai,\n\t\t\tdate,\n\t\t\tmaybe.duration < 0 ? maybe.duration + 60 * 60 * 24 : maybe.duration,\n\t\t\ttype\n\t\t);\n\t}\n\n\tpublic static createWorkingTimeWithID(id: number, withoutIDWorkingTime: BreakTimeQA) {\n\t\treturn new BreakTimeQA(\n\t\t\tid,\n\t\t\twithoutIDWorkingTime.reporter,\n\t\t\twithoutIDWorkingTime.qai,\n\t\t\twithoutIDWorkingTime.date,\n\t\t\twithoutIDWorkingTime.duration,\n\t\t\twithoutIDWorkingTime.type\n\t\t);\n\t}\n\n\tpublic static toJSON(workingTime: BreakTimeQA) {\n\t\treturn {\n\t\t\tid: workingTime.id,\n\t\t\treporter: workingTime.reporter,\n\t\t\tqaiID: workingTime.qai,\n\t\t\tdate: workingTime.date.toISOString(),\n\t\t\tduration: workingTime.duration,\n\t\t};\n\t}\n}\n\nexport default BreakTimeQA;\n\nexport const breakTimefromJSON = (maybe: any, type: RecordTimeType): BreakTimeQA => {\n\tif (!maybe) {\n\t\tthrow Error('workingtime must exist');\n\t}\n\tif (typeof maybe.id !== 'number') {\n\t\tthrow Error('id must be number');\n\t}\n\tif (typeof maybe.reporter !== 'number') {\n\t\tthrow Error('reporter must be number');\n\t}\n\tif (typeof maybe.qaiID !== 'number') {\n\t\tthrow Error('qai must be number');\n\t}\n\tif (typeof maybe.duration !== 'number') {\n\t\tthrow Error('duration must be number');\n\t}\n\n\tconst date = moment(maybe.date);\n\tif (!date.isValid()) {\n\t\tthrow new Error('date is not valid date');\n\t}\n\n\treturn new BreakTimeQA(\n\t\tmaybe.id,\n\t\tmaybe.reporter,\n\t\tmaybe.qaiID,\n\t\tdate,\n\t\tmaybe.duration < 0 ? maybe.duration + 60 * 60 * 24 : maybe.duration,\n\t\ttype\n\t);\n};\n","import { Moment } from 'moment';\n\nexport class InvoiceItem {\n\tid: number;\n\tcreation_date: Moment;\n\tdate_of_invoice: string;\n\tfrom_date: string;\n\tto_date: string;\n\tcompleted: boolean;\n\tcontract_id: number;\n\tcustomer: string;\n\tbill_number?: string;\n\tnumber_of_shifts?: number;\n\tnumber_of_workers?: number;\n\tinspector_hours?: number;\n\tinspector_late_hours?: number;\n\tinspector_night_hours?: number;\n\tinspector_sunday_night_hours?: number;\n\tinspector_week_overtime_hours?: number;\n\tteamlead_hours?: number;\n\tteamlead_late_hours?: number;\n\tteamlead_night_hours?: number;\n\tteamlead_sunday_night_hours?: number;\n\tteamlead_week_overtime_hours?: number;\n\tresident_hours?: number;\n\tresident_late_hours?: number;\n\tresident_night_hours?: number;\n\tresident_sunday_night_hours?: number;\n\tresident_week_overtime_hours?: number;\n\tgloves?: number;\n\ttravel_time?: number;\n\tkilometers?: number;\n\ttravel_fee?: number;\n\tadministration_fee?: number;\n\tapplication_intake?: number;\n\n\tconstructor(\n\t\tid: number,\n\t\tcreation_date: Moment,\n\t\tdate_of_invoice: string,\n\t\tfrom_date: string,\n\t\tto_date: string,\n\t\tcompleted: boolean,\n\t\tcontract_id: number,\n\t\tcustomer: string,\n\t\tbill_number?: string,\n\t\tnumber_of_shifts?: number,\n\t\tnumber_of_workers?: number,\n\t\tinspector_hours?: number,\n\t\tinspector_late_hours?: number,\n\t\tinspector_night_hours?: number,\n\t\tinspector_sunday_night_hours?: number,\n\t\tinspector_week_overtime_hours?: number,\n\t\tteamlead_hours?: number,\n\t\tteamlead_late_hours?: number,\n\t\tteamlead_night_hours?: number,\n\t\tteamlead_sunday_night_hours?: number,\n\t\tteamlead_week_overtime_hours?: number,\n\t\tresident_hours?: number,\n\t\tresident_late_hours?: number,\n\t\tresident_night_hours?: number,\n\t\tresident_sunday_night_hours?: number,\n\t\tresident_week_overtime_hours?: number,\n\t\tgloves?: number,\n\t\ttravel_time?: number,\n\t\tkilometers?: number,\n\t\ttravel_fee?: number,\n\t\tadministration_fee?: number,\n\t\tapplication_intake?: number\n\t) {\n\t\tthis.id = id;\n\t\tthis.creation_date = creation_date;\n\t\tthis.date_of_invoice = date_of_invoice;\n\t\tthis.from_date = from_date;\n\t\tthis.to_date = to_date;\n\t\tthis.completed = completed;\n\t\tthis.contract_id = contract_id;\n\t\tthis.customer = customer;\n\t\tthis.bill_number = bill_number;\n\t\tthis.number_of_shifts = number_of_shifts;\n\t\tthis.number_of_workers = number_of_workers;\n\t\tthis.inspector_hours = inspector_hours;\n\t\tthis.inspector_late_hours = inspector_late_hours;\n\t\tthis.inspector_night_hours = inspector_night_hours;\n\t\tthis.inspector_sunday_night_hours = inspector_sunday_night_hours;\n\t\tthis.inspector_week_overtime_hours = inspector_week_overtime_hours;\n\t\tthis.teamlead_hours = teamlead_hours;\n\t\tthis.teamlead_late_hours = teamlead_late_hours;\n\t\tthis.teamlead_night_hours = teamlead_night_hours;\n\t\tthis.teamlead_sunday_night_hours = teamlead_sunday_night_hours;\n\t\tthis.teamlead_week_overtime_hours = teamlead_week_overtime_hours;\n\t\tthis.resident_hours = resident_hours;\n\t\tthis.resident_late_hours = resident_late_hours;\n\t\tthis.resident_night_hours = resident_night_hours;\n\t\tthis.resident_sunday_night_hours = resident_sunday_night_hours;\n\t\tthis.resident_week_overtime_hours = resident_week_overtime_hours;\n\t\tthis.gloves = gloves;\n\t\tthis.travel_time = travel_time;\n\t\tthis.kilometers = kilometers;\n\t\tthis.travel_fee = travel_fee;\n\t\tthis.administration_fee = administration_fee;\n\t\tthis.application_intake = application_intake;\n\t}\n\n\tpublic static fromJSON(maybe: any): InvoiceItem {\n\t\tif (!maybe) {\n\t\t\tthrow new Error('must exist');\n\t\t}\n\n\t\treturn new InvoiceItem(\n\t\t\tmaybe.id,\n\t\t\tmaybe.creation_date,\n\t\t\tmaybe.date_of_invoice,\n\t\t\tmaybe.from_date,\n\t\t\tmaybe.to_date,\n\t\t\tmaybe.completed,\n\t\t\tmaybe.contract_id,\n\t\t\tmaybe.customer,\n\t\t\tmaybe.bill_number,\n\t\t\tmaybe.number_of_shifts,\n\t\t\tmaybe.number_of_workers,\n\t\t\tmaybe.inspector_hours,\n\t\t\tmaybe.inspector_late_hours,\n\t\t\tmaybe.inspector_night_hours,\n\t\t\tmaybe.inspector_sunday_night_hours,\n\t\t\tmaybe.inspector_week_overtime_hours,\n\t\t\tmaybe.teamlead_hours,\n\t\t\tmaybe.teamlead_late_hours,\n\t\t\tmaybe.teamlead_night_hours,\n\t\t\tmaybe.teamlead_sunday_night_hours,\n\t\t\tmaybe.teamlead_week_overtime_hours,\n\t\t\tmaybe.resident_hours,\n\t\t\tmaybe.resident_late_hours,\n\t\t\tmaybe.resident_night_hours,\n\t\t\tmaybe.resident_sunday_night_hours,\n\t\t\tmaybe.resident_week_overtime_hours,\n\t\t\tmaybe.gloves,\n\t\t\tmaybe.travel_time,\n\t\t\tmaybe.kilometers,\n\t\t\tmaybe.travel_fee,\n\t\t\tmaybe.administration_fee,\n\t\t\tmaybe.application_intake\n\t\t);\n\t}\n}\n\nclass Invoice {\n\tid: number;\n\tcreation_date: Moment;\n\tdate_of_invoice: Moment;\n\tfrom_date: Moment;\n\tto_date: Moment;\n\n\tconstructor(id: number, creation_date: Moment, date_of_invoice: Moment, from_date: Moment, to_date: Moment) {\n\t\tthis.id = id;\n\t\tthis.creation_date = creation_date;\n\t\tthis.date_of_invoice = date_of_invoice;\n\t\tthis.from_date = from_date;\n\t\tthis.to_date = to_date;\n\t}\n\n\tpublic static fromJSON(maybe: any) {\n\t\tif (!maybe) {\n\t\t\tthrow new Error('must exist');\n\t\t}\n\n\t\treturn new Invoice(maybe.id, maybe.creation_date, maybe.date_of_invoice, maybe.from_date, maybe.to_date);\n\t}\n}\n\nexport default Invoice;\n","import { ContactParams } from '../containers/ContactUsContainer';\nimport { AUTH_TOKEN, REFRESH_TOKEN } from '../context/auth/authReducer';\nimport { ContractStatusType, ShiftInterface } from '../helpers/contractHelper/generalContractHelper';\nimport { QAILoginParams, ResetPasswordParams, UserLoginParams } from '../helpers/userHelper/generalUserHelper';\nimport Axios from 'axios';\nimport { Instances, Service, services } from './service';\nimport Contract, { ContractSummaryInterface } from './types/Contract';\nimport Customer from './types/Customer';\nimport MaterialTool from './types/MaterialTool';\nimport RhenusCase from './types/RhenusCase';\nimport RhenusOverviewInformation from './types/RhenusOverviewInformation';\nimport StandardCaseInput, { StandardCaseFilterInterface } from './types/StandardCase';\nimport Travel from './types/Travel';\nimport User, { CreateEmployeeParams, UpdateEmployeeParams } from './types/User';\nimport WorkingTime from './types/WorkingTime';\nimport WorkTimeTrack from './types/WorkTimeTrack';\nimport moment, { Moment } from 'moment';\nimport { LoginResponse } from '../consts/login';\nimport Transport from './types/Transport';\nimport BreakTime, { breakTimefromJSON, RecordTimeType } from './types/BreakTime';\nimport { DashboardFilterInterface } from '../helpers/dashboardHelper/generalDashboardHelper';\nimport {\n\tExportWorkingTimeInterface,\n\tWorkingTimeFilterInterface,\n} from '../helpers/workingTimeHelper/generalWorkingTimeHelper';\nimport BreakTimeQA from './types/BreakTimeQA';\nimport Invoice, { InvoiceItem } from './types/Invoice';\nimport { CreateGroup, UpdateGroup } from '../pages/GroupCreatePage';\nimport { Group } from '../pages/groupOverview/GroupOverview';\n\nexport const PHOTO_LOCATION_NAME = '/contract-attachments/';\n\nclass Client implements Service {\n\tconstructor(private clientInstances: Instances) {}\n\n\tpublic setJWTToken(JWTToken: string) {\n\t\tservices.forEach((service) => {\n\t\t\t//@ts-ignore\n\t\t\tthis.clientInstances[service].setJWTtoken(JWTToken);\n\t\t});\n\t}\n\n\tpublic async login(params: UserLoginParams): Promise {\n\t\tconst res = await this.clientInstances.auth.call('Login', {\n\t\t\tdetails: {\n\t\t\t\t...params,\n\t\t\t},\n\t\t});\n\t\tif (res?.result) {\n\t\t\tlocalStorage.setItem(REFRESH_TOKEN, res.result.rt);\n\t\t\treturn { at: res.result.at, acceptedPp: res.result.acceptedPp };\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\tpublic async loginQAI(params: QAILoginParams): Promise {\n\t\tconst res = await this.clientInstances.auth.call('LoginQAI', {\n\t\t\tdetails: {\n\t\t\t\t...params,\n\t\t\t},\n\t\t});\n\t\tif (res?.result) {\n\t\t\tlocalStorage.setItem(REFRESH_TOKEN, res.result.rt);\n\t\t\treturn { at: res.result.at, acceptedPp: res.result.acceptedPp };\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\tpublic async checkToken(): Promise {\n\t\tconst res = await this.clientInstances.auth.call('CheckToken', {});\n\t\tif (res?.result) return true;\n\t\treturn false;\n\t}\n\n\tpublic async getAuthToken(refreshToken: string): Promise {\n\t\tconst res = await this.clientInstances.auth.call('RefreshToken', { rt: refreshToken });\n\t\tif (res?.result) {\n\t\t\treturn res.result.at;\n\t\t}\n\t\treturn undefined;\n\t}\n\n\tpublic async requestPasswordReset(email: string): Promise {\n\t\tconst res = await this.clientInstances.auth.call('RequestPasswordReset', { email: email });\n\t\tif (res?.result) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tpublic async checkPasswordRessetToken(token: string): Promise {\n\t\tconst res = await this.clientInstances.auth.call('CheckPasswordResetToken', { uuid: token });\n\t\tif (res?.result) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tpublic async resetPassword(params: ResetPasswordParams): Promise {\n\t\tconst res = await this.clientInstances.auth.call('ConfirmPasswordReset', {\n\t\t\t...params,\n\t\t});\n\t\tif (res?.result) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tpublic async resetPasswordQAI(params: ResetPasswordParams): Promise {\n\t\tconst res = await this.clientInstances.auth.call('ConfirmPasswordResetQAI', {\n\t\t\t...params,\n\t\t});\n\t\tif (res?.result) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tpublic async getAllUsers(): Promise {\n\t\tconst res = await this.clientInstances.auth.call('ReadAllUsers', {});\n\t\tif (res?.result) {\n\t\t\treturn res.result.userDetails.map(User.fromJSON);\n\t\t}\n\t\treturn [];\n\t}\n\n\tpublic async readGroups(): Promise {\n\t\tconst res = await this.clientInstances.auth.call('ReadUserGroups', {});\n\t\treturn res?.result.details ?? [];\n\t}\n\tpublic async createGroup(data: CreateGroup): Promise {\n\t\tconst res = await this.clientInstances.auth.call('CreateUsersGroup', { details: data });\n\t\treturn Boolean(res?.id);\n\t}\n\tpublic async readGroup(id: number): Promise {\n\t\tconst res = await this.clientInstances.auth.call('ReadUsersGroupById', { groupId: id });\n\t\treturn res?.result.details;\n\t}\n\tpublic async updateGroup(data: UpdateGroup): Promise {\n\t\tconst res = await this.clientInstances.auth.call('UpdateUsersGroup', { details: data });\n\t\treturn Boolean(res?.id);\n\t}\n\tpublic async deleteGroup(id: number): Promise {\n\t\tconst res = await this.clientInstances.auth.call('DeleteUsersGroup', { groupId: id });\n\t\treturn Boolean(res?.id);\n\t}\n\n\tpublic async getAll(): Promise {\n\t\tconst res = await this.clientInstances.auth.call('ReadAllUsers', {});\n\t\tif (res?.result) {\n\t\t\treturn res.result.userDetails.map(User.fromJSON);\n\t\t}\n\t\treturn [];\n\t}\n\n\tpublic async logout(): Promise {\n\t\tconst res = await this.clientInstances.auth.call('Logout', {});\n\t\tif (res?.result) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tpublic async getContracts(): Promise {\n\t\tconst res = await this.clientInstances.contract.call('ReadAll', {});\n\t\tif (res?.result && res?.result.contracts) {\n\t\t\treturn res.result.contracts.map((contract: any) => Contract.fromJSON(contract));\n\t\t}\n\t\treturn [];\n\t}\n\n\tpublic async createEmployee(params: CreateEmployeeParams): Promise {\n\t\tconst res = await this.clientInstances.auth.call('CreateEmployee', { details: params });\n\t\tif (res?.result) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tpublic async createQAI(params: CreateEmployeeParams): Promise {\n\t\tconst res = await this.clientInstances.auth.call('CreateQAI', { details: params });\n\t\tif (res?.result) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tpublic async getUserInfo(): Promise {\n\t\tconst res = await this.clientInstances.auth.call('ReadMyDetails', {});\n\t\tif (res?.result) {\n\t\t\treturn User.fromJSON(res.result.userDetails);\n\t\t}\n\t\t//@ts-ignore\n\t\treturn false;\n\t}\n\n\tpublic async getAllCustomers(): Promise {\n\t\tconst res = await this.clientInstances.auth.call('ReadAllCustomers', {});\n\t\tif (res?.result && res.result.customerDetails) {\n\t\t\treturn res.result.customerDetails.map(Customer.fromJSON);\n\t\t}\n\t\treturn [];\n\t}\n\tpublic async getAllQAIs(): Promise {\n\t\tconst res = await this.clientInstances.auth.call('ReadAllQAIs', {});\n\t\tif (res?.result.userDetails) {\n\t\t\treturn res.result.userDetails.map(User.fromJSON);\n\t\t}\n\t\treturn [];\n\t}\n\tpublic async getAllTeamLeaders(): Promise {\n\t\tconst res = await this.clientInstances.auth.call('ReadAllTeamLeaders', {});\n\t\tif (res?.result.userDetails) {\n\t\t\treturn res.result.userDetails.map(User.fromJSON);\n\t\t}\n\t\treturn [];\n\t}\n\tpublic async createCustomer(customer: Customer): Promise {\n\t\tconst res = await this.clientInstances.auth.call('CreateCustomer', { details: Customer.toJSON(customer) });\n\t\tif (res?.result) {\n\t\t\treturn res.result.id;\n\t\t}\n\t\treturn 0;\n\t}\n\n\tpublic async createUserForCustomer(id: number, params: CreateEmployeeParams): Promise {\n\t\tconst res = await this.clientInstances.auth.call('CreateUserForCustomer', { customerID: id, details: params });\n\t\tif (res?.result) {\n\t\t\treturn res.result.id;\n\t\t}\n\t\treturn 0;\n\t}\n\n\tpublic async getCustomerFromUser(id: number): Promise {\n\t\tconst res = await this.clientInstances.auth.call('GetCustomerForUser', { id: id });\n\t\tif (res?.result) {\n\t\t\treturn Customer.fromJSON(res.result.customerDetails);\n\t\t}\n\t\t//@ts-ignore\n\t\treturn false;\n\t}\n\tpublic async deleteUserByID(id: number): Promise {\n\t\tconst res = await this.clientInstances.auth.call('DeleteUser', { id: id });\n\t\tif (res?.result) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tpublic async updateUserByID(id: number, params: UpdateEmployeeParams): Promise {\n\t\tconst res = await this.clientInstances.auth.call('UpdateUser', { id: id, details: params });\n\t\tif (res?.result) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tpublic async updateCustomerByID(id: number, customer: Customer): Promise {\n\t\tconst res = await this.clientInstances.auth.call('UpdateCustomer', {\n\t\t\tid: id,\n\t\t\tdetails: Customer.toJSON(customer),\n\t\t});\n\t\tif (res?.result) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tpublic async getAllStandardCaseInputs(contractID: number): Promise {\n\t\tconst res = await this.clientInstances.contract.call('ReadAllStandardErrorInputs', {\n\t\t\tcontractID: contractID,\n\t\t});\n\n\t\tif (res?.result && res.result.errorInputs) {\n\t\t\treturn res.result.errorInputs.map(StandardCaseInput.fromJSON);\n\t\t}\n\t\treturn [];\n\t}\n\tpublic async updateStandradCaseInput(contractID: number, errorInput: StandardCaseInput): Promise {\n\t\tconst res = await this.clientInstances.contract.call('UpdateStandardErrorInput', {\n\t\t\terrorInput: { ...StandardCaseInput.toJSON(errorInput), shift_id: errorInput.shift },\n\t\t\tcontractID: contractID,\n\t\t});\n\n\t\tif (res?.result) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tpublic async createContract(contract: Contract): Promise {\n\t\tconst res = await this.clientInstances.contract.call('Create', { contract: { ...contract.toJSON() } });\n\t\tif (res?.result) {\n\t\t\treturn res.result.id;\n\t\t}\n\t\treturn 0;\n\t}\n\n\tpublic async createInvoice(\n\t\tcontractID: number,\n\t\tdateOfInvoice: Moment,\n\t\tfromDate: Moment,\n\t\ttoDate: Moment\n\t): Promise {\n\t\tconst res = await this.clientInstances.contract.call('CreateInvoice', {\n\t\t\tcontractID: contractID,\n\t\t\tinvoice: {\n\t\t\t\tdate_of_invoice: dateOfInvoice,\n\t\t\t\tfrom_date: fromDate,\n\t\t\t\tto_date: toDate,\n\t\t\t},\n\t\t});\n\n\t\tif (res?.result) {\n\t\t\treturn res.result.id;\n\t\t}\n\t\treturn 0;\n\t}\n\n\tpublic async updateInvoice(\n\t\tid: number,\n\t\tcreationDate: Moment,\n\t\tdateOfInvoice: Moment,\n\t\tfromDate: Moment,\n\t\ttoDate: Moment,\n\t\tbillNumber: string\n\t): Promise {\n\t\tawait this.clientInstances.contract.call('UpdateInvoice', {\n\t\t\tinvoice: {\n\t\t\t\tid: id,\n\t\t\t\tdate_of_invoice: dateOfInvoice,\n\t\t\t\tfrom_date: fromDate,\n\t\t\t\tto_date: toDate,\n\t\t\t\tcreation_date: creationDate,\n\t\t\t\tbill_number: billNumber,\n\t\t\t},\n\t\t});\n\t}\n\n\tpublic async completeInvoice(id: number): Promise {\n\t\tawait this.clientInstances.contract.call('CompleteInvoice', {\n\t\t\tid: id,\n\t\t});\n\t}\n\n\tpublic async deleteInvoice(id: number): Promise {\n\t\tawait this.clientInstances.contract.call('DeleteInvoice', {\n\t\t\tid: id,\n\t\t});\n\t}\n\n\tpublic async getAllInvoices(contractID: number): Promise {\n\t\tconst res = await this.clientInstances.contract.call('ReadAllInvoices', {\n\t\t\tcontractID: contractID,\n\t\t});\n\n\t\tif (res?.result) {\n\t\t\treturn res.result.invoices.map(Invoice.fromJSON).sort((a: Invoice, b: Invoice) => b.id - a.id);\n\t\t}\n\n\t\treturn [];\n\t}\n\n\tpublic async exportInvoice(id: number): Promise {\n\t\tconst res = await this.clientInstances.contract.call('ExportInvoice', {\n\t\t\tid: id,\n\t\t});\n\n\t\treturn res?.result && res.result.file ? res.result.file : undefined;\n\t}\n\n\tpublic async getInvoiceById(invoiceID: number): Promise {\n\t\tconst res = await this.clientInstances.contract.call('ReadInvoice', {\n\t\t\tid: invoiceID,\n\t\t});\n\n\t\tif (res?.result) {\n\t\t\treturn InvoiceItem.fromJSON(res.result?.invoice);\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\tpublic async deleteContractByID(contractID: number): Promise {\n\t\tconst res = await this.clientInstances.contract.call('Delete', { id: contractID });\n\t\tif (res?.result) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tpublic async contact(params: ContactParams): Promise {\n\t\treturn Promise.resolve(true);\n\t}\n\tpublic async createStandradCaseInput(contractID: number, errorInput: StandardCaseInput): Promise {\n\t\tconst res = await this.clientInstances.contract.call('CreateStandardErrorInput', {\n\t\t\terrorInput: { ...StandardCaseInput.toJSON(errorInput), shift_id: errorInput.shift },\n\t\t\tcontractID: contractID,\n\t\t});\n\t\tif (res?.result) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tpublic async deleteStandradCaseInputByID(contractID: number, errorInputID: number): Promise {\n\t\tconst res = await this.clientInstances.contract.call('DeleteStandardErrorInput', {\n\t\t\tid: errorInputID,\n\t\t});\n\t\tif (res?.result) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tpublic async getRhenusOverviewInformations(\n\t\tcontractID: number,\n\t\tfrom: Moment,\n\t\tto: Moment\n\t): Promise {\n\t\tconst res = await this.clientInstances.contract.call('ReadRhenusOverviewInformations', {\n\t\t\tid: contractID,\n\t\t\tstart: from.toISOString(),\n\t\t\tend: to.toISOString(),\n\t\t});\n\t\tif (res?.result && res.result.overview) {\n\t\t\treturn res.result.overview.map(RhenusOverviewInformation.fromJSON);\n\t\t}\n\t\treturn [];\n\t}\n\tpublic async getZoneCaseInputs(contractID: number, zoneID: number): Promise {\n\t\tconst res = await this.clientInstances.contract.call('ReadAllRhenusInputsByZone', {\n\t\t\tID: zoneID,\n\t\t});\n\t\tif (res?.result && res.result.errorInputs) {\n\t\t\treturn res.result.errorInputs.map(RhenusCase.fromJSON);\n\t\t}\n\t\treturn [];\n\t}\n\tpublic async deleteRhenusCaseInputByID(contractID: number, zoneID: number, errorID: number): Promise {\n\t\tconst res = await this.clientInstances.contract.call('DeleteRhenusErrorInput', {\n\t\t\tID: errorID,\n\t\t});\n\t\tif (res?.result) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tpublic async createRhenusCaseInput(\n\t\tcontractID: number,\n\t\tzoneID: number,\n\t\trhenusCaseInput: RhenusCase\n\t): Promise {\n\t\tconst res = await this.clientInstances.contract.call('CreateRhenusErrorInput', {\n\t\t\terrorInput: { ...RhenusCase.toJSON(rhenusCaseInput) },\n\t\t\tcontractID: contractID,\n\t\t});\n\t\tif (res?.result) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tpublic async updateRhenusCaseInput(\n\t\tcontractID: number,\n\t\tzoneID: number,\n\t\trhenusCaseInput: RhenusCase\n\t): Promise {\n\t\tconst res = await this.clientInstances.contract.call('UpdateRhenusErrorInput', {\n\t\t\terrorInput: { ...RhenusCase.toJSON(rhenusCaseInput) },\n\t\t});\n\t\tif (res?.result) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tpublic async sendErrorReport(message: string): Promise {\n\t\treturn true;\n\t}\n\tpublic async addManualWorkTime(contractID: number, worktime: WorkingTime): Promise {\n\t\tconst res = await this.clientInstances.contract.call('AddManualWorkingTime', {\n\t\t\tworkingTime: { ...WorkingTime.toJSON(worktime) },\n\t\t\tcontractID: contractID,\n\t\t});\n\t\tif (res?.result) {\n\t\t\treturn res.result.id;\n\t\t}\n\t\treturn 0;\n\t}\n\tpublic async addManualBreakTime(contractID: number, worktime: BreakTime): Promise {\n\t\tconst res = await this.clientInstances.contract.call(\n\t\t\tworktime.type === RecordTimeType.Break ? 'AddManualBreakTime' : 'AddManualWaitingTime',\n\t\t\t{\n\t\t\t\tbreakTime: { ...BreakTimeQA.toJSON(worktime) },\n\t\t\t\twaitingTime: { ...BreakTime.toJSON(worktime) },\n\t\t\t\tcontractID: contractID,\n\t\t\t}\n\t\t);\n\t\tif (res?.result) {\n\t\t\treturn res.result.id;\n\t\t}\n\t\treturn 0;\n\t}\n\tpublic async startTrackingTime(contractID: number): Promise {\n\t\tconst res = await this.clientInstances.contract.call('StartTrackingTime', {\n\t\t\tcontractID: contractID,\n\t\t});\n\t\tif (res?.result) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tpublic async stopTrackingTime(\n\t\tcontractID: number,\n\t\tprofession: number | undefined\n\t): Promise {\n\t\tconst res = await this.clientInstances.contract.call('StopTrackingTime', {\n\t\t\tcontractID: contractID,\n\t\t\tprofession: profession,\n\t\t});\n\t\tif (res?.result && res.result.wt) {\n\t\t\treturn WorkingTime.fromJSON(res.result.wt);\n\t\t} else if (res?.result) {\n\t\t\treturn new WorkingTime(0, 0, 0, moment(), moment(), moment(), 0, 0, false);\n\t\t}\n\t\treturn undefined;\n\t}\n\tpublic async getAllRecords(contractID: number): Promise {\n\t\tconst res = await this.clientInstances.contract.call('ReadAllTimes', {\n\t\t\tcontractID: contractID,\n\t\t});\n\n\t\tif (res?.result) {\n\t\t\treturn [\n\t\t\t\t...(res.result.times.working_time || []).map(WorkingTime.fromJSON),\n\t\t\t\t...(res.result.times.waiting_time || []).map((item: any) =>\n\t\t\t\t\tBreakTime.fromJSON(item, RecordTimeType.Waiting)\n\t\t\t\t),\n\t\t\t\t...(res.result.times.break_time || []).map((item: any) =>\n\t\t\t\t\tbreakTimefromJSON(item, RecordTimeType.Break)\n\t\t\t\t),\n\t\t\t];\n\t\t}\n\t\treturn [];\n\t}\n\n\tpublic async readShifts(contractID: number): Promise {\n\t\tconst res = await this.clientInstances.contract.call('ReadShifts', {\n\t\t\tcontractID: contractID,\n\t\t});\n\n\t\tif (res?.result) {\n\t\t\treturn res.result.shifts;\n\t\t}\n\t\treturn [];\n\t}\n\tpublic async deleteRecordByID(contractID: number, recordID: number): Promise {\n\t\tconst res = await this.clientInstances.contract.call('DeleteWorkingTime', {\n\t\t\tworkID: recordID,\n\t\t});\n\t\tif (res?.result) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tpublic async deleteBreakByID(contractID: number, recordID: number): Promise {\n\t\tconst res = await this.clientInstances.contract.call('DeleteBreakTime', {\n\t\t\tbreakID: recordID,\n\t\t});\n\t\tif (res?.result) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tpublic async deleteWaitingByID(contractID: number, recordID: number): Promise {\n\t\tconst res = await this.clientInstances.contract.call('DeleteWaitingTime', {\n\t\t\twaitiD: recordID,\n\t\t});\n\t\tif (res?.result) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tpublic async updateRecordByID(contractID: number, record: WorkingTime): Promise {\n\t\tconst res = await this.clientInstances.contract.call('UpdateWorkingTime', {\n\t\t\tworkingTime: { ...WorkingTime.toJSON(record) },\n\t\t});\n\t\tif (res?.result) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tpublic async updateBreakByID(contractID: number, record: BreakTime): Promise {\n\t\tconst res = await this.clientInstances.contract.call('UpdateBreakTime', {\n\t\t\tbreakTime: { ...BreakTimeQA.toJSON(record) },\n\t\t});\n\t\tif (res?.result) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tpublic async updateWaitingByID(contractID: number, record: BreakTime): Promise {\n\t\tconst res = await this.clientInstances.contract.call('UpdateWaitingTime', {\n\t\t\twaitingTime: { ...BreakTime.toJSON(record) },\n\t\t});\n\t\tif (res?.result) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tpublic async getMaterialExpenses(contractID: number): Promise {\n\t\tconst res = await this.clientInstances.contract.call('ReadMaterialExpenses', {\n\t\t\tcontractID: contractID,\n\t\t});\n\t\tif (res?.result && res.result.materials) {\n\t\t\treturn res.result.materials\n\t\t\t\t.map(MaterialTool.fromJSON)\n\t\t\t\t.sort((a: MaterialTool, b: MaterialTool) => b.id - a.id);\n\t\t}\n\t\treturn [];\n\t}\n\tpublic async getToolExpenses(contractID: number): Promise {\n\t\tconst res = await this.clientInstances.contract.call('ReadToolExpenses', {\n\t\t\tcontractID: contractID,\n\t\t});\n\t\tif (res?.result && res.result.tools) {\n\t\t\treturn res.result.tools.map(MaterialTool.fromJSON).sort((a: MaterialTool, b: MaterialTool) => b.id - a.id);\n\t\t}\n\t\treturn [];\n\t}\n\tpublic async getTravelExpenses(contractID: number): Promise {\n\t\tconst res = await this.clientInstances.contract.call('ReadTravelExpenses', {\n\t\t\tcontractID: contractID,\n\t\t});\n\t\tif (res?.result && res.result.travels) {\n\t\t\treturn res.result.travels.map(Travel.fromJSON).sort((a: Travel, b: Travel) => b.id - a.id);\n\t\t}\n\t\treturn [];\n\t}\n\tpublic async createMaterialExpenses(contractID: number, material: MaterialTool): Promise {\n\t\tconst res = await this.clientInstances.contract.call('CreateMaterialExpenses', {\n\t\t\tcontractID: contractID,\n\t\t\tmaterial: { ...MaterialTool.toJSON(material) },\n\t\t});\n\t\tif (res?.result) {\n\t\t\treturn res.result.id;\n\t\t}\n\t\treturn 0;\n\t}\n\tpublic async createTravelExpenses(contractID: number, travel: Travel): Promise {\n\t\tconst res = await this.clientInstances.contract.call('CreateTravelExpenses', {\n\t\t\tcontractID: contractID,\n\t\t\ttravel: { ...Travel.toJSON(travel) },\n\t\t});\n\t\tif (res?.result) {\n\t\t\treturn res.result.id;\n\t\t}\n\t\treturn 0;\n\t}\n\tpublic async createToolExpenses(contractID: number, tool: MaterialTool): Promise {\n\t\tconst res = await this.clientInstances.contract.call('CreateToolExpenses', {\n\t\t\tcontractID: contractID,\n\t\t\ttool: { ...MaterialTool.toJSON(tool) },\n\t\t});\n\t\tif (res?.result) {\n\t\t\treturn res.result.id;\n\t\t}\n\t\treturn 0;\n\t}\n\tpublic async updateMaterialExpenses(contractID: number, material: MaterialTool): Promise {\n\t\tconst res = await this.clientInstances.contract.call('UpdateMaterialExpenses', {\n\t\t\tmaterial: { ...MaterialTool.toJSON(material) },\n\t\t});\n\t\tif (res?.result) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tpublic async updateTravelExpenses(contractID: number, travel: Travel): Promise {\n\t\tconst res = await this.clientInstances.contract.call('UpdateTravelExpenses', {\n\t\t\ttravel: { ...Travel.toJSON(travel) },\n\t\t});\n\t\tif (res?.result) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tpublic async updateToolExpenses(contractID: number, tool: MaterialTool): Promise {\n\t\tconst res = await this.clientInstances.contract.call('UpdateToolExpenses', {\n\t\t\ttool: { ...MaterialTool.toJSON(tool) },\n\t\t});\n\t\tif (res?.result) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tpublic async deleteMaterialExpensesByID(contractID: number, materialID: number): Promise {\n\t\tconst res = await this.clientInstances.contract.call('DeleteMaterialExpenses', {\n\t\t\tmID: materialID,\n\t\t});\n\t\tif (res?.result) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tpublic async deleteTravelExpensesByID(contractID: number, travelID: number): Promise {\n\t\tconst res = await this.clientInstances.contract.call('DeleteTravelExpenses', {\n\t\t\ttID: travelID,\n\t\t});\n\t\tif (res?.result) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tpublic async deleteToolExpensesByID(contractID: number, toolID: number): Promise {\n\t\tconst res = await this.clientInstances.contract.call('DeleteToolExpenses', {\n\t\t\ttID: toolID,\n\t\t});\n\t\tif (res?.result) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tpublic async openCloseContract(contractID: number, status: ContractStatusType): Promise {\n\t\tconst res = await this.clientInstances.contract.call(status ? 'Open' : 'Close', {\n\t\t\tid: contractID,\n\t\t});\n\n\t\tif (res?.result) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tpublic async changePassword(oldPassword: string, newPassword: string): Promise {\n\t\tconst res = await this.clientInstances.auth.call('ChangePassword', {\n\t\t\toldPassword: oldPassword,\n\t\t\tnewPassword: newPassword,\n\t\t});\n\t\tif (res?.result) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tpublic async getAllQAIsByTeamLeader(teamLeaderID: number): Promise {\n\t\tconst res = await this.clientInstances.auth.call('ReadAllQAISByTL', { TLID: teamLeaderID });\n\t\tif (res?.result.userDetails) {\n\t\t\treturn res.result.userDetails.map((item: any) => User.fromJSON(item));\n\t\t}\n\t\treturn [];\n\t}\n\tpublic async aprroveInput(contractID: number, inputID: number, zoneID?: number): Promise {\n\t\tconst res = await this.clientInstances.contract.call(\n\t\t\tzoneID ? 'ApproveRhenusErrorInput' : 'ApproveStandardErrorInput',\n\t\t\t{\n\t\t\t\tcontractID: contractID,\n\t\t\t\tseiID: inputID,\n\t\t\t\tID: inputID,\n\t\t\t}\n\t\t);\n\t\tif (res?.result) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tpublic async updateContract(contract: Contract): Promise {\n\t\tconst res = await this.clientInstances.contract.call('Update', { contract: { ...contract.toJSON() } });\n\t\tif (res?.result) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tpublic async checkTrackingTime(): Promise {\n\t\tconst res = await this.clientInstances.contract.call('CheckTrackingTime', {});\n\t\tif (res?.result && res.result.tc && res.result.tc.contract_id) {\n\t\t\treturn WorkTimeTrack.fromJSON(res.result.tc);\n\t\t}\n\t\treturn undefined;\n\t}\n\tpublic async getTeamLeaderByContract(contractID: number): Promise {\n\t\tconst res = await this.clientInstances.contract.call('ReadTLByContract', {\n\t\t\tcID: contractID,\n\t\t});\n\t\tif (res?.result && res.result.userDetails) {\n\t\t\treturn User.fromJSON(res.result.userDetails);\n\t\t}\n\t\treturn undefined;\n\t}\n\tpublic async getCustomerByContract(contractID: number): Promise {\n\t\tconst res = await this.clientInstances.contract.call('ReadCustomerByContract', {\n\t\t\tcID: contractID,\n\t\t});\n\t\tif (res?.result && res.result.customerDetails) {\n\t\t\treturn Customer.fromJSON(res.result.customerDetails);\n\t\t}\n\t\treturn undefined;\n\t}\n\tpublic async acceptPrivacyPolicy(): Promise {\n\t\tconst res = await this.clientInstances.auth.call('AcceptPP', {});\n\t\tif (res?.result) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tpublic async getContract(contractID: number): Promise {\n\t\tconst res = await this.clientInstances.contract.call('Read', {\n\t\t\tid: contractID,\n\t\t});\n\t\tif (res?.result && res.result.contract) {\n\t\t\treturn Contract.fromJSON(res.result.contract);\n\t\t}\n\t\treturn undefined;\n\t}\n\tpublic async getStandardCaseInputByID(\n\t\tcontractID: number,\n\t\terrorInputID: number\n\t): Promise {\n\t\tconst res = await this.clientInstances.contract.call('ReadStandardInputByID', {\n\t\t\tid: errorInputID,\n\t\t});\n\t\tif (res?.result && res.result.errorInputs) {\n\t\t\treturn StandardCaseInput.fromJSON(res.result.errorInputs);\n\t\t}\n\t\treturn undefined;\n\t}\n\tpublic async getUserByID(userID: number): Promise {\n\t\tconst res = await this.clientInstances.auth.call('ReadUserByID', {\n\t\t\tid: userID,\n\t\t});\n\t\tif (res?.result && res.result.userDetails) {\n\t\t\treturn User.fromJSON(res.result.userDetails);\n\t\t}\n\t\treturn undefined;\n\t}\n\tpublic async getCustomerByID(customerID: number): Promise {\n\t\tconst res = await this.clientInstances.auth.call('ReadCustomerByID', {\n\t\t\tid: customerID,\n\t\t});\n\t\tif (res?.result && res.result.customerDetails) {\n\t\t\treturn Customer.fromJSON(res.result.customerDetails);\n\t\t}\n\t\treturn undefined;\n\t}\n\tpublic async getTransportExpenses(contractID: number): Promise {\n\t\tconst res = await this.clientInstances.contract.call('ReadTransportExpenses', {\n\t\t\tcontractID: contractID,\n\t\t});\n\t\tif (res?.result && res.result.transport) {\n\t\t\treturn res.result.transport.map(Transport.fromJSON).sort((a: Transport, b: Transport) => b.id - a.id);\n\t\t}\n\t\treturn [];\n\t}\n\tpublic async updateTransportExpenses(contractID: number, transport: Transport): Promise {\n\t\tconst res = await this.clientInstances.contract.call('UpdateTransportExpenses', {\n\t\t\ttransport: { ...Transport.toJSON(transport) },\n\t\t});\n\t\tif (res?.result) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tpublic async deleteTransportExpensesByID(contractID: number, transportID: number): Promise {\n\t\tconst res = await this.clientInstances.contract.call('DeleteTransportExpenses', {\n\t\t\tcID: transportID,\n\t\t});\n\t\tif (res?.result) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tpublic async createTransportExpenses(contractID: number, transport: Transport): Promise {\n\t\tconst res = await this.clientInstances.contract.call('CreateTransportExpenses', {\n\t\t\ttransport: { ...Transport.toJSON(transport) },\n\t\t\tcontractID: contractID,\n\t\t});\n\t\tif (res?.result) {\n\t\t\treturn res.result.id;\n\t\t}\n\t\treturn 0;\n\t}\n\tpublic async getContactQAI24ByContract(contractID: number): Promise {\n\t\tconst res = await this.clientInstances.contract.call('ReadContactQAIByContract', {\n\t\t\tcID: contractID,\n\t\t});\n\n\t\tif (res?.result && res.result.userDetails) {\n\t\t\treturn User.fromJSON(res.result.userDetails);\n\t\t}\n\t\treturn undefined;\n\t}\n\n\tpublic async getRhenusCaseInputByID(errorID: number): Promise {\n\t\tconst res = await this.clientInstances.contract.call('ReadRhenusInputByID', {\n\t\t\tid: errorID,\n\t\t});\n\t\tif (res?.result && res.result.errorInput) {\n\t\t\treturn RhenusCase.fromJSON(res.result.errorInput);\n\t\t}\n\t\treturn undefined;\n\t}\n\tpublic async getPhoto(photoURL: string): Promise {\n\t\tconst res = await Axios.get(PHOTO_LOCATION_NAME + photoURL, {\n\t\t\theaders: { 'Authorization-JWT': localStorage.getItem(AUTH_TOKEN) },\n\t\t\tresponseType: 'blob',\n\t\t});\n\t\tif (res.data) return await convertFileToBase64(res.data);\n\t\treturn undefined;\n\t}\n\n\tpublic async deleteCustomerByID(customerID: number): Promise {\n\t\tconst res = await this.clientInstances.auth.call('DeleteCustomerByID', {\n\t\t\tid: customerID,\n\t\t});\n\t\tif (res?.result) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tpublic async createStandardErrorInputsExcelSheet(\n\t\tcontractID: number,\n\t\tdata: DashboardFilterInterface,\n\t\tlanguage: string\n\t): Promise {\n\t\tconst res = await this.clientInstances.contract.call('CreateStandardErrorInputsExcelSheet', {\n\t\t\tcontractID,\n\t\t\tfilter: { ...data, language },\n\t\t});\n\n\t\tif (res?.result) {\n\t\t\treturn res.result.excelFile;\n\t\t}\n\t\treturn undefined;\n\t}\n\n\tpublic async createProcessContractStandardErrorInputsExcelSheet(\n\t\tcontractID: number,\n\t\tdata: StandardCaseFilterInterface,\n\t\tlanguage: string\n\t): Promise {\n\t\tconst res = await this.clientInstances.contract.call('CreateProcessContractStandardErrorInputsExcelSheet', {\n\t\t\tcontractID,\n\t\t\tfilter: { ...data, language },\n\t\t});\n\n\t\tif (res?.result) {\n\t\t\treturn res.result.excelFile;\n\t\t}\n\t\treturn undefined;\n\t}\n\n\tpublic async createWorkingTimeExcelSheet(\n\t\tcontractID: number,\n\t\tdata: WorkingTimeFilterInterface & ExportWorkingTimeInterface,\n\t\tlanguage: string\n\t): Promise {\n\t\tconst res = await this.clientInstances.contract.call('CreateWorkingTimeExcelSheet', {\n\t\t\tcontractID,\n\t\t\tfilter: {\n\t\t\t\t...data,\n\n\t\t\t\tqai: +data.qai || null,\n\t\t\t\treporter: +data.reporter || null,\n\t\t\t\tlanguage,\n\t\t\t\ttype: +data.type || null,\n\t\t\t\tbilled: typeof data.billed === 'number' ? data.billed : null,\n\t\t\t\tanonymous: data.Anonymous,\n\t\t\t\texport_materials: data.ExportMaterials,\n\t\t\t\texport_tools: data.ExportTools,\n\t\t\t\texport_travels: data.ExportTravels,\n\t\t\t\texport_transport: data.ExportTransport,\n\t\t\t},\n\t\t});\n\n\t\tif (res?.result) {\n\t\t\treturn res.result.excelFile;\n\t\t}\n\t\treturn undefined;\n\t}\n\n\tpublic async contractSummary(\n\t\tcontractID: number,\n\t\tfromDate: Moment | null,\n\t\ttoDate: Moment | null\n\t): Promise {\n\t\tconst res = await this.clientInstances.contract.call('ContractSummary', {\n\t\t\tcontractID,\n\t\t\tfromDate,\n\t\t\ttoDate,\n\t\t});\n\n\t\tif (res?.result) {\n\t\t\treturn res.result.contractSummary;\n\t\t}\n\t\treturn undefined;\n\t}\n}\n\nconst convertFileToBase64 = (file: any): Promise =>\n\tnew Promise((resolve, reject) => {\n\t\tconst reader = new FileReader();\n\t\treader.readAsDataURL(file);\n\n\t\treader.onload = () => {\n\t\t\tif (reader.result) resolve(reader.result.toString());\n\t\t};\n\t\treader.onerror = reject;\n\t});\n\nexport default Client;\n","import { InvoiceItem } from './types/Invoice';\nimport { Service } from './service';\nimport Contract from './types/Contract';\nimport User, { CreateEmployeeParams, UpdateEmployeeParams } from './types/User';\nimport { QAILoginParams, ResetPasswordParams, UserLoginParams } from '../helpers/userHelper/generalUserHelper';\nimport Customer from './types/Customer';\nimport StandardCaseInput, { StandardCaseFilterInterface } from './types/StandardCase';\nimport { ContactParams } from '../containers/ContactUsContainer';\nimport RhenusOverviewInformation from './types/RhenusOverviewInformation';\nimport RhenusCase from './types/RhenusCase';\nimport WorkingTime from './types/WorkingTime';\nimport MaterialTool from './types/MaterialTool';\nimport Travel from './types/Travel';\nimport { ContractStatusType, ShiftInterface } from '../helpers/contractHelper/generalContractHelper';\nimport WorkTimeTrack from './types/WorkTimeTrack';\nimport { LoginResponse } from '../consts/login';\nimport Transport from './types/Transport';\nimport BreakTime from './types/BreakTime';\nimport { DashboardFilterInterface } from '../helpers/dashboardHelper/generalDashboardHelper';\nimport { WorkingTimeFilterInterface } from '../helpers/workingTimeHelper/generalWorkingTimeHelper';\nimport { Moment } from 'moment';\nimport { CreateGroup, UpdateGroup } from '../pages/GroupCreatePage';\nimport { Group } from '../pages/groupOverview/GroupOverview';\n\nclass NotImplementedService implements Service {\n\tpublic setJWTToken(JWTToken: string): void {\n\t\tthrow new Error('setJWTToken is not implemented');\n\t}\n\n\tpublic async login(params: UserLoginParams): Promise {\n\t\tthrow new Error('login is not implemented');\n\t}\n\n\tpublic async loginQAI(params: QAILoginParams): Promise {\n\t\tthrow new Error('login is not implemented');\n\t}\n\n\tpublic async getAuthToken(refreshToken: string): Promise {\n\t\tthrow new Error('getAuthToken is not implemented');\n\t}\n\tpublic async checkToken(): Promise {\n\t\tthrow new Error('checkToken is not implemented');\n\t}\n\tpublic async contact(params: ContactParams): Promise {\n\t\tthrow new Error('contact is not implemented');\n\t}\n\tpublic async requestPasswordReset(email: string): Promise {\n\t\tthrow new Error('requestPasswordReset is not implemented');\n\t}\n\n\tpublic async checkPasswordRessetToken(token: string): Promise {\n\t\tthrow new Error('checkPasswordRessetToken is not implemented');\n\t}\n\n\tpublic async resetPassword(params: ResetPasswordParams): Promise {\n\t\tthrow new Error('resetPassword is not implemented');\n\t}\n\n\tpublic async resetPasswordQAI(params: ResetPasswordParams): Promise {\n\t\tthrow new Error('resetPassword is not implemented');\n\t}\n\n\tpublic async getAllUsers(): Promise {\n\t\tthrow new Error('readAllUsers is not implemented');\n\t}\n\n\tpublic async readGroups(): Promise {\n\t\tthrow new Error('Unexpected error happened. please try again later.');\n\t}\n\tpublic async createGroup(data: CreateGroup): Promise {\n\t\tthrow new Error('Unexpected error happened. please try again later.');\n\t}\n\tpublic async readGroup(id: number): Promise {\n\t\tthrow new Error('Unexpected error happened. please try again later.');\n\t}\n\tpublic async updateGroup(data: UpdateGroup): Promise {\n\t\tthrow new Error('Unexpected error happened. please try again later.');\n\t}\n\tpublic async deleteGroup(id: number): Promise {\n\t\tthrow new Error('Unexpected error happened. please try again later.');\n\t}\n\n\tpublic async logout(): Promise {\n\t\tthrow new Error('logout is not implemented');\n\t}\n\tpublic async getContracts(): Promise {\n\t\tthrow new Error('getContracts is not implemented');\n\t}\n\tpublic async createEmployee(params: CreateEmployeeParams): Promise {\n\t\tthrow new Error('createEmployee is not implemented');\n\t}\n\tpublic async createQAI(params: CreateEmployeeParams): Promise {\n\t\tthrow new Error('createQAI is not implemented');\n\t}\n\tpublic async getUserInfo(): Promise {\n\t\tthrow new Error('getUserInfo is not implemented');\n\t}\n\n\tpublic async readShifts(contractID: number): Promise {\n\t\tthrow new Error('readShifts is not implemented');\n\t}\n\n\tpublic async getAllQAIs(): Promise {\n\t\tthrow new Error('getAllQAIs is not implemented');\n\t}\n\tpublic async getAllTeamLeaders(): Promise {\n\t\tthrow new Error('getAllTeamLeaders is not implemented');\n\t}\n\tpublic async getAllQAIsByTeamLeader(teamLeaderID: number): Promise {\n\t\tthrow new Error('getAllQAIsByTeamLeader is not implemented');\n\t}\n\tpublic async getAllCustomers(): Promise {\n\t\tthrow new Error('getAllCustomers is not implemented');\n\t}\n\tpublic async createCustomer(customer: Customer): Promise {\n\t\tthrow new Error('createCustomer is not implemented');\n\t}\n\tpublic async createUserForCustomer(id: number, params: CreateEmployeeParams): Promise {\n\t\tthrow new Error('createUserForCustomer is not implemented');\n\t}\n\tpublic async getCustomerFromUser(id: number): Promise {\n\t\tthrow new Error('getCustomerFromUser is not implemented');\n\t}\n\tpublic async deleteUserByID(id: number): Promise {\n\t\tthrow new Error('deleteUsers is not implemented');\n\t}\n\tpublic async updateUserByID(id: number, params: UpdateEmployeeParams): Promise {\n\t\tthrow new Error('updateUserByID is not implemented');\n\t}\n\tpublic async updateCustomerByID(id: number, customer: Customer): Promise {\n\t\tthrow new Error('updateCustomerByID is not implemented');\n\t}\n\tpublic async getAllStandardCaseInputs(contractID: number): Promise {\n\t\tthrow new Error('getAllStandardCaseInputs is not implemented');\n\t}\n\tpublic async updateStandradCaseInput(contractID: number, errorInput: StandardCaseInput): Promise {\n\t\tthrow new Error('getAllStandardCaseInputs is not implemented');\n\t}\n\tpublic async createContract(contract: Contract): Promise {\n\t\tthrow new Error('createContract is not implemented');\n\t}\n\tpublic async createInvoice(\n\t\tcontractID: number,\n\t\tdateOfInvoice: Moment,\n\t\tfromDate: Moment,\n\t\ttoDate: Moment\n\t): Promise {\n\t\tthrow new Error('createInvoice is not implemented');\n\t}\n\n\tpublic async updateInvoice(\n\t\tid: number,\n\t\tcreationDate: Moment,\n\t\tdateOfInvoice: Moment,\n\t\tfromDate: Moment,\n\t\ttoDate: Moment,\n\t\tbillNumber: string\n\t): Promise {\n\t\tthrow new Error('updateInvoice is not implemented');\n\t}\n\n\tpublic async deleteInvoice(id: number): Promise {\n\t\tthrow new Error('deleteInvoice is not implemented');\n\t}\n\n\tpublic async completeInvoice(id: number): Promise {\n\t\tthrow new Error('completeInvoice is not implemented');\n\t}\n\n\tpublic async getInvoiceById(invoiceId: number): Promise {\n\t\tthrow new Error('getInvoiceById is not implemented');\n\t}\n\n\tpublic async exportInvoice(id: number): Promise {\n\t\tthrow new Error('exportInvoice is not implemented');\n\t}\n\n\tpublic async deleteContractByID(contractID: number): Promise {\n\t\tthrow new Error('deleteContractByID is not implemented');\n\t}\n\tpublic async createStandradCaseInput(contractID: number, errorInput: StandardCaseInput): Promise {\n\t\tthrow new Error('createStandradCaseInput is not implemented');\n\t}\n\tpublic async deleteStandradCaseInputByID(contractID: number, errorInputID: number): Promise {\n\t\tthrow new Error('createStandradCaseInput is not implemented');\n\t}\n\tpublic async getRhenusOverviewInformations(contractID: number): Promise {\n\t\tthrow new Error('getRhenusOverviewInformations is not implemented');\n\t}\n\tpublic async getZoneCaseInputs(contractID: number, zoneId: number): Promise {\n\t\tthrow new Error('getZoneCaseInputs is not implemented');\n\t}\n\tpublic async deleteRhenusCaseInputByID(contractID: number, zoneId: number, errorID: number): Promise {\n\t\tthrow new Error('deleteRhenusCaseInputByID is not implemented');\n\t}\n\tpublic async createRhenusCaseInput(contractID: number, zoneId: number, rhenusCase: RhenusCase): Promise {\n\t\tthrow new Error('createRhenusCaseInput is not implemented');\n\t}\n\tpublic async updateRhenusCaseInput(contractID: number, zoneId: number, rhenusCase: RhenusCase): Promise {\n\t\tthrow new Error('updateRhenusCaseInput is not implemented');\n\t}\n\tpublic async sendErrorReport(message: string): Promise {\n\t\tthrow new Error('sendErrorReport is not implemented');\n\t}\n\tpublic async addManualWorkTime(contractID: number, worktime: WorkingTime): Promise {\n\t\tthrow new Error('addManualWorkTime is not implemented');\n\t}\n\tpublic async addManualBreakTime(contractID: number, worktime: BreakTime): Promise {\n\t\tthrow new Error('addManualBreakTime is not implemented');\n\t}\n\tpublic async startTrackingTime(contractID: number): Promise {\n\t\tthrow new Error('startTrackingTime is not implemented');\n\t}\n\tpublic async stopTrackingTime(\n\t\tcontractID: number,\n\t\tprofession: number | undefined\n\t): Promise {\n\t\tthrow new Error('stopTrackingTime is not implemented');\n\t}\n\tpublic async getAllRecords(contractID: number): Promise<(WorkingTime | BreakTime)[]> {\n\t\tthrow new Error('getAllRecords is not implemented');\n\t}\n\tpublic async deleteRecordByID(contractID: number, recordID: number): Promise {\n\t\tthrow new Error('deleteRecord is not implemented');\n\t}\n\tpublic async deleteBreakByID(contractID: number, recordID: number): Promise {\n\t\tthrow new Error('deleteBreakByID is not implemented');\n\t}\n\tpublic async deleteWaitingByID(contractID: number, recordID: number): Promise {\n\t\tthrow new Error('deleteWaitingByID is not implemented');\n\t}\n\tpublic async updateRecordByID(contractID: number, record: WorkingTime): Promise {\n\t\tthrow new Error('updateRecord is not implemented');\n\t}\n\tpublic async updateBreakByID(contractID: number, record: BreakTime): Promise {\n\t\tthrow new Error('updateBreakByID is not implemented');\n\t}\n\tpublic async updateWaitingByID(contractID: number, record: BreakTime): Promise {\n\t\tthrow new Error('updateWaitingByID is not implemented');\n\t}\n\tpublic async getMaterialExpenses(contractID: number): Promise {\n\t\tthrow new Error('getMaterialExpenses is not implemented');\n\t}\n\tpublic async getToolExpenses(contractID: number): Promise {\n\t\tthrow new Error('getToolExpenses is not implemented');\n\t}\n\tpublic async getTravelExpenses(contractID: number): Promise {\n\t\tthrow new Error('getTravelExpenses is not implemented');\n\t}\n\tpublic async createMaterialExpenses(contractID: number, material: MaterialTool): Promise {\n\t\tthrow new Error('createMaterialExpenses is not implemented');\n\t}\n\tpublic async createTravelExpenses(contractID: number, travel: Travel): Promise {\n\t\tthrow new Error('createTravelExpenses is not implemented');\n\t}\n\tpublic async createToolExpenses(contractID: number, tool: MaterialTool): Promise {\n\t\tthrow new Error('createToolExpenses is not implemented');\n\t}\n\tpublic async updateMaterialExpenses(contractID: number, material: MaterialTool): Promise {\n\t\tthrow new Error('updateMaterialExpenses is not implemented');\n\t}\n\tpublic async updateTravelExpenses(contractID: number, travel: Travel): Promise {\n\t\tthrow new Error('updateTravelExpenses is not implemented');\n\t}\n\tpublic async updateToolExpenses(contractID: number, tool: MaterialTool): Promise {\n\t\tthrow new Error('updateToolExpenses is not implemented');\n\t}\n\tpublic async deleteMaterialExpensesByID(contractID: number, materialID: number): Promise {\n\t\tthrow new Error('deleteMaterialExpensesByID is not implemented');\n\t}\n\tpublic async deleteTravelExpensesByID(contractID: number, travelID: number): Promise {\n\t\tthrow new Error('deleteTravelExpensesByID is not implemented');\n\t}\n\tpublic async deleteToolExpensesByID(contractID: number, toolID: number): Promise {\n\t\tthrow new Error('deleteToolExpensesByID is not implemented');\n\t}\n\tpublic async openCloseContract(contractID: number, status: ContractStatusType): Promise {\n\t\tthrow new Error('openCloseContract is not implemented');\n\t}\n\tpublic async changePassword(oldPassword: string, newPassword: string): Promise {\n\t\tthrow new Error('changePassword is not implemented');\n\t}\n\tpublic async aprroveInput(contractID: number, inputID: number, zoneID?: number): Promise {\n\t\tthrow new Error('aprroveInput is not implemented');\n\t}\n\tpublic async updateContract(contract: Contract): Promise {\n\t\tthrow new Error('updateContract is not implemented');\n\t}\n\tpublic async checkTrackingTime(): Promise {\n\t\tthrow new Error('checkTrackingTime is not implemented');\n\t}\n\tpublic async getTeamLeaderByContract(contractID: number): Promise {\n\t\tthrow new Error('getTeamLeadrByContract is not implemented');\n\t}\n\n\tpublic async getAllInvoices(contractID: number): Promise {\n\t\tthrow new Error('getAllInvoices not implemented');\n\t}\n\tpublic async getCustomerByContract(contractID: number): Promise {\n\t\tthrow new Error('getCustomerByContract is not implemented');\n\t}\n\tpublic async acceptPrivacyPolicy(): Promise {\n\t\tthrow new Error('acceptPrivacyPolicy is not implemented');\n\t}\n\tpublic async getContract(contractID: number): Promise {\n\t\tthrow new Error('getContract is not implemented');\n\t}\n\tpublic async getStandardCaseInputByID(\n\t\tcontractID: number,\n\t\terrorInputID: number\n\t): Promise {\n\t\tthrow new Error('getStandardCaseInputByID is not implemented');\n\t}\n\tpublic async getUserByID(userID: number): Promise {\n\t\tthrow new Error('readUserByID is not implemented');\n\t}\n\tpublic async getCustomerByID(customerID: number): Promise {\n\t\tthrow new Error('readCustomerByID is not implemented');\n\t}\n\tpublic async getTransportExpenses(contractID: number): Promise {\n\t\tthrow new Error('getTransportExpenses is not implemented');\n\t}\n\tpublic async updateTransportExpenses(contractID: number, transport: Transport): Promise {\n\t\tthrow new Error('updateTransportExpenses is not implemented');\n\t}\n\tpublic async deleteTransportExpensesByID(contractID: number, transportID: number): Promise {\n\t\tthrow new Error('deleteTransportExpensesByID is not implemented');\n\t}\n\tpublic async createTransportExpenses(contractID: number, transport: Transport): Promise {\n\t\tthrow new Error('createTransportExpenses is not implemented');\n\t}\n\tpublic async getContactQAI24ByContract(contractID: number): Promise {\n\t\tthrow new Error('getContactPersonByContract is not implemented');\n\t}\n\n\tpublic async getRhenusCaseInputByID(errorID: number): Promise {\n\t\tthrow new Error('getContactPersonByContract is not implemented');\n\t}\n\n\tpublic async getPhoto(photoURL: string): Promise {\n\t\tthrow new Error('getPhoto is not implemented');\n\t}\n\n\tpublic async deleteCustomerByID(customerID: number): Promise {\n\t\tthrow new Error('deleteCustomerByID is not implemented');\n\t}\n\n\tpublic async createStandardErrorInputsExcelSheet(\n\t\tcontractID: number,\n\t\tdata: DashboardFilterInterface,\n\t\tlanguage: string\n\t): Promise {\n\t\tthrow new Error('createStandardErrorInputsExcelSheet is not implemented');\n\t}\n\n\tpublic async createProcessContractStandardErrorInputsExcelSheet(\n\t\tcontractID: number,\n\t\tdata: StandardCaseFilterInterface,\n\t\tlanguage: string\n\t): Promise {\n\t\tthrow new Error('createProcessContractStandardErrorInputsExcelSheet is not implemented');\n\t}\n\n\tpublic async createWorkingTimeExcelSheet(\n\t\tcontractID: number,\n\t\tdata: WorkingTimeFilterInterface,\n\t\tlanguage: string\n\t): Promise {\n\t\tthrow new Error('createWorkingTimeExcelSheet is not implemented');\n\t}\n\n\tpublic async contractSummary(contractID: number): Promise {\n\t\tthrow new Error('contractSummary is not implemented');\n\t}\n}\n\nexport default NotImplementedService;\n","import { AUTH_TOKEN, REFRESH_TOKEN } from '../context/auth/authReducer';\nimport service from '../service/service';\nimport User from '../service/types/User';\nimport { removeAllData } from '../serviceMiddlewares/cacheMiddleware';\n\nexport function onAuthTokenSuccess(at: string, setUser: (user: User | undefined) => void) {\n\tlocalStorage.setItem(AUTH_TOKEN, at);\n\tsetUser(User.fromJWT(at));\n\tservice.setJWTToken(at);\n}\n\nexport function onAuthTokenError(setUser: (user: User | undefined) => void) {\n\tlocalStorage.removeItem(AUTH_TOKEN);\n\tlocalStorage.removeItem(REFRESH_TOKEN);\n\tremoveAllData();\n\tsetUser(undefined);\n}\n","import { Service } from '../service/service';\nimport Contract from '../service/types/Contract';\nimport User, { CreateEmployeeParams, UpdateEmployeeParams } from '../service/types/User';\nimport { QAILoginParams, ResetPasswordParams, UserLoginParams } from '../helpers/userHelper/generalUserHelper';\nimport Customer from '../service/types/Customer';\nimport StandardCaseInput, { StandardCaseFilterInterface } from '../service/types/StandardCase';\nimport { ContactParams } from '../containers/ContactUsContainer';\nimport RhenusOverviewInformation from '../service/types/RhenusOverviewInformation';\nimport RhenusCase from '../service/types/RhenusCase';\nimport WorkingTime from '../service/types/WorkingTime';\nimport MaterialTool from '../service/types/MaterialTool';\nimport Travel from '../service/types/Travel';\nimport { ContractStatusType, ShiftInterface } from '../helpers/contractHelper/generalContractHelper';\nimport WorkTimeTrack from '../service/types/WorkTimeTrack';\nimport { LoginResponse } from '../consts/login';\nimport { NotificationInterface } from '../context/notification/notificationReducer';\nimport Transport from '../service/types/Transport';\nimport { Moment } from 'moment';\nimport BreakTime from '../service/types/BreakTime';\nimport { DashboardFilterInterface } from '../helpers/dashboardHelper/generalDashboardHelper';\nimport { WorkingTimeFilterInterface } from '../helpers/workingTimeHelper/generalWorkingTimeHelper';\nimport { InvoiceItem } from '../service/types/Invoice';\nimport { CreateGroup, UpdateGroup } from '../pages/GroupCreatePage';\nimport { Group } from '../pages/groupOverview/GroupOverview';\n\nclass SuccessMiddleware implements Service {\n\tnext: Service;\n\tsetNotification: (notification: NotificationInterface) => void;\n\n\tconstructor(next: Service, setNotification: (notification: NotificationInterface) => void) {\n\t\tthis.next = next;\n\t\tthis.setNotification = setNotification;\n\t}\n\n\tpublic setJWTToken(JWTToken: string) {\n\t\tthis.next.setJWTToken(JWTToken);\n\t}\n\n\tpublic async login(params: UserLoginParams): Promise {\n\t\treturn this.next.login(params);\n\t}\n\n\tpublic async loginQAI(params: QAILoginParams): Promise {\n\t\treturn this.next.loginQAI(params);\n\t}\n\n\tpublic async checkToken(): Promise {\n\t\treturn this.next.checkToken();\n\t}\n\tpublic async getAuthToken(refreshToken: string): Promise {\n\t\treturn this.next.getAuthToken(refreshToken);\n\t}\n\n\tpublic async requestPasswordReset(email: string): Promise {\n\t\tconst res = await this.next.requestPasswordReset(email);\n\t\tthis.setNotification({\n\t\t\ttext: 'forgot_password_request_success',\n\t\t\tadditional: '',\n\t\t});\n\t\treturn res;\n\t}\n\n\tpublic async checkPasswordRessetToken(token: string): Promise {\n\t\treturn this.next.checkPasswordRessetToken(token);\n\t}\n\n\tpublic async resetPassword(params: ResetPasswordParams): Promise {\n\t\treturn await this.next.resetPassword(params);\n\t}\n\tpublic async resetPasswordQAI(params: ResetPasswordParams): Promise {\n\t\treturn await this.next.resetPasswordQAI(params);\n\t}\n\tpublic async getAllUsers(): Promise {\n\t\treturn await this.next.getAllUsers();\n\t}\n\n\tpublic async readGroups(): Promise {\n\t\treturn await this.next.readGroups();\n\t}\n\tpublic async createGroup(data: CreateGroup): Promise {\n\t\treturn await this.next.createGroup(data);\n\t}\n\tpublic async readGroup(id: number): Promise {\n\t\treturn await this.next.readGroup(id);\n\t}\n\tpublic async updateGroup(data: UpdateGroup): Promise {\n\t\treturn await this.next.updateGroup(data);\n\t}\n\tpublic async deleteGroup(id: number): Promise {\n\t\treturn await this.next.deleteGroup(id);\n\t}\n\n\tpublic async logout(): Promise {\n\t\treturn await this.next.logout();\n\t}\n\n\tpublic async getContracts(): Promise {\n\t\treturn await this.next.getContracts();\n\t}\n\tpublic async createEmployee(params: CreateEmployeeParams): Promise {\n\t\tconst res = await this.next.createEmployee(params);\n\t\tthis.setNotification({\n\t\t\ttext: 'user_screen_create_notification',\n\t\t\tadditional: `${params.first_name} ${params.last_name}`,\n\t\t});\n\t\treturn res;\n\t}\n\tpublic async createQAI(params: CreateEmployeeParams): Promise {\n\t\tconst res = await this.next.createQAI(params);\n\t\tthis.setNotification({\n\t\t\ttext: 'user_screen_create_notification',\n\t\t\tadditional: `${params.first_name} ${params.last_name}`,\n\t\t});\n\t\treturn res;\n\t}\n\tpublic async getUserInfo(): Promise {\n\t\treturn await this.next.getUserInfo();\n\t}\n\tpublic async getAllQAIs(): Promise {\n\t\treturn await this.next.getAllQAIs();\n\t}\n\tpublic async getAllTeamLeaders(): Promise {\n\t\treturn await this.next.getAllTeamLeaders();\n\t}\n\tpublic async getAllCustomers(): Promise {\n\t\treturn await this.next.getAllCustomers();\n\t}\n\tpublic async getAllQAIsByTeamLeader(teamLeaderID: number): Promise {\n\t\treturn await this.next.getAllQAIsByTeamLeader(teamLeaderID);\n\t}\n\tpublic async createCustomer(customer: Customer): Promise {\n\t\tconst res = await this.next.createCustomer(customer);\n\t\treturn res;\n\t}\n\tpublic async createUserForCustomer(id: number, params: CreateEmployeeParams): Promise {\n\t\tconst res = await this.next.createUserForCustomer(id, params);\n\t\tthis.setNotification({\n\t\t\ttext: 'contact_person_screen_create_notification',\n\t\t\tadditional: `${params.first_name} ${params.last_name}`,\n\t\t});\n\t\treturn res;\n\t}\n\tpublic async getCustomerFromUser(id: number): Promise {\n\t\treturn await this.next.getCustomerFromUser(id);\n\t}\n\tpublic async deleteUserByID(id: number): Promise {\n\t\treturn await this.next.deleteUserByID(id);\n\t}\n\tpublic async updateUserByID(id: number, params: UpdateEmployeeParams): Promise {\n\t\tconst res = await this.next.updateUserByID(id, params);\n\t\tthis.setNotification({\n\t\t\ttext: 'contact_person_screen_update_notification',\n\t\t\tadditional: `${params.first_name} ${params.last_name}`,\n\t\t});\n\t\treturn res;\n\t}\n\tpublic async updateCustomerByID(id: number, customer: Customer): Promise {\n\t\tconst res = await this.next.updateCustomerByID(id, customer);\n\t\tthis.setNotification({ text: 'customer_screen_update_notification', additional: customer.name });\n\t\treturn res;\n\t}\n\tpublic async getAllStandardCaseInputs(contractID: number): Promise {\n\t\treturn await this.next.getAllStandardCaseInputs(contractID);\n\t}\n\tpublic async updateStandradCaseInput(contractID: number, errorInput: StandardCaseInput): Promise {\n\t\tconst res = await this.next.updateStandradCaseInput(contractID, errorInput);\n\t\tthis.setNotification({\n\t\t\ttext: 'standard_case_screen_update_notification',\n\t\t\tadditional: errorInput.partNumber,\n\t\t});\n\t\treturn res;\n\t}\n\tpublic async createContract(contract: Contract): Promise {\n\t\tconst res = await this.next.createContract(contract);\n\t\tthis.setNotification({\n\t\t\ttext: 'contract_screen_create_notification',\n\t\t\tadditional: contract.contractNumber,\n\t\t});\n\t\treturn res;\n\t}\n\n\tpublic async createInvoice(\n\t\tcontractID: number,\n\t\tdateOfInvoice: Moment,\n\t\tfromDate: Moment,\n\t\ttoDate: Moment\n\t): Promise {\n\t\tconst res = await this.next.createInvoice(contractID, dateOfInvoice, fromDate, toDate);\n\n\t\tthis.setNotification({\n\t\t\ttext: 'invoice_create_request_success',\n\t\t\tadditional: '',\n\t\t});\n\n\t\treturn res;\n\t}\n\n\tpublic async updateInvoice(\n\t\tid: number,\n\t\tcreationDate: Moment,\n\t\tdateOfInvoice: Moment,\n\t\tfromDate: Moment,\n\t\ttoDate: Moment,\n\t\tbillNumber: string\n\t): Promise {\n\t\tawait this.next.updateInvoice(id, creationDate, dateOfInvoice, fromDate, toDate, billNumber);\n\t\tthis.setNotification({\n\t\t\ttext: 'invoice_screen_update_success',\n\t\t\tadditional: '',\n\t\t});\n\t}\n\n\tpublic async completeInvoice(id: number): Promise {\n\t\tawait this.next.completeInvoice(id);\n\t\tthis.setNotification({\n\t\t\ttext: 'close_billing_request_success',\n\t\t\tadditional: '',\n\t\t});\n\t}\n\n\tpublic async deleteInvoice(id: number): Promise {\n\t\tawait this.next.deleteInvoice(id);\n\t}\n\n\tpublic async getInvoiceById(invoiceID: number): Promise {\n\t\treturn await this.next.getInvoiceById(invoiceID);\n\t}\n\tpublic async deleteContractByID(contractID: number): Promise {\n\t\treturn await this.next.deleteContractByID(contractID);\n\t}\n\tpublic async contact(params: ContactParams): Promise {\n\t\treturn await this.next.contact(params);\n\t}\n\tpublic async createStandradCaseInput(contractID: number, errorInput: StandardCaseInput): Promise {\n\t\tconst res = await this.next.createStandradCaseInput(contractID, errorInput);\n\t\tthis.setNotification({\n\t\t\ttext: 'standard_case_screen_create_notification',\n\t\t\tadditional: errorInput.partNumber,\n\t\t});\n\t\treturn res;\n\t}\n\tpublic async deleteStandradCaseInputByID(contractID: number, errorInputID: number): Promise {\n\t\treturn await this.next.deleteStandradCaseInputByID(contractID, errorInputID);\n\t}\n\tpublic async getRhenusOverviewInformations(\n\t\tcontractID: number,\n\t\tfrom: Moment,\n\t\tto: Moment\n\t): Promise {\n\t\treturn await this.next.getRhenusOverviewInformations(contractID, from, to);\n\t}\n\tpublic async getZoneCaseInputs(contractID: number, zoneID: number): Promise {\n\t\treturn await this.next.getZoneCaseInputs(contractID, zoneID);\n\t}\n\tpublic async deleteRhenusCaseInputByID(contractID: number, zoneID: number, errorID: number): Promise {\n\t\treturn await this.next.deleteRhenusCaseInputByID(contractID, zoneID, errorID);\n\t}\n\tpublic async createRhenusCaseInput(\n\t\tcontractID: number,\n\t\tzoneID: number,\n\t\trhenusCaseInput: RhenusCase\n\t): Promise {\n\t\tconst res = await this.next.createRhenusCaseInput(contractID, zoneID, rhenusCaseInput);\n\t\tthis.setNotification({\n\t\t\ttext: 'rhenus_case_screen_create_notification',\n\t\t\tadditional: rhenusCaseInput.partNumber,\n\t\t});\n\t\treturn res;\n\t}\n\tpublic async updateRhenusCaseInput(\n\t\tcontractID: number,\n\t\tzoneID: number,\n\t\trhenusCaseInput: RhenusCase\n\t): Promise {\n\t\tconst res = await this.next.updateRhenusCaseInput(contractID, zoneID, rhenusCaseInput);\n\t\tthis.setNotification({\n\t\t\ttext: 'rhenus_case_screen_update_notification',\n\t\t\tadditional: rhenusCaseInput.partNumber,\n\t\t});\n\t\treturn res;\n\t}\n\tpublic async sendErrorReport(message: string): Promise {\n\t\treturn await this.next.sendErrorReport(message);\n\t}\n\tpublic async addManualWorkTime(contractID: number, worktime: WorkingTime): Promise {\n\t\tconst res = await this.next.addManualWorkTime(contractID, worktime);\n\t\tthis.setNotification({\n\t\t\ttext: 'working_time_screen_create_notification',\n\t\t\tadditional: '',\n\t\t});\n\t\treturn res;\n\t}\n\tpublic async addManualBreakTime(contractID: number, worktime: BreakTime): Promise {\n\t\tconst res = await this.next.addManualBreakTime(contractID, worktime);\n\t\tthis.setNotification({\n\t\t\ttext: 'working_time_screen_create_notification',\n\t\t\tadditional: '',\n\t\t});\n\t\treturn res;\n\t}\n\tpublic async startTrackingTime(contractID: number): Promise {\n\t\tconst res = await this.next.startTrackingTime(contractID);\n\t\tthis.setNotification({\n\t\t\ttext: 'working_time_screen_start_notification',\n\t\t\tadditional: '',\n\t\t});\n\t\treturn res;\n\t}\n\tpublic async stopTrackingTime(\n\t\tcontractID: number,\n\t\tprofession: number | undefined\n\t): Promise {\n\t\tconst res = await this.next.stopTrackingTime(contractID, profession);\n\t\tthis.setNotification({\n\t\t\ttext: 'working_time_screen_create_notification',\n\t\t\tadditional: '',\n\t\t});\n\t\treturn res;\n\t}\n\tpublic async getAllRecords(contractID: number): Promise<(WorkingTime | BreakTime)[]> {\n\t\treturn await this.next.getAllRecords(contractID);\n\t}\n\n\tpublic async readShifts(contractID: number): Promise {\n\t\treturn await this.next.readShifts(contractID);\n\t}\n\n\tpublic async exportInvoice(id: number): Promise {\n\t\treturn await this.next.exportInvoice(id);\n\t}\n\n\tpublic async deleteRecordByID(contractID: number, recordID: number): Promise {\n\t\tconst res = await this.next.deleteRecordByID(contractID, recordID);\n\t\tthis.setNotification({\n\t\t\ttext: 'working_time_screen_delete_notification',\n\t\t\tadditional: '',\n\t\t});\n\t\treturn res;\n\t}\n\tpublic async deleteBreakByID(contractID: number, recordID: number): Promise {\n\t\tconst res = await this.next.deleteBreakByID(contractID, recordID);\n\t\tthis.setNotification({\n\t\t\ttext: 'working_time_screen_delete_notification',\n\t\t\tadditional: '',\n\t\t});\n\t\treturn res;\n\t}\n\tpublic async deleteWaitingByID(contractID: number, recordID: number): Promise {\n\t\tconst res = await this.next.deleteWaitingByID(contractID, recordID);\n\t\tthis.setNotification({\n\t\t\ttext: 'working_time_screen_delete_notification',\n\t\t\tadditional: '',\n\t\t});\n\t\treturn res;\n\t}\n\tpublic async updateRecordByID(contractID: number, record: WorkingTime): Promise {\n\t\tconst res = await this.next.updateRecordByID(contractID, record);\n\t\tthis.setNotification({\n\t\t\ttext: 'working_time_screen_update_notification',\n\t\t\tadditional: '',\n\t\t});\n\t\treturn res;\n\t}\n\tpublic async updateBreakByID(contractID: number, record: BreakTime): Promise {\n\t\tconst res = await this.next.updateBreakByID(contractID, record);\n\t\tthis.setNotification({\n\t\t\ttext: 'working_time_screen_update_notification',\n\t\t\tadditional: '',\n\t\t});\n\t\treturn res;\n\t}\n\tpublic async updateWaitingByID(contractID: number, record: BreakTime): Promise {\n\t\tconst res = await this.next.updateWaitingByID(contractID, record);\n\t\tthis.setNotification({\n\t\t\ttext: 'working_time_screen_update_notification',\n\t\t\tadditional: '',\n\t\t});\n\t\treturn res;\n\t}\n\tpublic async getMaterialExpenses(contractID: number): Promise {\n\t\treturn await this.next.getMaterialExpenses(contractID);\n\t}\n\tpublic async getToolExpenses(contractID: number): Promise {\n\t\treturn await this.next.getToolExpenses(contractID);\n\t}\n\tpublic async getTravelExpenses(contractID: number): Promise {\n\t\treturn await this.next.getTravelExpenses(contractID);\n\t}\n\tpublic async createMaterialExpenses(contractID: number, material: MaterialTool): Promise {\n\t\tconst res = await this.next.createMaterialExpenses(contractID, material);\n\t\tthis.setNotification({\n\t\t\ttext: 'expenses_screen_create_notification',\n\t\t\tadditional: '',\n\t\t});\n\t\treturn res;\n\t}\n\tpublic async createTravelExpenses(contractID: number, travel: Travel): Promise {\n\t\tconst res = await this.next.createTravelExpenses(contractID, travel);\n\t\tthis.setNotification({\n\t\t\ttext: 'expenses_screen_create_notification',\n\t\t\tadditional: '',\n\t\t});\n\t\treturn res;\n\t}\n\tpublic async createToolExpenses(contractID: number, tool: MaterialTool): Promise {\n\t\tconst res = await this.next.createToolExpenses(contractID, tool);\n\t\tthis.setNotification({\n\t\t\ttext: 'expenses_screen_create_notification',\n\t\t\tadditional: '',\n\t\t});\n\t\treturn res;\n\t}\n\tpublic async updateMaterialExpenses(contractID: number, material: MaterialTool): Promise {\n\t\tconst res = await this.next.updateMaterialExpenses(contractID, material);\n\t\tthis.setNotification({\n\t\t\ttext: 'expenses_screen_update_notification',\n\t\t\tadditional: '',\n\t\t});\n\t\treturn res;\n\t}\n\tpublic async updateTravelExpenses(contractID: number, travel: Travel): Promise {\n\t\tconst res = await this.next.updateTravelExpenses(contractID, travel);\n\t\tthis.setNotification({\n\t\t\ttext: 'expenses_screen_update_notification',\n\t\t\tadditional: '',\n\t\t});\n\t\treturn res;\n\t}\n\tpublic async updateToolExpenses(contractID: number, tool: MaterialTool): Promise {\n\t\tconst res = await this.next.updateToolExpenses(contractID, tool);\n\t\tthis.setNotification({\n\t\t\ttext: 'expenses_screen_update_notification',\n\t\t\tadditional: '',\n\t\t});\n\t\treturn res;\n\t}\n\n\tpublic async deleteMaterialExpensesByID(contractID: number, materialID: number): Promise {\n\t\tconst res = await this.next.deleteMaterialExpensesByID(contractID, materialID);\n\t\tthis.setNotification({\n\t\t\ttext: 'expenses_screen_delete_notification',\n\t\t\tadditional: '',\n\t\t});\n\t\treturn res;\n\t}\n\tpublic async deleteTravelExpensesByID(contractID: number, travelID: number): Promise {\n\t\tconst res = await this.next.deleteTravelExpensesByID(contractID, travelID);\n\t\tthis.setNotification({\n\t\t\ttext: 'expenses_screen_delete_notification',\n\t\t\tadditional: '',\n\t\t});\n\t\treturn res;\n\t}\n\tpublic async deleteToolExpensesByID(contractID: number, toolID: number): Promise {\n\t\tconst res = await this.next.deleteToolExpensesByID(contractID, toolID);\n\t\tthis.setNotification({\n\t\t\ttext: 'expenses_screen_delete_notification',\n\t\t\tadditional: '',\n\t\t});\n\t\treturn res;\n\t}\n\tpublic async openCloseContract(contractID: number, status: ContractStatusType): Promise {\n\t\treturn await this.next.openCloseContract(contractID, status);\n\t}\n\n\tpublic async changePassword(oldPassword: string, newPassword: string): Promise {\n\t\tconst res = await this.next.changePassword(oldPassword, newPassword);\n\t\tthis.setNotification({\n\t\t\ttext: 'password_changed',\n\t\t\tadditional: '',\n\t\t});\n\t\treturn res;\n\t}\n\tpublic async aprroveInput(contractID: number, inputID: number, zoneID?: number): Promise {\n\t\tconst res = await this.next.aprroveInput(contractID, inputID, zoneID);\n\t\tthis.setNotification({\n\t\t\ttext: 'approve_notification',\n\t\t\tadditional: '',\n\t\t});\n\t\treturn res;\n\t}\n\tpublic async updateContract(contract: Contract): Promise {\n\t\tconst res = await this.next.updateContract(contract);\n\t\tthis.setNotification({\n\t\t\ttext: 'contract_screen_update_notification',\n\t\t\tadditional: contract.contractNumber,\n\t\t});\n\t\treturn res;\n\t}\n\tpublic async checkTrackingTime(): Promise {\n\t\treturn await this.next.checkTrackingTime();\n\t}\n\n\tpublic async getAllInvoices(contractID: number): Promise {\n\t\treturn await this.next.getAllInvoices(contractID);\n\t}\n\n\tpublic async getTeamLeaderByContract(contractID: number): Promise {\n\t\treturn await this.next.getTeamLeaderByContract(contractID);\n\t}\n\tpublic async getCustomerByContract(contractID: number): Promise {\n\t\treturn await this.next.getCustomerByContract(contractID);\n\t}\n\tpublic async acceptPrivacyPolicy(): Promise {\n\t\treturn await this.next.acceptPrivacyPolicy();\n\t}\n\tpublic async getContract(contractID: number): Promise {\n\t\treturn await this.next.getContract(contractID);\n\t}\n\tpublic async getStandardCaseInputByID(\n\t\tcontractID: number,\n\t\terrorInputID: number\n\t): Promise {\n\t\treturn await this.next.getStandardCaseInputByID(contractID, errorInputID);\n\t}\n\tpublic async getUserByID(userID: number): Promise {\n\t\treturn await this.next.getUserByID(userID);\n\t}\n\tpublic async getCustomerByID(customerID: number): Promise {\n\t\treturn await this.next.getCustomerByID(customerID);\n\t}\n\tpublic async getTransportExpenses(contractID: number): Promise {\n\t\treturn await this.next.getTransportExpenses(contractID);\n\t}\n\tpublic async updateTransportExpenses(contractID: number, transport: Transport): Promise {\n\t\tconst res = await this.next.updateTransportExpenses(contractID, transport);\n\t\tthis.setNotification({\n\t\t\ttext: 'expenses_screen_update_notification',\n\t\t\tadditional: '',\n\t\t});\n\t\treturn res;\n\t}\n\tpublic async deleteTransportExpensesByID(contractID: number, transportID: number): Promise {\n\t\tconst res = await this.next.deleteTransportExpensesByID(contractID, transportID);\n\t\tthis.setNotification({\n\t\t\ttext: 'expenses_screen_delete_notification',\n\t\t\tadditional: '',\n\t\t});\n\t\treturn res;\n\t}\n\tpublic async createTransportExpenses(contractID: number, transport: Transport): Promise {\n\t\tconst res = await this.next.createTransportExpenses(contractID, transport);\n\t\tthis.setNotification({\n\t\t\ttext: 'expenses_screen_create_notification',\n\t\t\tadditional: '',\n\t\t});\n\t\treturn res;\n\t}\n\tpublic async getContactQAI24ByContract(contractID: number): Promise {\n\t\treturn await this.next.getContactQAI24ByContract(contractID);\n\t}\n\n\tpublic async getRhenusCaseInputByID(errorID: number): Promise {\n\t\treturn await this.next.getRhenusCaseInputByID(errorID);\n\t}\n\tpublic async getPhoto(photoURL: string): Promise {\n\t\treturn await this.next.getPhoto(photoURL);\n\t}\n\tpublic async deleteCustomerByID(contractID: number): Promise {\n\t\tconst res = await this.next.deleteCustomerByID(contractID);\n\t\tthis.setNotification({\n\t\t\ttext: 'customer_screen_delete_notification',\n\t\t\tadditional: '',\n\t\t});\n\t\treturn res;\n\t}\n\n\tpublic async createStandardErrorInputsExcelSheet(\n\t\tcontractID: number,\n\t\tdata: DashboardFilterInterface,\n\t\tlanguage: string\n\t): Promise {\n\t\tconst res = await this.next.createStandardErrorInputsExcelSheet(contractID, data, language);\n\t\treturn res;\n\t}\n\n\tpublic async createProcessContractStandardErrorInputsExcelSheet(\n\t\tcontractID: number,\n\t\tdata: StandardCaseFilterInterface,\n\t\tlanguage: string\n\t): Promise {\n\t\tconst res = await this.next.createProcessContractStandardErrorInputsExcelSheet(contractID, data, language);\n\t\treturn res;\n\t}\n\n\tpublic async createWorkingTimeExcelSheet(\n\t\tcontractID: number,\n\t\tdata: WorkingTimeFilterInterface,\n\t\tlanguage: string\n\t): Promise {\n\t\tconst res = await this.next.createWorkingTimeExcelSheet(contractID, data, language);\n\t\treturn res;\n\t}\n\n\tpublic async contractSummary(contractID: number, fromDate: Moment | null, toDate: Moment | null): Promise {\n\t\treturn await this.next.contractSummary(contractID, fromDate, toDate);\n\t}\n}\n\nexport default SuccessMiddleware;\n","import { JSONRPCClient } from 'jsonrpc2-client/lib';\nimport Axios, { AxiosResponse } from 'axios';\n\nimport ErrorMiddleware from '../serviceMiddlewares/errorMiddleware';\nimport CacheMiddleware from '../serviceMiddlewares/cacheMiddleware';\nimport Config from '../config';\nimport Client from './client';\nimport User, { CreateEmployeeParams, UpdateEmployeeParams } from './types/User';\nimport NotImplementedService from './notImplemented';\nimport { REFRESH_TOKEN } from '../context/auth/authReducer';\nimport { onAuthTokenError, onAuthTokenSuccess } from '../helpers/authHelper';\nimport Contract from './types/Contract';\nimport { QAILoginParams, ResetPasswordParams, UserLoginParams } from '../helpers/userHelper/generalUserHelper';\nimport Customer from './types/Customer';\nimport StandardCaseInput, { StandardCaseFilterInterface } from './types/StandardCase';\nimport { ContactParams } from '../containers/ContactUsContainer';\nimport RhenusOverviewInformation from './types/RhenusOverviewInformation';\nimport RhenusCase from './types/RhenusCase';\nimport WorkingTime from './types/WorkingTime';\nimport MaterialTool from './types/MaterialTool';\nimport Travel from './types/Travel';\nimport { ContractStatusType, ShiftInterface } from '../helpers/contractHelper/generalContractHelper';\nimport WorkTimeTrack from './types/WorkTimeTrack';\nimport { LoginResponse } from '../consts/login';\nimport SuccessMiddleware from '../serviceMiddlewares/successMiddleware';\nimport { NotificationInterface } from '../context/notification/notificationReducer';\nimport Transport from './types/Transport';\nimport { Moment } from 'moment';\nimport BreakTime from './types/BreakTime';\nimport { DashboardFilterInterface } from '../helpers/dashboardHelper/generalDashboardHelper';\nimport { WorkingTimeFilterInterface } from '../helpers/workingTimeHelper/generalWorkingTimeHelper';\nimport { InvoiceItem } from './types/Invoice';\nimport { CreateGroup, UpdateGroup } from '../pages/GroupCreatePage';\nimport { Group } from '../pages/groupOverview/GroupOverview';\n\nexport const services = ['auth', 'contract'];\n\nlet service: ErrorMiddleware = new ErrorMiddleware(new NotImplementedService());\n\nexport interface Instances {\n\tauth: JSONRPCClient;\n\tcontract: JSONRPCClient;\n}\n\nexport function createServiceWithConfigAndToken(\n\tconfig: Config,\n\ttoken: string,\n\tsetUser: (user: User | undefined) => void,\n\tsetError: (error: string) => void,\n\tsetNotification: (notification: NotificationInterface) => void\n): Service {\n\tconst instances: any = {};\n\tconst AxiosInstance = Axios.create({ timeout: config.getTimeout() * 1000 });\n\n\tAxiosInstance.interceptors.response.use(async (response: AxiosResponse) => {\n\t\tif (response.data?.error?.code === -32006) {\n\t\t\tconst refreshToken = localStorage.getItem(REFRESH_TOKEN);\n\t\t\tif (refreshToken) {\n\t\t\t\tconst at = await service.getAuthToken(refreshToken).catch(() => onAuthTokenError(setUser));\n\t\t\t\tif (at) {\n\t\t\t\t\tonAuthTokenSuccess(at, setUser);\n\t\t\t\t\tservice.setJWTToken(at);\n\t\t\t\t\tconst rq = {\n\t\t\t\t\t\turl: response.config.url,\n\t\t\t\t\t\theaders: { 'Authorization-JWT': at },\n\t\t\t\t\t\tmethod: response.config.method,\n\t\t\t\t\t\tdata: response.config.data,\n\t\t\t\t\t};\n\t\t\t\t\treturn await Axios.request(rq);\n\t\t\t\t} else {\n\t\t\t\t\tonAuthTokenError(setUser);\n\t\t\t\t\treturn response;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tonAuthTokenError(setUser);\n\t\t\t\treturn response;\n\t\t\t}\n\t\t}\n\t\treturn response;\n\t});\n\n\tservices.forEach(\n\t\t(item) =>\n\t\t\t(instances[item] = new JSONRPCClient(\n\t\t\t\tconfig.getBackendScheme() + config.getBackend() + item + '/' + config.getBackendVersion(),\n\t\t\t\ttoken ? token : '',\n\t\t\t\t//@ts-ignore\n\t\t\t\tAxiosInstance\n\t\t\t))\n\t);\n\tconst client = new Client(instances);\n\tconst cacheMiddleware = new CacheMiddleware(client);\n\tconst errorMiddleware = new ErrorMiddleware(cacheMiddleware, setError);\n\tconst successMiddleware = new SuccessMiddleware(errorMiddleware, setNotification);\n\n\treturn successMiddleware;\n}\n\ninterface AuthService {\n\tlogin(params: UserLoginParams): Promise;\n\tloginQAI(params: QAILoginParams): Promise;\n\tlogout(): Promise;\n\tcontact(params: ContactParams): Promise;\n\tsendErrorReport(message: string): Promise;\n\tacceptPrivacyPolicy(): Promise;\n\n\tcheckToken(): Promise;\n\tgetAuthToken(refreshToken: string): Promise;\n\n\trequestPasswordReset(email: string): Promise;\n\tcheckPasswordRessetToken(token: string): Promise;\n\tresetPassword(params: ResetPasswordParams): Promise;\n\tresetPasswordQAI(params: ResetPasswordParams): Promise;\n\tchangePassword(oldPassword: string, newPassword: string): Promise;\n\n\tgetAllUsers(): Promise;\n\tgetAllQAIs(): Promise;\n\tgetAllTeamLeaders(): Promise;\n\tgetAllQAIsByTeamLeader(teamLeaderID: number): Promise;\n\tgetUserInfo(): Promise;\n\tcreateEmployee(params: CreateEmployeeParams): Promise;\n\tcreateQAI(params: CreateEmployeeParams): Promise;\n\tupdateUserByID(id: number, params: UpdateEmployeeParams): Promise;\n\tdeleteUserByID(id: number): Promise;\n\tgetUserByID(userID: number): Promise;\n\n\tgetAllCustomers(): Promise;\n\tgetCustomerFromUser(id: number): Promise;\n\tcreateCustomer(customer: Customer): Promise;\n\tcreateUserForCustomer(id: number, params: CreateEmployeeParams): Promise;\n\tupdateCustomerByID(id: number, customer: Customer): Promise;\n\tgetCustomerByID(customerID: number): Promise;\n\tdeleteCustomerByID(customerID: number): Promise;\n\n\treadGroups(): Promise;\n\tcreateGroup(data: CreateGroup): Promise;\n\treadGroup(id: number): Promise;\n\tupdateGroup(data: UpdateGroup): Promise;\n\tdeleteGroup(id: number): Promise;\n}\n\ninterface ProcessContractInterface {\n\tgetAllStandardCaseInputs(contractID: number): Promise;\n\tupdateStandradCaseInput(contractID: number, errorInput: StandardCaseInput): Promise;\n\tcreateStandradCaseInput(contractID: number, errorInput: StandardCaseInput): Promise;\n\tdeleteStandradCaseInputByID(contractID: number, errorInputID: number): Promise;\n\tgetStandardCaseInputByID(contractID: number, errorInputID: number): Promise;\n\n\tgetRhenusOverviewInformations(contractID: number, from: Moment, to: Moment): Promise;\n\tgetZoneCaseInputs(contractID: number, zoneId: number): Promise;\n\tcreateRhenusCaseInput(contractID: number, zoneID: number, rhenusCaseInput: RhenusCase): Promise;\n\tupdateRhenusCaseInput(contractID: number, zoneID: number, rhenusCaseInput: RhenusCase): Promise;\n\tdeleteRhenusCaseInputByID(contractID: number, zoneIDRef: number, errorInputID: number): Promise;\n\tgetRhenusCaseInputByID(errorInputID: number): Promise;\n\n\taprroveInput(contractID: number, inputID: number, zoneID?: number): Promise;\n\tgetPhoto(photoURL: string): Promise;\n}\n\ninterface ContractManipulationInterface {\n\tgetContracts(): Promise;\n\tgetContract(contractID: number): Promise;\n\tcreateContract(contract: Contract): Promise;\n\tdeleteContractByID(contractID: number): Promise;\n\tupdateContract(contract: Contract): Promise;\n\topenCloseContract(contractID: number, status: ContractStatusType): Promise;\n\tcreateInvoice(contractID: number, dateOfInvoice: Moment, fromDate: Moment, toDate: Moment): Promise;\n\tgetAllInvoices(contractID: number): Promise;\n\tgetInvoiceById(invoiceID: number): Promise;\n\tupdateInvoice(\n\t\tid: number,\n\t\tcreationDate: Moment,\n\t\tdateOfInvoice: Moment,\n\t\tfromDate: Moment,\n\t\ttoDate: Moment,\n\t\tbillNumber: string\n\t): Promise;\n\tcompleteInvoice(id: number): Promise;\n\tdeleteInvoice(id: number): Promise;\n\texportInvoice(id: number): Promise;\n\treadShifts(contractID: number): Promise;\n}\n\ninterface WorkingTimeInterface {\n\taddManualWorkTime(contractID: number, worktime: WorkingTime): Promise;\n\taddManualBreakTime(contractID: number, worktime: BreakTime): Promise;\n\tstartTrackingTime(contractID: number): Promise;\n\tstopTrackingTime(contractID: number, profession: number | undefined): Promise;\n\tgetAllRecords(contractID: number): Promise<(WorkingTime | BreakTime)[]>;\n\tdeleteRecordByID(contractID: number, recordID: number): Promise;\n\tdeleteBreakByID(contractID: number, recordID: number): Promise;\n\tdeleteWaitingByID(contractID: number, recordID: number): Promise;\n\n\tupdateRecordByID(contractID: number, record: WorkingTime): Promise;\n\tupdateBreakByID(contractID: number, record: BreakTime): Promise;\n\tupdateWaitingByID(contractID: number, record: BreakTime): Promise;\n\n\tcheckTrackingTime(): Promise;\n}\n\ninterface ExpensesInterface {\n\tgetMaterialExpenses(contractID: number): Promise;\n\tgetTravelExpenses(contractID: number): Promise;\n\tgetToolExpenses(contractID: number): Promise;\n\tgetTransportExpenses(contractID: number): Promise;\n\n\tcreateMaterialExpenses(contractID: number, material: MaterialTool): Promise;\n\tcreateTravelExpenses(contractID: number, travel: Travel): Promise;\n\tcreateToolExpenses(contractID: number, tool: MaterialTool): Promise;\n\tcreateTransportExpenses(contractID: number, tool: Transport): Promise;\n\n\tupdateMaterialExpenses(contractID: number, material: MaterialTool): Promise;\n\tupdateTravelExpenses(contractID: number, travel: Travel): Promise;\n\tupdateToolExpenses(contractID: number, tool: MaterialTool): Promise;\n\tupdateTransportExpenses(contractID: number, transport: Transport): Promise;\n\n\tdeleteMaterialExpensesByID(contractID: number, materialID: number): Promise;\n\tdeleteTravelExpensesByID(contractID: number, travelID: number): Promise;\n\tdeleteToolExpensesByID(contractID: number, toolID: number): Promise;\n\tdeleteTransportExpensesByID(contractID: number, transportID: number): Promise;\n}\n\ninterface DashboardInterface {\n\tgetTeamLeaderByContract(contractID: number): Promise;\n\tgetCustomerByContract(contractID: number): Promise;\n\tgetContactQAI24ByContract(contractID: number): Promise;\n\tcreateStandardErrorInputsExcelSheet(\n\t\tcontractID: number,\n\t\tdata: DashboardFilterInterface,\n\t\tlanguage: string\n\t): Promise;\n\tcreateProcessContractStandardErrorInputsExcelSheet(\n\t\tcontractID: number,\n\t\tdata: StandardCaseFilterInterface,\n\t\tlanguage: string\n\t): Promise;\n\tcreateWorkingTimeExcelSheet(\n\t\tcontractID: number,\n\t\tdata: WorkingTimeFilterInterface,\n\t\tlanguage: string\n\t): Promise;\n\tcontractSummary(contractID: number, fromDate: Moment | null, toDate: Moment | null): Promise;\n}\n\nexport interface Service\n\textends AuthService,\n\t\tProcessContractInterface,\n\t\tContractManipulationInterface,\n\t\tWorkingTimeInterface,\n\t\tExpensesInterface,\n\t\tDashboardInterface {\n\tsetJWTToken(JWTToken: string): void;\n}\n\nexport default service;\n","import { atom } from 'jotai';\n\nexport const userAtom = atom(undefined);\n","import React from 'react';\nimport Config from '../config';\n\nimport { AUTH_TOKEN } from '../context/auth/authReducer';\nimport { useAuthActionContext } from '../context/auth/useAuth';\nimport { useErrorActionContext } from '../context/error/useError';\nimport { useNotificationActionContext } from '../context/notification/useNotification';\nimport { useWorkingTimeActionContext } from '../context/workingTime/useWorkingTime';\nimport service, { createServiceWithConfigAndToken } from '../service/service';\nimport User, { UserRole } from '../service/types/User';\nimport WorkTimeTrack from '../service/types/WorkTimeTrack';\nimport { userAtom } from '../atoms/userAtom';\nimport { useAtom } from 'jotai';\n\ninterface Props {\n\tchildren: JSX.Element;\n}\n\nfunction LoadingWrapper(props: Props) {\n\tconst [isTokenChecked, setIsTokenChecked] = React.useState(false);\n\tconst { setUser } = useAuthActionContext();\n\tconst { setError } = useErrorActionContext();\n\tconst { setNotification } = useNotificationActionContext();\n\tconst { setRecord } = useWorkingTimeActionContext();\n\tconst [, setUserAtom] = useAtom(userAtom);\n\n\tReact.useEffect(() => {\n\t\tconst token = localStorage.getItem(AUTH_TOKEN);\n\t\tconst adapter = createServiceWithConfigAndToken(\n\t\t\tConfig.getConfig(),\n\t\t\ttoken ? token : '',\n\t\t\tsetUser,\n\t\t\tsetError,\n\t\t\tsetNotification\n\t\t);\n\t\tservice.setService(adapter);\n\n\t\tif (token) {\n\t\t\tsetUser(User.fromJWT(token));\n\t\t\tservice\n\t\t\t\t.checkToken()\n\t\t\t\t.then(async () => {\n\t\t\t\t\tconst user = await service.getUserInfo().catch(() => {});\n\n\t\t\t\t\tif (user) {\n\t\t\t\t\t\tsetUser(user);\n\t\t\t\t\t\tif (user.role !== UserRole.Customer) {\n\t\t\t\t\t\t\tconst record = await service.checkTrackingTime().catch(() => {});\n\t\t\t\t\t\t\tsetRecord(record as undefined | WorkTimeTrack);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsetUserAtom(user.firstName);\n\t\t\t\t\t}\n\n\t\t\t\t\tsetIsTokenChecked(true);\n\t\t\t\t})\n\t\t\t\t.catch(() => {\n\t\t\t\t\tsetIsTokenChecked(true);\n\t\t\t\t});\n\t\t} else {\n\t\t\tsetIsTokenChecked(true);\n\t\t}\n\t}, [setUser, setError, setNotification, setRecord, setUserAtom]);\n\n\tif (!isTokenChecked) return
;\n\n\treturn props.children;\n}\n\nexport default LoadingWrapper;\n","import React from 'react';\nimport User from '../../service/types/User';\nimport { AuthContextActions } from './AuthContext';\n\nimport { AuthState, Action, SET_USER } from './authReducer';\n\nexport const createStateAuthContext = (state: AuthState): AuthState => ({\n\t...state,\n});\n\nexport const createActionAuthContext = (dispatch: React.Dispatch): AuthContextActions => ({\n\tsetUser: (user: User | undefined) => dispatch({ type: SET_USER, user }),\n});\n","export interface NotificationInterface {\n\ttext: string;\n\tadditional: string;\n}\n\nexport type NotificationState = {\n\tnotification: NotificationInterface;\n\tvisible: boolean;\n};\n\nexport type Action = {\n\ttype: string;\n\t[key: string]: any;\n};\n\nexport const notificationInitialState: NotificationState = {\n\tnotification: {\n\t\ttext: '',\n\t\tadditional: '',\n\t},\n\tvisible: false,\n};\n\nexport const SET_NOTIFICATION = 'SET_NOTIFICATION';\nexport const HIDE_NOTIFICATION = 'HIDE_NOTIFICATION';\n\nconst notificationReducer = (state = notificationInitialState, action: Action) => {\n\tswitch (action.type) {\n\t\tcase SET_NOTIFICATION:\n\t\t\treturn { ...state, notification: action.notification, visible: true };\n\t\tcase HIDE_NOTIFICATION:\n\t\t\treturn { ...notificationInitialState };\n\t\tdefault:\n\t\t\treturn state;\n\t}\n};\n\nexport default notificationReducer;\n","import WorkTimeTrack from '../../service/types/WorkTimeTrack';\n\nexport type WorkingTimeState = {\n\trecord: WorkTimeTrack | undefined;\n};\n\nexport type Action = {\n\ttype: string;\n\t[key: string]: any;\n};\n\nexport const workTimeInitialState: WorkingTimeState = {\n\trecord: undefined,\n};\n\nexport const SET_RECORD = 'SET_RECORD';\nexport const START_TRACKING_TIME = 'START_TRACKING_TIME';\nexport const STOP_TRACKING_TIME = 'STOP_TRACKING_TIME';\n\nconst workingTimeReducer = (state = workTimeInitialState, action: Action) => {\n\tswitch (action.type) {\n\t\tcase SET_RECORD:\n\t\t\treturn { ...state, record: action.record };\n\t\tcase START_TRACKING_TIME:\n\t\t\treturn { ...state, record: action.record };\n\t\tcase STOP_TRACKING_TIME:\n\t\t\treturn { ...state, record: undefined };\n\t\tdefault:\n\t\t\treturn state;\n\t}\n};\n\nexport default workingTimeReducer;\n","import React from 'react';\nimport service from '../../service/service';\nimport WorkTimeTrack from '../../service/types/WorkTimeTrack';\nimport { WorkingTimeContextActions } from './WorkingTimeContext';\n\nimport { WorkingTimeState, Action, START_TRACKING_TIME, STOP_TRACKING_TIME } from './workingTimeReducer';\n\nexport const createWorkingTimeState = (state: WorkingTimeState): WorkingTimeState => ({\n\t...state,\n});\n\nexport const createActionWorkingTimeContext = (dispatch: React.Dispatch): WorkingTimeContextActions => ({\n\tsetRecord: (record: WorkTimeTrack | undefined) => dispatch({ type: START_TRACKING_TIME, record }),\n\tstartTracking: async (record: WorkTimeTrack) => {\n\t\tconst res = await service.startTrackingTime(record.contractID).catch(() => {});\n\t\tif (res) {\n\t\t\tdispatch({ type: START_TRACKING_TIME, record });\n\t\t}\n\t\treturn res;\n\t},\n\tstopTracking: async (record: WorkTimeTrack) => {\n\t\tconst res = await service.stopTrackingTime(record.contractID, record.profession).catch(() => {});\n\t\tif (res) {\n\t\t\tdispatch({ type: STOP_TRACKING_TIME });\n\t\t}\n\t\treturn res;\n\t},\n});\n","export type ErrorState = {\n\terror: string;\n};\n\nexport type Action = {\n\ttype: string;\n\t[key: string]: any;\n};\n\nexport const errorInitialState: ErrorState = {\n\terror: '',\n};\n\nexport const SET_ERROR = 'SET_ERROR';\n\nconst errorReducer = (state = errorInitialState, action: Action) => {\n\tswitch (action.type) {\n\t\tcase SET_ERROR:\n\t\t\treturn { ...state, error: action.error };\n\n\t\tdefault:\n\t\t\treturn state;\n\t}\n};\n\nexport default errorReducer;\n","import React from 'react';\nimport { AuthActionsContext, AuthStateContext } from './auth/AuthContext';\n\nimport authReducer, { authInitialState } from './auth/authReducer';\nimport { createActionAuthContext, createStateAuthContext } from './auth/createAuthReducer';\nimport notificationReducer, { notificationInitialState } from './notification/notificationReducer';\nimport { createActionWorkingTimeContext, createWorkingTimeState } from './workingTime/createWorkingTimeReducer';\nimport { WorkingTimeActionsContext, WorkingTimeStateContext } from './workingTime/WorkingTimeContext';\nimport workingTimeReducer, { workTimeInitialState } from './workingTime/workingTimeReducer';\nimport { createActionNotificationContext, createNotificationState } from './notification/createNotificationReducer';\nimport { NotificationActionsContext, NotificationStateContext } from './notification/NotificationContext';\nimport errorReducer, { errorInitialState } from './error/errorReducer';\nimport { createActionErrorContext, createErrorState } from './error/createErrorReducer';\nimport { ErrorStateContext, ErrorActionsContext } from './error/ErrorContext';\n\ninterface Props {\n\tchildren: JSX.Element;\n}\n\nfunction ContextProvider(props: Props) {\n\tconst [authState, dispatchAuth] = React.useReducer(authReducer, authInitialState);\n\tconst [errorState, dispatchError] = React.useReducer(errorReducer, errorInitialState);\n\tconst [workingTimeState, dispatchWorkingTime] = React.useReducer(workingTimeReducer, workTimeInitialState);\n\tconst [notificationState, dispatchNotificationTime] = React.useReducer(\n\t\tnotificationReducer,\n\t\tnotificationInitialState\n\t);\n\n\tconst authStateContext = React.useMemo(() => createStateAuthContext(authState), [authState]);\n\tconst authActionContext = React.useMemo(() => createActionAuthContext(dispatchAuth), [dispatchAuth]);\n\n\tconst workingTimeStateContext = React.useMemo(() => createWorkingTimeState(workingTimeState), [workingTimeState]);\n\tconst wokringTimeActionContext = React.useMemo(() => createActionWorkingTimeContext(dispatchWorkingTime), [\n\t\tdispatchWorkingTime,\n\t]);\n\n\tconst notificationStateContext = React.useMemo(() => createNotificationState(notificationState), [\n\t\tnotificationState,\n\t]);\n\tconst notificationActionContext = React.useMemo(() => createActionNotificationContext(dispatchNotificationTime), [\n\t\tdispatchNotificationTime,\n\t]);\n\n\tconst errorStateContext = React.useMemo(() => createErrorState(errorState), [errorState]);\n\tconst errorActionContext = React.useMemo(() => createActionErrorContext(dispatchError), [dispatchError]);\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{props.children}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n\nexport default ContextProvider;\n","import React from 'react';\nimport { NotificationContextActions } from './NotificationContext';\n\nimport {\n\tNotificationState,\n\tAction,\n\tHIDE_NOTIFICATION,\n\tSET_NOTIFICATION,\n\tNotificationInterface,\n} from './notificationReducer';\n\nexport const createNotificationState = (state: NotificationState): NotificationState => ({\n\t...state,\n});\n\nexport const createActionNotificationContext = (dispatch: React.Dispatch): NotificationContextActions => ({\n\tsetNotification: (notification: NotificationInterface) => dispatch({ type: SET_NOTIFICATION, notification }),\n\thideNotification: () => dispatch({ type: HIDE_NOTIFICATION }),\n});\n","import React from 'react';\nimport { ErrorContextActions } from './ErrorContext';\n\nimport { Action, SET_ERROR, ErrorState } from './errorReducer';\n\nexport const createErrorState = (state: ErrorState): ErrorState => ({\n\t...state,\n});\n\nexport const createActionErrorContext = (dispatch: React.Dispatch): ErrorContextActions => ({\n\tsetError: (error: string) => dispatch({ type: SET_ERROR, error }),\n});\n","import i18n from 'i18next';\nimport translations from './translations.json';\nimport { initReactI18next } from 'react-i18next';\n\ni18n.use(initReactI18next).init({\n\tresources: translations,\n\tlng: 'de',\n\tkeySeparator: false,\n\tinterpolation: {\n\t\tescapeValue: false,\n\t},\n});\n\nexport default i18n;\n","import { UserRole } from '../service/types/User';\n\nexport enum Routes {\n\tLogin = '/login',\n\tQAILogin = '/qailogin',\n\tHome = '/home',\n\tForgotPassword = '/forgotpassword',\n\tResetPassword = '/resetpassword',\n\tSettings = '/settings',\n\tCustomer = '/customer',\n\tDashboard = '/dashboard',\n\tAdminContracts = '/admincontracts',\n\tUsers = '/users',\n\tUser = '/user',\n\tContract = '/contract',\n\tCustomers = '/customers',\n\tProcessContract = '/processcontract',\n\tProcessContracts = '/processcontracts',\n\tStandardCaseInput = '/standardinput',\n\tZoneOverview = '/zoneoverview',\n\tContactUs = '/contactus',\n\tContactPerson = '/contactperson',\n\tRhenusCaseInput = '/rhenusinput',\n\tWorkingTime = '/workingtime',\n\tExpenses = '/expenses',\n\tSummary = '/summary',\n\tChangePassowrd = '/changepassword',\n\tCustomerContracts = '/customercontracts',\n\tInvoice = '/invoice',\n\tGroupOverview = '/groupoverview',\n\tGroupCreate = '/groupcreate',\n\tGroupUpdate = '/groupupdate',\n\tEntities = '/entities',\n}\n\nexport const routeParamKeys = {\n\tcontract_id: 'contract_id',\n\tinvoice_id: 'invoice_id',\n\tcustomer_id: 'customer_id',\n\tzone_id: 'zone_id',\n\tuser_id: 'user_id',\n\tid: 'id',\n};\n\nexport interface RouteParams {\n\tcontract_id?: string;\n\tinvoice_id?: string;\n\tcustomer_id?: string;\n\tuser_id?: string;\n\tzone_id?: string;\n\tid?: string;\n}\n\nexport const RoutesName = {\n\tLogin: Routes.Login,\n\tQAILogin: Routes.QAILogin,\n\tHome: Routes.Home,\n\tForgotPassword: Routes.ForgotPassword,\n\tResetPassword: Routes.ResetPassword + `/:${routeParamKeys.id}`,\n\tSettings: Routes.Settings,\n\tCustomer: Routes.Customer + `/:${routeParamKeys.customer_id}?`,\n\tDashboard: Routes.Dashboard + `/:${routeParamKeys.contract_id}`,\n\tAdminContracts: Routes.AdminContracts,\n\tUsers: Routes.Users,\n\tUser: Routes.User + `/:${routeParamKeys.user_id}?`,\n\tContract: Routes.Contract + `/:${routeParamKeys.contract_id}?`,\n\tCustomers: Routes.Customers,\n\tProcessContract: Routes.ProcessContract + `/:${routeParamKeys.contract_id}`,\n\tProcessContracts: Routes.ProcessContracts,\n\tStandardCaseInput: Routes.StandardCaseInput + `/:${routeParamKeys.contract_id}/:${routeParamKeys.id}?`,\n\tZoneOverview: Routes.ZoneOverview + `/:${routeParamKeys.contract_id}/:${routeParamKeys.zone_id}`,\n\tContactUs: Routes.ContactUs,\n\tContactPerson: Routes.ContactPerson + `/:${routeParamKeys.customer_id}/:${routeParamKeys.user_id}?`,\n\tRhenusCaseInput:\n\t\tRoutes.RhenusCaseInput + `/:${routeParamKeys.contract_id}/:${routeParamKeys.zone_id}/:${routeParamKeys.id}?`,\n\tWorkingTime: Routes.WorkingTime + `/:${routeParamKeys.contract_id}`,\n\tExpenses: Routes.Expenses + `/:${routeParamKeys.contract_id}`,\n\tSummary: Routes.Summary + `/:${routeParamKeys.contract_id}`,\n\tChangePassowrd: Routes.ChangePassowrd,\n\tCustomerContracts: Routes.CustomerContracts,\n\tInvoice: Routes.Invoice + `/:${routeParamKeys.invoice_id}`,\n\tGroupOverview: Routes.GroupOverview,\n\tGroupCreate: Routes.GroupCreate,\n\tGroupUpdate: `${Routes.GroupUpdate}/:id`,\n\tEntities: Routes.Entities,\n};\n\nexport const RouteRestrictions = {\n\tLogin: [\n\t\tUserRole.Administrator,\n\t\tUserRole.Customer,\n\t\tUserRole.QualityAssuranceInspector,\n\t\tUserRole.TeamLeader,\n\t\tUserRole.Accounting,\n\t],\n\tCustomerContracts: [UserRole.Administrator, UserRole.Customer, UserRole.TeamLeader, UserRole.Accounting],\n\tCustomers: [UserRole.Administrator, UserRole.TeamLeader, UserRole.Accounting],\n\tContracts: [UserRole.Administrator, UserRole.TeamLeader, UserRole.Accounting],\n\tSettings: [\n\t\tUserRole.Administrator,\n\t\tUserRole.Customer,\n\t\tUserRole.QualityAssuranceInspector,\n\t\tUserRole.TeamLeader,\n\t\tUserRole.Accounting,\n\t],\n\tChangePassowrd: [UserRole.Administrator, UserRole.Customer, UserRole.TeamLeader, UserRole.Accounting],\n\tUsers: [UserRole.Administrator, UserRole.TeamLeader, UserRole.Accounting],\n\tProcessContracts: [\n\t\tUserRole.Administrator,\n\t\tUserRole.QualityAssuranceInspector,\n\t\tUserRole.TeamLeader,\n\t\tUserRole.Accounting,\n\t],\n\tInvoice: [UserRole.Accounting],\n\tGroupOverview: [UserRole.Administrator, UserRole.Accounting],\n\tEntities: [UserRole.Administrator, UserRole.Accounting],\n};\n","import React from 'react';\n\ninterface Props {\n\tbuttonWrapperClassName: string;\n\trenderAsButton?: boolean;\n\ttext: string;\n\ttextClassName: string;\n\tstyle?: any;\n\tonClick: () => void;\n\totherProps?: React.ButtonHTMLAttributes;\n}\n\nfunction Button(props: Props) {\n\treturn (\n\t\t<>\n\t\t\t{props.renderAsButton ? (\n\t\t\t\t\n\t\t\t\t\t{props.text}\n\t\t\t\t\n\t\t\t) : (\n\t\t\t\t
\n\t\t\t\t\t{props.text}\n\t\t\t\t
\n\t\t\t)}\n\t\t\n\t);\n}\n\nexport default Button;\n","export const colors = {\n\tyellow: '#FFD600',\n\tdarkGray: '#1A1A1A',\n\tlightGray: '#A1A1A1',\n\tgray: '#555252',\n\twhite: '#FFFFFF',\n\terror: '#DE1C22',\n\tkeyButton: '#E4E4E4',\n\tborderColor: '#C7C7C7',\n\ticonColor: '#111',\n\ttimetrack: '#EEEEEE',\n\ttimetrackBorderd: '#888888',\n\taddTimeBorder: '#DDDBDB',\n\tbackgroundColor: '#F4F4F4',\n\tlightDarkGray: '#2E2E2E',\n\tlightYellow: '#FFF7CC',\n\tlighterYellow: '#FFFCEB',\n\tlightPink: '#F9D3D4',\n\tsomeYellow: '#FFEF99',\n\tsomeDarkYellow: '#FFDE33',\n\tlightGreen: '#C2EDD4',\n\tgreen: '#008556',\n\tphotoGray: '#cccccc',\n\tpartsNIOChart: '#998000',\n\tpartReworkedChart: '#332B00',\n\tbillGreen: '#E3F7EB',\n\tbillRed: '#F9C8C9',\n\tbillOragne: '#FFE1BE',\n\tred: '#DE1C22',\n\tlightRed: '#F7BFC0',\n\tblack: '#000000',\n};\n","export const fonts = {\n\tbold: 'IBM-Plex-Sans-Bold',\n\tboldItalic: 'IBM-Plex-Sans-Bold-Italic',\n\textraLight: 'IBM-Plex-Sans-Extra-Light',\n\textraLightItalic: 'IBM-Plex-Sans-Extra-Light-Italic',\n\titalic: 'IBM-Plex-Sans-Italic',\n\tlight: 'IBM-Plex-Sans-Light',\n\tlightItalic: 'IBM-Plex-Sans-Light-Italic',\n\tmedium: 'IBM-Plex-Sans-Medium',\n\tmediumItalic: 'IBM-Plex-Sans-Medium-Italic',\n\tregular: 'IBM-Plex-Sans-Regular',\n\tsemiBold: 'IBM-Plex-Sans-Semi-Bold',\n\tsemiBoldItalic: 'IBM-Plex-Sans-Semi-Bold-Italic',\n\tthin: 'IBM-Plex-Sans-Thin',\n\tthinItalic: 'IBM-Plex-Sans-Thin-Italic',\n};\n","import { makeStyles } from '@material-ui/core';\nimport { colors } from './colors';\nimport { fonts } from './fonts';\n\nexport const globalInputStyle = (disabled?: boolean) => ({\n\tmargin: 0,\n\tcolor: disabled ? colors.lightGray : colors.darkGray,\n\tfontSize: '16px',\n\tlineHeight: '24px',\n\tfontFamily: fonts.regular,\n\topacity: 1,\n});\n\ninterface StyleProps {\n\tdisabled?: boolean;\n\tfixed?: boolean;\n\tdescription?: string;\n\tisTableTitleOpen?: boolean;\n\tshowFilters?: boolean;\n\tisUserNotEditing?: boolean;\n\tnumber?: boolean;\n\tinputColor?: string;\n\twindow?: {\n\t\twidth: number;\n\t\theight: number;\n\t};\n\tfilterHeight?: number;\n}\n\nconst baseTableTitle = (p: StyleProps) => ({\n\tbackgroundColor: colors.backgroundColor,\n\tborderWidth: '1px 1px 2px 1px',\n\tborderStyle: 'solid',\n\tborderColor: p.isTableTitleOpen\n\t\t? `#D0CECE #D0CECE #1A1A1A #D0CECE!important`\n\t\t: `rgba(0,0,0,0) rgba(0,0,0,0) #1A1A1A rgba(0,0,0,0)!important`,\n\tcursor: p.isTableTitleOpen !== undefined ? 'pointer' : 'auto',\n\tborderBottom: '2px solid #1A1A1A!important',\n\tborderBottomColor: '#1A1A1A!important',\n\tleft: '0px',\n\ttop: '0px',\n\tzIndex: 10,\n});\n\nexport const useGlobalStyles = makeStyles(() => ({\n\tlabel: (props: StyleProps) => ({\n\t\tcolor: (props.disabled && !props.fixed) || props.isUserNotEditing ? colors.lightGray : colors.gray,\n\t\tfontSize: '14px',\n\t\tlineHeight: '20px',\n\t\tfontFamily: fonts.regular,\n\t\twhiteSpace: 'pre',\n\t}),\n\ttitle: {\n\t\tcolor: colors.darkGray,\n\t\tfontSize: '40px',\n\t\tlineHeight: '60px',\n\t\tfontFamily: fonts.bold,\n\t},\n\tbuttonTextYellow: {\n\t\tcolor: colors.yellow,\n\t\tlineHeight: '24px',\n\t\tfontSize: '16px',\n\t\tfontFamily: fonts.semiBold,\n\t},\n\tbuttonText: {\n\t\tcolor: colors.darkGray,\n\t\tlineHeight: '24px',\n\t\tfontSize: '16px',\n\t\tfontFamily: fonts.semiBold,\n\t},\n\tbuttonWrapper: {\n\t\twidth: 'fit-content',\n\t\tbackgroundColor: colors.yellow,\n\t\tborderRadius: 4,\n\t\tborder: `1px solid ${colors.yellow}`,\n\t\tpadding: '12px 32px',\n\t\tmargin: '15px',\n\t\tcursor: 'pointer',\n\t},\n\tbuttonWrapperBlack: {\n\t\twidth: 'fit-content',\n\t\tbackgroundColor: colors.black,\n\t\tborderRadius: 4,\n\t\tpadding: '12px 32px',\n\t\tmargin: '15px',\n\t\tcursor: 'pointer',\n\t},\n\tbuttonYellowText: {\n\t\tcolor: colors.yellow,\n\t\tlineHeight: '24px',\n\t\tfontSize: '16px',\n\t\tfontFamily: fonts.semiBold,\n\t},\n\tbuttonDarkWrapper: {\n\t\twidth: 'fit-content',\n\t\tbackgroundColor: '#000',\n\t\tborderRadius: 4,\n\t\tmargin: '15px',\n\t\t// border: `1px solid ${colors.yellow}`,\n\t\tpadding: '12px 32px',\n\t\tcursor: 'pointer',\n\t},\n\tbuttonWrapperSecondary: {\n\t\twidth: 'fit-content',\n\t\tbackgroundColor: colors.yellow,\n\t\tborderRadius: 4,\n\t\tpadding: '12px 32px',\n\t\tcursor: 'pointer',\n\t\tmarginLeft: '12px',\n\t\theight: 'fit-content',\n\t\tborder: `1px solid ${colors.darkGray}`,\n\t},\n\tlink: {\n\t\tcolor: colors.darkGray,\n\t\tfontSize: '12px',\n\t\tlineHeight: '16px',\n\t\ttextDecoration: 'underline',\n\t\tfontFamily: fonts.regular,\n\t},\n\tlinkWrapper: {\n\t\twidth: 'fit-content',\n\t\tcursor: 'pointer',\n\t},\n\tdescription: (p: StyleProps) => ({\n\t\tcolor: p.description ? p.description : colors.darkGray,\n\t\tfontSize: '16px',\n\t\tlineHeight: '24px',\n\t\tfontFamily: fonts.regular,\n\t}),\n\tfilter: {\n\t\ttextDecoration: 'underline',\n\t\tcolor: colors.darkGray,\n\t\tfontSize: '16px',\n\t\tlineHeight: '24px',\n\t\tfontFamily: fonts.regular,\n\t\tcursor: 'pointer',\n\t},\n\thomeButtonWrapper: {\n\t\tjustifyContent: 'space-between',\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tmargin: '20px 0px 16px auto',\n\t},\n\tbackArrowWrapper: {\n\t\tposition: 'absolute',\n\t\ttop: '30px',\n\t\tleft: '32px',\n\t},\n\ttableTitle: {\n\t\tfontFamily: fonts.semiBold,\n\t\tlineHeight: '20px',\n\t\tfontSize: '14px',\n\t\tcolor: colors.darkGray,\n\t},\n\ttableTitleWrapper: (p: StyleProps) => ({\n\t\t...baseTableTitle(p),\n\t\tposition: 'sticky',\n\t}),\n\ttableTitleWrapperSticky: (p: StyleProps) => ({\n\t\t...baseTableTitle(p),\n\t\tposition: 'sticky',\n\t\tzIndex: 20,\n\t}),\n\ttableTitleWrapperStickyRight: (p: StyleProps) => ({\n\t\t...baseTableTitle(p),\n\t\tright: '0px',\n\t\tleft: undefined,\n\t\tposition: 'sticky',\n\t\tzIndex: 20,\n\t}),\n\tbuttonTextInverted: {\n\t\tfontSize: '16px',\n\t\tlineHeight: '24px',\n\t\tcolor: colors.darkGray,\n\t\tfontFamily: fonts.semiBold,\n\t},\n\tbuttonWrapperInverted: {\n\t\tmarginLeft: '12px',\n\t\theight: 'fit-content',\n\t\tpadding: '12px 29px',\n\t\tborder: `1px solid ${colors.darkGray}`,\n\t\tborderRadius: '4px',\n\t\tbackgroundColor: colors.white,\n\t\tcursor: 'pointer',\n\t},\n\tbuttonWrapperPlain: {\n\t\tmarginLeft: '42px',\n\t\tcursor: 'pointer',\n\t},\n\terror: {\n\t\tfontSize: '12px',\n\t\tlineHeight: '16px',\n\t\tfontFamily: fonts.regular,\n\t\tcolor: colors.error,\n\t},\n\tlabelAddOn: {\n\t\tfontSize: '14px',\n\t\tlineHeight: '20px',\n\t\tcolor: colors.darkGray,\n\t\tfontFamily: fonts.regular,\n\t\twhiteSpace: 'pre',\n\t\tcursor: 'pointer',\n\t},\n\tsubtitle: {\n\t\tfontSize: '20px',\n\t\tlineHeight: '32px',\n\t\tfontFamily: fonts.bold,\n\t\tcolor: colors.darkGray,\n\t},\n\tcontainer: { paddingLeft: '32px', paddingRight: '32px', marginBottom: '40px' },\n\tfilterWrapper: (p: StyleProps) => ({\n\t\topacity: p.showFilters ? 1 : 0,\n\t\tpointerEvents: p.showFilters ? 'auto' : 'none',\n\t\ttransition: 'all 1s',\n\t}),\n\tfilterWrapperClosed: {\n\t\topacity: 0,\n\t\tpointerEvents: 'none',\n\t\tmaxHeight: '0px',\n\t\ttransition: 'all 1s',\n\t\tmarginTop: '11px',\n\t},\n\tfilterWrapperOpened: (p: StyleProps) => ({\n\t\topacity: 1,\n\t\tpointerEvents: 'auto',\n\t\tmaxHeight: '100px',\n\t}),\n\tfilterContainer: (p: StyleProps) => ({\n\t\tmarginTop: p.showFilters ? '11px' : '0px',\n\t\ttransition: 'all 1s',\n\t}),\n\tfilterFieldWrapper: {\n\t\tmargin: '8px 0px',\n\t\tpadding: '0px 16px !important',\n\t},\n\tdeleteLink: {\n\t\tfontSize: '16px',\n\t\tlineHeight: '24px',\n\t\tcolor: colors.darkGray,\n\t\tfontFamily: fonts.regular,\n\t\ttextDecoration: 'underline',\n\t},\n\tdeleteLinkWrapper: {\n\t\tmarginLeft: '12px',\n\t\tcursor: 'pointer',\n\t},\n\tauthContainerWrapper: (p: StyleProps) => ({\n\t\twidth: p.window?.width,\n\t\tminHeight: p.window?.height,\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t}),\n\tdialogTitle: {\n\t\tfontFamily: fonts.semiBold,\n\t\tlineHeight: '20px',\n\t\tfontSize: '14px',\n\t\tcolor: colors.darkGray,\n\t},\n\tdialogDescription: {\n\t\tfontFamily: fonts.regular,\n\t\tlineHeight: '20px',\n\t\tfontSize: '14px',\n\t\tcolor: colors.gray,\n\t},\n\tdialogDescriptionLink: {\n\t\tfontFamily: fonts.regular,\n\t\tlineHeight: '20px',\n\t\tfontSize: '14px',\n\t\tcolor: colors.gray,\n\t\ttextDecoration: 'underline',\n\t\tcursor: 'pointer',\n\t},\n\tcameraButton: {\n\t\tfontFamily: fonts.semiBold,\n\t\tlineHeight: '20px',\n\t\tfontSize: '14px',\n\t\tcolor: colors.white,\n\t},\n\tunderline: {\n\t\theight: '1px',\n\t\twidth: '100%',\n\t\tbackgroundColor: '#979797',\n\t\topacity: 0.3,\n\t},\n\terrorInputMenuItem: {\n\t\tfontSize: '14px',\n\t\tlineHeight: '20px',\n\t\tcolor: colors.darkGray,\n\t\tfontFamily: fonts.regular,\n\t},\n\terrorInputMenuItemWrapper: {\n\t\tpadding: '0 6px',\n\t\tbackgroundColor: colors.lightPink,\n\t\twidth: 'fit-content',\n\t},\n\tstandardLink: {\n\t\tfontSize: '14px',\n\t\tlineHeight: '20px',\n\t\tfontFamily: fonts.regular,\n\t\tcolor: colors.darkGray,\n\t\ttextDecoration: 'underline',\n\t},\n\tsmallTextLight: {\n\t\tfontSize: '14px',\n\t\tlineHeight: '20px',\n\t\tfontFamily: fonts.regular,\n\t\tcolor: colors.lightGray,\n\t},\n\tsmallerTextLight: {\n\t\tfontSize: '12px',\n\t\tlineHeight: '16px',\n\t\tfontFamily: fonts.regular,\n\t\tcolor: colors.gray,\n\t\tletterSpacing: 0.4,\n\t},\n\tsmallText: {\n\t\tfontSize: '14px',\n\t\tlineHeight: '20px',\n\t\tfontFamily: fonts.regular,\n\t\tcolor: colors.gray,\n\t},\n\tsmallTextDark: {\n\t\tfontSize: '14px',\n\t\tlineHeight: '20px',\n\t\tfontFamily: fonts.regular,\n\t\tcolor: colors.darkGray,\n\t},\n\tbigText: {\n\t\tfontSize: '20px',\n\t\tlineHeight: '32px',\n\t\tfontFamily: fonts.regular,\n\t\tcolor: colors.gray,\n\t},\n\tbigTextBold: {\n\t\tfontSize: '20px',\n\t\tlineHeight: '32px',\n\t\tfontFamily: fonts.bold,\n\t\tcolor: colors.darkGray,\n\t},\n\n\tmediumTextSemiLight: {\n\t\tfontSize: '16px',\n\t\tlineHeight: '24px',\n\t\tfontFamily: fonts.semiBold,\n\t\tcolor: colors.lightGray,\n\t},\n\tmediumTextSemiDark: {\n\t\tfontSize: '16px',\n\t\tlineHeight: '24px',\n\t\tfontFamily: fonts.semiBold,\n\t\tcolor: colors.darkGray,\n\t},\n\tmediumTextDark: {\n\t\tfontSize: '16px',\n\t\tlineHeight: '24px',\n\t\tfontFamily: fonts.regular,\n\t\tcolor: colors.darkGray,\n\t},\n\tinputTableStyle: (p: StyleProps) => ({\n\t\tmargin: 0,\n\t\ttextAlign: p.number ? 'end' : 'start',\n\t\tcolor: p.inputColor ? p.inputColor : colors.darkGray,\n\t\tfontSize: '14px',\n\t\tlineHeight: '20px',\n\t\tfontFamily: fonts.regular,\n\t\tmarginLeft: '6px',\n\t}),\n\tinputTableStyleNumber: (p: StyleProps) => ({\n\t\tmargin: 0,\n\t\ttextAlign: 'end',\n\t\tcolor: p.inputColor ? p.inputColor : colors.darkGray,\n\t\tfontSize: '14px',\n\t\tlineHeight: '20px',\n\t\tfontFamily: fonts.regular,\n\t\tmarginLeft: '6px',\n\t}),\n\tlogo: { position: 'absolute', left: 32, top: 24 },\n}));\n","import * as React from 'react';\n\nfunction ErrorIcon(props: any) {\n\treturn (\n\t\t\n\t\t\t{'error_red_icon'}\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n\nexport default ErrorIcon;\n","import React from 'react';\nimport { withStyles, makeStyles } from '@material-ui/core/styles';\nimport TextField from '@material-ui/core/TextField';\n\nimport { colors } from '../consts/colors';\nimport { globalInputStyle, useGlobalStyles } from '../consts/globalStyles';\nimport ErrorIcon from '../svgComponents/ErrorIcon';\nimport { useTranslation } from 'react-i18next';\n\nconst TextFieldWithCSS = withStyles({\n\troot: {\n\t\t'& label.Mui-focused:not(.Mui-error)': {\n\t\t\tcolor: colors.lightGray,\n\t\t},\n\t\t'& .MuiInput-underline:hover:not(.Mui-disabled):before': {\n\t\t\tborderBottom: `1px solid ${colors.lightGray}`,\n\t\t},\n\t\t'& .MuiInput-underline.Mui-disabled:before': {\n\t\t\tborderBottomStyle: 'solid',\n\t\t},\n\t\t'& .Mui-error': {\n\t\t\tcolor: colors.error,\n\t\t},\n\t\t'& .MuiInput-underline:after': {\n\t\t\ttransform: `scaleX(1)`,\n\t\t},\n\t},\n})(TextField);\n\ninterface Props {\n\tlabel: string;\n\terror: boolean;\n\thelperText: string;\n\tonChange: (event: any) => void;\n\t[key: string]: any;\n}\n\nfunction AuthTextField(props: Props) {\n\tconst classes = useStyles({ disabled: props.disabled });\n\tconst globalClasses = useGlobalStyles({ description: colors.lightGray });\n\tconst { t } = useTranslation();\n\n\treturn (\n\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t{t(props.helperText)}\n\t\t\t\t\t\n\t\t\t\t) : null\n\t\t\t}\n\t\t\tclassName={classes.inputWrapper}\n\t\t\tInputLabelProps={{\n\t\t\t\tclasses: {\n\t\t\t\t\tshrink: classes.shrinkLabel,\n\t\t\t\t\tformControl: globalClasses.description,\n\t\t\t\t},\n\t\t\t}}\n\t\t\tInputProps={{\n\t\t\t\tclasses: {\n\t\t\t\t\tinput: classes.input,\n\t\t\t\t\tunderline: classes.underlineField,\n\t\t\t\t},\n\t\t\t}}\n\t\t/>\n\t);\n}\n\ninterface StyleProps {\n\tdisabled: boolean;\n}\n\nconst useStyles = makeStyles(() => ({\n\trow: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tmarginTop: '3px',\n\t},\n\tshrinkLabel: {\n\t\tcolor: colors.lightGray,\n\t\tfontSize: '12px',\n\t\tlineHeight: '16px',\n\t},\n\n\tunderlineField: {\n\t\t'&:before': {\n\t\t\tborderBottom: `1px solid ${colors.lightGray}`,\n\t\t},\n\t\t'&:after': {\n\t\t\tborderBottom: `1px solid ${colors.lightGray}`,\n\t\t},\n\t},\n\tinput: (p: StyleProps) => ({\n\t\t...globalInputStyle(),\n\t\tzIndex: p.disabled ? -1 : 0,\n\t}),\n\tinputWrapper: {\n\t\twidth: '100%',\n\t},\n\terrorImageWrapper: { marginRight: '5px', height: '16px' },\n}));\n\nexport default AuthTextField;\n","export const LANGUAGE_KEY = 'LANGUAGE_KEY';\n\nexport interface LanguageInterface {\n\ti18n: string;\n\tkey: string;\n}\n\nexport const languages = {\n\tenglish: {\n\t\ti18n: 'en',\n\t\tkey: 'EN',\n\t},\n\tdeutchland: {\n\t\ti18n: 'de',\n\t\tkey: 'DE',\n\t},\n};\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core';\n\nimport { LanguageInterface } from '../consts/language';\nimport { colors } from '../consts/colors';\nimport { fonts } from '../consts/fonts';\n\ninterface Props {\n\tmargin: boolean;\n\tactiveLanguage: string | null;\n\tlanguage: LanguageInterface;\n\tinverted?: boolean;\n\tonLanguagePress: (language: string) => void;\n}\n\ninterface StyleProps {\n\tmargin: boolean;\n\tactive: boolean;\n\tinverted?: boolean;\n}\n\nfunction Language(props: Props) {\n\tconst classes = useStyles({\n\t\tmargin: props.margin,\n\t\tactive: props.activeLanguage === props.language.i18n,\n\t\tinverted: props.inverted,\n\t});\n\n\treturn (\n\t\t
props.onLanguagePress(props.language.i18n)}>\n\t\t\t{props.language.key}\n\t\t
\n\t);\n}\n\nconst useStyles = makeStyles(() => ({\n\ttext: (props: StyleProps) => ({\n\t\tfontSize: '14px',\n\t\tlineHeight: '20px',\n\t\tcolor: props.active\n\t\t\t? props.inverted\n\t\t\t\t? colors.white\n\t\t\t\t: colors.darkGray\n\t\t\t: props.inverted\n\t\t\t? 'rgba(255,255,255,0.8)'\n\t\t\t: colors.lightGray,\n\t\tfontFamily: props.active ? fonts.semiBold : fonts.regular,\n\t}),\n\ttextWrapper: (props: StyleProps) => ({\n\t\tmarginRight: props.margin ? '24px' : '0px',\n\t\tcursor: 'pointer',\n\t}),\n}));\n\nexport default Language;\n","import React from 'react';\n\nimport { languages, LANGUAGE_KEY } from '../consts/language';\nimport Language from './Language';\nimport i18n from '../i18n';\nimport { makeStyles } from '@material-ui/core';\n\ninterface Props {\n\tinverted?: boolean;\n}\n\nfunction LanguageList(props: Props) {\n\tconst classes = useStyles();\n\tconst [activeLanguage, setActiveLanguage] = React.useState(localStorage.getItem(LANGUAGE_KEY));\n\n\tconst onLanguagePress = (language: string) => {\n\t\ti18n.changeLanguage(language);\n\t\tlocalStorage.setItem(LANGUAGE_KEY, language);\n\t\tsetActiveLanguage(language);\n\t};\n\n\treturn (\n\t\t
\n\t\t\t{Object.values(languages).map((language, index, array) => (\n\t\t\t\t\n\t\t\t))}\n\t\t
\n\t);\n}\n\nconst useStyles = makeStyles(() => ({\n\trow: {\n\t\tdisplay: 'flex',\n\t},\n}));\n\nexport default LanguageList;\n","export default __webpack_public_path__ + \"static/media/backgroud.b0d9bcba.png\";","export default __webpack_public_path__ + \"static/media/login_photo.fefeff9c.png\";","import * as React from 'react';\n\nfunction IQRLogoBlack(props: React.SVGProps) {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n\nexport default IQRLogoBlack;\n","import React from 'react';\nimport { Grid, makeStyles } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport { Controller, Control } from 'react-hook-form';\nimport { useWindowSize } from '@react-hook/window-size';\n\nimport { loginFields } from '../containers/LoginContainer';\nimport Button from '../components/Button';\nimport AuthTextField from '../components/AuthTextField';\nimport { LoginData } from '../consts/login';\nimport { useGlobalStyles } from '../consts/globalStyles';\nimport LanguageList from '../components/LanguageList';\nimport background from '../assets/images/backgroud.png';\nimport loginPhoto from '../assets/images/login_photo.png';\nimport IQRLogoBlack from '../svgComponents/IQRLogoBlack';\n\ninterface Props {\n\tcontrol: Control>;\n\terrors: Record;\n\tdataForLogin: LoginData;\n\tpin: string;\n\twatch: (field: string) => any;\n\tsetValue: (field: string, val: any) => void;\n\tonLoginPress: () => void;\n\tonForgotPasswordPress: () => void;\n\tonPinPress: () => void;\n}\n\nfunction LoginScreen(props: Props) {\n\tconst classes = useStyles({});\n\tconst [windowWidth, windowHeight] = useWindowSize();\n\tconst globalClasses = useGlobalStyles({\n\t\twindow: {\n\t\t\twidth: windowWidth,\n\t\t\theight: windowHeight,\n\t\t},\n\t});\n\tconst { t } = useTranslation();\n\tconst password = props.watch(loginFields.password);\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t{'Background'}\n\t\t\t
\n\t\t\t
\n\t\t\t\t{'LoginImage'}\n\t\t\t
\n\t\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t{t('login_screen_title')}\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t) => {\n\t\t\t\t\t\t\t\t\t\tif (e.key === 'Enter') {\n\t\t\t\t\t\t\t\t\t\t\tprops.onLoginPress();\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t
\n\t\t\t\t\t {}}>\n\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t) => {\n\t\t\t\t\t\t\t\t\t\tif (e.key === 'Enter') {\n\t\t\t\t\t\t\t\t\t\t\tprops.onLoginPress();\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t{t(props.dataForLogin.forgotTitle)}\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n\nconst useStyles = makeStyles(() => ({\n\tbuttonWrapper: {\n\t\tmarginTop: '40px',\n\t},\n\ttitleWrapper: {\n\t\tmarginBottom: '20px',\n\t},\n\tpasswordWrapper: {\n\t\tmarginBottom: '8px',\n\t},\n\temailWrapper: {\n\t\tmarginBottom: '20px',\n\t},\n\tlanguageWarpper: {\n\t\tposition: 'absolute',\n\t\ttop: '32px',\n\t\tright: '75px',\n\t},\n\tbackgroundImage: {\n\t\twidth: '100%',\n\t},\n\tbackgroundImageWrapper: { position: 'absolute', top: 0, left: 0, right: 0 },\n\tloginImage: {\n\t\theight: '100%',\n\t},\n\tloginImageWrapper: { position: 'absolute', top: 0, left: 0, bottom: 0, zIndex: -1 },\n}));\n\nexport default LoginScreen;\n","import * as React from 'react';\n\nfunction CloseIcon(props: any) {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n\nexport default CloseIcon;\n","import * as React from 'react';\n\nfunction WarningIcon(props: any) {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n\nexport default WarningIcon;\n","import { Slide } from '@material-ui/core';\nimport { TransitionProps } from '@material-ui/core/transitions/transition';\nimport React from 'react';\n\nconst Transition = React.forwardRef(function Transition(\n\tprops: TransitionProps & { children?: React.ReactElement },\n\tref: React.Ref\n) {\n\treturn ;\n});\n\nexport default Transition;\n","import { Dialog, makeStyles } from '@material-ui/core';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { colors } from '../consts/colors';\nimport { useGlobalStyles } from '../consts/globalStyles';\nimport CloseIcon from '../svgComponents/CloseIcon';\nimport WarningIcon from '../svgComponents/WarningIcon';\nimport Transition from './Transition';\n\nexport interface StandardDialogInterface {\n\tsetDialogState: (val: boolean) => void;\n}\n\ninterface Props {\n\ttitle: string;\n\tdescription: string | JSX.Element;\n\tacceptText: string;\n\tonAccept: () => void;\n\tonCancle?: () => void;\n\tcancleText?: string;\n\ttestID?: string;\n\tshowWarning: boolean;\n\tnotShrinkable?: boolean;\n\tpaperClass?: string;\n}\n\nfunction StandardDialog(props: Props, ref: any) {\n\tconst classes = useStyles();\n\tconst globalClasses = useGlobalStyles();\n\tconst { t } = useTranslation();\n\tconst [isOpen, setIsOpen] = React.useState(false);\n\n\tReact.useImperativeHandle(\n\t\tref,\n\t\t(): StandardDialogInterface => ({\n\t\t\tsetDialogState: (val: boolean) => {\n\t\t\t\tsetIsOpen(val);\n\t\t\t},\n\t\t})\n\t);\n\n\treturn (\n\t\t {\n\t\t\t\tsetIsOpen(false);\n\t\t\t\tif (props.onCancle) props.onCancle();\n\t\t\t}}>\n\t\t\t
\n\t\t\t\t{props.showWarning && (\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t)}\n\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t{t(props.title)}\n\t\t\t\t\t
\n\t\t\t\t\t{typeof props.description === 'string' ? (\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{t(props.description)}\n\t\t\t\t\t\t
\n\t\t\t\t\t) : (\n\t\t\t\t\t\tprops.description\n\t\t\t\t\t)}\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{t(props.acceptText)}\n\t\t\t\t\t\t
\n\t\t\t\t\t\t{props.cancleText ? (\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{t(props.cancleText)}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t) : null}\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t
setIsOpen(false)}>\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t\n\t);\n}\n\nconst useStyles = makeStyles(() => ({\n\twrapper: { maxWidth: '40vw', marginLeft: 'auto', marginRight: 'auto' },\n\tcontainer: { display: 'flex', padding: '16px 16px 16px 20px', borderRadius: '4px', flex: 1 },\n\trow: { display: 'flex' },\n\ttitleWrapper: {\n\t\tmarginBottom: '8px',\n\t\ttransform: 'translateY(-2px)',\n\t},\n\tdescriptionWrapper: {\n\t\tmarginBottom: '20px',\n\t},\n\tbuttonWrapper: {\n\t\tmarginRight: '24px',\n\t\tcursor: 'pointer',\n\t},\n\twarningIconWrapper: {\n\t\tmarginRight: '16px',\n\t},\n\tcloseIconWarpper: {\n\t\tmarginLeft: '12px',\n\t\tcursor: 'pointer',\n\t\theight: 'fit-content',\n\t},\n\tpaper: {\n\t\tflexShrink: 0,\n\t\tmaxWidth: 'unset',\n\t},\n}));\n\nexport default React.forwardRef(StandardDialog);\n","import { makeStyles } from '@material-ui/core';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useHistory } from 'react-router-dom';\nimport StandardDialog, { StandardDialogInterface } from '../components/StandardDialog';\n\ninterface Props {\n\tonBackArrowPress?: () => void;\n\tedit?: boolean;\n}\n\nfunction BackArrow(props: Props) {\n\tconst history = useHistory();\n\tconst classes = useStyles({});\n\tconst dialogRef = React.useRef(null);\n\tconst { t } = useTranslation();\n\n\tconst onBackPress = () => {\n\t\tprops.edit ? dialogRef.current?.setDialogState(true) : history.goBack();\n\t};\n\n\tconst onAcceptDialog = () => history.goBack();\n\tconst onCancelDialog = () => dialogRef.current?.setDialogState(false);\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t\t\n\t\t
\n\t);\n}\n\nconst useStyles = makeStyles(() => ({\n\tcontainer: {\n\t\tcursor: 'pointer',\n\t},\n}));\n\nexport default BackArrow;\n","import React from 'react';\nimport { Grid, makeStyles } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport { Controller, Control } from 'react-hook-form';\n\nimport Button from '../components/Button';\nimport { colors } from '../consts/colors';\nimport AuthTextField from '../components/AuthTextField';\nimport BackArrow from '../svgComponents/BackArrow';\nimport { ForgotPasswordData } from '../consts/login';\nimport { useGlobalStyles } from '../consts/globalStyles';\nimport { loginFields } from '../containers/LoginContainer';\n\ninterface Props {\n\tcontrol: Control>;\n\terrors: Record;\n\tdataForForgotPassword: ForgotPasswordData;\n\tonSearchPress: () => void;\n}\n\nfunction ForgotPasswordScreen(props: Props) {\n\tconst globalClasses = useGlobalStyles({ description: colors.gray });\n\tconst classes = useStyles({});\n\tconst { t } = useTranslation();\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t{t(props.dataForForgotPassword.title)}\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t{t(props.dataForForgotPassword.description)}\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t) => {\n\t\t\t\t\t\t\t\t\t\tif (e.key === 'Enter') {\n\t\t\t\t\t\t\t\t\t\t\tprops.onSearchPress();\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t);\n}\n\nconst useStyles = makeStyles(() => ({\n\twrapper: {\n\t\tmarginTop: '50px',\n\t},\n\ttitleWrapper: {\n\t\tmarginBottom: '20px',\n\t},\n\temailWrapper: {\n\t\tmarginBottom: '24px',\n\t},\n\tdescriptionWrapper: {\n\t\tmarginBottom: '12px',\n\t},\n}));\n\nexport default ForgotPasswordScreen;\n","import React from 'react';\nimport { Grid, makeStyles } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\n\nimport { colors } from '../consts/colors';\nimport { fonts } from '../consts/fonts';\nimport BackArrow from '../svgComponents/BackArrow';\nimport { ForgotPasswordData } from '../consts/login';\nimport { useGlobalStyles } from '../consts/globalStyles';\n\ninterface Props {\n\tdataForForgotPassword: ForgotPasswordData;\n\tonLinkPress: () => void;\n}\n\nfunction MailSentScreen(props: Props) {\n\tconst globalClasses = useGlobalStyles({ description: colors.gray });\n\tconst classes = useStyles({});\n\tconst { t } = useTranslation();\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t{t(props.dataForForgotPassword.sentTitle)}\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{t(props.dataForForgotPassword.sentDescription)}\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t{t(props.dataForForgotPassword.linkTitle)}\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t{t(props.dataForForgotPassword.link)}\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t);\n}\n\nconst useStyles = makeStyles(() => ({\n\twrapper: {\n\t\tmarginTop: '50px',\n\t},\n\ttitleWrapper: {\n\t\tmarginBottom: '20px',\n\t},\n\tdescriptionWrapper: {\n\t\tmarginBottom: '36px',\n\t},\n\tlinkTitleWrapper: {\n\t\tmarginBottom: '4px',\n\t},\n\tlinkTitle: {\n\t\tcolor: colors.gray,\n\t\tfontSize: '12px',\n\t\tlineHeight: '16px',\n\t\tfontFamily: fonts.regular,\n\t\tletterSpacing: '0.4px',\n\t},\n}));\n\nexport default MailSentScreen;\n","import { loginFields } from '../containers/LoginContainer';\n\nexport function setLoginError(error: any, setError: (name: string, value: { message: string }) => void) {\n\tif (error && error.error) {\n\t\tif (error.error.code === -32001) {\n\t\t\tsetError(loginFields.email, { message: 'login_screen_no_user_email_error' });\n\t\t} else if (error.error.code === -32006) {\n\t\t\tsetError(loginFields.password, { message: 'login_screen_password_error' });\n\t\t}\n\t}\n}\n","import React from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { useForm } from 'react-hook-form';\n\nimport service from '../service/service';\nimport ForgotPasswordScreen from '../screens/ForgotPasswordScreen';\nimport { getDataForForgotPassword } from '../consts/login';\nimport { loginFields, LoginType } from './LoginContainer';\nimport MailSentScreen from '../screens/MailSentScreen';\nimport { Routes } from '../router/Routes';\nimport { useAuthStateContext } from '../context/auth/useAuth';\nimport { ForgotPasswordNavigationInterface } from '../helpers/navigationHelper';\nimport { setLoginError } from '../helpers/loginHelper';\n\nexport enum ForgotPasswordState {\n\tEmailNotSent,\n\tEmailSent,\n\tEmailResent,\n}\n\nfunction ForgotPasswordContainer() {\n\tconst { control, handleSubmit, errors, setError } = useForm();\n\tconst history = useHistory();\n\tconst [forgotPasswordState, setForgotPasswordState] = React.useState(ForgotPasswordState.EmailNotSent);\n\tconst emailRef = React.useRef('');\n\tconst { user } = useAuthStateContext();\n\n\tReact.useEffect(() => {\n\t\tif (user) {\n\t\t\thistory.replace(Routes.Home);\n\t\t}\n\t}, [user, history]);\n\n\tconst dataForForgotPassword = React.useMemo(() => {\n\t\tconst historyState = history.location.state as undefined | ForgotPasswordNavigationInterface;\n\t\tif (historyState && historyState.from !== undefined && historyState.from === LoginType.QALogin) {\n\t\t\treturn getDataForForgotPassword(LoginType.QALogin, forgotPasswordState);\n\t\t} else {\n\t\t\treturn getDataForForgotPassword(LoginType.StandardLogin, forgotPasswordState);\n\t\t}\n\t}, [forgotPasswordState, history.location.state]);\n\n\tconst onLinkPress = () => {\n\t\tif (forgotPasswordState === ForgotPasswordState.EmailSent) {\n\t\t\tservice\n\t\t\t\t.requestPasswordReset(emailRef.current)\n\t\t\t\t.then((res) => {\n\t\t\t\t\tif (res) {\n\t\t\t\t\t\tsetForgotPasswordState(ForgotPasswordState.EmailResent);\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.catch();\n\t\t} else {\n\t\t\thistory.push(dataForForgotPassword.route);\n\t\t}\n\t};\n\n\tconst onSearchPress = (data: any) => {\n\t\tservice\n\t\t\t.requestPasswordReset(data[loginFields.email])\n\t\t\t.then((res) => {\n\t\t\t\tif (res) {\n\t\t\t\t\temailRef.current = data[loginFields.email];\n\t\t\t\t\tsetForgotPasswordState(ForgotPasswordState.EmailSent);\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch((e) => {\n\t\t\t\tconst error = JSON.parse(e.message);\n\t\t\t\tsetLoginError(error, setError);\n\t\t\t});\n\t};\n\n\tif (forgotPasswordState !== ForgotPasswordState.EmailNotSent) {\n\t\treturn ;\n\t}\n\n\treturn (\n\t\t\n\t);\n}\n\nexport default ForgotPasswordContainer;\n","import { Validate, ValidationRule, ValidationValueMessage } from 'react-hook-form';\n\nexport function rules(t: (value: string) => string) {\n\treturn {\n\t\trequired: {\n\t\t\tvalue: true,\n\t\t\tmessage: t('field_required'),\n\t\t},\n\t\tnumberPattern: {\n\t\t\tvalue: /^[0-9]+$/,\n\t\t\tmessage: t('pin_validation'),\n\t\t},\n\t\tminLength: (value: number, message?: string) => ({\n\t\t\tvalue: value,\n\t\t\tmessage: message ? t(message) : t(`min_length`) + ` ${value}`,\n\t\t}),\n\t\tmaxLength: (value: number, message?: string) => ({\n\t\t\tvalue: value,\n\t\t\tmessage: message ? t(message) : t(`max_length`) + ` ${value}`,\n\t\t}),\n\t\temailPattern: {\n\t\t\tvalue: /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/,\n\t\t\tmessage: t('email_pattern_not_valid'),\n\t\t},\n\t\tphoneNumberPattern: {\n\t\t\tvalue: /([0-9])|([+])|\\s|([(-)])|([-])/,\n\t\t\tmessage: t('phonenumber_pattern_not_valid'),\n\t\t},\n\t\tnumberPatternBelow999: {\n\t\t\tvalue: /^[^0]([0-9]){0,2}$/,\n\t\t\tmessage: t('number_pattern_not_valid'),\n\t\t},\n\t\tnumberPatternAny: {\n\t\t\tvalue: /(0\\.\\d*[1-9]\\d*|[1-9]\\d*(\\.\\d+)?)$/,\n\t\t\tmessage: t('number_valitdation'),\n\t\t},\n\t\tnotEmptyPattern: {\n\t\t\tvalue: /^[^\\s|^\\- |^.].*/,\n\t\t\tmessage: t('not_empty'),\n\t\t},\n\t};\n}\n\nexport interface RulesInterface {\n\trequired: string | boolean | ValidationValueMessage;\n\tmin: ValidationRule;\n\tmax: ValidationRule;\n\tmaxLength: ValidationRule;\n\tminLength: ValidationRule;\n\tpattern: ValidationRule;\n\tvalidate: Validate | Record;\n}\n","import { Validate, ValidationRule, ValidationValueMessage } from 'react-hook-form';\nimport { ForgotPasswordState } from '../containers/ForgotPasswordContainer';\nimport { LoginType } from '../containers/LoginContainer';\nimport { ResetPasswordParams } from '../helpers/userHelper/generalUserHelper';\nimport { Routes } from '../router/Routes';\nimport service from '../service/service';\nimport { UserRole } from '../service/types/User';\nimport { rules } from './rules';\n\nexport const BACK_SPACE = 'back';\nexport const MIN_PASSWORD_LENGTH = 6;\nexport const MAX_PASSWORD_LENGTH = 50;\nexport const QAI_PASSWORD_LENGTH = 4;\n\nexport interface LoginResponse {\n\tat: string;\n\tacceptedPp: boolean;\n}\n\nexport interface RulesIntreface {\n\trequired: string | boolean | ValidationValueMessage;\n\tmin: ValidationRule;\n\tmax: ValidationRule;\n\tmaxLength: ValidationRule;\n\tminLength: ValidationRule;\n\tpattern: ValidationRule;\n\tvalidate: Validate | Record;\n}\n\nexport interface LoginData {\n\tlogin: (email: string, password: string) => Promise;\n\tforgotTitle: string;\n\tlabel: string;\n\tdisabled: boolean;\n\trules: (\n\t\tt: (value: string) => string\n\t) => { email: Partial | undefined; password: Partial | undefined };\n}\n\nconst standardLogin: LoginData = {\n\tlogin: (email: string, password: string) => service.login({ email: email, password: password }),\n\tforgotTitle: 'login_screen_forgot_password',\n\tlabel: 'login_screen_password_placeholder',\n\tdisabled: false,\n\trules: (t: (value: string) => string) => ({\n\t\temail: {\n\t\t\trequired: rules(t).required,\n\t\t\tpattern: rules(t).emailPattern,\n\t\t},\n\t\tpassword: {\n\t\t\trequired: rules(t).required,\n\t\t\tminLength: rules(t).minLength(MIN_PASSWORD_LENGTH),\n\t\t\tmaxLength: rules(t).maxLength(MAX_PASSWORD_LENGTH),\n\t\t},\n\t}),\n};\n\nconst qaiLogin: LoginData = {\n\tlogin: (username: string, password: string) => service.loginQAI({ username: username, password: password }),\n\tforgotTitle: 'login_screen_forgot_pin',\n\tlabel: 'login_screen_pin_placeholder',\n\tdisabled: true,\n\trules: (t: (value: string) => string) => ({\n\t\temail: {\n\t\t\trequired: rules(t).required,\n\t\t},\n\t\tpassword: {\n\t\t\trequired: rules(t).required,\n\t\t\tminLength: rules(t).minLength(QAI_PASSWORD_LENGTH),\n\t\t\tmaxLength: rules(t).maxLength(QAI_PASSWORD_LENGTH),\n\t\t},\n\t}),\n};\n\nexport function getDataForLogin(type: LoginType): LoginData {\n\tif (type === LoginType.QALogin) {\n\t\treturn qaiLogin;\n\t} else {\n\t\treturn standardLogin;\n\t}\n}\n\nexport function getKeysForPin() {\n\tlet keys: any[] = [];\n\tfor (let i = 0; i < 10; ++i) keys[i] = i;\n\tlet tmp,\n\t\tcurrent,\n\t\ttop = keys.length;\n\tif (top)\n\t\twhile (--top) {\n\t\t\tcurrent = Math.floor(Math.random() * (top + 1));\n\t\t\ttmp = keys[current];\n\t\t\tkeys[current] = keys[top];\n\t\t\tkeys[top] = tmp;\n\t\t}\n\tkeys = keys.map((key) => key.toString());\n\tkeys.splice(9, 0, '');\n\tkeys.splice(keys.length, 0, BACK_SPACE);\n\n\treturn keys;\n}\n\ninterface MailSentInterface {\n\tsentDescription: string;\n\tsentTitle: string;\n\tlink: string;\n\tlinkTitle: string;\n\troute: Routes;\n}\n\ninterface MailNotSentInterface {\n\ttitle: string;\n\tdescription: string;\n\trules: (\n\t\tt: (value: string) => string\n\t) => {\n\t\temail: Partial;\n\t};\n}\n\nexport interface ForgotPasswordData extends MailSentInterface, MailNotSentInterface {}\n\nconst qaSentMail: MailSentInterface = {\n\tsentTitle: 'mail_sent_screen_title',\n\tsentDescription: 'mail_sent_screen_description',\n\tlink: 'mail_sent_screen_link',\n\tlinkTitle: 'mail_sent_screen_link_title',\n\troute: Routes.ContactUs,\n};\n\nconst qaResentMail: MailSentInterface = {\n\tsentTitle: 'mail_resent_screen_qai_title',\n\tsentDescription: 'mail_resent_screen_qai_description',\n\tlink: 'mail_resent_screen_qai_link',\n\tlinkTitle: 'mail_resent_screen_qai_link_title',\n\troute: Routes.ContactUs,\n};\n\nconst qaNotSentMail: MailNotSentInterface = {\n\ttitle: 'forgot_password_screen_qai_title',\n\tdescription: 'forgot_password_screen_qai_description',\n\trules: (t: (value: string) => string) => ({\n\t\temail: { required: rules(t).required },\n\t}),\n};\n\nconst standardSentMail: MailSentInterface = {\n\tsentTitle: 'mail_sent_screen_title',\n\tsentDescription: 'mail_sent_screen_description',\n\tlink: 'mail_sent_screen_link',\n\tlinkTitle: 'mail_sent_screen_link_title',\n\troute: Routes.ContactUs,\n};\n\nconst standardResentMail: MailSentInterface = {\n\tsentTitle: 'mail_resent_screen_title',\n\tsentDescription: 'mail_resent_screen_description',\n\tlink: 'mail_resent_screen_link',\n\tlinkTitle: 'mail_resent_screen_link_title',\n\troute: Routes.ContactUs,\n};\n\nconst standardNotSentMail: MailNotSentInterface = {\n\ttitle: 'forgot_password_screen_title',\n\tdescription: 'forgot_password_screen_description',\n\trules: (t: (value: string) => string) => ({\n\t\temail: { required: rules(t).required, pattern: rules(t).emailPattern },\n\t}),\n};\n\nfunction qaForgotPassword(state: ForgotPasswordState): ForgotPasswordData {\n\tif (state === ForgotPasswordState.EmailSent) {\n\t\treturn { ...qaSentMail, ...qaNotSentMail };\n\t}\n\treturn { ...qaResentMail, ...qaNotSentMail };\n}\n\nfunction standardForgotPassword(state: ForgotPasswordState): ForgotPasswordData {\n\tif (state === ForgotPasswordState.EmailSent) {\n\t\treturn { ...standardNotSentMail, ...standardSentMail };\n\t}\n\treturn { ...standardNotSentMail, ...standardResentMail };\n}\n\nexport function getDataForForgotPassword(type: LoginType, state: ForgotPasswordState): ForgotPasswordData {\n\tif (type === LoginType.QALogin) {\n\t\treturn qaForgotPassword(state);\n\t} else {\n\t\treturn standardForgotPassword(state);\n\t}\n}\n\nexport interface PasswordResetInterface {\n\tresetPassword: (params: ResetPasswordParams) => Promise;\n\tredirectRoute: Routes;\n\trules: (\n\t\tt: (value: string) => string\n\t) => {\n\t\tpassword: Partial;\n\t};\n}\n\nexport const standardPasswordReset: PasswordResetInterface = {\n\tresetPassword: (params: ResetPasswordParams) => service.resetPassword(params),\n\tredirectRoute: Routes.Login,\n\trules: (t: (value: string) => string) => ({\n\t\tpassword: {\n\t\t\trequired: rules(t).required,\n\t\t\tminLength: rules(t).minLength(MIN_PASSWORD_LENGTH),\n\t\t\tmaxLength: rules(t).maxLength(MAX_PASSWORD_LENGTH),\n\t\t},\n\t}),\n};\n\nexport const qaiPasswordReset: PasswordResetInterface = {\n\tresetPassword: (params: ResetPasswordParams) => service.resetPasswordQAI(params),\n\tredirectRoute: Routes.QAILogin,\n\trules: (t: (value: string) => string) => ({\n\t\tpassword: {\n\t\t\trequired: rules(t).required,\n\t\t\tpattern: rules(t).numberPattern,\n\t\t\tminLength: rules(t).minLength(QAI_PASSWORD_LENGTH),\n\t\t\tmaxLength: rules(t).maxLength(QAI_PASSWORD_LENGTH),\n\t\t},\n\t}),\n};\n\nexport function getDataForPasswordReset(qai: string | null): PasswordResetInterface {\n\tif (qai === 'true') {\n\t\treturn qaiPasswordReset;\n\t}\n\treturn standardPasswordReset;\n}\n\nexport function getLoginRedirectRoute(role: UserRole | undefined): Routes {\n\tif (role && role === UserRole.QualityAssuranceInspector) {\n\t\treturn Routes.QAILogin;\n\t} else {\n\t\treturn Routes.Login;\n\t}\n}\n","import * as React from 'react';\n\nexport function BackKey(props: any) {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n\nexport default BackKey;\n","import { makeStyles } from '@material-ui/core';\nimport React from 'react';\n\nimport { colors } from '../consts/colors';\nimport { fonts } from '../consts/fonts';\nimport BackKey from '../svgComponents/BackKey';\n\ninterface Props {\n\tkeyValue: string;\n\tonClick: (val: string) => void;\n}\n\nfunction Key(props: Props) {\n\tconst classes = useStyles({ key: props.keyValue.length === 0 });\n\treturn (\n\t\t
props.onClick(props.keyValue)}>\n\t\t\t{props.keyValue === 'back' ? : {props.keyValue}}\n\t\t
\n\t);\n}\n\ninterface StyleProps {\n\tkey: boolean;\n}\n\nconst useStyles = makeStyles(() => ({\n\tcontainer: (p: StyleProps) => ({\n\t\tdisplay: 'flex',\n\t\tmarginBottom: '24px',\n\t\talignItems: 'center',\n\t\tjustifyContent: 'center',\n\t\theight: '100%',\n\t\twidth: '100%',\n\t\tbackgroundColor: colors.white,\n\t\tboxShadow: '0 4px 8px -4px rgba(26,26,26,0.2)',\n\t\tcursor: p.key ? 'auto' : 'pointer',\n\t}),\n\ttext: {\n\t\tfontSize: '20px',\n\t\tlineHeight: '32px',\n\t\tfontFamily: fonts.regular,\n\t\tcolor: colors.darkGray,\n\t},\n}));\n\nexport default Key;\n","import { Grid } from '@material-ui/core';\nimport React from 'react';\nimport { getKeysForPin } from '../consts/login';\n\nimport Key from './Key';\n\ninterface Props {\n\tonClick: (val: string) => void;\n}\n\nfunction NumericKeyboard(props: Props) {\n\tconst keys = React.useMemo(() => getKeysForPin(), []);\n\n\treturn (\n\t\t\n\t\t\t{keys.map((item, index) => (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t))}\n\t\t\n\t);\n}\n\nexport default NumericKeyboard;\n","import { Grid, makeStyles } from '@material-ui/core';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { colors } from '../consts/colors';\nimport { useGlobalStyles } from '../consts/globalStyles';\nimport { BACK_SPACE, LoginData } from '../consts/login';\nimport BackArrow from '../svgComponents/BackArrow';\nimport Button from './Button';\nimport NumericKeyboard from './NumericKeyboard';\n\ninterface Props {\n\tpin: string;\n\tdataForLogin: LoginData;\n\tonForgotPasswordPress: () => void;\n\tonOKButtonPress: (val: string) => void;\n\tonBackArrowPress: () => void;\n}\n\nfunction PinDialog({ pin, dataForLogin, onForgotPasswordPress, onOKButtonPress, onBackArrowPress }: Props) {\n\tconst globalClasses = useGlobalStyles({});\n\tconst classes = useStyles();\n\tconst { t } = useTranslation();\n\tconst [pins, setPins] = React.useState(pin);\n\n\tconst onKeyPress = (val: string) => {\n\t\tif (val !== BACK_SPACE) {\n\t\t\tpins.length < 4 && setPins(pins + val);\n\t\t} else {\n\t\t\tsetPins(pins.slice(0, -1));\n\t\t}\n\t};\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t{t('pin_dialog_title')}\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t{Array(pins.length)\n\t\t\t\t\t\t\t.fill(null)\n\t\t\t\t\t\t\t.map((_, index) => (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t onOKButtonPress(pins)}\n\t\t\t\t\t\t\t\ttextClassName={globalClasses.buttonText}\n\t\t\t\t\t\t\t\tbuttonWrapperClassName={globalClasses.buttonWrapper}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{t(dataForLogin.forgotTitle)}\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t);\n}\n\nconst useStyles = makeStyles(() => ({\n\tcenter: {\n\t\tmarginLeft: 'auto',\n\t\tmarginRight: 'auto',\n\t},\n\ttitleWrapper: {\n\t\tmarginBottom: '48px',\n\t\tmarginLeft: 'auto',\n\t\tmarginRight: 'auto',\n\t},\n\n\tforgotPasswordWrapper: {\n\t\twidth: 'fit-content',\n\t\tmarginLeft: 'auto',\n\t\tmarginRight: 'auto',\n\t\tcursor: 'pointer',\n\t},\n\tbackButtonWrapper: {\n\t\tposition: 'absolute',\n\t\tleft: '32px',\n\t\ttop: '20px',\n\t},\n\tbuttonWrapper: {\n\t\tmarginTop: '44px',\n\t\tmarginBottom: '24px',\n\t},\n\tdot: {\n\t\theight: '12px',\n\t\twidth: '12px',\n\t\tborderRadius: '6px',\n\t\tbackgroundColor: colors.gray,\n\t},\n\tdotWrapper: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tjustifyContent: 'center',\n\t\tmarginBottom: '44px',\n\t},\n\tcontainer: {\n\t\twidth: '100vw',\n\t\theight: '100vh',\n\t},\n}));\n\nexport default PinDialog;\n","import { LoginType } from '../containers/LoginContainer';\nimport { Routes } from '../router/Routes';\nimport Contract, { IContractWorkLocation } from '../service/types/Contract';\nimport Customer from '../service/types/Customer';\nimport StandardCaseInput from '../service/types/StandardCase';\nimport User from '../service/types/User';\nimport { LocationState, History } from 'history';\nimport { ContractStatusType, ContractZone } from './contractHelper/generalContractHelper';\nimport RhenusCase from '../service/types/RhenusCase';\n\nexport interface CustomerNavigationInterface {\n\tcustomer?: Customer;\n}\nexport interface ContactPersonNavigationInterface {\n\tcontactPersonID?: number;\n\tcontactPerson?: User;\n}\nexport interface UserNavigationInterface {\n\tuser?: User;\n}\n\nexport interface ContractNavigationInterface {\n\tcontract?: string;\n}\n\nexport interface StandardCaseNavigationInterface {\n\tdata?: string;\n\tcontract: string;\n}\n\nexport interface RhenusCaseNavigationInterface {\n\tdata?: string;\n\tcontract: string;\n\tzone: ContractZone;\n}\n\nexport interface ExpensesNavigationInterface {\n\tcontractID: number;\n\tcontractNumber: string;\n}\n\nexport interface SummaryNavigationInterface {\n\tcontractID: number;\n\tcontractNumber: string;\n\tcontractStatus: ContractStatusType;\n\tcontractCustomer: string;\n\tworkLocations: IContractWorkLocation[];\n}\n\nexport interface ForgotPasswordNavigationInterface {\n\tfrom?: LoginType;\n}\n\nexport interface ZoneOvervieNavigationInterface {\n\tparams: string;\n\tzone: ContractZone;\n}\n\nexport function goToCustomer(history: History, customer?: Customer) {\n\thistory.push(Routes.Customer + `${customer ? '/' + customer.id : ''}`, { customer: customer });\n}\n\nexport function goToCustomerWithID(history: History, customerID: number) {\n\thistory.push(Routes.Customer + `${'/' + customerID}`);\n}\n\nexport function replaceCustomerHistoryData(history: History, customer: Customer) {\n\thistory.replace(history.location.pathname, { customer: customer });\n}\n\nexport function goToCustomers(history: History) {\n\thistory.push(Routes.Customers);\n}\n\nexport function goToContactPerson(\n\thistory: History,\n\tparams: { customerID?: number; contactPersonID?: number; contactPerson?: User }\n) {\n\thistory.push(\n\t\tRoutes.ContactPerson +\n\t\t\t`/${params.customerID ? params.customerID : '0'}${\n\t\t\t\tparams.contactPersonID ? '/' + params.contactPersonID : ''\n\t\t\t}`,\n\t\t{\n\t\t\tcontactPersonID: params.contactPersonID,\n\t\t\tcontactPerson: params.contactPerson,\n\t\t}\n\t);\n}\n\nexport function replaceContactPersonHistoryData(history: History, user: User) {\n\thistory.replace(history.location.pathname, {\n\t\t...(history.location.state as ContactPersonNavigationInterface),\n\t\tcontactPerson: user,\n\t});\n}\n\nexport function goToUser(history: History, user?: User) {\n\thistory.push(Routes.User + `${user ? `/${user.id}` : ''}`, {\n\t\tuser: user,\n\t});\n}\n\nexport function replaceUserHistoryData(history: History, user: User) {\n\thistory.replace(history.location.pathname, { user: user });\n}\n\nexport function goToUsers(history: History) {\n\thistory.push(Routes.Users);\n}\n\nexport function goToLogin(history: History) {\n\thistory.push(Routes.Login);\n}\n\nexport function goToAdminContracts(history: History) {\n\thistory.push(Routes.AdminContracts);\n}\n\nexport function goToDashboard(history: History, contract: Contract) {\n\thistory.push(Routes.Dashboard + '/' + contract.id, { contract: JSON.stringify(contract) });\n}\n\nexport function goToCustomerContracts(history: History) {\n\thistory.push(Routes.CustomerContracts);\n}\n\nexport function goToProcessContracts(history: History) {\n\thistory.push(Routes.ProcessContracts);\n}\n\nexport function goToHome(history: History) {\n\thistory.push(Routes.Home);\n}\n\nexport function goToContract(history: History, contract?: Contract) {\n\thistory.push(Routes.Contract + `${contract ? '/' + contract.id : ''}`, { contract: JSON.stringify(contract) });\n}\n\nexport function goToInvoice(history: History, invoice?: any) {\n\thistory.push(Routes.Invoice + `${invoice ? '/' + invoice.id : ''}`, {\n\t\tinvoice: JSON.stringify(invoice),\n\t});\n}\n\nexport function replaceContractHistoryData(history: History, contract: Contract) {\n\thistory.replace(history.location.pathname, {\n\t\t...(history.location.state as ContractNavigationInterface),\n\t\tcontract: JSON.stringify(contract),\n\t});\n}\n\nexport function goToProcessContract(history: History, contract: Contract) {\n\thistory.push(Routes.ProcessContract + '/' + contract.id, { contract: JSON.stringify(contract) });\n}\n\nexport function goToStandardCase(\n\thistory: History,\n\tparams: {\n\t\tdata?: StandardCaseInput;\n\t\tcontract: Contract;\n\t}\n) {\n\thistory.push(Routes.StandardCaseInput + '/' + params.contract.id + `${params.data ? '/' + params.data.id : ''}`, {\n\t\tdata: JSON.stringify(params.data),\n\t\tcontract: JSON.stringify(params.contract),\n\t});\n}\n\nexport function replaceStandardCaseHistoryData(history: History, data: StandardCaseInput) {\n\thistory.replace(history.location.pathname, {\n\t\t...(history.location.state as StandardCaseNavigationInterface),\n\t\tdata: JSON.stringify(data),\n\t});\n}\n\nexport function goToForgotPassword(history: History, from?: LoginType) {\n\thistory.push(Routes.ForgotPassword, { from: from });\n}\n\nexport function goToZoneOverview(history: History, params: Contract, zone: ContractZone) {\n\thistory.push(Routes.ZoneOverview + `/${params.id}/${zone.id}`, { params: JSON.stringify(params), zone: zone });\n}\n\nexport function goToRhenusCase(\n\thistory: History,\n\tparams: {\n\t\tdata?: RhenusCase;\n\t\tcontract: Contract;\n\t},\n\tzone: ContractZone\n) {\n\thistory.push(\n\t\tRoutes.RhenusCaseInput + `/${params.contract.id}/${zone.id}${params.data ? '/' + params.data.id : ''}`,\n\t\t{\n\t\t\tdata: JSON.stringify(params.data),\n\t\t\tcontract: JSON.stringify(params.contract),\n\t\t\tzone: zone,\n\t\t}\n\t);\n}\n\nexport function replaceRhenusCaseHistoryData(history: History, data: RhenusCase) {\n\thistory.replace(history.location.pathname, {\n\t\t...(history.location.state as RhenusCaseNavigationInterface),\n\t\tdata: JSON.stringify(data),\n\t});\n}\n\nexport function goToWorkingTime(\n\thistory: History,\n\tparams: { contractID: number; contractNumber: string }\n) {\n\thistory.push(Routes.WorkingTime + '/' + params.contractID, {\n\t\tcontractNumber: params.contractNumber,\n\t\tcontractID: params.contractID,\n\t});\n}\n\nexport function goToExpenses(history: History, params: { contractID: number; contractNumber: string }) {\n\thistory.push(Routes.Expenses + '/' + params.contractID, {\n\t\tcontractNumber: params.contractNumber,\n\t\tcontractID: params.contractID,\n\t});\n}\n\nexport function goToSummary(\n\thistory: History,\n\tparams: {\n\t\tcontractID: number;\n\t\tcontractNumber: string;\n\t\tstatus: ContractStatusType;\n\t\tcontractCustomer: string;\n\t\tworkLocations: IContractWorkLocation[];\n\t}\n) {\n\thistory.push(Routes.Summary + '/' + params.contractID, {\n\t\tcontractNumber: params.contractNumber,\n\t\tcontractID: params.contractID,\n\t\tcontractStatus: params.status,\n\t\tcontractCustomer: params.contractCustomer,\n\t\tworkLocations: params.workLocations,\n\t});\n}\n\nexport function replaceSummaryHistoryData(\n\thistory: History,\n\tparams: { contractID: number; contractNumber: string; status: ContractStatusType }\n) {\n\thistory.replace(history.location.pathname, {\n\t\tcontractNumber: params.contractNumber,\n\t\tcontractID: params.contractID,\n\t\tcontractStatus: params.status,\n\t});\n}\n\nexport function goToChangePassword(history: History) {\n\thistory.push(Routes.ChangePassowrd);\n}\n","import React from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { useForm } from 'react-hook-form';\n\nimport { useAuthActionContext, useAuthStateContext } from '../context/auth/useAuth';\nimport { Routes } from '../router/Routes';\nimport LoginScreen from '../screens/LoginScreen';\nimport { onAuthTokenError, onAuthTokenSuccess } from '../helpers/authHelper';\nimport { getDataForLogin } from '../consts/login';\nimport { Dialog } from '@material-ui/core';\nimport Transition from '../components/Transition';\nimport PinDialog from '../components/PinDialog';\nimport { setLoginError } from '../helpers/loginHelper';\nimport { goToForgotPassword } from '../helpers/navigationHelper';\nimport { StandardDialogInterface } from '../components/StandardDialog';\nimport { colors } from '../consts/colors';\nimport { useWorkingTimeActionContext } from '../context/workingTime/useWorkingTime';\nimport service from '../service/service';\nimport User, { UserRole } from '../service/types/User';\nimport { userAtom } from '../atoms/userAtom';\nimport { useAtom } from 'jotai';\n\ninterface Props {\n\tlegalNoticeRef: React.MutableRefObject;\n\ttype: LoginType;\n}\n\nexport enum LoginType {\n\tQALogin,\n\tStandardLogin,\n}\n\nexport const loginFields = {\n\temail: 'email',\n\tpassword: 'password',\n};\n\nexport type LoginFields = {\n\temail: string;\n\tpassword: string;\n};\n\nfunction LoginContainer({ legalNoticeRef, type }: Props) {\n\tconst history = useHistory();\n\tconst { control, handleSubmit, errors, setValue, watch, setError } = useForm();\n\tconst { user } = useAuthStateContext();\n\tconst { setUser } = useAuthActionContext();\n\tconst { setRecord } = useWorkingTimeActionContext();\n\tconst [, setUserAtom] = useAtom(userAtom);\n\n\tconst [showPinModal, setShowPinModal] = React.useState(false);\n\tconst [pin, setPin] = React.useState('');\n\n\tconst dataForLogin = React.useMemo(() => getDataForLogin(type), [type]);\n\n\tReact.useEffect(() => {\n\t\tif (user) {\n\t\t\thistory.replace(Routes.Home);\n\t\t}\n\t}, [user, history]);\n\n\tconst login = async ({ email, password }: LoginFields) => {\n\t\ttry {\n\t\t\tconst loginRes = await dataForLogin.login(email, password);\n\n\t\t\tif (loginRes) {\n\t\t\t\tconst user = User.fromJWT(loginRes.at);\n\t\t\t\tif (user.role !== UserRole.Customer) {\n\t\t\t\t\tservice.checkTrackingTime().then((res) => {\n\t\t\t\t\t\tsetRecord(res);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tonAuthTokenSuccess(loginRes.at, setUser);\n\t\t\t\thistory.replace(Routes.Home);\n\t\t\t\tif (loginRes.acceptedPp !== undefined && !loginRes.acceptedPp) {\n\t\t\t\t\tlegalNoticeRef.current?.setDialogState(true);\n\t\t\t\t}\n\t\t\t\tsetUserAtom(loginRes.at);\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tif (e instanceof Error) {\n\t\t\t\tconst error = JSON.parse(e.message);\n\t\t\t\tsetLoginError(error, setError);\n\t\t\t}\n\t\t\tonAuthTokenError(setUser);\n\t\t}\n\t};\n\n\tconst onPinPress = () => setShowPinModal(true);\n\n\tconst onOKButtonPress = (val: string) => {\n\t\tsetPin(val);\n\t\tsetValue(loginFields.password, val);\n\t\tsetShowPinModal(false);\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t goToForgotPassword(history, type)}\n\t\t\t\terrors={errors}\n\t\t\t\tdataForLogin={dataForLogin}\n\t\t\t\tonPinPress={onPinPress}\n\t\t\t\tpin={pin}\n\t\t\t/>\n\t\t\t setShowPinModal(false)}\n\t\t\t\tPaperProps={{\n\t\t\t\t\tstyle: { backgroundColor: colors.backgroundColor },\n\t\t\t\t}}\n\t\t\t\tTransitionComponent={Transition}>\n\t\t\t\t setShowPinModal(false)}\n\t\t\t\t\tonForgotPasswordPress={() => goToForgotPassword(history, type)}\n\t\t\t\t\tonOKButtonPress={onOKButtonPress}\n\t\t\t\t\tdataForLogin={dataForLogin}\n\t\t\t\t/>\n\t\t\t\n\t\t\n\t);\n}\n\nexport default LoginContainer;\n","import * as React from 'react';\n\nfunction IQRLogo(props: React.SVGProps) {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n\nexport default IQRLogo;\n","import React from 'react';\nimport { Grid, makeStyles } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport { Controller, Control } from 'react-hook-form';\n\nimport Button from '../components/Button';\nimport AuthTextField from '../components/AuthTextField';\nimport { resetPasswordFields } from '../containers/ResetPasswordContainer';\nimport { useGlobalStyles } from '../consts/globalStyles';\nimport { PasswordResetInterface } from '../consts/login';\nimport IQRLogo from '../svgComponents/IQRLogo';\n\ninterface Props {\n\tcontrol: Control>;\n\terrors: Record;\n\tdataForResetPassword: PasswordResetInterface;\n\tonResetPasswordPress: () => void;\n\tgetValues: (field: string) => string;\n}\n\nfunction ResetPasswordScreen(props: Props) {\n\tconst classes = useStyles({});\n\tconst globalClassess = useGlobalStyles({});\n\tconst { t } = useTranslation();\n\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t{t('resest_password_screen_title')}\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t) => {\n\t\t\t\t\t\t\t\t\t\tif (e.key === 'Enter') {\n\t\t\t\t\t\t\t\t\t\t\tprops.onResetPasswordPress();\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tif (props.getValues(resetPasswordFields.newPassword) === val) return true;\n\t\t\t\t\t\t\t\t\telse return t('resest_password_screen_password_error');\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\trender={({ onChange }) => (\n\t\t\t\t\t\t\t\t) => {\n\t\t\t\t\t\t\t\t\t\tif (e.key === 'Enter') {\n\t\t\t\t\t\t\t\t\t\t\tprops.onResetPasswordPress();\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t);\n}\n\nconst useStyles = makeStyles(() => ({\n\twrappper: {\n\t\tmarginTop: '108px',\n\t},\n\tbuttonWrapper: {\n\t\tmarginTop: '40px',\n\t},\n\ttitleWrapper: {\n\t\tmarginBottom: '20px',\n\t},\n\temailWrapper: {\n\t\tmarginBottom: '20px',\n\t},\n}));\n\nexport default ResetPasswordScreen;\n","import { Grid, makeStyles } from '@material-ui/core';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport Button from '../components/Button';\nimport { colors } from '../consts/colors';\nimport { useGlobalStyles } from '../consts/globalStyles';\n\ninterface Props {\n\tonLoginPress: () => void;\n}\n\nfunction ResetPasswordSuccessScreen(props: Props) {\n\tconst classes = useStyles();\n\tconst globalClasses = useGlobalStyles({ description: colors.gray });\n\tconst { t } = useTranslation();\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t{t('resest_password_success_screen_title')}\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{t('resest_password_success_screen_description')}\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t);\n}\n\nconst useStyles = makeStyles(() => ({\n\twrappper: {\n\t\tmarginTop: '108px',\n\t},\n\tbuttonWrapper: {\n\t\tmarginTop: '40px',\n\t},\n\ttitleWrapper: {\n\t\tmarginBottom: '20px',\n\t},\n\n\tdescriptionWrapper: {\n\t\tmarginBottom: '12px',\n\t},\n}));\n\nexport default ResetPasswordSuccessScreen;\n","import React from 'react';\nimport { RouteChildrenProps, useHistory } from 'react-router-dom';\nimport { useForm } from 'react-hook-form';\n\nimport ResetPasswordScreen from '../screens/ResetPasswordScreen';\nimport { Routes } from '../router/Routes';\nimport service from '../service/service';\nimport ResetPasswordSuccessScreen from '../screens/ResetPasswordSuccessScreen';\nimport { useQuery } from '../hooks/useQuery';\nimport { useAuthStateContext } from '../context/auth/useAuth';\nimport { getDataForPasswordReset } from '../consts/login';\n\nexport const resetPasswordFields = {\n\tnewPassword: 'newPassword',\n\trepeatPassword: 'repeatPassword',\n};\n\nfunction ResetPasswordContainer(props: RouteChildrenProps) {\n\tconst [isTokenValid, setIsTokenValid] = React.useState(false);\n\tconst [isPasswordReseted, setIsPasswordReseted] = React.useState(false);\n\tconst { control, handleSubmit, errors, getValues } = useForm();\n\tconst { user } = useAuthStateContext();\n\tconst history = useHistory();\n\tconst query = useQuery();\n\n\tconst id = React.useMemo(() => props.match?.params.id, [props.match]);\n\tconst dataForResetPassword = React.useMemo(() => getDataForPasswordReset(query.get('qai')), [query]);\n\n\tReact.useEffect(() => {\n\t\tif (user) {\n\t\t\thistory.replace(Routes.Home);\n\t\t}\n\t}, [user, history]);\n\n\tReact.useEffect(() => {\n\t\tif (id) {\n\t\t\tservice\n\t\t\t\t.checkPasswordRessetToken(id)\n\t\t\t\t.then((res) => {\n\t\t\t\t\tif (res) {\n\t\t\t\t\t\tsetIsTokenValid(true);\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.catch((e) => {\n\t\t\t\t\thistory.replace(dataForResetPassword.redirectRoute);\n\t\t\t\t});\n\t\t}\n\t}, [id, history, dataForResetPassword]);\n\n\tconst onLoginPress = () => history.push(dataForResetPassword.redirectRoute);\n\n\tconst onResetPasswordPress = React.useMemo(\n\t\t() =>\n\t\t\thandleSubmit((data) => {\n\t\t\t\tdataForResetPassword\n\t\t\t\t\t.resetPassword({ uuid: id, password: data[resetPasswordFields.newPassword] })\n\t\t\t\t\t.then((res) => {\n\t\t\t\t\t\tif (res) {\n\t\t\t\t\t\t\tsetIsPasswordReseted(true);\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.catch((e) => {});\n\t\t\t}),\n\t\t[handleSubmit, id, dataForResetPassword]\n\t);\n\n\tif (!isTokenValid) return
;\n\n\treturn isPasswordReseted ? (\n\t\t\n\t) : (\n\t\t\n\t);\n}\n\nexport default ResetPasswordContainer;\n","import { useLocation } from 'react-router-dom';\n\nexport function useQuery() {\n\treturn new URLSearchParams(useLocation().search);\n}\n","import React from 'react';\nimport { Grid, makeStyles } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\n\nimport { useGlobalStyles } from '../consts/globalStyles';\nimport BackArrow from '../svgComponents/BackArrow';\nimport { colors } from '../consts/colors';\nimport { Control, Controller } from 'react-hook-form';\nimport Button from '../components/Button';\nimport AuthTextField from '../components/AuthTextField';\nimport { rules } from '../consts/rules';\nimport { contactUsFields } from '../containers/ContactUsContainer';\n\ninterface Props {\n\tcontrol: Control>;\n\terrors: Record;\n\tonBackArrowPress: () => void;\n\tonContactUsPress: () => void;\n}\nfunction ContactUsScreen(props: Props) {\n\tconst globalClasses = useGlobalStyles({ description: colors.gray });\n\tconst classes = useStyles({});\n\tconst { t } = useTranslation();\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t{t('contact_us_screen_title')}\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t{t('contact_us_screen_description')}\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t);\n}\n\nconst useStyles = makeStyles(() => ({\n\twrapper: {\n\t\tmarginTop: '50px',\n\t},\n\ttitleWrapper: {\n\t\tmarginBottom: '20px',\n\t},\n\temailWrapper: {\n\t\tmarginBottom: '24px',\n\t},\n\tdescriptionWrapper: {\n\t\tmarginBottom: '12px',\n\t},\n}));\n\nexport default ContactUsScreen;\n","import React from 'react';\nimport { useForm } from 'react-hook-form';\nimport { useHistory } from 'react-router-dom';\nimport { goToLogin } from '../helpers/navigationHelper';\nimport ContactUsScreen from '../screens/ContactUsScreen';\nimport service from '../service/service';\n\nexport const contactUsFields = {\n\tname: 'name',\n\temail: 'email',\n\tmessage: 'message',\n};\n\nexport interface ContactParams {\n\tname: string;\n\temail: string;\n\tmessage: string;\n}\n\nfunction ContactUsContainer() {\n\tconst { control, handleSubmit, errors } = useForm();\n\tconst history = useHistory();\n\n\tconst onBackArrowPress = () => goToLogin(history);\n\n\tconst onContactUsPress = (data: any) => {\n\t\tservice\n\t\t\t.contact({\n\t\t\t\tname: data[contactUsFields.name],\n\t\t\t\temail: data[contactUsFields.email],\n\t\t\t\tmessage: data[contactUsFields.message],\n\t\t\t})\n\t\t\t.then(() => {})\n\t\t\t.catch(() => {});\n\t};\n\n\treturn (\n\t\t\n\t);\n}\n\nexport default ContactUsContainer;\n","import * as React from 'react';\n\nfunction ErrorScreenIcon(props: any) {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n\nexport default ErrorScreenIcon;\n","import React from 'react';\nimport { Grid, makeStyles } from '@material-ui/core';\nimport { useWindowSize } from '@react-hook/window-size';\n\nimport { useGlobalStyles } from '../consts/globalStyles';\nimport { fonts } from '../consts/fonts';\nimport { colors } from '../consts/colors';\nimport { useTranslation } from 'react-i18next';\nimport Button from '../components/Button';\nimport { Controller, useForm } from 'react-hook-form';\nimport AuthTextField from '../components/AuthTextField';\nimport { rules } from '../consts/rules';\nimport service from '../service/service';\nimport StandardDialog, { StandardDialogInterface } from '../components/StandardDialog';\nimport { Routes } from '../router/Routes';\nimport ErrorScreenIcon from '../svgComponents/ErrorScreenIcon';\n\nfunction ErrorScreen() {\n\tconst { t } = useTranslation();\n\tconst [sendReport, setSendReport] = React.useState(false);\n\tconst classes = useStyles({});\n\tconst [windowWidth, windowHeight] = useWindowSize();\n\tconst globalClasses = useGlobalStyles({\n\t\twindow: {\n\t\t\twidth: windowWidth,\n\t\t\theight: windowHeight,\n\t\t},\n\t});\n\tconst dialogRef = React.useRef(null);\n\n\tconst { control, handleSubmit, errors } = useForm();\n\n\tconst sendErrorReport = (data: any) => {\n\t\tservice\n\t\t\t.sendErrorReport(data['message'])\n\t\t\t.then(() => {\n\t\t\t\tdialogRef.current?.setDialogState(true);\n\t\t\t})\n\t\t\t.catch(() => {});\n\t};\n\n\tconst refreshPage = () => {\n\t\twindow.location.reload();\n\t};\n\n\treturn (\n\t\t
\n\t\t\t {\n\t\t\t\t\tdialogRef.current?.setDialogState(false);\n\t\t\t\t}}\n\t\t\t\tonAccept={() => {\n\t\t\t\t\twindow.location.href = Routes.Home;\n\t\t\t\t}}\n\t\t\t\tref={dialogRef}\n\t\t\t\tshowWarning\n\t\t\t/>\n\t\t\t{!sendReport ? (\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{t('error_screen_title')}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{t('error_screen_description')}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tsetSendReport(true);\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t) : (\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{t('send_error_report_screen_title')}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{t('send_error_report_screen_description')}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t)}\n\t\t
\n\t);\n}\n\nconst useStyles = makeStyles(() => ({\n\tgridWrapper: {\n\t\talignItems: 'center',\n\t\tjustifyContent: 'center',\n\t\tdisplay: 'flex',\n\t\tflexDirection: 'column',\n\t\tmargin: '50px 0px',\n\t},\n\tbuttonWrapper: {\n\t\twidth: 'fit-content',\n\t\tbackgroundColor: colors.yellow,\n\t\tborderRadius: 4,\n\t\tborder: `1px solid ${colors.yellow}`,\n\t\tpadding: '12px 42px',\n\t\tcursor: 'pointer',\n\t},\n\tbuttonWrapperInverted: {\n\t\tmarginLeft: '12px',\n\t\theight: 'fit-content',\n\t\tpadding: '12px 29px',\n\t\tborder: `1px solid ${colors.darkGray}`,\n\t\tborderRadius: '4px',\n\t\tbackgroundColor: colors.white,\n\t\tcursor: 'pointer',\n\t},\n\ttitleWrapper: {\n\t\tmarginTop: '81px',\n\t\tmarginBottom: '16px',\n\t\talignItems: 'center',\n\t\tjustifyContent: 'center',\n\t\tdisplay: 'flex',\n\t},\n\trow: {\n\t\tdisplay: 'flex',\n\t\tjustifyContent: 'center',\n\t\talignItems: 'center',\n\t},\n\ttitle: {\n\t\tfontFamily: fonts.bold,\n\t\tfontSize: '32px',\n\t\tlineHeight: '48px',\n\t\tcolor: colors.darkGray,\n\t},\n\tdescriptionWarpper: {\n\t\tmarginBottom: '32px',\n\t\talignItems: 'center',\n\t\tjustifyContent: 'center',\n\t\tdisplay: 'flex',\n\t\ttextAlign: 'center',\n\t},\n\twrapper: {\n\t\tmarginTop: '50px',\n\t},\n\temailWrapper: {\n\t\tmarginBottom: '24px',\n\t},\n\tdescriptionWrapper: {\n\t\tmarginBottom: '12px',\n\t},\n\treportErrorTitleWrapper: {\n\t\tmarginBottom: '20px',\n\t},\n}));\n\nexport default ErrorScreen;\n","import React from 'react';\nimport ErrorScreen from '../screens/ErrorScreen';\n\nclass ErrorWrapper extends React.Component {\n\tstate: {\n\t\thasError: boolean;\n\t};\n\tconstructor(props: any) {\n\t\tsuper(props);\n\t\tthis.state = { hasError: false };\n\t}\n\n\tcomponentDidCatch(error: any, info: any) {\n\t\t// Display fallback UI\n\n\t\tthis.setState({ hasError: true });\n\t}\n\n\trender() {\n\t\tif (this.state.hasError) {\n\t\t\t// You can render any custom fallback UI\n\t\t\treturn ;\n\t\t}\n\t\treturn this.props.children;\n\t}\n}\n\nexport default ErrorWrapper;\n","import * as React from 'react';\n\nfunction CheckboxFilled(props: any) {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n\nexport default CheckboxFilled;\n","import * as React from 'react';\n\nfunction CheckboxEmpty(props: any) {\n\treturn (\n\t\t\n\t\t\t\n\t\t\n\t);\n}\n\nexport default CheckboxEmpty;\n","import { Dialog, makeStyles } from '@material-ui/core';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { colors } from '../consts/colors';\nimport { useGlobalStyles } from '../consts/globalStyles';\nimport { useAuthActionContext } from '../context/auth/useAuth';\nimport { onAuthTokenError } from '../helpers/authHelper';\nimport service from '../service/service';\nimport CheckboxFilled from '../svgComponents/CheckboxFilled';\nimport CheckboxEmpty from '../svgComponents/CheckboxEmpty';\nimport CloseIcon from '../svgComponents/CloseIcon';\nimport Transition from './Transition';\n\nexport interface StandardDialogInterface {\n\tsetDialogState: (val: boolean) => void;\n}\n\ninterface Props {}\n\nfunction LegalNoticeDialog(props: Props, ref: any) {\n\tconst classes = useStyles();\n\tconst globalClasses = useGlobalStyles();\n\tconst { t } = useTranslation();\n\tconst { setUser } = useAuthActionContext();\n\tconst [isOpen, setIsOpen] = React.useState(false);\n\tconst [warning, setWarning] = React.useState(false);\n\tconst [accepted, setAccepted] = React.useState(false);\n\n\tconst onCancle = () => {\n\t\tonAuthTokenError(setUser);\n\t\tsetIsOpen(false);\n\t};\n\n\tconst onAccept = () => {\n\t\tif (accepted)\n\t\t\tservice\n\t\t\t\t.acceptPrivacyPolicy()\n\t\t\t\t.then(() => {\n\t\t\t\t\tsetIsOpen(false);\n\t\t\t\t})\n\t\t\t\t.catch(() => {});\n\t\telse {\n\t\t\tsetWarning(true);\n\t\t}\n\t};\n\n\tconst onCheckboxPress = () =>\n\t\tsetAccepted((curr) => {\n\t\t\tsetWarning(!curr);\n\t\t\treturn !curr;\n\t\t});\n\n\tReact.useImperativeHandle(\n\t\tref,\n\t\t(): StandardDialogInterface => ({\n\t\t\tsetDialogState: (val: boolean) => {\n\t\t\t\tsetIsOpen(val);\n\t\t\t},\n\t\t})\n\t);\n\n\treturn (\n\t\t\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t{t('legal_notice_dialog_title')}\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t{accepted ? (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t{t('legal_notice_dialog_description')}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{t('legal_notice_dialog_privacy_policy')}\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{t('legal_notice_dialog_accept')}\n\t\t\t\t\t\t
\n\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{t('legal_notice_dialog_cancel')}\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t\n\t);\n}\n\nconst useStyles = makeStyles(() => ({\n\twrapper: { maxWidth: '40vw', marginLeft: 'auto', marginRight: 'auto' },\n\tcontainer: { display: 'flex', padding: '16px 16px 16px 20px', borderRadius: '4px', flex: 1 },\n\trow: { display: 'flex' },\n\ttitleWrapper: {\n\t\tmarginBottom: '8px',\n\t\ttransform: 'translateY(-2px)',\n\t},\n\tdescriptionWrapper: {\n\t\tmarginBottom: '20px',\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\twhiteSpace: 'pre',\n\t},\n\tbuttonWrapper: {\n\t\tmarginRight: '24px',\n\t\tcursor: 'pointer',\n\t},\n\tcloseIconWarpper: {\n\t\tmarginLeft: '12px',\n\t\tcursor: 'pointer',\n\t\theight: 'fit-content',\n\t},\n\tmargin: {\n\t\tmarginRight: '12px',\n\t\tcursor: 'pointer',\n\t},\n}));\n\nexport default React.forwardRef(LegalNoticeDialog);\n","import { Dialog, makeStyles } from '@material-ui/core';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { colors } from '../consts/colors';\nimport { useGlobalStyles } from '../consts/globalStyles';\nimport CloseIcon from '../svgComponents/CloseIcon';\nimport WarningIcon from '../svgComponents/WarningIcon';\nimport { useErrorActionContext, useErrorStateContext } from '../context/error/useError';\nimport Transition from './Transition';\n\ninterface Props {}\n\nfunction ErrorServiceDialog(props: Props, ref: any) {\n\tconst classes = useStyles();\n\tconst globalClasses = useGlobalStyles();\n\tconst { t } = useTranslation();\n\tconst { error } = useErrorStateContext();\n\tconst { setError } = useErrorActionContext();\n\tconst [isOpen, setIsOpen] = React.useState(false);\n\n\tconst onClose = () => {\n\t\tsetIsOpen(false);\n\t\tsetError('');\n\t};\n\n\tReact.useEffect(() => {\n\t\tif (error) setIsOpen(true);\n\t}, [error]);\n\n\treturn (\n\t\t\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{t('error_service_dialog_title', { title: t(error) })}\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t{t('error_service_dialog_description')}\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{t('error_service_dialog_cancel')}\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t\n\t);\n}\n\nconst useStyles = makeStyles(() => ({\n\twrapper: { maxWidth: '40vw', marginLeft: 'auto', marginRight: 'auto' },\n\tcontainer: { display: 'flex', padding: '16px 16px 16px 20px', borderRadius: '4px', flex: 1 },\n\trow: { display: 'flex' },\n\ttitleWrapper: {\n\t\tmarginBottom: '8px',\n\t\ttransform: 'translateY(-2px)',\n\t},\n\tdescriptionWrapper: {\n\t\tmarginBottom: '20px',\n\t\talignItems: 'center',\n\t},\n\tbuttonWrapper: {\n\t\tmarginRight: '24px',\n\t\tcursor: 'pointer',\n\t},\n\tcloseIconWarpper: {\n\t\tmarginLeft: '12px',\n\t\tcursor: 'pointer',\n\t\theight: 'fit-content',\n\t},\n\twarningIconWrapper: {\n\t\tmarginRight: '16px',\n\t},\n}));\n\nexport default React.forwardRef(ErrorServiceDialog);\n","import * as React from 'react';\n\nfunction AvatarIcon(props: any) {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n\nexport default AvatarIcon;\n","import * as React from 'react';\n\nfunction UserIcon(props: React.SVGProps) {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n\nexport default UserIcon;\n","import { makeStyles } from '@material-ui/core';\nimport React from 'react';\nimport { unstable_batchedUpdates } from 'react-dom';\nimport { useTranslation } from 'react-i18next';\nimport { Link } from 'react-router-dom';\n\nimport { colors } from '../consts/colors';\nimport { fonts } from '../consts/fonts';\nimport { useAuthActionContext, useAuthStateContext } from '../context/auth/useAuth';\nimport { useWorkingTimeActionContext } from '../context/workingTime/useWorkingTime';\nimport { onAuthTokenError } from '../helpers/authHelper';\nimport { Routes } from '../router/Routes';\nimport service from '../service/service';\nimport { UserRole } from '../service/types/User';\nimport UserIcon from '../svgComponents/UserIcon';\nimport StandardDialog, { StandardDialogInterface } from './StandardDialog';\nimport { userAtom } from '../atoms/userAtom';\nimport { useAtom } from 'jotai';\n\nfunction AvatarCard() {\n\tconst { user } = useAuthStateContext();\n\tconst { setUser } = useAuthActionContext();\n\tconst { setRecord } = useWorkingTimeActionContext();\n\tconst { t } = useTranslation();\n\tconst classes = useStyles({});\n\tconst standardDialogRef = React.useRef();\n\tconst [, setUserAtom] = useAtom(userAtom);\n\n\tconst openDialog = () => {\n\t\tif (standardDialogRef.current) standardDialogRef.current.setDialogState(true);\n\t};\n\n\tconst logout = () =>\n\t\tservice\n\t\t\t.logout()\n\t\t\t.then((res) => {\n\t\t\t\tif (res) {\n\t\t\t\t\tunstable_batchedUpdates(() => {\n\t\t\t\t\t\tonAuthTokenError(setUser);\n\t\t\t\t\t\tsetRecord(undefined);\n\t\t\t\t\t\tsetUserAtom(undefined);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(() => {});\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t{`${user?.firstName} ${user?.lastName}`}\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t{user?.email}\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{t('avatar_card_settings')}\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t\t
\n\t\t\t {\n\t\t\t\t\tif (user?.role === UserRole.QualityAssuranceInspector) {\n\t\t\t\t\t\topenDialog();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tlogout();\n\t\t\t\t\t}\n\t\t\t\t}}>\n\t\t\t\t{t('avatar_card_logout')}\n\t\t\t
\n\t\t\t\n\t\t
\n\t);\n}\nconst useStyles = makeStyles(() => ({\n\tcontainer: {\n\t\tmarginRight: '5px',\n\t\tmarginTop: '5px',\n\t\tmarginLeft: 'auto',\n\t\twidth: 'fit-content',\n\t\tpadding: '0 24px',\n\t\tboxShadow: '0 2px 10px -4px rgba(26,26,26,0.2)',\n\t\tborderRadius: '4px',\n\t\tbackgroundColor: colors.white,\n\t},\n\tlogoutWrapper: {\n\t\twidth: 'fit-content',\n\t\tmarginLeft: 'auto',\n\t\tmarginRight: 'auto',\n\t\tpaddingBottom: '16px',\n\t\tmarginTop: '16px',\n\t\tcursor: 'pointer',\n\t},\n\tlogout: {\n\t\tfontSize: '12px',\n\t\tlineHeight: '16px',\n\t\tfontFamily: fonts.regular,\n\t\tcolor: colors.darkGray,\n\t\ttextDecoration: 'underline',\n\t},\n\tunderline: {\n\t\theight: '1px',\n\t\twidth: '100%',\n\t\tbackgroundColor: '#EDEDED',\n\t},\n\timage: {\n\t\theight: '60px',\n\t\twidth: '60px',\n\t\tborderRadius: '30px',\n\t\tbackgroundColor: colors.gray,\n\t},\n\timageWrapper: {\n\t\tmarginRight: '12px',\n\t},\n\tinfoWrapper: {\n\t\tdisplay: 'flex',\n\t\tpaddingTop: '20px',\n\t\tpaddingBottom: '24px',\n\t},\n\tsettings: {\n\t\tfontSize: '12px',\n\t\tlineHeight: '16px',\n\t\tfontFamily: fonts.regular,\n\t\tcolor: colors.darkGray,\n\t\ttextDecoration: 'none',\n\t},\n\tusernameWrapper: {\n\t\tmarginBottom: '8px',\n\t},\n\tusername: {\n\t\tfontSize: '12px',\n\t\tlineHeight: '16px',\n\t\tfontFamily: fonts.regular,\n\t\tcolor: colors.gray,\n\t},\n\tname: {\n\t\tfontSize: '14px',\n\t\tlineHeight: '20px',\n\t\tfontFamily: fonts.bold,\n\t\tcolor: colors.darkGray,\n\t},\n\tsettingsWrapper: {\n\t\twidth: 'fit-content',\n\t\tcursor: 'pointer',\n\t},\n}));\n\nexport default AvatarCard;\n","import { ClickAwayListener, makeStyles } from '@material-ui/core';\nimport React from 'react';\n\nimport AvatarIcon from '../svgComponents/AvatarIcon';\nimport AvatarCard from './AvatarCard';\n\nfunction Avatar() {\n\tconst [showAvatarCard, setShowAvatarCard] = React.useState(false);\n\tconst classes = useStyles({ showAvatarCard: showAvatarCard });\n\n\tconst onAvatarPress = () => setShowAvatarCard((prev) => !prev);\n\n\treturn (\n\t\t setShowAvatarCard(false)}>\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t);\n}\n\ninterface StyleProps {\n\tshowAvatarCard: boolean;\n}\n\nconst useStyles = makeStyles(() => ({\n\tavatarContainer: {\n\t\tpaddingTop: '20px',\n\t\tpaddingRight: '32px',\n\t},\n\tavatarWrapper: {\n\t\tdisplay: 'flex',\n\t\tjustifyContent: 'flex-end',\n\t\tcursor: 'pointer',\n\t},\n\tavatarCard: (p: StyleProps) => ({\n\t\tmarginLeft: 'auto',\n\t\tmarginRight: '0',\n\t\tposition: 'absolute',\n\t\tright: '20px',\n\t\ttop: '65px',\n\t\twidth: '300px',\n\t\theight: p.showAvatarCard ? '200px' : '0px',\n\t\toverflow: 'hidden',\n\t\ttransition: 'all 0.5s',\n\t}),\n}));\n\nexport default Avatar;\n","import { Grid, makeStyles } from '@material-ui/core';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { UserRole } from '../service/types/User';\nimport { Link } from 'react-router-dom';\nimport { useGlobalStyles } from '../consts/globalStyles';\nimport { colors } from '../consts/colors';\nimport { useAuthStateContext } from '../context/auth/useAuth';\nimport { Routes } from '../router/Routes';\n\ninterface Props {\n\tname: string;\n\timageSource: JSX.Element;\n\troute: Routes;\n\taccessRoles: UserRole[];\n}\n\nfunction MenuItem({ name, imageSource, route, accessRoles }: Props) {\n\tconst globalClasses = useGlobalStyles({ description: colors.gray });\n\tconst classes = useStyles({});\n\tconst { user } = useAuthStateContext();\n\tconst { t } = useTranslation();\n\n\tif (accessRoles.some((role) => user?.role === role))\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t
{imageSource}
\n\t\t\t\t\t
\n\t\t\t\t\t\t{t(name)}\n\t\t\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t);\n\treturn null;\n}\n\nconst useStyles = makeStyles(() => ({\n\timageWarpper: {\n\t\tmarginBottom: '12px',\n\t\tcursor: 'pointer',\n\t},\n\tnameWrapper: {\n\t\talignItems: 'center',\n\t\tjustifyContent: 'center',\n\t\tdisplay: 'flex',\n\t},\n}));\n\nexport default MenuItem;\n","import moment from 'moment';\nimport { RecordTimeType } from '../../service/types/BreakTime';\nimport { DEFAULT_NO_VALUE } from '../standardInputHelper/generalStandardInputHelper';\n\nconst SECOND = 1000;\n\nexport const addWorkingTimeFields = {\n\tqai: 'qai',\n\tfrom: 'from',\n\tto: 'to',\n\tdate: 'date',\n\tbilled: 'billed',\n\ttype: 'type',\n\tduration: 'duration',\n\tprofession: 'profession',\n};\n\nexport const addBreakTimeFields = {\n\tqai: 'qai',\n\tdate: 'date',\n\tduration: 'duration',\n};\n\nexport interface WorkingTimeFilterInterface {\n\tqai: any;\n\treporter: any;\n\ttoDate: any;\n\tfromDate: any;\n\tbilled: any;\n\ttype: any;\n}\n\nexport interface ExportWorkingTimeInterface {\n\tExportMaterials: boolean;\n\tExportTools: boolean;\n\tExportTravels: boolean;\n\tExportTransport: boolean;\n\tAnonymous: boolean;\n}\n\nexport const exportWorkingTimeFields = {\n\tExportMaterials: 'ExportMaterials',\n\tExportTools: 'ExportTools',\n\tExportTravels: 'ExportTravels',\n\tExportTransport: 'ExportTransport',\n\tAnonymous: 'Anonymous',\n};\n\nexport const workingTimeFields = {\n\tqai: 'qai',\n\treporter: 'reporter',\n\ttoDate: 'toDate',\n\tfromDate: 'fromDate',\n\tbilled: 'billed',\n\ttype: 'type',\n};\n\nexport const initWorkingTimeFilters = {\n\tqai: '',\n\treporter: '',\n\ttoDate: null,\n\tfromDate: null,\n\tbilled: '',\n\ttype: '',\n};\n\nconst data = Object.freeze({ ...initWorkingTimeFilters });\nexport type WorkingTimeFilterKeys = keyof typeof data;\n\nexport const filterWorkingTimeKeyValuePairs = [\n\tDEFAULT_NO_VALUE,\n\t{ key: 'Not billed', value: 0 },\n\t{ key: 'Billed', value: 1 },\n];\n\nexport const createWorkingTimeKeyValuePairs = [\n\t{ key: 'Not billed', value: false },\n\t{ key: 'Billed', value: true },\n];\n\nexport const createRecordTimeKeyValuePairs = [\n\t{ key: 'working_time_screen_add_working_time', value: RecordTimeType.Working },\n\t{ key: 'working_time_screen_add_break_time', value: RecordTimeType.Break },\n\t{ key: 'working_time_screen_add_waiting_time', value: RecordTimeType.Waiting },\n];\n\nexport const filterRecordTimeTypeKeyValuePairs = [\n\tDEFAULT_NO_VALUE,\n\t{ key: 'working_time_screen_working_time', value: RecordTimeType.Working },\n\t{ key: 'working_time_screen_break_time', value: RecordTimeType.Break },\n\t{ key: 'working_time_screen_waiting_time', value: RecordTimeType.Waiting },\n];\n\nexport const timeFormat = 'HH:mm';\nexport const initTimeValue = moment().set('h', 0).set('m', 0);\n\nconst padNumber = (num: number) => String(num).padStart(2, '0');\n\nexport function timeFromSeconds(_seconds: number) {\n\tconst leadingSign = _seconds < 0 ? '-' : '';\n\tconst hours = Math.floor(_seconds / 3600);\n\tconst minutes = Math.floor((_seconds / 60) % 60);\n\tconst seconds = Math.floor(_seconds % 60);\n\n\treturn `${leadingSign}${padNumber(hours)}:${padNumber(minutes)}:${padNumber(seconds)}`;\n}\n\nexport function timeFromUnixToStringFormat(unixTime: number) {\n\tconst isNegative = unixTime < 0 ? '-' : '';\n\tconst unixTimeAbs = Math.abs(unixTime);\n\tconst hours = Math.floor(unixTimeAbs / 60 / 60);\n\tconst minutes = Math.floor((unixTimeAbs / 60) % 60);\n\tconst seconds = Math.floor((unixTimeAbs % 60) % 60);\n\n\treturn `${isNegative}${hours < 10 ? '0' + hours : hours}:${('0' + minutes).slice(-2)}:${('0' + seconds).slice(-2)}`;\n}\n\nexport function calculateTimeDifference(from: string, to: string) {\n\tconst momentFromTime = moment(from);\n\tconst momentToTime = moment(to);\n\n\tif (momentFromTime.format(timeFormat + ':ss') === momentToTime.format(timeFormat + ':ss')) {\n\t\treturn 0;\n\t} else if (momentFromTime.isBefore(momentToTime)) {\n\t\treturn Math.abs(momentToTime.diff(momentFromTime)) / 1000;\n\t} else {\n\t\treturn Math.abs(momentFromTime.diff(momentToTime.add(1, 'd'))) / 1000;\n\t}\n}\n\nexport function updateWorkTime(\n\ttime: number,\n\ttimer: React.MutableRefObject,\n\tsetWorkingTime: (timeString: string) => void\n) {\n\tsetWorkingTime(timeFromUnixToStringFormat(time / 1000));\n\treturn setTimeout(() => {\n\t\ttimer.current = updateWorkTime(time + SECOND, timer, setWorkingTime);\n\t}, SECOND);\n}\n","import * as React from 'react';\nimport { colors } from '../consts/colors';\n\nfunction DropdownArrow(props: any) {\n\treturn (\n\t\t\n\t\t\t\n\t\t\n\t);\n}\n\nexport default DropdownArrow;\n","import * as React from 'react';\n\nfunction BarcodeScannerIcon(props: React.SVGProps) {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n\nexport default BarcodeScannerIcon;\n","import React from 'react';\nimport { withStyles, makeStyles } from '@material-ui/core/styles';\nimport TextField from '@material-ui/core/TextField';\n\nimport { colors } from '../consts/colors';\nimport DropdownArrow from '../svgComponents/DropdownArrow';\nimport { globalInputStyle, useGlobalStyles } from '../consts/globalStyles';\nimport ErrorIcon from '../svgComponents/ErrorIcon';\nimport BarcodeScannerIcon from '../svgComponents/BarcodeScannerIcon';\n\nexport const TextFieldWithCSS = withStyles({\n\troot: {\n\t\t'& .Mui-disabled': {\n\t\t\tcolor: colors.lightGray,\n\t\t},\n\t\t'& label.Mui-focused:not(.Mui-error)': {\n\t\t\tcolor: colors.lightGray,\n\t\t},\n\t\t'& .MuiInput-underline:hover:not(.Mui-disabled):before': {\n\t\t\tborderBottom: `0px solid ${colors.lightGray}`,\n\t\t},\n\t\t'& .MuiInput-underline': {\n\t\t\tborderBottomStyle: 'none',\n\t\t},\n\t\t'& .MuiSelect-select:focus': {\n\t\t\tbackgroundColor: 'white',\n\t\t\tborderRadius: '5px',\n\t\t},\n\t\t'& .Mui-error': {\n\t\t\tcolor: colors.error,\n\t\t},\n\t},\n})(TextField);\n\ninterface Props {\n\tlabel: string;\n\tvalue?: string | number;\n\terror?: boolean;\n\thelperText?: string;\n\tonChange?: (event: any) => void;\n\tdisabled?: boolean;\n\tfixed?: boolean;\n\tlabelAddOn?: JSX.Element;\n\tselect?: boolean;\n\tname?: string;\n\tchildren?: JSX.Element | JSX.Element[];\n\ttype?: string;\n\tplaceholder?: string;\n\twrapperClassName?: string;\n\tmultiline?: boolean;\n\trows?: number;\n\tisUserNotEditing?: boolean;\n\twrapper?: string;\n\tinputWrapper?: string;\n\tinput?: string;\n\twithOutBackgroundColor?: boolean;\n\tmaxInputWidth?: string;\n\tonScanClick?: () => void;\n\tonPaste?: (event: any) => void;\n}\n\nfunction StandardTextField(props: Props) {\n\tconst [rotateArrow, setRotateArrow] = React.useState(false);\n\tconst [focused, setFocused] = React.useState(false);\n\tconst classes = useStyles({\n\t\trotate: rotateArrow,\n\t\tdisabled: props.disabled,\n\t\tfixed: props.fixed,\n\t\tfocused: focused,\n\t\twithOutBackgroundColor: props.withOutBackgroundColor,\n\t\tmaxInputWidth: props.maxInputWidth,\n\t\tonScanClick: props.onScanClick,\n\t});\n\tconst globalClasses = useGlobalStyles({\n\t\tdisabled: props.disabled,\n\t\tfixed: props.fixed,\n\t\tisUserNotEditing: props.isUserNotEditing,\n\t});\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t{props.label}\n\t\t\t\t{props.labelAddOn ? props.labelAddOn : null}\n\t\t\t
\n\t\t\t (\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t),\n\t\t\t\t\tonOpen: () => {\n\t\t\t\t\t\tif (!props.disabled) {\n\t\t\t\t\t\t\tsetTimeout(() => setRotateArrow(true), 10);\n\t\t\t\t\t\t\tsetFocused(true);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tonClose: () => {\n\t\t\t\t\t\tsetTimeout(() => setRotateArrow(false), 10);\n\t\t\t\t\t\tsetFocused(false);\n\t\t\t\t\t},\n\t\t\t\t\tMenuProps: {\n\t\t\t\t\t\tPaperProps: {\n\t\t\t\t\t\t\tclasses: {\n\t\t\t\t\t\t\t\trounded: classes.dropdownContainer,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tanchorOrigin: {\n\t\t\t\t\t\t\tvertical: 'bottom',\n\t\t\t\t\t\t\thorizontal: 'left',\n\t\t\t\t\t\t},\n\t\t\t\t\t\ttransformOrigin: {\n\t\t\t\t\t\t\tvertical: 'top',\n\t\t\t\t\t\t\thorizontal: 'left',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tgetContentAnchorEl: null,\n\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\ttransform: 'translateX(-1px) translateY(4px)',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tclasses: {\n\t\t\t\t\t\tselectMenu: classes.dropdownMenuWrapper,\n\t\t\t\t\t},\n\t\t\t\t}}\n\t\t\t\tInputProps={{\n\t\t\t\t\tonFocus: () => setFocused(true),\n\t\t\t\t\tonBlur: () => setFocused(false),\n\t\t\t\t\tclasses: {\n\t\t\t\t\t\tinput: props.input ? props.input : classes.input,\n\t\t\t\t\t\tunderline: classes.underlineField,\n\t\t\t\t\t},\n\t\t\t\t\tendAdornment: props.onScanClick ? (\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t (!props.disabled ? props.onScanClick!() : {})} />\n\t\t\t\t\t\t
\n\t\t\t\t\t) : null,\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t{props.error ? (\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t{props.helperText}\n\t\t\t\t
\n\t\t\t) : null}\n\t\t
\n\t);\n}\n\ninterface StyleProps {\n\tfixed?: boolean;\n\tfocused?: boolean;\n\tdisabled?: boolean;\n\tonScanClick?: () => void;\n\trotate: boolean;\n\twithOutBackgroundColor?: boolean;\n\tmaxInputWidth?: string;\n}\n\nconst useStyles = makeStyles(() => ({\n\tbarcode: (p: StyleProps) => ({\n\t\tbackgroundColor: colors.someYellow,\n\t\tmargin: '2px 8px 2px 0px ',\n\t\theight: 26,\n\t\twidth: 28,\n\t\tborderRadius: 13,\n\t\talignItems: 'center',\n\t\tjustifyContent: 'center',\n\t\tdisplay: 'flex',\n\t\tcursor: p.disabled ? 'auto' : 'pointer',\n\t}),\n\tlabelWrapper: {\n\t\tmarginBottom: '4px',\n\t\tdisplay: 'flex',\n\t\twhiteSpace: 'pre',\n\t},\n\tunderlineField: {\n\t\t'&:before': {\n\t\t\tborderBottom: `0px solid ${colors.lightGray}`,\n\t\t},\n\t\t'&:after': {\n\t\t\tborderBottom: `0px solid ${colors.lightGray}`,\n\t\t},\n\t},\n\tinputWrapper: (p: StyleProps) => ({\n\t\twidth: '100%',\n\t\tborderRadius: '4px',\n\t\tbackgroundColor: p.withOutBackgroundColor ? undefined : p.fixed ? 'rgba(161, 161, 161, 0.2)' : colors.white,\n\t\tborder: `1px solid ${p.focused ? colors.darkGray : '#C0C0C0'}`,\n\t\tmaxWidth: p.maxInputWidth,\n\t}),\n\tdropdownContainer: {\n\t\tboxShadow: 'none',\n\t\tborder: `1px solid ${colors.borderColor}`,\n\t},\n\tdropdownArrowWrapper: (p: StyleProps) => ({\n\t\tposition: 'absolute',\n\t\tright: !p.onScanClick ? '12.5px' : '42px',\n\t\tcursor: 'pointer',\n\t\tpointerEvents: 'none',\n\t\tdisplay: p.disabled ? 'none' : 'block',\n\t}),\n\tdropdownMenuWrapper: {\n\t\theight: '1.1876em',\n\t},\n\tinput: (p: StyleProps) => ({\n\t\t...globalInputStyle(p.disabled),\n\t\twhiteSpace: 'pre',\n\t\tcolor: p.fixed ? colors.lightGray : colors.darkGray,\n\t\tborderRadius: '5px',\n\t\tpaddingLeft: '12px',\n\t}),\n\trotate: (p: StyleProps) => ({\n\t\ttransform: p.rotate ? 'rotate(180deg)' : 'rotate(0deg)',\n\t\ttransition: 'all 0.5s',\n\t}),\n\trow: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tmarginTop: '3px',\n\t},\n\terrorImageWrapper: { marginRight: '5px', height: '16px' },\n}));\n\nexport default StandardTextField;\n","export enum PriceListTypes {\n\tAdmin = 0,\n\tTruckDriver = 1,\n\tQAISimpleRework = 2,\n\tQAIVisualControl = 3,\n\tResident = 4,\n\tForkliftDriver = 5,\n\tTeamlead = 6,\n}\n","import { PriceListTypes } from './priceListTypes';\n\nexport interface IPriceListOption {\n\tvalue: number;\n\tlabel: string;\n}\n\nexport const priceListOptions: IPriceListOption[] = [\n\t{\n\t\tvalue: PriceListTypes.Admin,\n\t\tlabel: 'Admin',\n\t},\n\t{\n\t\tvalue: PriceListTypes.TruckDriver,\n\t\tlabel: 'TruckDriver',\n\t},\n\t{\n\t\tvalue: PriceListTypes.QAISimpleRework,\n\t\tlabel: 'QAISimpleRework',\n\t},\n\t{\n\t\tvalue: PriceListTypes.QAIVisualControl,\n\t\tlabel: 'QAIVisualControl',\n\t},\n\t{\n\t\tvalue: PriceListTypes.Resident,\n\t\tlabel: 'Resident',\n\t},\n\t{\n\t\tvalue: PriceListTypes.ForkliftDriver,\n\t\tlabel: 'ForkliftDriver',\n\t},\n\t{\n\t\tvalue: PriceListTypes.Teamlead,\n\t\tlabel: 'Teamlead',\n\t},\n];\n","import React from 'react';\nimport { makeStyles, MenuItem } from '@material-ui/core';\nimport { useWorkingTimeActionContext, useWorkingTimeStateContext } from '../context/workingTime/useWorkingTime';\nimport { useTranslation } from 'react-i18next';\nimport { timeFromUnixToStringFormat, updateWorkTime } from '../helpers/workingTimeHelper/generalWorkingTimeHelper';\nimport WorkTimeTrack from '../service/types/WorkTimeTrack';\nimport moment from 'moment';\nimport { fonts } from '../consts/fonts';\nimport { colors } from '../consts/colors';\nimport { globalInputStyle, useGlobalStyles } from '../consts/globalStyles';\nimport { TrackWorkingTimeFormValues } from './TrackWorkingTime';\nimport { Controller, useForm } from 'react-hook-form';\nimport { rules } from '../consts/rules';\nimport StandardTextField from './StandardTextField';\nimport { priceListOptions } from '../consts/priceListOptions';\n\ninterface Props {\n\tcontractID?: number;\n\tcontractNumber?: string;\n\thomeScreen?: boolean;\n}\n\nfunction ReduceWorkTimeTracking(props: Props) {\n\tconst classes = useStyles({});\n\tconst globalClasses = useGlobalStyles({});\n\tconst [workingTime, setWorkingTime] = React.useState('');\n\tconst [buttonText, setButtonText] = React.useState('');\n\tconst { record } = useWorkingTimeStateContext();\n\tconst { startTracking, stopTracking } = useWorkingTimeActionContext();\n\tconst timer = React.useRef(setTimeout(() => {}, 0));\n\tconst { t } = useTranslation();\n\tconst { control, errors, handleSubmit } = useForm();\n\n\tReact.useEffect(() => {\n\t\tif (record) {\n\t\t\tsetButtonText('working_time_screen_stop_button');\n\t\t\ttimer.current = updateWorkTime(moment().diff(record.startTime), timer, setWorkingTime);\n\t\t} else {\n\t\t\tsetButtonText('working_time_screen_start_button');\n\t\t\tsetWorkingTime(timeFromUnixToStringFormat(0));\n\t\t}\n\t\treturn () => {\n\t\t\tclearTimeout(timer.current);\n\t\t};\n\t}, [record]);\n\n\tconst onButtonPress = (data: TrackWorkingTimeFormValues) => {\n\t\tif (record) {\n\t\t\tconst recordToSave: WorkTimeTrack = { ...record, profession: parseInt(data.profession as string) };\n\t\t\tstopTracking(recordToSave);\n\t\t} else if (props.contractID && props.contractNumber)\n\t\t\tstartTracking(new WorkTimeTrack(props.contractID, moment(), props.contractNumber));\n\t};\n\n\treturn props.contractID || record ? (\n\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t{t('working_time_screen_reduce_track_title')} №\n\t\t\t\t\t{`: ${record ? record.contractNumber : props.contractNumber}`}\n\t\t\t\t\n\t\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t{t('working_time_screen_reduce_track_time')}:\n\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t{workingTime}\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t{record ? (\n\t\t\t\t\t (\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tonChange(e.target.value);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\terror={errors.profession ? true : false}\n\t\t\t\t\t\t\t\thelperText={errors.profession ? errors.profession.message : ''}>\n\t\t\t\t\t\t\t\t{priceListOptions.map((item) => (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t{t(item.label)}\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t) : null}\n\n\t\t\t\t\n\t\t\t\t\t{t(buttonText)}\n\t\t\t\t\n\t\t\t
\n\t\t
\n\t) : null;\n}\n\nconst useStyles = makeStyles(() => ({\n\thomeScreen: {\n\t\tcolor: 'white !important',\n\t},\n\twrapper: {\n\t\tmarginRight: '28px',\n\t},\n\ttitleWrapper: {\n\t\tmarginBottom: '4px',\n\t\ttextAlign: 'right',\n\t},\n\tcontractTitle: {\n\t\tfontSize: '12px',\n\t\tlineHeight: '16px',\n\t\tfontFamily: fonts.regular,\n\t\tcolor: colors.lightGray,\n\t\tletterSpacing: 0.8,\n\t},\n\ttimeText: {\n\t\tfontSize: '14px',\n\t\tlineHeight: '20px',\n\t\tfontFamily: fonts.regular,\n\t\tcolor: colors.lightGray,\n\t\tmarginRight: '8px',\n\t},\n\ttimeWrapper: {\n\t\tmarginRight: '16px',\n\t},\n\tbutton: {\n\t\tfontSize: '16px',\n\t\tlineHeight: '24px',\n\t\tfontFamily: fonts.semiBold,\n\t\tcolor: colors.darkGray,\n\t\tcursor: 'pointer',\n\t\tmarginLeft: '8px',\n\t},\n\trow: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'end',\n\t},\n\tinput: {\n\t\t...globalInputStyle(),\n\t},\n\tinputWrapperDropdown: {\n\t\tminHeight: '20px',\n\t\ttransform: 'translateY(-2px)',\n\t\ttextOverflow: 'ellipsis',\n\t\toverflow: 'hidden',\n\t},\n}));\n\nexport default ReduceWorkTimeTracking;\n","import * as React from 'react';\n\nfunction UsersIcon(props: React.SVGProps) {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n\nexport default UsersIcon;\n","import * as React from 'react';\n\nfunction ContractsIcon(props: React.SVGProps) {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n\nexport default ContractsIcon;\n","import * as React from 'react';\n\nfunction DashboardIcon(props: React.SVGProps) {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n\nexport default DashboardIcon;\n","import * as React from 'react';\n\nfunction CustomersIcon(props: React.SVGProps) {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n\nexport default CustomersIcon;\n","import * as React from 'react';\n\nfunction EditContractIcon(props: React.SVGProps) {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n\nexport default EditContractIcon;\n","import * as React from 'react';\n\nconst GroupIcon = (props: React.SVGProps) => (\n\t\n\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\n);\nexport default GroupIcon;\n","import React from 'react';\n\nimport { UserRole } from '../service/types/User';\nimport UsersIcon from '../svgComponents/UsersIcon';\nimport ContractsIcon from '../svgComponents/ContractsIcon';\nimport DashboardIcon from '../svgComponents/DashboardIcon';\nimport CustomersIcon from '../svgComponents/CustomersIcon';\nimport EditContractIcon from '../svgComponents/EditContractsIcon';\n\nimport { RouteRestrictions, Routes } from '../router/Routes';\nimport GroupIcon from '../svgComponents/GroupIcon';\n\nexport interface MenuItemData {\n\tname: string;\n\timageSource: JSX.Element;\n\taccessRoles: UserRole[];\n\troute: Routes;\n}\n\nexport const menuItemsData = (admin: boolean) => {\n\treturn [\n\t\t{\n\t\t\tname: 'home_screen_dashboard',\n\t\t\timageSource: ,\n\t\t\taccessRoles: RouteRestrictions.CustomerContracts,\n\t\t\troute: Routes.CustomerContracts,\n\t\t},\n\t\t{\n\t\t\tname: 'home_screen_customer',\n\t\t\timageSource: ,\n\t\t\taccessRoles: RouteRestrictions.Customers,\n\t\t\troute: Routes.Customers,\n\t\t},\n\t\t{\n\t\t\tname: 'home_screen_contracts',\n\t\t\timageSource: ,\n\t\t\taccessRoles: RouteRestrictions.Contracts,\n\t\t\troute: Routes.AdminContracts,\n\t\t},\n\t\tadmin\n\t\t\t? {\n\t\t\t\t\tname: 'menu_item_users_groups',\n\t\t\t\t\timageSource: ,\n\t\t\t\t\taccessRoles: RouteRestrictions.Entities,\n\t\t\t\t\troute: Routes.Entities,\n\t\t\t }\n\t\t\t: {\n\t\t\t\t\tname: 'home_screen_users',\n\t\t\t\t\timageSource: ,\n\t\t\t\t\taccessRoles: RouteRestrictions.Users,\n\t\t\t\t\troute: Routes.Users,\n\t\t\t },\n\t\t{\n\t\t\tname: 'home_screen_process_contracts',\n\t\t\timageSource: ,\n\t\t\taccessRoles: RouteRestrictions.ProcessContracts,\n\t\t\troute: Routes.ProcessContracts,\n\t\t},\n\t] as MenuItemData[];\n};\n\nexport const entitiesItems: MenuItemData[] = [\n\t{\n\t\tname: 'home_screen_users',\n\t\timageSource: ,\n\t\taccessRoles: RouteRestrictions.Users,\n\t\troute: Routes.Users,\n\t},\n\t{\n\t\tname: 'menu_item_group',\n\t\timageSource: ,\n\t\taccessRoles: RouteRestrictions.GroupOverview,\n\t\troute: Routes.GroupOverview,\n\t},\n];\n","import { Grid, makeStyles } from '@material-ui/core';\nimport React from 'react';\nimport { useWindowHeight } from '@react-hook/window-size';\n\nimport '../App.css';\nimport Avatar from '../components/Avatar';\nimport LanguageList from '../components/LanguageList';\nimport MenuItem from '../components/MenuItem';\nimport ReduceWorkTimeTracking from '../components/ReduceWorkTimeTracking';\nimport { menuItemsData } from '../consts/menuItems';\nimport { useWorkingTimeStateContext } from '../context/workingTime/useWorkingTime';\nimport { useGlobalStyles } from '../consts/globalStyles';\nimport background from '../assets/images/backgroud.png';\nimport IQRLogoBlack from '../svgComponents/IQRLogoBlack';\nimport { useAuthStateContext } from '../context/auth/useAuth';\nimport { UserRole } from '../service/types/User';\n\nfunction HomeScreen() {\n\tconst windowHeight = useWindowHeight();\n\tconst { user } = useAuthStateContext();\n\tconst classes = useStyles({ windowHeight: windowHeight });\n\tconst globalClasses = useGlobalStyles();\n\tconst { record } = useWorkingTimeStateContext();\n\n\treturn (\n\t\t\n\t\t\t
\n\t\t\t\t{'Background'}\n\t\t\t
\n\t\t\t\n\n\t\t\t\n\t\t\t\t{record ? (\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t) : null}\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t\t\n\t\t\t\t{menuItemsData(user?.role === UserRole.Administrator || user?.role === UserRole.Accounting).map(\n\t\t\t\t\t(item, index) => (\n\t\t\t\t\t\t\n\t\t\t\t\t)\n\t\t\t\t)}\n\t\t\t\n\t\t
\n\t);\n}\n\ninterface StyleProps {\n\twindowHeight: number;\n}\n\nconst useStyles = makeStyles(() => ({\n\tcontainerWrapper: (p: StyleProps) => ({\n\t\tminHeight: p.windowHeight,\n\t\toverflow: 'hidden',\n\t}),\n\tavatarWrapper: { position: 'absolute', top: '0', right: '0', display: 'flex' },\n\tcontentWrapper: { marginTop: 0 },\n\tlanguageWarpper: {\n\t\tmarginTop: '32px',\n\t\tmarginRight: '25px',\n\t},\n\trecordWrapper: {\n\t\tmarginTop: '10px',\n\t\tmarginRight: '15px',\n\t},\n\tbackgroundImage: {\n\t\twidth: '100%',\n\t},\n\tbackgroundImageWrapper: { position: 'absolute', top: 0, left: 0, right: 0, pointerEvents: 'none' },\n\tloginImage: {\n\t\theight: '100%',\n\t},\n\tloginImageWrapper: { position: 'absolute', top: 0, left: 0, bottom: 0, zIndex: -1 },\n}));\n\nexport default HomeScreen;\n","import React from 'react';\nimport { useAuthActionContext, useAuthStateContext } from '../context/auth/useAuth';\n\nimport HomeScreen from '../screens/HomeScreen';\nimport service from '../service/service';\n\ninterface Props {}\n\nfunction HomeContainer(props: Props) {\n\tconst { user } = useAuthStateContext();\n\tconst { setUser } = useAuthActionContext();\n\n\tReact.useEffect(() => {\n\t\tif (!user || user.firstName === '') {\n\t\t\tservice\n\t\t\t\t.getUserInfo()\n\t\t\t\t.then((user) => {\n\t\t\t\t\tif (user) setUser(user);\n\t\t\t\t})\n\t\t\t\t.catch(() => {});\n\t\t}\n\t}, [user, setUser]);\n\n\treturn ;\n}\n\nexport default HomeContainer;\n","import React from 'react';\nimport { Grid, makeStyles } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\n\nimport { colors } from '../consts/colors';\nimport BackArrow from '../svgComponents/BackArrow';\nimport StandardTextField from '../components/StandardTextField';\n\nimport { UserRole } from '../service/types/User';\nimport { useGlobalStyles } from '../consts/globalStyles';\nimport { useAuthStateContext } from '../context/auth/useAuth';\n\ninterface Props {\n\tonChangePasswordPress: () => void;\n}\n\nconst DEFAULT_QAI_PASSWORD = '****';\n\nfunction SettingsScreen(props: Props) {\n\tconst globalClasses = useGlobalStyles({});\n\tconst classes = useStyles({});\n\tconst { t } = useTranslation();\n\tconst { user } = useAuthStateContext();\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t\t\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t{t('account_settings_screen_title')}\n\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{user?.role === UserRole.QualityAssuranceInspector ? (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{t('account_settings_screen_change_pin')}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdisabled={true}\n\t\t\t\t\t\t\t\t\tvalue={DEFAULT_QAI_PASSWORD}\n\t\t\t\t\t\t\t\t\tlabel={t('account_settings_screen_pin')}\n\t\t\t\t\t\t\t\t\ttype=\"password\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{t('account_settings_screen_change_password')}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdisabled={true}\n\t\t\t\t\t\t\t\t\tvalue={'********'}\n\t\t\t\t\t\t\t\t\tlabel={t('account_settings_screen_password')}\n\t\t\t\t\t\t\t\t\ttype=\"password\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t{user?.role === UserRole.QualityAssuranceInspector ? (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t) : null}\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t);\n}\n\nconst useStyles = makeStyles(() => ({\n\ttitleWrapper: {\n\t\tmarginBottom: '36px',\n\t},\n\timageWrapper: {\n\t\tmarginRight: '25px',\n\t},\n\timage: {\n\t\twidth: '110px',\n\t\theight: '110px',\n\t\tborderRadius: '55px',\n\t\tbackgroundColor: colors.gray,\n\t},\n\trowWrapper: {\n\t\tdisplay: 'flex',\n\t\tmarginBottom: '52px',\n\t\talignItems: 'center',\n\t},\n}));\n\nexport default SettingsScreen;\n","import React from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { useAuthStateContext } from '../context/auth/useAuth';\nimport { goToChangePassword, goToHome } from '../helpers/navigationHelper';\n\nimport SettingsScreen from '../screens/SettingsScreen';\nimport service from '../service/service';\nimport { UserRole } from '../service/types/User';\n\nfunction SettingsContainer() {\n\tconst { user } = useAuthStateContext();\n\tconst history = useHistory();\n\n\tconst onChangePasswordPress = () => {\n\t\tif (user?.role !== UserRole.QualityAssuranceInspector) {\n\t\t\tgoToChangePassword(history);\n\t\t} else {\n\t\t\tservice\n\t\t\t\t.requestPasswordReset(user.email)\n\t\t\t\t.then(() => {\n\t\t\t\t\tgoToHome(history);\n\t\t\t\t})\n\t\t\t\t.catch(() => {});\n\t\t}\n\t};\n\n\treturn ;\n}\n\nexport default SettingsContainer;\n","import React from 'react';\nimport ClipLoader from 'react-spinners/ClipLoader';\nimport { makeStyles } from '@material-ui/core';\nimport { colors } from '../consts/colors';\nimport { useWindowSize } from '@react-hook/window-size';\n\ninterface Props {}\n\nfunction Spinner(props: Props) {\n\tconst [width, height] = useWindowSize();\n\tconst classes = useStyles({ width, height });\n\n\treturn (\n\t\t
\n\t\t\t\n\t\t
\n\t);\n}\n\ninterface StyleProps {\n\twidth: number;\n\theight: number;\n}\n\nconst useStyles = makeStyles(() => ({\n\twrapper: (p: StyleProps) => ({\n\t\tminWidth: p.width,\n\t\tminHeight: p.height,\n\t\tdisplay: 'flex',\n\t\tjustifyContent: 'center',\n\t\talignItems: 'center',\n\t}),\n}));\n\nexport default Spinner;\n","import React from 'react';\nimport { Control, Controller } from 'react-hook-form';\nimport StandardTextField from '../components/StandardTextField';\nimport { RulesInterface } from '../consts/rules';\n\ninterface Props {\n\tcontrol: Control>;\n\terrors: Record;\n\tisUserEditing: boolean;\n\tname: string;\n\trules: Partial;\n\tlabel: string;\n\tdisabled?: boolean;\n}\nfunction StandardTextFieldWithControler(props: Props) {\n\treturn (\n\t\t (\n\t\t\t\t\n\t\t\t)}\n\t\t/>\n\t);\n}\n\nexport default StandardTextFieldWithControler;\n","import React from 'react';\nimport { Grid } from '@material-ui/core';\nimport { Control } from 'react-hook-form';\nimport { AddressInterface } from '../service/types/Address';\nimport { useTranslation } from 'react-i18next';\nimport { rules } from '../consts/rules';\nimport StandardTextFieldWithControler from '../screens/StandardTextFieldWithContoler';\nimport { MIN_CUSTOMER_LENGTH } from '../containers/CustomerContainer';\nimport { MAX_PASSWORD_LENGTH } from '../consts/login';\n\ninterface Props {\n\tcontrol: Control>;\n\terrors: Record;\n\tisUserEditing: boolean;\n\tkeys: AddressInterface;\n\tdisabled?: boolean;\n}\n\nfunction AddressItem(props: Props) {\n\tconst { t } = useTranslation();\n\n\tconst localRules = React.useMemo(() => rules(t), [t]);\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t{props.keys.costCenter ? (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t) : null}\n\t\t\n\t);\n}\n\nexport default AddressItem;\n","import { makeStyles } from '@material-ui/core';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { fonts } from '../../consts/fonts';\n\ninterface Props {\n\tonClick: () => void;\n\tbuttonText: string;\n\tvalue: string;\n}\n\nfunction ButtonCell(props: Props) {\n\tconst classes = useStyles({ disabled: !props.value || props.value.length === 0 });\n\tconst { t } = useTranslation();\n\n\treturn (\n\t\t {\n\t\t\t\tif (props.value && props.value.length !== 0) {\n\t\t\t\t\tprops.onClick();\n\t\t\t\t}\n\t\t\t}}>\n\t\t\t{t(props.buttonText)}\n\t\t\n\t);\n}\n\ninterface StyleProps {\n\tdisabled: boolean;\n}\n\nconst useStyles = makeStyles(() => ({\n\twrapper: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t},\n\tbuttonText: (p: StyleProps) => ({\n\t\tfontSize: '12px',\n\t\tlineHeight: '16px',\n\t\tletterSpacing: '0.4px',\n\t\tfontFamily: fonts.semiBold,\n\t\tcolor: `rgba(26, 26, 26, ${p.disabled ? 0.2 : 1})`,\n\t}),\n\tbuttonWrapper: (p: StyleProps) => ({\n\t\tcursor: p.disabled ? 'default' : 'pointer',\n\t\tpadding: '4px 19px',\n\t\tmargin: '0px 10px',\n\t\tborderRadius: '4px',\n\t\tbackgroundColor: `rgba(255, 214, 0, ${p.disabled ? 0.2 : 1})`,\n\t\twidth: 'fit-content',\n\t}),\n}));\n\nexport default ButtonCell;\n","import { makeStyles } from '@material-ui/core';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { colors } from '../../consts/colors';\nimport { fonts } from '../../consts/fonts';\nimport { useGlobalStyles } from '../../consts/globalStyles';\nimport { ApprovedStatus } from '../../helpers/standardInputHelper/generalStandardInputHelper';\n\ninterface Props {\n\tonClick: () => void;\n\tbuttonText: string;\n\tvalue: string;\n}\n\nfunction ApproveCell(props: Props) {\n\tconst globalClasses = useGlobalStyles();\n\tconst classes = useStyles();\n\tconst { t } = useTranslation();\n\n\treturn (\n\t\t
\n\t\t\t{t(props.value)}\n\t\t\t{props.value === ApprovedStatus.NotApproved ? (\n\t\t\t\t
\n\t\t\t\t\t{t(props.buttonText)}\n\t\t\t\t
\n\t\t\t) : null}\n\t\t
\n\t);\n}\n\nconst useStyles = makeStyles(() => ({\n\twrapper: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tjustifyContent: 'space-between',\n\t},\n\tbuttonText: {\n\t\tfontSize: '12px',\n\t\tlineHeight: '16px',\n\t\tletterSpacing: '0.4px',\n\t\tfontFamily: fonts.semiBold,\n\t\tcolor: colors.white,\n\t},\n\tbuttonWrapper: {\n\t\tcursor: 'pointer',\n\t\tpadding: '4px 19px',\n\t\tmargin: '0px 20px',\n\t\tborderRadius: '4px',\n\t\tbackgroundColor: colors.darkGray,\n\t},\n}));\n\nexport default ApproveCell;\n","import { makeStyles } from '@material-ui/core';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { colors } from '../../consts/colors';\nimport { fonts } from '../../consts/fonts';\n\ninterface Props {\n\tvalue: string;\n\tonClick: () => void;\n}\n\nfunction LinkTypeCell(props: Props) {\n\tconst classes = useStyles();\n\tconst { t } = useTranslation();\n\n\treturn (\n\t\t\n\t\t\t{t('link_cell_text')}\n\t\t\n\t);\n}\n\nconst useStyles = makeStyles(() => ({\n\ttext: {\n\t\tfontFamily: fonts.regular,\n\t\tlineHeight: '20px',\n\t\tfontSize: '14px',\n\t\tcolor: colors.darkGray,\n\t\ttextDecoration: 'underline',\n\t\tcursor: 'pointer',\n\t},\n}));\n\nexport default LinkTypeCell;\n","import React from 'react';\nimport { Moment } from 'moment';\n\nimport { useGlobalStyles } from '../../consts/globalStyles';\nimport { useTranslation } from 'react-i18next';\nimport { colors } from '../../consts/colors';\nimport { makeStyles } from '@material-ui/core';\n\ninterface Props {\n\tvalue: string | Moment;\n\tsticky?: boolean;\n\tmarkTextAsRed?: boolean;\n}\n\nfunction TextTypeCell(props: Props) {\n\tconst globalClasses = useGlobalStyles({ description: props.sticky ? colors.white : colors.gray });\n\n\tconst classes = useStyles();\n\tconst { t } = useTranslation();\n\t//@ts-ignore\n\tconst value = props.value && props.value.format ? props.value.format('DD.MM.YYYY') : props.value;\n\treturn (\n\t\t\n\t\t\t{value && value.toString().split(':').length === 1 ? t(value.toString()) : value}\n\t\t\n\t);\n}\n\nconst useStyles = makeStyles(() => ({\n\tredCell: {\n\t\tcolor: colors.red,\n\t},\n}));\n\nexport default TextTypeCell;\n","import { isMoment } from 'moment';\nimport { Sort } from '../components/ContractList';\n\nexport enum SortingDir {\n\tASC = 'asc',\n\tDCS = 'dsc',\n}\n\ninterface Props {\n\tdata: any;\n\tsort: Sort;\n}\n\nexport const dataSorter = ({ data, sort }: Props) => {\n\tif (!sort.field) return data;\n\tconst sortedData = [...data].sort((a: any, b: any) => {\n\t\tif (!sort.field) return 0;\n\t\tif (a[sort.field] === undefined || b[sort.field] === undefined) return -1;\n\n\t\tif (typeof a[sort.field] === 'string') {\n\t\t\treturn a[sort.field].localeCompare(b[sort.field], 'de', {\n\t\t\t\tnumeric: true,\n\t\t\t\tsensitivity: 'base',\n\t\t\t});\n\t\t} else if (typeof a[sort.field] === 'number') {\n\t\t\treturn a[sort.field] - b[sort.field];\n\t\t} else if (isMoment(a[sort.field])) {\n\t\t\treturn b[sort.field] - a[sort.field];\n\t\t} else return a[sort.field].localeCompare(b[sort.field]);\n\t});\n\n\treturn sort.direction === SortingDir.ASC ? sortedData : sortedData.reverse();\n};\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { makeStyles } from '@material-ui/core';\n\nimport { Sort } from '../ContractList';\nimport { SortingDir } from '../../helpers/dataSorter';\nimport { useGlobalStyles } from '../../consts/globalStyles';\n\ninterface Props {\n\tdisplaySort?: boolean;\n\tfield?: string;\n\tsort?: Sort;\n\tvalue: string;\n\tsetSort?: React.Dispatch>;\n}\n\nfunction TitleTypeCell({ displaySort = false, field, sort, setSort, value }: Props) {\n\tconst globalClasses = useGlobalStyles();\n\tconst { t } = useTranslation();\n\tconst classes = useStyles({});\n\n\tconst handlePress = () => {\n\t\tsetSort &&\n\t\t\tsetSort((prev) => {\n\t\t\t\tif (prev.field !== field) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tfield,\n\t\t\t\t\t\tdirection: SortingDir.ASC,\n\t\t\t\t\t};\n\t\t\t\t} else {\n\t\t\t\t\tif (prev.direction === SortingDir.ASC)\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tfield,\n\t\t\t\t\t\t\tdirection: SortingDir.DCS,\n\t\t\t\t\t\t};\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tfield: undefined,\n\t\t\t\t\t\tdirection: undefined,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t});\n\t};\n\n\tif (field && sort && setSort && displaySort) {\n\t\treturn (\n\t\t\t\n\t\t);\n\t}\n\n\treturn {t(value)};\n}\n\ninterface ArrowProps {\n\tfield?: string;\n\tsort: Sort;\n}\n\nexport function ArrowSort({ field, sort }: ArrowProps) {\n\tif (field === sort.field) {\n\t\tif (sort.direction === SortingDir.ASC) return ;\n\t\telse return ;\n\t} else return ;\n}\n\nconst useStyles = makeStyles(() => ({\n\tbutton: {\n\t\tborder: 'none',\n\t\tbackgroundColor: 'transparent',\n\t\tcursor: 'pointer',\n\t},\n}));\n\nexport default TitleTypeCell;\n","import { makeStyles } from '@material-ui/core';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Link } from 'react-router-dom';\n\nimport { colors } from '../../consts/colors';\nimport { fonts } from '../../consts/fonts';\nimport { useGlobalStyles } from '../../consts/globalStyles';\n\ninterface Props {\n\tbuttonText: string;\n\tindex?: number;\n\tredirectTo?: string;\n\tvalue: string;\n\tonClick: () => void;\n}\n\nfunction WithButtonCell({ buttonText, index, redirectTo, value, onClick }: Props) {\n\tconst globalClasses = useGlobalStyles({ description: colors.white });\n\tconst classes = useStyles();\n\tconst { t } = useTranslation();\n\n\treturn (\n\t\t
\n\t\t\t{value}\n\t\t\t{index && redirectTo ? (\n\t\t\t\t\n\t\t\t\t\t{t(buttonText)}\n\t\t\t\t\n\t\t\t) : (\n\t\t\t\t
\n\t\t\t\t\t{t(buttonText)}\n\t\t\t\t
\n\t\t\t)}\n\t\t
\n\t);\n}\n\nconst useStyles = makeStyles(() => ({\n\twrapper: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tjustifyContent: 'space-between',\n\t},\n\tbuttonText: {\n\t\tfontSize: '12px',\n\t\tlineHeight: '16px',\n\t\tletterSpacing: '0.4px',\n\t\tfontFamily: fonts.semiBold,\n\t\tcolor: colors.lightDarkGray,\n\t},\n\tbuttonWrapper: {\n\t\tcursor: 'pointer',\n\t\tpadding: '4px 19px',\n\t\tmargin: '0px 20px',\n\t\tborderRadius: '4px',\n\t\tbackgroundColor: colors.yellow,\n\t},\n}));\n\nexport default WithButtonCell;\n","import * as React from 'react';\n\nfunction Dots(props: any) {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n\nexport default Dots;\n","import React from 'react';\nimport { Moment } from 'moment';\nimport { makeStyles } from '@material-ui/core';\nimport Dots from '../../svgComponents/Dots';\nimport { colors } from '../../consts/colors';\nimport { fonts } from '../../consts/fonts';\n\ninterface Props {\n\tvalue: string | Moment;\n}\n\nfunction ExpandableCell(props: Props) {\n\tconst [isExpanded, setIsExpanded] = React.useState(true);\n\tconst [overflow, setOverflow] = React.useState(false);\n\tconst spanRef = React.useRef(null);\n\n\tconst classes = useStyles({ isExpanded });\n\n\tReact.useEffect(() => {\n\t\tif (spanRef.current && 0 > 24 - spanRef.current?.offsetHeight) {\n\t\t\tsetOverflow(true);\n\t\t\tsetIsExpanded(false);\n\t\t}\n\t}, []);\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t{props.value}\n\t\t\t\t\n\t\t\t
\n\t\t\t{overflow ? (\n\t\t\t\t {\n\t\t\t\t\t\tsetIsExpanded(!isExpanded);\n\t\t\t\t\t}}>\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t) : null}\n\t\t\n\t);\n}\n\ninterface StyleProps {\n\tisExpanded: boolean;\n}\n\nconst useStyles = makeStyles(() => ({\n\trow: {\n\t\tdisplay: 'flex',\n\t\tjustifyContent: 'space-between',\n\t\talignItems: 'center',\n\t},\n\tdots: {\n\t\tmarginLeft: '2px',\n\t},\n\tdotsWrapper: {\n\t\tdisplay: 'flex',\n\t\theight: '20px',\n\t\talignItems: 'center',\n\t\tcursor: 'pointer',\n\t},\n\tdescription: {\n\t\tcolor: colors.darkGray,\n\t\tfontSize: '16px',\n\t\tlineHeight: '24px',\n\t\tfontFamily: fonts.regular,\n\t},\n\tdescriptionWarapper: (p: StyleProps) => ({\n\t\twhiteSpace: p.isExpanded ? 'normal' : 'pre',\n\t\ttextOverflow: 'ellipsis',\n\t\toverflow: 'hidden',\n\t}),\n}));\n\nexport default ExpandableCell;\n","import * as React from 'react';\n\nfunction DropdownIcon(props: any) {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n\nexport default DropdownIcon;\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { makeStyles, Menu, MenuItem } from '@material-ui/core';\n\nimport { fonts } from '../../consts/fonts';\nimport { colors } from '../../consts/colors';\nimport { TableCellWithCss } from './StandardTableCell';\nimport DropdownIcon from '../../svgComponents/DropdownIcon';\nimport { useGlobalStyles } from '../../consts/globalStyles';\nimport { KeyValue } from '../../helpers/userHelper/generalUserHelper';\nimport { Sort } from '../ContractList';\nimport { SortingDir } from '../../helpers/dataSorter';\nimport { ArrowSort } from './TitleTypeCell';\n\ninterface Props {\n\tvalue: string;\n\trestProps?: {\n\t\tfilter: any;\n\t\tfilterKey: string;\n\t\tfilterOptions: KeyValue[];\n\t\tonFilterChange: (key: string, value: any) => void;\n\t};\n\t[key: string]: any;\n\tsort?: Sort;\n\tsetSort?: React.Dispatch>;\n}\n\nfunction WithDropdownCellType(props: Props) {\n\tconst [isOpen, setIsOpen] = React.useState(false);\n\tconst anchorRef = React.useRef(null);\n\n\tconst globalClasses = useGlobalStyles({ isTableTitleOpen: isOpen });\n\tconst classes = useStyles({ isOpen: isOpen });\n\tconst { t } = useTranslation();\n\n\tconst onClick = () => setIsOpen((prev) => !prev);\n\n\tconst handlePress = () => {\n\t\tprops.setSort &&\n\t\t\tprops.setSort((prev) => {\n\t\t\t\tif (prev.field !== props.restProps?.filterKey) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tfield: props.restProps?.filterKey,\n\t\t\t\t\t\tdirection: SortingDir.ASC,\n\t\t\t\t\t};\n\t\t\t\t} else {\n\t\t\t\t\tif (prev.direction === SortingDir.ASC)\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tfield: props.restProps?.filterKey,\n\t\t\t\t\t\t\tdirection: SortingDir.DCS,\n\t\t\t\t\t\t};\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tfield: undefined,\n\t\t\t\t\t\tdirection: undefined,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t});\n\t};\n\n\treturn (\n\t\t\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t{t(props.value)}\n\t\t\t\t\t\n\t\t\t\t\t{props.restProps?.filterKey && props.sort && props.setSort && (\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t{props.restProps!.filterOptions.map((item) => (\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tprops.restProps?.onFilterChange(props.restProps?.filterKey, item.value);\n\t\t\t\t\t\t\t\tonClick();\n\t\t\t\t\t\t\t}}>\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{t(item.key)}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t))}\n\t\t\t\t\n\t\t\t
\n\t\t\n\t);\n}\n\ninterface StyleProps {\n\tisOpen: boolean;\n}\n\nconst useStyles = makeStyles(() => ({\n\tbutton: {\n\t\tborder: 'none',\n\t\tbackgroundColor: 'transparent',\n\t\tcursor: 'pointer',\n\t},\n\tcontentWrapper: {\n\t\tpadding: '0px 16px 0px 0px',\n\t},\n\trotate: (p: StyleProps) => ({\n\t\ttransform: p.isOpen ? 'rotate(180deg)' : 'rotate(0deg)',\n\t\ttransition: 'all 0.5s',\n\t\tmarginLeft: '5px',\n\t}),\n\twrapper: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t},\n\tinput: {\n\t\tmargin: 0,\n\t\tcolor: colors.gray,\n\t\tfontSize: '16px',\n\t\tlineHeight: '24px',\n\t\tfontFamily: fonts.regular,\n\t\twhiteSpace: 'pre-wrap',\n\t},\n\tinputWrapper: {\n\t\tminHeight: '20px',\n\t\ttransform: 'translateY(-2px)',\n\t},\n\tdropdownContainer: {\n\t\tborderRadius: '0px',\n\t\tboxShadow: 'none',\n\t\tborder: `1px solid ${colors.borderColor}`,\n\t\tborderTopWidth: '0px',\n\t},\n\tmenuList: {\n\t\tpadding: '0',\n\t},\n}));\n\nexport default WithDropdownCellType;\n","import React from 'react';\nimport { createStyles, TableCell, withStyles } from '@material-ui/core';\n\nimport ButtonCell from './ButtonCell';\nimport { Sort } from '../ContractList';\nimport ApproveCell from './ApproveCell';\nimport LinkTypeCell from './LinkTypeCell';\nimport TextTypeCell from './TextTypeCell';\nimport TitleTypeCell from './TitleTypeCell';\nimport { Routes } from '../../router/Routes';\nimport WithButtonCell from './WithButtonCell';\nimport ExpandableCell from './ExpandableCell';\nimport WithDropdownCellType from './WithDropdownTitleCell';\nimport { KeyValue } from '../../helpers/userHelper/generalUserHelper';\n\nexport enum TableCellType {\n\tTitle,\n\tText,\n\tTitleWithDropdown,\n\tLink,\n\tSticky,\n\tButton,\n\tExpandable,\n\tApprove,\n\tDate,\n}\n\nexport const TableCellWithCss = withStyles(() =>\n\tcreateStyles({\n\t\thead: {\n\t\t\tlineHeight: '1rem',\n\t\t},\n\t\tbody: {\n\t\t\tborderBottom: '1px solid rgba(199,199,199, 0.5)',\n\t\t},\n\t})\n)(TableCell);\n\ninterface Props {\n\tclassName: string;\n\tdisplaySort?: boolean;\n\tkey: string;\n\trestProps: {\n\t\ttype: TableCellType;\n\t\tsticky?: boolean;\n\t\tfilter?: any;\n\t\tfilterOptions?: KeyValue[];\n\t\tbuttonText?: string;\n\t\tfilterKey?: string;\n\t\tindex?: number;\n\t\tredirectTo?: Routes;\n\t\tonButtonClick?: () => void;\n\t\tonLinkClick?: () => void;\n\t\tonFilterChange?: (key: string, value: any) => void;\n\t\tmarkTextAsRed?: boolean;\n\t};\n\tstyle: any;\n\tsort?: Sort;\n\tsetSort?: React.Dispatch>;\n\tvalue: any;\n}\n\nfunction getTableCell(props: Props) {\n\tswitch (props.restProps!.type) {\n\t\tcase TableCellType.Title:\n\t\t\treturn (\n\t\t\t\t\n\t\t\t);\n\t\tcase TableCellType.Sticky:\n\t\t\treturn (\n\t\t\t\t\n\t\t\t);\n\t\tcase TableCellType.Approve:\n\t\t\treturn (\n\t\t\t\t\n\t\t\t);\n\t\tcase TableCellType.Button:\n\t\t\treturn (\n\t\t\t\t\n\t\t\t);\n\t\tcase TableCellType.Text:\n\t\t\treturn (\n\t\t\t\t\n\t\t\t);\n\t\tcase TableCellType.Date:\n\t\t\treturn ;\n\t\tcase TableCellType.Expandable:\n\t\t\treturn ;\n\t\tcase TableCellType.Link:\n\t\t\treturn ;\n\t\tcase TableCellType.TitleWithDropdown:\n\t\t\treturn (\n\t\t\t\t\n\t\t\t);\n\t\tdefault:\n\t\t\t
;\n\t}\n}\n\nfunction StandardTableCell(props: Props) {\n\tconst cell = getTableCell(props);\n\n\tif (props.restProps.type === TableCellType.TitleWithDropdown) {\n\t\treturn <>{cell};\n\t}\n\n\treturn (\n\t\t {}}>\n\t\t\t{cell}\n\t\t\n\t);\n}\n\nexport default StandardTableCell;\n","import { TableCellType } from '../components/table/StandardTableCell';\nimport { UserTableInterface } from '../service/types/User';\n\nexport interface ContactPersonListInterface extends UserTableInterface {\n\temail: any;\n\tphonenumber: any;\n}\n\nexport const contactPersonListParams: ContactPersonListInterface = {\n\t//@ts-ignore\n\tnumber: {\n\t\ttitle: '#',\n\t\twidth: '7.27%',\n\t\ttype: TableCellType.Text,\n\t\ttitleType: TableCellType.Title,\n\t\tsticky: true,\n\t},\n\tfirstName: {\n\t\ttitle: 'user_overview_screen_first_name',\n\t\twidth: '21.36%',\n\t\ttype: TableCellType.Text,\n\t\ttitleType: TableCellType.Title,\n\t},\n\tlastName: {\n\t\ttype: TableCellType.Text,\n\t\ttitleType: TableCellType.Title,\n\t\ttitle: 'user_overview_screen_last_name',\n\t\twidth: '21.36%',\n\t},\n\tphonenumber: {\n\t\ttitle: 'customer_screen_phone_number',\n\t\twidth: '20.45%',\n\t\ttype: TableCellType.Text,\n\t\ttitleType: TableCellType.Title,\n\t},\n\temail: {\n\t\ttitle: 'customer_screen_email_address',\n\t\twidth: '20.45%',\n\t\ttype: TableCellType.Text,\n\t\ttitleType: TableCellType.Title,\n\t},\n\t//@ts-ignore\n\tedit: {\n\t\ttitle: '',\n\t\twidth: '9.1%',\n\t\ttype: TableCellType.Link,\n\t\ttitleType: TableCellType.Title,\n\t},\n};\n","import { makeStyles, Table, TableBody, TableContainer, TableHead, TableRow } from '@material-ui/core';\nimport React from 'react';\nimport ReactList from 'react-list';\n\nimport { colors } from '../consts/colors';\nimport { useGlobalStyles } from '../consts/globalStyles';\nimport { KeyValue } from '../helpers/userHelper/generalUserHelper';\nimport { Routes } from '../router/Routes';\nimport { Sort } from './ContractList';\nimport StandardTableCell from './table/StandardTableCell';\n\ninterface Props {\n\tdata: { id: number; [key: string]: any }[];\n\tdataTablePramas: any;\n\tdisplaySort?: boolean;\n\ttableKey: string;\n\tfilters?: any;\n\tfiltersOptions?: { [key: string]: KeyValue[] };\n\tonClickItemId?: (id: number) => void;\n\tbuttonText?: string;\n\tbuttonProps?: {\n\t\t[key: string]: {\n\t\t\ttext: string;\n\t\t\tonClick: (params: any) => void;\n\t\t};\n\t};\n\tmargin?: string;\n\tmaxHeight?: string;\n\tredirectTo?: Routes;\n\tsort?: Sort;\n\tsetSort?: React.Dispatch>;\n\tonLinkClick?: (params: any) => void;\n\tonFilterChange?: (key: any, value: any) => void;\n\tmarkTextAsRedFn?: (key: string, value: any) => boolean;\n}\n\nfunction CustomTableBody({\n\tdata,\n\tdataTablePramas,\n\tdisplaySort,\n\ttableKey,\n\tfilters,\n\tfiltersOptions,\n\tbuttonProps,\n\tbuttonText,\n\tonClickItemId,\n\tmargin,\n\tmaxHeight,\n\tredirectTo,\n\tsort,\n\tsetSort,\n\tonLinkClick,\n\tonFilterChange,\n\tmarkTextAsRedFn,\n}: Props) {\n\tconst classes = useStyles({ margin: margin, maxHeight: maxHeight });\n\tconst globalClasses = useGlobalStyles({});\n\tconst keys = React.useMemo(() => Object.keys(dataTablePramas), [dataTablePramas]);\n\n\tconst header = keys.map((key: any) => (\n\t\t\n\t));\n\n\tconst items = React.useMemo(() => {\n\t\treturn data.map((item, index) => (\n\t\t\t\n\t\t\t\t{keys.map((key) => {\n\t\t\t\t\tconst itemClass =\n\t\t\t\t\t\tindex % 2 === 0\n\t\t\t\t\t\t\t? dataTablePramas[key].sticky\n\t\t\t\t\t\t\t\t? classes.stickyItemWrapper\n\t\t\t\t\t\t\t\t: classes.itemWrapper\n\t\t\t\t\t\t\t: dataTablePramas[key].sticky\n\t\t\t\t\t\t\t? classes.stickyItemWrapperInverse\n\t\t\t\t\t\t\t: classes.itemWrapperInverse;\n\t\t\t\t\treturn (\n\t\t\t\t\t\t (onLinkClick ? onLinkClick(item) : {}),\n\t\t\t\t\t\t\t\tbuttonText: buttonText ? buttonText : buttonProps ? buttonProps[key]?.text : '',\n\t\t\t\t\t\t\t\tonButtonClick: () =>\n\t\t\t\t\t\t\t\t\tonClickItemId\n\t\t\t\t\t\t\t\t\t\t? onClickItemId(item.id)\n\t\t\t\t\t\t\t\t\t\t: buttonProps\n\t\t\t\t\t\t\t\t\t\t? buttonProps[key]?.onClick(index)\n\t\t\t\t\t\t\t\t\t\t: {},\n\t\t\t\t\t\t\t\tindex: item.id,\n\t\t\t\t\t\t\t\tredirectTo: redirectTo,\n\t\t\t\t\t\t\t\tmarkTextAsRed: markTextAsRedFn ? markTextAsRedFn(key, item[key]) : undefined,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t\n\t\t));\n\t}, [\n\t\tdata,\n\t\ttableKey,\n\t\tkeys,\n\t\tdataTablePramas,\n\t\tclasses.stickyItemWrapper,\n\t\tclasses.itemWrapper,\n\t\tclasses.stickyItemWrapperInverse,\n\t\tclasses.itemWrapperInverse,\n\t\tbuttonText,\n\t\tbuttonProps,\n\t\tredirectTo,\n\t\tmarkTextAsRedFn,\n\t\tonLinkClick,\n\t\tonClickItemId,\n\t]);\n\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{header}\n\t\t\t\t\t\n\t\t\t\t\t {items}}\n\t\t\t\t\t\titemRenderer={(index) => items[index]}\n\t\t\t\t\t/>\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t);\n}\n\nconst itemWrapper = {\n\tpadding: '14px 16px',\n\toverflow: 'hidden',\n\tleft: '0px',\n};\n\ninterface StyleProps {\n\tmargin?: string;\n\tmaxHeight?: string;\n}\n\nconst useStyles = makeStyles(() => ({\n\tcontainer: (p: StyleProps) => ({\n\t\tmargin: p.margin ? p.margin : '48px 0px',\n\t\toverflow: 'auto',\n\t}),\n\tfixed: {\n\t\ttableLayout: 'fixed',\n\t\tborderCollapse: 'separate',\n\t},\n\tstickyItemWrapper: {\n\t\t...itemWrapper,\n\t\tbackgroundColor: colors.darkGray,\n\t\tposition: 'sticky',\n\t},\n\tstickyItemWrapperInverse: {\n\t\t...itemWrapper,\n\t\tbackgroundColor: colors.lightDarkGray,\n\t\tposition: 'sticky',\n\t},\n\titemWrapper: {\n\t\t...itemWrapper,\n\t\tbackgroundColor: colors.white,\n\t},\n\titemWrapperInverse: {\n\t\t...itemWrapper,\n\t\tbackgroundColor: 'rgba(228,228,228, 0.5)',\n\t},\n\ttableContainer: (p: StyleProps) => ({\n\t\tmaxHeight: p.maxHeight ? p.maxHeight : '500px',\n\t}),\n}));\n\nexport default CustomTableBody;\n","import React from 'react';\nimport { contactPersonListParams } from '../consts/contactPerson';\nimport User from '../service/types/User';\nimport CustomTableBody from './CustomTableBody';\n\ninterface Props {\n\tcontactPersons: User[];\n\tonEditPress: (user: User) => void;\n}\n\nfunction ContactPersonList(props: Props) {\n\tconst transformedContactPersons = React.useMemo(() => {\n\t\treturn props.contactPersons.map((contactPerson, index) => ({ ...contactPerson, number: index + 1 }));\n\t}, [props.contactPersons]);\n\n\treturn (\n\t\t\n\t);\n}\n\nexport default ContactPersonList;\n","import { makeStyles } from '@material-ui/core';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { useGlobalStyles } from '../consts/globalStyles';\nimport { useAuthStateContext } from '../context/auth/useAuth';\nimport { UserRole } from '../service/types/User';\nimport Button from './Button';\nimport StandardDialog, { StandardDialogInterface } from './StandardDialog';\n\ninterface Props {\n\tdata: any | undefined;\n\tisUserEditing: boolean;\n\teditButtonText: string;\n\tupdateButtonText: string;\n\tcreateButtonText: string;\n\tcreateStartNewButtonText?: string;\n\tchildrenElement?: JSX.Element;\n\tcancelButtonText: string;\n\tdeleteButtonText: string;\n\tcanDelete?: boolean;\n\tonSubmitPress: () => void;\n\tonSubmitStartNewPress?: () => void;\n\tonCancelPress: () => void;\n\tonDeletePress: () => void;\n\tremoveEditUpdateCreateBtn?: boolean;\n}\n\nfunction StandardCRUDButtons({\n\tdata,\n\tisUserEditing,\n\teditButtonText,\n\tupdateButtonText,\n\tcreateButtonText,\n\tcreateStartNewButtonText,\n\tcancelButtonText,\n\tdeleteButtonText,\n\tcanDelete,\n\tchildrenElement,\n\tremoveEditUpdateCreateBtn,\n\tonSubmitPress,\n\tonSubmitStartNewPress,\n\tonCancelPress,\n\tonDeletePress,\n}: Props) {\n\tconst { t } = useTranslation();\n\tconst globalClasses = useGlobalStyles();\n\tconst { user } = useAuthStateContext();\n\tconst classes = useStyles();\n\tconst dialogRef = React.useRef(null);\n\n\tconst onAcceptDialog = () => {\n\t\tonCancelPress();\n\t\tdialogRef.current?.setDialogState(false);\n\t};\n\n\tconst onCancelDialog = () => dialogRef.current?.setDialogState(false);\n\n\tconst allowedToDelete = user?.role === UserRole.Administrator || canDelete || user?.role === UserRole.Accounting;\n\n\treturn (\n\t\t
\n\t\t\t{!removeEditUpdateCreateBtn ? (\n\t\t\t\t\n\t\t\t) : null}\n\n\t\t\t{!isUserEditing && childrenElement ? childrenElement : null}\n\n\t\t\t{isUserEditing ? (\n\t\t\t\t dialogRef.current?.setDialogState(true)}\n\t\t\t\t/>\n\t\t\t) : allowedToDelete ? (\n\t\t\t\t
\n\t\t\t\t\t{t(deleteButtonText)}\n\t\t\t\t
\n\t\t\t) : null}\n\n\t\t\t{createStartNewButtonText && onSubmitStartNewPress && isUserEditing && !data && (\n\t\t\t\t\n\t\t\t)}\n\n\t\t\t\n\t\t
\n\t);\n}\n\nconst useStyles = makeStyles(() => ({\n\trow: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t},\n}));\n\nexport default StandardCRUDButtons;\n","import * as React from 'react';\n\nfunction CheckedIcon(props: any) {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n\nexport default CheckedIcon;\n","import * as React from 'react';\n\nfunction UncheckedIcon(props: any) {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n\nexport default UncheckedIcon;\n","import { makeStyles } from '@material-ui/core';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useGlobalStyles } from '../consts/globalStyles';\nimport CheckedIcon from '../svgComponents/CheckedIcon';\nimport UncheckedIcon from '../svgComponents/UncheckedIcon';\n\ninterface Props {\n\tradioButtonValue: any;\n\tvalue: any;\n\tlabel: string;\n\tdisabled: boolean;\n\tonChange: (value: any) => void;\n}\n\nfunction StandardRadioButton(props: Props) {\n\tconst classes = useStyles({ disabled: props.disabled });\n\tconst { t } = useTranslation();\n\tconst globalClasses = useGlobalStyles();\n\tconst isChecked = React.useMemo(() => props.radioButtonValue === props.value, [\n\t\tprops.value,\n\t\tprops.radioButtonValue,\n\t]);\n\n\treturn (\n\t\t {\n\t\t\t\tif (!props.disabled) props.onChange(props.radioButtonValue);\n\t\t\t}}>\n\t\t\t{isChecked ? (\n\t\t\t\t\n\t\t\t) : (\n\t\t\t\t\n\t\t\t)}\n\t\t\t
\n\t\t\t\t{t(props.label)}\n\t\t\t
\n\t\t\n\t);\n}\n\ninterface StyleProps {\n\tdisabled: boolean;\n}\n\nconst useStyles = makeStyles(() => ({\n\tcontainer: (p: StyleProps) => ({\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tcursor: p.disabled ? 'default' : 'pointer',\n\t\tpaddingRight: '40px',\n\t}),\n\ttextWrapper: {\n\t\tpaddingLeft: '10px',\n\t},\n}));\n\nexport default StandardRadioButton;\n","import { customerFields } from '../../containers/CustomerContainer';\nimport Customer from '../../service/types/Customer';\nimport { History, LocationState } from 'history';\nimport { KeyValue } from '../userHelper/generalUserHelper';\nimport service from '../../service/service';\nimport { goToHome } from '../navigationHelper';\nimport { RouteParams } from '../../router/Routes';\nimport Address, { AddressInterface } from '../../service/types/Address';\nimport { AddressKeys } from './createCustomerHelper';\n\nexport function setCustomerInfo(customer: Customer, setValue: (field: string, val: any) => void) {\n\tsetValue(customerFields.name, customer.name);\n}\n\nexport function setAddressInfo(keys: AddressInterface, address: Address, setValue: (field: string, val: any) => void) {\n\tObject.keys(keys).forEach((key) => {\n\t\t//@ts-ignore\n\t\tif (keys[key]) setValue(keys[key], address[key]);\n\t});\n}\n\nexport function onCustomerScreenMount(\n\thistory: History,\n\trouteParams: RouteParams,\n\tsetCustomer: (customer: Customer | undefined) => void,\n\tsetIsUserEditing: (val: boolean) => void,\n\tsetMounted: (val: boolean) => void\n) {\n\tif (routeParams.customer_id) {\n\t\tservice\n\t\t\t.getCustomerByID(Number(routeParams.customer_id))\n\t\t\t.then((res) => {\n\t\t\t\tif (res) {\n\t\t\t\t\tsetCustomer({ ...res, id: Number(routeParams.customer_id) });\n\t\t\t\t\tsetMounted(true);\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch((e) => {\n\t\t\t\tgoToHome(history);\n\t\t\t});\n\t} else {\n\t\tsetIsUserEditing(true);\n\t\tsetMounted(true);\n\t\tsetCustomer(undefined);\n\t}\n}\n\nexport async function getCustomerOptionsKeyValuePairs(\n\tdata: Promise,\n\tsetLoading: (val: boolean) => void\n): Promise {\n\tsetLoading(true);\n\tconst users = await data.catch((e) => {\n\t\tsetLoading(false);\n\t});\n\n\tsetLoading(false);\n\tif (users)\n\t\treturn users.map((customer) => ({\n\t\t\tvalue: customer,\n\t\t\tkey: customer.name,\n\t\t}));\n\treturn [];\n}\n\nexport function watchFields(key: AddressKeys, watch: (name: string) => any): AddressInterface {\n\treturn {\n\t\tpostcode: watch(customerFields[key].postcode.toString()),\n\t\tcountry: watch(customerFields[key].country),\n\t\tcity: watch(customerFields[key].city),\n\t\thouseNumber: watch(customerFields[key].houseNumber),\n\t\tstreet: watch(customerFields[key].street),\n\t\tcostCenter: watch(customerFields[key].costCenter ? customerFields[key].costCenter! : ''),\n\t};\n}\n\nexport function transformFields(data: AddressInterface) {\n\tlet formatedAddress = '';\n\tconst street = data.street ? data.street.trim() + ' ' : '';\n\tconst houseNumber = data.houseNumber ? data.houseNumber : '';\n\tformatedAddress = street + houseNumber.trim();\n\tconst postcode = data.postcode ? (formatedAddress ? ', ' : '') + data.postcode.toString().trim() + ' ' : '';\n\tconst city = data.city ? (formatedAddress ? ', ' : '') + data.city : '';\n\tformatedAddress = formatedAddress + postcode + city.trim();\n\tconst country = data.country ? (formatedAddress ? ', ' : '') + data.country + ' ' : '';\n\tformatedAddress = formatedAddress + country.trim();\n\tconst costCenter = data.costCenter ? (formatedAddress ? ', ' : '') + data.costCenter : '';\n\n\treturn formatedAddress + costCenter.trim();\n}\n","import * as React from 'react';\n\nfunction Plus(props: any) {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n\nexport default Plus;\n","import React from 'react';\n\nexport default function Arrow() {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { makeStyles } from '@material-ui/core';\nimport { Link, useHistory } from 'react-router-dom';\n\nimport Arrow from '../assets/images/svgs/Arrow';\nimport StandardDialog, { StandardDialogInterface } from '../components/StandardDialog';\n\ninterface Props {\n\troute: string;\n\tonBackArrowPress?: () => void;\n\tedit?: boolean;\n}\n\nfunction GoBack({ edit, route, onBackArrowPress }: Props) {\n\tconst history = useHistory();\n\tconst classes = useStyles({});\n\tconst dialogRef = React.useRef(null);\n\tconst { t } = useTranslation();\n\n\tconst onBackPress =\n\t\t//@ts-ignore\n\t\t(event: MouseEvent) => {\n\t\t\tif (onBackArrowPress) onBackArrowPress();\n\t\t\telse if (edit) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tdialogRef.current?.setDialogState(true);\n\t\t\t}\n\t\t};\n\n\tconst onAcceptDialog = () => history.goBack();\n\tconst onCancelDialog = () => dialogRef.current?.setDialogState(false);\n\n\treturn (\n\t\t
\n\t\t\t onBackPress(event)}>\n\t\t\t\t\n\t\t\t\n\n\t\t\t\n\t\t
\n\t);\n}\n\nconst useStyles = makeStyles(() => ({\n\tcontainer: {\n\t\tcursor: 'pointer',\n\t},\n}));\n\nexport default GoBack;\n","import * as React from 'react';\n\nfunction DeleteIcon(props: any) {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n\nexport default DeleteIcon;\n","import React from 'react';\n\nexport default function Home() {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n","export const testIDs = {\n\tSTANDARD_DIALOGUE: 'standard-dialogue',\n\tHOME_BUTTON: 'home-button',\n};\n","import { makeStyles } from '@material-ui/core';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Link, useHistory } from 'react-router-dom';\n\nimport Home from '../assets/images/svgs/Home';\nimport ReduceWorkTimeTracking from '../components/ReduceWorkTimeTracking';\nimport StandardDialog, { StandardDialogInterface } from '../components/StandardDialog';\nimport { testIDs } from '../consts/testIDs';\nimport { useWorkingTimeStateContext } from '../context/workingTime/useWorkingTime';\nimport { goToHome } from '../helpers/navigationHelper';\nimport { Routes } from '../router/Routes';\n\ninterface Props {\n\tcontractID?: number;\n\tcontractNumber?: string;\n\tworkingTimeScreen?: boolean;\n\tedit?: boolean;\n}\n\nfunction HomeButton({ contractID, contractNumber, workingTimeScreen, edit }: Props) {\n\tconst history = useHistory();\n\tconst classes = useStyles({});\n\tconst { record } = useWorkingTimeStateContext();\n\tconst dialogRef = React.useRef(null);\n\tconst { t } = useTranslation();\n\n\tconst onHomePress =\n\t\t//@ts-ignore\n\t\t(event: MouseEvent) => {\n\t\t\tif (edit) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tdialogRef.current?.setDialogState(true);\n\t\t\t}\n\t\t};\n\n\tconst onAcceptDialog = () => goToHome(history);\n\tconst onCancelDialog = () => dialogRef.current?.setDialogState(false);\n\n\treturn (\n\t\t
\n\t\t\t{(workingTimeScreen && record?.contractID && contractID === record.contractID) ||\n\t\t\t(workingTimeScreen && !record) ? null : (\n\t\t\t\t\n\t\t\t)}\n\n\t\t\t onHomePress(event)}>\n\t\t\t\t\n\t\t\t\n\n\t\t\t\n\t\t
\n\t);\n}\n\nconst useStyles = makeStyles(() => ({\n\tcontainer: {\n\t\tcursor: 'pointer',\n\t},\n\twrapper: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t},\n}));\n\nexport default HomeButton;\n","import React, { useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Control, Controller } from 'react-hook-form';\nimport { Grid, IconButton, makeStyles } from '@material-ui/core';\n\nimport AddressItem from '../components/AddressItem';\nimport ContactPersonList from '../components/ContactPersonList';\nimport StandardCRUDButtons from '../components/StandardCRUDButtons';\nimport StandardRadioButton from '../components/StandardRadioButton';\nimport StandardTextField from '../components/StandardTextField';\nimport { MIN_CUSTOMER_LENGTH, customerFields } from '../containers/CustomerContainer';\nimport StandardDialog, { StandardDialogInterface } from '../components/StandardDialog';\n\nimport { rules } from '../consts/rules';\nimport { fonts } from '../consts/fonts';\nimport User from '../service/types/User';\nimport { colors } from '../consts/colors';\nimport { Routes } from '../router/Routes';\nimport Customer from '../service/types/Customer';\nimport { MAX_PASSWORD_LENGTH } from '../consts/login';\nimport { useGlobalStyles } from '../consts/globalStyles';\nimport { AddressInterface } from '../service/types/Address';\nimport { transformFields } from '../helpers/customerHelper/readCustomerHelper';\n\nimport Plus from '../svgComponents/Plus';\nimport GoBack from '../svgComponents/GoBack';\nimport DeleteIcon from '../svgComponents/DeleteIcon';\nimport HomeButton from '../svgComponents/HomeButton';\n\ninterface Props {\n\tcustomer: Customer | undefined;\n\tcontrol: Control>;\n\terrors: Record;\n\tisUserEditing: boolean;\n\tdeleteDialogRef: React.MutableRefObject;\n\tformDirty: boolean;\n\tbillingAddressWatch: AddressInterface;\n\tdeliveryAddressWatch: AddressInterface;\n\tsameAddress: boolean;\n\tonEditContactPerson: (user: User) => void;\n\tonSubmitPress: () => void;\n\tonCancelPress: () => void;\n\tonDeletePress: () => void;\n\tonCancelDeleteDialogPress: () => void;\n\tonDeleteCustomerDialogPress: () => void;\n\temailFields: any;\n\tappendEmailFields: any;\n\tremoveEmailFields: any;\n\tsetValue: any;\n}\nfunction CustomerScreen(props: Props) {\n\tconst classes = useStyles({ disabled: !props.isUserEditing });\n\tconst { t } = useTranslation();\n\tconst globalClasses = useGlobalStyles({ description: colors.lightGray });\n\n\tconst billingAddress = useMemo(\n\t\t() =>\n\t\t\tprops.isUserEditing ? transformFields(props.billingAddressWatch) : props.customer?.billingAddressGenerated,\n\t\t[props.billingAddressWatch, props.isUserEditing, props.customer]\n\t);\n\tconst deliveryAddress = useMemo(\n\t\t() =>\n\t\t\tprops.isUserEditing\n\t\t\t\t? transformFields(props.deliveryAddressWatch)\n\t\t\t\t: props.customer?.deliveryAddressGenerated,\n\t\t[props.deliveryAddressWatch, props.isUserEditing, props.customer]\n\t);\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t{props.customer ? `${props.customer.name}` : t('customer_screen_title')}\n\t\t\t\t\n\t\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\n\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\n\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\n\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t{t('customer_other_email').toUpperCase()}\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tprops?.appendEmailFields({ selectedValue: 'emails' });\n\t\t\t\t\t\t\t}}>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t{props?.emailFields.map((field: any, index: number) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t// make sure to set field.id to top mappped item\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tconst value = e.target.value;\n\n\t\t\t\t\t\t\t\t\t\tconst oldValues = [...props.emailFields];\n\t\t\t\t\t\t\t\t\t\tconst newValue = { ...(oldValues[index] as { value: string }[]) };\n\t\t\t\t\t\t\t\t\t\t// disable any type checking for this line\n\t\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t\t\tnewValue['value'] = value;\n\t\t\t\t\t\t\t\t\t\toldValues[index] = newValue;\n\t\t\t\t\t\t\t\t\t\tprops.setValue(customerFields.otherEmails, oldValues);\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tname={`${customerFields.otherEmails}[${index}].value`}\n\t\t\t\t\t\t\t\t\twrapper={classes.fullWidth}\n\t\t\t\t\t\t\t\t\tvalue={field.value} // make sure to include defaultValue\n\t\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tprops?.removeEmailFields(index);\n\t\t\t\t\t\t\t\t\t}}>\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t
\n\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\n\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t{t('customer_screen_address')}\n\t\t\t\t\t{props.isUserEditing ? (\n\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : null}\n\t\t\t\t
\n\t\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t {}}\n\t\t\t\t\t\tvalue={billingAddress}\n\t\t\t\t\t\tdisabled={true}\n\t\t\t\t\t\tfixed={true}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t {}}\n\t\t\t\t\t\tvalue={\n\t\t\t\t\t\t\tprops.sameAddress\n\t\t\t\t\t\t\t\t? `${billingAddress}${\n\t\t\t\t\t\t\t\t\t\tbillingAddress && props.deliveryAddressWatch.costCenter ? ', ' : ''\n\t\t\t\t\t\t\t\t }${props.deliveryAddressWatch.costCenter}`\n\t\t\t\t\t\t\t\t: deliveryAddress\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdisabled={true}\n\t\t\t\t\t\tfixed={true}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\n\t\t\t{props.isUserEditing ? (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t) : null}\n\t\t\t{props.customer ? (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{t('customer_screen_contact_info')}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t{props.customer.users.length === 0 ? (\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{t('customer_screen_table_add_new_contact')}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t) : null}\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t) : null}\n\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t\t\n\t\t
\n\t);\n}\n\nconst useStyles = makeStyles(() => ({\n\tfullWidth: {\n\t\tflex: 1,\n\t\twidth: '100%',\n\t},\n\ttitleWrapper: {\n\t\tmarginBottom: '24px',\n\t},\n\tnewPersonMessageWrapper: {\n\t\tmarginLeft: '24px',\n\t\tmarginTop: '8px',\n\t},\n\tsubtitleWrapper: {\n\t\tmargin: '28px 0px',\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tjustifyContent: 'space-between',\n\t},\n\ttextFieldWrapper: {\n\t\tmarginBottom: '32px',\n\t},\n\tcontactPerson: {\n\t\tfontSize: '16px',\n\t\tlineHeight: '24px',\n\t\tcolor: colors.darkGray,\n\t\tfontFamily: fonts.semiBold,\n\t},\n\tcontactPersonWrapper: {\n\t\tmarginBottom: '20px',\n\t},\n\trowWrapper: {\n\t\tdisplay: 'flex',\n\t\tmargin: '48px 0px',\n\t\talignItems: 'center',\n\t},\n\taddNewWrapper: {\n\t\tmarginLeft: '24px',\n\t},\n\trow: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\theight: '34px',\n\t\tpaddingLeft: '20px',\n\t},\n\taddressRow: {\n\t\tdisplay: 'flex',\n\t},\n}));\n\nexport default CustomerScreen;\n","import { Dispatch, SetStateAction } from 'react';\nimport { customerFields } from '../../containers/CustomerContainer';\nimport { Service } from '../../service/service';\nimport Address from '../../service/types/Address';\nimport Customer from '../../service/types/Customer';\nimport { NotificationInterface } from '../../context/notification/notificationReducer';\n\nexport type AddressKeys = 'billingAddress' | 'deliveryAddress';\n\nexport function createCustomer(\n\tdata: any,\n\tservice: Service,\n\tsetCustomer: (customer: Customer | undefined) => void,\n\temails: string[],\n\tsetIsUserEditing: Dispatch>,\n\tsetNotification: (notification: NotificationInterface) => void\n) {\n\tconst newCustomerWithoutID = getCustomerWithoutContactPersons(0, data, emails);\n\n\tservice\n\t\t.createCustomer(newCustomerWithoutID)\n\t\t.then((id) => {\n\t\t\tconst newCustomerWithID = { ...newCustomerWithoutID, id };\n\t\t\tsetCustomer(newCustomerWithID);\n\t\t\tsetIsUserEditing(false);\n\t\t\tsetNotification({ text: 'customer_screen_create_notification', additional: newCustomerWithID.name });\n\t\t})\n\t\t.catch(() => {});\n}\n\nfunction getCustomerWithoutContactPersons(id: number, data: any, emails: string[] = []) {\n\treturn new Customer(\n\t\tid,\n\t\tdata[customerFields.name],\n\t\tcreateAddress('billingAddress', data),\n\t\tcreateAddress(\n\t\t\tdata[customerFields.radio] ? 'billingAddress' : 'deliveryAddress',\n\t\t\tdata,\n\t\t\tdata[customerFields.deliveryAddress.costCenter!]\n\t\t),\n\t\t[],\n\t\tdata[customerFields.customerNumber],\n\t\tdata[customerFields.supplierNumber],\n\t\tdata[customerFields.invoiceEmail],\n\t\tdata[customerFields.reminderEmail],\n\t\temails,\n\t\tdata[customerFields.vatNumber],\n\t\tdata[customerFields.termOfPayment]\n\t);\n}\n\nexport function createAddress(key: AddressKeys, data: any, costCenter?: string) {\n\treturn new Address(\n\t\tNumber(data[customerFields[key].postcode]),\n\t\tdata[customerFields[key].city],\n\t\tdata[customerFields[key].street],\n\t\tdata[customerFields[key].houseNumber],\n\t\tdata[customerFields[key].country],\n\t\tcostCenter ? costCenter : customerFields[key].costCenter ? data[customerFields[key].costCenter!] : ''\n\t);\n}\n","import { Service } from '../../service/service';\nimport Customer from '../../service/types/Customer';\nimport { customerFields } from '../../containers/CustomerContainer';\nimport { History, LocationState } from 'history';\nimport { replaceCustomerHistoryData } from '../navigationHelper';\nimport { createAddress } from './createCustomerHelper';\n\nexport function updateCustomer(\n\tdata: any,\n\tservice: Service,\n\tcustomer: Customer | undefined,\n\thistory: History,\n\tsetCustomer: (customer: Customer | undefined) => void,\n\tsetIsUserEditing: (val: boolean) => void,\n\temails: string[]\n) {\n\tif (customer) {\n\t\tconst updatedCustomer = getUpdatedCustomer(data, customer, emails);\n\t\tservice\n\t\t\t.updateCustomerByID(customer.id, updatedCustomer)\n\t\t\t.then((res) => {\n\t\t\t\tif (res) {\n\t\t\t\t\tsetIsUserEditing(false);\n\t\t\t\t\tsetCustomer(updatedCustomer);\n\t\t\t\t\treplaceCustomerHistoryData(history, updatedCustomer);\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(() => {});\n\t}\n}\n\nfunction getUpdatedCustomer(data: any, customer: Customer, emails: string[]) {\n\treturn new Customer(\n\t\tcustomer.id,\n\t\tdata[customerFields.name],\n\t\tcreateAddress('billingAddress', data),\n\t\tcreateAddress(\n\t\t\tdata[customerFields.radio] ? 'billingAddress' : 'deliveryAddress',\n\t\t\tdata,\n\t\t\tdata[customerFields.deliveryAddress.costCenter!]\n\t\t),\n\t\tcustomer.users,\n\n\t\tdata[customerFields.customerNumber],\n\t\tdata[customerFields.supplierNumber],\n\t\tdata[customerFields.invoiceEmail],\n\t\tdata[customerFields.reminderEmail],\n\t\temails,\n\t\tdata[customerFields.vatNumber],\n\t\tdata[customerFields.termOfPayment]\n\t);\n}\n","import React, { useEffect, useMemo, useRef, useState } from 'react';\nimport { useHistory, useParams } from 'react-router-dom';\nimport { useFieldArray, useForm } from 'react-hook-form';\n\nimport Spinner from '../components/Spinner';\nimport CustomerScreen from '../screens/CustomerScreen';\nimport { StandardDialogInterface } from '../components/StandardDialog';\n\nimport User from '../service/types/User';\nimport service from '../service/service';\nimport { RouteParams, Routes } from '../router/Routes';\nimport Customer from '../service/types/Customer';\nimport { AddressInterface } from '../service/types/Address';\nimport { createCustomer } from '../helpers/customerHelper/createCustomerHelper';\nimport { updateCustomer } from '../helpers/customerHelper/updateCustomerHelper';\nimport { deleteCustomer } from '../helpers/customerHelper/deleteCustomerHelper';\nimport {\n\tonCustomerScreenMount,\n\tsetAddressInfo,\n\tsetCustomerInfo,\n\twatchFields,\n} from '../helpers/customerHelper/readCustomerHelper';\n\nimport { useNotificationActionContext } from '../context/notification/useNotification';\n\nconst addressFields = (key: string, costCenter?: boolean): AddressInterface => ({\n\tpostcode: `${key}postcode`,\n\tcountry: `${key}country`,\n\tcity: `${key}city`,\n\thouseNumber: `${key}houseNumber`,\n\tstreet: `${key}street`,\n\tcostCenter: costCenter ? `${key}costCenter` : undefined,\n});\n\nexport const customerFields = {\n\tradio: 'radio',\n\tname: 'name',\n\tbillingAddress: addressFields('billingAddress'),\n\tdeliveryAddress: addressFields('deliveryAddress', true),\n\tbillingAddressGenerated: 'billingAddressGenerated',\n\tdeliveryAddressGenerated: 'deliveryAddressGenerated',\n\tcustomerNumber: 'customerNumber',\n\tsupplierNumber: 'supplierNumber',\n\tinvoiceEmail: 'invoiceEmail',\n\treminderEmail: 'reminderEmail',\n\totherEmails: 'otherEmails',\n\tvatNumber: 'vatNumber',\n\ttermOfPayment: 'termOfPayment',\n};\n\nexport const MIN_CUSTOMER_LENGTH = 3;\nexport const MAX_CUSTOMER_LENGTH = 50;\n\nfunction CustomerContainer() {\n\tconst history = useHistory();\n\tconst routeParams: RouteParams = useParams();\n\n\tconst { setNotification } = useNotificationActionContext();\n\tconst { control, handleSubmit, errors, setValue, watch, formState } = useForm({});\n\n\tconst sameAddress = watch(customerFields.radio);\n\tconst emails = watch(customerFields.otherEmails);\n\tconst billingAddressWatch = watchFields('billingAddress', watch);\n\tconst deliveryAddressWatch = watchFields('deliveryAddress', watch);\n\n\tconst [mounted, setMounted] = useState(false);\n\tconst [isUserEditing, setIsUserEditing] = useState(false);\n\tconst [customer, setCustomer] = useState(undefined);\n\tconst deleteDialogRef = useRef(null);\n\n\tconst {\n\t\tfields: emailFields,\n\t\tappend: appendEmail,\n\t\tremove: removeEmail,\n\t} = useFieldArray({\n\t\tcontrol: control,\n\t\tname: customerFields.otherEmails,\n\t});\n\n\tuseEffect(() => {\n\t\tonCustomerScreenMount(history, routeParams, setCustomer, setIsUserEditing, setMounted);\n\t}, [routeParams, history]);\n\n\tconst onEditContactPerson = (user: User) =>\n\t\thistory.push(`${Routes.User}/${user.id}`, { backTo: `${Routes.Customer}/${customer?.id}` });\n\n\tuseEffect(() => {\n\t\tif (customer) {\n\t\t\tsetCustomerInfo(customer, setValue);\n\t\t}\n\t}, [customer, setValue]);\n\n\tuseEffect(() => {\n\t\t// setValue(customerFields.otherEmails, customer ? customer?.otherEmails : []);\n\t\tif (isUserEditing && customer) {\n\t\t\tsetAddressInfo(customerFields.billingAddress, customer.billingAdrress, setValue);\n\t\t\tsetAddressInfo(customerFields.deliveryAddress, customer.deliveryAddress, setValue);\n\n\t\t\tif (!customer.deliveryAddress.costCenter)\n\t\t\t\tsetValue(customerFields.radio, customer.billingAddressGenerated === customer.deliveryAddressGenerated);\n\t\t\telse {\n\t\t\t\tconst tempArr = customer.deliveryAddressGenerated.split(',');\n\t\t\t\ttempArr.splice(-1, 1);\n\t\t\t\tsetValue(customerFields.radio, customer.billingAddressGenerated === tempArr.toString());\n\t\t\t}\n\t\t} else {\n\t\t\tsetValue(customerFields.radio, true);\n\t\t}\n\n\t\tsetValue(\n\t\t\tcustomerFields.otherEmails,\n\t\t\tcustomer\n\t\t\t\t? customer?.otherEmails?.map((el, i) => ({\n\t\t\t\t\t\tvalue: el,\n\t\t\t\t }))\n\t\t\t\t: []\n\t\t);\n\t}, [isUserEditing, customer, setValue]);\n\n\tconst onEditPress = () => setIsUserEditing(true);\n\n\tconst onUpdatePress = useMemo(\n\t\t() =>\n\t\t\thandleSubmit((data) => {\n\t\t\t\tupdateCustomer(\n\t\t\t\t\tdata,\n\t\t\t\t\tservice,\n\t\t\t\t\tcustomer,\n\t\t\t\t\thistory,\n\t\t\t\t\tsetCustomer,\n\t\t\t\t\tsetIsUserEditing,\n\t\t\t\t\temails ? emails.map((el: any) => el.value) : []\n\t\t\t\t);\n\t\t\t}),\n\t\t[customer, history, handleSubmit, emails]\n\t);\n\tconst onCancelPress = () => {\n\t\tif (customer) {\n\t\t\tsetIsUserEditing(false);\n\t\t\tsetCustomerInfo(customer, setValue);\n\t\t} else history.goBack();\n\t};\n\n\tconst onDeletePress = () => deleteDialogRef.current?.setDialogState(true);\n\n\tconst onCancelDeleteDialogPress = () => deleteDialogRef.current?.setDialogState(false);\n\n\tconst onDeleteCustomerDialogPress = () => {\n\t\tdeleteCustomer(history, service, customer, setNotification);\n\t};\n\n\tconst onCreatePress = useMemo(\n\t\t() =>\n\t\t\thandleSubmit((data) => {\n\t\t\t\tcreateCustomer(\n\t\t\t\t\tdata,\n\t\t\t\t\tservice,\n\t\t\t\t\tsetCustomer,\n\t\t\t\t\temails ? emails.map((el: any) => el.value) : [],\n\t\t\t\t\tsetIsUserEditing,\n\t\t\t\t\tsetNotification\n\t\t\t\t);\n\t\t\t}),\n\t\t[handleSubmit, emails, setNotification]\n\t);\n\n\tconst onSubmitPress = () => {\n\t\tif (customer) {\n\t\t\tif (isUserEditing) {\n\t\t\t\tonUpdatePress();\n\t\t\t} else {\n\t\t\t\tonEditPress();\n\t\t\t}\n\t\t} else {\n\t\t\tonCreatePress();\n\t\t}\n\t};\n\n\tif (!mounted) return ;\n\n\treturn (\n\t\t\n\t);\n}\n\nexport default CustomerContainer;\n","import { Service } from '../../service/service';\nimport Customer from '../../service/types/Customer';\nimport { goToCustomers } from '../navigationHelper';\nimport { History, LocationState } from 'history';\nimport { NotificationInterface } from '../../context/notification/notificationReducer';\n\nexport function deleteCustomer(\n\thistory: History,\n\tservice: Service,\n\tcustomer: Customer | undefined,\n\tsetNotification: (notification: NotificationInterface) => void\n) {\n\tif (customer)\n\t\tservice\n\t\t\t.deleteCustomerByID(customer.id)\n\t\t\t.then((res) => {\n\t\t\t\tif (res) {\n\t\t\t\t\tgoToCustomers(history);\n\t\t\t\t\tsetNotification({ text: 'customer_screen_delete_notification', additional: customer.name });\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(() => {});\n}\n","import { customerFields } from '../../containers/CustomerContainer';\n\nexport const initCustomerFilters = {\n\tname: '',\n\tdeliveryAddressGenerated: '',\n\tbillingAddressGenerated: '',\n\tpostcode: '',\n\tcountry: '',\n\tcity: '',\n\thouseNumber: '',\n\tcostCenter: '',\n\tstreet: '',\n};\n\nconst data = Object.freeze({ ...initCustomerFilters });\nexport type CustomerFilterKeys = keyof typeof data;\n\nexport const customerOverviewFields = {\n\t...customerFields,\n\tbillingAddress: '',\n\tdeliveryAddress: '',\n\tpostcode: 'postcode',\n\tcountry: 'country',\n\tcity: 'city',\n\thouseNumber: 'houseNumber',\n\tcostCenter: 'costCenter',\n\tstreet: 'street',\n};\n","import moment from 'moment';\nimport { ShiftInterface } from './contractHelper/generalContractHelper';\nimport { KeyValue } from './userHelper/generalUserHelper';\nimport { customerOverviewFields } from './customerHelper/generalCustomerHelper';\nimport Customer from '../service/types/Customer';\n\nexport function filterData(filters: any, data: any) {\n\tconst filterKeys = Object.keys({ ...filters });\n\n\tif (filterKeys.some((key) => filters[key] !== '')) {\n\t\treturn filterKeys.reduce((prev, curr) => {\n\t\t\tif (filters[curr] !== null && filters[curr] !== '') {\n\t\t\t\treturn prev.filter((item: any) => {\n\t\t\t\t\tif (!item[curr] && Object.keys(customerOverviewFields).some((key) => key === curr)) {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t(item as Customer).billingAddressGenerated.includes(filters[curr]) ||\n\t\t\t\t\t\t\t(item as Customer).deliveryAddressGenerated.includes(filters[curr])\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (typeof item[curr] === 'boolean') {\n\t\t\t\t\t\tif (filters[curr]) return item[curr];\n\t\t\t\t\t\telse return !item[curr];\n\t\t\t\t\t}\n\t\t\t\t\t//key contractData\n\t\t\t\t\tif (curr === 'contractData') {\n\t\t\t\t\t\tif (item[curr] && item[curr].name) {\n\t\t\t\t\t\t\treturn filters[curr];\n\t\t\t\t\t\t} else return !filters[curr];\n\t\t\t\t\t}\n\t\t\t\t\t//TYPE STRING\n\t\t\t\t\tif (typeof item[curr] === 'string') {\n\t\t\t\t\t\treturn item[curr].toLowerCase().includes(filters[curr].toLowerCase());\n\t\t\t\t\t}\n\t\t\t\t\t//key FROM DATE\n\t\t\t\t\telse if (curr === 'fromDate') {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\tmoment(item.fromDate || item.date)\n\t\t\t\t\t\t\t\t.format('DD.MM.YYYY')\n\t\t\t\t\t\t\t\t.toLowerCase()\n\t\t\t\t\t\t\t\t.includes(moment(filters[curr]).format('DD.MM.YYYY')) ||\n\t\t\t\t\t\t\titem?.date?.isAfter(moment(filters[curr])) ||\n\t\t\t\t\t\t\titem?.fromDate?.isAfter(filters[curr])\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\t//key TO DATE\n\t\t\t\t\telse if (curr === 'toDate') {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\tmoment(item.date)\n\t\t\t\t\t\t\t\t.format('DD.MM.YYYY')\n\t\t\t\t\t\t\t\t.toLowerCase()\n\t\t\t\t\t\t\t\t.includes(moment(filters[curr]).format('DD.MM.YYYY')) ||\n\t\t\t\t\t\t\titem?.date?.isBefore(moment(filters[curr]) || item?.toDate?.isBefore(moment(filters[curr])))\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\t//TYPE DATE\n\t\t\t\t\telse if (item[curr].format) {\n\t\t\t\t\t\treturn item[curr]\n\t\t\t\t\t\t\t.format('DD.MM.YYYY')\n\t\t\t\t\t\t\t.toLowerCase()\n\t\t\t\t\t\t\t.includes(moment(filters[curr]).format('DD.MM.YYYY'));\n\t\t\t\t\t}\n\t\t\t\t\t//TYPE item[curr]: number && filter[curr]: KEYVALUE\n\t\t\t\t\telse if (typeof item[curr] === 'number' && filters[curr].length && filters[curr][0].key) {\n\t\t\t\t\t\treturn filters[curr].some((filter: KeyValue) => item[curr] === filter.value.id);\n\t\t\t\t\t}\n\t\t\t\t\t//TYPE NUMBER\n\t\t\t\t\telse if (typeof item[curr] === 'number') {\n\t\t\t\t\t\treturn item[curr].toString().toLowerCase().includes(filters[curr].toString().toLowerCase());\n\t\t\t\t\t}\n\t\t\t\t\t//TYPE [] item[curr]: KEYVALUE\n\t\t\t\t\telse if (item[curr].length && item[curr][0].key) {\n\t\t\t\t\t\treturn item[curr].some((val: KeyValue) =>\n\t\t\t\t\t\t\tval.key.toLowerCase().includes(filters[curr].toLowerCase())\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\t//TYPE KEYVALUE\n\t\t\t\t\telse if (item[curr].key) {\n\t\t\t\t\t\treturn item[curr].key.toLowerCase().includes(filters[curr].toLowerCase());\n\t\t\t\t\t}\n\t\t\t\t\t//TYPE [] item[curr]: ShiftInterface[]\n\t\t\t\t\telse if (item[curr].length && item[curr][0].name) {\n\t\t\t\t\t\treturn item[curr].some((val: ShiftInterface) =>\n\t\t\t\t\t\t\tval.name.toLowerCase().includes(filters[curr].toLowerCase())\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\t//TYPE ShiftInterface\n\t\t\t\t\telse if (item[curr].name) {\n\t\t\t\t\t\treturn item[curr].name.toLowerCase().includes(filters[curr].toLowerCase());\n\t\t\t\t\t}\n\t\t\t\t\t//TYPE STRING[]\n\t\t\t\t\telse if (item[curr].length) {\n\t\t\t\t\t\treturn item[curr]\n\t\t\t\t\t\t\t.reduce((prev: string, curr: string) => {\n\t\t\t\t\t\t\t\treturn prev + curr + '';\n\t\t\t\t\t\t\t}, '')\n\t\t\t\t\t\t\t.toLowerCase()\n\t\t\t\t\t\t\t.includes(filters[curr].toLowerCase());\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn item[curr] === filters[curr];\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn prev;\n\t\t}, data);\n\t} else {\n\t\treturn data;\n\t}\n}\n\nexport function checkIfUserStopWriting(\n\te: any,\n\tonChange: (key: any, value: any) => void,\n\tref: React.MutableRefObject,\n\tkey: string\n) {\n\tconst value = e ? (e.target ? e.target.value : e) : '';\n\tref.current[key] = value;\n\tsetTimeout(() => {\n\t\tif (ref.current[key] === value) {\n\t\t\tonChange(key, value);\n\t\t}\n\t}, 500);\n}\n","import * as React from 'react';\n\nfunction FilterIcon(props: any) {\n\treturn (\n\t\t\n\t\t\t{'filter_icon'}\n\t\t\t\n\t\t\n\t);\n}\n\nexport default FilterIcon;\n","import { makeStyles } from '@material-ui/core';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { colors } from '../consts/colors';\nimport { fonts } from '../consts/fonts';\n\nimport { useGlobalStyles } from '../consts/globalStyles';\nimport FilterIcon from '../svgComponents/FilterIcon';\n\ninterface Props {\n\tonFilterPress: () => void;\n\tonClearAllPress: () => void;\n}\n\nfunction Filter(props: Props) {\n\tconst globalClasses = useGlobalStyles();\n\tconst classes = useStyles();\n\tconst { t } = useTranslation();\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t{t('filter_component_title')}\n\t\t\t\t\n\t\t\t
\n\t\t\t
\n\t\t\t\t{t('filter_component_clear')}\n\t\t\t
\n\t\t
\n\t);\n}\n\nconst useStyles = makeStyles(() => ({\n\twrapper: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tjustifyContent: 'space-between',\n\t},\n\trow: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t},\n\ticonWrapper: {\n\t\tmarginRight: '11px',\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t},\n\tclearWrapper: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tcursor: 'pointer',\n\t},\n\tclear: {\n\t\tfontSize: '14px',\n\t\tlineHeight: '20px',\n\t\tcolor: colors.darkGray,\n\t\tfontFamily: fonts.regular,\n\t},\n}));\n\nexport default Filter;\n","import React from 'react';\nimport { withStyles, makeStyles } from '@material-ui/core/styles';\nimport TextField from '@material-ui/core/TextField';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport { colors } from '../consts/colors';\nimport { fonts } from '../consts/fonts';\nimport DropdownArrow from '../svgComponents/DropdownArrow';\nimport { Chip, CircularProgress, MenuItem } from '@material-ui/core';\nimport { Autocomplete, createFilterOptions, FilterOptionsState } from '@material-ui/lab';\nimport { globalInputStyle, useGlobalStyles } from '../consts/globalStyles';\nimport { useTranslation } from 'react-i18next';\nimport ErrorIcon from '../svgComponents/ErrorIcon';\nimport CheckboxFilled from '../svgComponents/CheckboxFilled';\nimport CheckboxEmpty from '../svgComponents/CheckboxEmpty';\nimport BarcodeScannerIcon from '../svgComponents/BarcodeScannerIcon';\n\nconst filter = createFilterOptions();\n\nexport interface StandardAutoCompleteRef {\n\tsetLoading: (val: boolean) => void;\n\tgetLoading: () => boolean;\n}\n\nexport const TextFieldWithCSS = withStyles({\n\troot: {\n\t\t'& .MuiAutocomplete-popupIndicatorOpen': {\n\t\t\ttransform: 'rotate(0deg)',\n\t\t},\n\t\t'& .MuiAutocomplete-popupIndicator': {\n\t\t\tmarginRight: '2px',\n\t\t},\n\t\t'& .MuiIconButton-root:hover': {\n\t\t\tbackgroundColor: 'white',\n\t\t},\n\t\t'& .Mui-disabled': {\n\t\t\tcolor: colors.gray,\n\t\t},\n\t\t'& .MuiAutocomplete-inputRoot': {\n\t\t\tpaddingLeft: '12px',\n\t\t},\n\t\t'& .MuiInput-underline:before': {\n\t\t\tborderBottom: `0px solid ${colors.lightGray}`,\n\t\t},\n\t\t'& .MuiInput-input': {\n\t\t\t...globalInputStyle(),\n\t\t\tborderRadius: '5px',\n\t\t\tpaddingLeft: '12px',\n\t\t},\n\t\t'& .MuiInput-input.Mui-disabled': {\n\t\t\t...globalInputStyle(),\n\t\t\tcolor: colors.lightGray,\n\t\t\tborderRadius: '5px',\n\t\t\tpaddingLeft: '12px',\n\t\t},\n\t\t'& .MuiInput-underline:after': {\n\t\t\tborderBottom: `0px solid ${colors.lightGray}`,\n\t\t},\n\t\t'& label.Mui-focused:not(.Mui-error)': {\n\t\t\tcolor: colors.lightGray,\n\t\t},\n\t\t'& .MuiInput-underline:hover:not(.Mui-disabled):before': {\n\t\t\tborderBottom: `0px solid ${colors.lightGray}`,\n\t\t},\n\t\t'& .MuiInput-underline': {\n\t\t\tborderBottomStyle: 'none',\n\t\t},\n\t\t'& .MuiSelect-select:focus': {\n\t\t\tbackgroundColor: 'white',\n\t\t\tborderRadius: '5px',\n\t\t},\n\t\t'& .Mui-error': {\n\t\t\tcolor: colors.error,\n\t\t},\n\t},\n})(TextField);\n\ninterface Props {\n\tlabel: string;\n\toptions: string[];\n\tonChange: (event: any) => void;\n\twithOutAddOption?: boolean;\n\terror?: boolean;\n\thelperText?: string;\n\tmultiple?: boolean;\n\tonOpen?: () => void;\n\tonScanClick?: () => void;\n\tfreeSolo?: boolean;\n\tremoveCloseIcon?: boolean;\n\tautoSelect?: boolean;\n\tdisabled?: boolean;\n\tfixed?: boolean;\n\tvalue?: string | string[];\n\tlabelAddOn?: JSX.Element;\n\tzoneName?: string;\n\twithCheckbox?: boolean;\n\tplaceholder?: string;\n\tdisableCloseOnSelect?: boolean;\n\tnoOptionText?: string;\n}\n\nfunction StandardAutoComplete(props: Props, ref: any) {\n\tconst { t } = useTranslation();\n\tconst [rotateArrow, setRotateArrow] = React.useState(false);\n\tconst [options, setOptions] = React.useState(props.options);\n\tconst [loading, setLoading] = React.useState(false);\n\tconst [hasOptions, setHasOptions] = React.useState(true);\n\tconst globalClasses = useGlobalStyles();\n\tconst zoneNameRef = React.useRef();\n\tconst [rerender, setRerender] = React.useState(uuidv4().toString());\n\tconst [focused, setFocused] = React.useState(false);\n\tconst [limitTags, setLimitTags] = React.useState(10);\n\tconst autoCompleteRef = React.useRef(null);\n\n\tconst [open, setOpen] = React.useState(false);\n\n\tconst classes = useAutocompleteStyles({\n\t\tremoveCloseIcon: props.removeCloseIcon,\n\t\trotate: rotateArrow,\n\t\tdisabled: props.disabled,\n\t\tfixed: props.fixed,\n\t\thasOptions: hasOptions,\n\t\tfocused: focused,\n\t\twithCheckbox: props.withCheckbox,\n\t\tfreeSolo: props.freeSolo,\n\t});\n\n\tReact.useEffect(() => {\n\t\tif (props.zoneName) {\n\t\t\tsetTimeout(() => {\n\t\t\t\tsetRerender(uuidv4().toString());\n\t\t\t}, 20);\n\t\t}\n\t}, [props.zoneName]);\n\n\tconst filterOptions = React.useMemo(\n\t\t() => (options: string[], params: FilterOptionsState) => {\n\t\t\tconst filterOptions =\n\t\t\t\tprops.value && typeof props.value === 'string'\n\t\t\t\t\t? options.filter((option) => option.toLowerCase().includes((props.value as string).toLowerCase()))\n\t\t\t\t\t: options;\n\t\t\tconst filtered = filter(filterOptions, params);\n\n\t\t\tif (\n\t\t\t\tprops.multiple &&\n\t\t\t\tparams.inputValue !== '' &&\n\t\t\t\tfiltered.length === 0 &&\n\t\t\t\t!props.withOutAddOption &&\n\t\t\t\tparams.inputValue.trim() !== ''\n\t\t\t) {\n\t\t\t\tfiltered.push(`Add \"${params.inputValue.trim()}\"`);\n\t\t\t}\n\t\t\tif (filtered.length === 0 && !loading && props.freeSolo) {\n\t\t\t\tsetHasOptions(false);\n\t\t\t} else {\n\t\t\t\tsetHasOptions(true);\n\t\t\t}\n\t\t\treturn filtered;\n\t\t},\n\n\t\t[props.multiple, props.value, loading, props.freeSolo, props.withOutAddOption]\n\t);\n\n\tReact.useImperativeHandle(\n\t\tref,\n\t\t(): StandardAutoCompleteRef => ({\n\t\t\tsetLoading: (val: boolean) => setLoading(val),\n\t\t\tgetLoading: () => loading,\n\t\t})\n\t);\n\tReact.useEffect(() => {\n\t\tsetOptions((opt) => {\n\t\t\tif (opt.length === 0) return props.options;\n\n\t\t\tif (\n\t\t\t\topt.some((item) =>\n\t\t\t\t\tprops.options.length === 0\n\t\t\t\t\t\t? true\n\t\t\t\t\t\t: props.options.reduce((prev, curr) => {\n\t\t\t\t\t\t\t\tif (prev) return prev;\n\t\t\t\t\t\t\t\treturn curr === item;\n\t\t\t\t\t\t }, false)\n\t\t\t\t) &&\n\t\t\t\tprops.withOutAddOption\n\t\t\t) {\n\t\t\t\treturn props.options;\n\t\t\t}\n\t\t\treturn opt;\n\t\t});\n\t}, [props.options, props.withOutAddOption]);\n\n\tReact.useEffect(() => {\n\t\tif (props.multiple) {\n\t\t\tif (autoCompleteRef.current && 0 > 40 - autoCompleteRef.current.offsetHeight) {\n\t\t\t\tsetLimitTags((val) => (val === 10 ? (props.value as string[]).length - 1 : val));\n\t\t\t}\n\t\t}\n\t}, [props.value, props.multiple]);\n\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t\t{props.label}\n\t\t\t\t{props.labelAddOn ? props.labelAddOn : null}\n\t\t\t
\n\t\t\t\n\t\t\t\t\ttagValue.map((option, index) => (\n\t\t\t\t\t\t\n\t\t\t\t\t))\n\t\t\t\t}\n\t\t\t\tautoSelect={props.autoSelect}\n\t\t\t\tref={autoCompleteRef}\n\t\t\t\topenText=\"\"\n\t\t\t\topen={open}\n\t\t\t\tcloseText=\"\"\n\t\t\t\tgetLimitTagsText={(val) => (\n\t\t\t\t\t{`+${val} ${props.placeholder}`}\n\t\t\t\t)}\n\t\t\t\tdisableCloseOnSelect={props.disableCloseOnSelect}\n\t\t\t\tfreeSolo={props.freeSolo}\n\t\t\t\tnoOptionsText={t(props.noOptionText ? props.noOptionText : 'autocomplete_no_options')}\n\t\t\t\tloadingText={t('autocomplete_loading')}\n\t\t\t\tonClose={() => {\n\t\t\t\t\tsetOpen(false);\n\t\t\t\t\tsetRotateArrow(false);\n\t\t\t\t}}\n\t\t\t\tonOpen={() => {\n\t\t\t\t\tsetOpen(true);\n\t\t\t\t\tsetRotateArrow(true);\n\t\t\t\t\tif (props.onOpen) props.onOpen();\n\t\t\t\t}}\n\t\t\t\tpopupIcon={\n\t\t\t\t\t!props.freeSolo ? (\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t) : undefined\n\t\t\t\t}\n\t\t\t\tmultiple={props.multiple}\n\t\t\t\tfilterOptions={filterOptions}\n\t\t\t\tonChange={(_, newValue) => {\n\t\t\t\t\tif (props.multiple) {\n\t\t\t\t\t\tconst tempNewValue = (newValue as string[]).map((item, index, array) => {\n\t\t\t\t\t\t\tif (index + 1 === array.length) {\n\t\t\t\t\t\t\t\treturn item.replace('Add \"', '').replace('\"', '').trim();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn item;\n\t\t\t\t\t\t});\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\ttempNewValue &&\n\t\t\t\t\t\t\ttempNewValue.length !== 0 &&\n\t\t\t\t\t\t\t!options.some((value) => tempNewValue[tempNewValue.length - 1] === value)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tsetOptions([...options, tempNewValue[tempNewValue.length - 1]]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (tempNewValue.length === 0) {\n\t\t\t\t\t\t\tprops.onChange(undefined);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tprops.onChange(tempNewValue);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tprops.onChange(newValue);\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t\tgetOptionLabel={(option) => t(option)}\n\t\t\t\trenderOption={(option) => (\n\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{props.withCheckbox ? (\n\t\t\t\t\t\t\t\tprops.value &&\n\t\t\t\t\t\t\t\tprops.multiple &&\n\t\t\t\t\t\t\t\t(props.value as string[]).some((item: string) => item === option) ? (\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t{t(option)}\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t)}\n\t\t\t\tloading={loading}\n\t\t\t\trenderInput={(params) => (\n\t\t\t\t\t
\n\t\t\t\t\t\t{props.zoneName ? (\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{`${props.zoneName.toUpperCase()}:`}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t setFocused(true),\n\t\t\t\t\t\t\t\tonBlur: () => setFocused(false),\n\n\t\t\t\t\t\t\t\tendAdornment: (\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t{loading ? : null}\n\t\t\t\t\t\t\t\t\t\t{props.freeSolo ? (\n\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetOpen((prev) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn prev ? false : true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetRotateArrow((prev) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn prev ? false : true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t}}>\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t\t\t\t{props.onScanClick ? (\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t (!props.disabled ? props.onScanClick!() : {})}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t\t\t\t{params.InputProps.endAdornment}\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tonChange={props.freeSolo ? (e) => props.onChange(e) : () => {}}\n\t\t\t\t\t\t\tlabel={undefined}\n\t\t\t\t\t\t\terror={props.error}\n\t\t\t\t\t\t\thelperText={''}\n\t\t\t\t\t\t\tclassName={classes.inputWrapper}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t/>\n\t\t\t{props.error ? (\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t{props.helperText}\n\t\t\t\t\n\t\t\t) : null}\n\t\t\n\t);\n}\n\ninterface StyleProps {\n\tremoveCloseIcon?: boolean;\n\tdisabled?: boolean;\n\tfixed?: boolean;\n\tfocused: boolean;\n\thasOptions: boolean;\n\trotate: boolean;\n\twithCheckbox?: boolean;\n\tfreeSolo?: boolean;\n}\n\nexport const useAutocompleteStyles = makeStyles(() => ({\n\tbarcode: (p: StyleProps) => ({\n\t\tbackgroundColor: colors.someYellow,\n\t\tmargin: '2px 8px 2px 0px ',\n\t\theight: 26,\n\t\twidth: 28,\n\t\tborderRadius: 13,\n\t\talignItems: 'center',\n\t\tjustifyContent: 'center',\n\t\tdisplay: 'flex',\n\t\tcursor: p.disabled ? 'auto' : 'pointer',\n\t}),\n\tlabel: (p: StyleProps) => ({\n\t\tcolor: p.disabled && !p.fixed ? colors.lightGray : colors.gray,\n\t\tfontSize: '14px',\n\t\tlineHeight: '20px',\n\t\tfontFamily: fonts.regular,\n\t}),\n\tlabelWrapper: {\n\t\tmarginBottom: '4px',\n\t\tdisplay: 'flex',\n\t\twhiteSpace: 'pre-line',\n\t},\n\tunderlineField: {\n\t\t'&:before': {\n\t\t\tborderBottom: `0px solid ${colors.lightGray}`,\n\t\t},\n\t\t'&:after': {\n\t\t\tborderBottom: `0px solid ${colors.lightGray}`,\n\t\t},\n\t},\n\tinputWrapper: (p: StyleProps) => ({\n\t\twidth: '100%',\n\t\tborderRadius: '4px',\n\t\tbackgroundColor: p.fixed ? colors.lightGray : colors.white,\n\t\tborder: `1px solid ${p.focused && !p.disabled ? colors.darkGray : '#C0C0C0'}`,\n\t}),\n\tdropdownContainer: (p: StyleProps) => ({\n\t\tboxShadow: 'none',\n\t\t// maxHeight: '160px',\n\t\t// overflow: 'scroll',\n\t\tborder: `${p.hasOptions ? 1 : 0}px solid ${colors.borderColor}`,\n\t}),\n\tdropdownArrowWrapper: (p: StyleProps) => ({\n\t\theight: 'fit-content',\n\t\tpadding: '5px 12px',\n\t\ttransform: 'translateY(0px)',\n\t\talignItems: 'center',\n\t\tdisplay: 'flex',\n\t\t//change pointer events\n\t\tpointerEvents: p.freeSolo ? 'unset' : 'none',\n\t}),\n\tdropdownMenuWrapper: {\n\t\theight: '1.1876em',\n\t},\n\n\trotate: (p: StyleProps) => ({\n\t\ttransform: p.rotate ? 'rotate(180deg)' : `rotate(0deg) translateY(${p.disabled ? 5 : 2}px)`,\n\t\ttransition: 'all 0.5s',\n\t\tcursor: 'pointer',\n\t}),\n\trow: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tmarginTop: '3px',\n\t},\n\terror: {\n\t\tfontSize: '12px',\n\t\tlineHeight: '16px',\n\t\tfontFamily: fonts.regular,\n\t\tcolor: colors.error,\n\t},\n\terrorImageWrapper: { marginRight: '5px', height: '16px' },\n\tmenuItem: {\n\t\tpadding: 0,\n\t},\n\tdropdownInput: {\n\t\tmargin: 0,\n\t\tcolor: colors.darkGray,\n\t\tfontSize: '16px',\n\t\tlineHeight: '24px',\n\t\tfontFamily: fonts.regular,\n\t\twhiteSpace: 'pre-wrap',\n\t},\n\tdropDownInputWrapper: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\ttransform: 'translateY(-2px)',\n\t},\n\tzoneWrapper: { paddingRight: '15px' },\n\tinputRow: { display: 'flex', alignItems: 'center' },\n\tchipHeight: {\n\t\theight: '26px',\n\t\tmargin: '3px',\n\t\tbackgroundColor: colors.someYellow,\n\t},\n\tcheckboxWrapper: {\n\t\tmarginRight: '10px',\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t},\n\tinput: (p: StyleProps) => ({\n\t\t...globalInputStyle(p.disabled),\n\t\twhiteSpace: 'pre',\n\t\tcolor: p.fixed ? colors.lightGray : colors.darkGray,\n\t\tborderRadius: '5px',\n\t\tpaddingLeft: '12px',\n\t}),\n\toptionClass: (p: StyleProps) => ({\n\t\t'&[aria-selected=true]': p.withCheckbox\n\t\t\t? {\n\t\t\t\t\tbackgroundColor: colors.white,\n\t\t\t }\n\t\t\t: {},\n\t\t'&[aria-selected=true]:hover': p.withCheckbox\n\t\t\t? {\n\t\t\t\t\tbackgroundColor: 'rgba(0,0,0,0.04)',\n\t\t\t }\n\t\t\t: {},\n\t}),\n\tdeleteIcon: {\n\t\tcolor: colors.darkGray,\n\t},\n\tinputRoot: (p: StyleProps) => ({\n\t\tpaddingRight: p.removeCloseIcon ? '0px !important' : '30px',\n\t}),\n\tclearIndicator: (p: StyleProps) => ({\n\t\tdisplay: p.removeCloseIcon ? 'none' : 'inline-flex',\n\t}),\n\tlistBox: {\n\t\toverflow: 'hidden',\n\t\tmaxHeight: 'unset',\n\t},\n\tendAdormentWrapper: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t},\n}));\n\nexport default React.forwardRef(StandardAutoComplete);\n","import React from 'react';\nimport { Chip, CircularProgress, MenuItem } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport { Autocomplete, createFilterOptions, FilterOptionsState } from '@material-ui/lab';\nimport DropdownArrow from '../svgComponents/DropdownArrow';\nimport ErrorIcon from '../svgComponents/ErrorIcon';\nimport { KeyValue } from '../helpers/userHelper/generalUserHelper';\nimport { TextFieldWithCSS, useAutocompleteStyles } from './StandardAutoComplete';\nimport CheckboxEmpty from '../svgComponents/CheckboxEmpty';\nimport CheckboxFilled from '../svgComponents/CheckboxFilled';\n\nconst filter = createFilterOptions();\n\nexport interface StandardAutoCompleteRef {\n\tsetLoading: (val: boolean) => void;\n\tgetLoading: () => boolean;\n}\n\ninterface Props {\n\tgetOptionSelected?: (option: KeyValue, value: KeyValue) => boolean;\n\tlabel: string;\n\toptions: KeyValue[];\n\terror?: boolean;\n\thelperText?: string;\n\tmultiple?: boolean;\n\tfreeSolo?: boolean;\n\tdisabled?: boolean;\n\tfixed?: boolean;\n\tvalue?: KeyValue | KeyValue[];\n\tlabelAddOn?: JSX.Element;\n\tzoneName?: string;\n\twithoutArrow?: boolean;\n\twithoutClose?: boolean;\n\tinputWrapper?: string;\n\tplaceholder?: string;\n\twrapper?: string;\n\tinput?: string;\n\tdisableCloseOnSelect?: boolean;\n\twithCheckbox?: boolean;\n\tcustomGetOptionLabel?: (option: KeyValue) => string;\n\tonChange: (event: any) => void;\n\tonOpen?: () => void;\n}\n\nfunction KeyValueAutoComplete(props: Props, ref: any) {\n\tconst { t } = useTranslation();\n\tconst [rotateArrow, setRotateArrow] = React.useState(false);\n\tconst [options, setOptions] = React.useState(props.options);\n\tconst [loading, setLoading] = React.useState(false);\n\tconst prevOptions = React.useRef(props.options);\n\tconst [hasOptions, setHasOptions] = React.useState(true);\n\tconst [focused, setFocused] = React.useState(false);\n\tconst [limitTags, setLimitTags] = React.useState(10);\n\tconst autoCompleteRef = React.useRef(null);\n\n\tconst classes = useAutocompleteStyles({\n\t\trotate: rotateArrow,\n\t\tdisabled: props.disabled,\n\t\tfixed: props.fixed,\n\t\thasOptions: hasOptions,\n\t\tfocused: focused,\n\t\twithCheckbox: props.withCheckbox,\n\t});\n\n\tconst filterOptions = React.useMemo(\n\t\t() => (options: KeyValue[], params: FilterOptionsState) => {\n\t\t\tconst filtered = filter(options, params);\n\t\t\tif (filtered.length === 0 && !loading && props.freeSolo) {\n\t\t\t\tsetHasOptions(false);\n\t\t\t} else {\n\t\t\t\tsetHasOptions(true);\n\t\t\t}\n\t\t\treturn filtered;\n\t\t},\n\n\t\t[loading, props.freeSolo]\n\t);\n\n\tReact.useImperativeHandle(\n\t\tref,\n\t\t(): StandardAutoCompleteRef => ({\n\t\t\tsetLoading: (val: boolean) => setLoading(val),\n\t\t\tgetLoading: () => loading,\n\t\t})\n\t);\n\n\tReact.useEffect(() => {\n\t\tif (!prevOptions.current.some((prevOption) => props.options.some((option) => option === prevOption))) {\n\t\t\tprevOptions.current = props.options;\n\t\t\tsetOptions(props.options);\n\t\t}\n\t}, [props.options]);\n\n\tReact.useEffect(() => {\n\t\tif (props.multiple) {\n\t\t\tif (autoCompleteRef.current && 0 > 40 - autoCompleteRef.current.offsetHeight) {\n\t\t\t\tsetLimitTags((val) => (val === 10 ? (props.value as KeyValue[]).length - 1 : val));\n\t\t\t}\n\t\t}\n\t}, [props.value, props.multiple]);\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t{props.label}\n\t\t\t\t{props.labelAddOn ? props.labelAddOn : null}\n\t\t\t
\n\t\t\t\n\t\t\t\t\ttagValue.map((option, index) => (\n\t\t\t\t\t\t\n\t\t\t\t\t))\n\t\t\t\t}\n\t\t\t\tcloseIcon={props.withoutClose ? false : undefined}\n\t\t\t\tclearText=\"\"\n\t\t\t\topenText=\"\"\n\t\t\t\tcloseText=\"\"\n\t\t\t\tdisableCloseOnSelect={props.disableCloseOnSelect}\n\t\t\t\tfreeSolo={props.freeSolo}\n\t\t\t\tnoOptionsText={t('autocomplete_no_options')}\n\t\t\t\tloadingText={t('autocomplete_loading')}\n\t\t\t\tonClose={() => setTimeout(() => setRotateArrow(false), 0)}\n\t\t\t\tonOpen={() => {\n\t\t\t\t\tsetTimeout(() => setRotateArrow(true), 0);\n\t\t\t\t\tif (props.onOpen) props.onOpen();\n\t\t\t\t}}\n\t\t\t\tgetOptionSelected={(option, value) => {\n\t\t\t\t\tif (props.getOptionSelected) return props.getOptionSelected(option, value);\n\t\t\t\t\telse {\n\t\t\t\t\t\tif (value.key === '') return false;\n\t\t\t\t\t\treturn option.key === value.key;\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t\tpopupIcon={\n\t\t\t\t\t!props.withoutArrow ? (\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t) : (\n\t\t\t\t\t\tfalse\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\tmultiple={props.multiple}\n\t\t\t\tfilterOptions={filterOptions}\n\t\t\t\tonChange={(_, newValue) => {\n\t\t\t\t\tif (props.multiple) {\n\t\t\t\t\t\tconst tempNewValue = (newValue as KeyValue[]).map((item, index, array) => {\n\t\t\t\t\t\t\tif (index + 1 === array.length) {\n\t\t\t\t\t\t\t\t//return item.value.replace('Add \"', '').replace('\"', '');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn item;\n\t\t\t\t\t\t});\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\ttempNewValue &&\n\t\t\t\t\t\t\ttempNewValue.length !== 0 &&\n\t\t\t\t\t\t\t!options.some((value) => tempNewValue[tempNewValue.length - 1] === value)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tsetOptions([...options, tempNewValue[tempNewValue.length - 1]]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (tempNewValue.length === 0) {\n\t\t\t\t\t\t\tprops.onChange(undefined);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tprops.onChange(tempNewValue);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tprops.onChange(newValue);\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t\tgetOptionLabel={props.customGetOptionLabel ? props.customGetOptionLabel : (option) => option.key}\n\t\t\t\trenderOption={(option) => (\n\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{props.withCheckbox ? (\n\t\t\t\t\t\t\t\tprops.value &&\n\t\t\t\t\t\t\t\tprops.multiple &&\n\t\t\t\t\t\t\t\t(props.value as KeyValue[]).some((item: KeyValue) => item.value === option.value) ? (\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t{t(option.key)}\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t)}\n\t\t\t\tloading={loading}\n\t\t\t\trenderInput={(params) => (\n\t\t\t\t\t
\n\t\t\t\t\t\t setFocused(true),\n\t\t\t\t\t\t\t\tonBlur: () => setFocused(false),\n\t\t\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\t\t\tpaddingRight: props.withoutArrow && props.withoutClose ? '0px' : '56px',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tendAdornment: (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t{loading ? : null}\n\t\t\t\t\t\t\t\t\t\t{params.InputProps.endAdornment}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tonChange={props.freeSolo ? (e) => props.onChange(e) : () => {}}\n\t\t\t\t\t\t\tlabel={undefined}\n\t\t\t\t\t\t\terror={props.error}\n\t\t\t\t\t\t\thelperText={''}\n\t\t\t\t\t\t\tplaceholder={props.placeholder}\n\t\t\t\t\t\t\tclassName={props.inputWrapper ? props.inputWrapper : classes.inputWrapper}\n\t\t\t\t\t\t/>\n\t\t\t\t\t
\n\t\t\t\t)}\n\t\t\t/>\n\t\t\t{props.error ? (\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t{props.helperText}\n\t\t\t\t
\n\t\t\t) : null}\n\t\t
\n\t);\n}\n\nexport default React.forwardRef(KeyValueAutoComplete);\n","import { makeStyles } from '@material-ui/core';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Link } from 'react-router-dom';\nimport { colors } from '../consts/colors';\nimport { fonts } from '../consts/fonts';\nimport { Routes } from '../router/Routes';\nimport Plus from '../svgComponents/Plus';\n\ninterface Props {\n\ttext: string;\n\troute?: Routes;\n\tonClick?: () => void;\n}\n\nfunction NewLink({ text, route, onClick }: Props) {\n\tconst classes = useStyles();\n\tconst { t } = useTranslation();\n\n\treturn (\n\t\t<>\n\t\t\t{route ? (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t{t(text)}\n\t\t\t\t\n\t\t\t) : (\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t{t(text)}\n\t\t\t\t
\n\t\t\t)}\n\t\t\n\t);\n}\n\nconst useStyles = makeStyles(() => ({\n\tnewWrapper: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tcursor: 'pointer',\n\t},\n\tnew: {\n\t\tfontSize: '14px',\n\t\tlineHeight: '20px',\n\t\tfontFamily: fonts.regular,\n\t\tcolor: colors.darkGray,\n\t\ttextDecoration: 'underline',\n\t\tmarginLeft: '8px',\n\t},\n}));\n\nexport default NewLink;\n","import { TableCellType } from '../components/table/StandardTableCell';\nimport { UserTableInterface } from '../service/types/User';\nimport { TableParamInterface } from './rhenusOverview';\n\ninterface UserTableParams extends UserTableInterface {\n\tfirstName: TableParamInterface;\n\tlastName: TableParamInterface;\n\toriginOfEmployee: TableParamInterface;\n\trole: TableParamInterface;\n\tedit: TableParamInterface;\n}\n\nexport const userListParams: UserTableParams = {\n\tfirstName: {\n\t\ttitle: 'user_overview_screen_first_name',\n\t\twidth: '11.91vw',\n\t\ttype: TableCellType.Text,\n\t\ttitleType: TableCellType.Title,\n\t},\n\tlastName: {\n\t\ttype: TableCellType.Text,\n\t\ttitleType: TableCellType.Title,\n\t\ttitle: 'user_overview_screen_last_name',\n\t\twidth: '12.015vw',\n\t},\n\toriginOfEmployee: {\n\t\ttitle: 'user_overview_screen_origin',\n\t\twidth: '18.144vw',\n\t\ttype: TableCellType.Text,\n\t\ttitleType: TableCellType.TitleWithDropdown,\n\t},\n\trole: {\n\t\ttitle: 'user_overview_screen_role',\n\t\twidth: '26.957vw',\n\t\ttype: TableCellType.Text,\n\t\ttitleType: TableCellType.TitleWithDropdown,\n\t},\n\t//@ts-ignore\n\tedit: {\n\t\ttitle: '',\n\t\twidth: '5.6125vw',\n\t\ttype: TableCellType.Link,\n\t\ttitleType: TableCellType.Title,\n\t},\n};\n","import { OriginOfEmployee, UserRole } from '../../service/types/User';\nimport { DEFAULT_NO_VALUE } from '../standardInputHelper/generalStandardInputHelper';\n\nexport interface UserLoginParams {\n\temail: string;\n\tpassword: string;\n}\n\nexport interface QAILoginParams {\n\tusername: string;\n\tpassword: string;\n}\n\nexport interface ResetPasswordParams {\n\tuuid: string;\n\tpassword: string;\n}\n\nexport interface JWT_TOKEN_PARAMS {\n\trole: number;\n\tsub: string;\n}\n\nexport interface KeyValue {\n\tkey: string;\n\tvalue: any;\n}\n\nexport const filterUserRoleKeyValuePairs: KeyValue[] = [\n\tDEFAULT_NO_VALUE,\n\t{ key: 'user_role_administrator', value: UserRole.Administrator },\n\t{ key: 'user_role_team_leader', value: UserRole.TeamLeader },\n\t{ key: 'user_role_qai', value: UserRole.QualityAssuranceInspector },\n\t{ key: 'user_role_customer', value: UserRole.Customer },\n\t{ key: 'user_role_accounting', value: UserRole.Accounting },\n];\n\nexport const filterUserRole: KeyValue[] = [\n\t{ key: 'user_role_administrator', value: UserRole.Administrator },\n\t{ key: 'user_role_team_leader', value: UserRole.TeamLeader },\n\t{ key: 'user_role_qai', value: UserRole.QualityAssuranceInspector },\n\t{ key: 'user_role_customer', value: UserRole.Customer },\n\t{ key: 'user_role_accounting', value: UserRole.Accounting },\n];\n\nexport const createUserRoleKeyValuePairs: KeyValue[] = [\n\t{ key: 'user_role_administrator', value: UserRole.Administrator },\n\t{ key: 'user_role_team_leader', value: UserRole.TeamLeader },\n\t{ key: 'user_role_qai', value: UserRole.QualityAssuranceInspector },\n\t{ key: 'user_role_accounting', value: UserRole.Accounting },\n];\n\nexport const externalEmployeeRoles: KeyValue[] = [\n\t...createUserRoleKeyValuePairs,\n\t{ key: 'user_role_customer', value: UserRole.Customer },\n];\n\nexport const originOfEmployeeKeyValuePairs: KeyValue[] = [\n\t{ key: 'user_origin_from_iqr', value: OriginOfEmployee.FromIQR },\n\t{ key: 'user_origin_external', value: OriginOfEmployee.External },\n];\n\nexport const filterOriginOfEmployeeKeyValuePairs: KeyValue[] = [\n\tDEFAULT_NO_VALUE,\n\t{ key: 'user_origin_from_iqr', value: OriginOfEmployee.FromIQR },\n\t{ key: 'user_origin_external', value: OriginOfEmployee.External },\n];\n\nexport const filterOriginOfEmployee: KeyValue[] = [\n\t{ key: 'user_origin_from_iqr', value: OriginOfEmployee.FromIQR },\n\t{ key: 'user_origin_external', value: OriginOfEmployee.External },\n];\n","import React from 'react';\n\nimport { userListParams } from '../consts/user';\nimport { UserFilterKeys } from '../containers/UserOverviewContainer';\nimport { dataSorter } from '../helpers/dataSorter';\nimport {\n\tfilterOriginOfEmployeeKeyValuePairs,\n\tfilterUserRoleKeyValuePairs,\n} from '../helpers/userHelper/generalUserHelper';\nimport User, { UserFilterInterface } from '../service/types/User';\nimport { Sort } from './ContractList';\nimport CustomTableBody from './CustomTableBody';\n\ninterface Props {\n\tusers: User[];\n\tfilters: UserFilterInterface;\n\tonEditPress: (user: User) => void;\n\tonFilterChange: (key: UserFilterKeys, value: any) => void;\n}\n\nfunction UserList(props: Props) {\n\tconst [sort, setSort] = React.useState({\n\t\tfield: undefined,\n\t\tdirection: undefined,\n\t});\n\n\tconst transformedUsers = React.useMemo(() => {\n\t\treturn props.users.map((user) => ({\n\t\t\t...user,\n\t\t\trole: filterUserRoleKeyValuePairs.find((role) => user.role === role.value)?.key,\n\t\t\toriginOfEmployee: filterOriginOfEmployeeKeyValuePairs.find(\n\t\t\t\t(origin) => user.originOfEmployee === origin.value\n\t\t\t)?.key,\n\t\t}));\n\t}, [props.users]);\n\n\tconst filtersOptions: Partial = React.useMemo(\n\t\t() => ({\n\t\t\trole: filterUserRoleKeyValuePairs,\n\t\t\toriginOfEmployee: filterOriginOfEmployeeKeyValuePairs,\n\t\t}),\n\t\t[]\n\t);\n\n\tconst sortedData = React.useMemo(() => {\n\t\tif (sort.field === undefined) return transformedUsers;\n\t\treturn dataSorter({ data: transformedUsers, sort });\n\t}, [sort, transformedUsers]);\n\n\treturn (\n\t\t\n\t);\n}\n\nexport default UserList;\n","export const latin = {\n\tA: 'A',\n\tB: 'B',\n\tC: 'C',\n\tD: 'D',\n\tE: 'E',\n\tF: 'F',\n\tG: 'G',\n\tH: 'H',\n\tI: 'I',\n\tJ: 'J',\n\tK: 'K',\n\tL: 'L',\n\tM: 'M',\n\tN: 'N',\n\tO: 'O',\n\tP: 'P',\n\tQ: 'Q',\n\tR: 'R',\n\tS: 'S',\n\tT: 'T',\n\tU: 'U',\n\tV: 'V',\n\tW: 'W',\n\tX: 'X',\n\tY: 'Y',\n\tZ: 'Z',\n\ta: 'a',\n\tb: 'b',\n\tc: 'c',\n\td: 'd',\n\te: 'e',\n\tf: 'f',\n\tg: 'g',\n\th: 'h',\n\ti: 'i',\n\tj: 'j',\n\tk: 'k',\n\tl: 'l',\n\tm: 'm',\n\tn: 'n',\n\to: 'o',\n\tp: 'p',\n\tq: 'q',\n\tr: 'r',\n\ts: 's',\n\tt: 't',\n\tu: 'u',\n\tv: 'v',\n\tw: 'w',\n\tx: 'x',\n\ty: 'y',\n\tz: 'z',\n\tÁ: 'A',\n\tĂ: 'A',\n\tẮ: 'A',\n\tẶ: 'A',\n\tẰ: 'A',\n\tẲ: 'A',\n\tẴ: 'A',\n\tǍ: 'A',\n\tÂ: 'A',\n\tẤ: 'A',\n\tẬ: 'A',\n\tẦ: 'A',\n\tẨ: 'A',\n\tẪ: 'A',\n\tÄ: 'A',\n\tǞ: 'A',\n\tȦ: 'A',\n\tǠ: 'A',\n\tẠ: 'A',\n\tȀ: 'A',\n\tÀ: 'A',\n\tẢ: 'A',\n\tȂ: 'A',\n\tĀ: 'A',\n\tĄ: 'A',\n\tÅ: 'A',\n\tǺ: 'A',\n\tḀ: 'A',\n\tȺ: 'A',\n\tÃ: 'A',\n\tꜲ: 'AA',\n\tÆ: 'AE',\n\tǼ: 'AE',\n\tǢ: 'AE',\n\tꜴ: 'AO',\n\tꜶ: 'AU',\n\tꜸ: 'AV',\n\tꜺ: 'AV',\n\tꜼ: 'AY',\n\tḂ: 'B',\n\tḄ: 'B',\n\tƁ: 'B',\n\tḆ: 'B',\n\tɃ: 'B',\n\tƂ: 'B',\n\tĆ: 'C',\n\tČ: 'C',\n\tÇ: 'C',\n\tḈ: 'C',\n\tĈ: 'C',\n\tĊ: 'C',\n\tƇ: 'C',\n\tȻ: 'C',\n\tĎ: 'D',\n\tḐ: 'D',\n\tḒ: 'D',\n\tḊ: 'D',\n\tḌ: 'D',\n\tƊ: 'D',\n\tḎ: 'D',\n\tDz: 'D',\n\tDž: 'D',\n\tĐ: 'D',\n\tƋ: 'D',\n\tDZ: 'DZ',\n\tDŽ: 'DZ',\n\tÉ: 'E',\n\tĔ: 'E',\n\tĚ: 'E',\n\tȨ: 'E',\n\tḜ: 'E',\n\tÊ: 'E',\n\tẾ: 'E',\n\tỆ: 'E',\n\tỀ: 'E',\n\tỂ: 'E',\n\tỄ: 'E',\n\tḘ: 'E',\n\tË: 'E',\n\tĖ: 'E',\n\tẸ: 'E',\n\tȄ: 'E',\n\tÈ: 'E',\n\tẺ: 'E',\n\tȆ: 'E',\n\tĒ: 'E',\n\tḖ: 'E',\n\tḔ: 'E',\n\tĘ: 'E',\n\tɆ: 'E',\n\tẼ: 'E',\n\tḚ: 'E',\n\tꝪ: 'ET',\n\tḞ: 'F',\n\tƑ: 'F',\n\tǴ: 'G',\n\tĞ: 'G',\n\tǦ: 'G',\n\tĢ: 'G',\n\tĜ: 'G',\n\tĠ: 'G',\n\tƓ: 'G',\n\tḠ: 'G',\n\tǤ: 'G',\n\tḪ: 'H',\n\tȞ: 'H',\n\tḨ: 'H',\n\tĤ: 'H',\n\tⱧ: 'H',\n\tḦ: 'H',\n\tḢ: 'H',\n\tḤ: 'H',\n\tĦ: 'H',\n\tÍ: 'I',\n\tĬ: 'I',\n\tǏ: 'I',\n\tÎ: 'I',\n\tÏ: 'I',\n\tḮ: 'I',\n\tİ: 'I',\n\tỊ: 'I',\n\tȈ: 'I',\n\tÌ: 'I',\n\tỈ: 'I',\n\tȊ: 'I',\n\tĪ: 'I',\n\tĮ: 'I',\n\tƗ: 'I',\n\tĨ: 'I',\n\tḬ: 'I',\n\tꝹ: 'D',\n\tꝻ: 'F',\n\tꝽ: 'G',\n\tꞂ: 'R',\n\tꞄ: 'S',\n\tꞆ: 'T',\n\tꝬ: 'IS',\n\tĴ: 'J',\n\tɈ: 'J',\n\tḰ: 'K',\n\tǨ: 'K',\n\tĶ: 'K',\n\tⱩ: 'K',\n\tꝂ: 'K',\n\tḲ: 'K',\n\tƘ: 'K',\n\tḴ: 'K',\n\tꝀ: 'K',\n\tꝄ: 'K',\n\tĹ: 'L',\n\tȽ: 'L',\n\tĽ: 'L',\n\tĻ: 'L',\n\tḼ: 'L',\n\tḶ: 'L',\n\tḸ: 'L',\n\tⱠ: 'L',\n\tꝈ: 'L',\n\tḺ: 'L',\n\tĿ: 'L',\n\tⱢ: 'L',\n\tLj: 'L',\n\tŁ: 'L',\n\tLJ: 'LJ',\n\tḾ: 'M',\n\tṀ: 'M',\n\tṂ: 'M',\n\tⱮ: 'M',\n\tŃ: 'N',\n\tŇ: 'N',\n\tŅ: 'N',\n\tṊ: 'N',\n\tṄ: 'N',\n\tṆ: 'N',\n\tǸ: 'N',\n\tƝ: 'N',\n\tṈ: 'N',\n\tȠ: 'N',\n\tNj: 'N',\n\tÑ: 'N',\n\tNJ: 'NJ',\n\tÓ: 'O',\n\tŎ: 'O',\n\tǑ: 'O',\n\tÔ: 'O',\n\tỐ: 'O',\n\tỘ: 'O',\n\tỒ: 'O',\n\tỔ: 'O',\n\tỖ: 'O',\n\tÖ: 'O',\n\tȪ: 'O',\n\tȮ: 'O',\n\tȰ: 'O',\n\tỌ: 'O',\n\tŐ: 'O',\n\tȌ: 'O',\n\tÒ: 'O',\n\tỎ: 'O',\n\tƠ: 'O',\n\tỚ: 'O',\n\tỢ: 'O',\n\tỜ: 'O',\n\tỞ: 'O',\n\tỠ: 'O',\n\tȎ: 'O',\n\tꝊ: 'O',\n\tꝌ: 'O',\n\tŌ: 'O',\n\tṒ: 'O',\n\tṐ: 'O',\n\tƟ: 'O',\n\tǪ: 'O',\n\tǬ: 'O',\n\tØ: 'O',\n\tǾ: 'O',\n\tÕ: 'O',\n\tṌ: 'O',\n\tṎ: 'O',\n\tȬ: 'O',\n\tƢ: 'OI',\n\tꝎ: 'OO',\n\tƐ: 'E',\n\tƆ: 'O',\n\tȢ: 'OU',\n\tṔ: 'P',\n\tṖ: 'P',\n\tꝒ: 'P',\n\tƤ: 'P',\n\tꝔ: 'P',\n\tⱣ: 'P',\n\tꝐ: 'P',\n\tꝘ: 'Q',\n\tꝖ: 'Q',\n\tŔ: 'R',\n\tŘ: 'R',\n\tŖ: 'R',\n\tṘ: 'R',\n\tṚ: 'R',\n\tṜ: 'R',\n\tȐ: 'R',\n\tȒ: 'R',\n\tṞ: 'R',\n\tɌ: 'R',\n\tⱤ: 'R',\n\tꜾ: 'C',\n\tƎ: 'E',\n\tŚ: 'S',\n\tṤ: 'S',\n\tŠ: 'S',\n\tṦ: 'S',\n\tŞ: 'S',\n\tŜ: 'S',\n\tȘ: 'S',\n\tṠ: 'S',\n\tṢ: 'S',\n\tṨ: 'S',\n\tŤ: 'T',\n\tŢ: 'T',\n\tṰ: 'T',\n\tȚ: 'T',\n\tȾ: 'T',\n\tṪ: 'T',\n\tṬ: 'T',\n\tƬ: 'T',\n\tṮ: 'T',\n\tƮ: 'T',\n\tŦ: 'T',\n\tⱯ: 'A',\n\tꞀ: 'L',\n\tƜ: 'M',\n\tɅ: 'V',\n\tꜨ: 'TZ',\n\tÚ: 'U',\n\tŬ: 'U',\n\tǓ: 'U',\n\tÛ: 'U',\n\tṶ: 'U',\n\tÜ: 'U',\n\tǗ: 'U',\n\tǙ: 'U',\n\tǛ: 'U',\n\tǕ: 'U',\n\tṲ: 'U',\n\tỤ: 'U',\n\tŰ: 'U',\n\tȔ: 'U',\n\tÙ: 'U',\n\tỦ: 'U',\n\tƯ: 'U',\n\tỨ: 'U',\n\tỰ: 'U',\n\tỪ: 'U',\n\tỬ: 'U',\n\tỮ: 'U',\n\tȖ: 'U',\n\tŪ: 'U',\n\tṺ: 'U',\n\tŲ: 'U',\n\tŮ: 'U',\n\tŨ: 'U',\n\tṸ: 'U',\n\tṴ: 'U',\n\tꝞ: 'V',\n\tṾ: 'V',\n\tƲ: 'V',\n\tṼ: 'V',\n\tꝠ: 'VY',\n\tẂ: 'W',\n\tŴ: 'W',\n\tẄ: 'W',\n\tẆ: 'W',\n\tẈ: 'W',\n\tẀ: 'W',\n\tⱲ: 'W',\n\tẌ: 'X',\n\tẊ: 'X',\n\tÝ: 'Y',\n\tŶ: 'Y',\n\tŸ: 'Y',\n\tẎ: 'Y',\n\tỴ: 'Y',\n\tỲ: 'Y',\n\tƳ: 'Y',\n\tỶ: 'Y',\n\tỾ: 'Y',\n\tȲ: 'Y',\n\tɎ: 'Y',\n\tỸ: 'Y',\n\tŹ: 'Z',\n\tŽ: 'Z',\n\tẐ: 'Z',\n\tⱫ: 'Z',\n\tŻ: 'Z',\n\tẒ: 'Z',\n\tȤ: 'Z',\n\tẔ: 'Z',\n\tƵ: 'Z',\n\tIJ: 'IJ',\n\tŒ: 'OE',\n\tᴀ: 'A',\n\tᴁ: 'AE',\n\tʙ: 'B',\n\tᴃ: 'B',\n\tᴄ: 'C',\n\tᴅ: 'D',\n\tᴇ: 'E',\n\tꜰ: 'F',\n\tɢ: 'G',\n\tʛ: 'G',\n\tʜ: 'H',\n\tɪ: 'I',\n\tʁ: 'R',\n\tᴊ: 'J',\n\tᴋ: 'K',\n\tʟ: 'L',\n\tᴌ: 'L',\n\tᴍ: 'M',\n\tɴ: 'N',\n\tᴏ: 'O',\n\tɶ: 'OE',\n\tᴐ: 'O',\n\tᴕ: 'OU',\n\tᴘ: 'P',\n\tʀ: 'R',\n\tᴎ: 'N',\n\tᴙ: 'R',\n\tꜱ: 'S',\n\tᴛ: 'T',\n\tⱻ: 'E',\n\tᴚ: 'R',\n\tᴜ: 'U',\n\tᴠ: 'V',\n\tᴡ: 'W',\n\tʏ: 'Y',\n\tᴢ: 'Z',\n\tá: 'a',\n\tă: 'a',\n\tắ: 'a',\n\tặ: 'a',\n\tằ: 'a',\n\tẳ: 'a',\n\tẵ: 'a',\n\tǎ: 'a',\n\tâ: 'a',\n\tấ: 'a',\n\tậ: 'a',\n\tầ: 'a',\n\tẩ: 'a',\n\tẫ: 'a',\n\tä: 'a',\n\tǟ: 'a',\n\tȧ: 'a',\n\tǡ: 'a',\n\tạ: 'a',\n\tȁ: 'a',\n\tà: 'a',\n\tả: 'a',\n\tȃ: 'a',\n\tā: 'a',\n\tą: 'a',\n\tᶏ: 'a',\n\tẚ: 'a',\n\tå: 'a',\n\tǻ: 'a',\n\tḁ: 'a',\n\tⱥ: 'a',\n\tã: 'a',\n\tꜳ: 'aa',\n\tæ: 'ae',\n\tǽ: 'ae',\n\tǣ: 'ae',\n\tꜵ: 'ao',\n\tꜷ: 'au',\n\tꜹ: 'av',\n\tꜻ: 'av',\n\tꜽ: 'ay',\n\tḃ: 'b',\n\tḅ: 'b',\n\tɓ: 'b',\n\tḇ: 'b',\n\tᵬ: 'b',\n\tᶀ: 'b',\n\tƀ: 'b',\n\tƃ: 'b',\n\tɵ: 'o',\n\tć: 'c',\n\tč: 'c',\n\tç: 'c',\n\tḉ: 'c',\n\tĉ: 'c',\n\tɕ: 'c',\n\tċ: 'c',\n\tƈ: 'c',\n\tȼ: 'c',\n\tď: 'd',\n\tḑ: 'd',\n\tḓ: 'd',\n\tȡ: 'd',\n\tḋ: 'd',\n\tḍ: 'd',\n\tɗ: 'd',\n\tᶑ: 'd',\n\tḏ: 'd',\n\tᵭ: 'd',\n\tᶁ: 'd',\n\tđ: 'd',\n\tɖ: 'd',\n\tƌ: 'd',\n\tı: 'i',\n\tȷ: 'j',\n\tɟ: 'j',\n\tʄ: 'j',\n\tdz: 'dz',\n\tdž: 'dz',\n\té: 'e',\n\tĕ: 'e',\n\tě: 'e',\n\tȩ: 'e',\n\tḝ: 'e',\n\tê: 'e',\n\tế: 'e',\n\tệ: 'e',\n\tề: 'e',\n\tể: 'e',\n\tễ: 'e',\n\tḙ: 'e',\n\të: 'e',\n\tė: 'e',\n\tẹ: 'e',\n\tȅ: 'e',\n\tè: 'e',\n\tẻ: 'e',\n\tȇ: 'e',\n\tē: 'e',\n\tḗ: 'e',\n\tḕ: 'e',\n\tⱸ: 'e',\n\tę: 'e',\n\tᶒ: 'e',\n\tɇ: 'e',\n\tẽ: 'e',\n\tḛ: 'e',\n\tꝫ: 'et',\n\tḟ: 'f',\n\tƒ: 'f',\n\tᵮ: 'f',\n\tᶂ: 'f',\n\tǵ: 'g',\n\tğ: 'g',\n\tǧ: 'g',\n\tģ: 'g',\n\tĝ: 'g',\n\tġ: 'g',\n\tɠ: 'g',\n\tḡ: 'g',\n\tᶃ: 'g',\n\tǥ: 'g',\n\tḫ: 'h',\n\tȟ: 'h',\n\tḩ: 'h',\n\tĥ: 'h',\n\tⱨ: 'h',\n\tḧ: 'h',\n\tḣ: 'h',\n\tḥ: 'h',\n\tɦ: 'h',\n\tẖ: 'h',\n\tħ: 'h',\n\tƕ: 'hv',\n\tí: 'i',\n\tĭ: 'i',\n\tǐ: 'i',\n\tî: 'i',\n\tï: 'i',\n\tḯ: 'i',\n\tị: 'i',\n\tȉ: 'i',\n\tì: 'i',\n\tỉ: 'i',\n\tȋ: 'i',\n\tī: 'i',\n\tį: 'i',\n\tᶖ: 'i',\n\tɨ: 'i',\n\tĩ: 'i',\n\tḭ: 'i',\n\tꝺ: 'd',\n\tꝼ: 'f',\n\tᵹ: 'g',\n\tꞃ: 'r',\n\tꞅ: 's',\n\tꞇ: 't',\n\tꝭ: 'is',\n\tǰ: 'j',\n\tĵ: 'j',\n\tʝ: 'j',\n\tɉ: 'j',\n\tḱ: 'k',\n\tǩ: 'k',\n\tķ: 'k',\n\tⱪ: 'k',\n\tꝃ: 'k',\n\tḳ: 'k',\n\tƙ: 'k',\n\tḵ: 'k',\n\tᶄ: 'k',\n\tꝁ: 'k',\n\tꝅ: 'k',\n\tĺ: 'l',\n\tƚ: 'l',\n\tɬ: 'l',\n\tľ: 'l',\n\tļ: 'l',\n\tḽ: 'l',\n\tȴ: 'l',\n\tḷ: 'l',\n\tḹ: 'l',\n\tⱡ: 'l',\n\tꝉ: 'l',\n\tḻ: 'l',\n\tŀ: 'l',\n\tɫ: 'l',\n\tᶅ: 'l',\n\tɭ: 'l',\n\tł: 'l',\n\tlj: 'lj',\n\tſ: 's',\n\tẜ: 's',\n\tẛ: 's',\n\tẝ: 's',\n\tḿ: 'm',\n\tṁ: 'm',\n\tṃ: 'm',\n\tɱ: 'm',\n\tᵯ: 'm',\n\tᶆ: 'm',\n\tń: 'n',\n\tň: 'n',\n\tņ: 'n',\n\tṋ: 'n',\n\tȵ: 'n',\n\tṅ: 'n',\n\tṇ: 'n',\n\tǹ: 'n',\n\tɲ: 'n',\n\tṉ: 'n',\n\tƞ: 'n',\n\tᵰ: 'n',\n\tᶇ: 'n',\n\tɳ: 'n',\n\tñ: 'n',\n\tnj: 'nj',\n\tó: 'o',\n\tŏ: 'o',\n\tǒ: 'o',\n\tô: 'o',\n\tố: 'o',\n\tộ: 'o',\n\tồ: 'o',\n\tổ: 'o',\n\tỗ: 'o',\n\tö: 'o',\n\tȫ: 'o',\n\tȯ: 'o',\n\tȱ: 'o',\n\tọ: 'o',\n\tő: 'o',\n\tȍ: 'o',\n\tò: 'o',\n\tỏ: 'o',\n\tơ: 'o',\n\tớ: 'o',\n\tợ: 'o',\n\tờ: 'o',\n\tở: 'o',\n\tỡ: 'o',\n\tȏ: 'o',\n\tꝋ: 'o',\n\tꝍ: 'o',\n\tⱺ: 'o',\n\tō: 'o',\n\tṓ: 'o',\n\tṑ: 'o',\n\tǫ: 'o',\n\tǭ: 'o',\n\tø: 'o',\n\tǿ: 'o',\n\tõ: 'o',\n\tṍ: 'o',\n\tṏ: 'o',\n\tȭ: 'o',\n\tƣ: 'oi',\n\tꝏ: 'oo',\n\tɛ: 'e',\n\tᶓ: 'e',\n\tɔ: 'o',\n\tᶗ: 'o',\n\tȣ: 'ou',\n\tṕ: 'p',\n\tṗ: 'p',\n\tꝓ: 'p',\n\tƥ: 'p',\n\tᵱ: 'p',\n\tᶈ: 'p',\n\tꝕ: 'p',\n\tᵽ: 'p',\n\tꝑ: 'p',\n\tꝙ: 'q',\n\tʠ: 'q',\n\tɋ: 'q',\n\tꝗ: 'q',\n\tŕ: 'r',\n\tř: 'r',\n\tŗ: 'r',\n\tṙ: 'r',\n\tṛ: 'r',\n\tṝ: 'r',\n\tȑ: 'r',\n\tɾ: 'r',\n\tᵳ: 'r',\n\tȓ: 'r',\n\tṟ: 'r',\n\tɼ: 'r',\n\tᵲ: 'r',\n\tᶉ: 'r',\n\tɍ: 'r',\n\tɽ: 'r',\n\tↄ: 'c',\n\tꜿ: 'c',\n\tɘ: 'e',\n\tɿ: 'r',\n\tś: 's',\n\tṥ: 's',\n\tš: 's',\n\tṧ: 's',\n\tş: 's',\n\tŝ: 's',\n\tș: 's',\n\tṡ: 's',\n\tṣ: 's',\n\tṩ: 's',\n\tʂ: 's',\n\tᵴ: 's',\n\tᶊ: 's',\n\tȿ: 's',\n\tɡ: 'g',\n\tᴑ: 'o',\n\tᴓ: 'o',\n\tᴝ: 'u',\n\tť: 't',\n\tţ: 't',\n\tṱ: 't',\n\tț: 't',\n\tȶ: 't',\n\tẗ: 't',\n\tⱦ: 't',\n\tṫ: 't',\n\tṭ: 't',\n\tƭ: 't',\n\tṯ: 't',\n\tᵵ: 't',\n\tƫ: 't',\n\tʈ: 't',\n\tŧ: 't',\n\tᵺ: 'th',\n\tɐ: 'a',\n\tᴂ: 'ae',\n\tǝ: 'e',\n\tᵷ: 'g',\n\tɥ: 'h',\n\tʮ: 'h',\n\tʯ: 'h',\n\tᴉ: 'i',\n\tʞ: 'k',\n\tꞁ: 'l',\n\tɯ: 'm',\n\tɰ: 'm',\n\tᴔ: 'oe',\n\tɹ: 'r',\n\tɻ: 'r',\n\tɺ: 'r',\n\tⱹ: 'r',\n\tʇ: 't',\n\tʌ: 'v',\n\tʍ: 'w',\n\tʎ: 'y',\n\tꜩ: 'tz',\n\tú: 'u',\n\tŭ: 'u',\n\tǔ: 'u',\n\tû: 'u',\n\tṷ: 'u',\n\tü: 'u',\n\tǘ: 'u',\n\tǚ: 'u',\n\tǜ: 'u',\n\tǖ: 'u',\n\tṳ: 'u',\n\tụ: 'u',\n\tű: 'u',\n\tȕ: 'u',\n\tù: 'u',\n\tủ: 'u',\n\tư: 'u',\n\tứ: 'u',\n\tự: 'u',\n\từ: 'u',\n\tử: 'u',\n\tữ: 'u',\n\tȗ: 'u',\n\tū: 'u',\n\tṻ: 'u',\n\tų: 'u',\n\tᶙ: 'u',\n\tů: 'u',\n\tũ: 'u',\n\tṹ: 'u',\n\tṵ: 'u',\n\tᵫ: 'ue',\n\tꝸ: 'um',\n\tⱴ: 'v',\n\tꝟ: 'v',\n\tṿ: 'v',\n\tʋ: 'v',\n\tᶌ: 'v',\n\tⱱ: 'v',\n\tṽ: 'v',\n\tꝡ: 'vy',\n\tẃ: 'w',\n\tŵ: 'w',\n\tẅ: 'w',\n\tẇ: 'w',\n\tẉ: 'w',\n\tẁ: 'w',\n\tⱳ: 'w',\n\tẘ: 'w',\n\tẍ: 'x',\n\tẋ: 'x',\n\tᶍ: 'x',\n\tý: 'y',\n\tŷ: 'y',\n\tÿ: 'y',\n\tẏ: 'y',\n\tỵ: 'y',\n\tỳ: 'y',\n\tƴ: 'y',\n\tỷ: 'y',\n\tỿ: 'y',\n\tȳ: 'y',\n\tẙ: 'y',\n\tɏ: 'y',\n\tỹ: 'y',\n\tź: 'z',\n\tž: 'z',\n\tẑ: 'z',\n\tʑ: 'z',\n\tⱬ: 'z',\n\tż: 'z',\n\tẓ: 'z',\n\tȥ: 'z',\n\tẕ: 'z',\n\tᵶ: 'z',\n\tᶎ: 'z',\n\tʐ: 'z',\n\tƶ: 'z',\n\tɀ: 'z',\n\tff: 'ff',\n\tffi: 'ffi',\n\tffl: 'ffl',\n\tfi: 'fi',\n\tfl: 'fl',\n\tij: 'ij',\n\tœ: 'oe',\n\tst: 'st',\n\tₐ: 'a',\n\tₑ: 'e',\n\tᵢ: 'i',\n\tⱼ: 'j',\n\tₒ: 'o',\n\tᵣ: 'r',\n\tᵤ: 'u',\n\tᵥ: 'v',\n\tₓ: 'x',\n};\n","import { userFields } from '../../containers/UserContainer';\nimport { History, LocationState } from 'history';\nimport { CreateEmployeeParams, IdNamePair } from '../../service/types/User';\nimport { goToUsers } from '../navigationHelper';\nimport { Service } from '../../service/service';\nimport { KeyValue } from './generalUserHelper';\nimport { Group, GroupUser } from '../../pages/groupOverview/GroupOverview';\n\nexport function createUser(\n\tdata: any,\n\thistory: History,\n\tservice: Service,\n\tsetError: (name: string, value: { message: string }) => void,\n\tt: (text: string) => string,\n\tsetGroups: (groups: Group[]) => void\n) {\n\tgetCreateService(service, {\n\t\temail: data[userFields.email].trim(),\n\t\tfirst_name: data[userFields.firstName].trim(),\n\t\tlast_name: data[userFields.lastName].trim(),\n\t\torigin: data[userFields.originOfEmployee],\n\t\tpassword: data[userFields.password],\n\t\trole: data[userFields.role],\n\t\ttl:\n\t\t\tuserFields.teamLeader in data && data[userFields.teamLeader].length !== 0\n\t\t\t\t? data[userFields.teamLeader].map((item: KeyValue) => item.value.id)\n\t\t\t\t: undefined,\n\t\tusername: userFields.username in data ? data[userFields.username].trim() : undefined,\n\t\tphonenumber: userFields.phonenumber in data ? data[userFields.phonenumber] : undefined,\n\t\ttlGroupsIds:\n\t\t\t(userFields.tlGroups in data &&\n\t\t\t\tdata[userFields.tlGroups].length > 0 &&\n\t\t\t\tdata[userFields.tlGroups]?.map((el: GroupUser) => el.id)) ||\n\t\t\t[],\n\t\tcontactFor:\n\t\t\t(userFields.contactFor in data &&\n\t\t\t\tdata[userFields.contactFor].length > 0 &&\n\t\t\t\tdata[userFields.contactFor].map((el: IdNamePair) => el.id)) ||\n\t\t\t[],\n\t})\n\t\t.then((res) => {\n\t\t\tif (res) {\n\t\t\t\t// This will force new fetch on groups screen\n\t\t\t\tsetGroups([]);\n\n\t\t\t\tgoToUsers(history);\n\t\t\t}\n\t\t})\n\t\t.catch((e) => {\n\t\t\tconst error = JSON.parse(e.message);\n\t\t\tsetCreateUserError(error, setError, t);\n\t\t});\n}\n\nexport function getCreateService(service: Service, params: CreateEmployeeParams) {\n\tif (params.tl) {\n\t\treturn service.createQAI(params);\n\t} else {\n\t\treturn service.createEmployee(params);\n\t}\n}\n\nfunction setCreateUserError(\n\terror: any,\n\tsetError: (name: string, value: { message: string }) => void,\n\tt: (text: string) => string\n) {\n\tif (error && error.error) {\n\t\tif (error.error.code === -32000) {\n\t\t\tsetError(userFields.email, { message: t('user_screen_email_in_use') });\n\t\t} else if (error.error.code === -32006) {\n\t\t\tsetError(userFields.username, { message: t('user_screen_username_in_use') });\n\t\t}\n\t}\n}\n","import { History, LocationState } from 'history';\nimport { userFields } from '../../containers/UserContainer';\nimport { RouteParams } from '../../router/Routes';\nimport service, { Service } from '../../service/service';\nimport User, { UserRole } from '../../service/types/User';\nimport { goToHome, UserNavigationInterface } from '../navigationHelper';\nimport { KeyValue } from './generalUserHelper';\n\nexport function onUserScreenMount(\n\thistory: History,\n\trouteParams: RouteParams,\n\tsetUser: (user: User | undefined) => void,\n\tsetIsUserEditing: (val: boolean) => void,\n\tsetMounted: (val: boolean) => void\n) {\n\tconst historyState = history.location.state as undefined | UserNavigationInterface;\n\tif (historyState?.user && historyState.user.teamLeaderIDs) {\n\t\tsetUser(historyState.user);\n\t\tsetMounted(true);\n\t} else if (historyState?.user) {\n\t\tsetUser(User.fromUserUpdate(historyState.user));\n\t\tsetMounted(true);\n\t} else if (routeParams.user_id) {\n\t\tservice\n\t\t\t.getUserByID(Number(routeParams.user_id))\n\t\t\t.then((res) => {\n\t\t\t\tif (res) {\n\t\t\t\t\tsetMounted(true);\n\t\t\t\t\tsetUser(res);\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch((e) => {\n\t\t\t\tgoToHome(history);\n\t\t\t});\n\t} else {\n\t\tsetIsUserEditing(true);\n\t\tsetUser(undefined);\n\t\tsetMounted(true);\n\t}\n}\n\ninterface Filter {\n\tproperty: string;\n\tvalue: string | boolean | number;\n}\n\nexport async function getUserOptionsKeyValuePairs(\n\tdata: Promise,\n\tsetLoading: (val: boolean) => void,\n\tfilter?: Filter\n): Promise {\n\tsetLoading(true);\n\tconst users = await data.catch((e) => {\n\t\tsetLoading(false);\n\t});\n\n\tsetLoading(false);\n\n\tif (users && filter) {\n\t\treturn (\n\t\t\tusers\n\t\t\t\t//@ts-ignore\n\t\t\t\t.filter((el: User) => el[filter.property] === filter.value)\n\t\t\t\t.map((user) => ({\n\t\t\t\t\tvalue: user,\n\t\t\t\t\tkey: `${user.firstName} ${user.lastName}`,\n\t\t\t\t}))\n\t\t);\n\t}\n\n\tif (users)\n\t\treturn users.map((user) => ({\n\t\t\tvalue: user,\n\t\t\tkey: `${user.firstName} ${user.lastName}`,\n\t\t}));\n\treturn [];\n}\n\nexport async function setUserInfo(\n\tuser: User,\n\tautoCompleteRef: React.MutableRefObject,\n\tservice: Service,\n\tsetValue: (fieldName: string, val: any) => void,\n\tsetTeamLeaders: (teamLeaders: KeyValue[]) => void\n) {\n\tsetValue(userFields.role, user.role);\n\tsetValue(userFields.originOfEmployee, user.originOfEmployee);\n\tsetValue(userFields.firstName, user.firstName);\n\tsetValue(userFields.lastName, user.lastName);\n\tsetValue(userFields.email, user.email);\n\tsetValue(userFields.username, user.username);\n\tsetValue(userFields.phonenumber, user.phonenumber);\n\tsetValue(userFields.tlGroups, user.tlGroups);\n\tif (user.role === UserRole.QualityAssuranceInspector) {\n\t\tautoCompleteRef.current = true;\n\t\tconst teamLeaders = await getUserOptionsKeyValuePairs(service.getAllTeamLeaders(), () => {});\n\t\tautoCompleteRef.current = false;\n\t\tsetTeamLeaders(teamLeaders.filter((teamLeader) => teamLeader.value.id !== user.id));\n\t\tsetValue(\n\t\t\tuserFields.teamLeader,\n\t\t\tuser.teamLeaderIDs\n\t\t\t\t?.map((id) => teamLeaders.find((teamLeader) => teamLeader.value.id === id && !teamLeader.value.deleted))\n\t\t\t\t.filter(Boolean)\n\t\t);\n\t}\n}\n","import { userFields } from '../../containers/UserContainer';\nimport { Service } from '../../service/service';\nimport User, { IdNamePair, UpdateEmployeeParams } from '../../service/types/User';\nimport { History, LocationState } from 'history';\nimport { replaceUserHistoryData } from '../navigationHelper';\nimport { KeyValue } from './generalUserHelper';\nimport { Group, GroupUser } from '../../pages/groupOverview/GroupOverview';\n\nexport function updateUser(\n\tdata: any,\n\tservice: Service,\n\tuser: User | undefined,\n\thistory: History,\n\tsetUser: (user: User | undefined) => void,\n\tsetIsUserEditing: (val: boolean) => void,\n\tsetGroups: (groups: Group[]) => void\n) {\n\tif (user) {\n\t\tconst updatedUser = getUpdatedUser(user, data) as UpdateEmployeeParams;\n\t\tservice\n\t\t\t.updateUserByID(user.id, {\n\t\t\t\t...(updatedUser as UpdateEmployeeParams),\n\t\t\t\tpassword: data[userFields.password],\n\t\t\t})\n\t\t\t.then((res) => {\n\t\t\t\tif (res) {\n\t\t\t\t\t// This will force new fetch on groups screen\n\t\t\t\t\tsetGroups([]);\n\n\t\t\t\t\tsetIsUserEditing(false);\n\t\t\t\t\tsetUser(User.fromUserUpdate({ ...data, id: user.id }));\n\t\t\t\t\treplaceUserHistoryData(history, { ...data, id: user.id });\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(() => {});\n\t}\n}\n\nfunction getUpdatedUser(user: User, data: any) {\n\treturn {\n\t\tid: user.id,\n\t\temail: data[userFields.email].trim(),\n\t\trole: data[userFields.role],\n\t\tfirst_name: data[userFields.firstName].trim(),\n\t\tlast_name: data[userFields.lastName].trim(),\n\t\torigin: data[userFields.originOfEmployee],\n\t\ttl:\n\t\t\tuserFields.teamLeader in data && data[userFields.teamLeader].length !== 0\n\t\t\t\t? data[userFields.teamLeader].map((item: KeyValue) => item.value.id)\n\t\t\t\t: undefined,\n\t\ttlGroupsIds:\n\t\t\tuserFields.tlGroups in data && data[userFields.tlGroups].length > 0\n\t\t\t\t? data[userFields.tlGroups]?.map((el: GroupUser) => el.id)\n\t\t\t\t: [],\n\t\tphonenumber: userFields.phonenumber in data ? data[userFields.phonenumber] : undefined,\n\t\tusername: userFields.username in data ? data[userFields.username].trim() : undefined,\n\t\tcontactFor:\n\t\t\tuserFields.contactFor in data && data[userFields.contactFor].length > 0\n\t\t\t\t? data[userFields.contactFor].map((el: IdNamePair) => el.id)\n\t\t\t\t: [],\n\t};\n}\n","import React, { useState } from 'react';\nimport { Chip } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport TextField from '@material-ui/core/TextField';\nimport AutoComplete from '@mui/material/Autocomplete';\nimport { withStyles, makeStyles } from '@material-ui/core/styles';\n\nimport ErrorIcon from '../svgComponents/ErrorIcon';\n\nimport { fonts } from '../consts/fonts';\nimport { colors } from '../consts/colors';\nimport { globalInputStyle, useGlobalStyles } from '../consts/globalStyles';\nimport DropdownArrow from '../svgComponents/DropdownArrow';\n\nconst TextFieldWithCSS = withStyles({\n\troot: {\n\t\t'& .MuiAutocomplete-popupIndicatorOpen': {\n\t\t\tmarginTop: '3px',\n\t\t},\n\t\t'& .MuiAutocomplete-popupIndicator': {\n\t\t\tmarginRight: '5px',\n\t\t\tmarginTop: '3px',\n\t\t\ttransition: 'all 0.5s',\n\t\t\tbackgroundColor: 'white',\n\t\t},\n\t\t'& .MuiIconButton-root:hover': {\n\t\t\tbackgroundColor: 'white',\n\t\t},\n\t\t'& .Mui-disabled': {\n\t\t\tcolor: colors.gray,\n\t\t\topacity: '0.7',\n\t\t},\n\t\t'& .MuiAutocomplete-inputRoot': {\n\t\t\tpaddingLeft: '12px',\n\t\t},\n\t\t'& .MuiInput-underline:before': {\n\t\t\tborderBottom: `0px solid ${colors.lightGray}`,\n\t\t},\n\t\t'& .MuiInput-input': {\n\t\t\t...globalInputStyle(),\n\t\t\tborderRadius: '5px',\n\t\t\tpaddingLeft: '12px',\n\t\t},\n\t\t'& .MuiInput-input.Mui-disabled': {\n\t\t\t...globalInputStyle(),\n\t\t\tcolor: colors.lightGray,\n\t\t\tborderRadius: '5px',\n\t\t\tpaddingLeft: '12px',\n\t\t},\n\t\t'& .MuiInput-underline:after': {\n\t\t\tborderBottom: `0px solid ${colors.lightGray}`,\n\t\t},\n\t\t'& label.Mui-focused:not(.Mui-error)': {\n\t\t\tcolor: colors.lightGray,\n\t\t},\n\t\t'& .MuiInput-underline:hover:not(.Mui-disabled):before': {\n\t\t\tborderBottom: `0px solid ${colors.lightGray}`,\n\t\t},\n\t\t'& .MuiInput-underline': {\n\t\t\tborderBottomStyle: 'none',\n\t\t},\n\t\t'& .MuiSelect-select:focus': {\n\t\t\tbackgroundColor: 'white',\n\t\t\tborderRadius: '5px',\n\t\t},\n\t\t'& .Mui-error': {\n\t\t\tcolor: colors.error,\n\t\t},\n\t\t'& .MuiTouchRipple-root': {\n\t\t\tdisplay: 'none',\n\t\t},\n\t},\n})(TextField);\n\ninterface Props {\n\tdisabled?: boolean;\n\tlabel: string;\n\tvalue: any[];\n\toptions: any[];\n\terror?: boolean;\n\tmultiple?: boolean;\n\tlimitTags?: number;\n\thelperText?: string;\n\tplaceholder?: string;\n\tdisableCloseOnSelect?: boolean;\n\tonChange: (event: any) => void;\n}\n\nexport default function Autocomplete({\n\tdisabled = false,\n\tlabel,\n\tvalue,\n\toptions,\n\terror,\n\tmultiple = false,\n\tlimitTags = 10,\n\thelperText,\n\tplaceholder,\n\tdisableCloseOnSelect,\n\tonChange,\n}: Props) {\n\tconst { t } = useTranslation();\n\tconst globalClasses = useGlobalStyles();\n\tconst [focused, setFocused] = useState(false);\n\n\tconst classes = useAutocompleteStyles({ focused, disabled });\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t{label}\n\t\t\t
\n\t\t\t option.id === value.id}\n\t\t\t\toptions={options}\n\t\t\t\tgetOptionLabel={(option) => option.name || ''}\n\t\t\t\tlimitTags={limitTags}\n\t\t\t\tmultiple={multiple}\n\t\t\t\tclasses={{\n\t\t\t\t\tinputRoot: classes.inputRoot,\n\t\t\t\t\tpaper: classes.dropdownContainer,\n\t\t\t\t\toption: classes.optionClass,\n\t\t\t\t\tclearIndicator: classes.clearIndicator,\n\t\t\t\t\tlistbox: classes.listBox,\n\t\t\t\t}}\n\t\t\t\tgetLimitTagsText={(val) => {`+${val} ${placeholder}`}}\n\t\t\t\tdisableCloseOnSelect={disableCloseOnSelect}\n\t\t\t\tnoOptionsText={t('autocomplete_no_options')}\n\t\t\t\tloadingText={t('autocomplete_loading')}\n\t\t\t\tonChange={(event, value) => onChange(value)}\n\t\t\t\trenderOption={(props, option) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t{option.name}\n\t\t\t\t\t\t
  • \n\t\t\t\t\t);\n\t\t\t\t}}\n\t\t\t\trenderInput={(params) => (\n\t\t\t\t\t
    \n\t\t\t\t\t\t setFocused(true),\n\t\t\t\t\t\t\t\tonBlur: () => setFocused(false),\n\n\t\t\t\t\t\t\t\tendAdornment: (\n\t\t\t\t\t\t\t\t\t
    {params.InputProps.endAdornment}
    \n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tlabel={undefined}\n\t\t\t\t\t\t\terror={error}\n\t\t\t\t\t\t\thelperText=\"\"\n\t\t\t\t\t\t\tclassName={classes.inputWrapper}\n\t\t\t\t\t\t/>\n\t\t\t\t\t
    \n\t\t\t\t)}\n\t\t\t\trenderTags={(tagValue, getTagProps) =>\n\t\t\t\t\ttagValue.map((option, index) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t);\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tpopupIcon={\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t}\n\t\t\t/>\n\t\t\t{error ? (\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t{helperText}\n\t\t\t\t
    \n\t\t\t) : null}\n\t\t
    \n\t);\n}\n\ninterface StyleProps {\n\tfocused: boolean;\n\tdisabled: boolean;\n}\n\nconst useAutocompleteStyles = makeStyles(() => ({\n\tlabel: (p: StyleProps) => ({\n\t\tcolor: p.disabled ? colors.lightGray : colors.gray,\n\t\tfontSize: '14px',\n\t\tlineHeight: '20px',\n\t\tfontFamily: fonts.regular,\n\t}),\n\tlabelWrapper: {\n\t\tmarginBottom: '4px',\n\t\tdisplay: 'flex',\n\t\twhiteSpace: 'pre-line',\n\t},\n\tinputWrapper: (p: StyleProps) => ({\n\t\twidth: '100%',\n\t\tborderRadius: '4px',\n\t\tbackgroundColor: colors.white,\n\t\tborder: `1px solid ${p.focused ? colors.darkGray : '#C0C0C0'}`,\n\t}),\n\tdropdownContainer: {\n\t\tboxShadow: 'none',\n\t\tborder: `1px solid ${colors.borderColor}`,\n\t},\n\trow: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tmarginTop: '3px',\n\t},\n\terror: {\n\t\tfontSize: '12px',\n\t\tlineHeight: '16px',\n\t\tfontFamily: fonts.regular,\n\t\tcolor: colors.error,\n\t},\n\terrorImageWrapper: { marginRight: '5px', height: '16px' },\n\tinputRow: { display: 'flex', alignItems: 'center' },\n\tchipHeight: {\n\t\theight: '26px',\n\t\tmargin: '3px',\n\t\tbackgroundColor: colors.someYellow,\n\t},\n\tinput: {\n\t\t...globalInputStyle(),\n\t\twhiteSpace: 'pre',\n\t\tcolor: colors.darkGray,\n\t\tborderRadius: '5px',\n\t\tpaddingLeft: '12px',\n\t},\n\toptionClass: {\n\t\t'&[aria-selected=true]': {\n\t\t\tbackgroundColor: colors.white,\n\t\t},\n\t\t'&[aria-selected=true]:hover': {\n\t\t\tbackgroundColor: 'rgba(0,0,0,0.04)',\n\t\t},\n\t},\n\tdeleteIcon: {\n\t\tcolor: colors.darkGray,\n\t},\n\tinputRoot: {\n\t\tpaddingRight: '30px',\n\t\tminHeight: '35px',\n\t},\n\tclearIndicator: {\n\t\tdisplay: 'inline-flex',\n\t},\n\tlistBox: {\n\t\toverflow: 'hidden',\n\t\tmaxHeight: 'unset',\n\t},\n\tendAdormentWrapper: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t},\n\tdropdownArrowWrapper: {\n\t\theight: 'fit-content',\n\t\tpadding: '5px 5px',\n\t\talignItems: 'center',\n\t\tdisplay: 'flex',\n\t},\n}));\n","import { atom } from 'jotai';\nimport { Group } from '../pages/groupOverview/GroupOverview';\n\nexport const groupAtom = atom([]);\n","import { atom } from 'jotai';\nimport Customer from '../service/types/Customer';\n\nexport const allCustomersAtom = atom([]);\n","import { Grid, makeStyles, MenuItem } from '@material-ui/core';\nimport React from 'react';\nimport { Control, Controller } from 'react-hook-form';\nimport { useTranslation } from 'react-i18next';\n\nimport KeyValueAutoComplete from '../components/KeyValueAutoComplete';\nimport StandardCRUDButtons from '../components/StandardCRUDButtons';\nimport StandardDialog, { StandardDialogInterface } from '../components/StandardDialog';\nimport StandardTextField from '../components/StandardTextField';\nimport { globalInputStyle, useGlobalStyles } from '../consts/globalStyles';\nimport {\n\tstandardPasswordReset,\n\tqaiPasswordReset,\n\tMAX_PASSWORD_LENGTH,\n\tMIN_PASSWORD_LENGTH,\n\tQAI_PASSWORD_LENGTH,\n} from '../consts/login';\nimport { rules } from '../consts/rules';\nimport {\n\tMIN_ABBRIVIATION_LENGTH,\n\tMIN_PHONE_NUMBER_LENGTH,\n\tMIN_USER_NAME_LENGTH,\n\tuserFields,\n} from '../containers/UserContainer';\nimport { KeyValue, originOfEmployeeKeyValuePairs } from '../helpers/userHelper/generalUserHelper';\nimport { Routes } from '../router/Routes';\nimport User, { UserRole } from '../service/types/User';\nimport GoBack from '../svgComponents/GoBack';\nimport HomeButton from '../svgComponents/HomeButton';\nimport Autocomplete from '../components/Autocomplete';\nimport { useAtom } from 'jotai';\nimport { groupAtom } from '../atoms/group';\nimport { allCustomersAtom } from '../atoms/allCustomers';\n\ninterface Props {\n\tcontrol: Control>;\n\terrors: Record;\n\tuserRole: UserRole;\n\tuser: User | undefined;\n\tisUserEditing: boolean;\n\tteamLeaders: KeyValue[];\n\tdialogRef: React.MutableRefObject;\n\tuserRoles: KeyValue[];\n\troute?: string;\n\tonTeamLeaderFieldPress: () => void;\n\tonSubmitPress: () => void;\n\tonCancelPress: () => void;\n\tonDeletePress: () => void;\n\tonCancelDialogPress: () => void;\n\tonDeleteUserDialogPress: () => void;\n}\n\nfunction UserScreen({\n\tcontrol,\n\terrors,\n\tuserRole,\n\tuser,\n\tisUserEditing,\n\tteamLeaders,\n\tdialogRef,\n\tuserRoles,\n\troute = Routes.Users,\n\tonTeamLeaderFieldPress,\n\tonSubmitPress,\n\tonCancelPress,\n\tonDeletePress,\n\tonCancelDialogPress,\n\tonDeleteUserDialogPress,\n}: Props) {\n\tconst classes = useStyles({ disabled: !isUserEditing });\n\tconst globalClasses = useGlobalStyles();\n\tconst { t } = useTranslation();\n\tconst [groups] = useAtom(groupAtom);\n\tconst [allCustomers] = useAtom(allCustomersAtom);\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t{user ? `${user.firstName} ${user.lastName}` : t('user_screen_title')}\n\t\t\t\t\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t{t('user_screen_subtitle')}\n\t\t\t
    \n\t\t\t\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{originOfEmployeeKeyValuePairs.map((item) => (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t{t(item.key)}\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{userRoles.map((item) => (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t{t(item.key)}\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\n\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t{userRole === UserRole.TeamLeader ? (\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t ({ id: group.groupId, name: group.name })) ?? []}\n\t\t\t\t\t\t\t\t\t\tvalue={value}\n\t\t\t\t\t\t\t\t\t\tdisableCloseOnSelect={false}\n\t\t\t\t\t\t\t\t\t\tmultiple\n\t\t\t\t\t\t\t\t\t\tplaceholder=\"\"\n\t\t\t\t\t\t\t\t\t\terror={errors[userFields.tlGroups] ? true : false}\n\t\t\t\t\t\t\t\t\t\thelperText={\n\t\t\t\t\t\t\t\t\t\t\terrors[userFields.tlGroups] ? errors[userFields.tlGroups].message : ''\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : null}\n\n\t\t\t\t\t{userRole === UserRole.Customer ? (\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t ({\n\t\t\t\t\t\t\t\t\t\t\tid: el.id,\n\t\t\t\t\t\t\t\t\t\t\tname: el.name,\n\t\t\t\t\t\t\t\t\t\t}))}\n\t\t\t\t\t\t\t\t\t\tvalue={value}\n\t\t\t\t\t\t\t\t\t\tdisableCloseOnSelect={false}\n\t\t\t\t\t\t\t\t\t\tmultiple\n\t\t\t\t\t\t\t\t\t\tplaceholder=\"\"\n\t\t\t\t\t\t\t\t\t\terror={errors[userFields.contactFor] ? true : false}\n\t\t\t\t\t\t\t\t\t\thelperText={\n\t\t\t\t\t\t\t\t\t\t\terrors[userFields.contactFor] ? errors[userFields.contactFor].message : ''\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : null}\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\n\t\t\t\t{userRole === UserRole.QualityAssuranceInspector ? (\n\t\t\t\t\t<>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (user!.role !== UserRole.QualityAssuranceInspector && !val)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn rules(t).minLength(QAI_PASSWORD_LENGTH).message;\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (!val) return true;\n\t\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (val.length < QAI_PASSWORD_LENGTH) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn rules(t).minLength(QAI_PASSWORD_LENGTH).message;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (val.length > QAI_PASSWORD_LENGTH) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn rules(t).minLength(QAI_PASSWORD_LENGTH).message;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (!/^\\d+$/.test(val)) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn rules(t).numberPattern.message;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t: { ...qaiPasswordReset.rules(t).password }\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\trender={({ onChange, value }) => (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tif (val && val.length !== 0) {\n\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\treturn rules(t).required.message;\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\trender={({ onChange, value }) => (\n\t\t\t\t\t\t\t\t\t !el.value.deleted)}\n\t\t\t\t\t\t\t\t\t\tmultiple={true}\n\t\t\t\t\t\t\t\t\t\tvalue={value}\n\t\t\t\t\t\t\t\t\t\tdisableCloseOnSelect={true}\n\t\t\t\t\t\t\t\t\t\tonOpen={onTeamLeaderFieldPress}\n\t\t\t\t\t\t\t\t\t\tdisabled={!isUserEditing}\n\t\t\t\t\t\t\t\t\t\terror={errors[userFields.teamLeader] ? true : false}\n\t\t\t\t\t\t\t\t\t\thelperText={\n\t\t\t\t\t\t\t\t\t\t\terrors[userFields.teamLeader] ? errors[userFields.teamLeader].message : ''\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t) : (\n\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\tif (user!.role === UserRole.QualityAssuranceInspector && !val)\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn rules(t).minLength(MAX_PASSWORD_LENGTH).message;\n\t\t\t\t\t\t\t\t\t\t\t\tif (!val) return true;\n\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (val.length < MIN_PASSWORD_LENGTH) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn rules(t).minLength(MIN_PASSWORD_LENGTH).message;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (val.length > MAX_PASSWORD_LENGTH) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn rules(t).minLength(MAX_PASSWORD_LENGTH).message;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t: { ...standardPasswordReset.rules(t).password }\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\trender={({ onChange, value }) => (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\t\n\n\t\t\t\t{userRole === UserRole.QualityAssuranceInspector ? (\n\t\t\t\t\t\n\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t) : null}\n\n\t\t\t\t\n\t\t\t\n\t\t\t
    \n\t\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t
    \n\t);\n}\n\ninterface StyleProps {\n\tdisabled: boolean;\n}\n\nconst useStyles = makeStyles(() => ({\n\ttitleWrapper: {\n\t\tmarginBottom: '24px',\n\t},\n\tsubtitleWrapper: {\n\t\tmarginBottom: '28px',\n\t},\n\tinput: (props: StyleProps) => ({\n\t\t...globalInputStyle(props.disabled),\n\t\twhiteSpace: 'pre',\n\t}),\n\tinputWrapper: {\n\t\ttransform: 'translateY(-2px)',\n\t\ttextOverflow: 'ellipsis',\n\t\toverflow: 'hidden',\n\t},\n\tfieldWrapper: {\n\t\tpadding: '16px !important',\n\t},\n\trowWrapper: {\n\t\tdisplay: 'flex',\n\t\tmargin: '48px 0px',\n\t\talignItems: 'center',\n\t},\n\tpinWrapper: {\n\t\tmarginTop: '16px',\n\t},\n}));\n\nexport default UserScreen;\n","import React, { useState, useEffect, useMemo } from 'react';\nimport { useForm } from 'react-hook-form';\nimport { useTranslation } from 'react-i18next';\nimport { useHistory, useLocation, useParams } from 'react-router-dom';\nimport Spinner from '../components/Spinner';\nimport { StandardDialogInterface } from '../components/StandardDialog';\nimport { latin } from '../consts/latinLetters';\nimport { useNotificationActionContext } from '../context/notification/useNotification';\nimport { goToUsers } from '../helpers/navigationHelper';\nimport { createUser } from '../helpers/userHelper/createUserHelper';\nimport { deleteUser } from '../helpers/userHelper/deleteUserHelper';\n\nimport { KeyValue, createUserRoleKeyValuePairs, externalEmployeeRoles } from '../helpers/userHelper/generalUserHelper';\nimport { getUserOptionsKeyValuePairs, onUserScreenMount, setUserInfo } from '../helpers/userHelper/readUserHelper';\nimport { updateUser } from '../helpers/userHelper/updateUserHelper';\nimport { RouteParams } from '../router/Routes';\nimport UserScreen from '../screens/UserScreen';\nimport service from '../service/service';\nimport User, { OriginOfEmployee, UserRole } from '../service/types/User';\nimport { useSetAtom } from 'jotai';\nimport { groupAtom } from '../atoms/group';\n\nexport const userFields = {\n\tfirstName: 'firstName',\n\tlastName: 'lastName',\n\temail: 'email',\n\toriginOfEmployee: 'originOfEmployee',\n\trole: 'role',\n\ttlGroups: 'tlGroups',\n\tteamLeader: 'teamLeader',\n\tpassword: 'password',\n\tusername: 'username',\n\tphonenumber: 'phonenumber',\n\tcontactFor: 'contactFor',\n};\n\nexport interface BackTo {\n\tbackTo?: string;\n}\n\nexport const MIN_PHONE_NUMBER_LENGTH = 4;\nexport const MIN_USER_NAME_LENGTH = 2;\nexport const MIN_ABBRIVIATION_LENGTH = 4;\n\nfunction UserContainer() {\n\tconst { control, handleSubmit, errors, setValue, watch, setError, clearErrors } = useForm();\n\tconst [isUserEditing, setIsUserEditing] = React.useState(false);\n\tconst [user, setUser] = React.useState(undefined);\n\tconst [mounted, setMounted] = React.useState(false);\n\tconst [teamLeaders, setTeamLeaders] = React.useState([]);\n\tconst autoCompleteRef = React.useRef(false);\n\tconst dialogRef = React.useRef(null);\n\tconst history = useHistory();\n\tconst { t } = useTranslation();\n\tconst { setNotification } = useNotificationActionContext();\n\tconst routeParams: RouteParams = useParams();\n\tconst origin = watch(userFields.originOfEmployee);\n\tconst userRole = watch(userFields.role);\n\tconst userFirstName = watch(userFields.firstName);\n\tconst userLastName = watch(userFields.lastName);\n\tconst [userRoles, setUserRoles] = useState(externalEmployeeRoles);\n\tconst { state }: { state?: BackTo } = useLocation();\n\tconst setGroups = useSetAtom(groupAtom);\n\n\tuseEffect(() => {\n\t\tonUserScreenMount(history, routeParams, setUser, setIsUserEditing, setMounted);\n\t}, [history, routeParams]);\n\n\tconst onTeamLeaderDropdownPress = async () => {\n\t\tif (!autoCompleteRef.current && teamLeaders.length === 0) {\n\t\t\tautoCompleteRef.current = true;\n\t\t\tconst resUsers = await getUserOptionsKeyValuePairs(service.getAllTeamLeaders(), () => {});\n\t\t\tautoCompleteRef.current = false;\n\t\t\tsetTeamLeaders(\n\t\t\t\tresUsers.filter((teamleader) => teamleader.value.id !== user?.id && !teamleader.value.deleted)\n\t\t\t);\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\tif (!user && userRole === UserRole.QualityAssuranceInspector) {\n\t\t\tconst firstCharOfName = userFirstName ? (userFirstName as string).charAt(0).toLowerCase() : '';\n\t\t\tconst lastfName = userLastName ? (userLastName as string).toLowerCase() : '';\n\t\t\tsetValue(\n\t\t\t\tuserFields.username,\n\t\t\t\t(firstCharOfName + lastfName).split('').reduce((prev: string, cur: string) => {\n\t\t\t\t\t//@ts-ignore\n\t\t\t\t\treturn prev + latin[cur];\n\t\t\t\t}, '')\n\t\t\t);\n\t\t}\n\t}, [user, setValue, userFirstName, userLastName, userRole]);\n\n\tuseEffect(() => {\n\t\tif (user) {\n\t\t\tsetUserInfo(user, autoCompleteRef, service, setValue, setTeamLeaders);\n\t\t}\n\t}, [user, setValue]);\n\n\tuseEffect(() => {\n\t\tsetUserRoles(origin === OriginOfEmployee.External ? externalEmployeeRoles : createUserRoleKeyValuePairs);\n\n\t\tif (origin === OriginOfEmployee.FromIQR && userRole === UserRole.Customer) setValue(userFields.role, '');\n\t}, [origin, setValue, userRole]);\n\n\tconst onCreatePress = useMemo(\n\t\t() =>\n\t\t\thandleSubmit((data) => {\n\t\t\t\tcreateUser(data, history, service, setError, t, setGroups);\n\t\t\t}),\n\t\t[handleSubmit, history, setError, t, setGroups]\n\t);\n\tconst onEditPress = () => setIsUserEditing(true);\n\n\tconst onUpdatePress = useMemo(\n\t\t() =>\n\t\t\thandleSubmit((data) => {\n\t\t\t\tupdateUser(data, service, user, history, setUser, setIsUserEditing, setGroups);\n\t\t\t}),\n\t\t[user, history, handleSubmit, setGroups]\n\t);\n\tconst onCancelPress = () => {\n\t\tif (user) {\n\t\t\tsetUserInfo(user, autoCompleteRef, service, setValue, setTeamLeaders);\n\t\t\tsetIsUserEditing(false);\n\t\t\tclearErrors();\n\t\t} else goToUsers(history);\n\t};\n\n\tconst onDeletePress = () => dialogRef.current?.setDialogState(true);\n\n\tconst onCancelDialogPress = () => dialogRef.current?.setDialogState(false);\n\n\tconst onDeleteUserDialogPress = () => {\n\t\tdeleteUser(service, user, history, setNotification, setGroups);\n\t};\n\n\tconst onSubmitPress = () => {\n\t\tif (user) {\n\t\t\tif (isUserEditing) {\n\t\t\t\tonUpdatePress();\n\t\t\t} else {\n\t\t\t\tonEditPress();\n\t\t\t}\n\t\t} else {\n\t\t\tonCreatePress();\n\t\t}\n\t};\n\n\tif (!mounted) return ;\n\n\treturn (\n\t\t\n\t);\n}\n\nexport default UserContainer;\n","import { Service } from '../../service/service';\nimport User from '../../service/types/User';\nimport { History, LocationState } from 'history';\nimport { goToUsers } from '../navigationHelper';\nimport { NotificationInterface } from '../../context/notification/notificationReducer';\nimport { Group } from '../../pages/groupOverview/GroupOverview';\n\nexport function deleteUser(\n\tservice: Service,\n\tuser: User | undefined,\n\thistory: History,\n\tsetNotification: (notification: NotificationInterface) => void,\n\tsetGroups: (groups: Group[]) => void\n) {\n\tif (user)\n\t\tservice\n\t\t\t.deleteUserByID(user.id)\n\t\t\t.then((res) => {\n\t\t\t\tif (res) {\n\t\t\t\t\t// This will force new fetch on groups screen\n\t\t\t\t\tsetGroups([]);\n\n\t\t\t\t\tgoToUsers(history);\n\n\t\t\t\t\tsetNotification({\n\t\t\t\t\t\ttext: 'user_screen_delete_notification',\n\t\t\t\t\t\tadditional: `${user.firstName} ${user.lastName}`,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(() => {});\n}\n","import { Grid, makeStyles } from '@material-ui/core';\nimport React from 'react';\nimport { Control, Controller } from 'react-hook-form';\nimport { useTranslation } from 'react-i18next';\nimport Filter from '../components/Filter';\nimport KeyValueAutoComplete from '../components/KeyValueAutoComplete';\nimport NewLink from '../components/NewLink';\n\nimport StandardTextField from '../components/StandardTextField';\nimport UserList from '../components/UserList';\nimport { globalInputStyle, useGlobalStyles } from '../consts/globalStyles';\nimport { userFields } from '../containers/UserContainer';\nimport { initUserFilters, UserFilterKeys } from '../containers/UserOverviewContainer';\nimport { checkIfUserStopWriting } from '../helpers/filters';\nimport { filterOriginOfEmployee, filterUserRole } from '../helpers/userHelper/generalUserHelper';\nimport { Routes } from '../router/Routes';\nimport User, { UserFilterInterface } from '../service/types/User';\nimport HomeButton from '../svgComponents/HomeButton';\nimport IQRLogo from '../svgComponents/IQRLogo';\n\ninterface Props {\n\tusers: User[];\n\tfilters: UserFilterInterface;\n\tcontrol: Control>;\n\tonFilterChange: (key: UserFilterKeys, value: any) => void;\n\tonEditPress: (user: User) => void;\n\tonNewUserClick: () => void;\n\tclearAllFilters: () => void;\n}\n\nfunction UserOverviewScreen(props: Props) {\n\tconst [showFilters, setShowFilters] = React.useState(false);\n\tconst globalClasses = useGlobalStyles({ showFilters });\n\tconst classes = useStyles({});\n\tconst { t } = useTranslation();\n\tconst filterListRef = React.useRef(null);\n\tconst searchRef = React.useRef({ ...initUserFilters });\n\tconst onFilterPress = () => setShowFilters((prev) => !prev);\n\n\treturn (\n\t\t
    \n\t\t\t\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{t('user_overview_screen_title')}\n\t\t\t\t
    \n\t\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tonChange(e);\n\t\t\t\t\t\t\t\t\t\tcheckIfUserStopWriting(e, props.onFilterChange, searchRef, 'firstName');\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tonChange(e);\n\t\t\t\t\t\t\t\t\t\tcheckIfUserStopWriting(e, props.onFilterChange, searchRef, 'lastName');\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tif (value.key === '') return false;\n\t\t\t\t\t\t\t\treturn t(option.key) === t(value.key);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tlabel={t('user_overview_screen_origin')}\n\t\t\t\t\t\t\tmultiple={false}\n\t\t\t\t\t\t\tonChange={(e) => {\n\t\t\t\t\t\t\t\tif (e) {\n\t\t\t\t\t\t\t\t\tprops.onFilterChange('originOfEmployee', e.value);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tprops.onFilterChange('originOfEmployee', '');\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\toptions={filterOriginOfEmployee}\n\t\t\t\t\t\t\tvalue={{\n\t\t\t\t\t\t\t\tkey:\n\t\t\t\t\t\t\t\t\tprops.filters.originOfEmployee === ''\n\t\t\t\t\t\t\t\t\t\t? ''\n\t\t\t\t\t\t\t\t\t\t: t(filterOriginOfEmployee[props.filters.originOfEmployee - 1].key),\n\t\t\t\t\t\t\t\tvalue: props.filters.originOfEmployee,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\twithoutClose={false}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tif (value.key === '') return false;\n\t\t\t\t\t\t\t\treturn t(option.key) === t(value.key);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tlabel={t('user_overview_screen_role')}\n\t\t\t\t\t\t\tmultiple={false}\n\t\t\t\t\t\t\tonChange={(e) => {\n\t\t\t\t\t\t\t\tif (e) {\n\t\t\t\t\t\t\t\t\tprops.onFilterChange('role', e.value);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tprops.onFilterChange('role', '');\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\toptions={filterUserRole}\n\t\t\t\t\t\t\tvalue={{\n\t\t\t\t\t\t\t\tkey: props.filters.role === '' ? '' : t(filterUserRole[props.filters.role].key),\n\t\t\t\t\t\t\t\tvalue: props.filters.role,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\twithoutClose={false}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t !item.deleted)}\n\t\t\t\tonFilterChange={props.onFilterChange}\n\t\t\t\tfilters={props.filters}\n\t\t\t\tonEditPress={props.onEditPress}\n\t\t\t/>\n\t\t
    \n\t);\n}\n\ninterface StyleProps {\n\tdisabled?: boolean;\n}\n\nconst useStyles = makeStyles(() => ({\n\trow: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tjustifyContent: 'space-between',\n\t},\n\ttitleWrapper: {\n\t\tmarginBottom: '12px',\n\t},\n\tinput: (props: StyleProps) => ({\n\t\t...globalInputStyle(props.disabled),\n\t\twhiteSpace: 'pre',\n\t}),\n\tinputWrapper: {\n\t\tminHeight: '20px',\n\t\ttransform: 'translateY(-2px)',\n\t\ttextOverflow: 'ellipsis',\n\t\toverflow: 'hidden',\n\t},\n}));\n\nexport default UserOverviewScreen;\n","import React from 'react';\nimport { unstable_batchedUpdates } from 'react-dom';\nimport { useForm } from 'react-hook-form';\nimport { useHistory } from 'react-router-dom';\nimport Spinner from '../components/Spinner';\n\nimport { filterData } from '../helpers/filters';\nimport { goToUser } from '../helpers/navigationHelper';\nimport UserOverviewScreen from '../screens/UserOverviewScreen';\nimport service from '../service/service';\nimport User, { UserFilterInterface } from '../service/types/User';\nimport { userFields } from './UserContainer';\n\nexport const initUserFilters: UserFilterInterface = {\n\trole: '',\n\tlastName: '',\n\tfirstName: '',\n\toriginOfEmployee: '',\n};\nconst data = Object.freeze({ ...initUserFilters });\nexport type UserFilterKeys = keyof typeof data;\n\nfunction UserOverviewContainer() {\n\tconst { control, setValue } = useForm();\n\tconst [users, setUsers] = React.useState([]);\n\tconst [filters, setFilters] = React.useState(initUserFilters);\n\tconst allUsersRef = React.useRef([]);\n\tconst history = useHistory();\n\tconst [mounted, setMounted] = React.useState(false);\n\n\tconst onFilterChange = (key: UserFilterKeys, value: string) => {\n\t\tconst tempValue = value === ' ' ? '' : value;\n\t\tsetFilters((prev) => ({ ...prev, [key]: tempValue }));\n\t\tsetUsers(filterData({ ...filters, [key]: tempValue }, allUsersRef.current));\n\t};\n\n\tconst clearAllFilters = () => {\n\t\tObject.values(userFields).forEach((val) => setValue(val, ''));\n\t\tsetFilters(initUserFilters);\n\t};\n\n\tconst onNewUserClick = () => goToUser(history);\n\n\tReact.useEffect(() => {\n\t\tservice\n\t\t\t.getAllUsers()\n\t\t\t.then((users) => {\n\t\t\t\tunstable_batchedUpdates(() => {\n\t\t\t\t\tsetUsers(users);\n\t\t\t\t\tallUsersRef.current = users;\n\t\t\t\t\tsetMounted(true);\n\t\t\t\t});\n\t\t\t})\n\t\t\t.catch(() => {});\n\t}, []);\n\n\tReact.useEffect(() => {\n\t\tsetUsers(filterData(filters, allUsersRef.current));\n\t}, [filters]);\n\n\tconst onEditPress = (user: User) => {\n\t\tconst currentUser = allUsersRef.current.find((item) => item.id === user.id)!;\n\t\tgoToUser(history, currentUser);\n\t};\n\n\tif (!mounted) return ;\n\n\treturn (\n\t\t\n\t);\n}\n\nexport default UserOverviewContainer;\n","import { makeStyles } from '@material-ui/core';\nimport React from 'react';\nimport { colors } from '../consts/colors';\nimport { useGlobalStyles } from '../consts/globalStyles';\nimport CheckboxEmpty from '../svgComponents/CheckboxEmpty';\nimport CheckboxFilled from '../svgComponents/CheckboxFilled';\n\ninterface Props {\n\tvalue: boolean;\n\tname: string;\n\tdisabled: boolean;\n\tonChange: (val: boolean) => void;\n\tcustomOnChange?: (val: boolean, name: string) => void;\n\tcustomName?: string;\n}\n\nfunction StandardCheckbox(props: Props) {\n\tconst classes = useStyles({ disabled: props.disabled });\n\tconst globalClasses = useGlobalStyles({ description: colors.gray });\n\n\treturn (\n\t\t {\n\t\t\t\tif (!props.disabled) {\n\t\t\t\t\tif (props.customOnChange && props.customName) {\n\t\t\t\t\t\tprops.customOnChange(!props.value, props.customName);\n\t\t\t\t\t}\n\t\t\t\t\tprops.onChange(!props.value);\n\t\t\t\t}\n\t\t\t}}>\n\t\t\t{props.value ? : }\n\t\t\t{props.name ? {props.name} : null}\n\t\t\n\t);\n}\n\ninterface StyleProps {\n\tdisabled: boolean;\n}\n\nconst useStyles = makeStyles({\n\twrapper: (p: StyleProps) => ({\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tcursor: p.disabled ? 'default' : 'pointer',\n\t\twidth: 'fit-content',\n\t}),\n\tmargin: {\n\t\tmarginRight: '12px',\n\t},\n});\nexport default StandardCheckbox;\n","import DateFnsUtils from '@date-io/date-fns';\nimport { makeStyles, withStyles } from '@material-ui/core/styles';\nimport { KeyboardDatePicker, MuiPickersUtilsProvider } from '@material-ui/pickers';\nimport { de, enGB } from 'date-fns/locale';\nimport { Moment } from 'moment';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { colors } from '../consts/colors';\nimport { globalInputStyle, useGlobalStyles } from '../consts/globalStyles';\nimport i18n from '../i18n';\nimport ErrorIcon from '../svgComponents/ErrorIcon';\n\nexport const DatePickerWithStyles = withStyles({\n\troot: {\n\t\tminWidth: 170,\n\t\t'& label.Mui-focused:not(.Mui-error)': {\n\t\t\tcolor: colors.lightGray,\n\t\t},\n\t\t'& .MuiInput-underline:hover:not(.Mui-disabled):before': {\n\t\t\tborderBottom: `0px solid ${colors.lightGray}`,\n\t\t},\n\t\t'& .MuiInput-input': {\n\t\t\tcursor: 'text'\n\t\t},\n\t\t'& .MuiInput-underline': {\n\t\t\tborderBottomStyle: 'none',\n\t\t},\n\t\t'& .MuiSelect-select:focus': {\n\t\t\tbackgroundColor: 'white',\n\t\t\tborderRadius: '5px',\n\t\t},\n\t\t'& .Mui-error': {\n\t\t\tcolor: colors.error,\n\t\t},\n\t},\n})(KeyboardDatePicker);\n\ninterface Props {\n\tlabel: string;\n\tonChange: (event: any) => void;\n\terror?: boolean;\n\thelperText?: string;\n\tisUserNotEditing?: boolean;\n\tinputWrapper?: string;\n\twrapper?: string;\n\tdisabled?: boolean;\n\tfixed?: boolean;\n\tvalue?: string | Moment;\n\tclearable?: boolean;\n\tendAdornment?: React.ReactNode;\n}\n\nfunction StandardDatePicker(props: Props) {\n\tconst classes = useStyles({\n\t\tdisabled: props.disabled,\n\t\tfixed: props.fixed,\n\t});\n\tconst globalClasses = useGlobalStyles({\n\t\tdisabled: props.disabled,\n\t\tisUserNotEditing: props.isUserNotEditing,\n\t\tfixed: props.fixed,\n\t});\n\tconst [isOpen, setIsOpen] = React.useState(false);\n\tconst { t } = useTranslation();\n\n\tconst currentLanguage = i18n.language;\n\n\treturn (\n\t\t
    \n\t\t\t{props.label !== '' ? (\n\t\t\t\t
    \n\t\t\t\t\t{props.label}\n\t\t\t\t
    \n\t\t\t) : null}\n\t\t\t\n\t\t\t\t setIsOpen(true)}\n\t\t\t\t\tclearable={props.clearable}\n\t\t\t\t\tclearLabel={t('data_clear_button')}\n\t\t\t\t\torientation=\"portrait\"\n\t\t\t\t\tonClose={() => {\n\t\t\t\t\t\tsetIsOpen(false);\n\t\t\t\t\t}}\n\t\t\t\t\tclassName={props.inputWrapper ? props.inputWrapper : classes.inputWrapper}\n\t\t\t\t\tonChange={(val) => {\n\t\t\t\t\t\tprops.onChange(val);\n\t\t\t\t\t}}\n\t\t\t\t\tInputProps={{\n\t\t\t\t\t\tendAdornment: props.endAdornment,\n\t\t\t\t\t\tclasses: {\n\t\t\t\t\t\t\tinput: classes.input,\n\t\t\t\t\t\t\tunderline: classes.underlineField,\n\t\t\t\t\t\t},\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t\n\n\t\t\t{props.error ? (\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t{props.helperText}\n\t\t\t\t
    \n\t\t\t) : null}\n\t\t
    \n\t);\n}\n\ninterface StyleProps {\n\tdisabled?: boolean;\n\tfixed?: boolean;\n}\n\nconst useStyles = makeStyles(() => ({\n\thide: {\n\t\tdisplay: 'none',\n\t},\n\tlabelWrapper: {\n\t\tmarginBottom: '4px',\n\t\tdisplay: 'flex',\n\t\twhiteSpace: 'pre',\n\t},\n\tunderlineField: {\n\t\t'&:before': {\n\t\t\tborderBottom: `0px solid ${colors.lightGray}`,\n\t\t},\n\t\t'&:after': {\n\t\t\tborderBottom: `0px solid ${colors.lightGray}`,\n\t\t},\n\t},\n\tinputWrapper: (p: StyleProps) => ({\n\t\twidth: '100%',\n\t\tborderRadius: '4px',\n\t\tbackgroundColor: p.fixed ? 'rgba(161, 161, 161, 0.2)' : colors.white,\n\t\tborder: '1px solid #C0C0C0',\n\t}),\n\tdropdownContainer: {\n\t\tboxShadow: 'none',\n\t\tborder: `1px solid ${colors.borderColor}`,\n\t},\n\tdropdownArrowWrapper: { position: 'absolute', right: '12.5px', cursor: 'pointer' },\n\tdropdownMenuWrapper: {\n\t\theight: '1.1876em',\n\t},\n\t'& .Mui-disabled': (p: StyleProps) => ({\n\t\tcolor: `${p.disabled ? colors.lightGray : colors.darkGray} !important`,\n\t}),\n\tinput: (p: StyleProps) => ({\n\t\t...globalInputStyle(p.disabled),\n\t\twhiteSpace: 'pre',\n\t\tborderRadius: '5px',\n\t\tpaddingLeft: '12px',\n\t\tcursor: p.disabled ? 'default' : 'pointer',\n\t}),\n\n\trow: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tmarginTop: '3px',\n\t},\n\terrorImageWrapper: { marginRight: '5px', height: '16px' },\n}));\n\nexport default StandardDatePicker;\n","import * as React from 'react';\n\nfunction RemoveIcon(props: any) {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n\nexport default RemoveIcon;\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core';\nimport { FileInterface } from '../helpers/contractHelper/generalContractHelper';\nimport { colors } from '../consts/colors';\nimport { fonts } from '../consts/fonts';\n\ninterface Props {\n\tvalue: FileInterface;\n}\n\nexport const SPLITTER = '__';\nconst FILE_LOCATION_NAME = '/contract-attachments/';\n\nfunction FileLink(props: Props) {\n\tconst classes = useStyles({ disabled: props.value.data ? true : false });\n\n\tconst name = React.useMemo(() => {\n\t\treturn showFormatedName(props.value.name);\n\t}, [props.value]);\n\n\treturn !props.value.data && props.value.name ? (\n\t\t\n\t\t\t{name}\n\t\t\n\t) : (\n\t\t{name}\n\t);\n}\n\ninterface StyleProps {\n\tdisabled: boolean;\n}\n\nconst useStyles = makeStyles(() => ({\n\tpdf: (p: StyleProps) => ({\n\t\tcursor: p.disabled ? 'default' : 'pointer',\n\t\tcolor: colors.darkGray,\n\t\tfontSize: '14px',\n\t\tlineHeight: '20px',\n\t\ttextDecoration: 'underline',\n\t\tfontFamily: fonts.regular,\n\t\twidth: 'fit-content',\n\t}),\n}));\n\nfunction showFormatedName(name: string) {\n\tif (name) {\n\t\tconst splittedName = name.split(SPLITTER);\n\t\treturn splittedName.length > 1 ? splittedName[1] : splittedName[0];\n\t}\n\treturn '';\n}\n\nexport default FileLink;\n","import { makeStyles } from '@material-ui/core';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { colors } from '../consts/colors';\nimport { fonts } from '../consts/fonts';\nimport { useGlobalStyles } from '../consts/globalStyles';\nimport { FileInterface } from '../helpers/contractHelper/generalContractHelper';\nimport ErrorIcon from '../svgComponents/ErrorIcon';\nimport RemoveIcon from '../svgComponents/RemoveIcon';\nimport FileLink, { SPLITTER } from './FileLink';\n\ninterface Props {\n\tlabel: string;\n\tname: string;\n\tonChange: (event: any) => void;\n\tdisabled: boolean;\n\ticon: JSX.Element;\n\tmultiple: boolean;\n\tvalue?: FileInterface | FileInterface[];\n\terror?: boolean;\n\thelperText?: string;\n\tplaceholder?: string;\n\tmargin?: number;\n}\n\nexport interface FileInputIntreface {\n\tsetNewValues: (val: FileInterface[]) => void;\n}\n\nfunction StandardFileInput(\n\t{ label, name, onChange, disabled, icon, multiple, value, error, helperText, placeholder, margin }: Props,\n\tref: any\n) {\n\tconst classes = useStyles({ disabled: disabled, multiple: multiple, margin: margin });\n\tconst { t } = useTranslation();\n\tconst globalClasses = useGlobalStyles();\n\tconst newValues = React.useRef([]);\n\n\tReact.useImperativeHandle(\n\t\tref,\n\t\t(): FileInputIntreface => ({\n\t\t\tsetNewValues: (val: FileInterface[]) => {\n\t\t\t\tnewValues.current = val;\n\t\t\t},\n\t\t})\n\t);\n\n\tconst onChangeHandler = (files: FileList, index: number) => {\n\t\ttry {\n\t\t\tlet reader = new FileReader();\n\t\t\tif (files) reader.readAsDataURL(files[index]);\n\t\t\treader.onload = function () {\n\t\t\t\tif (reader.result && files)\n\t\t\t\t\tif (!multiple)\n\t\t\t\t\t\tonChange({\n\t\t\t\t\t\t\tname: files[index].name,\n\t\t\t\t\t\t\tdata: reader.result.toString().split(',')[1],\n\t\t\t\t\t\t});\n\t\t\t\t\telse {\n\t\t\t\t\t\tnewValues.current = [\n\t\t\t\t\t\t\t{ name: files[index].name, data: reader.result.toString().split(',')[1] },\n\t\t\t\t\t\t\t...newValues.current.filter((val) => {\n\t\t\t\t\t\t\t\tconst splittedName = val.name.split(SPLITTER);\n\t\t\t\t\t\t\t\tif (splittedName.length > 1) return splittedName[1] !== files[index].name;\n\t\t\t\t\t\t\t\treturn val.name !== files[index].name;\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t];\n\t\t\t\t\t\tonChange(newValues.current);\n\t\t\t\t\t}\n\t\t\t};\n\t\t\treader.onerror = function (error) {};\n\t\t} catch (e) {}\n\t};\n\n\tconst removeFile = (index: number) => {\n\t\tnewValues.current = newValues.current.filter((_, itemIndex) => itemIndex !== index);\n\t\tonChange(newValues.current);\n\t};\n\n\tReact.useEffect(() => {\n\t\tif (value && (value as FileInterface[]).length && newValues.current.length === 0) {\n\t\t\tnewValues.current = value as FileInterface[];\n\t\t}\n\t}, [value]);\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t{t(label).toUpperCase()}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t{value ? (\n\t\t\t\t\t(value as FileInterface[]).length ? (\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{(value as FileInterface[]).map((val: FileInterface, index: number) => (\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{disabled ? null : (\n\t\t\t\t\t\t\t\t\t\t removeFile(index)}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t
    \n\t\t\t\t\t) : (\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t)\n\t\t\t\t) : null}\n\t\t\t
    \n\t\t\t{error ? (\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t{helperText}\n\t\t\t\t
    \n\t\t\t) : null}\n\t\t
    \n\t);\n}\n\ninterface StyleProps {\n\tdisabled: boolean;\n\tmultiple: boolean;\n\tmargin?: number;\n}\n\nconst useStyles = makeStyles(() => ({\n\tlabelWrapper: {\n\t\tmarginBottom: '4px',\n\t\tdisplay: 'flex',\n\t\twhiteSpace: 'pre',\n\t},\n\tunderlineField: {\n\t\t'&:before': {\n\t\t\tborderBottom: `0px solid ${colors.lightGray}`,\n\t\t},\n\t\t'&:after': {\n\t\t\tborderBottom: `0px solid ${colors.lightGray}`,\n\t\t},\n\t},\n\tinputWrapper: {\n\t\twidth: '100%',\n\t\tborderRadius: '4px',\n\t},\n\tdropdownContainer: {\n\t\tboxShadow: 'none',\n\t\tborder: `1px solid ${colors.borderColor}`,\n\t},\n\tdropdownArrowWrapper: { position: 'absolute', right: '12.5px', cursor: 'pointer' },\n\tdropdownMenuWrapper: {\n\t\theight: '1.1876em',\n\t},\n\tinput: {\n\t\tdisplay: 'none',\n\t},\n\n\trowName: (p: StyleProps) => ({\n\t\tdisplay: 'flex',\n\t\tflexDirection: p.multiple ? 'column' : 'row',\n\t\tmarginTop: p.margin ? p.margin + 'px' : '3px',\n\t}),\n\trow: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tmarginTop: '3px',\n\t},\n\terrorImageWrapper: { marginRight: '5px', height: '16px' },\n\tlink: (p: StyleProps) => ({\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tcursor: p.disabled ? 'default' : 'pointer',\n\t\tcolor: colors.darkGray,\n\t\tfontSize: '14px',\n\t\tlineHeight: '20px',\n\t\ttextDecoration: 'underline',\n\t\tfontFamily: fonts.regular,\n\t\twidth: 'fit-content',\n\t}),\n\n\tmultipleAttachments: {\n\t\tmarginLeft: '29px',\n\t},\n\tmulitpleWrapper: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tmarginTop: '4px',\n\t},\n\tremoveIconWrapper: (p: StyleProps) => ({\n\t\tmarginLeft: '15px',\n\t\tcursor: p.disabled ? 'default' : 'pointer',\n\t}),\n}));\n\nexport default React.forwardRef(StandardFileInput);\n","import * as React from 'react';\n\nfunction AttachmentIcon(props: any) {\n\treturn (\n\t\t\n\t\t\t\n\t\t\n\t);\n}\n\nexport default AttachmentIcon;\n","import * as React from 'react';\n\nfunction PdfAttachmentIcon(props: any) {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n\nexport default PdfAttachmentIcon;\n","export enum BillingCycleType {\n\tBiWeekly = 0,\n\tMonthly = 1,\n}\n","export enum ProjectType {\n\tWorkContract = 0,\n\tTemporaryEmployment = 1,\n}\n","export enum CalculationType {\n\tUnitPrice = 0,\n\tHourlyRate = 1,\n}\n","import DateFnsUtils from '@date-io/date-fns';\nimport { makeStyles, withStyles } from '@material-ui/core/styles';\nimport { KeyboardTimePicker, MuiPickersUtilsProvider } from '@material-ui/pickers';\nimport { Moment } from 'moment';\nimport React from 'react';\n\nimport { de, enGB } from 'date-fns/locale';\nimport { useTranslation } from 'react-i18next';\nimport { colors } from '../consts/colors';\nimport { globalInputStyle, useGlobalStyles } from '../consts/globalStyles';\nimport i18n from '../i18n';\nimport ErrorIcon from '../svgComponents/ErrorIcon';\n\nexport const TimePickerWithStyles = withStyles({\n\troot: {\n\t\tminWidth: 100,\n\t\t'& .Mui-disabled': {\n\t\t\tcolor: colors.gray,\n\t\t},\n\t\t'& label.Mui-focused:not(.Mui-error)': {\n\t\t\tcolor: colors.lightGray,\n\t\t},\n\t\t'& .MuiInput-input': {\n\t\t\tcursor: 'text',\n\t\t},\n\t\t'& .MuiInput-underline:hover:not(.Mui-disabled):before': {\n\t\t\tborderBottom: `0px solid ${colors.lightGray}`,\n\t\t},\n\t\t'& .MuiInput-underline': {\n\t\t\tborderBottomStyle: 'none',\n\t\t},\n\t\t'& .MuiSelect-select:focus': {\n\t\t\tbackgroundColor: 'white',\n\t\t\tborderRadius: '5px',\n\t\t},\n\t\t'& .Mui-error': {\n\t\t\tcolor: colors.error,\n\t\t},\n\t\t'& .MuiFormHelperText-root': {\n\t\t\ttextWrap: 'wrap',\n\t\t},\n\t},\n})(KeyboardTimePicker);\n\ninterface Props {\n\tlabel: string;\n\tonChange: (event: any) => void;\n\terror?: boolean;\n\thelperText?: string;\n\tvalue: string | Moment;\n\tplaceholder?: string;\n\tinputWrapper?: string;\n\tinput?: string;\n\tdisabled?: boolean;\n\tstep?: number;\n\topenTo?: 'hours' | 'minutes' | 'seconds';\n}\n\nfunction StandardTimePicker(props: Props) {\n\tconst classes = useStyles({\n\t\tdisabled: props.disabled,\n\t});\n\tconst globalClasses = useGlobalStyles({ disabled: props.disabled });\n\tconst { t } = useTranslation();\n\n\tconst currentLanguage = i18n.language;\n\n\treturn (\n\t\t
    \n\t\t\t\n\t\t\t\t {\n\t\t\t\t\t\tprops.onChange(val);\n\t\t\t\t\t}}\n\t\t\t\t\tInputProps={{\n\t\t\t\t\t\tclasses: {\n\t\t\t\t\t\t\tinput: props.input ? props.input : classes.input,\n\t\t\t\t\t\t\tunderline: classes.underlineField,\n\t\t\t\t\t\t},\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t\n\n\t\t\t{props.error ? (\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t{props.helperText}\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t) : null}\n\t\t
    \n\t);\n}\n\ninterface StyleProps {\n\tdisabled?: boolean;\n}\n\nconst useStyles = makeStyles(() => ({\n\tlabelWrapper: {\n\t\tmarginBottom: '4px',\n\t\tdisplay: 'flex',\n\t\twhiteSpace: 'pre',\n\t},\n\tunderlineField: {\n\t\t'&:before': {\n\t\t\tborderBottom: `0px solid ${colors.lightGray}`,\n\t\t},\n\t\t'&:after': {\n\t\t\tborderBottom: `0px solid ${colors.lightGray}`,\n\t\t},\n\t},\n\tinputWrapper: {\n\t\twidth: '100%',\n\t\tborderRadius: '4px',\n\t\tpadding: '0',\n\t\tbackgroundColor: colors.white,\n\t},\n\tinput: (p: StyleProps) => ({\n\t\t...globalInputStyle(p.disabled),\n\t\twhiteSpace: 'pre',\n\t\tcursor: p.disabled ? 'default' : 'pointer',\n\t\tcolor: colors.darkGray,\n\t\tborderRadius: '5px',\n\t}),\n\trow: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tmarginTop: '3px',\n\t},\n\terrorImageWrapper: { marginRight: '5px', height: '16px' },\n}));\n\nexport default StandardTimePicker;\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core';\nimport { colors } from '../consts/colors';\nimport { SHIFT_FROM_WIDTH, SHIFT_NAME_WIDTH } from '../screens/ContractScreen';\nimport { useTranslation } from 'react-i18next';\nimport { Control, Controller } from 'react-hook-form';\nimport StandardTimePicker from './StandardTimePicker';\nimport StandardCheckbox from './StandardCheckbox';\n\ninterface Props {\n\tshiftControl: Control>;\n\tshiftErrors: Record;\n\tshiftTypeName: string;\n\tisUserEditing: boolean;\n\tshiftNameLabel: string;\n\tcheckedShifts: string[];\n\tonShiftCheckboxChange: (val: boolean, name: string) => void;\n\tclearShiftErrors: (name?: string | string[] | undefined) => void;\n}\n\nfunction ShiftInputRow({\n\tshiftControl,\n\tshiftErrors,\n\tshiftTypeName,\n\tshiftNameLabel,\n\tisUserEditing,\n\tcheckedShifts,\n\tonShiftCheckboxChange,\n\tclearShiftErrors,\n}: Props) {\n\tconst classes = useStyles({});\n\tconst { t } = useTranslation();\n\n\tconst isRowChecked = checkedShifts.some((shift) => shift === shiftTypeName);\n\n\treturn (\n\t\t
    \n\t\t\t
    {t(shiftNameLabel)}
    \n\t\t\t
    \n\t\t\t\t (\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tclearShiftErrors(`${shiftTypeName}.from`);\n\t\t\t\t\t\t\t\tonChange(e);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tlabel={''}\n\t\t\t\t\t\t\tdisabled={!isUserEditing}\n\t\t\t\t\t\t\tplaceholder={'00:00'}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t/>\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t (\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tclearShiftErrors(`${shiftTypeName}.to`);\n\t\t\t\t\t\t\t\tonChange(e);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tlabel={''}\n\t\t\t\t\t\t\tdisabled={!isUserEditing}\n\t\t\t\t\t\t\tplaceholder={'00:00'}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t/>\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t {}}\n\t\t\t\t\tvalue={isRowChecked}\n\t\t\t\t\tdisabled={!isUserEditing}\n\t\t\t\t\tname={''}\n\t\t\t\t\tcustomOnChange={onShiftCheckboxChange}\n\t\t\t\t\tcustomName={shiftTypeName}\n\t\t\t\t/>\n\t\t\t
    \n\t\t
    \n\t);\n}\n\nconst useStyles = makeStyles(() => ({\n\tshiftNameWrapper: {\n\t\twidth: SHIFT_NAME_WIDTH,\n\t\tdisplay: 'flex',\n\t\tcolor: colors.gray,\n\t},\n\tfromWrapper: {\n\t\twidth: SHIFT_FROM_WIDTH,\n\t\tdisplay: 'flex',\n\t\talignSelf: 'flex-start',\n\t\tpaddingLeft: '26px',\n\t},\n\tcheckBoxWrapper: {\n\t\tdisplay: 'flex',\n\t},\n\tshiftWrapper: {\n\t\tdisplay: 'flex',\n\t\tflexDirection: 'column',\n\t},\n\trow123: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tborderBottom: '1px solid #C7C7C7',\n\t\tpadding: '6px 12px',\n\t\tbackgroundColor: colors.white,\n\t},\n}));\n\nexport default ShiftInputRow;\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\n\nimport { colors } from '../consts/colors';\nimport { globalInputStyle, useGlobalStyles } from '../consts/globalStyles';\nimport ErrorIcon from '../svgComponents/ErrorIcon';\nimport { TextFieldWithCSS } from './StandardTextField';\n\ninterface Props {\n\tvalue?: string;\n\terror?: boolean;\n\thelperText?: string;\n\tonChange?: (event: any) => void;\n\tdisabled?: boolean;\n\tselect?: boolean;\n\tname?: string;\n\tchildren?: JSX.Element | JSX.Element[];\n\tplaceholder?: string;\n\tonKeyDown?: React.KeyboardEventHandler;\n\tcustomClassName?: string;\n}\n\nfunction TableTextField(props: Props) {\n\tconst classes = useStyles({\n\t\tdisabled: props.disabled,\n\t});\n\tconst globalClasses = useGlobalStyles({ disabled: props.disabled });\n\n\treturn (\n\t\t
    \n\t\t\t
    ,\n\n\t\t\t\t\tMenuProps: {\n\t\t\t\t\t\tPaperProps: {\n\t\t\t\t\t\t\tclasses: {\n\t\t\t\t\t\t\t\trounded: classes.dropdownContainer,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tanchorOrigin: {\n\t\t\t\t\t\t\tvertical: 'bottom',\n\t\t\t\t\t\t\thorizontal: 'left',\n\t\t\t\t\t\t},\n\t\t\t\t\t\ttransformOrigin: {\n\t\t\t\t\t\t\tvertical: 'top',\n\t\t\t\t\t\t\thorizontal: 'left',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tgetContentAnchorEl: null,\n\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\ttransform: 'translateX(-1px) translateY(7px)',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tclasses: {\n\t\t\t\t\t\tselectMenu: classes.dropdownMenuWrapper,\n\t\t\t\t\t},\n\t\t\t\t}}\n\t\t\t\tInputProps={{\n\t\t\t\t\tclasses: {\n\t\t\t\t\t\tinput: classes.input,\n\t\t\t\t\t\tunderline: classes.underlineField,\n\t\t\t\t\t},\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t{props.error ? (\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t{props.helperText}\n\t\t\t\t
    \n\t\t\t) : null}\n\t\t
    \n\t);\n}\n\ninterface StyleProps {\n\tdisabled?: boolean;\n}\n\nconst useStyles = makeStyles(() => ({\n\tcontainer: {\n\t\twidth: '100%',\n\t},\n\tunderlineField: {\n\t\t'&:before': {\n\t\t\tborderBottom: `0px solid ${colors.lightGray}`,\n\t\t},\n\t\t'&:after': {\n\t\t\tborderBottom: `0px solid ${colors.lightGray}`,\n\t\t},\n\t},\n\tinputWrapper: {\n\t\twidth: '100%',\n\t\tborderRadius: '4px',\n\t\tbackgroundColor: colors.white,\n\t},\n\tdropdownContainer: {\n\t\tboxShadow: 'none',\n\t\tborder: `1px solid ${colors.borderColor}`,\n\t\t'& ul > li:first-child': {\n\t\t\tdisplay: 'none',\n\t\t},\n\t},\n\tdropdownArrowWrapper: { position: 'absolute', right: '12.5px', cursor: 'pointer' },\n\tdropdownMenuWrapper: {\n\t\theight: '1.1876em',\n\t},\n\tinput: (p: StyleProps) => ({\n\t\t...globalInputStyle(p.disabled),\n\t\twhiteSpace: 'pre',\n\t\tcolor: colors.darkGray,\n\t\tborderRadius: '5px',\n\t}),\n\n\trow: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tmarginTop: '3px',\n\t},\n\terrorImageWrapper: { marginRight: '5px', height: '16px' },\n\tinputSelect: (props: StyleProps) => ({\n\t\t...globalInputStyle(props.disabled),\n\t\twhiteSpace: 'pre',\n\t}),\n\tinputWrapperSelect: {\n\t\ttextOverflow: 'ellipsis',\n\t\toverflow: 'hidden',\n\t\ttransform: 'translateY(-2px)',\n\t},\n}));\n\nexport default TableTextField;\n","import * as React from 'react';\n\nfunction SaveIcon(props: any) {\n\treturn (\n\t\t\n\t\t\t\n\t\t\n\t);\n}\n\nexport default SaveIcon;\n","import * as React from 'react';\n\nfunction EditIcon(props: any) {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n\nexport default EditIcon;\n","import React, { useEffect, useMemo, useState } from 'react';\nimport { IconButton, makeStyles } from '@material-ui/core';\nimport { colors } from '../consts/colors';\nimport { SHIFT_FROM_WIDTH, SHIFT_NAME_WIDTH } from '../screens/ContractScreen';\n\nimport TableTextField from './TableTextField';\nimport { IContractWorkLocation } from '../service/types/Contract';\nimport { Controller, useForm } from 'react-hook-form';\nimport { WorkLocationFormValues } from '../containers/ContractContainer';\nimport { rules } from '../consts/rules';\nimport { useTranslation } from 'react-i18next';\nimport DeleteIcon from '../svgComponents/DeleteIcon';\nimport SaveIcon from '../svgComponents/SaveIcon';\nimport EditIcon from '../svgComponents/EditIcon';\nimport ErrorIcon from '../svgComponents/ErrorIcon';\nimport { useGlobalStyles } from '../consts/globalStyles';\n\ninterface Props {\n\tisUserEditing: boolean;\n\tworkLocation: IContractWorkLocation;\n\tindex: number;\n\tsetWorkLocations: React.Dispatch>;\n}\n\nfunction WorkLocationInputRow({ isUserEditing, workLocation, index, setWorkLocations }: Props) {\n\tconst classes = useStyles({});\n\n\tconst { control, errors, handleSubmit, reset } = useForm();\n\n\tconst globalClasses = useGlobalStyles();\n\n\tconst { t } = useTranslation();\n\n\tconst [editMode, setEditMode] = useState(false);\n\n\tuseEffect(() => {\n\t\tif (!isUserEditing) {\n\t\t\treset({\n\t\t\t\tdistance: workLocation.distance.toString(),\n\t\t\t\tname: workLocation.name,\n\t\t\t});\n\t\t}\n\t}, [isUserEditing, reset, workLocation]);\n\n\tconst onSavePress = useMemo(() => {\n\t\treturn handleSubmit((data) => {\n\t\t\tsetWorkLocations((prev) => {\n\t\t\t\tconst old = [...prev];\n\n\t\t\t\tconst toUpdate = { ...old[index] };\n\n\t\t\t\ttoUpdate.distance = parseFloat(data.distance);\n\t\t\t\ttoUpdate.name = data.name;\n\n\t\t\t\told[index] = toUpdate;\n\n\t\t\t\treturn old;\n\t\t\t});\n\n\t\t\tsetEditMode(false);\n\t\t});\n\t}, [handleSubmit, index, setWorkLocations]);\n\n\tconst onDelete = () => {\n\t\tsetWorkLocations((prev) => prev.filter((val, ind) => ind !== index));\n\t};\n\n\tconst onEdit = () => {\n\t\tsetEditMode(true);\n\t};\n\n\treturn (\n\t\t\n\t\t\t
    \n\t\t\t\t (\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t/>\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t (\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t/>\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t{!editMode ? (\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t) : (\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t)}\n\t\t\t
    \n\n\t\t\t{Object.keys(errors).length > 0 ? (\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t{t('invalid_input')}\n\t\t\t\t
    \n\t\t\t) : null}\n\t\t\n\t);\n}\n\nconst useStyles = makeStyles(() => ({\n\tshiftNameWrapper: {\n\t\twidth: SHIFT_NAME_WIDTH,\n\t\tdisplay: 'flex',\n\t\tcolor: colors.gray,\n\t\tpadding: '0px 12px',\n\t},\n\tfromWrapper: {\n\t\twidth: SHIFT_FROM_WIDTH,\n\t\tdisplay: 'flex',\n\t\talignSelf: 'flex-start',\n\t\tpaddingLeft: '26px',\n\t},\n\tcheckBoxWrapper: {\n\t\tdisplay: 'flex',\n\t\tflexGrow: 1,\n\t\tjustifyContent: 'flex-end',\n\t},\n\tshiftWrapper: {\n\t\tdisplay: 'flex',\n\t\tflexDirection: 'column',\n\t},\n\trow123: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tborderBottom: '1px solid #C7C7C7',\n\t\tpadding: '2px 12px',\n\t},\n\terrorImageWrapper: { marginLeft: '5px', height: '16px', display: 'flex', alignItems: 'center', marginRight: '5px' },\n\n\tinputDisabled: {\n\t\tbackgroundColor: colors.keyButton,\n\t},\n\terrorRow: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t},\n}));\n\nexport default WorkLocationInputRow;\n","import React from 'react';\nimport { Grid, IconButton, makeStyles, MenuItem } from '@material-ui/core';\nimport { ArrayField, Control, Controller, UseFormMethods } from 'react-hook-form';\nimport { useTranslation } from 'react-i18next';\nimport moment from 'moment';\n\nimport {\n\tContractType,\n\tcreateContractErrorTypeKeyValuePairs,\n\tcreateContractIsPhotoKeyValuePairs,\n} from '../helpers/contractHelper/generalContractHelper';\nimport HomeButton from '../svgComponents/HomeButton';\nimport { globalInputStyle, useGlobalStyles } from '../consts/globalStyles';\nimport { contractFields, contractWorkLocationFields, IHourlyRateField } from '../containers/ContractContainer';\nimport StandardTextField from '../components/StandardTextField';\nimport StandardCheckbox from '../components/StandardCheckbox';\nimport { rules } from '../consts/rules';\nimport { colors } from '../consts/colors';\nimport { createContractTypeOfInspectionKeyValuePairs } from '../helpers/contractHelper/generalContractHelper';\nimport StandardAutoComplete from '../components/StandardAutoComplete';\nimport StandardRadioButton from '../components/StandardRadioButton';\nimport { KeyValue } from '../helpers/userHelper/generalUserHelper';\nimport Contract, { IContractWorkLocation } from '../service/types/Contract';\nimport ErrorIcon from '../svgComponents/ErrorIcon';\nimport StandardDialog, { StandardDialogInterface } from '../components/StandardDialog';\nimport StandardCRUDButtons from '../components/StandardCRUDButtons';\nimport StandardDatePicker from '../components/StandardDatePicker';\nimport StandardFileInput, { FileInputIntreface } from '../components/StandardFileInput';\nimport AttachmentIcon from '../svgComponents/AttachmentIcon';\nimport PdfAttachmentIcon from '../svgComponents/PdfAttachmentIcon';\nimport User from '../service/types/User';\nimport GoBack from '../svgComponents/GoBack';\nimport { Routes } from '../router/Routes';\nimport { BillingCycleType } from '../consts/billingCycleType';\nimport { priceListOptions } from '../consts/priceListOptions';\nimport { ProjectType } from '../consts/projectType';\nimport { CalculationType } from '../consts/calculationType';\nimport DeleteIcon from '../svgComponents/DeleteIcon';\nimport { fonts } from '../consts/fonts';\nimport ShiftInputRow from '../components/ShiftInputRow';\nimport TableTextField from '../components/TableTextField';\nimport WorkLocationInputRow from '../components/WorkLocationInputRow';\nimport { groupAtom } from '../atoms/group';\nimport { useAtom } from 'jotai';\nimport Autocomplete from '../components/Autocomplete';\n\ninterface Props {\n\tcontrol: Control>;\n\terrors: Record;\n\tshiftControl: Control>;\n\tshiftErrors: Record;\n\n\tworkLocationControl: Control>;\n\tworkLocationErrors: Record;\n\n\tonWorkLocationSubmitPress: () => void;\n\n\tworkLocations: IContractWorkLocation[];\n\n\tregister: UseFormMethods['register'];\n\tsetValue: UseFormMethods['setValue'];\n\tgetValues: UseFormMethods['getValues'];\n\tcontractType: ContractType;\n\tteamLeaders: KeyValue[];\n\tqais: KeyValue[];\n\tcustomers: KeyValue[];\n\tisUserEditing: boolean;\n\tcontract: Contract | undefined;\n\tdialogRef: React.MutableRefObject;\n\tattachmentsInputRef: React.MutableRefObject;\n\tassignedQAIs: string[] | undefined;\n\tcustomer: string;\n\thourlyRateFields: Partial, 'id'>>[];\n\tcheckedShifts: string[];\n\tappendHourlyRateField: (\n\t\tvalue: Partial> | Partial>[],\n\t\tshouldFocus?: boolean | undefined\n\t) => void;\n\tremoveHourlyRateField: (index?: number | number[] | undefined) => void;\n\tonShiftCheckboxChange: (val: boolean, name: string) => void;\n\tonSummaryPress: () => void;\n\tonSubmitPress: () => void;\n\tonCancelPress: () => void;\n\tonDeletePress: () => void;\n\tonCancelDialogPress: () => void;\n\tonDeleteContractDialogPress: () => void;\n\tclearShiftErrors: (name?: string | string[] | undefined) => void;\n\tsetWorkLocations: React.Dispatch>;\n}\n\nexport const SHIFT_NAME_WIDTH = '30%';\nexport const SHIFT_FROM_WIDTH = '20%';\n\nfunction ContractScreen(props: Props) {\n\tconst classes = useStyles({ disabled: !props.isUserEditing, contractStatus: props.contract?.status });\n\tconst globalClasses = useGlobalStyles({ disabled: !props.isUserEditing });\n\tconst { t } = useTranslation();\n\n\tconst [groups] = useAtom(groupAtom);\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t{props.contract ? (\n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{props.contract.contractNumber}\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{props.contract.status ? t('contract_screen_opened') : t('contract_screen_closed')}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{t('contract_screen_summary')}\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t) : (\n\t\t\t\t\t{t('contract_screen_title')}\n\t\t\t\t)}\n\t\t\t
    \n\t\t\t\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tmultiple={false}\n\t\t\t\t\t\t\t\tdisabled={!props.isUserEditing}\n\t\t\t\t\t\t\t\tonChange={onChange}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\t{t('contract_screen_type').toUpperCase()}\n\t\t\t\t\t
    \n\t\t\t\t\t (\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{props.errors[contractFields.contractType] ? (\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{t(\n\t\t\t\t\t\t\t\t\t\t\t\tprops.errors[contractFields.contractType]\n\t\t\t\t\t\t\t\t\t\t\t\t\t? props.errors[contractFields.contractType].message\n\t\t\t\t\t\t\t\t\t\t\t\t\t: ''\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\t\tif (props.contractType === ContractType.RhenusType && val.length === 0) {\n\t\t\t\t\t\t\t\t\treturn rules(t).required.message;\n\t\t\t\t\t\t\t\t} else return true;\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t}}\n\t\t\t\t\t\trender={({ onChange, value }) => (\n\t\t\t\t\t\t\t zone.name)]\n\t\t\t\t\t\t\t\t\t\t: []\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\terror={props.errors[contractFields.zones] ? true : false}\n\t\t\t\t\t\t\t\thelperText={\n\t\t\t\t\t\t\t\t\tprops.errors[contractFields.zones] ? props.errors[contractFields.zones].message : ''\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\t{t('billing_cycle').toUpperCase()}\n\t\t\t\t\t
    \n\t\t\t\t\t (\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{props.errors[contractFields.billingCycle] ? (\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{t(\n\t\t\t\t\t\t\t\t\t\t\t\tprops.errors[contractFields.billingCycle]\n\t\t\t\t\t\t\t\t\t\t\t\t\t? props.errors[contractFields.billingCycle].message\n\t\t\t\t\t\t\t\t\t\t\t\t\t: ''\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t{t('work_contract')}\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t{t('temporary_employment')}\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t{t('hourly_rate')}\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t{t('unit_price')}\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t{/* Price list section */}\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tif (e) {\n\t\t\t\t\t\t\t\t\t\t\tconst selected = e as string[];\n\t\t\t\t\t\t\t\t\t\t\tconst oldValues = [...props.hourlyRateFields];\n\n\t\t\t\t\t\t\t\t\t\t\tconst fields = selected.map((field) => {\n\t\t\t\t\t\t\t\t\t\t\t\tconst value = oldValues.find((item) => item['selectedValue'] === field);\n\n\t\t\t\t\t\t\t\t\t\t\t\tconst fieldObj = {\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue: value ? value['value'] : 0,\n\t\t\t\t\t\t\t\t\t\t\t\t\tselectedValue: field,\n\t\t\t\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t\t\t\t\t\treturn fieldObj;\n\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\tprops.setValue(contractFields.hourlyRate, fields);\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tprops.setValue(contractFields.hourlyRate, []);\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tonChange(e);\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\toptions={priceListOptions.map((opt) => opt.label)}\n\t\t\t\t\t\t\t\t\tmultiple={true}\n\t\t\t\t\t\t\t\t\tvalue={value}\n\t\t\t\t\t\t\t\t\tdisableCloseOnSelect\n\t\t\t\t\t\t\t\t\twithOutAddOption={true}\n\t\t\t\t\t\t\t\t\tplaceholder={t('price_list')}\n\t\t\t\t\t\t\t\t\tdisabled={!props.isUserEditing}\n\t\t\t\t\t\t\t\t\terror={props.errors[contractFields.priceListType] ? true : false}\n\t\t\t\t\t\t\t\t\thelperText={\n\t\t\t\t\t\t\t\t\t\tprops.errors[contractFields.priceListType]\n\t\t\t\t\t\t\t\t\t\t\t? props.errors[contractFields.priceListType].message\n\t\t\t\t\t\t\t\t\t\t\t: ''\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{props.hourlyRateFields.map((field, index) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t// make sure to set field.id to top mappped item\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t{t(field['selectedValue']).toUpperCase()}\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\tconst value = e.target.value;\n\n\t\t\t\t\t\t\t\t\t\t\t\tconst oldValues = [...props.hourlyRateFields];\n\t\t\t\t\t\t\t\t\t\t\t\tconst newValue = { ...(oldValues[index] as IHourlyRateField) };\n\t\t\t\t\t\t\t\t\t\t\t\tnewValue['value'] = value;\n\t\t\t\t\t\t\t\t\t\t\t\toldValues[index] = newValue;\n\t\t\t\t\t\t\t\t\t\t\t\tprops.setValue(contractFields.hourlyRate, oldValues);\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\tname={`${contractFields.hourlyRate}[${index}].value`}\n\t\t\t\t\t\t\t\t\t\t\tdefaultValue={field.value} // make sure to include defaultValue\n\t\t\t\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t\t\t\t{props.isUserEditing && (\n\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\tconst previousPriceListType: string[] = props.getValues(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontractFields.priceListType\n\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t\t\t\tconst newPriceListType = previousPriceListType.filter(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t(item) =>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\titem !== props.hourlyRateFields[index]['selectedValue']\n\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t\t\t\tprops.removeHourlyRateField(index);\n\t\t\t\t\t\t\t\t\t\t\t\t\tprops.setValue(contractFields.priceListType, newPriceListType);\n\t\t\t\t\t\t\t\t\t\t\t\t}}>\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t})}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t\t
    \n\t\t\t\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t customer.key)}\n\t\t\t\t\t\t\t\tmultiple={false}\n\t\t\t\t\t\t\t\tvalue={value}\n\t\t\t\t\t\t\t\tdisabled={!props.isUserEditing}\n\t\t\t\t\t\t\t\terror={props.errors[contractFields.customer] ? true : false}\n\t\t\t\t\t\t\t\thelperText={\n\t\t\t\t\t\t\t\t\tprops.errors[contractFields.customer]\n\t\t\t\t\t\t\t\t\t\t? props.errors[contractFields.customer].message\n\t\t\t\t\t\t\t\t\t\t: ''\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t('contract_overview_screen_contract_work_location').toUpperCase()}\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t{Object.keys(props.workLocationErrors).length > 0 ? (\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t{t('invalid_input')}\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{t('location')}\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{t('distance')}\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t
    \n\n\t\t\t\t\t\t\t{!props.isUserEditing ? null : (\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t{t('contract_screen_shift_add')}\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t
    \n\n\t\t\t\t\t\t{props.workLocations.map((location, index) => (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t))}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t customer.key === props.customer)\n\t\t\t\t\t\t\t\t\t\t? props.customers\n\t\t\t\t\t\t\t\t\t\t\t\t.find((customer) => customer.key === props.customer)!\n\t\t\t\t\t\t\t\t\t\t\t\t.value.users.map((user: User) => `${user.firstName} ${user.lastName}`)\n\t\t\t\t\t\t\t\t\t\t: []\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdisabled={!props.isUserEditing || !props.customer}\n\t\t\t\t\t\t\t\terror={props.errors[contractFields.contactPerson] ? true : false}\n\t\t\t\t\t\t\t\thelperText={\n\t\t\t\t\t\t\t\t\tprops.errors[contractFields.contactPerson]\n\t\t\t\t\t\t\t\t\t\t? props.errors[contractFields.contactPerson].message\n\t\t\t\t\t\t\t\t\t\t: ''\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t ({ id: group.groupId, name: group.name })) ?? []}\n\t\t\t\t\t\t\t\tvalue={value}\n\t\t\t\t\t\t\t\tdisableCloseOnSelect={false}\n\t\t\t\t\t\t\t\tmultiple\n\t\t\t\t\t\t\t\tplaceholder=\"\"\n\t\t\t\t\t\t\t\terror={props.errors[contractFields.tlGroups] ? true : false}\n\t\t\t\t\t\t\t\thelperText={\n\t\t\t\t\t\t\t\t\tprops.errors[contractFields.tlGroups]\n\t\t\t\t\t\t\t\t\t\t? props.errors[contractFields.tlGroups].message\n\t\t\t\t\t\t\t\t\t\t: ''\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\n\t\t\t\t\t
    \n\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t teamLeader.key)}\n\t\t\t\t\t\t\t\t\tmultiple={false}\n\t\t\t\t\t\t\t\t\tvalue={value}\n\t\t\t\t\t\t\t\t\tdisabled={!props.isUserEditing}\n\t\t\t\t\t\t\t\t\terror={props.errors[contractFields.assignTeamLeader] ? true : false}\n\t\t\t\t\t\t\t\t\thelperText={\n\t\t\t\t\t\t\t\t\t\tprops.errors[contractFields.assignTeamLeader]\n\t\t\t\t\t\t\t\t\t\t\t? props.errors[contractFields.assignTeamLeader].message\n\t\t\t\t\t\t\t\t\t\t\t: ''\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t
    \n\n\t\t\t\t\t
    \n\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t qai.key)}\n\t\t\t\t\t\t\t\t\tmultiple={true}\n\t\t\t\t\t\t\t\t\tvalue={value}\n\t\t\t\t\t\t\t\t\tdisableCloseOnSelect\n\t\t\t\t\t\t\t\t\twithOutAddOption={true}\n\t\t\t\t\t\t\t\t\twithCheckbox={true}\n\t\t\t\t\t\t\t\t\tplaceholder={'QAIs'}\n\t\t\t\t\t\t\t\t\tdisabled={props.qais.length === 0 || !props.isUserEditing}\n\t\t\t\t\t\t\t\t\terror={props.errors[contractFields.assignQAI] ? true : false}\n\t\t\t\t\t\t\t\t\thelperText={\n\t\t\t\t\t\t\t\t\t\tprops.errors[contractFields.assignQAI]\n\t\t\t\t\t\t\t\t\t\t\t? props.errors[contractFields.assignQAI].message\n\t\t\t\t\t\t\t\t\t\t\t: ''\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{t('contract_screen_shifts').toUpperCase()}\n\t\t\t\t\t\t\t{Object.keys(props.shiftErrors).length > 0 ? (\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t{t('contract_screen_shift_error')}\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{t('contract_screen_shift_name')}\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{t('contract_screen_shift_from')}\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{t('contract_screen_shift_to')}\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t
    \n\t\t\t{/* Arrival section */}\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t item.value)}\n\t\t\t\t\t\t\t\terror={props.errors[contractFields.errorTypes] ? true : false}\n\t\t\t\t\t\t\t\thelperText={\n\t\t\t\t\t\t\t\t\tprops.errors[contractFields.errorTypes]\n\t\t\t\t\t\t\t\t\t\t? props.errors[contractFields.errorTypes].message\n\t\t\t\t\t\t\t\t\t\t: ''\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t item.value)}\n\t\t\t\t\t\t\t\tmultiple={true}\n\t\t\t\t\t\t\t\tvalue={value}\n\t\t\t\t\t\t\t\tdisableCloseOnSelect\n\t\t\t\t\t\t\t\twithCheckbox={true}\n\t\t\t\t\t\t\t\tplaceholder={'Types'}\n\t\t\t\t\t\t\t\tdisabled={!props.isUserEditing}\n\t\t\t\t\t\t\t\terror={props.errors[contractFields.typesOfInspection] ? true : false}\n\t\t\t\t\t\t\t\thelperText={\n\t\t\t\t\t\t\t\t\tprops.errors[contractFields.typesOfInspection]\n\t\t\t\t\t\t\t\t\t\t? props.errors[contractFields.typesOfInspection].message\n\t\t\t\t\t\t\t\t\t\t: ''\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\t\tif (item !== undefined) {\n\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t} else return t('field_required');\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t}}\n\t\t\t\t\t\trender={({ onChange, value }) => (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{createContractIsPhotoKeyValuePairs.map((item) => (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t{t(item.key)}\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tref={props.attachmentsInputRef}\n\t\t\t\t\t\t\t\tmultiple={true}\n\t\t\t\t\t\t\t\tdisabled={!props.isUserEditing}\n\t\t\t\t\t\t\t\tonChange={onChange}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\n\t\t\t\t{props.contractType === ContractType.RhenusType ? (\n\t\t\t\t\t\n\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t) : null}\n\t\t\t\n\t\t\t (\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t/>\n\t\t\t
    \n\t\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t
    \n\t);\n}\n\ninterface StyleProps {\n\tdisabled?: boolean;\n\tcontractStatus?: boolean;\n}\n\nconst useStyles = makeStyles(() => ({\n\tlabelWrapper: {\n\t\talignItems: 'center',\n\t\tmarginBottom: '4px',\n\t\tdisplay: 'flex',\n\t\twhiteSpace: 'pre',\n\t},\n\ttitleWrapper: {\n\t\tmarginBottom: '12px',\n\t\tdisplay: 'flex',\n\t\twidth: '100%',\n\t\tjustifyContent: 'space-between',\n\t},\n\tfieldWrapper: { marginTop: '32px' },\n\ttopWrapper: {\n\t\tmarginBottom: '43px',\n\t\tmarginTop: '25px',\n\t},\n\n\twrapper: {\n\t\tmarginTop: '40px',\n\t\tmarginBottom: '43px',\n\t},\n\trowWrapper: {\n\t\tdisplay: 'flex',\n\t\tmarginTop: '48px',\n\t\talignItems: 'center',\n\t\tmarginBottom: '32px',\n\t},\n\tcheckboxWrapper: {},\n\tinput: (props: StyleProps) => ({\n\t\t...globalInputStyle(props.disabled),\n\t\twhiteSpace: 'pre',\n\t}),\n\tinputForFields: (props: StyleProps) => ({\n\t\t...globalInputStyle(props.disabled),\n\t\twhiteSpace: 'pre',\n\t\tborder: `1px solid ${colors.borderColor}`,\n\t\tborderRadius: '4px',\n\t}),\n\tinputWrapper: {\n\t\ttextOverflow: 'ellipsis',\n\t\toverflow: 'hidden',\n\t\ttransform: 'translateY(-2px)',\n\t},\n\tdropdownContainer: {\n\t\tboxShadow: 'none',\n\t\tborder: `1px solid ${colors.borderColor}`,\n\t},\n\tmenuItem: {\n\t\tpadding: 0,\n\t},\n\trow: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\theight: '32px',\n\t},\n\tassignQAIWrapper: { display: 'flex', flex: 1, flexDirection: 'column' },\n\tadd: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tmarginLeft: 'auto',\n\t\tcursor: 'pointer',\n\t\tmarginRight: '24px',\n\t},\n\ttableTitleWrapper: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\twidth: '100%',\n\t\tborderBottom: `2px solid #656565`,\n\t},\n\terrorImageWrapper: { marginRight: '5px', height: '16px' },\n\tshiftErrorImageWrapper: { marginRight: '5px', height: '16px', marginLeft: '10px' },\n\terrorRow: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t},\n\tstatusWrapper: (p: StyleProps) => ({\n\t\tpadding: '8px 10px',\n\t\tmarginLeft: '20px',\n\t\tborderRadius: '4px',\n\t\theight: 'fit-content',\n\t\talignSelf: 'center',\n\t\tbackgroundColor: p.contractStatus ? colors.lightGreen : colors.lightPink,\n\t}),\n\ttitleRow: {\n\t\tdisplay: 'flex',\n\t},\n\tsummaryWrapper: {\n\t\tmarginRight: '16px',\n\t\tcursor: 'pointer',\n\t\talignSelf: 'flex-end',\n\t},\n\ticonWrappper: {\n\t\tmarginRight: '12px',\n\t},\n\tdropdownInput: {\n\t\tmargin: 0,\n\t\tcolor: colors.darkGray,\n\t\tfontSize: '16px',\n\t\tlineHeight: '24px',\n\t\tfontFamily: fonts.regular,\n\t\twhiteSpace: 'pre-wrap',\n\t},\n\tdropDownInputWrapper: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\ttransform: 'translateY(-2px)',\n\t},\n\tshiftNameWrapper: {\n\t\twidth: SHIFT_NAME_WIDTH,\n\t\tpadding: '6px 12px',\n\t\tdisplay: 'flex',\n\t\talignSelf: 'flex-start',\n\t},\n\tshiftWrapper: {\n\t\tdisplay: 'flex',\n\t\tflexDirection: 'column',\n\t},\n\tfromWrapper: {\n\t\twidth: SHIFT_FROM_WIDTH,\n\t\tpadding: '6px 12px',\n\t\tdisplay: 'flex',\n\t\talignSelf: 'flex-start',\n\t},\n\trow123: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tborderBottom: '1px solid #C7C7C7',\n\t\tbackgroundColor: colors.white,\n\t},\n}));\n\nexport default ContractScreen;\n","import { contractFields, IHourlyRateField, ShiftsFormValues } from '../../containers/ContractContainer';\nimport { ContractStatusType, ShiftInterface } from './generalContractHelper';\nimport { KeyValue } from '../userHelper/generalUserHelper';\nimport moment from 'moment';\nimport Contract, { IContractWorkLocation } from '../../service/types/Contract';\nimport service from '../../service/service';\nimport { goToAdminContracts } from '../navigationHelper';\nimport { History, LocationState } from 'history';\nimport User from '../../service/types/User';\nimport { IPriceListItem } from '../../consts/IPriceListItem';\nimport { priceListOptions } from '../../consts/priceListOptions';\nimport { GroupUser } from '../../pages/groupOverview/GroupOverview';\n\nexport function createContract(\n\thistory: History,\n\tdata: any,\n\tshifts: ShiftsFormValues,\n\tcheckedShifts: string[],\n\tcustomers: KeyValue[],\n\tteamLeaders: KeyValue[],\n\tqais: KeyValue[],\n\tworkLocations: IContractWorkLocation[],\n\thourlyRateFields?: IHourlyRateField[]\n) {\n\tlet shiftsData: ShiftInterface[] = [];\n\n\tlet hasError = false;\n\n\tcheckedShifts.forEach((checkedShift) => {\n\t\tconst { from, to } = shifts[checkedShift as keyof ShiftsFormValues];\n\n\t\tif (from && to) {\n\t\t\tshiftsData.push({\n\t\t\t\tfrom,\n\t\t\t\tto,\n\t\t\t\tname: checkedShift,\n\t\t\t});\n\t\t} else {\n\t\t\thasError = true;\n\t\t}\n\t});\n\n\tif (!hasError) {\n\t\tconst newContract = createNewContractWithoutID(\n\t\t\tdata,\n\t\t\tcustomers,\n\t\t\tteamLeaders,\n\t\t\tqais,\n\t\t\tshiftsData,\n\t\t\tworkLocations,\n\t\t\thourlyRateFields\n\t\t);\n\n\t\tservice\n\t\t\t.createContract(newContract)\n\t\t\t.then(() => {\n\t\t\t\tgoToAdminContracts(history);\n\t\t\t})\n\t\t\t.catch(() => {});\n\t}\n}\n\nfunction createNewContractWithoutID(\n\tdata: any,\n\tcustomers: KeyValue[],\n\tteamLeaders: KeyValue[],\n\tqais: KeyValue[],\n\tshifts: ShiftInterface[],\n\tworkLocations: IContractWorkLocation[],\n\thourlyRateFields?: IHourlyRateField[]\n) {\n\tconst customer = customers.find((item) => item.key === data[contractFields.customer]);\n\n\tlet priceListArray: IPriceListItem[] = [];\n\tif (data[contractFields.priceListType]) {\n\t\tpriceListArray = (data[contractFields.priceListType] as string[]).map((type) => {\n\t\t\tconst hourlyRate = hourlyRateFields?.find((item) => item.selectedValue === type);\n\t\t\tconst intType = priceListOptions.find((opt) => opt.label === type);\n\n\t\t\treturn {\n\t\t\t\ttype: intType ? intType.value : 0,\n\t\t\t\thourly_rate: hourlyRate ? parseInt(hourlyRate.value) : undefined,\n\t\t\t};\n\t\t});\n\t}\n\n\tconst contactPerson: number[] = data[contractFields.contactPerson].map(\n\t\t(person: string) =>\n\t\t\tcustomer?.value.users.find((user: User) => `${user.firstName} ${user.lastName}` === person).id\n\t);\n\n\treturn new Contract(\n\t\t0,\n\t\tdata[contractFields.contractNumber],\n\t\tcustomer?.value.id,\n\t\tmoment(data[contractFields.date]),\n\t\tworkLocations,\n\t\tdata[contractFields.typeOfActivity],\n\t\tdata[contractFields.partDesignation],\n\t\tdata[contractFields.markingOfIOparts],\n\t\tshifts.map((shift) => ({ ...shift, name: shift.name.replaceAll('\"', '') })),\n\t\tdata[contractFields.errorTypes],\n\t\tdata[contractFields.typesOfInspection],\n\t\tdata[contractFields.contractType],\n\t\tContractStatusType.NotClosed,\n\t\tdata[contractFields.takingPhotos],\n\t\tdata[contractFields.automatedUpdates],\n\t\tdata[contractFields.assignQAI].map((qai: string) => qais.find((item) => item.key === qai)?.value.id),\n\t\tteamLeaders.find((item) => item.key === data[contractFields.assignTeamLeader])?.value.id,\n\t\tdata[contractFields.orderDescription],\n\t\tcontactPerson.map((el) => {\n\t\t\treturn { id: el };\n\t\t}),\n\t\tqais.find((item) => item.key === data[contractFields.contactQAI24])?.value.id,\n\t\ttypeof data[contractFields.billingCycle] === 'number' ? data[contractFields.billingCycle] : undefined,\n\t\tdata[contractFields.drivingRate] !== '' ? parseInt(data[contractFields.drivingRate]) : undefined,\n\t\tdata[contractFields.driving_time] !== ''\n\t\t\t? parseFloat(data[contractFields.driving_time].toString().replace(/,/g, '.'))\n\t\t\t: undefined,\n\t\tdata[contractFields.kilometer] !== '' ? parseInt(data[contractFields.kilometer]) : undefined,\n\t\tpriceListArray,\n\t\tdata[contractFields.projectType] !== '' ? data[contractFields.projectType] : undefined,\n\t\tdata[contractFields.calculationType] !== '' ? data[contractFields.calculationType] : undefined,\n\t\tdata[contractFields.administrationFee] !== '' ? parseInt(data[contractFields.administrationFee]) : undefined,\n\t\tdata[contractFields.zones].map((name: string) => ({ name })),\n\t\tdata[contractFields.pdfContract],\n\t\tdata[contractFields.attachments],\n\t\tdata[contractFields.amountOfParts],\n\t\tdata[contractFields.applicationIntake] !== '' ? parseInt(data[contractFields.applicationIntake]) : undefined,\n\t\t[],\n\t\tdata[contractFields.tlGroups]?.map((el: GroupUser) => el.id) ?? []\n\t);\n}\n","import { History, LocationState } from 'history';\nimport { contractFields, IHourlyRateField, ShiftsFormValues } from '../../containers/ContractContainer';\nimport Contract, { IContractWorkLocation } from '../../service/types/Contract';\nimport { ShiftInterface } from './generalContractHelper';\nimport { KeyValue } from '../userHelper/generalUserHelper';\nimport moment from 'moment';\nimport service from '../../service/service';\nimport User from '../../service/types/User';\nimport { IPriceListItem } from '../../consts/IPriceListItem';\nimport { priceListOptions } from '../../consts/priceListOptions';\nimport { GroupUser } from '../../pages/groupOverview/GroupOverview';\n\nexport function updateContract(\n\tcontract: Contract,\n\tdata: any,\n\tshifts: ShiftsFormValues,\n\tcheckedShifts: string[],\n\tcustomers: KeyValue[],\n\tteamLeaders: KeyValue[],\n\tqais: KeyValue[],\n\thistory: History,\n\tsetIsUserEditing: (val: boolean) => void,\n\tsetContract: (contract: Contract) => void,\n\tworkLocations: IContractWorkLocation[],\n\thourlyRateFields?: IHourlyRateField[]\n) {\n\tlet shiftsData: ShiftInterface[] = [];\n\n\tlet hasError = false;\n\n\tcheckedShifts.forEach((checkedShift) => {\n\t\tconst { from, to } = shifts[checkedShift as keyof ShiftsFormValues];\n\n\t\tif (from && to) {\n\t\t\tshiftsData.push({\n\t\t\t\tfrom,\n\t\t\t\tto,\n\t\t\t\tname: checkedShift,\n\t\t\t});\n\t\t} else {\n\t\t\thasError = true;\n\t\t}\n\t});\n\n\tif (!hasError) {\n\t\tconst updatedContract = createNewContractWithID(\n\t\t\tcontract,\n\t\t\tdata,\n\t\t\tcustomers,\n\t\t\tteamLeaders,\n\t\t\tqais,\n\t\t\tshiftsData,\n\t\t\tworkLocations,\n\t\t\thourlyRateFields\n\t\t);\n\t\tservice\n\t\t\t.updateContract(updatedContract)\n\t\t\t.then((res) => {\n\t\t\t\tif (res) {\n\t\t\t\t\tsetIsUserEditing(false);\n\t\t\t\t\tsetContract(updatedContract);\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(() => {});\n\t}\n}\n\nfunction createNewContractWithID(\n\tcontract: Contract,\n\tdata: any,\n\tcustomers: KeyValue[],\n\tteamLeaders: KeyValue[],\n\tqais: KeyValue[],\n\tshifts: ShiftInterface[],\n\tworkLocations: IContractWorkLocation[],\n\thourlyRateFields?: IHourlyRateField[]\n) {\n\tconst customer = customers.find((item) => item.key === data[contractFields.customer]);\n\n\tlet priceListArray: IPriceListItem[] = [];\n\tif (data[contractFields.priceListType]) {\n\t\tpriceListArray = (data[contractFields.priceListType] as string[]).map((type) => {\n\t\t\tconst hourlyRate = hourlyRateFields?.find((item) => item.selectedValue === type);\n\t\t\tconst intType = priceListOptions.find((opt) => opt.label === type);\n\n\t\t\treturn {\n\t\t\t\ttype: intType ? intType.value : 0,\n\t\t\t\thourly_rate: hourlyRate ? parseInt(hourlyRate.value) : undefined,\n\t\t\t};\n\t\t});\n\t}\n\n\tconst contactPerson: number[] = data[contractFields.contactPerson].map(\n\t\t(person: string) =>\n\t\t\tcustomer?.value.users.find((user: User) => `${user.firstName} ${user.lastName}` === person).id\n\t);\n\n\treturn new Contract(\n\t\tcontract.id,\n\t\tdata[contractFields.contractNumber],\n\t\tcustomer?.value.id,\n\t\tmoment(data[contractFields.date]),\n\t\tworkLocations,\n\t\tdata[contractFields.typeOfActivity],\n\t\tdata[contractFields.partDesignation],\n\t\tdata[contractFields.markingOfIOparts],\n\t\tshifts.map((shift) => ({\n\t\t\t...shift,\n\t\t\tname: shift.name.replaceAll('\"', ''),\n\n\t\t\tid: contract.shiftTimes.find((prevShift) => prevShift.name === shift.name.replaceAll('\"', ''))\n\t\t\t\t? contract.shiftTimes.find((prevShift) => prevShift.name === shift.name.replaceAll('\"', ''))!.id\n\t\t\t\t: 0,\n\t\t})),\n\t\tdata[contractFields.errorTypes],\n\t\tdata[contractFields.typesOfInspection],\n\t\tdata[contractFields.contractType],\n\t\tcontract.status,\n\t\tdata[contractFields.takingPhotos],\n\t\tdata[contractFields.automatedUpdates],\n\t\tdata[contractFields.assignQAI].map((qai: string) => qais.find((item) => item.key === qai)?.value.id),\n\t\tteamLeaders.find((item) => item.key === data[contractFields.assignTeamLeader])?.value.id,\n\t\tdata[contractFields.orderDescription],\n\t\tcontactPerson.map((el) => {\n\t\t\treturn { id: el };\n\t\t}),\n\t\tqais.find((item) => item.key === data[contractFields.contactQAI24])?.value.id,\n\t\ttypeof data[contractFields.billingCycle] === 'number' ? data[contractFields.billingCycle] : undefined,\n\t\tdata[contractFields.drivingRate] !== '' ? parseInt(data[contractFields.drivingRate]) : undefined,\n\t\tdata[contractFields.driving_time] !== ''\n\t\t\t? parseFloat(data[contractFields.driving_time].toString().replace(/,/g, '.'))\n\t\t\t: undefined,\n\t\tdata[contractFields.kilometer] !== '' ? parseInt(data[contractFields.kilometer]) : undefined,\n\t\tpriceListArray,\n\t\tdata[contractFields.projectType] !== '' ? data[contractFields.projectType] : undefined,\n\t\tdata[contractFields.calculationType] !== '' ? data[contractFields.calculationType] : undefined,\n\t\tdata[contractFields.administrationFee] !== '' ? parseInt(data[contractFields.administrationFee]) : undefined,\n\n\t\tcontract.zones\n\t\t\t? data[contractFields.zones].map((name: string) => ({\n\t\t\t\t\tid: contract.zones?.find((zone) => zone.name === name)\n\t\t\t\t\t\t? contract.zones?.find((zone) => zone.name === name)!.id\n\t\t\t\t\t\t: 0,\n\t\t\t\t\tname,\n\t\t\t }))\n\t\t\t: [],\n\t\tdata[contractFields.pdfContract],\n\t\tdata[contractFields.attachments],\n\t\tdata[contractFields.amountOfParts],\n\t\tdata[contractFields.applicationIntake] !== '' ? parseInt(data[contractFields.applicationIntake]) : undefined,\n\t\tdata[contractFields.tlGroups],\n\t\tdata[contractFields.tlGroups]?.map((el: GroupUser) => el.id) ?? []\n\t);\n}\n","import React, { useState } from 'react';\nimport { useFieldArray, useForm } from 'react-hook-form';\nimport { ContractType } from '../helpers/contractHelper/generalContractHelper';\nimport { KeyValue } from '../helpers/userHelper/generalUserHelper';\n\nimport ContractScreen from '../screens/ContractScreen';\nimport service from '../service/service';\nimport Contract from '../service/types/Contract';\nimport { useHistory, useParams } from 'react-router-dom';\nimport { StandardDialogInterface } from '../components/StandardDialog';\nimport { goToAdminContracts, goToSummary } from '../helpers/navigationHelper';\nimport { getCustomerOptionsKeyValuePairs } from '../helpers/customerHelper/readCustomerHelper';\nimport { getUserOptionsKeyValuePairs } from '../helpers/userHelper/readUserHelper';\nimport {\n\tonContractScreenMount,\n\tsetBasicContractInfo,\n\tsetContractInfo,\n} from '../helpers/contractHelper/readContractHelper';\nimport { createContract } from '../helpers/contractHelper/createContractHelper';\nimport { updateContract } from '../helpers/contractHelper/updateContractHelper';\nimport { FileInputIntreface } from '../components/StandardFileInput';\nimport { deleteContract } from '../helpers/contractHelper/deleteContractHelper';\nimport { useNotificationActionContext } from '../context/notification/useNotification';\nimport { RouteParams } from '../router/Routes';\nimport Spinner from '../components/Spinner';\nimport User from '../service/types/User';\nimport { unstable_batchedUpdates } from 'react-dom';\nimport { priceListOptions } from '../consts/priceListOptions';\nimport { useTranslation } from 'react-i18next';\n\nexport const contractFields = {\n\tdate: 'date',\n\tzones: 'zones',\n\tcontractType: 'contractType',\n\terrorTypes: 'errorTypes',\n\ttypesOfInspection: 'typesOfInspection',\n\tcontractNumber: 'contractNumber',\n\tpartDesignation: 'partDesignation',\n\tmarkingOfIOparts: 'markingOfIOparts',\n\ttakingPhotos: 'takingPhotos',\n\tcustomer: 'customer',\n\tassignQAI: 'assignQAI',\n\tassignTeamLeader: 'assignTeamLeader',\n\ttlGroups: 'tlGroups',\n\tautomatedUpdates: 'automatedUpdates',\n\ttypeOfActivity: 'typeOfActivity',\n\tshiftName: 'shiftName',\n\tfrom: 'from',\n\tto: 'to',\n\tshiftTimes: 'shiftTimes',\n\tpdfContract: 'pdfContract',\n\torderDescription: 'orderDescription',\n\tcontactPerson: 'contactPerson',\n\tcontactQAI24: 'contactQAI24',\n\tattachments: 'attachments',\n\tamountOfParts: 'amountOfParts',\n\tbillingCycle: 'billingCycle',\n\tdrivingRate: 'drivingRate',\n\tdriving_time: 'driving_time',\n\tkilometer: 'kilometer',\n\tpriceListType: 'priceListType',\n\thourlyRate: 'hourlyRate',\n\tprojectType: 'projectType',\n\tcalculationType: 'calculationType',\n\tadministrationFee: 'administrationFee',\n\tapplicationIntake: 'applicationIntake',\n};\n\nexport interface WorkLocationFormValues {\n\tname: string;\n\tdistance: string;\n}\n\nexport interface ShiftsFormValues {\n\tearlyShift: {\n\t\tfrom: string;\n\t\tto: string;\n\t};\n\tdayShift: {\n\t\tfrom: string;\n\t\tto: string;\n\t};\n\tlateShift: {\n\t\tfrom: string;\n\t\tto: string;\n\t};\n\tnightShift: {\n\t\tfrom: string;\n\t\tto: string;\n\t};\n}\n\nexport interface IHourlyRateField {\n\tid: string;\n\tvalue: string;\n\tselectedValue: string;\n}\n\ninterface MountedRefInterface {\n\tqais: React.MutableRefObject;\n\tcustomer: React.MutableRefObject;\n\tteamLeader: React.MutableRefObject;\n}\n\nexport const contractWorkLocationFields = {\n\tdistance: 'distance',\n\tname: 'name',\n};\n\nfunction ContractContainer() {\n\tconst { control, handleSubmit, errors, setValue, watch, getValues, register } = useForm();\n\tconst {\n\t\tcontrol: shiftControl,\n\t\terrors: shiftErrors,\n\t\tsetError: setShiftErrors,\n\t\tclearErrors: clearShiftErrors,\n\t\tgetValues: getShiftValues,\n\t\tsetValue: setShiftValue,\n\t} = useForm({\n\t\tdefaultValues: {\n\t\t\tdayShift: {\n\t\t\t\tfrom: '',\n\t\t\t\tto: '',\n\t\t\t},\n\t\t\tearlyShift: {\n\t\t\t\tfrom: '',\n\t\t\t\tto: '',\n\t\t\t},\n\t\t\tlateShift: {\n\t\t\t\tfrom: '',\n\t\t\t\tto: '',\n\t\t\t},\n\t\t\tnightShift: {\n\t\t\t\tfrom: '',\n\t\t\t\tto: '',\n\t\t\t},\n\t\t},\n\t});\n\n\tconst {\n\t\tcontrol: workLocationControl,\n\t\terrors: workLocationErrors,\n\t\thandleSubmit: handleWorkLocationSubmit,\n\t\treset: resetWorkLocationForm,\n\t} = useForm();\n\n\tconst [workLocations, setWorkLocations] = useState([]);\n\n\tconst { t } = useTranslation();\n\n\tconst [checkedShifts, setCheckedShifts] = useState([]);\n\n\tconst { setNotification } = useNotificationActionContext();\n\n\tconst [contract, setContract] = React.useState();\n\tconst [teamLeaders, setTeamLeaders] = React.useState([]);\n\tconst [qais, setQAIs] = React.useState([]);\n\tconst [customers, setCustomers] = React.useState([]);\n\tconst [isUserEditing, setIsUserEditing] = React.useState(false);\n\tconst [mounted, setMounted] = React.useState(false);\n\n\tconst qaisLoading = React.useRef(false);\n\tconst dialogRef = React.useRef(null);\n\tconst mountedRefs = React.useRef({\n\t\tcustomer: React.useRef(false),\n\t\tqais: React.useRef(false),\n\t\tteamLeader: React.useRef(false),\n\t});\n\tconst history = useHistory();\n\tconst contractType = watch(contractFields.contractType);\n\tconst teamLeader = watch(contractFields.assignTeamLeader);\n\tconst assignedQAIs = watch(contractFields.assignQAI);\n\tconst customer = watch(contractFields.customer);\n\tconst attachmentsInputRef = React.useRef();\n\tconst routeParams: RouteParams = useParams();\n\tconst mountedCustomer = React.useRef(false);\n\n\tconst {\n\t\tfields: hourlyRateFields,\n\t\tappend: appendHourlyRateField,\n\t\tremove: removeHourlyRateField,\n\t} = useFieldArray({\n\t\tcontrol,\n\t\tname: contractFields.hourlyRate,\n\t});\n\n\tconst getData = React.useCallback(async () => {\n\t\ttry {\n\t\t\tconst leaders = await getUserOptionsKeyValuePairs(service.getAllTeamLeaders(), () => {}, {\n\t\t\t\tproperty: 'deleted',\n\t\t\t\tvalue: false,\n\t\t\t});\n\t\t\tconst customers = await getCustomerOptionsKeyValuePairs(service.getAllCustomers(), () => {});\n\n\t\t\tunstable_batchedUpdates(() => {\n\t\t\t\tsetTeamLeaders(leaders);\n\t\t\t\tsetCustomers(customers);\n\t\t\t});\n\t\t} catch (e) {}\n\t}, []);\n\n\tReact.useEffect(() => {\n\t\tgetData();\n\t}, [getData]);\n\n\tReact.useEffect(() => {\n\t\tif (contract) {\n\t\t\tsetValue(contractFields.tlGroups, contract?.tlGroups ?? []);\n\t\t\tif (typeof contract.billingCycle !== 'undefined')\n\t\t\t\tsetValue(contractFields.billingCycle, contract.billingCycle);\n\t\t\tif (typeof contract.projectType !== 'undefined') setValue(contractFields.projectType, contract.projectType);\n\t\t\tif (typeof contract.calculationType !== 'undefined')\n\t\t\t\tsetValue(contractFields.calculationType, contract.calculationType);\n\n\t\t\tif (typeof contract.drivingRate !== 'undefined' && contract.drivingRate !== null) {\n\t\t\t\tsetValue(contractFields.drivingRate, contract.drivingRate);\n\t\t\t}\n\t\t\tif (typeof contract.drivingTime !== 'undefined' && contract.drivingTime !== null)\n\t\t\t\tsetValue(contractFields.driving_time, contract.drivingTime);\n\t\t\tif (typeof contract.kilometer !== 'undefined' && contract.kilometer !== null)\n\t\t\t\tsetValue(contractFields.kilometer, contract.kilometer);\n\t\t\tif (typeof contract.administrationFee !== 'undefined' && contract.administrationFee !== null)\n\t\t\t\tsetValue(contractFields.administrationFee, contract.administrationFee);\n\t\t\tif (typeof contract.applicationIntake !== 'undefined' && contract.applicationIntake !== null)\n\t\t\t\tsetValue(contractFields.applicationIntake, contract.applicationIntake);\n\n\t\t\tsetWorkLocations(contract.workLocations);\n\n\t\t\tconst shiftKeys = ['dayShift', 'earlyShift', 'lateShift', 'nightShift'];\n\t\t\tconst defaultCheckedShifts = contract.shiftTimes\n\t\t\t\t.filter((shift) => shiftKeys.some((key) => key === shift.name))\n\t\t\t\t.map((val) => val.name);\n\n\t\t\tdefaultCheckedShifts.forEach((shift) => {\n\t\t\t\tconst defaultShift = contract.shiftTimes.find((el) => el.name === shift);\n\n\t\t\t\tif (defaultShift) {\n\t\t\t\t\tsetShiftValue(`${shift}.from`, defaultShift.from);\n\t\t\t\t\tsetShiftValue(`${shift}.to`, defaultShift.to);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tsetCheckedShifts(defaultCheckedShifts);\n\n\t\t\tif (typeof contract.priceList !== 'undefined') {\n\t\t\t\tconst values = priceListOptions\n\t\t\t\t\t.filter((option) => contract.priceList?.some((item) => item.type === option.value))\n\t\t\t\t\t.map((val) => val.label);\n\n\t\t\t\tconst optionFiltered = priceListOptions.filter((item) =>\n\t\t\t\t\tcontract.priceList?.some((val) => val.type === item.value)\n\t\t\t\t);\n\n\t\t\t\tconst contractPriceListFiltered = optionFiltered.map((val) => {\n\t\t\t\t\tconst found = contract.priceList?.find((item) => item.type === val.value);\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tselectedValue: val.label,\n\t\t\t\t\t\tvalue: found ? found.hourly_rate : 0,\n\t\t\t\t\t};\n\t\t\t\t});\n\n\t\t\t\tsetValue(contractFields.hourlyRate, contractPriceListFiltered);\n\t\t\t\tsetValue(contractFields.priceListType, values);\n\t\t\t}\n\t\t}\n\t}, [contract, setShiftValue, setValue]);\n\n\tReact.useEffect(() => {\n\t\tif (contract && teamLeaders.length !== 0 && !mountedRefs.current.teamLeader.current) {\n\t\t\tmountedRefs.current.teamLeader.current = true;\n\t\t\tsetValue(\n\t\t\t\tcontractFields.assignTeamLeader,\n\t\t\t\tteamLeaders.find((item) => item.value.id === contract.assignedTeamLeader)?.key\n\t\t\t);\n\t\t}\n\t}, [contract, teamLeaders, setValue]);\n\n\tReact.useEffect(() => {\n\t\tif (!mountedCustomer.current && customer) {\n\t\t\tmountedCustomer.current = true;\n\t\t} else {\n\t\t\tsetValue(contractFields.contactPerson, undefined);\n\t\t}\n\t}, [customer, setValue]);\n\n\tReact.useEffect(() => {\n\t\tif (contract && customers.length !== 0 && !mountedRefs.current.customer.current) {\n\t\t\tmountedRefs.current.customer.current = true;\n\t\t\tconst currCustomer = customers.find((item) => item.value.id === contract.customer);\n\n\t\t\tconst contactPeopleIds = contract.contactPerson?.map((el) => +el.id);\n\t\t\tconst contactPeople: User[] = currCustomer?.value.users.filter((user: User) =>\n\t\t\t\tcontactPeopleIds?.includes(user.id)\n\t\t\t);\n\n\t\t\tsetValue(contractFields.customer, currCustomer?.key);\n\t\t\tsetValue(\n\t\t\t\tcontractFields.contactPerson,\n\t\t\t\tcontactPeople.length > 0\n\t\t\t\t\t? contactPeople?.map((user) => `${user.firstName} ${user.lastName}`)\n\t\t\t\t\t: undefined\n\t\t\t);\n\t\t}\n\t}, [contract, customers, setValue]);\n\n\tReact.useEffect(() => {\n\t\tif (contract && qais.length !== 0 && !mountedRefs.current.qais.current) {\n\t\t\tmountedRefs.current.qais.current = true;\n\t\t\tsetValue(\n\t\t\t\tcontractFields.assignQAI,\n\t\t\t\tcontract.assignedQAIs.map((id) => qais.find((qai) => qai.value.id === id)?.key)\n\t\t\t);\n\t\t\tsetValue(contractFields.contactQAI24, qais.find((qai) => qai.value.id === contract.contactQAI24)?.key);\n\t\t}\n\t}, [contract, qais, setValue]);\n\n\tReact.useEffect(() => {\n\t\tonContractScreenMount(history, routeParams, setContract, setIsUserEditing, setMounted);\n\t}, [history, routeParams]);\n\n\tReact.useEffect(() => {\n\t\tif (contract) {\n\t\t\tsetBasicContractInfo(contract, setValue);\n\t\t}\n\t}, [contract, setValue]);\n\n\tReact.useEffect(() => {\n\t\tif (contractType === ContractType.Standard) {\n\t\t\tsetValue(contractFields.zones, []);\n\t\t}\n\t}, [contractType, setValue]);\n\n\tReact.useEffect(() => {\n\t\tconst currentTeamLeader = teamLeaders.find((item) => item.key === teamLeader);\n\t\tif (currentTeamLeader) {\n\t\t\tif (!qaisLoading.current) {\n\t\t\t\tqaisLoading.current = true;\n\t\t\t\tgetUserOptionsKeyValuePairs(service.getAllQAIsByTeamLeader(currentTeamLeader.value.id), () => {})\n\t\t\t\t\t.then((res) => {\n\t\t\t\t\t\tsetQAIs(res);\n\t\t\t\t\t\tqaisLoading.current = false;\n\t\t\t\t\t})\n\t\t\t\t\t.catch((e) => {\n\t\t\t\t\t\tqaisLoading.current = false;\n\t\t\t\t\t});\n\t\t\t}\n\t\t} else {\n\t\t\tsetQAIs([]);\n\t\t\tsetValue(contractFields.assignQAI, null);\n\t\t}\n\t}, [teamLeader, teamLeaders, getValues, setValue]);\n\n\tReact.useEffect(() => {\n\t\tif (assignedQAIs && !assignedQAIs.some((qai: string) => qai === getValues(contractFields.contactQAI24))) {\n\t\t\tsetValue(contractFields.contactQAI24, undefined);\n\t\t}\n\t\tif (!assignedQAIs) {\n\t\t\tsetValue(contractFields.contactQAI24, undefined);\n\t\t}\n\t}, [assignedQAIs, getValues, setValue]);\n\n\tconst onCreatePress = React.useMemo(\n\t\t() =>\n\t\t\thandleSubmit((data) => {\n\t\t\t\tcreateContract(\n\t\t\t\t\thistory,\n\t\t\t\t\tdata,\n\t\t\t\t\tgetShiftValues(),\n\t\t\t\t\tcheckedShifts,\n\t\t\t\t\tcustomers,\n\t\t\t\t\tteamLeaders,\n\t\t\t\t\tqais,\n\t\t\t\t\tworkLocations,\n\t\t\t\t\thourlyRateFields as IHourlyRateField[]\n\t\t\t\t);\n\t\t\t}),\n\t\t[\n\t\t\thandleSubmit,\n\t\t\thistory,\n\t\t\tgetShiftValues,\n\t\t\tcheckedShifts,\n\t\t\tcustomers,\n\t\t\tteamLeaders,\n\t\t\tqais,\n\t\t\thourlyRateFields,\n\t\t\tworkLocations,\n\t\t]\n\t);\n\n\tconst onCancelPress = () => {\n\t\tif (contract) {\n\t\t\tsetContractInfo(\n\t\t\t\tcontract,\n\t\t\t\tteamLeaders,\n\t\t\t\tcustomers,\n\t\t\t\tqaisLoading,\n\t\t\t\tmountedRefs.current.qais,\n\t\t\t\tattachmentsInputRef,\n\t\t\t\tsetQAIs,\n\t\t\t\tsetValue,\n\t\t\t\tsetShiftValue,\n\t\t\t\tsetCheckedShifts,\n\t\t\t\tsetWorkLocations\n\t\t\t);\n\n\t\t\tsetIsUserEditing(false);\n\t\t} else goToAdminContracts(history);\n\t};\n\n\tconst onDeletePress = () => dialogRef.current?.setDialogState(true);\n\tconst onCancelDialogPress = () => dialogRef.current?.setDialogState(false);\n\n\tconst onDeleteContractDialogPress = () => {\n\t\tdeleteContract(service, contract, history, setNotification);\n\t};\n\n\tconst onEditPress = () => setIsUserEditing(true);\n\n\tconst onUpdatePress = React.useMemo(\n\t\t() =>\n\t\t\thandleSubmit((data) => {\n\t\t\t\tif (contract)\n\t\t\t\t\tupdateContract(\n\t\t\t\t\t\tcontract,\n\t\t\t\t\t\tdata,\n\t\t\t\t\t\tgetShiftValues(),\n\t\t\t\t\t\tcheckedShifts,\n\t\t\t\t\t\tcustomers,\n\t\t\t\t\t\tteamLeaders,\n\t\t\t\t\t\tqais,\n\t\t\t\t\t\thistory,\n\t\t\t\t\t\tsetIsUserEditing,\n\t\t\t\t\t\tsetContract,\n\t\t\t\t\t\tworkLocations,\n\t\t\t\t\t\thourlyRateFields as IHourlyRateField[]\n\t\t\t\t\t);\n\t\t\t}),\n\t\t[\n\t\t\thandleSubmit,\n\t\t\tcontract,\n\t\t\tgetShiftValues,\n\t\t\tcheckedShifts,\n\t\t\tcustomers,\n\t\t\tteamLeaders,\n\t\t\tqais,\n\t\t\thistory,\n\t\t\thourlyRateFields,\n\t\t\tworkLocations,\n\t\t]\n\t);\n\tconst onSubmitPress = () => {\n\t\tif (contract) {\n\t\t\tif (isUserEditing) {\n\t\t\t\tonUpdatePress();\n\t\t\t} else {\n\t\t\t\tonEditPress();\n\t\t\t}\n\t\t} else {\n\t\t\tonCreatePress();\n\t\t}\n\t};\n\n\tconst onSummaryPress = () => {\n\t\tif (contract) {\n\t\t\tgoToSummary(history, {\n\t\t\t\tcontractID: contract.id,\n\t\t\t\tcontractNumber: contract.contractNumber,\n\t\t\t\tstatus: contract.status,\n\t\t\t\tcontractCustomer: contract.customer.toString(),\n\t\t\t\tworkLocations: contract.workLocations,\n\t\t\t});\n\t\t}\n\t};\n\n\tconst onShiftCheckboxChange = (val: boolean, name: string) => {\n\t\tconst newChecked = checkedShifts.filter((shift) => shift !== name);\n\n\t\tconst { from, to } = getShiftValues()[name as keyof ShiftsFormValues];\n\n\t\tif (val) {\n\t\t\tsetCheckedShifts([...newChecked, name]);\n\n\t\t\tif (!from) {\n\t\t\t\tsetShiftErrors(`${name}.from`, {\n\t\t\t\t\tmessage: t('field_required'),\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (!to) {\n\t\t\t\tsetShiftErrors(`${name}.to`, {\n\t\t\t\t\tmessage: t('field_required'),\n\t\t\t\t});\n\t\t\t}\n\t\t} else {\n\t\t\tsetCheckedShifts(newChecked);\n\t\t\tclearShiftErrors([`${name}.from`, `${name}.to`]);\n\t\t}\n\t};\n\n\tconst onWorkLocationSubmitPress = React.useMemo(\n\t\t() =>\n\t\t\thandleWorkLocationSubmit((data) => {\n\t\t\t\tresetWorkLocationForm({\n\t\t\t\t\tdistance: '',\n\t\t\t\t\tname: '',\n\t\t\t\t});\n\n\t\t\t\tsetWorkLocations((prev: any) => {\n\t\t\t\t\treturn [\n\t\t\t\t\t\t...prev,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tdistance: parseFloat(data.distance),\n\n\t\t\t\t\t\t\tname: data.name,\n\t\t\t\t\t\t},\n\t\t\t\t\t];\n\t\t\t\t});\n\t\t\t}),\n\t\t[handleWorkLocationSubmit, resetWorkLocationForm]\n\t);\n\n\tif (!mounted) return ;\n\n\treturn (\n\t\t\n\t);\n}\n\nexport default ContractContainer;\n","import Contract, { IContractWorkLocation } from '../../service/types/Contract';\nimport { goToHome } from '../navigationHelper';\nimport { History, LocationState } from 'history';\nimport { contractFields } from '../../containers/ContractContainer';\nimport moment from 'moment';\nimport { getUserOptionsKeyValuePairs } from '../userHelper/readUserHelper';\nimport service from '../../service/service';\nimport { KeyValue } from '../userHelper/generalUserHelper';\nimport { FileInputIntreface } from '../../components/StandardFileInput';\nimport { RouteParams } from '../../router/Routes';\nimport User from '../../service/types/User';\n\nexport function onContractScreenMount(\n\thistory: History,\n\trouteParams: RouteParams,\n\tsetContract: (contract: Contract | undefined) => void,\n\tsetIsUserEditing: (val: boolean) => void,\n\tsetMounted: (val: boolean) => void\n) {\n\tif (routeParams.contract_id) {\n\t\tservice\n\t\t\t.getContract(Number(routeParams.contract_id))\n\t\t\t.then((res) => {\n\t\t\t\tsetMounted(true);\n\t\t\t\tsetContract(res);\n\t\t\t})\n\t\t\t.catch((e) => {\n\t\t\t\tgoToHome(history);\n\t\t\t});\n\t} else {\n\t\tsetIsUserEditing(true);\n\t\tsetContract(undefined);\n\t\tsetMounted(true);\n\t}\n}\n\nexport function setBasicContractInfo(contract: Contract, setValue: (field: string, val: any) => void) {\n\tsetValue(contractFields.date, moment(contract.date));\n\tsetValue(contractFields.contractType, contract.contractType);\n\tsetValue(contractFields.errorTypes, contract.errorTypes);\n\tsetValue(contractFields.amountOfParts, contract.amountOfParts);\n\tsetValue(contractFields.typesOfInspection, contract.typesOfInspection);\n\tsetValue(contractFields.contractNumber, contract.contractNumber);\n\tsetValue(contractFields.partDesignation, contract.partDesignation);\n\tsetValue(contractFields.markingOfIOparts, contract.markingOfIOparts);\n\tsetValue(contractFields.takingPhotos, contract.isPhotoAllowed);\n\tsetValue(contractFields.typeOfActivity, contract.typeOfActivity);\n\n\tsetValue(contractFields.orderDescription, contract.orderDescription);\n\tsetValue(contractFields.automatedUpdates, contract.automatedUpdates);\n\n\tsetValue(\n\t\tcontractFields.pdfContract,\n\t\tcontract.contractData && contract.contractData.name ? contract.contractData : ''\n\t);\n\tsetValue(contractFields.attachments, contract.attachments);\n\n\tif (contract.zones) {\n\t\tconst tempZones = contract.zones.map((zone) => {\n\t\t\treturn zone.name;\n\t\t});\n\t\tsetValue(contractFields.zones, tempZones);\n\t}\n}\n\nexport function setContractInfo(\n\tcontract: Contract,\n\tteamLeaders: KeyValue[],\n\tcustomers: KeyValue[],\n\tqaisLoading: React.MutableRefObject,\n\tqais: React.MutableRefObject,\n\tattachmentsInputRef: React.MutableRefObject,\n\tsetQAIs: (qais: KeyValue[]) => void,\n\tsetValue: (field: string, val: any) => void,\n\tsetShiftValue: (\n\t\tname: string,\n\t\tvalue: unknown,\n\t\toptions?:\n\t\t\t| Partial<{\n\t\t\t\t\tshouldValidate: boolean;\n\t\t\t\t\tshouldDirty: boolean;\n\t\t\t }>\n\t\t\t| undefined\n\t) => void,\n\tsetCheckedShifts: React.Dispatch>,\n\tsetWorkLocations: React.Dispatch>\n) {\n\tconst currentTeamLeader = teamLeaders.find((item) => item.value.id === contract.assignedTeamLeader);\n\tconst currCustomer = customers.find((item) => item.value.id === contract.customer);\n\tconst contactPerson: User[] = contract.contactPerson.map((person) =>\n\t\tcurrCustomer?.value.users.find((user: User) => user.id === person)\n\t);\n\t// setBasicContractInfo(contract, setValue, setShifts);\n\tsetValue(contractFields.assignTeamLeader, currentTeamLeader?.key);\n\tsetValue(contractFields.customer, currCustomer?.key);\n\n\tif (contactPerson)\n\t\tsetValue(\n\t\t\tcontractFields.contactPerson,\n\t\t\tcontactPerson.map((el) => `${el.firstName} ${el.lastName}`)\n\t\t);\n\n\tif (attachmentsInputRef.current && contract.attachments) {\n\t\tattachmentsInputRef.current.setNewValues(contract.attachments);\n\t}\n\n\tsetWorkLocations(contract.workLocations);\n\n\tconst shiftKeys = ['dayShift', 'earlyShift', 'lateShift', 'nightShift'];\n\tconst defaultCheckedShifts = contract.shiftTimes\n\t\t.filter((shift) => shiftKeys.some((key) => key === shift.name))\n\t\t.map((val) => val.name);\n\n\tconst defaultUnchecked = shiftKeys.filter((key) => !defaultCheckedShifts.some((val) => val === key));\n\n\tdefaultUnchecked.forEach((shift) => {\n\t\tsetShiftValue(`${shift}.from`, '');\n\t\tsetShiftValue(`${shift}.to`, '');\n\t});\n\n\tdefaultCheckedShifts.forEach((shift) => {\n\t\tconst defaultShift = contract.shiftTimes.find((el) => el.name === shift);\n\n\t\tif (defaultShift) {\n\t\t\tsetShiftValue(`${shift}.from`, defaultShift.from);\n\t\t\tsetShiftValue(`${shift}.to`, defaultShift.to);\n\t\t}\n\t});\n\n\tsetCheckedShifts(defaultCheckedShifts);\n\n\tqais.current = false;\n\tqaisLoading.current = true;\n\tgetUserOptionsKeyValuePairs(service.getAllQAIsByTeamLeader(currentTeamLeader?.value.id), () => {})\n\t\t.then((res) => {\n\t\t\tsetQAIs(res);\n\t\t\tqaisLoading.current = false;\n\t\t})\n\t\t.catch((e) => {\n\t\t\tqaisLoading.current = false;\n\t\t});\n}\n","import { Service } from '../../service/service';\nimport { History, LocationState } from 'history';\nimport { NotificationInterface } from '../../context/notification/notificationReducer';\nimport { goToAdminContracts } from '../navigationHelper';\nimport Contract from '../../service/types/Contract';\n\nexport function deleteContract(\n\tservice: Service,\n\tcontract: Contract | undefined,\n\thistory: History,\n\tsetNotification: (notification: NotificationInterface) => void\n) {\n\tif (contract)\n\t\tservice\n\t\t\t.deleteContractByID(contract.id)\n\t\t\t.then((res) => {\n\t\t\t\tif (res) {\n\t\t\t\t\tgoToAdminContracts(history);\n\t\t\t\t\tsetNotification({\n\t\t\t\t\t\ttext: 'contract_screen_delete_notification',\n\t\t\t\t\t\tadditional: contract.contractNumber,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(() => {});\n}\n","import { TableCellType } from '../components/table/StandardTableCell';\nimport { CustomerInterface } from '../service/types/Customer';\nimport { TableParamInterface } from './rhenusOverview';\n\ninterface CustomerParamInterface extends CustomerInterface {\n\tcustomerNumber: TableParamInterface;\n\tname: TableParamInterface;\n\tbillingAddressGenerated: TableParamInterface;\n\tdeliveryAddressGenerated: TableParamInterface;\n\tedit: TableParamInterface;\n}\n\nexport const customerListParams: CustomerParamInterface = {\n\tcustomerNumber: {\n\t\twidth: '6.15vw',\n\t\ttitle: 'customer_overview_customer_number',\n\t\ttype: TableCellType.Text,\n\t\ttitleType: TableCellType.Title,\n\t},\n\tname: {\n\t\twidth: '13.32vw',\n\t\ttitle: 'customer_overview_screen_name',\n\t\ttype: TableCellType.Text,\n\t\ttitleType: TableCellType.Title,\n\t},\n\tbillingAddressGenerated: {\n\t\twidth: '29.11vw',\n\t\ttitle: 'customer_overview_screen_billing',\n\t\ttype: TableCellType.Text,\n\t\ttitleType: TableCellType.Title,\n\t},\n\tdeliveryAddressGenerated: {\n\t\twidth: '28vw',\n\t\ttitle: 'customer_overview_screen_delivery',\n\t\ttype: TableCellType.Text,\n\t\ttitleType: TableCellType.Title,\n\t},\n\tedit: {\n\t\ttitle: '',\n\t\twidth: '6.15vw',\n\t\ttype: TableCellType.Link,\n\t\ttitleType: TableCellType.Title,\n\t},\n};\n","import React from 'react';\n\nimport { customerListParams } from '../consts/customer';\nimport { dataSorter } from '../helpers/dataSorter';\nimport Customer from '../service/types/Customer';\nimport { Sort } from './ContractList';\nimport CustomTableBody from './CustomTableBody';\n\ninterface Props {\n\tcustomers: Customer[];\n\tonEditPress: (customer: Customer) => void;\n}\n\nfunction CustomerList(props: Props) {\n\tconst [sort, setSort] = React.useState({\n\t\tfield: undefined,\n\t\tdirection: undefined,\n\t});\n\n\tconst sortedData = React.useMemo(() => {\n\t\tif (sort.field === undefined) return props.customers;\n\t\treturn dataSorter({ data: props.customers, sort });\n\t}, [props.customers, sort]);\n\n\treturn (\n\t\t\n\t);\n}\n\nexport default CustomerList;\n","import React from 'react';\nimport { Grid, makeStyles } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport { useGlobalStyles } from '../consts/globalStyles';\nimport Customer, { CustomerInterface } from '../service/types/Customer';\nimport HomeButton from '../svgComponents/HomeButton';\nimport StandardTextField from '../components/StandardTextField';\nimport { checkIfUserStopWriting } from '../helpers/filters';\nimport CustomerList from '../components/CustomerList';\nimport NewLink from '../components/NewLink';\nimport Filter from '../components/Filter';\nimport { Control, Controller } from 'react-hook-form';\nimport { customerOverviewFields } from '../helpers/customerHelper/generalCustomerHelper';\nimport IQRLogo from '../svgComponents/IQRLogo';\nimport { CustomerFilterKeys, initCustomerFilters } from '../helpers/customerHelper/generalCustomerHelper';\nimport { Routes } from '../router/Routes';\n\ninterface Props {\n\tcustomers: Customer[];\n\tfilters: CustomerInterface;\n\tcontrol: Control>;\n\tonFilterChange: (key: CustomerFilterKeys, value: any) => void;\n\tonNewContractPress: () => void;\n\tonEditPress: (customer: Customer) => void;\n\tclearAllFilters: () => void;\n}\n\nfunction CustomerOverviewScreen(props: Props) {\n\tconst [showFilters, setShowFilters] = React.useState(false);\n\tconst globalClasses = useGlobalStyles({ showFilters });\n\tconst classes = useStyles({});\n\tconst { t } = useTranslation();\n\tconst filterListRef = React.useRef(null);\n\tconst searchRef = React.useRef({ ...initCustomerFilters });\n\n\tconst onFilterPress = () => setShowFilters((prev) => !prev);\n\n\treturn (\n\t\t
    \n\t\t\t\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{t('customer_overview_screen_title')}\n\t\t\t\t
    \n\t\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tonChange(e);\n\t\t\t\t\t\t\t\t\t\tcheckIfUserStopWriting(e, props.onFilterChange, searchRef, 'name');\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tonChange(e);\n\t\t\t\t\t\t\t\t\t\tcheckIfUserStopWriting(\n\t\t\t\t\t\t\t\t\t\t\te,\n\t\t\t\t\t\t\t\t\t\t\tprops.onFilterChange,\n\t\t\t\t\t\t\t\t\t\t\tsearchRef,\n\t\t\t\t\t\t\t\t\t\t\t'billingAddressGenerated'\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tonChange(e);\n\t\t\t\t\t\t\t\t\t\tcheckIfUserStopWriting(\n\t\t\t\t\t\t\t\t\t\t\te,\n\t\t\t\t\t\t\t\t\t\t\tprops.onFilterChange,\n\t\t\t\t\t\t\t\t\t\t\tsearchRef,\n\t\t\t\t\t\t\t\t\t\t\t'deliveryAddressGenerated'\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tonChange(e);\n\t\t\t\t\t\t\t\t\t\tcheckIfUserStopWriting(e, props.onFilterChange, searchRef, 'country');\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tonChange(e);\n\t\t\t\t\t\t\t\t\t\tcheckIfUserStopWriting(e, props.onFilterChange, searchRef, 'city');\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tonChange(e);\n\t\t\t\t\t\t\t\t\t\tcheckIfUserStopWriting(e, props.onFilterChange, searchRef, 'postcode');\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tonChange(e);\n\t\t\t\t\t\t\t\t\t\tcheckIfUserStopWriting(e, props.onFilterChange, searchRef, 'street');\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tonChange(e);\n\t\t\t\t\t\t\t\t\t\tcheckIfUserStopWriting(e, props.onFilterChange, searchRef, 'houseNumber');\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tonChange(e);\n\t\t\t\t\t\t\t\t\t\tcheckIfUserStopWriting(e, props.onFilterChange, searchRef, 'costCenter');\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t
    \n\t);\n}\n\nconst useStyles = makeStyles(() => ({\n\ttitleWrapper: {\n\t\tmarginBottom: '12px',\n\t},\n\trow: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tjustifyContent: 'space-between',\n\t},\n}));\n\nexport default CustomerOverviewScreen;\n","import React from 'react';\nimport { useForm } from 'react-hook-form';\nimport { useHistory } from 'react-router-dom';\nimport {\n\tCustomerFilterKeys,\n\tcustomerOverviewFields,\n\tinitCustomerFilters,\n} from '../helpers/customerHelper/generalCustomerHelper';\n\nimport { filterData } from '../helpers/filters';\nimport { goToCustomer } from '../helpers/navigationHelper';\nimport CustomerOverviewScreen from '../screens/CustomerOverviewScreen';\nimport service from '../service/service';\nimport Customer, { CustomerInterface } from '../service/types/Customer';\n\nfunction CustomerOverviewContainer() {\n\tconst { control, setValue } = useForm();\n\tconst [customers, setCustomers] = React.useState([]);\n\tconst [filters, setFilters] = React.useState(initCustomerFilters);\n\tconst allCustomersRef = React.useRef([]);\n\tconst history = useHistory();\n\n\tconst onFilterChange = (key: CustomerFilterKeys, value: any) => {\n\t\tsetFilters((prev) => ({ ...prev, [key]: value }));\n\t};\n\n\tconst clearAllFilters = () => {\n\t\tObject.values(customerOverviewFields).forEach((val) => setValue(val, ''));\n\t\tsetFilters(initCustomerFilters);\n\t};\n\n\tconst onNewContractScreenPress = () => goToCustomer(history);\n\tconst onEditPress = (customer: Customer) => goToCustomer(history, customer);\n\n\tReact.useEffect(() => {\n\t\tsetCustomers(filterData(filters, allCustomersRef.current));\n\t}, [filters]);\n\n\tReact.useEffect(() => {\n\t\tservice\n\t\t\t.getAllCustomers()\n\t\t\t.then((customers) => {\n\t\t\t\tsetCustomers(customers);\n\t\t\t\tallCustomersRef.current = customers;\n\t\t\t})\n\t\t\t.catch(() => {});\n\t}, []);\n\n\treturn (\n\t\t\n\t);\n}\n\nexport default CustomerOverviewContainer;\n","import { standardCaseInputFields } from '../../containers/StandardCaseInputContainer';\nimport { Service } from '../../service/service';\nimport StandardCaseInput, { ErrorInputType } from '../../service/types/StandardCase';\nimport User from '../../service/types/User';\nimport { History, LocationState } from 'history';\nimport { ShiftInterface } from '../contractHelper/generalContractHelper';\nimport moment from 'moment';\nimport Contract from '../../service/types/Contract';\n\nexport function createStandardInputCase(\n\tdata: any,\n\thistory: History,\n\tcontract: Contract,\n\tservice: Service,\n\tuser: User,\n\tpartsNIO: number,\n\tpartsIO: number,\n\terrorParts: ErrorInputType[],\n\trefreshForm?: () => void,\n\tupdateAllStandardCaseInputs?: (input: StandardCaseInput[]) => void\n) {\n\tconst standardCase = getStandardCaseInputWithoutID(data, partsNIO, partsIO, user, errorParts, contract);\n\tservice\n\t\t.createStandradCaseInput(contract.id, standardCase)\n\t\t.then((res) => {\n\t\t\tif (res) {\n\t\t\t\trefreshForm ? refreshForm() : history.goBack();\n\n\t\t\t\tif (updateAllStandardCaseInputs) {\n\t\t\t\t\tservice.getAllStandardCaseInputs(contract.id).then((res) => {\n\t\t\t\t\t\tupdateAllStandardCaseInputs(res);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t\t.catch(() => {});\n}\n\nfunction getStandardCaseInputWithoutID(\n\tdata: any,\n\tpartsNIO: number,\n\tpartsIO: number,\n\tuser: User,\n\terrorParts: ErrorInputType[],\n\tcontract: Contract\n) {\n\treturn new StandardCaseInput(\n\t\t0,\n\t\tdata[standardCaseInputFields.partNumber],\n\t\tdata[standardCaseInputFields.deliveryNoteNumber] !== '' &&\n\t\tdata[standardCaseInputFields.deliveryNoteNumber] !== null\n\t\t\t? +data[standardCaseInputFields.deliveryNoteNumber]\n\t\t\t: null,\n\t\tmoment(data[standardCaseInputFields.deliveryNoteDate]),\n\t\tdata[standardCaseInputFields.totalPartsTested],\n\t\tpartsNIO,\n\t\tpartsIO,\n\t\tdata[standardCaseInputFields.partsReworked] ? data[standardCaseInputFields.partsReworked] : 0,\n\t\t0,\n\t\tuser.id,\n\t\tdata[standardCaseInputFields.typeOfInspection],\n\t\terrorParts,\n\t\tparseInt(data[standardCaseInputFields.shift]),\n\t\tmoment(data[standardCaseInputFields.date]),\n\t\tcontract.automatedUpdates ? true : data[standardCaseInputFields.approved],\n\t\tdata[standardCaseInputFields.comment],\n\t\tdata[standardCaseInputFields.photo]\n\t\t\t? {\n\t\t\t\t\t...data[standardCaseInputFields.photo],\n\t\t\t\t\tdata: data[standardCaseInputFields.photo].data.split(',')[1],\n\t\t\t }\n\t\t\t: undefined,\n\t\t// @ts-ignore: Object is possibly 'undefined'\n\t\tcontract && contract?.workLocations\n\t\t\t? contract.workLocations?.find((el) => el.name === data?.[standardCaseInputFields.location])?.id\n\t\t\t: undefined\n\t);\n}\n\nexport function createNewErrorInput(\n\tdata: any,\n\terrorParts: ErrorInputType[],\n\tsetErrorParts: (errorParts: ErrorInputType[]) => void,\n\tsetError: (field: string, error: { message: string }) => void,\n\tsetValue: (field: string, val: any) => void,\n\tgetValues: (field: string) => any\n) {\n\tlet checkNumberError = false;\n\tlet errorTypeError = false;\n\n\tcheckNumberError = checkIfCheckNumberIsValid(data, setError);\n\terrorTypeError = checkIfErrorTypeIsValid(data, setError);\n\n\tif (checkNumberError || errorTypeError) {\n\t\treturn;\n\t}\n\n\tif (!checkIfThereAreEnoughTestedParts(data, errorParts, setError, getValues)) return;\n\n\tsetErrorParts([\n\t\t{\n\t\t\tamount: Number(data[standardCaseInputFields.checkNumber]),\n\t\t\ttype: data[standardCaseInputFields.errorType],\n\t\t},\n\t\t...errorParts,\n\t]);\n\tsetValue(standardCaseInputFields.checkNumber, '');\n\tsetValue(standardCaseInputFields.errorType, '');\n}\n\nfunction checkIfThereAreEnoughTestedParts(\n\tdata: any,\n\terrorParts: ErrorInputType[],\n\tsetError: (field: string, error: { message: string }) => void,\n\tgetValues: (field: string) => any\n) {\n\tconst numberOfErrorParts =\n\t\tNumber(data[standardCaseInputFields.checkNumber]) +\n\t\terrorParts.reduce((prev, curr) => {\n\t\t\treturn prev + Number(curr.amount);\n\t\t}, 0);\n\n\tif (numberOfErrorParts > Number(getValues(standardCaseInputFields.totalPartsTested))) {\n\t\tsetError(standardCaseInputFields.checkNumber, { message: 'standard_case_screen_total_parts_tested_error' });\n\t\treturn false;\n\t} else return true;\n}\n\nfunction checkIfCheckNumberIsValid(data: any, setError: (field: string, error: { message: string }) => void) {\n\tif (!data[standardCaseInputFields.checkNumber] || data[standardCaseInputFields.checkNumber].length === 0) {\n\t\tsetError(standardCaseInputFields.checkNumber, { message: 'standard_case_screen_table_required' });\n\t\treturn true;\n\t}\n\treturn false;\n}\n\nfunction checkIfErrorTypeIsValid(data: any, setError: (field: string, error: { message: string }) => void) {\n\tif (!data[standardCaseInputFields.checkNumber] || data[standardCaseInputFields.checkNumber].length === 0) {\n\t\tsetError(standardCaseInputFields.errorType, { message: 'standard_case_screen_table_required' });\n\t\treturn true;\n\t}\n\treturn false;\n}\n\nexport function findCurrentShift(shiftTimes: ShiftInterface[]) {\n\tconst currentShift = shiftTimes.find((shift) => {\n\t\tconst startTime = moment()\n\t\t\t.set('hour', Number(shift.from.split(':')[0]))\n\t\t\t.set('minutes', Number(shift.from.split(':')[1]));\n\t\tconst endTime = moment()\n\t\t\t.set('hour', Number(shift.to.split(':')[0]))\n\t\t\t.set('minutes', Number(shift.to.split(':')[1]));\n\n\t\treturn moment().isBetween(startTime, endTime);\n\t});\n\n\tif (currentShift) {\n\t\treturn currentShift;\n\t} else {\n\t\tlet closestIndex = 0;\n\t\tlet smallestDifference = 36000;\n\n\t\tshiftTimes.forEach((shift, index) => {\n\t\t\tconst startTime = moment()\n\t\t\t\t.set('hour', Number(shift.from.split(':')[0]))\n\t\t\t\t.set('minutes', Number(shift.from.split(':')[1]));\n\t\t\tconst stratTimeDiff = Math.abs(moment().diff(startTime));\n\t\t\tif (stratTimeDiff < smallestDifference) {\n\t\t\t\tsmallestDifference = stratTimeDiff;\n\t\t\t\tclosestIndex = index;\n\t\t\t}\n\t\t\tconst endTime = moment()\n\t\t\t\t.set('hour', Number(shift.to.split(':')[0]))\n\t\t\t\t.set('minutes', Number(shift.to.split(':')[1]));\n\t\t\tconst endTimeDiff = Math.abs(moment().diff(endTime));\n\t\t\tif (endTimeDiff < smallestDifference) {\n\t\t\t\tsmallestDifference = endTimeDiff;\n\t\t\t\tclosestIndex = index;\n\t\t\t}\n\t\t});\n\t\treturn shiftTimes[closestIndex];\n\t}\n}\n","import { standardCaseInputFields } from '../../containers/StandardCaseInputContainer';\nimport StandardCaseInput, { ErrorInputType } from '../../service/types/StandardCase';\nimport { goToHome, StandardCaseNavigationInterface } from '../navigationHelper';\nimport { History, LocationState } from 'history';\nimport User, { UserRole } from '../../service/types/User';\nimport Contract from '../../service/types/Contract';\nimport { RouteParams } from '../../router/Routes';\nimport service from '../../service/service';\n\nexport function setStandardInputCaseInfo(\n\tstandardInputCase: StandardCaseInput | undefined,\n\tuser: User | undefined,\n\tsetValue: (field: string, val: any) => void,\n\tsetErrorParts: (errorParts: ErrorInputType[]) => void\n) {\n\tif (standardInputCase) {\n\t\tsetValue(standardCaseInputFields.partNumber, standardInputCase.partNumber);\n\t\tsetValue(standardCaseInputFields.date, standardInputCase.date);\n\t\tsetValue(standardCaseInputFields.deliveryNoteNumber, standardInputCase.deliveryNoteNumber);\n\t\tsetValue(standardCaseInputFields.deliveryNoteDate, standardInputCase.deliveryNoteDate);\n\t\tsetValue(standardCaseInputFields.totalPartsTested, standardInputCase.totalPartsTested);\n\t\tsetValue(standardCaseInputFields.partsReworked, standardInputCase.partsReworked);\n\t\tsetValue(standardCaseInputFields.comment, standardInputCase.comment);\n\t\tsetValue(standardCaseInputFields.typeOfInspection, standardInputCase.typeOfInspection);\n\t\tsetErrorParts(standardInputCase.errorTypes);\n\t\tsetValue(standardCaseInputFields.approved, standardInputCase.approved);\n\t\tsetValue(standardCaseInputFields.location, standardInputCase.locationID);\n\n\t\tif (user?.role !== UserRole.QualityAssuranceInspector) {\n\t\t\tif (standardInputCase.photo)\n\t\t\t\tservice\n\t\t\t\t\t.getPhoto(standardInputCase.photo.name)\n\t\t\t\t\t.then((res) => {\n\t\t\t\t\t\tif (res) {\n\t\t\t\t\t\t\tsetValue(standardCaseInputFields.photo, { name: '', data: res });\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.catch(() => {});\n\t\t}\n\t}\n}\n\nexport function onStandardInputScreenMount(\n\thistory: History,\n\trouteParams: RouteParams,\n\tsetIsUserEditing: (val: boolean) => void,\n\tsetStandardInputCase: (standardInputCase: StandardCaseInput | undefined) => void,\n\tsetContract: (contract: Contract) => void,\n\tsetMounted: (val: boolean) => void\n) {\n\tconst historyState = history.location.state as undefined | StandardCaseNavigationInterface;\n\n\tif (historyState && historyState.contract) {\n\t\tsetContract(Contract.fromJSON(JSON.parse(historyState.contract)));\n\t\tif (historyState.data) {\n\t\t\tsetStandardInputCase(JSON.parse(historyState.data));\n\t\t} else {\n\t\t\tsetIsUserEditing(true);\n\t\t}\n\t\tsetMounted(true);\n\t} else if (routeParams.contract_id) {\n\t\tservice\n\t\t\t.getContract(Number(routeParams.contract_id))\n\t\t\t.then((res) => {\n\t\t\t\tif (res) setContract(res);\n\t\t\t})\n\t\t\t.catch((e) => {\n\t\t\t\tgoToHome(history);\n\t\t\t});\n\t\tif (routeParams.id && ((historyState && !historyState.data) || !historyState)) {\n\t\t\tservice\n\t\t\t\t.getStandardCaseInputByID(Number(routeParams.contract_id), Number(routeParams.id))\n\t\t\t\t.then((res) => {\n\t\t\t\t\tif (res) {\n\t\t\t\t\t\tsetMounted(true);\n\t\t\t\t\t\tsetStandardInputCase(res);\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.catch((e) => {\n\t\t\t\t\tgoToHome(history);\n\t\t\t\t});\n\t\t} else {\n\t\t\tsetMounted(true);\n\t\t}\n\t} else {\n\t\tgoToHome(history);\n\t}\n}\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\n\nimport { ErrorInputType } from '../service/types/StandardCase';\nimport { colors } from '../consts/colors';\nimport { useGlobalStyles } from '../consts/globalStyles';\nimport { CHECK_NUMBER_WIDTH, ERROR_TYPE_WIDTH, TABLE_PADDING } from '../screens/StandardCaseInputScreen';\nimport RemoveIcon from '../svgComponents/RemoveIcon';\n\ninterface Props {\n\terrorInput: ErrorInputType;\n\tdisabled: boolean;\n\tindex: number;\n\tonRemovePress: (index: number) => void;\n}\n\nfunction ErrorInputRow(props: Props) {\n\tconst classes = useStyles({});\n\tconst globalClasses = useGlobalStyles();\n\tconst { t } = useTranslation();\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{props.errorInput.amount}\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t{t(props.errorInput.type)}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t\t{props.disabled ? null : (\n\t\t\t\t
    props.onRemovePress(props.index)}>\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t)}\n\t\t
    \n\t);\n}\n\nconst useStyles = makeStyles(() => ({\n\trow: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t},\n\twrapper: {\n\t\tbackgroundColor: colors.keyButton,\n\t\tborderBottom: '1px solid #C7C7C7',\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tjustifyContent: 'space-between',\n\t},\n\tcheckNumberWrapper: {\n\t\twidth: CHECK_NUMBER_WIDTH,\n\t\tpadding: TABLE_PADDING,\n\t},\n\terrorTypeWrapper: {\n\t\twidth: ERROR_TYPE_WIDTH,\n\t\tpadding: TABLE_PADDING,\n\t},\n\tremoveIconWrapper: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tcursor: 'pointer',\n\t\tmarginRight: '24px',\n\t},\n}));\n\nexport default ErrorInputRow;\n","import React from 'react';\nimport { withStyles, makeStyles } from '@material-ui/core/styles';\nimport TextField from '@material-ui/core/TextField';\n\nimport { colors } from '../consts/colors';\nimport { fonts } from '../consts/fonts';\nimport { MenuItem } from '@material-ui/core';\nimport { Autocomplete } from '@material-ui/lab';\nimport { globalInputStyle, useGlobalStyles } from '../consts/globalStyles';\nimport { useTranslation } from 'react-i18next';\nimport ErrorIcon from '../svgComponents/ErrorIcon';\nimport { ERROR_TYPE_WIDTH } from '../screens/StandardCaseInputScreen';\nimport DropdownArrow from '../svgComponents/DropdownArrow';\n\nexport const TextFieldWithCSS = withStyles({\n\troot: {\n\t\t'& .MuiAutocomplete-popupIndicatorOpen': {\n\t\t\ttransform: 'rotate(0deg)',\n\t\t},\n\t\t'& .MuiAutocomplete-popupIndicator': {\n\t\t\tmarginRight: '2px',\n\t\t},\n\t\t'& .MuiIconButton-root:hover': {\n\t\t\tbackgroundColor: 'white',\n\t\t},\n\t\t'& .Mui-disabled': {\n\t\t\tcolor: colors.gray,\n\t\t},\n\t\t'& .MuiAutocomplete-inputRoot': {\n\t\t\tpaddingLeft: '12px',\n\t\t},\n\t\t'& .MuiInput-underline:before': {\n\t\t\tborderBottom: `0px solid ${colors.lightGray}`,\n\t\t},\n\t\t'& .MuiInput-input': {\n\t\t\t...globalInputStyle(),\n\t\t\tborderRadius: '5px',\n\t\t\tpaddingLeft: '12px',\n\t\t},\n\t\t'& .MuiInput-input.Mui-disabled': {\n\t\t\t...globalInputStyle(),\n\t\t\tcolor: colors.gray,\n\t\t\tborderRadius: '5px',\n\t\t\tpaddingLeft: '12px',\n\t\t},\n\n\t\t'& .MuiInput-underline:after': {\n\t\t\tborderBottom: `0px solid ${colors.lightGray}`,\n\t\t},\n\t\t'& label.Mui-focused:not(.Mui-error)': {\n\t\t\tcolor: colors.lightGray,\n\t\t},\n\t\t'& .MuiInput-underline:hover:not(.Mui-disabled):before': {\n\t\t\tborderBottom: `0px solid ${colors.lightGray}`,\n\t\t},\n\t\t'& .MuiInput-underline': {\n\t\t\tborderBottomStyle: 'none',\n\t\t},\n\t\t'& .MuiSelect-select:focus': {\n\t\t\tbackgroundColor: 'white',\n\t\t\tborderRadius: '5px',\n\t\t},\n\t\t'& .Mui-error': {\n\t\t\tcolor: colors.error,\n\t\t},\n\t},\n})(TextField);\n\ninterface Props {\n\toptions: string[];\n\tonChange: (event: any) => void;\n\terror?: boolean;\n\thelperText?: string;\n\tmultiple?: boolean;\n\tloading?: boolean;\n\twithoutArrow?: boolean;\n\tonOpen?: () => void;\n\tinputWrapper?: string;\n\tdisabled?: boolean;\n\tvalue?: string;\n\tplaceholder?: string;\n}\n\nfunction TableAutoCompleteInput(props: Props) {\n\tconst { t } = useTranslation();\n\tconst [options, setOptions] = React.useState(props.options);\n\tconst [foucsed, setFoucsed] = React.useState(false);\n\tconst [rotateArrow, setRotateArrow] = React.useState(false);\n\tconst classes = useStyles({ foucsed: foucsed, rotate: rotateArrow, disabled: props.disabled });\n\tconst globalClasses = useGlobalStyles();\n\n\tReact.useEffect(() => setOptions(props.options), [props.options]);\n\n\treturn (\n\t\t
    \n\t\t\t setFoucsed(true)}\n\t\t\t\tonBlur={() => setFoucsed(false)}\n\t\t\t\tvalue={props.value}\n\t\t\t\tclasses={{\n\t\t\t\t\tpaper: classes.dropdownContainer,\n\t\t\t\t}}\n\t\t\t\topenText=\"\"\n\t\t\t\tcloseText=\"\"\n\t\t\t\tonClose={() => setRotateArrow(false)}\n\t\t\t\tonOpen={() => {\n\t\t\t\t\tsetRotateArrow(true);\n\t\t\t\t}}\n\t\t\t\tpopupIcon={\n\t\t\t\t\t!props.withoutArrow ? (\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t) : null\n\t\t\t\t}\n\t\t\t\tonChange={(_, newValue) => {\n\t\t\t\t\tprops.onChange(newValue);\n\t\t\t\t}}\n\t\t\t\tgetOptionLabel={(option) => t(option)}\n\t\t\t\trenderOption={(option) => (\n\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{t(option)}\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t)}\n\t\t\t\tloading={props.loading}\n\t\t\t\trenderInput={(params) => (\n\t\t\t\t\t {}}\n\t\t\t\t\t\tplaceholder={props.placeholder}\n\t\t\t\t\t\tlabel={undefined}\n\t\t\t\t\t\terror={props.error}\n\t\t\t\t\t\thelperText={''}\n\t\t\t\t\t\tclassName={props.inputWrapper ? props.inputWrapper : classes.inputWrapper}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t/>\n\t\t\t{props.error ? (\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t{props.helperText}\n\t\t\t\t
    \n\t\t\t) : null}\n\t\t
    \n\t);\n}\n\ninterface StyleProps {\n\tfoucsed: boolean;\n\trotate: boolean;\n\tdisabled?: boolean;\n}\n\nconst useStyles = makeStyles(() => ({\n\tunderlineField: {\n\t\t'&:before': {\n\t\t\tborderBottom: `0px solid ${colors.lightGray}`,\n\t\t},\n\t\t'&:after': {\n\t\t\tborderBottom: `0px solid ${colors.lightGray}`,\n\t\t},\n\t},\n\tinputWrapper: (p: StyleProps) => ({\n\t\twidth: '100%',\n\t\tbackgroundColor: p.foucsed ? '#F6F6F6' : colors.white,\n\t\tpadding: '6px 0px',\n\t}),\n\tdropdownContainer: {\n\t\tboxShadow: 'none',\n\t\ttransform: 'translateY(6px)',\n\t\tborder: `1px solid ${colors.borderColor}`,\n\t},\n\trow: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tmarginTop: '3px',\n\t},\n\terror: {\n\t\tfontSize: '12px',\n\t\tlineHeight: '16px',\n\t\tfontFamily: fonts.regular,\n\t\tcolor: colors.error,\n\t},\n\terrorImageWrapper: { marginRight: '5px', height: '16px' },\n\tmenuItem: {\n\t\tpadding: 0,\n\t\twidth: ERROR_TYPE_WIDTH,\n\t},\n\trotate: (p: StyleProps) => ({\n\t\ttransform: p.rotate ? 'rotate(180deg)' : `rotate(0deg) translateY(${p.disabled ? 5 : 2}px)`,\n\t\ttransition: 'all 0.5s',\n\t}),\n\tdropdownArrowWrapper: {\n\t\theight: 'fit-content',\n\t\tpadding: '5px 12px',\n\t\talignItems: 'center',\n\t\tdisplay: 'flex',\n\t},\n}));\n\nexport default TableAutoCompleteInput;\n","import * as React from 'react';\n\nfunction PhotoButton(props: any) {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n\nexport default PhotoButton;\n","import { Dialog, Grid, makeStyles } from '@material-ui/core';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport Webcam from 'react-webcam';\nimport { v4 as uuid } from 'uuid';\nimport { useGlobalStyles } from '../consts/globalStyles';\nimport { FileInterface } from '../helpers/contractHelper/generalContractHelper';\nimport BackArrow from '../svgComponents/BackArrow';\nimport HomeButton from '../svgComponents/HomeButton';\nimport PhotoButton from '../svgComponents/PhotoButton';\nimport Button from './Button';\nimport Transition from './Transition';\n\nexport interface CameraDialogInterface {\n\tsetDialogState: (open: boolean, isPreview: boolean, image: FileInterface | undefined) => void;\n}\n\ninterface Props {\n\tsaveText?: string;\n\tcancelText?: string;\n\tdescription?: string;\n\tpartNumber?: string;\n\tonChange?: (image: FileInterface) => void;\n}\n\nfunction CameraDialog({ saveText, cancelText, description, partNumber, onChange }: Props, ref: any) {\n\tconst globalClasses = useGlobalStyles();\n\tconst { t } = useTranslation();\n\tconst [isOpen, setIsOpen] = React.useState(false);\n\tconst [isPreview, setIsPreview] = React.useState(true);\n\tconst [image, setImage] = React.useState();\n\tconst classes = useStyles({ photo: image });\n\tconst webcamRef = React.useRef(null);\n\n\tconst captureImage = () => {\n\t\tif (webcamRef.current) {\n\t\t\tconst maybeImage = webcamRef.current.getScreenshot();\n\t\t\tif (maybeImage) setImage({ name: image?.name ? image.name : uuid(), data: maybeImage });\n\t\t}\n\t};\n\n\tconst saveImage = () => {\n\t\tif (onChange) {\n\t\t\tif (image) {\n\t\t\t\tonChange(image);\n\t\t\t\tsetIsOpen(false);\n\t\t\t\tsetIsPreview(true);\n\t\t\t}\n\t\t}\n\t};\n\n\tconst retakeImage = () => {\n\t\tsetImage(undefined);\n\t};\n\n\tconst cancel = () => {\n\t\tsetIsOpen(false);\n\t\tsetIsPreview(true);\n\t};\n\n\tReact.useImperativeHandle(\n\t\tref,\n\t\t(): CameraDialogInterface => ({\n\t\t\tsetDialogState: (val: boolean, isPreview: boolean, image: FileInterface | undefined) => {\n\t\t\t\tsetIsOpen(val);\n\t\t\t\tsetIsPreview(isPreview);\n\t\t\t\tsetImage(image);\n\t\t\t},\n\t\t})\n\t);\n\treturn (\n\t\t\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{isPreview ? null : (\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{t(description ? description : '')}\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t)}\n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{isPreview ? (\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{`${t('camera_dialog_part_number')}: ${partNumber}`}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t{t('camera_dialog_preview_title')}\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t) : image ? (\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t)}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t
    \n\t);\n}\n\ninterface StyleProps {\n\tphoto?: FileInterface;\n}\n\nconst useStyles = makeStyles(() => ({\n\titemWrapper: {\n\t\tmarginTop: '32px',\n\t},\n\tpreviewTitleWrapper: {\n\t\tmarginBottom: '40px',\n\t\ttextAlign: 'center',\n\t},\n\tpreviewPartWrapper: {\n\t\tmarginBottom: '4px',\n\t\ttextAlign: 'center',\n\t},\n\trow: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tjustifyContent: 'center',\n\t\tmargin: '40px 0px',\n\t},\n\tdescriptionWrapper: {\n\t\ttextAlign: 'center',\n\t\tmarginTop: '20px',\n\t},\n\tcontainer: { display: 'flex', flex: 1 },\n\n\timage: ({ photo }: StyleProps) => ({\n\t\twidth: '100%',\n\t\theight: '60vh',\n\t\tbackgroundImage: photo ? `url(${photo.data})` : undefined,\n\t\tbackgroundRepeat: 'no-repeat',\n\t\tbackgroundSize: '100% 60vh',\n\t}),\n\tphoto: {\n\t\tmargin: '24px 0 40px 0',\n\t\tcursor: 'pointer',\n\t},\n\tphotoWrapper: {\n\t\tdisplay: 'flex',\n\t\tjustifyContent: 'center',\n\t},\n}));\n\nexport default React.forwardRef(CameraDialog);\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core';\nimport { useGlobalStyles } from '../consts/globalStyles';\nimport StandardRadioButton from './StandardRadioButton';\nimport { Control, Controller } from 'react-hook-form';\nimport { useTranslation } from 'react-i18next';\nimport { rules } from '../consts/rules';\nimport ErrorIcon from '../svgComponents/ErrorIcon';\nimport { colors } from '../consts/colors';\nimport { useAuthStateContext } from '../context/auth/useAuth';\nimport { UserRole } from '../service/types/User';\n\ninterface Props {\n\tisUserEditing: boolean;\n\tcontrol: Control>;\n\terrors: Record;\n\tfieldName: string;\n}\n\nfunction ApproveItem(props: Props) {\n\tconst classes = useStyles({});\n\tconst globalClasses = useGlobalStyles();\n\tconst { t } = useTranslation();\n\tconst { user } = useAuthStateContext();\n\n\tif (user?.role === UserRole.QualityAssuranceInspector) return null;\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t{t('approve_explanation')} \n\t\t\t
    \n\t\t\t {\n\t\t\t\t\t\tif (val !== undefined) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn rules(t).required.message;\n\t\t\t\t\t},\n\t\t\t\t}}\n\t\t\t\trender={({ onChange, value }) => (\n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t{props.errors[props.fieldName] ? (\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{t(props.errors[props.fieldName] ? props.errors[props.fieldName].message : '')}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t) : null}\n\t\t\t\t\t
    \n\t\t\t\t)}\n\t\t\t/>\n\t\t
    \n\t);\n}\n\nconst useStyles = makeStyles(() => ({\n\terrorRow: {\n\t\tmarginTop: '10px',\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t},\n\taprroveWrapper: {\n\t\tbackgroundColor: colors.lightYellow,\n\t\tpadding: '20px',\n\t\tmarginTop: '56px',\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t},\n\tapproveTextWrapper: {\n\t\twidth: '33%',\n\t\tmarginRight: '50px',\n\t},\n\terrorImageWrapper: { marginRight: '5px', height: '16px' },\n\trow: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t},\n}));\n\nexport default ApproveItem;\n","import * as React from 'react';\n\nfunction PhotoIcon(props: React.SVGProps) {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n\nexport default PhotoIcon;\n","import { Dialog, Grid, makeStyles } from '@material-ui/core';\nimport React from 'react';\nimport Webcam from 'react-webcam';\nimport { useGlobalStyles } from '../consts/globalStyles';\nimport BackArrow from '../svgComponents/BackArrow';\nimport HomeButton from '../svgComponents/HomeButton';\nimport Transition from './Transition';\nimport { BrowserMultiFormatReader } from '@zxing/library';\n\nexport interface BarcodeScannerInterface {\n\tsetDialogState: (open: boolean, onScan: (text: string) => void) => void;\n}\n\nconst image = new Image();\n\ninterface Props {}\n\nfunction BarcodeScanner(props: Props, ref: any) {\n\tconst globalClasses = useGlobalStyles();\n\tconst [isOpen, setIsOpen] = React.useState(false);\n\tconst callback = React.useRef<(text: string) => void>(() => {});\n\tconst classes = useStyles({});\n\tconst webcamRef = React.useRef(null);\n\tconst codeReader = React.useMemo(() => new BrowserMultiFormatReader(), []);\n\tconst gridRef = React.useRef(null);\n\tconst lineRef = React.useRef(null);\n\tconst lineRef2 = React.useRef(null);\n\n\tconst capture = React.useCallback(async () => {\n\t\tconst imageSrc = webcamRef?.current?.getScreenshot();\n\n\t\tif (imageSrc) {\n\t\t\tif (lineRef.current && gridRef.current && !lineRef.current.style.backgroundColor) {\n\t\t\t\tconst t = gridRef.current!.offsetHeight / 2 - 202;\n\t\t\t\tlineRef.current!.style.top = `${t}px`;\n\t\t\t\tlineRef.current!.style.border = '2px solid red';\n\t\t\t\tlineRef2.current!.style.top = `${t + 101}px`;\n\t\t\t\tlineRef2.current!.style.backgroundColor = 'red';\n\t\t\t}\n\n\t\t\tconst canvas = document.getElementById('canvas');\n\t\t\tconst canvas2 = document.getElementById('canvas2');\n\n\t\t\t//@ts-ignore\n\t\t\tconst context = canvas.getContext('2d');\n\t\t\t//@ts-ignore\n\t\t\tconst context2 = canvas2.getContext('2d');\n\n\t\t\tif (context && context2) {\n\t\t\t\timage.src = imageSrc;\n\t\t\t\timage.onload = function () {\n\t\t\t\t\tcontext.drawImage(\n\t\t\t\t\t\timage,\n\t\t\t\t\t\tgridRef.current!.offsetWidth * 0.3,\n\t\t\t\t\t\tgridRef.current!.offsetHeight / 2 - 202,\n\t\t\t\t\t\tgridRef.current!.offsetWidth,\n\t\t\t\t\t\t200,\n\t\t\t\t\t\t0,\n\t\t\t\t\t\t0,\n\t\t\t\t\t\tgridRef.current!.offsetWidth,\n\t\t\t\t\t\t200\n\t\t\t\t\t);\n\t\t\t\t\tcodeReader\n\t\t\t\t\t\t//@ts-ignore\n\t\t\t\t\t\t.decodeFromImage(undefined, canvas.toDataURL())\n\t\t\t\t\t\t.then((res: any) => {\n\t\t\t\t\t\t\tif (res && res.text) {\n\t\t\t\t\t\t\t\tsetIsOpen(false);\n\t\t\t\t\t\t\t\tcallback.current(res.text);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.catch(() => {\n\t\t\t\t\t\t\tcontext2.drawImage(\n\t\t\t\t\t\t\t\timage,\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tgridRef.current!.offsetHeight / 2 - 101,\n\t\t\t\t\t\t\t\tgridRef.current!.offsetWidth,\n\t\t\t\t\t\t\t\t10,\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tgridRef.current!.offsetWidth,\n\t\t\t\t\t\t\t\t10\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tcodeReader\n\t\t\t\t\t\t\t\t//@ts-ignore\n\t\t\t\t\t\t\t\t.decodeFromImage(undefined, canvas2.toDataURL())\n\t\t\t\t\t\t\t\t.then((res: any) => {\n\t\t\t\t\t\t\t\t\tif (res && res.text) {\n\t\t\t\t\t\t\t\t\t\tsetIsOpen(false);\n\t\t\t\t\t\t\t\t\t\tcallback.current(res.text);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t.catch(() => {});\n\t\t\t\t\t\t});\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t}, [codeReader]);\n\n\tReact.useEffect(() => {\n\t\tlet interval: any;\n\t\tclearInterval(interval);\n\t\tif (isOpen) {\n\t\t\tinterval = setInterval(capture, 100);\n\t\t} else {\n\t\t\tif (interval) clearInterval(interval);\n\t\t}\n\t\treturn () => {\n\t\t\tclearInterval(interval);\n\t\t};\n\t}, [capture, isOpen]);\n\n\tconst cancel = () => {\n\t\tsetIsOpen(false);\n\t};\n\n\tReact.useImperativeHandle(\n\t\tref,\n\t\t(): BarcodeScannerInterface => ({\n\t\t\tsetDialogState: (val: boolean, onScan: (text: string) => void) => {\n\t\t\t\tsetIsOpen(val);\n\t\t\t\tcallback.current = onScan;\n\t\t\t},\n\t\t})\n\t);\n\n\treturn (\n\t\t\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{isOpen ? (\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t) : null}\n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t
    \n\t);\n}\n\nconst useStyles = makeStyles(() => ({\n\tcontainer: {\n\t\tdisplay: 'flex',\n\t\tflex: 1,\n\t\tposition: 'relative',\n\t},\n}));\n\nexport default React.forwardRef(BarcodeScanner);\n","import React from 'react';\nimport { Grid, makeStyles, MenuItem } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport { Control, Controller } from 'react-hook-form';\nimport moment from 'moment';\n\nimport BackArrow from '../svgComponents/BackArrow';\nimport HomeButton from '../svgComponents/HomeButton';\nimport { globalInputStyle, useGlobalStyles } from '../consts/globalStyles';\nimport StandardCaseInput, { ErrorInputType } from '../service/types/StandardCase';\nimport { rules } from '../consts/rules';\nimport StandardTextField from '../components/StandardTextField';\nimport { standardCaseInputFields } from '../containers/StandardCaseInputContainer';\nimport StandardDialog, { StandardDialogInterface } from '../components/StandardDialog';\nimport ErrorInputRow from '../components/ErrorInputRow';\nimport TableAutoCompleteInput from '../components/TableAutoCompleteInput';\nimport { fonts } from '../consts/fonts';\nimport { colors } from '../consts/colors';\nimport ErrorIcon from '../svgComponents/ErrorIcon';\nimport StandardDatePicker from '../components/StandardDatePicker';\nimport StandardCRUDButtons from '../components/StandardCRUDButtons';\nimport { ErrorType, FileInterface, ShiftInterface } from '../helpers/contractHelper/generalContractHelper';\nimport CameraDialog, { CameraDialogInterface } from '../components/CameraDialog';\nimport Contract from '../service/types/Contract';\nimport ApproveItem from '../components/ApproveItem';\nimport PhotoIcon from '../svgComponents/PhotoIcon';\nimport BarcodeScanner, { BarcodeScannerInterface } from '../components/BarcodeScanner';\nimport StandardAutoComplete from '../components/StandardAutoComplete';\n\ninterface Props {\n\tcommentRef: React.MutableRefObject;\n\tisUserEditing: boolean;\n\tstandardCaseInput: StandardCaseInput | undefined;\n\tcontrol: Control>;\n\terrors: Record;\n\taddControl: Control>;\n\taddErrors: Record;\n\tdialogRef: React.MutableRefObject;\n\terrorParts: ErrorInputType[];\n\tcontract: Contract | undefined;\n\ttotalPartsTested: number;\n\tpartNumberOptions: string[];\n\tpartsIO: number;\n\tpartsNIO: number;\n\tcontractShifts: ShiftInterface[];\n\tonSubmitPress: () => void;\n\tonSubmitStartNewPress: () => void;\n\tonCancelPress: () => void;\n\tonDeletePress: () => void;\n\tonCancelDialogPress: () => void;\n\tonDeleteErrorInputDialogPress: () => void;\n\tonRemoveErrorPart: (index: number) => void;\n\taddNewErrorPart: () => void;\n\twatch: (field: string) => any;\n\tdisablePaste: (e: any) => void;\n}\n\nexport const CHECK_NUMBER_WIDTH = '8.33vw';\nexport const ERROR_TYPE_WIDTH = '20.77vw';\nexport const TABLE_PADDING = '12px 16px';\n\nfunction StandardCaseInputScreen(props: Props) {\n\tconst photo = props.watch(standardCaseInputFields.photo);\n\tconst classes = useStyles({ disabled: !props.isUserEditing, photo: photo });\n\tconst globalClasses = useGlobalStyles();\n\n\tconst cameraDialogRef = React.useRef();\n\tconst barcodeDialogRef = React.useRef();\n\tconst { t } = useTranslation();\n\n\tconst openCameraInCaptureMode = () => {\n\t\tcameraDialogRef.current?.setDialogState(true, false, undefined);\n\t};\n\n\tconst openCameraInPreviewMode = () => {\n\t\tif (photo) cameraDialogRef.current?.setDialogState(true, true, photo);\n\t};\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t{props.standardCaseInput ? props.standardCaseInput.partNumber : t('standard_case_title')}\n\t\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tbarcodeDialogRef.current?.setDialogState(true, (text: string) => {\n\t\t\t\t\t\t\t\t\t\tonChange(text);\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tbarcodeDialogRef.current?.setDialogState(true, (text: string) => {\n\t\t\t\t\t\t\t\t\t\tonChange(text.replaceAll(/\\D/g, ''));\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\terror={props.errors[standardCaseInputFields.deliveryNoteNumber] ? true : false}\n\t\t\t\t\t\t\t\thelperText={\n\t\t\t\t\t\t\t\t\tprops.errors[standardCaseInputFields.deliveryNoteNumber]\n\t\t\t\t\t\t\t\t\t\t? props.errors[standardCaseInputFields.deliveryNoteNumber].message\n\t\t\t\t\t\t\t\t\t\t: ''\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\t\tif (val && Number(val) < props.partsIO + props.partsNIO)\n\t\t\t\t\t\t\t\t\treturn t('standard_case_screen_total_parts_tested_error');\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t}}\n\t\t\t\t\t\trender={({ onChange, value }) => (\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tbarcodeDialogRef.current?.setDialogState(true, (text: string) => {\n\t\t\t\t\t\t\t\t\t\tonChange(text.replaceAll(/\\D/g, ''));\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\terror={props.errors[standardCaseInputFields.totalPartsTested] ? true : false}\n\t\t\t\t\t\t\t\thelperText={\n\t\t\t\t\t\t\t\t\tprops.errors[standardCaseInputFields.totalPartsTested]\n\t\t\t\t\t\t\t\t\t\t? props.errors[standardCaseInputFields.totalPartsTested].message\n\t\t\t\t\t\t\t\t\t\t: ''\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t {}}\n\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\tdisabled={true}\n\t\t\t\t\t\tfixed={true}\n\t\t\t\t\t\tisUserNotEditing={!props.isUserEditing}\n\t\t\t\t\t\tvalue={props.partsNIO}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t {}}\n\t\t\t\t\t\tisUserNotEditing={!props.isUserEditing}\n\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\tdisabled={true}\n\t\t\t\t\t\tfixed={true}\n\t\t\t\t\t\tvalue={props.partsIO}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{props.contract?.typesOfInspection.map((item, index) => (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t{item}\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{props.contractShifts?.map((shift) => (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t{t(shift.name)}\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t zone.id === props.standardCaseInput?.locationID\n\t\t\t\t\t\t\t\t )?.name\n\t\t\t\t\t\t\t\t: ''\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcontrol={props.control}\n\t\t\t\t\t\tname={standardCaseInputFields.location}\n\t\t\t\t\t\trules={{}}\n\t\t\t\t\t\trender={({ onChange, value }) => (\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tonChange(e);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tvalue={value}\n\t\t\t\t\t\t\t\tdisabled={!props.isUserEditing}\n\t\t\t\t\t\t\t\tmultiple={false}\n\t\t\t\t\t\t\t\tplaceholder={'Locations'}\n\t\t\t\t\t\t\t\tnoOptionText={'autocomplete_no_options_zone'}\n\t\t\t\t\t\t\t\toptions={\n\t\t\t\t\t\t\t\t\tprops.contract && props.contract.workLocations\n\t\t\t\t\t\t\t\t\t\t? [...props.contract.workLocations.map((zone) => zone.name)]\n\t\t\t\t\t\t\t\t\t\t: []\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\terror={props.errors[standardCaseInputFields.location] ? true : false}\n\t\t\t\t\t\t\t\thelperText={\n\t\t\t\t\t\t\t\t\tprops.errors[standardCaseInputFields.location]\n\t\t\t\t\t\t\t\t\t\t? props.errors[standardCaseInputFields.location].message\n\t\t\t\t\t\t\t\t\t\t: ''\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\t{t('standard_case_check_number')}\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t{t('standard_case_overview_screen_errorType')}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{t('standard_case_total_check_number').toUpperCase()}\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t {}}\n\t\t\t\t\t\ttype={'number'}\n\t\t\t\t\t\tdisabled={true}\n\t\t\t\t\t\tfixed={true}\n\t\t\t\t\t\tvalue={props.totalPartsTested}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{props.addErrors[standardCaseInputFields.checkNumber] ? (\n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{props.addErrors[standardCaseInputFields.checkNumber]\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? t(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tprops.addErrors[standardCaseInputFields.checkNumber]\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t.message\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: ''}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t{!props.isUserEditing ? null : (\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{t('standard_case_total_error_add')}\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t)}\n\t\t\t\t\t
    \n\t\t\t\t\t{props.errorParts.map((errorPart, index) => (\n\t\t\t\t\t\t\n\t\t\t\t\t))}\n\t\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t{props.contract?.automatedUpdates ? (\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tif (props.isUserEditing) openCameraInCaptureMode();\n\t\t\t\t\t\t\t\t\t}}>\n\t\t\t\t\t\t\t\t\t{t('standard_case_total_upload_photo')}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{photo ? null : }\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t) : null}\n\t\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\n\t\t\t{props.contract?.automatedUpdates === false ? (\n\t\t\t\t\n\t\t\t) : null}\n\t\t\t
    \n\t\t\t\t\n\t\t\t
    \n\t\t\t (\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t/>\n\t\t\t\n\t\t\t\n\t\t
    \n\t);\n}\n\ninterface StyleProps {\n\tdisabled?: boolean;\n\tphoto?: FileInterface;\n}\n\nconst useStyles = makeStyles(() => ({\n\ttotalCheckWrapper: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'flex-start',\n\t\ttransform: 'translateY(10px)',\n\t},\n\ttotalCheckContentWrapper: {\n\t\talignItems: 'center',\n\t\tpaddingRight: '40px',\n\t\ttransform: 'translateY(2px)',\n\t},\n\ttitleWrapper: {\n\t\tmarginBottom: '24px',\n\t},\n\tinput: (props: StyleProps) => ({\n\t\t...globalInputStyle(props.disabled),\n\t\twhiteSpace: 'pre',\n\t}),\n\tinputWrapper: {\n\t\ttransform: 'translateY(-2px)',\n\t\ttextOverflow: 'ellipsis',\n\t\toverflow: 'hidden',\n\t},\n\tfieldWrapper: {\n\t\tmarginBottom: '40px !important',\n\t},\n\trowWrapper: {\n\t\tdisplay: 'flex',\n\t\tmargin: '48px 0px',\n\t\talignItems: 'center',\n\t},\n\tbottomWrapper: {\n\t\tmarginTop: '48px',\n\t},\n\ttopWrapper: {\n\t\tmarginBottom: '22px',\n\t},\n\n\ttableTitleWrapper: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tborderBottom: `2px solid #656565`,\n\t},\n\tcheckNumberWrapper: {\n\t\twidth: CHECK_NUMBER_WIDTH,\n\t\tpadding: TABLE_PADDING,\n\t},\n\terrorTypeTitleWrapper: {\n\t\twidth: ERROR_TYPE_WIDTH,\n\t\tpadding: TABLE_PADDING,\n\t\tdisplay: 'flex',\n\t\talignSelf: 'flex-start',\n\t},\n\terrorTypeWrapper: {\n\t\twidth: ERROR_TYPE_WIDTH,\n\t\tdisplay: 'flex',\n\t\talignSelf: 'flex-start',\n\t},\n\tcommentWrapper: {\n\t\tmarginTop: '64px',\n\t},\n\tuploadImageWrapper: {\n\t\tmarginTop: '64px',\n\t\tdisplay: 'flex',\n\t\talignItems: 'flex-end',\n\t},\n\ttableRowWrapper: {\n\t\tborderBottom: '1px solid #C7C7C7',\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tjustifyContent: 'space-between',\n\t\tbackgroundColor: colors.white,\n\t},\n\trow: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t},\n\taddErrorPart: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tcursor: 'pointer',\n\t\tmarginRight: '24px',\n\t},\n\n\tinputCheckNumber: {\n\t\t...globalInputStyle(),\n\t\tborder: 'none',\n\t\twidth: '70%',\n\t\toutline: 'none',\n\t},\n\terror: {\n\t\tfontSize: '12px',\n\t\tlineHeight: '16px',\n\t\tfontFamily: fonts.regular,\n\t\tcolor: colors.error,\n\t},\n\terrorImageWrapper: { marginRight: '5px', height: '16px' },\n\terrorWrapper: {\n\t\tpaddingTop: '9px',\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t},\n\tuploadPhotoWrapper: (props: StyleProps) => ({\n\t\tmarginRight: '27px',\n\t\tcursor: props.disabled ? 'defalut' : 'pointer',\n\t}),\n\timage: (props: StyleProps) => ({\n\t\tposition: 'relative',\n\t\twidth: '100px',\n\t\theight: '100px',\n\t\tbackgroundImage: props.photo ? `url(${props.photo.data})` : undefined,\n\t\tbackgroundRepeat: 'no-repeat',\n\t\tbackgroundSize: '100px 100px',\n\t\tbackgroundColor: colors.photoGray,\n\t\tcursor: props.disabled || !props.photo ? 'default' : 'pointer',\n\t}),\n}));\n\nexport default StandardCaseInputScreen;\n","import { History, LocationState } from 'history';\nimport moment from 'moment';\n\nimport { Service } from '../../service/service';\nimport StandardCaseInput, { ErrorInputType } from '../../service/types/StandardCase';\nimport { standardCaseInputFields } from '../../containers/StandardCaseInputContainer';\nimport { replaceStandardCaseHistoryData } from '../navigationHelper';\nimport Contract from '../../service/types/Contract';\n\nexport function updateStandradCaseInput(\n\tdata: any,\n\tservice: Service,\n\tstandardInputCase: StandardCaseInput | undefined,\n\tpartsNIO: number,\n\tpartsIO: number,\n\terrorParts: ErrorInputType[],\n\tcontractIDRef: number,\n\thistory: History,\n\tsetStandardInputCase: (standardInputCase: StandardCaseInput | undefined) => void,\n\tsetIsUserEditing: (val: boolean) => void,\n\taddSetValue: (field: string, val: any) => void,\n\tupdateAllStandardCaseInputs?: (input: StandardCaseInput[]) => void,\n\tcontract?: Contract\n) {\n\tif (standardInputCase) {\n\t\tconst tempStandardCase = getUpdatedStandradCase(\n\t\t\tdata,\n\t\t\tstandardInputCase,\n\t\t\tpartsNIO,\n\t\t\tpartsIO,\n\t\t\terrorParts,\n\t\t\tcontract\n\t\t);\n\t\tservice\n\t\t\t.updateStandradCaseInput(contractIDRef, {\n\t\t\t\t...tempStandardCase,\n\t\t\t\tphoto: tempStandardCase.photo\n\t\t\t\t\t? {\n\t\t\t\t\t\t\t...tempStandardCase.photo,\n\t\t\t\t\t\t\tdata:\n\t\t\t\t\t\t\t\ttempStandardCase.photo && tempStandardCase.photo.data\n\t\t\t\t\t\t\t\t\t? tempStandardCase.photo.data.split(',')[1]\n\t\t\t\t\t\t\t\t\t: '',\n\t\t\t\t\t }\n\t\t\t\t\t: undefined,\n\t\t\t})\n\t\t\t.then((res) => {\n\t\t\t\tif (res) {\n\t\t\t\t\tsetStandardInputCase(tempStandardCase);\n\t\t\t\t\treplaceStandardCaseHistoryData(history, tempStandardCase);\n\t\t\t\t\taddSetValue(standardCaseInputFields.checkNumber, '');\n\t\t\t\t\taddSetValue(standardCaseInputFields.errorType, '');\n\t\t\t\t\tsetIsUserEditing(false);\n\t\t\t\t}\n\n\t\t\t\tif (updateAllStandardCaseInputs) {\n\t\t\t\t\tservice.getAllStandardCaseInputs(contractIDRef).then((res) => {\n\t\t\t\t\t\tupdateAllStandardCaseInputs(res);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(() => {});\n\t}\n}\n\nfunction getUpdatedStandradCase(\n\tdata: any,\n\tstandardInputCase: StandardCaseInput,\n\tpartsNIO: number,\n\tpartsIO: number,\n\terrorParts: ErrorInputType[],\n\tcontract?: Contract\n) {\n\treturn new StandardCaseInput(\n\t\tstandardInputCase.id,\n\t\tdata[standardCaseInputFields.partNumber],\n\t\tdata[standardCaseInputFields.deliveryNoteNumber] !== '' &&\n\t\tdata[standardCaseInputFields.deliveryNoteNumber] !== null\n\t\t\t? +data[standardCaseInputFields.deliveryNoteNumber]\n\t\t\t: null,\n\t\tmoment(data[standardCaseInputFields.deliveryNoteDate]),\n\t\tdata[standardCaseInputFields.totalPartsTested],\n\t\tpartsNIO,\n\t\tpartsIO,\n\t\tdata[standardCaseInputFields.partsReworked] ? data[standardCaseInputFields.partsReworked] : 0,\n\t\tstandardInputCase.checkNumber,\n\t\tstandardInputCase.qai,\n\t\tdata[standardCaseInputFields.typeOfInspection],\n\t\terrorParts,\n\t\tparseInt(data[standardCaseInputFields.shift]),\n\t\tmoment(data[standardCaseInputFields.date]),\n\t\tdata[standardCaseInputFields.approved] === undefined ? true : data[standardCaseInputFields.approved],\n\t\tdata[standardCaseInputFields.comment],\n\t\tdata[standardCaseInputFields.photo],\n\t\tcontract\n\t\t\t? contract?.workLocations?.find((el) => el.name === data[standardCaseInputFields.location])?.id\n\t\t\t: undefined\n\t);\n}\n","import React from 'react';\nimport { useForm } from 'react-hook-form';\nimport { useHistory, useParams } from 'react-router-dom';\nimport { StandardDialogInterface } from '../components/StandardDialog';\nimport { useAuthStateContext } from '../context/auth/useAuth';\nimport { createNewErrorInput, createStandardInputCase } from '../helpers/standardInputHelper/createStandardInputHelper';\nimport {\n\tonStandardInputScreenMount,\n\tsetStandardInputCaseInfo,\n} from '../helpers/standardInputHelper/readStandardInputHelper';\nimport StandardCaseInputScreen from '../screens/StandardCaseInputScreen';\nimport service from '../service/service';\nimport StandardCaseInput, { ErrorInputType } from '../service/types/StandardCase';\nimport { updateStandradCaseInput } from '../helpers/standardInputHelper/updateStandardInputHelper';\nimport { deleteStandardInput } from '../helpers/standardInputHelper/deleteStandardInputHelper';\nimport { useNotificationActionContext } from '../context/notification/useNotification';\nimport Contract from '../service/types/Contract';\nimport { RouteParams } from '../router/Routes';\nimport Spinner from '../components/Spinner';\nimport { ShiftInterface } from '../helpers/contractHelper/generalContractHelper';\n\nexport const standardCaseInputFields = {\n\tapproved: 'approved',\n\tcheckNumber: 'checkNumber',\n\tcomment: 'comment',\n\tdate: 'date',\n\terrorType: 'errorType',\n\tdeliveryNoteNumber: 'deliveryNoteNumber',\n\tdeliveryNoteDate: 'deliveryNoteDate',\n\tpartNumber: 'partNumber',\n\tpartsIO: 'partsIO',\n\tpartsNIO: 'partsNIO',\n\tpartsReworked: 'partsReworked',\n\tphoto: 'photo',\n\ttotalPartsTested: 'totalPartsTested',\n\ttypeOfInspection: 'typeOfInspection',\n\tshift: 'shift',\n\tlocation: 'location',\n};\n\nfunction StandardCaseInputContainer() {\n\tconst { control, handleSubmit, errors, setValue, watch, getValues, reset } = useForm({});\n\tconst {\n\t\tcontrol: addControl,\n\t\thandleSubmit: addHandleSubmit,\n\t\terrors: addErrors,\n\t\tsetValue: addSetValue,\n\t\tsetError: addSetError,\n\t\treset: addReset,\n\t} = useForm();\n\n\tconst [isUserEditing, setIsUserEditing] = React.useState(false);\n\tconst [errorParts, setErrorParts] = React.useState([]);\n\tconst [contract, setContract] = React.useState();\n\tconst [mounted, setMounted] = React.useState(false);\n\tconst [standardInputCase, setStandardInputCase] = React.useState(undefined);\n\n\tconst [contractShifts, setContractShifts] = React.useState([]);\n\n\tconst [allStandardCaseInputs, setAllStandardCaseInputs] = React.useState([]);\n\tconst commentRef = React.useRef();\n\tconst { user } = useAuthStateContext();\n\tconst { setNotification } = useNotificationActionContext();\n\tconst routeParams: RouteParams = useParams();\n\tconst totalPartsTested = watch(standardCaseInputFields.totalPartsTested, '');\n\tconst partsNIO = React.useMemo(() => {\n\t\treturn errorParts.reduce((prev, curr) => {\n\t\t\treturn prev + Number(curr.amount);\n\t\t}, 0);\n\t}, [errorParts]);\n\n\tconst partsIO = React.useMemo(() => {\n\t\tif (totalPartsTested) return totalPartsTested - partsNIO;\n\t\treturn 0;\n\t}, [partsNIO, totalPartsTested]);\n\n\tconst dialogRef = React.useRef(null);\n\n\tconst history = useHistory();\n\n\tconst onDeletePress = () => dialogRef.current?.setDialogState(true);\n\tconst onCancelDialogPress = () => dialogRef.current?.setDialogState(false);\n\n\tconst onDeleteErrorInputDialogPress = () => {\n\t\tif (contract) deleteStandardInput(service, standardInputCase, contract.id, history, setNotification);\n\t};\n\n\tconst onRemoveErrorPart = (index: number) => setErrorParts(errorParts.filter((_, i) => i !== index));\n\n\tconst addNewErrorPart = React.useMemo(\n\t\t() =>\n\t\t\taddHandleSubmit((data) => {\n\t\t\t\tcreateNewErrorInput(data, errorParts, setErrorParts, addSetError, addSetValue, getValues);\n\t\t\t}),\n\t\t[addHandleSubmit, errorParts, addSetValue, getValues, addSetError]\n\t);\n\n\tReact.useEffect(() => {\n\t\tconst contractId = routeParams.contract_id;\n\n\t\tif (contractId) {\n\t\t\tservice.getAllStandardCaseInputs(Number(contractId)).then(setAllStandardCaseInputs);\n\n\t\t\tservice.readShifts(parseInt(contractId)).then((res) => setContractShifts(res));\n\t\t}\n\t}, [routeParams.contract_id]);\n\n\tReact.useEffect(() => {\n\t\tonStandardInputScreenMount(\n\t\t\thistory,\n\t\t\trouteParams,\n\t\t\tsetIsUserEditing,\n\t\t\tsetStandardInputCase,\n\t\t\tsetContract,\n\t\t\tsetMounted\n\t\t);\n\t}, [history, routeParams]);\n\n\tReact.useEffect(() => {\n\t\tsetStandardInputCaseInfo(standardInputCase, user, setValue, setErrorParts);\n\t}, [standardInputCase, setValue, user]);\n\n\tconst updateAllStandardCaseInputs = (inputs: StandardCaseInput[]) => {\n\t\tsetAllStandardCaseInputs(inputs);\n\t};\n\n\tconst disablePaste = (e: any) => {\n\t\te.preventDefault();\n\t};\n\n\tconst onEditPress = () => setIsUserEditing(true);\n\n\tconst onUpdatePress = React.useMemo(\n\t\t() =>\n\t\t\thandleSubmit((data) => {\n\t\t\t\tif (contract)\n\t\t\t\t\tupdateStandradCaseInput(\n\t\t\t\t\t\tdata,\n\t\t\t\t\t\tservice,\n\t\t\t\t\t\tstandardInputCase,\n\t\t\t\t\t\tpartsNIO,\n\t\t\t\t\t\tpartsIO,\n\t\t\t\t\t\terrorParts,\n\t\t\t\t\t\tcontract.id,\n\t\t\t\t\t\thistory,\n\t\t\t\t\t\tsetStandardInputCase,\n\t\t\t\t\t\tsetIsUserEditing,\n\t\t\t\t\t\taddSetValue,\n\t\t\t\t\t\tupdateAllStandardCaseInputs,\n\t\t\t\t\t\tcontract\n\t\t\t\t\t);\n\t\t\t}),\n\t\t[handleSubmit, standardInputCase, partsIO, partsNIO, errorParts, history, contract, addSetValue]\n\t);\n\n\tconst onCreatePress = React.useMemo(\n\t\t() =>\n\t\t\thandleSubmit((data) => {\n\t\t\t\tif (contract)\n\t\t\t\t\tcreateStandardInputCase(data, history, contract, service, user!, partsNIO, partsIO, errorParts);\n\t\t\t}),\n\t\t[history, user, partsNIO, partsIO, errorParts, contract, handleSubmit]\n\t);\n\n\tconst onCancelPress = () => {\n\t\tif (standardInputCase) {\n\t\t\tsetStandardInputCaseInfo(standardInputCase, user, setValue, setErrorParts);\n\t\t\tsetIsUserEditing(false);\n\t\t} else history.goBack();\n\t};\n\n\tconst onSubmitPress = () => {\n\t\tif (standardInputCase) {\n\t\t\tif (isUserEditing) {\n\t\t\t\tonUpdatePress();\n\t\t\t} else {\n\t\t\t\tonEditPress();\n\t\t\t}\n\t\t} else {\n\t\t\tonCreatePress();\n\t\t}\n\t};\n\n\tconst resetAllValues = React.useCallback(() => {\n\t\tsetValue(standardCaseInputFields.approved, undefined);\n\t\taddSetValue(standardCaseInputFields.checkNumber, undefined);\n\t\tsetValue(standardCaseInputFields.comment, undefined);\n\t\tsetValue(standardCaseInputFields.deliveryNoteDate, null);\n\t\tsetValue(standardCaseInputFields.deliveryNoteNumber, undefined);\n\t\taddSetValue(standardCaseInputFields.errorType, undefined);\n\t\tsetValue(standardCaseInputFields.partNumber, undefined);\n\t\tsetValue(standardCaseInputFields.partsIO, undefined);\n\t\tsetValue(standardCaseInputFields.partsNIO, undefined);\n\t\tsetValue(standardCaseInputFields.partsReworked, undefined);\n\t\tsetValue(standardCaseInputFields.photo, undefined);\n\t\tsetValue(standardCaseInputFields.totalPartsTested, undefined);\n\t}, [addSetValue, setValue]);\n\n\tconst formRefresh = React.useCallback(() => {\n\t\tsetErrorParts([]);\n\t\taddReset();\n\t\treset();\n\t\tresetAllValues();\n\t}, [addReset, reset, resetAllValues]);\n\n\tconst onCreateStartNewPress = React.useMemo(\n\t\t() =>\n\t\t\thandleSubmit((data) => {\n\t\t\t\tif (contract)\n\t\t\t\t\tcreateStandardInputCase(\n\t\t\t\t\t\tdata,\n\t\t\t\t\t\thistory,\n\t\t\t\t\t\tcontract,\n\t\t\t\t\t\tservice,\n\t\t\t\t\t\tuser!,\n\t\t\t\t\t\tpartsNIO,\n\t\t\t\t\t\tpartsIO,\n\t\t\t\t\t\terrorParts,\n\t\t\t\t\t\tformRefresh,\n\t\t\t\t\t\tupdateAllStandardCaseInputs\n\t\t\t\t\t);\n\t\t\t}),\n\t\t[handleSubmit, contract, history, user, partsNIO, partsIO, errorParts, formRefresh]\n\t);\n\n\tconst partNumberOptions = React.useMemo(() => {\n\t\tconst inputs: string[] = allStandardCaseInputs.map((input) => input.partNumber);\n\n\t\tconst filteredInputs = inputs.filter((item, index) => inputs.indexOf(item) === index);\n\n\t\treturn filteredInputs;\n\t}, [allStandardCaseInputs]);\n\n\tif (!mounted || !contract) return ;\n\n\treturn (\n\t\t\n\t);\n}\n\nexport default StandardCaseInputContainer;\n","import { Service } from '../../service/service';\nimport StandardCaseInput from '../../service/types/StandardCase';\nimport { History, LocationState } from 'history';\nimport { NotificationInterface } from '../../context/notification/notificationReducer';\n\nexport function deleteStandardInput(\n\tservice: Service,\n\tstandardInputCase: StandardCaseInput | undefined,\n\tcontractID: number,\n\thistory: History,\n\tsetNotification: (notification: NotificationInterface) => void\n) {\n\tif (standardInputCase)\n\t\tservice\n\t\t\t.deleteStandradCaseInputByID(contractID, standardInputCase.id)\n\t\t\t.then((res) => {\n\t\t\t\tif (res) {\n\t\t\t\t\thistory.goBack();\n\t\t\t\t\tsetNotification({\n\t\t\t\t\t\ttext: 'standard_case_screen_delete_notification',\n\t\t\t\t\t\tadditional: standardInputCase.partNumber,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(() => {});\n}\n","import * as React from 'react';\n\nfunction SearchIcon(props: any) {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n\nexport default SearchIcon;\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\n\nimport { colors } from '../consts/colors';\nimport SearchIcon from '../svgComponents/SearchIcon';\nimport { globalInputStyle } from '../consts/globalStyles';\nimport { TextFieldWithCSS } from './StandardAutoComplete';\n\ninterface Props {\n\tonChange: (event: any) => void;\n\tplaceholder: string;\n}\n\nfunction SearchInput(props: Props) {\n\tconst [focused, setFocused] = React.useState(false);\n\tconst classes = useStyles({\n\t\tfocused: focused,\n\t});\n\n\treturn (\n\t\t props.onChange(event.target.value)}\n\t\t\tclassName={classes.inputWrapper}\n\t\t\tInputProps={{\n\t\t\t\tonFocus: () => setFocused(true),\n\t\t\t\tonBlur: () => setFocused(false),\n\t\t\t\tstartAdornment: ,\n\t\t\t\tclasses: {\n\t\t\t\t\tinput: classes.input,\n\t\t\t\t\tunderline: classes.underlineField,\n\t\t\t\t},\n\t\t\t}}\n\t\t/>\n\t);\n}\n\ninterface StyleProps {\n\tfocused: boolean;\n}\n\nconst useStyles = makeStyles(() => ({\n\tunderlineField: {\n\t\t'&:before': {\n\t\t\tborderBottom: `0px solid ${colors.lightGray}`,\n\t\t},\n\t\t'&:after': {\n\t\t\tborderBottom: `0px solid ${colors.lightGray}`,\n\t\t},\n\t},\n\tinputWrapper: (p: StyleProps) => ({\n\t\tdisplay: 'flex',\n\t\tflex: 1,\n\t\tborderRadius: '16px',\n\t\tbackgroundColor: colors.white,\n\t\tmarginBottom: '10px',\n\t\tborder: `1px solid ${p.focused ? colors.darkGray : '#C0C0C0'}`,\n\t}),\n\tinput: {\n\t\t...globalInputStyle(),\n\t\twhiteSpace: 'pre',\n\t\tcolor: colors.darkGray,\n\t\tborderRadius: '5px',\n\t\tpaddingLeft: '12px',\n\t},\n\tsearchIcon: {\n\t\tmarginLeft: '18px',\n\t},\n}));\n\nexport default SearchInput;\n","import { makeStyles } from '@material-ui/core';\nimport React from 'react';\nimport { colors } from '../consts/colors';\n\nimport { useGlobalStyles } from '../consts/globalStyles';\n\ninterface Props {\n\tname: string;\n\tonPress: () => void;\n}\n\nfunction CustomerQAIZoneItem(props: Props) {\n\tconst classes = useStyles();\n\tconst globalClasses = useGlobalStyles();\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t{props.name}\n\t\t\t
    \n\t\t
    \n\t);\n}\n\nconst useStyles = makeStyles(() => ({\n\tnameWrapper: {\n\t\tpadding: '28px 0px 28px 40px',\n\t},\n\twrapper: {\n\t\tcursor: 'pointer',\n\t\tbackgroundColor: colors.someYellow,\n\t\twidth: '100%',\n\t},\n}));\n\nexport default CustomerQAIZoneItem;\n","import { Grid } from '@material-ui/core';\nimport React from 'react';\n\nimport { ContractZone } from '../helpers/contractHelper/generalContractHelper';\nimport CustomerQAIZoneItem from './CustomerQAIZoneItem';\n\ninterface Props {\n\tzones: ContractZone[];\n\tonZonePress: (item: ContractZone) => void;\n}\n\nfunction CustomerQAIZoneOverview(props: Props) {\n\treturn (\n\t\t\n\t\t\t{props.zones.map((zone, index) => (\n\t\t\t\t\n\t\t\t\t\t props.onZonePress(zone)} />\n\t\t\t\t\n\t\t\t))}\n\t\t\n\t);\n}\n\nexport default CustomerQAIZoneOverview;\n","import { TableCellType } from '../components/table/StandardTableCell';\n\nexport interface TableParamInterface {\n\ttitle: string;\n\twidth: string;\n\ttype: TableCellType;\n\ttitleType: TableCellType;\n\tsticky?: boolean;\n\tsortable?: boolean;\n}\n\ninterface RhenusParamsInterface extends RhenusOverviewParamInterface {\n\tzoneName: TableParamInterface;\n\ttotalPartsTested: TableParamInterface;\n\tnumberOfErrorParts: TableParamInterface;\n\tpercentageOfErrorParts: TableParamInterface;\n\tnumberOfQAI: TableParamInterface;\n}\n\nexport const rhenusOverviewParams: RhenusParamsInterface = {\n\tzoneName: {\n\t\ttitle: 'rhenus_case_overview_screen_zone_name',\n\t\twidth: '25.22%',\n\t\ttype: TableCellType.Sticky,\n\t\ttitleType: TableCellType.Title,\n\t\tsticky: true,\n\t},\n\ttotalPartsTested: {\n\t\ttype: TableCellType.Text,\n\t\ttitleType: TableCellType.Title,\n\t\ttitle: 'rhenus_case_overview_screen_total_quantity_of_parts',\n\t\twidth: '16.06%',\n\t},\n\tnumberOfErrorParts: {\n\t\ttitle: 'rhenus_case_overview_screen_quantity_of_parts_with_errors',\n\t\twidth: '19.57%',\n\t\ttype: TableCellType.Text,\n\t\ttitleType: TableCellType.Title,\n\t},\n\tpercentageOfErrorParts: {\n\t\ttitle: 'rhenus_case_overview_screen_percentage_of_error_parts',\n\t\twidth: '19.57%',\n\t\ttype: TableCellType.Text,\n\t\ttitleType: TableCellType.Title,\n\t},\n\tnumberOfQAI: {\n\t\ttitle: 'rhenus_case_overview_screen_number_of_QAIs_in_the_zone',\n\t\twidth: '19.57%',\n\t\ttype: TableCellType.Text,\n\t\ttitleType: TableCellType.Title,\n\t},\n};\n\nexport interface RhenusOverviewParamInterface {\n\tzoneName: any;\n\ttotalPartsTested: any;\n\tpercentageOfErrorParts: any;\n\tnumberOfErrorParts: any;\n\tnumberOfQAI: any;\n}\n","import DateFnsUtils from '@date-io/date-fns';\nimport { makeStyles, withStyles } from '@material-ui/core/styles';\nimport { KeyboardDatePicker, MuiPickersUtilsProvider } from '@material-ui/pickers';\nimport { Moment } from 'moment';\nimport React from 'react';\n\nimport { de, enGB } from 'date-fns/locale';\nimport { useTranslation } from 'react-i18next';\nimport { colors } from '../consts/colors';\nimport { globalInputStyle, useGlobalStyles } from '../consts/globalStyles';\nimport i18n from '../i18n';\nimport ErrorIcon from '../svgComponents/ErrorIcon';\n\nexport const DatePickerWithStyles = withStyles({\n\troot: {\n\t\tminWidth: 170,\n\t\t'& label.Mui-focused:not(.Mui-error)': {\n\t\t\tcolor: colors.lightGray,\n\t\t},\n\t\t'& .MuiInput-underline:hover:not(.Mui-disabled):before': {\n\t\t\tborderBottom: `0px solid ${colors.lightGray}`,\n\t\t},\n\t\t'& .MuiInput-underline': {\n\t\t\tborderBottomStyle: 'none',\n\t\t},\n\t\t'& .MuiInput-input': {\n\t\t\tcursor: 'text',\n\t\t},\n\t\t'& .MuiSelect-select:focus': {\n\t\t\tbackgroundColor: 'white',\n\t\t\tborderRadius: '5px',\n\t\t},\n\t\t'& .Mui-error': {\n\t\t\tcolor: colors.error,\n\t\t},\n\t},\n})(KeyboardDatePicker);\n\ninterface Props {\n\tlabel: string;\n\tonChange: (event: any) => void;\n\terror?: boolean;\n\thelperText?: string;\n\tisUserNotEditing?: boolean;\n\tinputWrapper?: string;\n\twrapper?: string;\n\tdisabled?: boolean;\n\tfixed?: boolean;\n\tvalue?: string | Moment;\n}\n\nfunction StandardDateTimePicker(props: Props) {\n\tconst classes = useStyles({\n\t\tdisabled: props.disabled,\n\t\tfixed: props.fixed,\n\t});\n\tconst globalClasses = useGlobalStyles({\n\t\tdisabled: props.disabled,\n\t\tisUserNotEditing: props.isUserNotEditing,\n\t\tfixed: props.fixed,\n\t});\n\tconst [isOpen, setIsOpen] = React.useState(false);\n\tconst { t } = useTranslation();\n\n\tconst currentLanguage = i18n.language;\n\n\treturn (\n\t\t
    \n\t\t\t{props.label !== '' ? (\n\t\t\t\t
    \n\t\t\t\t\t{props.label}\n\t\t\t\t
    \n\t\t\t) : null}\n\t\t\t\n\t\t\t\t setIsOpen(true)}\n\t\t\t\t\tclearLabel={t('data_clear_button')}\n\t\t\t\t\tonClose={() => {\n\t\t\t\t\t\tsetIsOpen(false);\n\t\t\t\t\t}}\n\t\t\t\t\tclassName={props.inputWrapper ? props.inputWrapper : classes.inputWrapper}\n\t\t\t\t\tonChange={(val) => {\n\t\t\t\t\t\tprops.onChange(val);\n\t\t\t\t\t}}\n\t\t\t\t\tInputProps={{\n\t\t\t\t\t\tclasses: {\n\t\t\t\t\t\t\tinput: classes.input,\n\t\t\t\t\t\t\tunderline: classes.underlineField,\n\t\t\t\t\t\t},\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t\n\n\t\t\t{props.error ? (\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t{props.helperText}\n\t\t\t\t
    \n\t\t\t) : null}\n\t\t
    \n\t);\n}\n\ninterface StyleProps {\n\tdisabled?: boolean;\n\tfixed?: boolean;\n}\n\nconst useStyles = makeStyles(() => ({\n\thide: {\n\t\tdisplay: 'none',\n\t},\n\tlabelWrapper: {\n\t\tmarginBottom: '4px',\n\t\tdisplay: 'flex',\n\t\twhiteSpace: 'pre',\n\t},\n\tunderlineField: {\n\t\t'&:before': {\n\t\t\tborderBottom: `0px solid ${colors.lightGray}`,\n\t\t},\n\t\t'&:after': {\n\t\t\tborderBottom: `0px solid ${colors.lightGray}`,\n\t\t},\n\t},\n\tinputWrapper: (p: StyleProps) => ({\n\t\twidth: '100%',\n\t\tborderRadius: '4px',\n\t\tbackgroundColor: p.fixed ? 'rgba(161, 161, 161, 0.2)' : colors.white,\n\t\tborder: '1px solid #C0C0C0',\n\t}),\n\tdropdownContainer: {\n\t\tboxShadow: 'none',\n\t\tborder: `1px solid ${colors.borderColor}`,\n\t},\n\tdropdownArrowWrapper: { position: 'absolute', right: '12.5px', cursor: 'pointer' },\n\tdropdownMenuWrapper: {\n\t\theight: '1.1876em',\n\t},\n\t'& .Mui-disabled': (p: StyleProps) => ({\n\t\tcolor: `${p.disabled ? colors.lightGray : colors.darkGray} !important`,\n\t}),\n\tinput: (p: StyleProps) => ({\n\t\t...globalInputStyle(p.disabled),\n\t\twhiteSpace: 'pre',\n\t\tborderRadius: '5px',\n\t\tpaddingLeft: '12px',\n\t\tcursor: 'pointer',\n\t}),\n\n\trow: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tmarginTop: '3px',\n\t},\n\terrorImageWrapper: { marginRight: '5px', height: '16px' },\n}));\n\nexport default StandardDateTimePicker;\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { rhenusOverviewParams } from '../consts/rhenusOverview';\nimport CustomTableBody from './CustomTableBody';\nimport RhenusOverviewInformation from '../service/types/RhenusOverviewInformation';\nimport { Grid } from '@material-ui/core';\nimport StandardDateTimePicker from './StandardDateTimePicker';\nimport { Control, Controller } from 'react-hook-form';\nimport { rhenusOverviewFields } from '../containers/RhenusOverviewContainer';\nimport moment from 'moment';\nimport { UserRole } from '../service/types/User';\nimport { useAuthStateContext } from '../context/auth/useAuth';\n\ninterface Props {\n\tinformations: RhenusOverviewInformation[];\n\tcontrol?: Control>;\n\tonZonePress: (item: RhenusOverviewInformation) => void;\n}\n\nfunction AdminTLZoneOverview(props: Props) {\n\tconst { t } = useTranslation();\n\tconst { user } = useAuthStateContext();\n\n\tconst transformedZones = React.useMemo(\n\t\t() =>\n\t\t\tprops.informations.map((information) => {\n\t\t\t\treturn {\n\t\t\t\t\tid: information.zone.id,\n\t\t\t\t\tzoneName: information.zone.name,\n\t\t\t\t\ttotalPartsTested: information.totalPartsTested,\n\t\t\t\t\tpercentageOfErrorParts: information.precentageOfErrorParts,\n\t\t\t\t\tnumberOfErrorParts: information.numberOfErrorParts,\n\t\t\t\t\tnumberOfQAI: information.numberOfQAI,\n\t\t\t\t};\n\t\t\t}),\n\t\t[props.informations]\n\t);\n\treturn (\n\t\t
    \n\t\t\t{props.control && user?.role !== UserRole.QualityAssuranceInspector ? (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t) : null}\n\n\t\t\t props.onZonePress(props.informations[index]),\n\t\t\t\t\t},\n\t\t\t\t}}\n\t\t\t/>\n\t\t
    \n\t);\n}\n\nexport default AdminTLZoneOverview;\n","import React from 'react';\nimport { Grid, makeStyles } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\n\nimport { useGlobalStyles } from '../consts/globalStyles';\nimport BackArrow from '../svgComponents/BackArrow';\nimport HomeButton from '../svgComponents/HomeButton';\nimport SearchInput from '../components/SearchInput';\nimport { ContractZone } from '../helpers/contractHelper/generalContractHelper';\nimport CustomerQAIZoneOverview from '../components/CustomerQAIZoneOverview';\nimport AdminTLZoneOverview from '../components/AdminTLZoneOverview';\nimport RhenusOverviewInformation from '../service/types/RhenusOverviewInformation';\nimport { Control } from 'react-hook-form';\n\ninterface Props {\n\tcontractName: string;\n\tinformations: ContractZone[] | RhenusOverviewInformation[];\n\tcontrol: Control>;\n\tonZonePress: (item: RhenusOverviewInformation | ContractZone) => void;\n\tonSearchChange: (val: string) => void;\n}\n\nfunction RhenusOverviewScreen(props: Props) {\n\tconst classes = useStyles({});\n\tconst { t } = useTranslation();\n\tconst globalClasses = useGlobalStyles({});\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t('rhenus_case_overview_screen_contract_number')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{props.contractName}\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t('rhenus_case_overview_screen_available_zones')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t{props.informations.length !== 0 ? (\n\t\t\t\t\t\tprops.informations[0] instanceof RhenusOverviewInformation ? (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)\n\t\t\t\t\t) : null}\n\t\t\t\t
    \n\t\t\t\t\n\t\t\t\n\t\t
    \n\t);\n}\n\nconst useStyles = makeStyles(() => ({\n\ttitleWrapper: {\n\t\tmarginRight: '32px',\n\t},\n\trow: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t},\n\ttitleRow: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'flex-end',\n\t\tmarginBottom: '24px',\n\t},\n\tcontractNumberWrapper: {\n\t\tmarginLeft: '4px',\n\t},\n}));\n\nexport default RhenusOverviewScreen;\n","import React from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { useAuthStateContext } from '../context/auth/useAuth';\nimport { ContractZone } from '../helpers/contractHelper/generalContractHelper';\nimport { goToZoneOverview } from '../helpers/navigationHelper';\n\nimport RhenusOverviewScreen from '../screens/RhenusOverviewScreen';\nimport service from '../service/service';\nimport Contract from '../service/types/Contract';\nimport RhenusOverviewInformation from '../service/types/RhenusOverviewInformation';\nimport { UserRole } from '../service/types/User';\nimport moment from 'moment';\nimport { useForm } from 'react-hook-form';\n\ninterface Props {\n\tcontractData: Contract;\n}\n\nexport const rhenusOverviewFields = {\n\tfromDate: 'fromDate',\n\ttoDate: 'toDate',\n};\n\nfunction RhenusOverviewContainer(props: Props) {\n\tconst [informations, setInformations] = React.useState([]);\n\tconst searchRef = React.useRef('');\n\tconst allZonesRef = React.useRef([]);\n\tconst history = useHistory();\n\tconst { user } = useAuthStateContext();\n\tconst fetchnig = React.useRef(false);\n\tconst { control, watch } = useForm();\n\tconst fromDate = watch(rhenusOverviewFields.fromDate);\n\tconst toDate = watch(rhenusOverviewFields.toDate);\n\n\tReact.useEffect(() => {\n\t\tif (!fetchnig.current) {\n\t\t\tif (\n\t\t\t\tuser?.role === UserRole.Administrator ||\n\t\t\t\tuser?.role === UserRole.TeamLeader ||\n\t\t\t\tuser?.role === UserRole.Accounting\n\t\t\t) {\n\t\t\t\tfetchnig.current = true;\n\t\t\t\tservice\n\t\t\t\t\t.getRhenusOverviewInformations(props.contractData.id, moment().subtract(8, 'h'), moment())\n\t\t\t\t\t.then((informations) => {\n\t\t\t\t\t\tsetInformations(informations);\n\t\t\t\t\t\tallZonesRef.current = informations;\n\t\t\t\t\t\tfetchnig.current = false;\n\t\t\t\t\t})\n\t\t\t\t\t.catch((e) => {\n\t\t\t\t\t\tfetchnig.current = false;\n\t\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tsetInformations(props.contractData.zones!);\n\t\t\t\tallZonesRef.current = props.contractData.zones!;\n\t\t\t}\n\t\t}\n\t}, [props.contractData, user]);\n\n\tReact.useEffect(() => {\n\t\tif (\n\t\t\tuser?.role === UserRole.Administrator ||\n\t\t\tuser?.role === UserRole.TeamLeader ||\n\t\t\tuser?.role === UserRole.Accounting\n\t\t) {\n\t\t\tif (!fetchnig.current) {\n\t\t\t\tfetchnig.current = true;\n\t\t\t\tservice\n\t\t\t\t\t.getRhenusOverviewInformations(props.contractData.id, moment(fromDate), moment(toDate))\n\t\t\t\t\t.then((informations) => {\n\t\t\t\t\t\tsetInformations(\n\t\t\t\t\t\t\tinformations.filter((information) =>\n\t\t\t\t\t\t\t\tinformation.zone.name.toLowerCase().includes(searchRef.current.toLowerCase())\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t\tallZonesRef.current = informations;\n\t\t\t\t\t\tfetchnig.current = false;\n\t\t\t\t\t})\n\t\t\t\t\t.catch((e) => {\n\t\t\t\t\t\tfetchnig.current = false;\n\t\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, [user, fromDate, toDate, props.contractData]);\n\n\tconst onSearchChange = (search: string) => {\n\t\tsearchRef.current = search;\n\t\tsetTimeout(() => {\n\t\t\tif (allZonesRef.current.length !== 0) {\n\t\t\t\tif (searchRef.current === search) {\n\t\t\t\t\tif (allZonesRef.current[0] instanceof RhenusOverviewInformation) {\n\t\t\t\t\t\tsetInformations(\n\t\t\t\t\t\t\t(allZonesRef.current as RhenusOverviewInformation[]).filter((information) =>\n\t\t\t\t\t\t\t\tinformation.zone.name.toLowerCase().includes(search.toLowerCase())\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsetInformations(\n\t\t\t\t\t\t\t(allZonesRef.current as ContractZone[]).filter((zone) =>\n\t\t\t\t\t\t\t\tzone.name.toLowerCase().includes(search.toLowerCase())\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}, 500);\n\t};\n\n\tconst onZonePress = React.useCallback(\n\t\t(item: RhenusOverviewInformation | ContractZone) => {\n\t\t\tif (item instanceof RhenusOverviewInformation) {\n\t\t\t\tgoToZoneOverview(history, props.contractData, (item as RhenusOverviewInformation).zone);\n\t\t\t} else {\n\t\t\t\tgoToZoneOverview(history, props.contractData, item as ContractZone);\n\t\t\t}\n\t\t},\n\t\t[history, props.contractData]\n\t);\n\n\treturn (\n\t\t\n\t);\n}\n\nexport default RhenusOverviewContainer;\n","import { Button, makeStyles } from '@material-ui/core';\nimport React from 'react';\nimport { colors } from '../consts/colors';\n\nexport type DateTypes = 'default' | 'range' | 'start' | 'end' | 'weekend';\n\ninterface Props {\n\tdate?: number;\n\ttype: DateTypes;\n\tdisabled?: boolean;\n\thasRoundWrapper: boolean;\n\tbtnStyle?: string;\n}\n\nconst CustomDate = ({ type, date, disabled, hasRoundWrapper, btnStyle }: Props) => {\n\tconst classes = useStyles();\n\n\tconst buttonClassname = React.useMemo(() => {\n\t\tif (type === 'start' || type === 'end') return classes.startEndDate;\n\t\tif (type === 'range') return classes.rangeDate;\n\t\treturn classes.default;\n\t}, [classes.default, classes.rangeDate, classes.startEndDate, type]);\n\n\tconst textClassName = React.useMemo(() => {\n\t\tif (type === 'weekend' || disabled) return classes.disabledText;\n\t\treturn classes.darkText;\n\t}, [classes.darkText, classes.disabledText, disabled, type]);\n\n\treturn (\n\t\t
    \n\t\t\t{hasRoundWrapper && (\n\t\t\t\t
    \n\t\t\t)}\n\t\t\t\n\t\t\t\t{date}\n\t\t\t\n\t\t
    \n\t);\n};\n\nconst useStyles = makeStyles(() => ({\n\tbtn: {\n\t\tminWidth: '48px',\n\t\t'@media(max-width : 800px)': {\n\t\t\tminWidth: '32px',\n\t\t},\n\t},\n\twhiteText: {\n\t\tcolor: `${colors.white} !important`,\n\t},\n\tdarkText: {\n\t\tcolor: `${colors.darkGray} !important`,\n\t},\n\tdisabledText: {\n\t\tcolor: `${colors.lightGray} !important`,\n\t},\n\tday: {\n\t\tmargin: '2px 0px',\n\t\tpadding: '8px 0px',\n\t\t'@media(max-width : 800px)': {\n\t\t\tpadding: '3px 0px',\n\t\t},\n\t},\n\tdefault: {\n\t\tbackgroundColor: 'none',\n\t},\n\tstartEndDate: {\n\t\tbackgroundColor: colors.yellow,\n\t\tborderRadius: '50%',\n\t},\n\tbtnWrapper: {\n\t\tposition: 'relative',\n\t},\n\tstartDateWrapper: {\n\t\tposition: 'absolute',\n\t\theight: 'calc(100% - 4px)',\n\t\ttop: '50%',\n\t\ttransform: 'translateY(-50%)',\n\t\twidth: '50%',\n\t\tright: 0,\n\t\tbackgroundColor: colors.lightYellow,\n\t},\n\tendDateWrapper: {\n\t\tposition: 'absolute',\n\t\theight: 'calc(100% - 4px)',\n\t\ttop: '50%',\n\t\ttransform: 'translateY(-50%)',\n\t\twidth: '50%',\n\t\tleft: 0,\n\t\tbackgroundColor: colors.lightYellow,\n\t},\n\trangeDate: {\n\t\tbackgroundColor: colors.lightYellow,\n\t},\n}));\n\nexport default CustomDate;\n","import * as React from 'react';\nimport { SVGProps } from 'react';\n\nconst CalendarArrowIcon = (props: SVGProps) => (\n\t\n\t\t\n\t\n);\n\nexport default CalendarArrowIcon;\n","import DateFnsUtils from '@date-io/date-fns';\nimport { Button, ThemeProvider, createMuiTheme, makeStyles, withStyles } from '@material-ui/core';\nimport { KeyboardDatePicker, MuiPickersUtilsProvider } from '@material-ui/pickers';\nimport { MaterialUiPickersDate } from '@material-ui/pickers/typings/date';\nimport moment, { Moment } from 'moment';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { colors } from '../consts/colors';\nimport { globalInputStyle, useGlobalStyles } from '../consts/globalStyles';\nimport ErrorIcon from '../svgComponents/ErrorIcon';\nimport CustomDate from './CustomDate';\n\nimport { MuiPickersOverrides } from '@material-ui/pickers/typings/overrides';\nimport { de, enGB } from 'date-fns/locale';\nimport i18n from '../i18n';\nimport CalendarArrowIcon from '../svgComponents/CalendarArrowIcon';\n\ntype overridesNameToClassKey = {\n\t[P in keyof MuiPickersOverrides]: keyof MuiPickersOverrides[P];\n};\n\ntype CustomType = {\n\tMuiPickersBasePicker: {\n\t\tcontainer: {\n\t\t\tbackgroundColor?: string;\n\t\t};\n\t\tpickerView: {\n\t\t\tminWidth: string;\n\t\t\twidth: string;\n\t\t};\n\t};\n\tMuiPickersStaticWrapper: {\n\t\tstaticWrapperRoot: {\n\t\t\tbackgroundColor?: string;\n\t\t};\n\t};\n};\n\ndeclare module '@material-ui/core/styles/overrides' {\n\tinterface ComponentNameToClassKey extends overridesNameToClassKey {}\n\texport interface ComponentNameToClassKey extends CustomType {}\n}\n\nexport const IntervalDatePickerWithStyles = withStyles({\n\troot: {\n\t\t'& label.Mui-focused:not(.Mui-error)': {\n\t\t\tcolor: colors.lightGray,\n\t\t},\n\t\t'& .MuiInput-underline:hover:not(.Mui-disabled):before': {\n\t\t\tborderBottom: `0px solid ${colors.lightGray}`,\n\t\t},\n\t\t'& .MuiInput-underline': {\n\t\t\tborderBottomStyle: 'none',\n\t\t},\n\t\t'& .MuiInput-input': {\n\t\t\tcursor: 'text',\n\t\t},\n\t\t'& .MuiSelect-select:focus': {\n\t\t\tbackgroundColor: 'white',\n\t\t\tborderRadius: '5px',\n\t\t},\n\t\t'& .Mui-error': {\n\t\t\tcolor: colors.error,\n\t\t},\n\t},\n})(KeyboardDatePicker);\n\nexport interface IntervalDatePickerDates {\n\tfromDate: Moment | null;\n\ttoDate: Moment | null;\n}\n\nexport type IntervalKey = 'start' | 'end';\n\ninterface Props {\n\tid: IntervalKey;\n\tlabel: string;\n\tdates: IntervalDatePickerDates;\n\tvalue: Moment | null;\n\twrapper?: string;\n\terror?: boolean;\n\thelperText?: string;\n\tisUserNotEditing?: boolean;\n\tdisabled?: boolean;\n\tfixed?: boolean;\n\tclearable?: boolean;\n\tinputWrapper?: string;\n\tendAdornment?: React.ReactNode;\n\tonDateChange: (date: MaterialUiPickersDate) => void;\n\tonDatesAccept: () => void;\n\tonDatesCancel: () => void;\n\tclearDates: () => void;\n\tonKeyboardDateChange: (date: MaterialUiPickersDate, key: IntervalKey) => void;\n}\n\nconst IntervalDatePicker = (props: Props) => {\n\tconst classes = useStyles({\n\t\tdisabled: props.disabled,\n\t\tfixed: props.fixed,\n\t});\n\tconst globalClasses = useGlobalStyles({\n\t\tdisabled: props.disabled,\n\t\tisUserNotEditing: props.isUserNotEditing,\n\t\tfixed: props.fixed,\n\t});\n\tconst [isOpen, setIsOpen] = React.useState(false);\n\tconst { t } = useTranslation();\n\n\tconst isAccepted = React.useRef(false);\n\n\tconst currentLanguage = i18n.language;\n\n\tconst renderDay = React.useCallback(\n\t\t(startDate: Moment | null, endDate: Moment | null) =>\n\t\t\t(date: MaterialUiPickersDate, _: MaterialUiPickersDate, dayInCurrentMonth: boolean) => {\n\t\t\t\tconst currentDate = moment(date);\n\n\t\t\t\tconst disabled = !dayInCurrentMonth;\n\n\t\t\t\tconst dayInWeek = date?.getUTCDay();\n\t\t\t\tconst day = date?.getDate();\n\n\t\t\t\tif (currentDate.isSame(startDate, 'day')) {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t\n\t\t\t\t\t);\n\t\t\t\t} else if (currentDate.isSame(endDate, 'day')) {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t\n\t\t\t\t\t);\n\t\t\t\t} else if (currentDate.isBetween(startDate, endDate)) {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\t//set disabled to true if weekend days should be disabled\n\t\t\t\tif (dayInWeek === 5 || dayInWeek === 6) {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn (\n\t\t\t\t\t\n\t\t\t\t);\n\t\t\t},\n\t\t[classes.customDateBtn]\n\t);\n\n\treturn (\n\t\t
    \n\t\t\t{props.label !== '' ? (\n\t\t\t\t
    \n\t\t\t\t\t{props.label}\n\t\t\t\t
    \n\t\t\t) : null}\n\t\t\t{/* locale={currentLanguage === 'de' ? de : en} */}\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tif (isOpen) {\n\t\t\t\t\t\t\t\t//prevents autoOk triggering extra onChange call and checks if provided date is not null\n\t\t\t\t\t\t\t\tif (!isAccepted.current && date) {\n\t\t\t\t\t\t\t\t\tprops.onDateChange(date);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tif (moment(date).isValid()) props.onKeyboardDateChange(date, props.id);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tformat=\"dd.MM.yyyy\"\n\t\t\t\t\t\tdisabled={props.disabled}\n\t\t\t\t\t\tcancelLabel={\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tprops.onDatesCancel();\n\t\t\t\t\t\t\t\t\tsetIsOpen(false);\n\t\t\t\t\t\t\t\t}}>\n\t\t\t\t\t\t\t\t{t('data_cancel_button')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t\topen={isOpen}\n\t\t\t\t\t\tautoOk\n\t\t\t\t\t\tonOpen={() => {\n\t\t\t\t\t\t\tisAccepted.current = false;\n\t\t\t\t\t\t\tsetIsOpen(true);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tclearable={props.clearable}\n\t\t\t\t\t\tclearLabel={\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tsetIsOpen(false);\n\t\t\t\t\t\t\t\t\tprops.clearDates();\n\t\t\t\t\t\t\t\t}}>\n\t\t\t\t\t\t\t\t{t('data_reset_button')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t\tokLabel={\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tisAccepted.current = true;\n\t\t\t\t\t\t\t\t\tsetIsOpen(false);\n\t\t\t\t\t\t\t\t\tprops.onDatesAccept();\n\t\t\t\t\t\t\t\t}}>\n\t\t\t\t\t\t\t\t{t('data_use_button')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t\tclassName={props.inputWrapper ? props.inputWrapper : classes.inputWrapper}\n\t\t\t\t\t\trenderDay={renderDay(props.dates.fromDate, props.dates.toDate)}\n\t\t\t\t\t\tInputProps={{\n\t\t\t\t\t\t\tendAdornment: props.endAdornment,\n\t\t\t\t\t\t\tclasses: {\n\t\t\t\t\t\t\t\tinput: classes.input,\n\t\t\t\t\t\t\t\tunderline: classes.underlineField,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tDialogProps={{\n\t\t\t\t\t\t\tonBackdropClick: () => {\n\t\t\t\t\t\t\t\tprops.onDatesCancel();\n\t\t\t\t\t\t\t\tsetIsOpen(false);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t}}\n\t\t\t\t\t\trightArrowIcon={}\n\t\t\t\t\t\tleftArrowIcon={}\n\t\t\t\t\t\tToolbarComponent={({ date }) => {\n\t\t\t\t\t\t\tconst year = date?.getFullYear() || null;\n\t\t\t\t\t\t\tconst month = date?.toLocaleString('default', { month: 'long' }) || null;\n\n\t\t\t\t\t\t\tconst startDate = props.dates.fromDate\n\t\t\t\t\t\t\t\t? `${t(props.dates.fromDate.format('MMM'))} ${props.dates.fromDate.format('D')}`\n\t\t\t\t\t\t\t\t: '';\n\t\t\t\t\t\t\tconst endDate = props.dates.toDate\n\t\t\t\t\t\t\t\t? `${t(props.dates.toDate.format('MMM'))} ${props.dates.toDate.format('D')}`\n\t\t\t\t\t\t\t\t: '';\n\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t
    {year}
    \n\t\t\t\t\t\t\t\t\t\t\t
    {month ? t(month) : null}
    \n\t\t\t\t\t\t\t\t\t\t\t
    {`${startDate} ${\n\t\t\t\t\t\t\t\t\t\t\t\tstartDate && endDate && '-'\n\t\t\t\t\t\t\t\t\t\t\t} ${endDate}`}
    \n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t
    \n\n\t\t\t{props.error ? (\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t{props.helperText}\n\t\t\t\t
    \n\t\t\t) : null}\n\t\t
    \n\t);\n};\n\ninterface StyleProps {\n\tdisabled?: boolean;\n\tfixed?: boolean;\n}\n\nconst intervalCalendarTheme = createMuiTheme({\n\toverrides: {\n\t\tMuiDialog: {\n\t\t\tpaperWidthSm: {\n\t\t\t\tmaxWidth: '350px',\n\t\t\t},\n\t\t},\n\t\tMuiPaper: {\n\t\t\troot: {\n\t\t\t\twidth: '100%',\n\t\t\t},\n\t\t},\n\t\tMuiPickersBasePicker: {\n\t\t\tpickerViewLandscape: {\n\t\t\t\tpadding: 0,\n\t\t\t},\n\t\t\tcontainer: {\n\t\t\t\tdisplay: 'block',\n\t\t\t\theight: '100%',\n\t\t\t\toverflow: 'hidden',\n\t\t\t\twidth: '100%',\n\t\t\t},\n\t\t\tpickerView: {\n\t\t\t\tbackgroundColor: colors.white,\n\t\t\t\toverflow: 'hidden',\n\n\t\t\t\tmaxWidth: 'unset',\n\t\t\t\twidth: '100%',\n\t\t\t},\n\t\t},\n\t\tMuiDialogActions: {\n\t\t\troot: {\n\t\t\t\tmarginTop: '24px',\n\t\t\t},\n\t\t},\n\t\tMuiPickersStaticWrapper: {\n\t\t\tstaticWrapperRoot: {\n\t\t\t\tminWidth: '390px',\n\t\t\t\tdisplay: 'block',\n\t\t\t\tbackgroundColor: 'transparent',\n\t\t\t},\n\t\t},\n\t\tMuiButton: {\n\t\t\troot: {\n\t\t\t\ttextTransform: 'unset',\n\t\t\t},\n\t\t},\n\t\tMuiPickersDay: {\n\t\t\tdaySelected: {\n\t\t\t\tborderRadius: 4,\n\t\t\t\tcolor: colors.white,\n\t\t\t\tbackgroundColor: colors.red,\n\t\t\t},\n\t\t\thidden: {\n\t\t\t\topacity: 0.5,\n\t\t\t},\n\t\t\tday: {\n\t\t\t\tmargin: '0',\n\t\t\t\tboxSizing: 'inherit',\n\t\t\t},\n\t\t},\n\t\tMuiTypography: {\n\t\t\tbody1: {\n\t\t\t\tfontSize: '14px',\n\t\t\t\tfontWeight: 'bold',\n\t\t\t},\n\t\t\tnoWrap: {\n\t\t\t\tdisplay: 'hidden',\n\t\t\t},\n\t\t},\n\t\tMuiPickersCalendarHeader: {\n\t\t\ticonButton: {\n\t\t\t\tpadding: 0,\n\t\t\t\t'&:hover': {\n\t\t\t\t\tbackgroundColor: colors.white,\n\t\t\t\t},\n\t\t\t\t'&:disabled': {\n\t\t\t\t\topacity: 0.2,\n\t\t\t\t},\n\t\t\t},\n\t\t\tdayLabel: {\n\t\t\t\twidth: 'unset',\n\t\t\t\tmargin: 0,\n\t\t\t\tcolor: `${colors.darkGray}`,\n\t\t\t\tfontWeight: 'bold',\n\t\t\t\tfontSize: '14px',\n\t\t\t},\n\t\t\tswitchHeader: {\n\t\t\t\tposition: 'relative',\n\t\t\t\tmargin: '32px 0 24px 0 !important',\n\t\t\t\tpadding: '0 24px',\n\t\t\t},\n\t\t\tdaysHeader: {\n\t\t\t\tposition: 'relative',\n\t\t\t\tpadding: '0 18px',\n\t\t\t\tjustifyContent: 'space-between',\n\t\t\t},\n\t\t},\n\t\tMuiDialogContent: {\n\t\t\troot: {\n\t\t\t\tdisplay: 'flex',\n\t\t\t\tjustifyContent: 'center',\n\t\t\t},\n\t\t},\n\t\tMuiPickersCalendar: {\n\t\t\tweek: {\n\t\t\t\tjustifyContent: 'space-between',\n\t\t\t\tpadding: '0px 6px',\n\t\t\t},\n\t\t\ttransitionContainer: {\n\t\t\t\tflexGrow: 1,\n\t\t\t\tmarginTop: '12px',\n\t\t\t\t'&:has(> div > div:nth-child(6))': {\n\t\t\t\t\tminHeight: '260px',\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t},\n});\n\nconst useStyles = makeStyles(() => ({\n\tlabelWrapper: {\n\t\tmarginBottom: '4px',\n\t\tdisplay: 'flex',\n\t\twhiteSpace: 'pre',\n\t},\n\tunderlineField: {\n\t\t'&:before': {\n\t\t\tborderBottom: `0px solid ${colors.lightGray}`,\n\t\t},\n\t\t'&:after': {\n\t\t\tborderBottom: `0px solid ${colors.lightGray}`,\n\t\t},\n\t},\n\tinputWrapper: (p: StyleProps) => ({\n\t\twidth: '100%',\n\t\tborderRadius: '4px',\n\t\tbackgroundColor: p.fixed ? 'rgba(161, 161, 161, 0.2)' : colors.white,\n\t\tborder: '1px solid #C0C0C0',\n\t}),\n\n\t'& .Mui-disabled': (p: StyleProps) => ({\n\t\tcolor: `${p.disabled ? colors.lightGray : colors.darkGray} !important`,\n\t}),\n\tinput: (p: StyleProps) => ({\n\t\t...globalInputStyle(p.disabled),\n\t\twhiteSpace: 'pre',\n\t\tborderRadius: '5px',\n\t\tpaddingLeft: '12px',\n\t\tcursor: p.disabled ? 'default' : 'pointer',\n\t}),\n\n\trow: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tmarginTop: '3px',\n\t},\n\terrorImageWrapper: { marginRight: '5px', height: '16px' },\n\tleftArrowIcon: {\n\t\ttransform: 'rotate(180deg)',\n\t},\n\tresetBtn: {\n\t\ttextDecoration: 'underline',\n\t\tcolor: colors.darkGray,\n\t\tfontSize: '14px',\n\t},\n\tcancelBtn: {\n\t\tcolor: colors.darkGray,\n\t\tfontSize: '14px',\n\t\tfontWeight: 'bold',\n\t\tborder: `1px solid ${colors.darkGray}`,\n\t\tborderRadius: '4px',\n\t\tpadding: '12px 24px',\n\t},\n\tuseBtn: {\n\t\tcolor: colors.darkGray,\n\t\tfontSize: '14px',\n\t\tfontWeight: 'bold',\n\t\tbackground: colors.yellow,\n\t\tborderRadius: '4px',\n\t\tpadding: '12px 24px',\n\t},\n\ttoolbarContainer: {\n\t\tbackgroundColor: colors.white,\n\t\twidth: '100%',\n\t},\n\ttoolbarWrapper: {\n\t\tpadding: '12px',\n\t\tmargin: '0 auto',\n\t},\n\ttoolbarContent: {\n\t\tborder: `1px solid ${colors.darkGray}`,\n\t\tborderRadius: '4px',\n\t\tpadding: '12px 24px',\n\t\tdisplay: 'flex',\n\t\tjustifyContent: 'space-between',\n\t},\n\ttoolbarText: {\n\t\tcolor: colors.darkGray,\n\t\tfontSize: '14px',\n\t\tfontWeight: 'bold',\n\t},\n\tcustomDateBtn: {\n\t\tminWidth: '48px !important',\n\t\tpadding: '8px 0px !important',\n\t},\n}));\n\nexport default IntervalDatePicker;\n","import { TableCellType } from '../components/table/StandardTableCell';\nimport { StandardCaseTableInterface } from '../service/types/StandardCase';\nimport { TableParamInterface } from './rhenusOverview';\n\ninterface StandardCaseParamInterface extends StandardCaseTableInterface {\n\tdate: TableParamInterface;\n\tqai: TableParamInterface | undefined;\n\tpartNumber: TableParamInterface;\n\ttypeOfInspection: TableParamInterface;\n\tapproved: TableParamInterface | undefined;\n\tphoto: TableParamInterface | undefined;\n\tshift: TableParamInterface | undefined;\n\tcomment: TableParamInterface | undefined;\n\tcheckNumber: TableParamInterface | undefined;\n\tdeliveryNoteNumber: TableParamInterface;\n\tdeliveryNoteDate: TableParamInterface;\n\ttotalPartsTested: TableParamInterface;\n\tpartsNIO: TableParamInterface;\n\tpartsIO: TableParamInterface;\n\tpartsReworked: TableParamInterface;\n}\n\nexport const standardCaseInputListParams: StandardCaseParamInterface = {\n\tpartNumber: {\n\t\ttitle: 'standard_case_overview_screen_part_number',\n\t\twidth: '21.56vw',\n\t\ttype: TableCellType.Sticky,\n\t\ttitleType: TableCellType.Title,\n\t\tsticky: true,\n\t\tsortable: true,\n\t},\n\tdate: {\n\t\ttitle: 'standard_case_overview_screen_order_date',\n\t\twidth: '7vw',\n\t\ttype: TableCellType.Text,\n\t\ttitleType: TableCellType.Title,\n\t\tsortable: true,\n\t},\n\tqai: {\n\t\ttitle: 'standard_case_overview_screen_reporter',\n\t\twidth: '17.957vw',\n\t\ttype: TableCellType.Text,\n\t\ttitleType: TableCellType.Title,\n\t\tsortable: true,\n\t},\n\tdeliveryNoteNumber: {\n\t\ttype: TableCellType.Text,\n\t\ttitleType: TableCellType.Title,\n\t\ttitle: 'standard_case_overview_screen_delivery_note_number',\n\t\twidth: '9.94vw',\n\t\tsortable: true,\n\t},\n\tdeliveryNoteDate: {\n\t\ttitle: 'standard_case_overview_screen_delivery_note_date',\n\t\twidth: '11.01vw',\n\t\ttype: TableCellType.Text,\n\t\ttitleType: TableCellType.Title,\n\t\tsortable: true,\n\t},\n\ttypeOfInspection: {\n\t\ttitle: 'standard_case_overview_screen_type_of_inspection',\n\t\twidth: '11.01vw',\n\t\ttype: TableCellType.Text,\n\t\ttitleType: TableCellType.TitleWithDropdown,\n\t\tsortable: false,\n\t},\n\tapproved: {\n\t\ttitle: 'standard_overview_screen_contract_approved',\n\t\twidth: '18.18vw',\n\t\ttype: TableCellType.Approve,\n\t\ttitleType: TableCellType.TitleWithDropdown,\n\t\tsortable: true,\n\t},\n\ttotalPartsTested: {\n\t\ttitle: 'standard_case_overview_screen_total_parts_tested',\n\t\twidth: '8.18vw',\n\t\ttype: TableCellType.Text,\n\t\ttitleType: TableCellType.Title,\n\t\tsortable: true,\n\t},\n\tpartsNIO: {\n\t\ttitle: 'standard_case_overview_screen_parts_nio',\n\t\twidth: '8.18vw',\n\t\ttype: TableCellType.Text,\n\t\ttitleType: TableCellType.Title,\n\t\tsortable: true,\n\t},\n\tpartsIO: {\n\t\ttitle: 'standard_case_overview_screen_parts_rio',\n\t\twidth: '8.18vw',\n\t\ttype: TableCellType.Text,\n\t\ttitleType: TableCellType.Title,\n\t\tsortable: true,\n\t},\n\tpartsReworked: {\n\t\ttitle: 'standard_case_overview_screen_parts_reworked',\n\t\twidth: '8.18vw',\n\t\ttype: TableCellType.Text,\n\t\ttitleType: TableCellType.Title,\n\t\tsortable: true,\n\t},\n\terrorTypes: {\n\t\ttitle: 'standard_case_overview_screen_errorType',\n\t\twidth: '28.957vw',\n\t\ttype: TableCellType.Text,\n\t\ttitleType: TableCellType.Title,\n\t\tsortable: true,\n\t},\n\tshift: {\n\t\ttitle: 'standard_case_overview_screen_shift',\n\t\twidth: '13.76vw',\n\t\ttype: TableCellType.Text,\n\t\ttitleType: TableCellType.TitleWithDropdown,\n\t\tsortable: true,\n\t},\n\tcheckNumber: {\n\t\ttitle: 'standard_case_overview_screen_check_number',\n\t\twidth: '8.76vw',\n\t\ttype: TableCellType.Text,\n\t\ttitleType: TableCellType.Title,\n\t\tsortable: true,\n\t},\n\tphoto: {\n\t\ttitle: 'standard_case_overview_screen_photo',\n\t\twidth: '12.87vw',\n\t\ttype: TableCellType.Button,\n\t\ttitleType: TableCellType.Title,\n\t\tsortable: true,\n\t},\n\tcomment: {\n\t\ttitle: 'standard_case_overview_screen_comment',\n\t\twidth: '29.87vw',\n\t\ttype: TableCellType.Expandable,\n\t\ttitleType: TableCellType.Title,\n\t\tsortable: true,\n\t},\n};\n","import React from 'react';\n\nimport { standardCaseInputListParams } from '../consts/standardCaseInput';\nimport { StandardCaseFilterKeys } from '../containers/StandardCaseOverviewContainer';\nimport { useAuthStateContext } from '../context/auth/useAuth';\nimport { ShiftInterface } from '../helpers/contractHelper/generalContractHelper';\nimport {\n\tApprovedStatus,\n\tDEFAULT_NO_VALUE,\n\tfilterApprovedStatusKeyValuePairs,\n} from '../helpers/standardInputHelper/generalStandardInputHelper';\nimport { KeyValue } from '../helpers/userHelper/generalUserHelper';\nimport service from '../service/service';\nimport StandardCaseInput, { StandardCaseFilterInterface } from '../service/types/StandardCase';\nimport { UserRole } from '../service/types/User';\nimport CameraDialog, { CameraDialogInterface } from './CameraDialog';\nimport { Sort } from './ContractList';\nimport CustomTableBody from './CustomTableBody';\nimport { TableCellType } from './table/StandardTableCell';\nimport { dataSorter } from '../helpers/dataSorter';\n\ninterface Props {\n\tdisplaySort?: boolean;\n\tstandardCaseInputs: StandardCaseInput[];\n\tallAssignedQAIs: KeyValue[];\n\tfilters: StandardCaseFilterInterface;\n\tphoto: boolean;\n\ttypesOfInspections: string[];\n\tautomatedUpdates: boolean;\n\tshiftTimes: ShiftInterface[];\n\tdashboard?: boolean;\n\tmaxHeight?: string;\n\tonFilterChange: (key: StandardCaseFilterKeys, value: any) => void;\n\tonViewPress: (standardInputCase: StandardCaseInput) => void;\n\tonApprovePress: (standardInputCase: StandardCaseInput) => void;\n\tsort?: Sort;\n\tsetSort?: React.Dispatch>;\n}\nfunction StandardCaseInputList({\n\tstandardCaseInputs,\n\tallAssignedQAIs,\n\tfilters,\n\tphoto,\n\ttypesOfInspections,\n\tautomatedUpdates,\n\tshiftTimes,\n\tdashboard,\n\tmaxHeight,\n\tdisplaySort,\n\tonFilterChange,\n\tonViewPress,\n\tonApprovePress,\n}: Props) {\n\tconst { user } = useAuthStateContext();\n\tconst cameraDialogRef = React.useRef();\n\tconst [sort, setSort] = React.useState({\n\t\tfield: undefined,\n\t\tdirection: undefined,\n\t});\n\tconst [partNumber, setPartNumber] = React.useState('');\n\tconst transformedStandardCaseInputs = React.useMemo(() => {\n\t\treturn standardCaseInputs.map((standardCaseInput) => {\n\t\t\treturn {\n\t\t\t\t...standardCaseInput,\n\t\t\t\terrorTypes: standardCaseInput.errorTypes.reduce((prev, curr) => {\n\t\t\t\t\treturn `${prev} ${curr.amount}x ${curr.type};`;\n\t\t\t\t}, ''),\n\t\t\t\tqai: allAssignedQAIs.find((qai) => qai.value.id === standardCaseInput.qai)?.key,\n\t\t\t\tapproved: standardCaseInput.approved ? ApprovedStatus.Approved : ApprovedStatus.NotApproved,\n\t\t\t\tshift: shiftTimes.find((shift) => shift.id === standardCaseInput.shift)?.name,\n\t\t\t};\n\t\t});\n\t}, [standardCaseInputs, allAssignedQAIs, shiftTimes]);\n\n\tconst onPreviewImage = React.useCallback((standardInputCase: StandardCaseInput) => {\n\t\tif (standardInputCase.photo)\n\t\t\tservice\n\t\t\t\t.getPhoto(standardInputCase.photo.name)\n\t\t\t\t.then((res) => {\n\t\t\t\t\tif (res) {\n\t\t\t\t\t\tcameraDialogRef.current?.setDialogState(true, true, { name: '', data: res });\n\t\t\t\t\t\tsetPartNumber(standardInputCase.partNumber);\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.catch(() => {});\n\t}, []);\n\n\tconst transformedListParams = React.useMemo(() => {\n\t\tif (user) {\n\t\t\tconst tempParams = { ...standardCaseInputListParams };\n\t\t\tif (!photo) delete tempParams.photo;\n\t\t\tif (automatedUpdates) delete tempParams.approved;\n\t\t\tif (user.role === UserRole.QualityAssuranceInspector) {\n\t\t\t\tdelete tempParams.qai;\n\t\t\t\tdelete tempParams.shift;\n\t\t\t\tdelete tempParams.photo;\n\t\t\t\tdelete tempParams.approved;\n\t\t\t}\n\t\t\tif (dashboard) {\n\t\t\t\tdelete tempParams.qai;\n\t\t\t\tdelete tempParams.approved;\n\t\t\t\tdelete tempParams.checkNumber;\n\t\t\t\tdelete tempParams.comment;\n\t\t\t\tdelete tempParams.photo;\n\t\t\t\ttempParams.partNumber = { ...tempParams.partNumber, type: TableCellType.Text, width: '15.56vw' };\n\t\t\t}\n\t\t\treturn tempParams;\n\t\t}\n\t}, [photo, automatedUpdates, user, dashboard]);\n\n\tconst filtersOptions: Partial = React.useMemo(\n\t\t() => ({\n\t\t\ttypeOfInspection: typesOfInspections.map((item) => ({ key: item, value: item })),\n\t\t\tapproved: filterApprovedStatusKeyValuePairs,\n\t\t\tshift: [\n\t\t\t\tDEFAULT_NO_VALUE,\n\t\t\t\t...shiftTimes.map((shift) => ({\n\t\t\t\t\tkey: shift.name,\n\t\t\t\t\tvalue: shift.id,\n\t\t\t\t})),\n\t\t\t],\n\t\t}),\n\t\t[typesOfInspections, shiftTimes]\n\t);\n\n\tconst sortedData = React.useMemo(() => {\n\t\tif (sort.field === undefined || !displaySort) return transformedStandardCaseInputs;\n\t\treturn dataSorter({ data: transformedStandardCaseInputs, sort });\n\t}, [displaySort, sort, transformedStandardCaseInputs]);\n\n\treturn (\n\t\t
    \n\t\t\t onApprovePress(standardCaseInputs[index]),\n\t\t\t\t\t},\n\t\t\t\t\tphoto: {\n\t\t\t\t\t\ttext: 'standard_case_overview_screen_photo_button',\n\t\t\t\t\t\tonClick: (index) => onPreviewImage(standardCaseInputs[index]),\n\t\t\t\t\t},\n\t\t\t\t\tpartNumber: {\n\t\t\t\t\t\ttext: 'standard_case_overview_screen_part_number_button',\n\t\t\t\t\t\tonClick: (index) => onViewPress(standardCaseInputs[index]),\n\t\t\t\t\t},\n\t\t\t\t}}\n\t\t\t\tsort={sort}\n\t\t\t\tsetSort={setSort}\n\t\t\t/>\n\t\t\t\n\t\t
    \n\t);\n}\n\nexport default StandardCaseInputList;\n","import * as React from 'react';\n\nfunction WorkingTimeIcon(props: any) {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n\nexport default WorkingTimeIcon;\n","import * as React from 'react';\n\nfunction ExpensessIcon(props: any) {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n\nexport default ExpensessIcon;\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\n\nimport WorkingTimeIcon from '../svgComponents/WorkingTimeIcon';\nimport ExpensessIcon from '../svgComponents/ExpensessIcon';\nimport { globalInputStyle } from '../consts/globalStyles';\n\ninterface Props {\n\tonWorkingTimePress: () => void;\n\tonMaterialAndExpensses: () => void;\n}\n\nfunction WorkinTimeMaterialExpensess(props: Props) {\n\tconst classes = useStyles({});\n\tconst { t } = useTranslation();\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t{t('working_time_title')}\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t{t('material_and_expensess')}\n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t);\n}\n\nconst useStyles = makeStyles(() => ({\n\tcontainer: { display: 'flex', alignItems: 'center', marginBottom: '36px' },\n\twrapper: { display: 'flex', alignItems: 'center', cursor: 'pointer', marginRight: '28px' },\n\tlink: {\n\t\t...globalInputStyle(),\n\t\ttextDecoration: 'underline',\n\t},\n\tlinkWrapper: {\n\t\tmarginLeft: '8px',\n\t},\n}));\n\nexport default WorkinTimeMaterialExpensess;\n","import { Grid, makeStyles, MenuItem } from '@material-ui/core';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { MaterialUiPickersDate } from '@material-ui/pickers/typings/date';\nimport { Controller, useFormContext } from 'react-hook-form';\nimport Filter from '../components/Filter';\nimport IntervalDatePicker, { IntervalDatePickerDates, IntervalKey } from '../components/IntervalDatePicker';\nimport KeyValueAutoComplete from '../components/KeyValueAutoComplete';\nimport NewLink from '../components/NewLink';\nimport StandardCaseInputList from '../components/StandardCaseInputList';\nimport StandardDatePicker from '../components/StandardDatePicker';\nimport StandardTextField from '../components/StandardTextField';\nimport WorkinTimeMaterialExpensess from '../components/WorkingTimeMaterialExpenses';\nimport { colors } from '../consts/colors';\nimport { globalInputStyle, useGlobalStyles } from '../consts/globalStyles';\nimport { standardCaseInputFields } from '../containers/StandardCaseInputContainer';\nimport { initStandardCaseInputFilters, StandardCaseFilterKeys } from '../containers/StandardCaseOverviewContainer';\nimport { useAuthStateContext } from '../context/auth/useAuth';\nimport { checkIfUserStopWriting } from '../helpers/filters';\nimport { filterApprovedStatusKeyValuePairs } from '../helpers/standardInputHelper/generalStandardInputHelper';\nimport { KeyValue } from '../helpers/userHelper/generalUserHelper';\nimport Contract from '../service/types/Contract';\nimport StandardCaseInput, { StandardCaseFilterInterface } from '../service/types/StandardCase';\nimport { UserRole } from '../service/types/User';\nimport BackArrow from '../svgComponents/BackArrow';\nimport HomeButton from '../svgComponents/HomeButton';\nimport Button from '../components/Button';\n\ninterface Props {\n\tintervalDates: IntervalDatePickerDates;\n\tfilters: StandardCaseFilterInterface;\n\tstandardCaseInputs: StandardCaseInput[];\n\tallAssignedQAIs: KeyValue[];\n\tupdatedText: string;\n\tcontractData: Contract;\n\tonBackArrowPress: () => void;\n\tonNewErrorCasePress: () => void;\n\tclearAllFilters: () => void;\n\tonFilterChange: (key: StandardCaseFilterKeys, value: any) => void;\n\tonViewPress: (standardInputCase: StandardCaseInput) => void;\n\tonApprovePress: (standardInputCase: StandardCaseInput) => void;\n\tonWorkingTimePress: () => void;\n\tonExpensesPress: () => void;\n\tonKeyboardDateChange: (date: MaterialUiPickersDate, key: IntervalKey) => void;\n\tonDateChange: (date: MaterialUiPickersDate) => void;\n\tonDatesAccept: () => void;\n\tonDatesCancel: () => void;\n\tclearDates: () => void;\n\tdownloadTable: () => void;\n}\n\nfunction StandardCaseOverviewScreen(props: Props) {\n\tconst [showFilters, setShowFilters] = React.useState(false);\n\tconst globalClasses = useGlobalStyles({ showFilters, description: colors.lightGray });\n\tconst classes = useStyles({});\n\tconst { t } = useTranslation();\n\tconst filterListRef = React.useRef(null);\n\tconst { user } = useAuthStateContext();\n\tconst searchRef = React.useRef({ ...initStandardCaseInputFilters });\n\tconst onFilterPress = () => setShowFilters((prev) => !prev);\n\tconst { errors, control } = useFormContext();\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{props.contractData.contractNumber}\n\t\t\t\t
    \n\t\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tonChange(e);\n\t\t\t\t\t\t\t\t\t\tcheckIfUserStopWriting(e, props.onFilterChange, searchRef, 'partNumber');\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tonChange(e);\n\t\t\t\t\t\t\t\t\t\tcheckIfUserStopWriting(\n\t\t\t\t\t\t\t\t\t\t\te,\n\t\t\t\t\t\t\t\t\t\t\tprops.onFilterChange,\n\t\t\t\t\t\t\t\t\t\t\tsearchRef,\n\t\t\t\t\t\t\t\t\t\t\t'deliveryNoteNumber'\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t props.onFilterChange('deliveryNoteDate', e)}\n\t\t\t\t\t\t\tvalue={props.filters.deliveryNoteDate}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t{user?.role !== UserRole.QualityAssuranceInspector ? (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t) : null}\n\t\t\t\t\t{user?.role !== UserRole.QualityAssuranceInspector ? (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t) : null}\n\t\t\t\t\t\n\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tonChange(e);\n\t\t\t\t\t\t\t\t\t\tcheckIfUserStopWriting(e, props.onFilterChange, searchRef, 'checkNumber');\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tif (e) {\n\t\t\t\t\t\t\t\t\tprops.onFilterChange('typeOfInspection', e.value);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tprops.onFilterChange('typeOfInspection', '');\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\toptions={props.contractData.typesOfInspection.map((el) => ({ key: el, value: el }))}\n\t\t\t\t\t\t\tvalue={{\n\t\t\t\t\t\t\t\tkey: props.filters.typeOfInspection,\n\t\t\t\t\t\t\t\tvalue: props.filters.typeOfInspection,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\twithoutClose={false}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t{user?.role !== UserRole.QualityAssuranceInspector ? (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tif (e) {\n\t\t\t\t\t\t\t\t\t\tprops.onFilterChange('qai', e.value.id.toString());\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tprops.onFilterChange('qai', '');\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\toptions={props.allAssignedQAIs}\n\t\t\t\t\t\t\t\tmultiple={false}\n\t\t\t\t\t\t\t\tvalue={{\n\t\t\t\t\t\t\t\t\tkey: props.allAssignedQAIs.find(\n\t\t\t\t\t\t\t\t\t\t(qai) => qai.value.id.toString() === props.filters.qai\n\t\t\t\t\t\t\t\t\t)?.key\n\t\t\t\t\t\t\t\t\t\t? props.allAssignedQAIs.find(\n\t\t\t\t\t\t\t\t\t\t\t\t(qai) => qai.value.id.toString() === props.filters.qai\n\t\t\t\t\t\t\t\t\t\t )!.key\n\t\t\t\t\t\t\t\t\t\t: '',\n\t\t\t\t\t\t\t\t\tvalue: props.filters.qai,\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t) : null}\n\t\t\t\t\t{user?.role !== UserRole.QualityAssuranceInspector ? (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tif (e) {\n\t\t\t\t\t\t\t\t\t\tprops.onFilterChange('shift', e.value);\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tprops.onFilterChange('shift', '');\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\toptions={props.contractData.shiftTimes.map((el) => ({ key: el.name, value: el.id }))}\n\t\t\t\t\t\t\t\tvalue={{\n\t\t\t\t\t\t\t\t\tkey:\n\t\t\t\t\t\t\t\t\t\tprops.filters.shift === ''\n\t\t\t\t\t\t\t\t\t\t\t? ''\n\t\t\t\t\t\t\t\t\t\t\t: t(\n\t\t\t\t\t\t\t\t\t\t\t\t\tprops.contractData.shiftTimes.find(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t(el) => el.id === props.filters.shift\n\t\t\t\t\t\t\t\t\t\t\t\t\t)?.name || ''\n\t\t\t\t\t\t\t\t\t\t\t ),\n\t\t\t\t\t\t\t\t\tvalue: props.filters.shift,\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\twithoutClose={false}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t) : null}\n\t\t\t\t\t{user?.role !== UserRole.QualityAssuranceInspector && !props.contractData.automatedUpdates ? (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t props.onFilterChange('approved', e.target.value)}>\n\t\t\t\t\t\t\t\t{filterApprovedStatusKeyValuePairs.map((item) => (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t{t(item.key)}\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t) : null}\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t\n\t\t\t{user?.role !== UserRole.QualityAssuranceInspector ? (\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t{`${t(\n\t\t\t\t\t\t\t'standard_overview_screen_last_updated'\n\t\t\t\t\t\t)}: ${t(props.updatedText)}`}\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t{`${t(\n\t\t\t\t\t\t\t'standard_overview_screen_previously_reported'\n\t\t\t\t\t\t)}`}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t) : null}\n\t\t\t\n\t\t
    \n\t);\n}\n\ninterface StyleProps {\n\tdisabled?: boolean;\n}\n\nconst useStyles = makeStyles(() => ({\n\tsubtitleWrapper: {\n\t\tmarginTop: '8px',\n\t},\n\tlastUpdateWrapper: {\n\t\tmarginTop: '40px',\n\t},\n\trow: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tjustifyContent: 'space-between',\n\t},\n\ttitleWrapper: {\n\t\tmarginBottom: '12px',\n\t},\n\tinput: (props: StyleProps) => ({\n\t\t...globalInputStyle(props.disabled),\n\t\twhiteSpace: 'pre',\n\t}),\n\tinputWrapper: {\n\t\ttransform: 'translateY(-2px)',\n\t\ttextOverflow: 'ellipsis',\n\t\toverflow: 'hidden',\n\t},\n\tbuttonWrapper: {\n\t\twidth: 'fit-content',\n\t\tbackgroundColor: colors.yellow,\n\t\tborderRadius: 4,\n\t\tborder: `1px solid ${colors.yellow}`,\n\t\tpadding: '8px 22px',\n\t\tcursor: 'pointer',\n\t\tmarginTop: '15px',\n\t},\n}));\n\nexport default StandardCaseOverviewScreen;\n","import moment from 'moment';\n\nimport StandardCaseInput from '../service/types/StandardCase';\n\nexport const getEarliestDate = (standardCaseInputs: StandardCaseInput[]) => {\n\tlet earliestDate = moment();\n\n\tstandardCaseInputs.forEach((el) => {\n\t\tif (el.deliveryNoteDate && el?.deliveryNoteDate < earliestDate) earliestDate = el.deliveryNoteDate;\n\t});\n\n\treturn earliestDate;\n};\n","import moment from 'moment';\n\nconst CHAR_OBJ = {\n\tä: 'ae',\n\tÄ: 'Ae',\n\tö: 'oe',\n\tÖ: 'Oe',\n\tü: 'ue',\n\tÜ: 'Ue',\n\tß: 'ss',\n};\n\nexport const formatFileName = (name: string) => {\n\treturn name\n\t\t.replace(/[ ]/g, '-')\n\t\t.replace(/[äöüßÄÖÜ]/g, function (char) {\n\t\t\t//@ts-ignore\n\t\t\treturn CHAR_OBJ[char];\n\t\t})\n\t\t.replace(/[^a-z-]/gi, '');\n};\n\nconst generateDocumentName = (overviewType: string, contractNumber: string) => {\n\tconst date = moment().format('DDMMYYYY');\n\treturn `${date}_${overviewType}_${contractNumber}`;\n};\n\nexport const generateAndDownloadExcel = (data: string, overviewType: string, contractNumber: string) => {\n\tconst link = document.createElement('a');\n\tconst mediaType = 'data:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;base64,';\n\n\tlink.download = `${generateDocumentName(overviewType, contractNumber)}.xlsx`;\n\tlink.href = mediaType + data;\n\tdocument.body.appendChild(link);\n\tlink.click();\n\tdocument.body.removeChild(link);\n};\n","import React from 'react';\nimport { FormProvider, useForm } from 'react-hook-form';\nimport { useHistory } from 'react-router-dom';\nimport moment from 'moment';\n\nimport { useAuthStateContext } from '../context/auth/useAuth';\nimport { filterData } from '../helpers/filters';\nimport { goToExpenses, goToProcessContracts, goToStandardCase, goToWorkingTime } from '../helpers/navigationHelper';\nimport { textsForStandardAutomaticalUpdate } from '../helpers/standardInputHelper/generalStandardInputHelper';\nimport { KeyValue } from '../helpers/userHelper/generalUserHelper';\nimport { getUserOptionsKeyValuePairs } from '../helpers/userHelper/readUserHelper';\nimport StandardCaseOverviewScreen from '../screens/StandardCaseOverviewScreen';\nimport service from '../service/service';\nimport StandardCaseInput, { StandardCaseFilterInterface } from '../service/types/StandardCase';\nimport { UserRole } from '../service/types/User';\nimport { standardCaseInputFields } from './StandardCaseInputContainer';\nimport Contract from '../service/types/Contract';\nimport { unstable_batchedUpdates } from 'react-dom';\nimport { getEarliestDate } from '../helpers/timeAndDate';\nimport { IntervalDatePickerDates, IntervalKey } from '../components/IntervalDatePicker';\nimport { MaterialUiPickersDate } from '@material-ui/pickers/typings/date';\nimport { useTranslation } from 'react-i18next';\nimport { LANGUAGE_KEY, languages } from '../consts/language';\nimport { generateAndDownloadExcel } from '../helpers/fileDownloader';\n\nexport const initStandardCaseInputFilters: StandardCaseFilterInterface = {\n\tpartNumber: '',\n\tqai: '',\n\tcheckNumber: '',\n\tdeliveryNoteDate: null,\n\tdeliveryNoteNumber: '',\n\tpartsIO: '',\n\tpartsNIO: '',\n\tpartsReworked: '',\n\ttotalPartsTested: '',\n\ttypeOfInspection: '',\n\tapproved: '',\n\ttoDate: moment(),\n\tfromDate: moment(),\n\tshift: '',\n};\n\ninterface Props {\n\tcontractData: Contract;\n}\nconst data = Object.freeze({ ...initStandardCaseInputFilters });\nexport type StandardCaseFilterKeys = keyof typeof data;\n\nfunction StandardCaseOverviewContainer(props: Props) {\n\tconst methods = useForm();\n\tconst { user } = useAuthStateContext();\n\tconst [updatedText, setUpdatedText] = React.useState('');\n\tconst [standardCaseInputs, setStandardCaseInputs] = React.useState([]);\n\tconst [allAssignedQAIs, setAllAssignedQAIs] = React.useState([]);\n\tconst [filters, setFilters] = React.useState(initStandardCaseInputFilters);\n\tconst allStandardCaseInputs = React.useRef([]);\n\tconst history = useHistory();\n\tconst timer = React.useRef(setTimeout(() => {}, 0));\n\tconst fetching = React.useRef(false);\n\tconst { t } = useTranslation();\n\tconst [intervalDates, setIntervalDates] = React.useState({\n\t\tfromDate: null,\n\t\ttoDate: null,\n\t});\n\n\tconst onFilterChange = (key: StandardCaseFilterKeys, value: any) => {\n\t\tconst tempValue = value === ' ' ? '' : value;\n\t\tsetFilters((prev) => ({ ...prev, [key]: tempValue }));\n\t};\n\n\tconst onBackArrowPress = () => goToProcessContracts(history);\n\n\tconst clearAllFilters = () => {\n\t\tObject.values(standardCaseInputFields).forEach((value) => methods.setValue(value, ''));\n\t\tsetFilters(initStandardCaseInputFilters);\n\t};\n\n\tconst initializeContainer = React.useCallback(async () => {\n\t\ttry {\n\t\t\tconst standardCaseInputs = await service.getAllStandardCaseInputs(props.contractData.id);\n\t\t\tlet qais: KeyValue[];\n\n\t\t\tif (user?.role !== UserRole.QualityAssuranceInspector && !fetching.current) {\n\t\t\t\tfetching.current = true;\n\t\t\t\tqais = await getUserOptionsKeyValuePairs(service.getAllUsers(), () => {});\n\t\t\t}\n\n\t\t\tallStandardCaseInputs.current = standardCaseInputs;\n\n\t\t\tconst smallestDate = getEarliestDate(standardCaseInputs);\n\n\t\t\tunstable_batchedUpdates(() => {\n\t\t\t\tsetStandardCaseInputs(standardCaseInputs);\n\t\t\t\tsetFilters({\n\t\t\t\t\t...initStandardCaseInputFilters,\n\t\t\t\t\tfromDate: smallestDate,\n\t\t\t\t});\n\t\t\t\tsetUpdatedText(textsForStandardAutomaticalUpdate[0]);\n\t\t\t\tqais && setAllAssignedQAIs(qais.filter((qai) => qai.value.role !== UserRole.Customer));\n\t\t\t});\n\t\t} catch (e) {\n\t\t\tfetching.current = false;\n\t\t}\n\t}, [props.contractData.id, user?.role]);\n\n\tReact.useEffect(() => {\n\t\tinitializeContainer();\n\t}, [initializeContainer]);\n\n\tReact.useEffect(() => {\n\t\tsetStandardCaseInputs(filterData(filters, allStandardCaseInputs.current));\n\t}, [filters]);\n\n\tconst getDataAutomaticly = React.useCallback((contractID: number, cycleNumber: number) => {\n\t\treturn setTimeout(() => {\n\t\t\tsetUpdatedText(textsForStandardAutomaticalUpdate[cycleNumber === 0 ? 5 : cycleNumber]);\n\t\t\tif (cycleNumber === 0) {\n\t\t\t\tservice\n\t\t\t\t\t.getAllStandardCaseInputs(contractID)\n\t\t\t\t\t.then((standardCaseInputs) => {\n\t\t\t\t\t\tunstable_batchedUpdates(() => {\n\t\t\t\t\t\t\tsetStandardCaseInputs(standardCaseInputs);\n\t\t\t\t\t\t\tallStandardCaseInputs.current = standardCaseInputs;\n\t\t\t\t\t\t\tsetUpdatedText(textsForStandardAutomaticalUpdate[0]);\n\t\t\t\t\t\t\ttimer.current = getDataAutomaticly(contractID, 1);\n\t\t\t\t\t\t});\n\t\t\t\t\t})\n\t\t\t\t\t.catch(() => {});\n\t\t\t} else if (cycleNumber === 4) {\n\t\t\t\ttimer.current = getDataAutomaticly(contractID, 0);\n\t\t\t} else {\n\t\t\t\ttimer.current = getDataAutomaticly(contractID, cycleNumber + 1);\n\t\t\t}\n\t\t}, 60000);\n\t}, []);\n\n\tReact.useEffect(() => {\n\t\tif (user?.role !== UserRole.QualityAssuranceInspector) {\n\t\t\ttimer.current = getDataAutomaticly(props.contractData.id, 1);\n\t\t}\n\n\t\treturn () => {\n\t\t\tclearTimeout(timer.current);\n\t\t};\n\t}, [props.contractData.id, user, getDataAutomaticly]);\n\n\tconst approveData = (standardInputCase: StandardCaseInput) => {\n\t\tservice\n\t\t\t.aprroveInput(props.contractData.id, standardInputCase.id)\n\t\t\t.then(() => {\n\t\t\t\tclearTimeout(timer.current);\n\t\t\t\tservice\n\t\t\t\t\t.getAllStandardCaseInputs(props.contractData.id)\n\t\t\t\t\t.then((standardCaseInputs) => {\n\t\t\t\t\t\tunstable_batchedUpdates(() => {\n\t\t\t\t\t\t\tsetStandardCaseInputs(standardCaseInputs);\n\t\t\t\t\t\t\tallStandardCaseInputs.current = standardCaseInputs;\n\t\t\t\t\t\t\tsetUpdatedText(textsForStandardAutomaticalUpdate[0]);\n\t\t\t\t\t\t});\n\t\t\t\t\t})\n\t\t\t\t\t.catch(() => {});\n\t\t\t\ttimer.current = getDataAutomaticly(props.contractData.id, 1);\n\t\t\t})\n\t\t\t.catch(() => {});\n\t};\n\n\tconst onWorkingTimePress = () => {\n\t\tgoToWorkingTime(history, {\n\t\t\tcontractID: props.contractData.id,\n\t\t\tcontractNumber: props.contractData.contractNumber,\n\t\t});\n\t};\n\n\tconst onExpensesPress = () => {\n\t\tgoToExpenses(history, {\n\t\t\tcontractID: props.contractData.id,\n\t\t\tcontractNumber: props.contractData.contractNumber,\n\t\t});\n\t};\n\n\tconst onViewPress = (standardInputCase: StandardCaseInput) => {\n\t\tgoToStandardCase(history, {\n\t\t\tcontract: props.contractData,\n\t\t\tdata: standardInputCase,\n\t\t});\n\t};\n\n\tconst onNewErrorCasePress = () =>\n\t\tgoToStandardCase(history, {\n\t\t\tcontract: props.contractData,\n\t\t});\n\n\tconst onDateChange = React.useCallback(\n\t\t(date: MaterialUiPickersDate) => {\n\t\t\tconst offset = moment(date).utcOffset();\n\t\t\tlet dateMoment = moment(date).add(offset);\n\n\t\t\tif (!intervalDates.fromDate) {\n\t\t\t\tsetIntervalDates({\n\t\t\t\t\tfromDate: dateMoment,\n\t\t\t\t\ttoDate: null,\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tintervalDates.fromDate &&\n\t\t\t\t!intervalDates.toDate &&\n\t\t\t\tmoment(dateMoment).isSameOrAfter(intervalDates.fromDate)\n\t\t\t) {\n\t\t\t\tsetIntervalDates((prev) => ({\n\t\t\t\t\t...prev,\n\t\t\t\t\ttoDate: dateMoment,\n\t\t\t\t}));\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsetIntervalDates({\n\t\t\t\tfromDate: dateMoment,\n\t\t\t\ttoDate: null,\n\t\t\t});\n\n\t\t\treturn;\n\t\t},\n\t\t[intervalDates]\n\t);\n\n\tconst onKeyboardDateChange = (date: MaterialUiPickersDate, key: IntervalKey) => {\n\t\tconst dateMoment = moment(date).utcOffset(0, true);\n\t\tmethods.clearErrors(['fromDate', 'toDate']);\n\t\tif (key === 'start') {\n\t\t\tif (moment(dateMoment).isSameOrBefore(intervalDates.toDate) || !intervalDates.toDate) {\n\t\t\t\tsetIntervalDates((prev) => ({\n\t\t\t\t\t...prev,\n\t\t\t\t\tfromDate: dateMoment,\n\t\t\t\t}));\n\t\t\t\tsetFilters((prev) => ({\n\t\t\t\t\t...prev,\n\t\t\t\t\tfromDate: dateMoment,\n\t\t\t\t}));\n\t\t\t} else {\n\t\t\t\tmethods.setError('fromDate', { message: t('start_interval_error') });\n\t\t\t}\n\t\t} else if (key === 'end') {\n\t\t\tif (moment(dateMoment).isSameOrAfter(intervalDates.fromDate)) {\n\t\t\t\tsetIntervalDates((prev) => ({\n\t\t\t\t\t...prev,\n\t\t\t\t\ttoDate: dateMoment,\n\t\t\t\t}));\n\t\t\t\tsetFilters((prev) => ({\n\t\t\t\t\t...prev,\n\t\t\t\t\ttoDate: dateMoment,\n\t\t\t\t}));\n\t\t\t} else {\n\t\t\t\tmethods.setError('toDate', { message: t('end_interval_error') });\n\t\t\t}\n\t\t}\n\t};\n\n\tconst onDatesAccept = () => {\n\t\tsetFilters((prev) => ({\n\t\t\t...prev,\n\t\t\tfromDate: intervalDates.fromDate,\n\t\t\ttoDate: intervalDates.toDate,\n\t\t}));\n\t};\n\n\tconst onDatesCancel = () => {\n\t\tconst prevDates: IntervalDatePickerDates = {\n\t\t\tfromDate: filters.fromDate,\n\t\t\ttoDate: filters.toDate,\n\t\t};\n\t\tsetIntervalDates(prevDates);\n\t};\n\n\tconst clearDates = () => {\n\t\tsetFilters((prev) => ({\n\t\t\t...prev,\n\t\t\tfromDate: null,\n\t\t\ttoDate: null,\n\t\t}));\n\n\t\tsetIntervalDates({\n\t\t\tfromDate: null,\n\t\t\ttoDate: null,\n\t\t});\n\t};\n\n\tconst downloadTable = async () => {\n\t\tconst lang = localStorage.getItem(LANGUAGE_KEY) ?? languages.deutchland.i18n;\n\t\tif (props.contractData.id) {\n\t\t\tif (filters.fromDate) {\n\t\t\t\tconst offset = moment(filters.fromDate).utcOffset();\n\t\t\t\tfilters.fromDate = moment(filters.fromDate).add(offset);\n\t\t\t}\n\t\t\tif (filters.toDate) {\n\t\t\t\tconst offset = moment(filters.toDate).utcOffset();\n\t\t\t\tfilters.toDate = moment(filters.toDate).add(offset);\n\t\t\t}\n\t\t\tconst excelData = await service.createProcessContractStandardErrorInputsExcelSheet(\n\t\t\t\tprops.contractData.id,\n\t\t\t\tfilters,\n\t\t\t\tlang\n\t\t\t);\n\t\t\texcelData &&\n\t\t\t\tgenerateAndDownloadExcel(\n\t\t\t\t\texcelData,\n\t\t\t\t\tt('export_table_process_contract_overview'),\n\t\t\t\t\tprops.contractData.contractNumber\n\t\t\t\t);\n\t\t}\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\n\t);\n}\n\nexport default StandardCaseOverviewContainer;\n","import React from 'react';\nimport { useHistory, useParams } from 'react-router-dom';\nimport Spinner from '../components/Spinner';\nimport { ContractType } from '../helpers/contractHelper/generalContractHelper';\nimport { ContractNavigationInterface, goToHome } from '../helpers/navigationHelper';\nimport { RouteParams } from '../router/Routes';\nimport service from '../service/service';\nimport Contract from '../service/types/Contract';\nimport RhenusOverviewContainer from './RhenusOverviewContainer';\nimport StandardCaseOverviewContainer from './StandardCaseOverviewContainer';\n\nfunction ProcessContractContainer() {\n\tconst history = useHistory();\n\tconst [contractData, setContractData] = React.useState();\n\tconst routeParams: RouteParams = useParams();\n\n\tReact.useEffect(() => {\n\t\tconst historyState = history.location.state as undefined | ContractNavigationInterface;\n\t\tif (historyState && historyState.contract) {\n\t\t\tconst contract: Contract = Contract.fromJSON(JSON.parse(historyState.contract));\n\t\t\tsetContractData(contract);\n\t\t} else if (routeParams.contract_id) {\n\t\t\tservice\n\t\t\t\t.getContract(Number(routeParams.contract_id))\n\t\t\t\t.then((res) => {\n\t\t\t\t\tif (res) setContractData(res);\n\t\t\t\t})\n\t\t\t\t.catch((e) => {\n\t\t\t\t\tgoToHome(history);\n\t\t\t\t});\n\t\t} else {\n\t\t\tgoToHome(history);\n\t\t}\n\t}, [history, routeParams]);\n\n\tif (contractData) {\n\t\tif (contractData.contractType === ContractType.Standard) {\n\t\t\treturn ;\n\t\t} else {\n\t\t\treturn ;\n\t\t}\n\t}\n\treturn ;\n}\n\nexport default ProcessContractContainer;\n","import { TableCellType } from '../components/table/StandardTableCell';\nimport { ContractFilterInterface } from '../service/types/Contract';\nimport { TableParamInterface } from './rhenusOverview';\n\ninterface ContractParamInterface extends ContractFilterInterface {\n\tcontractNumber: TableParamInterface;\n\tcustomer: TableParamInterface | undefined;\n\tdate: TableParamInterface;\n\tbilled_until: TableParamInterface;\n\tnext_billing: TableParamInterface;\n\tworkLocation: TableParamInterface;\n\tpartDesignation: TableParamInterface;\n\tmarkingOfIOparts: TableParamInterface;\n\tshiftTimes: TableParamInterface;\n\terrorTypes: TableParamInterface;\n\ttypesOfInspection: TableParamInterface;\n\tassignedQAIs: TableParamInterface | undefined;\n\tassignedTeamLeader: TableParamInterface | undefined;\n}\n\nexport const contractListParams: ContractParamInterface = {\n\tcontractNumber: {\n\t\twidth: '18.5vw',\n\t\ttitle: 'contract_overview_screen_contract_number',\n\t\ttype: TableCellType.Sticky,\n\t\ttitleType: TableCellType.Title,\n\t\tsticky: true,\n\t\tsortable: true,\n\t},\n\tcustomer: {\n\t\twidth: '10.5vw',\n\t\ttitle: 'contract_overview_screen_contract_customer',\n\t\ttype: TableCellType.Text,\n\t\ttitleType: TableCellType.Title,\n\t\tsortable: true,\n\t},\n\tbilled_until: {\n\t\twidth: '9.035vw',\n\t\ttitle: 'admin_contracts_screen_billed_until',\n\t\ttype: TableCellType.Text,\n\t\ttitleType: TableCellType.Title,\n\t\tsortable: true,\n\t},\n\tnext_billing: {\n\t\twidth: '9.035vw',\n\t\ttitle: 'admin_contracts_screen_next_billing_on',\n\t\ttype: TableCellType.Text,\n\t\ttitleType: TableCellType.Title,\n\t\tsortable: true,\n\t},\n\tdate: {\n\t\twidth: '9.035vw',\n\t\ttitle: 'contract_overview_screen_contract_date',\n\t\ttype: TableCellType.Text,\n\t\ttitleType: TableCellType.Title,\n\t\tsortable: true,\n\t},\n\tworkLocation: {\n\t\twidth: '12.96vw',\n\t\ttitle: 'contract_overview_screen_contract_work_location',\n\t\ttype: TableCellType.Text,\n\t\ttitleType: TableCellType.Title,\n\t\tsortable: true,\n\t},\n\tpartDesignation: {\n\t\twidth: '26.711vw',\n\t\ttitle: 'contract_overview_screen_contract_part_designation',\n\t\ttype: TableCellType.Text,\n\t\ttitleType: TableCellType.Title,\n\t\tsortable: true,\n\t},\n\tmarkingOfIOparts: {\n\t\twidth: '19.875vw',\n\t\ttitle: 'contract_overview_screen_contract_mark_of_io_parts',\n\t\ttype: TableCellType.Text,\n\t\ttitleType: TableCellType.Title,\n\t\tsortable: true,\n\t},\n\tshiftTimes: {\n\t\twidth: '25.71vw',\n\t\ttitle: 'contract_overview_screen_contract_shift_times',\n\t\ttype: TableCellType.Text,\n\t\ttitleType: TableCellType.Title,\n\t},\n\terrorTypes: {\n\t\twidth: '11.45vw',\n\t\ttitle: 'contract_overview_screen_contract_error_types',\n\t\ttype: TableCellType.Text,\n\t\ttitleType: TableCellType.Title,\n\t\tsortable: true,\n\t},\n\ttypesOfInspection: {\n\t\twidth: '19.29vw',\n\t\ttitle: 'contract_overview_screen_contract_types_of_inspection',\n\t\ttype: TableCellType.Text,\n\t\ttitleType: TableCellType.Title,\n\t\tsortable: true,\n\t},\n\tassignedQAIs: {\n\t\twidth: '25.71vw',\n\t\ttitle: 'contract_overview_screen_contract_assigned_qais',\n\t\ttype: TableCellType.Expandable,\n\t\ttitleType: TableCellType.Title,\n\t},\n\tassignedTeamLeader: {\n\t\twidth: '15.71vw',\n\t\ttitle: 'contract_overview_screen_contract_team_leader',\n\t\ttype: TableCellType.Text,\n\t\ttitleType: TableCellType.Title,\n\t},\n};\n","import React from 'react';\n\nimport { Routes } from '../router/Routes';\nimport CustomTableBody from './CustomTableBody';\nimport { UserRole } from '../service/types/User';\nimport { contractListParams } from '../consts/contract';\nimport { useAuthStateContext } from '../context/auth/useAuth';\nimport { KeyValue } from '../helpers/userHelper/generalUserHelper';\nimport { ContractFilterKeys } from '../containers/ContractOverviewContainer';\nimport Contract, { ContractFilterInterface } from '../service/types/Contract';\nimport { dataSorter } from '../helpers/dataSorter';\nimport moment from 'moment';\nimport { useTranslation } from 'react-i18next';\n\ninterface Props {\n\tallQAIs: KeyValue[];\n\tallTeamLeaders: KeyValue[];\n\tbuttonText: string;\n\tcontracts: Contract[];\n\tcustomers: KeyValue[];\n\tdisplaySort?: boolean;\n\tfilters: ContractFilterInterface;\n\tredirectTo?: Routes;\n\tbuttonAction: (contract: Contract) => void;\n\tonFilterChange: (key: ContractFilterKeys, value: any) => void;\n}\n\nexport interface Sort {\n\tfield?: string;\n\tdirection?: string;\n}\n\nfunction ContractList({\n\tallQAIs,\n\tallTeamLeaders,\n\tbuttonText,\n\tcontracts,\n\tcustomers,\n\tdisplaySort,\n\tfilters,\n\tredirectTo,\n\tbuttonAction,\n\tonFilterChange,\n}: Props) {\n\tconst { t } = useTranslation();\n\tconst { user } = useAuthStateContext();\n\tconst [sort, setSort] = React.useState({\n\t\tfield: undefined,\n\t\tdirection: undefined,\n\t});\n\n\tconst transformedContract = React.useMemo(() => {\n\t\treturn contracts.map((contract) => ({\n\t\t\t...contract,\n\t\t\tworkLocation: contract.workLocations.map((loc) => loc.name).join(','),\n\t\t\tbilled_until: contract.billed_until ? moment(contract.billed_until).format('DD.MM.YYYY') : '-',\n\t\t\tnext_billing: contract.next_billing ? moment(contract.next_billing).format('DD.MM.YYYY') : '-',\n\t\t\tshiftTimes: contract.shiftTimes.map((item) => t(`${item.name}`)),\n\t\t\tcustomer: customers.find((customer) => customer.value.id === contract.customer)?.key,\n\t\t\ttypesOfInspection: contract.typesOfInspection.reduce((prev, curr, index, array) => {\n\t\t\t\tif (index + 1 < array.length) {\n\t\t\t\t\treturn prev + curr + ', ';\n\t\t\t\t} else {\n\t\t\t\t\treturn prev + curr;\n\t\t\t\t}\n\t\t\t}, ''),\n\t\t\terrorTypes: contract.errorTypes.reduce((prev, curr, index, array) => {\n\t\t\t\tif (index + 1 < array.length) {\n\t\t\t\t\treturn prev + curr + ', ';\n\t\t\t\t} else {\n\t\t\t\t\treturn prev + curr;\n\t\t\t\t}\n\t\t\t}, ''),\n\t\t\tassignedTeamLeader: allTeamLeaders.find((teamleader) => teamleader.value.id === contract.assignedTeamLeader)\n\t\t\t\t?.key,\n\t\t\tassignedQAIs: contract.assignedQAIs.reduce((prev, curr, index, array) => {\n\t\t\t\tif (index + 1 < array.length) {\n\t\t\t\t\treturn prev + allQAIs.find((qai) => qai.value.id === curr)?.key + ', ';\n\t\t\t\t} else {\n\t\t\t\t\treturn prev + allQAIs.find((qai) => qai.value.id === curr)?.key;\n\t\t\t\t}\n\t\t\t}, ''),\n\t\t}));\n\t}, [contracts, customers, allTeamLeaders, t, allQAIs]);\n\n\tconst transformedListParams = React.useMemo(() => {\n\t\tif (user) {\n\t\t\tconst tempParams = { ...contractListParams };\n\t\t\tif (user?.role !== UserRole.QualityAssuranceInspector && user?.role !== UserRole.Customer)\n\t\t\t\treturn tempParams;\n\t\t\telse {\n\t\t\t\tdelete tempParams.customer;\n\t\t\t\tdelete tempParams.assignedQAIs;\n\t\t\t\tdelete tempParams.assignedTeamLeader;\n\t\t\t\treturn tempParams;\n\t\t\t}\n\t\t}\n\t}, [user]);\n\n\tconst sortedData = React.useMemo(() => {\n\t\tif (sort.field === undefined || !displaySort) return transformedContract;\n\t\treturn dataSorter({ data: transformedContract, sort });\n\t}, [displaySort, sort, transformedContract]);\n\n\tconst markTextAsRedFn = (key: string, value: any) => {\n\t\tif (key === 'next_billing') {\n\t\t\tconst today = moment();\n\t\t\tconst valMoment = moment(value, 'DD-MM-YYYY', false);\n\n\t\t\tif (valMoment.isValid() && valMoment.isBefore(today)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t};\n\n\treturn (\n\t\t buttonAction(contracts[index]),\n\t\t\t\t},\n\t\t\t}}\n\t\t\t//@ts-ignore\n\t\t\tdata={sortedData}\n\t\t\tdataTablePramas={transformedListParams}\n\t\t\tredirectTo={redirectTo}\n\t\t\tsort={sort}\n\t\t\tsetSort={setSort}\n\t\t\ttableKey={'Contract'}\n\t\t\tmarkTextAsRedFn={markTextAsRedFn}\n\t\t/>\n\t);\n}\n\nexport default ContractList;\n","import { Grid, makeStyles } from '@material-ui/core';\nimport { MaterialUiPickersDate } from '@material-ui/pickers/typings/date';\nimport React from 'react';\nimport { Controller, useFormContext } from 'react-hook-form';\nimport { useTranslation } from 'react-i18next';\n\nimport ContractList from '../components/ContractList';\nimport Filter from '../components/Filter';\nimport IntervalDatePicker, { IntervalDatePickerDates, IntervalKey } from '../components/IntervalDatePicker';\nimport KeyValueAutoComplete from '../components/KeyValueAutoComplete';\nimport NewLink from '../components/NewLink';\nimport StandardTextField from '../components/StandardTextField';\nimport { globalInputStyle, useGlobalStyles } from '../consts/globalStyles';\nimport { contractFields } from '../containers/ContractContainer';\nimport {\n\tContractContainerProps,\n\tContractFilterKeys,\n\tContractOverviewFilterInterface,\n\tinitContractFilter,\n} from '../containers/ContractOverviewContainer';\nimport { useAuthStateContext } from '../context/auth/useAuth';\nimport {\n\tContractViewType,\n\tfilterContractData,\n\tfilterOpenClosed,\n} from '../helpers/contractHelper/generalContractHelper';\nimport { checkIfUserStopWriting } from '../helpers/filters';\nimport { KeyValue } from '../helpers/userHelper/generalUserHelper';\nimport { Routes } from '../router/Routes';\nimport Contract from '../service/types/Contract';\nimport { UserRole } from '../service/types/User';\nimport HomeButton from '../svgComponents/HomeButton';\nimport IQRLogo from '../svgComponents/IQRLogo';\n\ninterface Props extends ContractContainerProps {\n\tintervalDates: IntervalDatePickerDates;\n\tcontracts: Contract[];\n\tfilters: ContractOverviewFilterInterface;\n\tteamLeaders: KeyValue[];\n\tassignedQAIs: KeyValue[];\n\tcustomers: KeyValue[];\n\tbuttonAction: (contract: Contract) => void;\n\tonFilterChange: (key: ContractFilterKeys, value: any) => void;\n\tclearAllFilters: () => void;\n\tonKeyboardDateChange: (date: MaterialUiPickersDate, key: IntervalKey) => void;\n\tonDateChange: (date: MaterialUiPickersDate) => void;\n\tonDatesAccept: () => void;\n\tonDatesCancel: () => void;\n\tclearDates: () => void;\n}\n\nfunction ContractOverviewScreen(props: Props) {\n\tconst [showFilters, setShowFilters] = React.useState(false);\n\tconst globalClasses = useGlobalStyles({ showFilters });\n\tconst classes = useStyles({});\n\tconst { t } = useTranslation();\n\tconst { user } = useAuthStateContext();\n\tconst filterListRef = React.useRef(null);\n\tconst searchRef = React.useRef({ ...initContractFilter });\n\tconst { control, errors } = useFormContext();\n\treturn (\n\t\t
    \n\t\t\t\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{t('contract_overview_screen_title')}\n\t\t\t\t
    \n\t\t\t\t{props.viewType === ContractViewType.Admin ? (\n\t\t\t\t\t\n\t\t\t\t) : null}\n\t\t\t
    \n\t\t\t setShowFilters((prev) => !prev)} onClearAllPress={props.clearAllFilters} />\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tonChange(e);\n\t\t\t\t\t\t\t\t\t\tcheckIfUserStopWriting(e, props.onFilterChange, searchRef, 'contractNumber');\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tonChange(e);\n\t\t\t\t\t\t\t\t\t\tcheckIfUserStopWriting(e, props.onFilterChange, searchRef, 'workLocation');\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tonChange(e);\n\t\t\t\t\t\t\t\t\t\tcheckIfUserStopWriting(e, props.onFilterChange, searchRef, 'partDesignation');\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t{user?.role !== UserRole.QualityAssuranceInspector && user?.role !== UserRole.Customer ? (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tif (e) {\n\t\t\t\t\t\t\t\t\t\tprops.onFilterChange('assignedTeamLeader', e.value.id.toString());\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tprops.onFilterChange('assignedTeamLeader', '');\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\toptions={props.teamLeaders}\n\t\t\t\t\t\t\t\tmultiple={false}\n\t\t\t\t\t\t\t\tvalue={{\n\t\t\t\t\t\t\t\t\tkey: props.teamLeaders.find(\n\t\t\t\t\t\t\t\t\t\t(teamLeader) =>\n\t\t\t\t\t\t\t\t\t\t\tteamLeader.value.id.toString() === props.filters.assignedTeamLeader\n\t\t\t\t\t\t\t\t\t)?.key\n\t\t\t\t\t\t\t\t\t\t? props.teamLeaders.find(\n\t\t\t\t\t\t\t\t\t\t\t\t(teamLeader) =>\n\t\t\t\t\t\t\t\t\t\t\t\t\tteamLeader.value.id.toString() === props.filters.assignedTeamLeader\n\t\t\t\t\t\t\t\t\t\t )!.key\n\t\t\t\t\t\t\t\t\t\t: '',\n\t\t\t\t\t\t\t\t\tvalue: props.filters.assignedTeamLeader,\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\twithoutClose={false}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t) : null}\n\t\t\t\t\t{user?.role !== UserRole.QualityAssuranceInspector ? (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tif (value.key === '') return false;\n\t\t\t\t\t\t\t\t\treturn t(option.key) === t(value.key);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tlabel={t('contract_overview_screen_contract_status')}\n\t\t\t\t\t\t\t\tonChange={(e) => {\n\t\t\t\t\t\t\t\t\tif (e) {\n\t\t\t\t\t\t\t\t\t\tprops.onFilterChange('status', e.value);\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tprops.onFilterChange('status', '');\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\toptions={filterOpenClosed}\n\t\t\t\t\t\t\t\tmultiple={false}\n\t\t\t\t\t\t\t\tvalue={{\n\t\t\t\t\t\t\t\t\tkey:\n\t\t\t\t\t\t\t\t\t\tprops.filters.status === ''\n\t\t\t\t\t\t\t\t\t\t\t? ''\n\t\t\t\t\t\t\t\t\t\t\t: t(filterOpenClosed[props.filters.status].key),\n\n\t\t\t\t\t\t\t\t\tvalue: props.filters.status,\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\twithoutClose={false}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t) : null}\n\t\t\t\t\t{user?.role !== UserRole.QualityAssuranceInspector && user?.role !== UserRole.Customer ? (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tif (value.key === '') return false;\n\t\t\t\t\t\t\t\t\treturn t(option.key) === t(value.key);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tlabel={t('contract_overview_screen_attachment')}\n\t\t\t\t\t\t\t\tmultiple={false}\n\t\t\t\t\t\t\t\tonChange={(e) => {\n\t\t\t\t\t\t\t\t\tif (e) {\n\t\t\t\t\t\t\t\t\t\tprops.onFilterChange('contractData', e.value);\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tprops.onFilterChange('contractData', '');\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\toptions={filterContractData}\n\t\t\t\t\t\t\t\tvalue={{\n\t\t\t\t\t\t\t\t\tkey:\n\t\t\t\t\t\t\t\t\t\tprops.filters.contractData === ''\n\t\t\t\t\t\t\t\t\t\t\t? ''\n\t\t\t\t\t\t\t\t\t\t\t: props.filters.contractData === true\n\t\t\t\t\t\t\t\t\t\t\t? t(filterContractData[0].key)\n\t\t\t\t\t\t\t\t\t\t\t: t(filterContractData[1].key),\n\t\t\t\t\t\t\t\t\tvalue: props.filters.contractData,\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\twithoutClose={false}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t) : null}\n\t\t\t\t\n\t\t\t
    \n\n\t\t\t\n\t\t
    \n\t);\n}\n\ninterface StyleProps {\n\tdisabled?: boolean;\n}\n\nconst useStyles = makeStyles(() => ({\n\ttitleWrapper: {\n\t\tmarginBottom: '12px',\n\t},\n\trow: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tjustifyContent: 'space-between',\n\t},\n\tinput: (props: StyleProps) => ({\n\t\t...globalInputStyle(props.disabled),\n\t\twhiteSpace: 'pre',\n\t}),\n\tinputWrapper: {\n\t\ttransform: 'translateY(-2px)',\n\t\ttextOverflow: 'ellipsis',\n\t\toverflow: 'hidden',\n\t},\n}));\n\nexport default ContractOverviewScreen;\n","import React, { createRef, useCallback, useEffect, useRef, useState } from 'react';\nimport { FormProvider, useForm } from 'react-hook-form';\nimport { useHistory } from 'react-router-dom';\nimport { LocationState, History } from 'history';\nimport { unstable_batchedUpdates } from 'react-dom';\n\nimport service from '../service/service';\nimport { Routes } from '../router/Routes';\nimport { filterData } from '../helpers/filters';\nimport { UserRole } from '../service/types/User';\nimport { contractFields } from './ContractContainer';\nimport { useAuthStateContext } from '../context/auth/useAuth';\nimport { KeyValue } from '../helpers/userHelper/generalUserHelper';\nimport ContractOverviewScreen from '../screens/ContractOverviewScreen';\nimport Contract from '../service/types/Contract';\nimport { getUserOptionsKeyValuePairs } from '../helpers/userHelper/readUserHelper';\nimport { getCustomerOptionsKeyValuePairs } from '../helpers/customerHelper/readCustomerHelper';\nimport { ContractViewType, ContractStatusType } from '../helpers/contractHelper/generalContractHelper';\nimport { IntervalDatePickerDates, IntervalKey } from '../components/IntervalDatePicker';\nimport moment from 'moment';\nimport { MaterialUiPickersDate } from '@material-ui/pickers/typings/date';\nimport { useTranslation } from 'react-i18next';\n\nexport interface ContractOverviewFilterInterface {\n\tcontractType: any;\n\tcontractData?: any;\n\tstatus: any;\n\tisPhotoAllowed: any;\n\tautomatedUpdates: any;\n\tcontractNumber: any;\n\tcustomer: any;\n\tdate: any;\n\tworkLocation: any;\n\tpartDesignation: any;\n\tmarkingOfIOparts: any;\n\tshiftTimes: any;\n\terrorTypes: any;\n\ttypesOfInspection: any;\n\tassignedQAIs: any;\n\tassignedTeamLeader: any;\n\tfromDate?: any;\n\ttoDate?: any;\n}\n\nexport const initContractFilter: ContractOverviewFilterInterface = {\n\tcustomer: '',\n\tcontractNumber: '',\n\tdate: null,\n\terrorTypes: '',\n\tmarkingOfIOparts: '',\n\tpartDesignation: '',\n\tshiftTimes: '',\n\ttypesOfInspection: '',\n\tworkLocation: '',\n\tassignedQAIs: '',\n\tassignedTeamLeader: '',\n\tautomatedUpdates: '',\n\tcontractType: '',\n\tisPhotoAllowed: '',\n\tcontractData: '',\n\tstatus: '',\n\tfromDate: null,\n\ttoDate: null,\n};\n\nconst data = Object.freeze({ ...initContractFilter });\nexport type ContractFilterKeys = keyof typeof data;\n\nexport interface ContractContainerProps {\n\tbuttonText: string;\n\tdisplaySort: boolean;\n\tredirectTo?: Routes;\n\tviewType: ContractViewType;\n\troute: (history: History, contract: Contract) => void;\n}\n\nfunction ContractOverviewContainer({ buttonText, displaySort, redirectTo, viewType, route }: ContractContainerProps) {\n\tconst { t } = useTranslation();\n\tconst [teamLeaders, setTeamLeaders] = useState([]);\n\tconst [assignedQAIs, setAssignedQAIs] = useState([]);\n\tconst [customers, setCustomers] = useState([]);\n\tconst [contracts, setContracts] = useState([]);\n\tconst [filters, setFilters] = useState(initContractFilter);\n\tconst methods = useForm();\n\tconst allContractsRef = useRef([]);\n\tconst fetchingData = useRef({\n\t\tqai: createRef(),\n\t\tteamLeaders: createRef(),\n\t\tcustomer: createRef(),\n\t});\n\tconst { user } = useAuthStateContext();\n\tconst history = useHistory();\n\n\tconst [intervalDates, setIntervalDates] = useState({\n\t\tfromDate: null,\n\t\ttoDate: null,\n\t});\n\n\tconst onFilterChange = (key: ContractFilterKeys, value: any) => {\n\t\tsetFilters((prev) => ({ ...prev, [key]: value }));\n\t};\n\n\tconst onContractPress = (contract: Contract) => route(history, contract);\n\n\tconst clearAllFilters = () => {\n\t\tObject.values(contractFields).forEach((value) => methods.setValue(value, ''));\n\t\tsetFilters(initContractFilter);\n\t};\n\n\tuseEffect(() => {\n\t\tsetContracts(filterData(filters, allContractsRef.current));\n\t}, [filters]);\n\n\tconst fetchData = useCallback(async () => {\n\t\ttry {\n\t\t\tconst contracts = await service.getContracts();\n\t\t\tlet assignedQAIs: KeyValue[];\n\t\t\tlet teamLeaders: KeyValue[];\n\t\t\tlet customers: KeyValue[];\n\n\t\t\tif (user?.role !== UserRole.QualityAssuranceInspector && user?.role !== UserRole.Customer) {\n\t\t\t\tif (!fetchingData.current.qai.current) {\n\t\t\t\t\tfetchingData.current.qai.current = true;\n\t\t\t\t\tassignedQAIs = await getUserOptionsKeyValuePairs(service.getAllQAIs(), () => {});\n\t\t\t\t}\n\t\t\t\tif (!fetchingData.current.teamLeaders.current) {\n\t\t\t\t\tfetchingData.current.teamLeaders.current = true;\n\t\t\t\t\tteamLeaders = await getUserOptionsKeyValuePairs(service.getAllTeamLeaders(), () => {});\n\t\t\t\t}\n\t\t\t\tif (!fetchingData.current.customer.current) {\n\t\t\t\t\tfetchingData.current.customer.current = true;\n\t\t\t\t\tcustomers = await getCustomerOptionsKeyValuePairs(service.getAllCustomers(), () => {});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tunstable_batchedUpdates(() => {\n\t\t\t\tsetContracts(contracts.filter((contract) => contract.status !== ContractStatusType.Closed));\n\t\t\t\tallContractsRef.current = contracts;\n\t\t\t\tsetFilters({\n\t\t\t\t\t...initContractFilter,\n\t\t\t\t});\n\n\t\t\t\tif (assignedQAIs) setAssignedQAIs(assignedQAIs);\n\t\t\t\tif (teamLeaders) setTeamLeaders(teamLeaders.filter((el) => !el.value.deleted));\n\t\t\t\tif (customers) setCustomers(customers);\n\t\t\t});\n\t\t} catch (e) {\n\t\t\tfetchingData.current.qai.current = false;\n\t\t\tfetchingData.current.teamLeaders.current = false;\n\t\t\tfetchingData.current.customer.current = false;\n\t\t}\n\t}, [user?.role]);\n\n\tuseEffect(() => {\n\t\tfetchData();\n\t}, [fetchData]);\n\n\tconst onDateChange = useCallback(\n\t\t(date: MaterialUiPickersDate) => {\n\t\t\tconst offset = moment(date).utcOffset();\n\t\t\tlet dateMoment = moment(date).add(offset);\n\t\t\tif (!intervalDates.fromDate) {\n\t\t\t\tsetIntervalDates({\n\t\t\t\t\tfromDate: dateMoment,\n\t\t\t\t\ttoDate: null,\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tintervalDates.fromDate &&\n\t\t\t\t!intervalDates.toDate &&\n\t\t\t\tmoment(dateMoment).isSameOrAfter(intervalDates.fromDate)\n\t\t\t) {\n\t\t\t\tsetIntervalDates((prev) => ({\n\t\t\t\t\t...prev,\n\t\t\t\t\ttoDate: dateMoment,\n\t\t\t\t}));\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsetIntervalDates({\n\t\t\t\tfromDate: dateMoment,\n\t\t\t\ttoDate: null,\n\t\t\t});\n\n\t\t\treturn;\n\t\t},\n\t\t[intervalDates]\n\t);\n\n\tconst onKeyboardDateChange = (date: MaterialUiPickersDate, key: IntervalKey) => {\n\t\tconst dateMoment = moment(date).utcOffset(0, true);\n\t\tmethods.clearErrors(['fromDate', 'toDate']);\n\t\tif (key === 'start') {\n\t\t\tif (moment(dateMoment).isSameOrBefore(intervalDates.toDate) || !intervalDates.toDate) {\n\t\t\t\tsetIntervalDates((prev) => ({\n\t\t\t\t\t...prev,\n\t\t\t\t\tfromDate: dateMoment,\n\t\t\t\t}));\n\t\t\t\tsetFilters((prev) => ({\n\t\t\t\t\t...prev,\n\t\t\t\t\tfromDate: dateMoment,\n\t\t\t\t}));\n\t\t\t} else {\n\t\t\t\tmethods.setError('fromDate', { message: t('start_interval_error') });\n\t\t\t}\n\t\t} else if (key === 'end') {\n\t\t\tif (moment(dateMoment).isSameOrAfter(intervalDates.fromDate)) {\n\t\t\t\tsetIntervalDates((prev) => ({\n\t\t\t\t\t...prev,\n\t\t\t\t\ttoDate: dateMoment,\n\t\t\t\t}));\n\t\t\t\tsetFilters((prev) => ({\n\t\t\t\t\t...prev,\n\t\t\t\t\ttoDate: dateMoment,\n\t\t\t\t}));\n\t\t\t} else {\n\t\t\t\tmethods.setError('toDate', { message: t('end_interval_error') });\n\t\t\t}\n\t\t}\n\t};\n\n\tconst onDatesAccept = () => {\n\t\tsetFilters((prev) => ({\n\t\t\t...prev,\n\t\t\tfromDate: intervalDates.fromDate,\n\t\t\ttoDate: intervalDates.toDate,\n\t\t}));\n\t};\n\n\tconst onDatesCancel = () => {\n\t\tconst prevDates: IntervalDatePickerDates = {\n\t\t\tfromDate: filters.fromDate,\n\t\t\ttoDate: filters.toDate,\n\t\t};\n\t\tsetIntervalDates(prevDates);\n\t};\n\n\tconst clearDates = () => {\n\t\tsetFilters((prev) => ({\n\t\t\t...prev,\n\t\t\tfromDate: null,\n\t\t\ttoDate: null,\n\t\t}));\n\n\t\tsetIntervalDates({\n\t\t\tfromDate: null,\n\t\t\ttoDate: null,\n\t\t});\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\n\t);\n}\n\nexport default ContractOverviewContainer;\n","import { KeyValue } from '../userHelper/generalUserHelper';\n\nexport enum PartStatusType {\n\tPartIO = 1,\n\tPartNIO = 2,\n\tPartRework = 3,\n}\n\nexport const filterRhenusCasePartStatusKeyValuePairs: KeyValue[] = [\n\t{ key: ' ', value: '' },\n\t{ key: 'rhenus_part_status_part_io', value: PartStatusType.PartIO },\n\t{ key: 'rhenus_part_status_part_nio', value: PartStatusType.PartNIO },\n\t{ key: 'rhenus_part_status_part_rework', value: PartStatusType.PartRework },\n];\n\nexport const createRhenusCasePartStatusKeyValuePairs: KeyValue[] = [\n\t{ key: 'rhenus_part_status_part_io', value: PartStatusType.PartIO },\n\t{ key: 'rhenus_part_status_part_nio', value: PartStatusType.PartNIO },\n\t{ key: 'rhenus_part_status_part_rework', value: PartStatusType.PartRework },\n];\n\nexport const textsForRhenusAutomaticalUpdate = [\n\t'rhenus_update_data_text_now',\n\t'rhenus_update_data_text_one_minute',\n\t'rhenus_update_data_text_two_minutes',\n\t'rhenus_update_data_text_three_minutes',\n\t'rhenus_update_data_text_four_minutes',\n\t'rhenus_update_data_text_five_minutes',\n];\n","import { TableCellType } from '../components/table/StandardTableCell';\nimport { RhenusCaseTableInterface } from '../service/types/RhenusCase';\nimport { TableParamInterface } from './rhenusOverview';\n\ninterface RhenusCaseParamInterface extends RhenusCaseTableInterface {\n\tproductionNumber: TableParamInterface;\n\tqai: TableParamInterface | undefined;\n\tpartNumber: TableParamInterface;\n\tpartStatus: TableParamInterface;\n\terrorType: TableParamInterface;\n\ttypeOfInspection: TableParamInterface;\n\tstorage: TableParamInterface;\n\tapproved: TableParamInterface | undefined;\n\tphoto: TableParamInterface | undefined;\n\tdate: TableParamInterface;\n\tshift: TableParamInterface | undefined;\n\tcomment?: TableParamInterface | undefined;\n}\n\nexport const rhenusCaseInputListParams: RhenusCaseParamInterface = {\n\tproductionNumber: {\n\t\ttitle: 'rhenus_case_zone_overview_screen_production_number',\n\t\twidth: '21.56vw',\n\t\ttype: TableCellType.Sticky,\n\t\ttitleType: TableCellType.Title,\n\t\tsticky: true,\n\t},\n\tqai: {\n\t\ttitle: 'rhenus_case_zone_overview_screen_reporter',\n\t\twidth: '17.957vw',\n\t\ttype: TableCellType.Text,\n\t\ttitleType: TableCellType.Title,\n\t},\n\tpartNumber: {\n\t\ttitle: 'rhenus_case_zone_overview_screen_part_number',\n\t\twidth: '10.832vw',\n\t\ttype: TableCellType.Text,\n\t\ttitleType: TableCellType.Title,\n\t},\n\tpartNumberShould: {\n\t\ttitle: 'rhenus_case_zone_overview_screen_part_number_should',\n\t\twidth: '10.832vw',\n\t\ttype: TableCellType.Text,\n\t\ttitleType: TableCellType.Title,\n\t},\n\tcolorNumber: {\n\t\ttitle: 'rhenus_case_zone_overview_screen_color_number',\n\t\twidth: '10.832vw',\n\t\ttype: TableCellType.Text,\n\t\ttitleType: TableCellType.Title,\n\t},\n\tcolorNumberShould: {\n\t\ttitle: 'rhenus_case_zone_overview_screen_color_number_should',\n\t\twidth: '10.832vw',\n\t\ttype: TableCellType.Text,\n\t\ttitleType: TableCellType.Title,\n\t},\n\tpartStatus: {\n\t\ttitle: 'rhenus_case_zone_overview_screen_part_status',\n\t\twidth: '11.01vw',\n\t\ttype: TableCellType.Text,\n\t\ttitleType: TableCellType.TitleWithDropdown,\n\t},\n\tamountOfParts: {\n\t\ttitle: 'rhenus_case_zone_overview_screen_amount_of_parts',\n\t\twidth: '11.01vw',\n\t\ttype: TableCellType.Text,\n\t\ttitleType: TableCellType.TitleWithDropdown,\n\t},\n\terrorType: {\n\t\ttitle: 'rhenus_case_zone_overview_screen_error_type',\n\t\twidth: '11.01vw',\n\t\ttype: TableCellType.Text,\n\t\ttitleType: TableCellType.TitleWithDropdown,\n\t},\n\ttypeOfInspection: {\n\t\ttitle: 'rhenus_case_zone_overview_screen_type_of_inspection',\n\t\twidth: '11.01vw',\n\t\ttype: TableCellType.Text,\n\t\ttitleType: TableCellType.TitleWithDropdown,\n\t},\n\tstorage: {\n\t\ttitle: 'rhenus_case_zone_overview_screen_storage',\n\t\twidth: '17.957vw',\n\t\ttype: TableCellType.Text,\n\t\ttitleType: TableCellType.Title,\n\t},\n\tapproved: {\n\t\ttitle: 'rhenus_case_zone_overview_screen_approved',\n\t\twidth: '15.87vw',\n\t\ttype: TableCellType.Approve,\n\t\ttitleType: TableCellType.TitleWithDropdown,\n\t},\n\tphoto: {\n\t\ttitle: 'rhenus_case_zone_overview_screen_photo_for_error',\n\t\twidth: '12.87vw',\n\t\ttype: TableCellType.Button,\n\t\ttitleType: TableCellType.Title,\n\t},\n\tdate: {\n\t\ttitle: 'rhenus_case_zone_overview_screen_date',\n\t\twidth: '10.832vw',\n\t\ttype: TableCellType.Text,\n\t\ttitleType: TableCellType.Title,\n\t},\n\tshift: {\n\t\ttitle: 'rhenus_case_zone_overview_screen_shift',\n\t\twidth: '14.832vw',\n\t\ttype: TableCellType.Text,\n\t\ttitleType: TableCellType.TitleWithDropdown,\n\t},\n\tcomment: {\n\t\ttitle: 'rhenus_case_zone_overview_screen_comment',\n\t\twidth: '29.87vw',\n\t\ttype: TableCellType.Expandable,\n\t\ttitleType: TableCellType.Title,\n\t},\n};\n","import React from 'react';\nimport { rhenusCaseInputListParams } from '../consts/rhenusCase';\nimport { RhenusCaseFilterKeys } from '../containers/ZoneOverviewContainer';\nimport { useAuthStateContext } from '../context/auth/useAuth';\nimport { ShiftInterface } from '../helpers/contractHelper/generalContractHelper';\nimport {\n\tcreateRhenusCasePartStatusKeyValuePairs,\n\tfilterRhenusCasePartStatusKeyValuePairs,\n} from '../helpers/rhenusInputHelper/generalRhenusHelper';\nimport {\n\tApprovedStatus,\n\tDEFAULT_NO_VALUE,\n\tfilterApprovedStatusKeyValuePairs,\n} from '../helpers/standardInputHelper/generalStandardInputHelper';\nimport { KeyValue } from '../helpers/userHelper/generalUserHelper';\nimport service from '../service/service';\nimport RhenusCase, { RhenusCaseFilterInterface } from '../service/types/RhenusCase';\nimport { UserRole } from '../service/types/User';\nimport CameraDialog, { CameraDialogInterface } from './CameraDialog';\nimport CustomTableBody from './CustomTableBody';\nimport { TableCellType } from './table/StandardTableCell';\n\ninterface Props {\n\trhenusCaseInputs: RhenusCase[];\n\tallAssignedQAIs: KeyValue[];\n\tfilters: RhenusCaseFilterInterface;\n\tphoto: boolean;\n\tamountOfParts: string[];\n\ttypesOfInspections: string[];\n\terrorTypes: string[];\n\tautomatedUpdates: boolean;\n\tshiftTimes: ShiftInterface[];\n\tdashboard?: boolean;\n\tmaxHeight?: string;\n\tonFilterChange: (key: RhenusCaseFilterKeys, value: any) => void;\n\tonViewPress: (rhenusCase: RhenusCase) => void;\n\tonApprovePress: (rhenusCase: RhenusCase) => void;\n}\n\nfunction RhenusCaseList({\n\trhenusCaseInputs,\n\tallAssignedQAIs,\n\tfilters,\n\tphoto,\n\tamountOfParts,\n\ttypesOfInspections,\n\terrorTypes,\n\tautomatedUpdates,\n\tshiftTimes,\n\tdashboard,\n\tmaxHeight,\n\tonFilterChange,\n\tonViewPress,\n\tonApprovePress,\n}: Props) {\n\tconst { user } = useAuthStateContext();\n\tconst [partNumber, setPartNumber] = React.useState('');\n\tconst cameraDialogRef = React.useRef();\n\tconst transformedStandardCaseInputs = React.useMemo(() => {\n\t\treturn rhenusCaseInputs.map((rhenusCase) => {\n\t\t\treturn {\n\t\t\t\t...rhenusCase,\n\t\t\t\tshift: shiftTimes.find((shift) => shift.id === rhenusCase.shift)?.name,\n\t\t\t\tqai: allAssignedQAIs.find((qai) => qai.value.id === rhenusCase.qai)?.key,\n\t\t\t\tapproved: rhenusCase.approved ? ApprovedStatus.Approved : ApprovedStatus.NotApproved,\n\t\t\t\tpartStatus: createRhenusCasePartStatusKeyValuePairs.find(\n\t\t\t\t\t(status) => status.value === rhenusCase.partStatus\n\t\t\t\t)?.key,\n\t\t\t};\n\t\t});\n\t}, [rhenusCaseInputs, allAssignedQAIs, shiftTimes]);\n\n\tconst onPreviewImage = React.useCallback((rhenusCaseInput: RhenusCase) => {\n\t\tif (rhenusCaseInput.photo)\n\t\t\tservice\n\t\t\t\t.getPhoto(rhenusCaseInput.photo.name)\n\t\t\t\t.then((res) => {\n\t\t\t\t\tif (res) {\n\t\t\t\t\t\tcameraDialogRef.current?.setDialogState(true, true, { name: '', data: res });\n\t\t\t\t\t\tsetPartNumber(rhenusCaseInput.partNumber);\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.catch(() => {});\n\t}, []);\n\n\tconst transformedListParams = React.useMemo(() => {\n\t\tif (user) {\n\t\t\tconst tempParams = { ...rhenusCaseInputListParams };\n\t\t\tif (!photo || user?.role === UserRole.QualityAssuranceInspector) delete tempParams.photo;\n\t\t\tif (automatedUpdates || dashboard) delete tempParams.approved;\n\t\t\tif (user?.role === UserRole.QualityAssuranceInspector) {\n\t\t\t\tdelete tempParams.qai;\n\t\t\t\tdelete tempParams.shift;\n\t\t\t\tdelete tempParams.photo;\n\t\t\t\tdelete tempParams.approved;\n\t\t\t}\n\t\t\tif (dashboard) {\n\t\t\t\tdelete tempParams.qai;\n\t\t\t\tdelete tempParams.comment;\n\t\t\t\tdelete tempParams.photo;\n\t\t\t\tdelete tempParams.approved;\n\t\t\t\ttempParams.productionNumber = {\n\t\t\t\t\t...tempParams.productionNumber,\n\t\t\t\t\ttype: TableCellType.Text,\n\t\t\t\t\twidth: '15.56vw',\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn tempParams;\n\t\t}\n\t}, [photo, automatedUpdates, user, dashboard]);\n\n\tconst filtersOptions: Partial = React.useMemo(\n\t\t() => ({\n\t\t\ttypeOfInspection: typesOfInspections.map((item) => ({ key: item, value: item })),\n\t\t\tpartStatus: filterRhenusCasePartStatusKeyValuePairs,\n\t\t\terrorType: errorTypes.map((item) => ({ key: item, value: item })),\n\t\t\tshift: [DEFAULT_NO_VALUE, ...shiftTimes.map((shift) => ({ key: shift.name, value: shift.name }))],\n\t\t\tapproved: filterApprovedStatusKeyValuePairs,\n\t\t\tamountOfParts: amountOfParts.map((item) => ({ key: item, value: item })),\n\t\t}),\n\t\t[typesOfInspections, errorTypes, shiftTimes, amountOfParts]\n\t);\n\n\tconst table = React.useMemo(\n\t\t() => (\n\t\t\t onApprovePress(rhenusCaseInputs[index]),\n\t\t\t\t\t},\n\t\t\t\t\tphoto: {\n\t\t\t\t\t\ttext: 'rhenus_case_zone_overview_screen_list_photo',\n\t\t\t\t\t\tonClick: (index) => onPreviewImage(rhenusCaseInputs[index]),\n\t\t\t\t\t},\n\t\t\t\t\tproductionNumber: {\n\t\t\t\t\t\ttext: 'rhenus_case_zone_overview_screen_list_view',\n\t\t\t\t\t\tonClick: (index) => onViewPress(rhenusCaseInputs[index]),\n\t\t\t\t\t},\n\t\t\t\t}}\n\t\t\t/>\n\t\t),\n\t\t[\n\t\t\ttransformedStandardCaseInputs,\n\t\t\ttransformedListParams,\n\t\t\tonFilterChange,\n\t\t\tfilters,\n\t\t\tfiltersOptions,\n\t\t\tmaxHeight,\n\t\t\tonApprovePress,\n\t\t\trhenusCaseInputs,\n\t\t\tonPreviewImage,\n\t\t\tonViewPress,\n\t\t]\n\t);\n\n\treturn (\n\t\t
    \n\t\t\t{table}\n\t\t\t\n\t\t
    \n\t);\n}\n\nexport default RhenusCaseList;\n","import { Service } from '../../service/service';\nimport User from '../../service/types/User';\nimport { History, LocationState } from 'history';\nimport moment from 'moment';\nimport RhenusCase from '../../service/types/RhenusCase';\nimport { rhenusCaseInputFields } from '../../containers/RhenusCaseContainer';\n\nexport function createRhenusCaseInput(\n\tdata: any,\n\thistory: History,\n\tcontractIDRef: React.MutableRefObject,\n\tservice: Service,\n\tuser: User,\n\tautomatedUpdates: boolean,\n\tzone: number,\n\tshift: number\n) {\n\tconst rhenusCase = getRhenusCaseInputWithoutID(data, user, automatedUpdates, zone, shift);\n\tservice\n\t\t.createRhenusCaseInput(contractIDRef.current, zone, rhenusCase)\n\t\t.then((res) => {\n\t\t\tif (res) {\n\t\t\t\thistory.goBack();\n\t\t\t}\n\t\t})\n\t\t.catch(() => {});\n}\n\nfunction getRhenusCaseInputWithoutID(data: any, user: User, automatedUpdates: boolean, zone: number, shift: number) {\n\treturn new RhenusCase(\n\t\t0,\n\t\tmoment(data[rhenusCaseInputFields.date]),\n\t\tshift,\n\t\tNumber(data[rhenusCaseInputFields.productionNumber]),\n\t\tdata[rhenusCaseInputFields.partNumber],\n\t\tzone,\n\t\tdata[rhenusCaseInputFields.storage],\n\t\tdata[rhenusCaseInputFields.partStatus],\n\t\tuser.id,\n\t\tautomatedUpdates ? true : data[rhenusCaseInputFields.approved],\n\t\tdata[rhenusCaseInputFields.typeOfInspection],\n\t\tdata[rhenusCaseInputFields.errorType],\n\t\tdata[rhenusCaseInputFields.partNumberShould],\n\t\tdata[rhenusCaseInputFields.colorNumber],\n\t\tdata[rhenusCaseInputFields.colorNumberShould],\n\t\tdata[rhenusCaseInputFields.amountOfParts],\n\t\tdata[rhenusCaseInputFields.comment],\n\t\tdata[rhenusCaseInputFields.photo]\n\t\t\t? {\n\t\t\t\t\t...data[rhenusCaseInputFields.photo],\n\t\t\t\t\tdata: data[rhenusCaseInputFields.photo].data.split(',')[1],\n\t\t\t }\n\t\t\t: undefined\n\t);\n}\n","import { History, LocationState } from 'history';\n\nimport { rhenusCaseInputFields } from '../../containers/RhenusCaseContainer';\nimport { Service } from '../../service/service';\nimport RhenusCase from '../../service/types/RhenusCase';\nimport { replaceRhenusCaseHistoryData } from '../navigationHelper';\nimport moment from 'moment';\n\nexport function updateRhenusCaseInput(\n\tdata: any,\n\tservice: Service,\n\trhenusCaseInput: RhenusCase | undefined,\n\tcontractIDRef: React.MutableRefObject,\n\thistory: History,\n\tsetRhenusCaseInput: (rhenusCase: RhenusCase | undefined) => void,\n\tsetIsUserEditing: (val: boolean) => void\n) {\n\tif (rhenusCaseInput) {\n\t\tconst tempRhenusCase = getUpdatedRhenusCase(data, rhenusCaseInput);\n\t\tservice\n\t\t\t.updateRhenusCaseInput(contractIDRef.current, tempRhenusCase.zone, {\n\t\t\t\t...tempRhenusCase,\n\t\t\t\tphoto: tempRhenusCase.photo\n\t\t\t\t\t? {\n\t\t\t\t\t\t\t...tempRhenusCase.photo,\n\t\t\t\t\t\t\tdata:\n\t\t\t\t\t\t\t\ttempRhenusCase.photo && tempRhenusCase.photo.data\n\t\t\t\t\t\t\t\t\t? tempRhenusCase.photo.data.split(',')[1]\n\t\t\t\t\t\t\t\t\t: '',\n\t\t\t\t\t }\n\t\t\t\t\t: undefined,\n\t\t\t})\n\t\t\t.then((res) => {\n\t\t\t\tif (res) {\n\t\t\t\t\tsetRhenusCaseInput(tempRhenusCase);\n\t\t\t\t\tsetIsUserEditing(false);\n\t\t\t\t\treplaceRhenusCaseHistoryData(history, tempRhenusCase);\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(() => {});\n\t}\n}\n\nfunction getUpdatedRhenusCase(data: any, rhenusCaseInput: RhenusCase) {\n\treturn new RhenusCase(\n\t\trhenusCaseInput.id,\n\t\tmoment(data[rhenusCaseInputFields.date]),\n\t\trhenusCaseInput.shift,\n\t\tNumber(data[rhenusCaseInputFields.productionNumber]),\n\t\tdata[rhenusCaseInputFields.partNumber],\n\t\trhenusCaseInput.zone,\n\t\tdata[rhenusCaseInputFields.storage],\n\t\tdata[rhenusCaseInputFields.partStatus],\n\t\trhenusCaseInput.qai,\n\t\tdata[rhenusCaseInputFields.approved] === undefined ? true : data[rhenusCaseInputFields.approved],\n\t\tdata[rhenusCaseInputFields.typeOfInspection],\n\t\tdata[rhenusCaseInputFields.errorType],\n\t\tdata[rhenusCaseInputFields.partNumberShould],\n\t\tdata[rhenusCaseInputFields.colorNumber],\n\t\tdata[rhenusCaseInputFields.colorNumberShould],\n\t\tdata[rhenusCaseInputFields.amountOfParts],\n\t\tdata[rhenusCaseInputFields.comment],\n\t\tdata[rhenusCaseInputFields.photo]\n\t\t\t? {\n\t\t\t\t\t...data[rhenusCaseInputFields.photo],\n\t\t\t\t\tdata: data[rhenusCaseInputFields.photo].data.split(',')[1],\n\t\t\t }\n\t\t\t: undefined\n\t);\n}\n","import { goToHome, RhenusCaseNavigationInterface } from '../navigationHelper';\nimport { History, LocationState } from 'history';\nimport { ContractZone, ShiftInterface } from '../contractHelper/generalContractHelper';\nimport RhenusCase from '../../service/types/RhenusCase';\nimport { rhenusCaseInputFields } from '../../containers/RhenusCaseContainer';\nimport User, { UserRole } from '../../service/types/User';\nimport Contract from '../../service/types/Contract';\nimport { findCurrentShift } from '../standardInputHelper/createStandardInputHelper';\nimport { RouteParams } from '../../router/Routes';\nimport service from '../../service/service';\n\nexport function setRhenusInputCaseInfo(\n\trhenusInputCase: RhenusCase | undefined,\n\tuser: User | undefined,\n\tcontract: Contract,\n\tsetValue: (field: string, val: any) => void,\n\tsetShift: (shift: ShiftInterface | undefined) => void,\n\tsetZone: (zone: ContractZone | undefined) => void\n) {\n\tif (rhenusInputCase) {\n\t\tsetValue(rhenusCaseInputFields.partNumber, rhenusInputCase.partNumber);\n\t\tsetValue(rhenusCaseInputFields.productionNumber, rhenusInputCase.productionNumber);\n\t\tsetValue(rhenusCaseInputFields.date, rhenusInputCase.date);\n\t\tsetValue(rhenusCaseInputFields.storage, rhenusInputCase.storage);\n\t\tsetValue(rhenusCaseInputFields.typeOfInspection, rhenusInputCase.typeOfInspection);\n\t\tsetValue(rhenusCaseInputFields.errorType, rhenusInputCase.errorType);\n\t\tsetValue(rhenusCaseInputFields.partStatus, rhenusInputCase.partStatus);\n\t\tsetValue(rhenusCaseInputFields.partNumberShould, rhenusInputCase.partNumberShould);\n\t\tsetValue(rhenusCaseInputFields.colorNumber, rhenusInputCase.colorNumber);\n\t\tsetValue(rhenusCaseInputFields.colorNumberShould, rhenusInputCase.colorNumberShould);\n\t\tsetValue(rhenusCaseInputFields.amountOfParts, rhenusInputCase.amountOfParts);\n\t\tsetValue(rhenusCaseInputFields.comment, rhenusInputCase.comment);\n\t\tsetValue(rhenusCaseInputFields.approved, rhenusInputCase.approved);\n\t\tsetShift(contract.shiftTimes.find((shift) => shift.id === rhenusInputCase.shift));\n\t\tsetZone(contract.zones!.find((zone) => zone.id === rhenusInputCase.zone));\n\t\tif (user?.role !== UserRole.QualityAssuranceInspector) {\n\t\t\tif (rhenusInputCase.photo)\n\t\t\t\tservice\n\t\t\t\t\t.getPhoto(rhenusInputCase.photo.name)\n\t\t\t\t\t.then((res) => {\n\t\t\t\t\t\tif (res) {\n\t\t\t\t\t\t\tsetValue(rhenusCaseInputFields.photo, { name: '', data: res });\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.catch(() => {});\n\t\t}\n\t} else {\n\t\tsetShift(findCurrentShift(contract.shiftTimes));\n\t}\n}\n\nexport function onRhenusInputScreenMount(\n\thistory: History,\n\tcontractIDRef: React.MutableRefObject,\n\trouteParams: RouteParams,\n\tsetContract: (contract: Contract) => void,\n\tsetIsUserEditing: (val: boolean) => void,\n\tsetRhenusInputCase: (rhenusCaseInput: RhenusCase | undefined) => void,\n\tsetZone: (zone: ContractZone | undefined) => void,\n\tsetMounted: (val: boolean) => void\n) {\n\tconst historyState = history.location.state as undefined | RhenusCaseNavigationInterface;\n\n\tif (historyState && historyState.zone) {\n\t\tconst contractFromState = Contract.fromJSON(JSON.parse(historyState.contract));\n\t\tcontractIDRef.current = contractFromState.id;\n\t\tsetContract(contractFromState);\n\t\tsetZone(historyState.zone);\n\t\tif (historyState.data) {\n\t\t\tsetRhenusInputCase(JSON.parse(historyState.data));\n\t\t} else {\n\t\t\tsetIsUserEditing(true);\n\t\t}\n\t\tsetMounted(true);\n\t} else if (routeParams.contract_id && routeParams.zone_id) {\n\t\tservice\n\t\t\t.getContract(Number(routeParams.contract_id))\n\t\t\t.then((res) => {\n\t\t\t\tif (res) {\n\t\t\t\t\tsetContract(res);\n\t\t\t\t\tif (routeParams.zone_id && res.zones) {\n\t\t\t\t\t\tconst zone = res.zones.find((zone) => zone.id === Number(routeParams.zone_id));\n\t\t\t\t\t\tif (routeParams.id && ((historyState && !historyState.data) || !historyState)) {\n\t\t\t\t\t\t\tservice\n\t\t\t\t\t\t\t\t.getRhenusCaseInputByID(Number(routeParams.id))\n\t\t\t\t\t\t\t\t.then((res) => {\n\t\t\t\t\t\t\t\t\tif (res) setRhenusInputCase(res);\n\t\t\t\t\t\t\t\t\tsetMounted(true);\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t.catch((e) => {\n\t\t\t\t\t\t\t\t\tgoToHome(history);\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tsetMounted(true);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (zone) setZone(zone);\n\t\t\t\t\t\telse goToHome(history);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tgoToHome(history);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch((e) => {\n\t\t\t\tgoToHome(history);\n\t\t\t});\n\t} else {\n\t\tgoToHome(history);\n\t}\n}\n","import React from 'react';\nimport { Grid, makeStyles, MenuItem } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport { Control, Controller } from 'react-hook-form';\nimport moment from 'moment';\n\nimport BackArrow from '../svgComponents/BackArrow';\nimport HomeButton from '../svgComponents/HomeButton';\nimport { globalInputStyle, useGlobalStyles } from '../consts/globalStyles';\nimport { rules } from '../consts/rules';\nimport StandardTextField from '../components/StandardTextField';\nimport StandardDialog, { StandardDialogInterface } from '../components/StandardDialog';\nimport { colors } from '../consts/colors';\nimport StandardDatePicker from '../components/StandardDatePicker';\nimport StandardCRUDButtons from '../components/StandardCRUDButtons';\nimport RhenusCase from '../service/types/RhenusCase';\nimport { rhenusCaseInputFields } from '../containers/RhenusCaseContainer';\nimport { createRhenusCasePartStatusKeyValuePairs } from '../helpers/rhenusInputHelper/generalRhenusHelper';\nimport { ContractZone, FileInterface, ShiftInterface } from '../helpers/contractHelper/generalContractHelper';\nimport CameraDialog, { CameraDialogInterface } from '../components/CameraDialog';\nimport Contract from '../service/types/Contract';\nimport ApproveItem from '../components/ApproveItem';\nimport PhotoIcon from '../svgComponents/PhotoIcon';\nimport BarcodeScanner, { BarcodeScannerInterface } from '../components/BarcodeScanner';\n\ninterface Props {\n\tisUserEditing: boolean;\n\trhenusCaseInput: RhenusCase | undefined;\n\tcontrol: Control>;\n\terrors: Record;\n\tdialogRef: React.MutableRefObject;\n\tcontract: Contract;\n\tshift: ShiftInterface | undefined;\n\tzone: ContractZone | undefined;\n\tonSubmitPress: () => void;\n\tonCancelPress: () => void;\n\tonDeletePress: () => void;\n\tonCancelDialogPress: () => void;\n\tonDeleteErrorInputDialogPress: () => void;\n\twatch: (field: string) => any;\n}\n\nfunction RhenusCaseScreen(props: Props) {\n\tconst globalClasses = useGlobalStyles();\n\tconst commentRef = React.useRef();\n\tconst cameraDialogRef = React.useRef();\n\tconst barcodeDialogRef = React.useRef();\n\n\tconst { t } = useTranslation();\n\tconst photo = props.watch(rhenusCaseInputFields.photo);\n\tconst classes = useStyles({ disabled: !props.isUserEditing, photo: photo });\n\tconst openCameraInCaptureMode = () => {\n\t\tcameraDialogRef.current?.setDialogState(true, false, undefined);\n\t};\n\n\tconst openCameraInPreviewMode = () => {\n\t\tif (photo) cameraDialogRef.current?.setDialogState(true, true, photo);\n\t};\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t{props.rhenusCaseInput\n\t\t\t\t\t\t? props.rhenusCaseInput.productionNumber\n\t\t\t\t\t\t: t('rhenus_case_screen_new_error_input')}\n\t\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t {}}\n\t\t\t\t\t\tvalue={props.shift ? (t(props.shift.name) as string) : ''}\n\t\t\t\t\t\tdisabled={true}\n\t\t\t\t\t\tfixed={true}\n\t\t\t\t\t\tisUserNotEditing={!props.isUserEditing}\n\t\t\t\t\t\terror={props.errors[rhenusCaseInputFields.shift] ? true : false}\n\t\t\t\t\t\thelperText={\n\t\t\t\t\t\t\tprops.errors[rhenusCaseInputFields.shift]\n\t\t\t\t\t\t\t\t? props.errors[rhenusCaseInputFields.shift].message\n\t\t\t\t\t\t\t\t: ''\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tbarcodeDialogRef.current?.setDialogState(true, (text: string) => {\n\t\t\t\t\t\t\t\t\t\tonChange(text);\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\terror={props.errors[rhenusCaseInputFields.productionNumber] ? true : false}\n\t\t\t\t\t\t\t\thelperText={\n\t\t\t\t\t\t\t\t\tprops.errors[rhenusCaseInputFields.productionNumber]\n\t\t\t\t\t\t\t\t\t\t? props.errors[rhenusCaseInputFields.productionNumber].message\n\t\t\t\t\t\t\t\t\t\t: ''\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t {}}\n\t\t\t\t\t\tdisabled={true}\n\t\t\t\t\t\tfixed={true}\n\t\t\t\t\t\tisUserNotEditing={!props.isUserEditing}\n\t\t\t\t\t\tvalue={props.zone ? props.zone.name : ''}\n\t\t\t\t\t\terror={props.errors[rhenusCaseInputFields.zone] ? true : false}\n\t\t\t\t\t\thelperText={\n\t\t\t\t\t\t\tprops.errors[rhenusCaseInputFields.zone]\n\t\t\t\t\t\t\t\t? props.errors[rhenusCaseInputFields.zone].message\n\t\t\t\t\t\t\t\t: ''\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{createRhenusCasePartStatusKeyValuePairs.map((item) => (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t{t(item.key)}\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{props.contract.errorTypes.map((item) => (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t{t(item)}\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{props.contract.typesOfInspection.map((item) => (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t{t(item)}\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{props.contract.amountOfParts?.map((item) => (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t{t(item)}\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t
    \n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{props.contract.isPhotoAllowed ? (\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tif (props.isUserEditing) openCameraInCaptureMode();\n\t\t\t\t\t\t\t\t\t}}>\n\t\t\t\t\t\t\t\t\t{t('rhenus_case_screen_upload_photo')}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{photo ? null : }\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t) : null}\n\t\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\n\t\t\t{props.contract?.automatedUpdates === false ? (\n\t\t\t\t\n\t\t\t) : null}\n\t\t\t
    \n\t\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t\t (\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t/>\n\t\t\t\n\t\t
    \n\t);\n}\n\ninterface StyleProps {\n\tdisabled?: boolean;\n\tphoto?: FileInterface;\n}\n\nconst useStyles = makeStyles(() => ({\n\tapproveWrapper: {\n\t\tmarginBottom: '20px',\n\t},\n\ttotalCheckWrapper: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'flex-start',\n\t\ttransform: 'translateY(10px)',\n\t},\n\ttotalCheckContentWrapper: {\n\t\talignItems: 'center',\n\t\tpaddingRight: '40px',\n\t\ttransform: 'translateY(2px)',\n\t},\n\ttitleWrapper: {\n\t\tmarginBottom: '24px',\n\t},\n\tinput: (props: StyleProps) => ({\n\t\t...globalInputStyle(props.disabled),\n\t\twhiteSpace: 'pre',\n\t}),\n\tinputWrapper: {\n\t\ttransform: 'translateY(-2px)',\n\t\ttextOverflow: 'ellipsis',\n\t\toverflow: 'hidden',\n\t},\n\tfieldWrapper: {\n\t\tmarginBottom: '40px !important',\n\t},\n\trowWrapper: {\n\t\tdisplay: 'flex',\n\t\tmargin: '48px 0px',\n\t\talignItems: 'center',\n\t},\n\tbottomWrapper: {\n\t\tmarginTop: '48px',\n\t},\n\ttopWrapper: {\n\t\tmarginBottom: '22px',\n\t},\n\n\ttableTitleWrapper: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tborderBottom: `2px solid #656565`,\n\t},\n\n\tcommentWrapper: {\n\t\tmarginTop: '64px',\n\t},\n\tuploadImageWrapper: {\n\t\tmarginTop: '64px',\n\t\tdisplay: 'flex',\n\t\talignItems: 'flex-end',\n\t},\n\ttableRowWrapper: {\n\t\tborderBottom: '1px solid #C7C7C7',\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tjustifyContent: 'space-between',\n\t},\n\trow: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t},\n\taddErrorPart: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tcursor: 'pointer',\n\t\tmarginRight: '24px',\n\t},\n\n\tinputCheckNumber: {\n\t\t...globalInputStyle(),\n\t\tborder: 'none',\n\t\twidth: '70%',\n\t\toutline: 'none',\n\t},\n\n\tuploadPhotoWrapper: (props: StyleProps) => ({\n\t\tmarginRight: '27px',\n\t\tcursor: props.disabled ? 'defalut' : 'pointer',\n\t}),\n\timage: (props: StyleProps) => ({\n\t\tposition: 'relative',\n\t\twidth: '100px',\n\t\theight: '100px',\n\t\tbackgroundImage: props.photo ? `url(${props.photo.data})` : undefined,\n\t\tbackgroundRepeat: 'no-repeat',\n\t\tbackgroundSize: '100px 100px',\n\t\tbackgroundColor: colors.keyButton,\n\t\tcursor: props.disabled || !props.photo ? 'default' : 'pointer',\n\t}),\n}));\n\nexport default RhenusCaseScreen;\n","import React from 'react';\nimport { useForm } from 'react-hook-form';\nimport { useHistory, useParams } from 'react-router-dom';\nimport { StandardDialogInterface } from '../components/StandardDialog';\nimport { useAuthStateContext } from '../context/auth/useAuth';\nimport { createRhenusCaseInput } from '../helpers/rhenusInputHelper/createRhenusCaseHelper';\nimport { updateRhenusCaseInput } from '../helpers/rhenusInputHelper/updateRhenusCaseHelper';\nimport { setRhenusInputCaseInfo, onRhenusInputScreenMount } from '../helpers/rhenusInputHelper/readRhenusCaseHelper';\nimport RhenusCaseScreen from '../screens/RhenusCaseScreen';\nimport service from '../service/service';\nimport RhenusCase from '../service/types/RhenusCase';\nimport { ContractZone, ShiftInterface } from '../helpers/contractHelper/generalContractHelper';\nimport { deleteRhenusInput } from '../helpers/rhenusInputHelper/deleteRhenusCaseHelper';\nimport { useNotificationActionContext } from '../context/notification/useNotification';\nimport Contract from '../service/types/Contract';\nimport Spinner from '../components/Spinner';\nimport { RouteParams } from '../router/Routes';\n\nexport const rhenusCaseInputFields = {\n\tpartNumber: 'partNumber',\n\tpartNumberShould: 'partNumberShould',\n\tcolorNumber: 'colorNumber',\n\tcolorNumberShould: 'colorNumberShould',\n\tamountOfParts: 'amountOfParts',\n\tpartStatus: 'partStatus',\n\tproductionNumber: 'productionNumber',\n\tqai: 'qai',\n\tstorage: 'storage',\n\tapproved: 'approved',\n\ttypeOfInspection: 'typeOfInspection',\n\tdate: 'date',\n\tshift: 'shift',\n\tzone: 'zone',\n\tcomment: 'comment',\n\terrorType: 'errorType',\n\tphoto: 'photo',\n};\n\nfunction RhenusCaseContainer() {\n\tconst { control, handleSubmit, errors, setValue, watch } = useForm();\n\tconst [isUserEditing, setIsUserEditing] = React.useState(false);\n\tconst [contract, setContract] = React.useState();\n\tconst [rhenusCaseInput, setRhenusCaseInput] = React.useState(undefined);\n\tconst [mounted, setMounted] = React.useState(false);\n\tconst { user } = useAuthStateContext();\n\tconst { setNotification } = useNotificationActionContext();\n\tconst contractIDRef = React.useRef(0);\n\tconst dialogRef = React.useRef(null);\n\tconst history = useHistory();\n\tconst routeParams: RouteParams = useParams();\n\n\tconst [shift, setShift] = React.useState();\n\tconst [zone, setZone] = React.useState();\n\tconst onDeletePress = () => dialogRef.current?.setDialogState(true);\n\tconst onCancelDialogPress = () => dialogRef.current?.setDialogState(false);\n\tconst onDeleteErrorInputDialogPress = () => {\n\t\tdeleteRhenusInput(service, rhenusCaseInput, contractIDRef, history, setNotification);\n\t};\n\n\tReact.useEffect(() => {\n\t\tonRhenusInputScreenMount(\n\t\t\thistory,\n\t\t\tcontractIDRef,\n\t\t\trouteParams,\n\t\t\tsetContract,\n\t\t\tsetIsUserEditing,\n\t\t\tsetRhenusCaseInput,\n\t\t\tsetZone,\n\t\t\tsetMounted\n\t\t);\n\t}, [history, routeParams]);\n\n\tReact.useEffect(() => {\n\t\tif (contract) setRhenusInputCaseInfo(rhenusCaseInput, user, contract, setValue, setShift, setZone);\n\t}, [rhenusCaseInput, setValue, user, contract]);\n\n\tconst onEditPress = () => setIsUserEditing(true);\n\n\tconst onUpdatePress = React.useMemo(\n\t\t() =>\n\t\t\thandleSubmit((data) => {\n\t\t\t\tupdateRhenusCaseInput(\n\t\t\t\t\tdata,\n\t\t\t\t\tservice,\n\t\t\t\t\trhenusCaseInput,\n\t\t\t\t\tcontractIDRef,\n\t\t\t\t\thistory,\n\t\t\t\t\tsetRhenusCaseInput,\n\t\t\t\t\tsetIsUserEditing\n\t\t\t\t);\n\t\t\t}),\n\t\t[handleSubmit, rhenusCaseInput, history]\n\t);\n\tconst onCreatePress = React.useMemo(\n\t\t() =>\n\t\t\thandleSubmit((data) => {\n\t\t\t\tif (user && contract && zone && shift)\n\t\t\t\t\tcreateRhenusCaseInput(\n\t\t\t\t\t\tdata,\n\t\t\t\t\t\thistory,\n\t\t\t\t\t\tcontractIDRef,\n\t\t\t\t\t\tservice,\n\t\t\t\t\t\tuser,\n\t\t\t\t\t\tcontract.automatedUpdates,\n\t\t\t\t\t\tzone.id,\n\t\t\t\t\t\tshift.id || 0\n\t\t\t\t\t);\n\t\t\t}),\n\t\t[history, user, contract, zone, shift, handleSubmit]\n\t);\n\n\tconst onCancelPress = () => {\n\t\tif (rhenusCaseInput && contract) {\n\t\t\tsetRhenusInputCaseInfo(rhenusCaseInput, user, contract, setValue, setShift, setZone);\n\t\t\tsetIsUserEditing(false);\n\t\t} else history.goBack();\n\t};\n\n\tconst onSubmitPress = React.useCallback(() => {\n\t\tif (rhenusCaseInput) {\n\t\t\tif (isUserEditing) {\n\t\t\t\tonUpdatePress();\n\t\t\t} else {\n\t\t\t\tonEditPress();\n\t\t\t}\n\t\t} else {\n\t\t\tonCreatePress();\n\t\t}\n\t}, [rhenusCaseInput, isUserEditing, onUpdatePress, onCreatePress]);\n\n\tif (!contract || !mounted) return ;\n\n\treturn (\n\t\t\n\t);\n}\n\nexport default RhenusCaseContainer;\n","import { Service } from '../../service/service';\nimport { History, LocationState } from 'history';\nimport RhenusCase from '../../service/types/RhenusCase';\nimport { NotificationInterface } from '../../context/notification/notificationReducer';\n\nexport function deleteRhenusInput(\n\tservice: Service,\n\trhenusInputCase: RhenusCase | undefined,\n\tcontractIDRef: React.MutableRefObject,\n\thistory: History,\n\tsetNotification: (notification: NotificationInterface) => void\n) {\n\tif (rhenusInputCase)\n\t\tservice\n\t\t\t.deleteRhenusCaseInputByID(contractIDRef.current, rhenusInputCase.zone, rhenusInputCase.id)\n\t\t\t.then((res) => {\n\t\t\t\tif (res) {\n\t\t\t\t\thistory.goBack();\n\t\t\t\t\tsetNotification({\n\t\t\t\t\t\ttext: 'rhenus_case_screen_delete_notification',\n\t\t\t\t\t\tadditional: rhenusInputCase.partNumber,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(() => {});\n}\n","import { Grid, makeStyles, MenuItem } from '@material-ui/core';\nimport { MaterialUiPickersDate } from '@material-ui/pickers/typings/date';\nimport React from 'react';\nimport { Controller, useFormContext } from 'react-hook-form';\nimport { useTranslation } from 'react-i18next';\nimport Filter from '../components/Filter';\nimport IntervalDatePicker, { IntervalDatePickerDates, IntervalKey } from '../components/IntervalDatePicker';\nimport KeyValueAutoComplete from '../components/KeyValueAutoComplete';\nimport NewLink from '../components/NewLink';\nimport RhenusCaseList from '../components/RhenusCaseList';\nimport StandardTextField from '../components/StandardTextField';\nimport WorkinTimeMaterialExpensess from '../components/WorkingTimeMaterialExpenses';\nimport { colors } from '../consts/colors';\nimport { globalInputStyle, useGlobalStyles } from '../consts/globalStyles';\nimport { rhenusCaseInputFields } from '../containers/RhenusCaseContainer';\nimport { initRhenusCaseInputFilters, RhenusCaseFilterKeys } from '../containers/ZoneOverviewContainer';\nimport { useAuthStateContext } from '../context/auth/useAuth';\nimport { ContractZone } from '../helpers/contractHelper/generalContractHelper';\nimport { checkIfUserStopWriting } from '../helpers/filters';\nimport { filterRhenusCasePartStatusKeyValuePairs } from '../helpers/rhenusInputHelper/generalRhenusHelper';\nimport {\n\tDEFAULT_NO_VALUE,\n\tfilterApprovedStatusKeyValuePairs,\n} from '../helpers/standardInputHelper/generalStandardInputHelper';\nimport { KeyValue } from '../helpers/userHelper/generalUserHelper';\nimport Contract from '../service/types/Contract';\nimport RhenusCase, { RhenusCaseFilterInterface } from '../service/types/RhenusCase';\nimport { UserRole } from '../service/types/User';\nimport BackArrow from '../svgComponents/BackArrow';\nimport HomeButton from '../svgComponents/HomeButton';\n\ninterface Props {\n\tintervalDates: IntervalDatePickerDates;\n\tonKeyboardDateChange: (date: MaterialUiPickersDate, key: IntervalKey) => void;\n\tonDateChange: (date: MaterialUiPickersDate) => void;\n\tonDatesAccept: () => void;\n\tonDatesCancel: () => void;\n\tclearDates: () => void;\n\tcontractData: Contract | undefined;\n\tzone: ContractZone | undefined;\n\trhenusCaseInputs: RhenusCase[];\n\tallAssignedQAIs: KeyValue[];\n\tfilters: RhenusCaseFilterInterface;\n\tupdatedText: string;\n\tonNewErrorCasePress: () => void;\n\tclearAllFilters: () => void;\n\tonFilterChange: (key: RhenusCaseFilterKeys, value: any) => void;\n\tonViewPress: (rhenusCase: RhenusCase) => void;\n\tonApprovePress: (rhenusCase: RhenusCase) => void;\n\tonWorkingTimePress: () => void;\n\tonExpensesPress: () => void;\n}\nfunction ZoneOverviewScreen(props: Props) {\n\tconst [showFilters, setShowFilters] = React.useState(false);\n\tconst globalClasses = useGlobalStyles({ showFilters, description: colors.lightGray });\n\tconst classes = useStyles({});\n\tconst { t } = useTranslation();\n\tconst filterListRef = React.useRef(null);\n\tconst { user } = useAuthStateContext();\n\tconst onFilterPress = () => setShowFilters((prev) => !prev);\n\tconst searchRef = React.useRef({ ...initRhenusCaseInputFilters });\n\tconst { control, errors } = useFormContext();\n\tif (!props.contractData || !props.zone) return
    ;\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{`${props.contractData.contractNumber} - ${props.zone.name}`}\n\t\t\t\t
    \n\t\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tonChange(e);\n\t\t\t\t\t\t\t\t\t\tcheckIfUserStopWriting(e, props.onFilterChange, searchRef, 'productionNumber');\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tonChange(e);\n\t\t\t\t\t\t\t\t\t\tcheckIfUserStopWriting(e, props.onFilterChange, searchRef, 'partNumber');\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tonChange(e);\n\t\t\t\t\t\t\t\t\t\tcheckIfUserStopWriting(e, props.onFilterChange, searchRef, 'colorNumber');\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t{user?.role !== UserRole.QualityAssuranceInspector ? (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t) : null}\n\t\t\t\t\t{user?.role !== UserRole.QualityAssuranceInspector ? (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t) : null}\n\t\t\t\t\t\n\t\t\t\t\t\t props.onFilterChange('typeOfInspection', e.target.value)}>\n\t\t\t\t\t\t\t{[' ', ...props.contractData.typesOfInspection].map((item) => (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t{t(item)}\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t props.onFilterChange('errorType', e.target.value)}>\n\t\t\t\t\t\t\t{[' ', ...props.contractData.errorTypes].map((item) => (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t{t(item)}\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t props.onFilterChange('amountOfParts', e.target.value)}>\n\t\t\t\t\t\t\t{[' ', ...(props.contractData.amountOfParts ? props.contractData.amountOfParts : [])].map(\n\t\t\t\t\t\t\t\t(item) => (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t{t(item)}\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t props.onFilterChange('partStatus', e.target.value)}>\n\t\t\t\t\t\t\t{filterRhenusCasePartStatusKeyValuePairs.map((item) => (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t{t(item.key)}\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tonChange(e);\n\t\t\t\t\t\t\t\t\t\tcheckIfUserStopWriting(e, props.onFilterChange, searchRef, 'storage');\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\n\t\t\t\t\t{user?.role !== UserRole.QualityAssuranceInspector ? (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tif (e) {\n\t\t\t\t\t\t\t\t\t\tprops.onFilterChange('qai', e.value.id.toString());\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tprops.onFilterChange('qai', '');\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\toptions={props.allAssignedQAIs}\n\t\t\t\t\t\t\t\tmultiple={false}\n\t\t\t\t\t\t\t\tvalue={{\n\t\t\t\t\t\t\t\t\tkey: props.allAssignedQAIs.find(\n\t\t\t\t\t\t\t\t\t\t(qai) => qai.value.id.toString() === props.filters.qai\n\t\t\t\t\t\t\t\t\t)?.key\n\t\t\t\t\t\t\t\t\t\t? props.allAssignedQAIs.find(\n\t\t\t\t\t\t\t\t\t\t\t\t(qai) => qai.value.id.toString() === props.filters.qai\n\t\t\t\t\t\t\t\t\t\t )!.key\n\t\t\t\t\t\t\t\t\t\t: '',\n\t\t\t\t\t\t\t\t\tvalue: props.filters.qai,\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t) : null}\n\t\t\t\t\t{user?.role !== UserRole.QualityAssuranceInspector ? (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t props.onFilterChange('shift', e.target.value)}>\n\t\t\t\t\t\t\t\t{[\n\t\t\t\t\t\t\t\t\tDEFAULT_NO_VALUE,\n\t\t\t\t\t\t\t\t\t...props.contractData.shiftTimes.map((shift) => ({\n\t\t\t\t\t\t\t\t\t\tkey: shift.name,\n\t\t\t\t\t\t\t\t\t\tvalue: shift.id,\n\t\t\t\t\t\t\t\t\t})),\n\t\t\t\t\t\t\t\t].map((item) => (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t{t(item.key)}\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t) : null}\n\t\t\t\t\t{user?.role !== UserRole.QualityAssuranceInspector && !props.contractData.automatedUpdates ? (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t props.onFilterChange('approved', e.target.value)}>\n\t\t\t\t\t\t\t\t{filterApprovedStatusKeyValuePairs.map((item) => (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t{t(item.key)}\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t) : null}\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t
    \n\t\t\t\t{`${t(\n\t\t\t\t\t'rhenus_case_zone_overview_screen_last_updated'\n\t\t\t\t)}: ${t(props.updatedText)}`}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t{`${t(\n\t\t\t\t\t'rhenus_case_zone_overview_screen_previously_reported'\n\t\t\t\t)}`}\n\t\t\t
    \n\t\t\t\n\t\t
    \n\t);\n}\n\nconst useStyles = makeStyles(() => ({\n\tsubtitleWrapper: {\n\t\tmarginTop: '8px',\n\t},\n\tlastUpdateWrapper: {\n\t\tmarginTop: '40px',\n\t},\n\trow: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tjustifyContent: 'space-between',\n\t},\n\ttitleWrapper: {\n\t\tmarginBottom: '12px',\n\t},\n\tinput: {\n\t\t...globalInputStyle(),\n\t\twhiteSpace: 'pre',\n\t},\n\tinputWrapper: {\n\t\ttransform: 'translateY(-2px)',\n\t\ttextOverflow: 'ellipsis',\n\t\toverflow: 'hidden',\n\t},\n}));\n\nexport default ZoneOverviewScreen;\n","import React from 'react';\nimport { FormProvider, useForm } from 'react-hook-form';\nimport { useHistory, useParams } from 'react-router-dom';\nimport moment from 'moment';\nimport { useAuthStateContext } from '../context/auth/useAuth';\nimport { ContractZone } from '../helpers/contractHelper/generalContractHelper';\nimport { filterData } from '../helpers/filters';\nimport {\n\tgoToExpenses,\n\tgoToHome,\n\tgoToRhenusCase,\n\tgoToWorkingTime,\n\tZoneOvervieNavigationInterface,\n} from '../helpers/navigationHelper';\nimport { textsForRhenusAutomaticalUpdate } from '../helpers/rhenusInputHelper/generalRhenusHelper';\nimport { KeyValue } from '../helpers/userHelper/generalUserHelper';\nimport { getUserOptionsKeyValuePairs } from '../helpers/userHelper/readUserHelper';\nimport ZoneOverviewScreen from '../screens/ZoneOverviewScreen';\nimport service from '../service/service';\nimport RhenusCase, { RhenusCaseFilterInterface } from '../service/types/RhenusCase';\nimport { UserRole } from '../service/types/User';\nimport { rhenusCaseInputFields } from './RhenusCaseContainer';\nimport { findCurrentShift } from '../helpers/standardInputHelper/createStandardInputHelper';\nimport Contract from '../service/types/Contract';\nimport { RouteParams } from '../router/Routes';\nimport { unstable_batchedUpdates } from 'react-dom';\nimport { IntervalDatePickerDates, IntervalKey } from '../components/IntervalDatePicker';\nimport { MaterialUiPickersDate } from '@material-ui/pickers/typings/date';\nimport { useTranslation } from 'react-i18next';\n\nexport const initRhenusCaseInputFilters: RhenusCaseFilterInterface = {\n\tpartNumber: '',\n\tpartStatus: '',\n\tproductionNumber: '',\n\tqai: '',\n\tstorage: '',\n\tapproved: '',\n\ttypeOfInspection: '',\n\terrorType: '',\n\ttoDate: moment(),\n\tfromDate: moment(),\n\tshift: '',\n\tcolorNumber: '',\n\tamountOfParts: '',\n};\n\nconst data = Object.freeze({ ...initRhenusCaseInputFilters });\nexport type RhenusCaseFilterKeys = keyof typeof data;\n\nfunction ZoneOverviewContainer() {\n\tconst methods = useForm();\n\tconst [rhenusCaseInputs, setRhenusCaseInputs] = React.useState([]);\n\tconst [contractData, setContractData] = React.useState();\n\tconst [zone, setZone] = React.useState();\n\tconst [allAssignedQAIs, setAllAssignedQAIs] = React.useState([]);\n\tconst { user } = useAuthStateContext();\n\tconst [updatedText, setUpdatedText] = React.useState('');\n\tconst [filters, setFilters] = React.useState(initRhenusCaseInputFilters);\n\tconst allRhenusCaseInputs = React.useRef([]);\n\tconst history = useHistory();\n\tconst timer = React.useRef(setTimeout(() => {}, 0));\n\tconst fetching = React.useRef(false);\n\tconst fetchingUser = React.useRef(false);\n\tconst routeParams: RouteParams = useParams();\n\tconst [intervalDates, setIntervalDates] = React.useState({\n\t\tfromDate: null,\n\t\ttoDate: null,\n\t});\n\tconst { t } = useTranslation();\n\n\tReact.useEffect(() => {\n\t\tconst historyState = history.location.state as undefined | ZoneOvervieNavigationInterface;\n\t\tif (historyState && historyState.params) {\n\t\t\tsetContractData(Contract.fromJSON(JSON.parse(historyState.params)));\n\t\t\tsetZone(historyState.zone);\n\t\t} else if (routeParams.contract_id && routeParams.zone_id) {\n\t\t\tservice\n\t\t\t\t.getContract(Number(routeParams.contract_id))\n\t\t\t\t.then((res) => {\n\t\t\t\t\tif (res) {\n\t\t\t\t\t\tsetContractData(res);\n\t\t\t\t\t\tif (routeParams.zone_id && res.zones) {\n\t\t\t\t\t\t\tconst zone = res.zones.find((zone) => zone.id === Number(routeParams.zone_id));\n\t\t\t\t\t\t\tif (zone) setZone(zone);\n\t\t\t\t\t\t\telse goToHome(history);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tgoToHome(history);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.catch((e) => {\n\t\t\t\t\tgoToHome(history);\n\t\t\t\t});\n\t\t} else {\n\t\t\tgoToHome(history);\n\t\t}\n\t}, [history, routeParams]);\n\n\tconst onFilterChange = (key: RhenusCaseFilterKeys, value: any) => {\n\t\tconst tempValue = value === ' ' ? '' : value;\n\t\tsetFilters((prev) => ({ ...prev, [key]: tempValue }));\n\t};\n\n\tconst clearAllFilters = () => {\n\t\tObject.values(rhenusCaseInputFields).forEach((value) => methods.setValue(value, ''));\n\t\tsetFilters(initRhenusCaseInputFilters);\n\t};\n\n\tReact.useEffect(() => {\n\t\tsetRhenusCaseInputs(filterData(filters, allRhenusCaseInputs.current));\n\t}, [filters]);\n\n\tReact.useEffect(() => {\n\t\tif (contractData && user?.role !== UserRole.QualityAssuranceInspector && !fetchingUser.current) {\n\t\t\tfetchingUser.current = true;\n\t\t\tgetUserOptionsKeyValuePairs(service.getAllUsers(), () => {})\n\t\t\t\t.then((qais) => {\n\t\t\t\t\tsetAllAssignedQAIs(qais.filter((qai) => qai.value.role !== UserRole.Customer));\n\t\t\t\t})\n\t\t\t\t.catch(() => {});\n\t\t\tsetFilters({\n\t\t\t\t...initRhenusCaseInputFilters,\n\t\t\t\tshift: findCurrentShift(contractData.shiftTimes).id,\n\t\t\t});\n\t\t}\n\t}, [contractData, user]);\n\n\tconst getDataAutomaticly = React.useCallback((contractID: number, zoneID: number, cycleNumber: number) => {\n\t\treturn setTimeout(() => {\n\t\t\tsetUpdatedText(textsForRhenusAutomaticalUpdate[cycleNumber === 0 ? 5 : cycleNumber]);\n\t\t\tif (cycleNumber === 0) {\n\t\t\t\tservice\n\t\t\t\t\t.getZoneCaseInputs(contractID, zoneID)\n\t\t\t\t\t.then((res) => {\n\t\t\t\t\t\tunstable_batchedUpdates(() => {\n\t\t\t\t\t\t\tsetRhenusCaseInputs(res);\n\t\t\t\t\t\t\tallRhenusCaseInputs.current = res;\n\t\t\t\t\t\t\tsetUpdatedText(textsForRhenusAutomaticalUpdate[0]);\n\t\t\t\t\t\t\ttimer.current = getDataAutomaticly(contractID, zoneID, 1);\n\t\t\t\t\t\t});\n\t\t\t\t\t})\n\t\t\t\t\t.catch((e) => {\n\t\t\t\t\t\tfetching.current = false;\n\t\t\t\t\t});\n\t\t\t} else if (cycleNumber === 4) {\n\t\t\t\ttimer.current = getDataAutomaticly(contractID, zoneID, 0);\n\t\t\t} else {\n\t\t\t\ttimer.current = getDataAutomaticly(contractID, zoneID, cycleNumber + 1);\n\t\t\t}\n\t\t}, 60000);\n\t}, []);\n\n\tReact.useEffect(() => {\n\t\tif (zone && contractData) {\n\t\t\tservice\n\t\t\t\t.getZoneCaseInputs(contractData.id, zone.id)\n\t\t\t\t.then((res) => {\n\t\t\t\t\tsetRhenusCaseInputs(res);\n\t\t\t\t\tallRhenusCaseInputs.current = res;\n\t\t\t\t\tsetFilters({\n\t\t\t\t\t\t...initRhenusCaseInputFilters,\n\t\t\t\t\t\tshift: findCurrentShift(contractData.shiftTimes).id,\n\t\t\t\t\t});\n\t\t\t\t\tsetUpdatedText(textsForRhenusAutomaticalUpdate[0]);\n\t\t\t\t})\n\t\t\t\t.catch(() => {});\n\t\t}\n\t}, [zone, contractData]);\n\n\tReact.useEffect(() => {\n\t\tif (zone && contractData) {\n\t\t\tif (user?.role !== UserRole.QualityAssuranceInspector && !fetching.current) {\n\t\t\t\tfetching.current = true;\n\t\t\t\ttimer.current = getDataAutomaticly(contractData.id, zone.id, 1);\n\t\t\t}\n\t\t}\n\t\treturn () => {\n\t\t\tclearTimeout(timer.current);\n\t\t};\n\t}, [zone, contractData, user, getDataAutomaticly]);\n\n\tconst onViewPress = (rhenusCase: RhenusCase) => {\n\t\tif (zone && contractData)\n\t\t\tgoToRhenusCase(\n\t\t\t\thistory,\n\t\t\t\t{\n\t\t\t\t\tcontract: contractData,\n\t\t\t\t\tdata: rhenusCase,\n\t\t\t\t},\n\t\t\t\tzone\n\t\t\t);\n\t};\n\n\tconst onWorkingTimePress = () => {\n\t\tif (contractData && zone) {\n\t\t\tgoToWorkingTime(history, {\n\t\t\t\tcontractID: contractData.id,\n\t\t\t\tcontractNumber: contractData.contractNumber,\n\t\t\t});\n\t\t}\n\t};\n\n\tconst onExpensesPress = () => {\n\t\tif (contractData && zone) {\n\t\t\tgoToExpenses(history, {\n\t\t\t\tcontractID: contractData.id,\n\t\t\t\tcontractNumber: contractData.contractNumber,\n\t\t\t});\n\t\t}\n\t};\n\n\tconst approveData = (rhenusCase: RhenusCase) => {\n\t\tif (contractData && zone) {\n\t\t\tservice\n\t\t\t\t.aprroveInput(contractData.id, rhenusCase.id, zone.id)\n\t\t\t\t.then(() => {\n\t\t\t\t\tclearTimeout(timer.current);\n\t\t\t\t\tservice\n\t\t\t\t\t\t.getZoneCaseInputs(contractData.id, zone.id)\n\t\t\t\t\t\t.then((res) => {\n\t\t\t\t\t\t\tunstable_batchedUpdates(() => {\n\t\t\t\t\t\t\t\tsetRhenusCaseInputs(res);\n\t\t\t\t\t\t\t\tallRhenusCaseInputs.current = res;\n\t\t\t\t\t\t\t\tsetUpdatedText(textsForRhenusAutomaticalUpdate[0]);\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.catch(() => {});\n\t\t\t\t\ttimer.current = getDataAutomaticly(contractData.id, zone.id, 1);\n\t\t\t\t})\n\t\t\t\t.catch(() => {});\n\t\t}\n\t};\n\n\tconst onNewErrorCasePress = () => {\n\t\tif (zone && contractData)\n\t\t\tgoToRhenusCase(\n\t\t\t\thistory,\n\t\t\t\t{\n\t\t\t\t\tcontract: contractData,\n\t\t\t\t},\n\t\t\t\tzone\n\t\t\t);\n\t};\n\n\tconst onDateChange = React.useCallback(\n\t\t(date: MaterialUiPickersDate) => {\n\t\t\tconst offset = moment(date).utcOffset();\n\t\t\tlet dateMoment = moment(date).add(offset);\n\n\t\t\tif (!intervalDates.fromDate) {\n\t\t\t\tsetIntervalDates({\n\t\t\t\t\tfromDate: dateMoment,\n\t\t\t\t\ttoDate: null,\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tintervalDates.fromDate &&\n\t\t\t\t!intervalDates.toDate &&\n\t\t\t\tmoment(dateMoment).isSameOrAfter(intervalDates.fromDate)\n\t\t\t) {\n\t\t\t\tsetIntervalDates((prev) => ({\n\t\t\t\t\t...prev,\n\t\t\t\t\ttoDate: dateMoment,\n\t\t\t\t}));\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsetIntervalDates({\n\t\t\t\tfromDate: dateMoment,\n\t\t\t\ttoDate: null,\n\t\t\t});\n\n\t\t\treturn;\n\t\t},\n\t\t[intervalDates]\n\t);\n\n\tconst onKeyboardDateChange = (date: MaterialUiPickersDate, key: IntervalKey) => {\n\t\tconst dateMoment = moment(date).utcOffset(0, true);\n\t\tmethods.clearErrors(['fromDate', 'toDate']);\n\t\tif (key === 'start') {\n\t\t\tif (moment(dateMoment).isSameOrBefore(intervalDates.toDate) || !intervalDates.toDate) {\n\t\t\t\tsetIntervalDates((prev) => ({\n\t\t\t\t\t...prev,\n\t\t\t\t\tfromDate: dateMoment,\n\t\t\t\t}));\n\t\t\t\tsetFilters((prev) => ({\n\t\t\t\t\t...prev,\n\t\t\t\t\tfromDate: dateMoment,\n\t\t\t\t}));\n\t\t\t} else {\n\t\t\t\tmethods.setError('fromDate', { message: t('start_interval_error') });\n\t\t\t}\n\t\t} else if (key === 'end') {\n\t\t\tif (moment(dateMoment).isSameOrAfter(intervalDates.fromDate)) {\n\t\t\t\tsetIntervalDates((prev) => ({\n\t\t\t\t\t...prev,\n\t\t\t\t\ttoDate: dateMoment,\n\t\t\t\t}));\n\t\t\t\tsetFilters((prev) => ({\n\t\t\t\t\t...prev,\n\t\t\t\t\ttoDate: dateMoment,\n\t\t\t\t}));\n\t\t\t} else {\n\t\t\t\tmethods.setError('toDate', { message: t('end_interval_error') });\n\t\t\t}\n\t\t}\n\t};\n\n\tconst onDatesAccept = () => {\n\t\tsetFilters((prev) => ({\n\t\t\t...prev,\n\t\t\tfromDate: intervalDates.fromDate,\n\t\t\ttoDate: intervalDates.toDate,\n\t\t}));\n\t};\n\n\tconst onDatesCancel = () => {\n\t\tconst prevDates: IntervalDatePickerDates = {\n\t\t\tfromDate: filters.fromDate,\n\t\t\ttoDate: filters.toDate,\n\t\t};\n\t\tsetIntervalDates(prevDates);\n\t};\n\n\tconst clearDates = () => {\n\t\tsetFilters((prev) => ({\n\t\t\t...prev,\n\t\t\tfromDate: null,\n\t\t\ttoDate: null,\n\t\t}));\n\n\t\tsetIntervalDates({\n\t\t\tfromDate: null,\n\t\t\ttoDate: null,\n\t\t});\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\n\t);\n}\n\nexport default ZoneOverviewContainer;\n","import React from 'react';\nimport { Grid, makeStyles } from '@material-ui/core';\n\nimport BackArrow from '../svgComponents/BackArrow';\nimport HomeButton from '../svgComponents/HomeButton';\nimport { useGlobalStyles } from '../consts/globalStyles';\nimport { useTranslation } from 'react-i18next';\nimport User from '../service/types/User';\nimport StandardTextField from '../components/StandardTextField';\nimport { Control, Controller } from 'react-hook-form';\nimport { rules } from '../consts/rules';\nimport { contactPersonFields } from '../containers/ContactPersonContainer';\nimport StandardDialog, { StandardDialogInterface } from '../components/StandardDialog';\nimport StandardCRUDButtons from '../components/StandardCRUDButtons';\nimport { MAX_PASSWORD_LENGTH, MIN_PASSWORD_LENGTH, standardPasswordReset } from '../consts/login';\n\nconst MIN_PHONE_NUMBER_LENGTH = 4;\n\ninterface Props {\n\tcontactPerson: User | undefined;\n\tcontrol: Control>;\n\terrors: Record;\n\tisUserEditing: boolean;\n\tdeleteDialogRef: React.MutableRefObject;\n\tonSubmitPress: () => void;\n\tonCancelPress: () => void;\n\tonDeletePress: () => void;\n\tonCancelDeleteDialogPress: () => void;\n\tonDeleteContactPersonDialogPress: () => void;\n}\nfunction ContactPersonScreen(props: Props) {\n\tconst classes = useStyles({});\n\tconst globalClasses = useGlobalStyles();\n\tconst { t } = useTranslation();\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t{props.contactPerson\n\t\t\t\t\t\t? `${props.contactPerson.firstName} ${props.contactPerson.lastName}`\n\t\t\t\t\t\t: t('contact_person_screen_title')}\n\t\t\t\t\n\t\t\t
    \n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\tif (!val) return true;\n\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\tif (val.length < MIN_PASSWORD_LENGTH) {\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn rules(t).minLength(MIN_PASSWORD_LENGTH).message;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tif (val.length > MAX_PASSWORD_LENGTH) {\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn rules(t).minLength(MAX_PASSWORD_LENGTH).message;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t: { ...standardPasswordReset.rules(t).password }\n\t\t\t\t\t\t}\n\t\t\t\t\t\trender={({ onChange, value }) => (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\n\t\t\t
    \n\t\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t
    \n\t);\n}\n\nconst useStyles = makeStyles(() => ({\n\ttitleWrapper: {\n\t\tmarginBottom: '24px',\n\t},\n\ttextFieldWrapper: {\n\t\tmarginBottom: '32px',\n\t},\n\trowWrapper: {\n\t\tdisplay: 'flex',\n\t\tmargin: '48px 0px',\n\t\talignItems: 'center',\n\t},\n}));\n\nexport default ContactPersonScreen;\n","import { contactPersonFields } from '../../containers/ContactPersonContainer';\nimport User from '../../service/types/User';\nimport { ContactPersonNavigationInterface, goToCustomers, goToHome } from '../navigationHelper';\nimport { LocationState, History } from 'history';\nimport { Service } from '../../service/service';\nimport { RouteParams } from '../../router/Routes';\n\nexport function setContactPersonInfo(contactPerson: User, setValue: (field: string, value: any) => void) {\n\tsetValue(contactPersonFields.firstName, contactPerson.firstName);\n\tsetValue(contactPersonFields.lastName, contactPerson.lastName);\n\tsetValue(contactPersonFields.phonenumber, contactPerson.phonenumber);\n\tsetValue(contactPersonFields.email, contactPerson.email);\n}\n\nexport function onContactScreenMount(\n\thistory: History,\n\tservice: Service,\n\trouteParams: RouteParams,\n\tsetContactPerson: (contactPerson: User | undefined) => void,\n\tsetIsUserEditing: (val: boolean) => void,\n\tsetCustomerID: (val: number) => void,\n\tsetMounted: (val: boolean) => void\n) {\n\tconst historyState = history.location.state as undefined | ContactPersonNavigationInterface;\n\tif (historyState && historyState.contactPerson && routeParams.customer_id) {\n\t\tsetCustomerID(Number(routeParams.customer_id));\n\t\tsetContactPerson(historyState.contactPerson);\n\t\tsetMounted(true);\n\t} else if (historyState && historyState.contactPersonID) {\n\t\tservice\n\t\t\t.getCustomerFromUser(historyState.contactPersonID)\n\t\t\t.then((res) => {\n\t\t\t\tif (res) {\n\t\t\t\t\tsetMounted(true);\n\t\t\t\t\tsetCustomerID(res.id);\n\t\t\t\t\tsetContactPerson(res.users.find((user) => user.id === historyState.contactPersonID));\n\t\t\t\t\thistory.replace(history.location.pathname.replace('/0/', `/${res.id}/`));\n\t\t\t\t} else {\n\t\t\t\t\thistory.goBack();\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch((e) => {\n\t\t\t\thistory.goBack();\n\t\t\t});\n\t} else if (routeParams.customer_id && routeParams.user_id) {\n\t\tservice\n\t\t\t.getUserByID(Number(routeParams.user_id))\n\t\t\t.then((res) => {\n\t\t\t\tif (res) {\n\t\t\t\t\tsetMounted(true);\n\t\t\t\t\tsetCustomerID(Number(routeParams.customer_id));\n\t\t\t\t\tsetContactPerson(res);\n\t\t\t\t} else {\n\t\t\t\t\thistory.goBack();\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch((e) => {\n\t\t\t\tgoToHome(history);\n\t\t\t});\n\t} else if (routeParams.customer_id) {\n\t\tsetIsUserEditing(true);\n\t\tsetContactPerson(undefined);\n\t\tsetCustomerID(Number(routeParams.customer_id));\n\t\tsetMounted(true);\n\t} else {\n\t\tgoToCustomers(history);\n\t}\n}\n","import { Service } from '../../service/service';\nimport { OriginOfEmployee, UserRole } from '../../service/types/User';\nimport { History, LocationState } from 'history';\nimport { contactPersonFields } from '../../containers/ContactPersonContainer';\nimport { goToCustomerWithID } from '../navigationHelper';\n\nexport function createContactPerson(\n\tdata: any,\n\tservice: Service,\n\tcustomerID: number,\n\thistory: History,\n\tsetError: (field: string, val: any) => void\n) {\n\tservice\n\t\t.createUserForCustomer(customerID, {\n\t\t\temail: data[contactPersonFields.email].trim(),\n\t\t\torigin: OriginOfEmployee.External,\n\t\t\trole: UserRole.Customer,\n\t\t\tfirst_name: data[contactPersonFields.firstName].trim(),\n\t\t\tlast_name: data[contactPersonFields.lastName].trim(),\n\t\t\tphonenumber: data[contactPersonFields.phonenumber].trim(),\n\t\t\tpassword: data[contactPersonFields.password],\n\t\t})\n\t\t.then(() => {\n\t\t\tgoToCustomerWithID(history, customerID);\n\t\t})\n\t\t.catch((e) => {\n\t\t\ttry {\n\t\t\t\tconst error = JSON.parse(e.message);\n\t\t\t\tsetContactPersonError(error, setError);\n\t\t\t} catch (e) {}\n\t\t});\n}\n\nfunction setContactPersonError(error: any, setError: (name: string, value: { message: string }) => void) {\n\tif (error.error.code === -32000) {\n\t\tsetError(contactPersonFields.email, { message: 'contact_person_screen_email_in_use' });\n\t}\n}\n","import { Service } from '../../service/service';\nimport User from '../../service/types/User';\nimport { contactPersonFields } from '../../containers/ContactPersonContainer';\nimport { History, LocationState } from 'history';\nimport { replaceContactPersonHistoryData } from '../navigationHelper';\n\nexport function updateContactPerson(\n\tdata: any,\n\tcontactPerson: User | undefined,\n\tservice: Service,\n\thistory: History,\n\tsetContactPerson: (contactPerson: User | undefined) => void,\n\tsetIsUserEditing: (val: boolean) => void\n) {\n\tif (contactPerson) {\n\t\tconst updatedContactPerson = getUpdatedContactPerson(data, contactPerson);\n\n\t\tservice\n\t\t\t.updateUserByID(contactPerson.id, {\n\t\t\t\t...User.toJSON(updatedContactPerson),\n\t\t\t\tpassword: data.password,\n\t\t\t\ttlGroupsIds: null,\n\t\t\t})\n\t\t\t.then((res) => {\n\t\t\t\tif (res) {\n\t\t\t\t\tsetIsUserEditing(false);\n\t\t\t\t\tsetContactPerson(updatedContactPerson);\n\t\t\t\t\treplaceContactPersonHistoryData(history, updatedContactPerson);\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(() => {});\n\t}\n}\n\nfunction getUpdatedContactPerson(data: any, contactPerson: User) {\n\treturn new User(\n\t\tcontactPerson.id,\n\t\tdata[contactPersonFields.email],\n\t\tcontactPerson.role,\n\t\tdata[contactPersonFields.firstName],\n\t\tdata[contactPersonFields.lastName],\n\t\tcontactPerson.originOfEmployee,\n\t\tundefined,\n\t\tdata[contactPersonFields.phonenumber]\n\t);\n}\n","import React from 'react';\nimport { useForm } from 'react-hook-form';\nimport { useHistory, useParams } from 'react-router-dom';\n\nimport { StandardDialogInterface } from '../components/StandardDialog';\nimport ContactPersonScreen from '../screens/ContactPersonScreen';\nimport service from '../service/service';\nimport User from '../service/types/User';\nimport { onContactScreenMount, setContactPersonInfo } from '../helpers/contactPersonHelper/readContactHelper';\nimport { deleteContactPerson } from '../helpers/contactPersonHelper/deleteContactHelper';\nimport { createContactPerson } from '../helpers/contactPersonHelper/createContactHelper';\nimport { updateContactPerson } from '../helpers/contactPersonHelper/updateContactHelper';\nimport { useNotificationActionContext } from '../context/notification/useNotification';\nimport Spinner from '../components/Spinner';\n\nexport const contactPersonFields = {\n\tfirstName: 'firstName',\n\tlastName: 'lastName',\n\tphonenumber: 'phonenumber',\n\temail: 'email',\n\tpassword: 'password',\n};\n\nfunction ContactPersonContainer() {\n\tconst { control, handleSubmit, errors, setValue, setError } = useForm();\n\tconst { setNotification } = useNotificationActionContext();\n\tconst [isUserEditing, setIsUserEditing] = React.useState(false);\n\tconst [mounted, setMounted] = React.useState(false);\n\tconst [contactPerson, setContactPerson] = React.useState(undefined);\n\tconst [customerID, setCustomerID] = React.useState();\n\tconst deleteDialogRef = React.useRef(null);\n\tconst history = useHistory();\n\tconst routeParams = useParams();\n\n\tReact.useEffect(() => {\n\t\tonContactScreenMount(\n\t\t\thistory,\n\t\t\tservice,\n\t\t\trouteParams,\n\t\t\tsetContactPerson,\n\t\t\tsetIsUserEditing,\n\t\t\tsetCustomerID,\n\t\t\tsetMounted\n\t\t);\n\t}, [history, routeParams]);\n\n\tReact.useEffect(() => {\n\t\tif (contactPerson) {\n\t\t\tsetContactPersonInfo(contactPerson, setValue);\n\t\t}\n\t}, [contactPerson, setValue]);\n\n\tconst onDeletePress = () => deleteDialogRef.current?.setDialogState(true);\n\n\tconst onCancelDeleteDialogPress = () => deleteDialogRef.current?.setDialogState(false);\n\n\tconst onDeleteContactPersonDialogPress = () =>\n\t\tdeleteContactPerson(service, contactPerson, history, setNotification);\n\n\tconst onEditPress = () => setIsUserEditing(true);\n\n\tconst onCreatePress = React.useMemo(\n\t\t() =>\n\t\t\thandleSubmit((data) => {\n\t\t\t\tif (customerID) createContactPerson(data, service, customerID, history, setError);\n\t\t\t}),\n\t\t[handleSubmit, setError, customerID, history]\n\t);\n\n\tconst onUpdatePress = React.useMemo(\n\t\t() =>\n\t\t\thandleSubmit((data) => {\n\t\t\t\tupdateContactPerson(data, contactPerson, service, history, setContactPerson, setIsUserEditing);\n\t\t\t}),\n\t\t[contactPerson, history, handleSubmit]\n\t);\n\n\tconst onCancelPress = () => {\n\t\tif (contactPerson) {\n\t\t\tsetIsUserEditing(false);\n\t\t\tsetContactPersonInfo(contactPerson, setValue);\n\t\t} else history.goBack();\n\t};\n\n\tconst onSubmitPress = () => {\n\t\tif (contactPerson) {\n\t\t\tif (isUserEditing) {\n\t\t\t\tonUpdatePress();\n\t\t\t} else {\n\t\t\t\tonEditPress();\n\t\t\t}\n\t\t} else {\n\t\t\tonCreatePress();\n\t\t}\n\t};\n\n\tif (!mounted) return ;\n\n\treturn (\n\t\t\n\t);\n}\n\nexport default ContactPersonContainer;\n","import { Service } from '../../service/service';\nimport User from '../../service/types/User';\nimport { History, LocationState } from 'history';\nimport { NotificationInterface } from '../../context/notification/notificationReducer';\n\nexport function deleteContactPerson(\n\tservice: Service,\n\tcontactPerson: User | undefined,\n\thistory: History,\n\tsetNotification: (notification: NotificationInterface) => void\n) {\n\tif (contactPerson)\n\t\tservice\n\t\t\t.deleteUserByID(contactPerson.id)\n\t\t\t.then((res) => {\n\t\t\t\tif (res) {\n\t\t\t\t\thistory.goBack();\n\t\t\t\t\tsetNotification({\n\t\t\t\t\t\ttext: 'contact_person_screen_delete_notification',\n\t\t\t\t\t\tadditional: `${contactPerson.firstName} ${contactPerson.lastName}`,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(() => {});\n}\n","import service from '../../service/service';\nimport WorkingTime from '../../service/types/WorkingTime';\nimport moment from 'moment';\nimport { initTimeValue, addWorkingTimeFields } from './generalWorkingTimeHelper';\nimport User from '../../service/types/User';\nimport { KeyValue } from '../userHelper/generalUserHelper';\nimport BreakTime, { RecordTimeType } from '../../service/types/BreakTime';\n\nexport async function addWorkTime(\n\tcontractID: number,\n\tuser: User,\n\tqais: KeyValue[],\n\tdata: any,\n\tmanualWorkTime: number,\n\tsetValue: (field: string, value: any) => void\n) {\n\tif (data[addWorkingTimeFields.type] === RecordTimeType.Working) {\n\t\tconst newRecord = createWorkingTimeWithoutID(user.id, qais, data, manualWorkTime);\n\t\tconst res = await service.addManualWorkTime(contractID, newRecord).catch(() => {});\n\t\tif (res) {\n\t\t\tresetAddWorkingTimeFields(setValue);\n\t\t\treturn WorkingTime.createWorkingTimeWithID(res, newRecord);\n\t\t}\n\t}\n\tconst newRecord = createBreakTimeWithoutID(user.id, qais, data);\n\tconst res = await service.addManualBreakTime(contractID, newRecord).catch(() => {});\n\tif (res) {\n\t\tresetAddWorkingTimeFields(setValue);\n\t\treturn BreakTime.createWorkingTimeWithID(res, newRecord);\n\t}\n}\n\nfunction createWorkingTimeWithoutID(userID: number, qais: KeyValue[], data: any, manualWorkTime: number) {\n\treturn new WorkingTime(\n\t\t0,\n\t\tuserID,\n\t\tqais.find((qai) => qai.key === data[addWorkingTimeFields.qai].key)!.value.id,\n\t\tdata[addWorkingTimeFields.date] ? moment(data[addWorkingTimeFields.date]) : moment(),\n\t\tsetDateWithTime(data[addWorkingTimeFields.from], data[addWorkingTimeFields.date]),\n\t\tsetEndDateWithTime(\n\t\t\tdata[addWorkingTimeFields.from],\n\t\t\tdata[addWorkingTimeFields.to],\n\t\t\tdata[addWorkingTimeFields.date]\n\t\t),\n\t\tmanualWorkTime,\n\t\t(data[addWorkingTimeFields.profession] as KeyValue).value,\n\t\tfalse\n\t);\n}\n\nfunction resetAddWorkingTimeFields(setValue: (fields: string, value: any) => void) {\n\tsetValue(addWorkingTimeFields.from, initTimeValue);\n\tsetValue(addWorkingTimeFields.to, initTimeValue);\n\tsetValue(addWorkingTimeFields.date, moment());\n\tsetValue(addWorkingTimeFields.qai, '');\n\tsetValue(addWorkingTimeFields.duration, initTimeValue);\n}\n\nexport function setDateWithTime(time: string, date?: string) {\n\tconst newDate = moment(date);\n\tconst newTime = moment(time);\n\treturn newDate.set('minutes', newTime.get('minutes')).set('hour', newTime.get('hour'));\n}\n\nexport function setEndDateWithTime(startTime: string, endTime: string, date?: string) {\n\tif (startTime < endTime) return setDateWithTime(endTime, date);\n\telse {\n\t\tconst newDate = moment(date).add(1, 'days');\n\t\tconst newTime = moment(endTime);\n\t\treturn newDate.set('minutes', newTime.get('minutes')).set('hour', newTime.get('hour'));\n\t}\n}\n\nconst HOURS_24 = 86400;\n\nfunction createBreakTimeWithoutID(userID: number, qais: KeyValue[], data: any) {\n\treturn new BreakTime(\n\t\t0,\n\t\tuserID,\n\t\tqais.find((qai) => qai.key === data[addWorkingTimeFields.qai].key)!.value.id,\n\t\tdata[addWorkingTimeFields.date] ? moment(data[addWorkingTimeFields.date]) : moment(),\n\t\t(Math.round(\n\t\t\tmoment(data[addWorkingTimeFields.date])\n\t\t\t\t.set('s', 0)\n\t\t\t\t.set('h', moment(data[addWorkingTimeFields.duration]).get('h'))\n\t\t\t\t.set('m', moment(data[addWorkingTimeFields.duration]).get('m'))\n\t\t\t\t.diff(moment(data[addWorkingTimeFields.date]).set('s', 0).set('h', 0).set('m', 0)) /\n\t\t\t\t1000 /\n\t\t\t\t60\n\t\t) *\n\t\t\t60) %\n\t\t\tHOURS_24,\n\t\tdata[addWorkingTimeFields.type]\n\t);\n}\n","import { Service } from '../../service/service';\nimport WorkingTime from '../../service/types/WorkingTime';\nimport { StandardDialogInterface } from '../../components/StandardDialog';\nimport React from 'react';\nimport BreakTime, { RecordTimeType } from '../../service/types/BreakTime';\n\nexport function deleteWorkingTime(\n\tservice: Service,\n\tcontractID: number,\n\tdeleteRecord: WorkingTime | BreakTime,\n\trecords: (WorkingTime | BreakTime)[],\n\tdialogRef: React.MutableRefObject,\n\tallRecordsRef: React.MutableRefObject<(WorkingTime | BreakTime)[]>,\n\tsetRecords: (records: (WorkingTime | BreakTime)[]) => void\n) {\n\tgetDeleteService(deleteRecord, contractID, service)\n\t\t.then((res) => {\n\t\t\tif (res) {\n\t\t\t\tconst filtereRecords = records.filter(\n\t\t\t\t\t(item) => !(item.id === deleteRecord.id && item.type === deleteRecord.type)\n\t\t\t\t);\n\t\t\t\tsetRecords(filtereRecords);\n\t\t\t\tallRecordsRef.current = filtereRecords;\n\t\t\t\tdialogRef.current?.setDialogState(false);\n\t\t\t}\n\t\t})\n\t\t.catch(() => {});\n}\n\nfunction getDeleteService(deleteRecord: WorkingTime | BreakTime, contractID: number, service: Service) {\n\tif (deleteRecord instanceof WorkingTime) return service.deleteRecordByID(contractID, deleteRecord.id);\n\tif (deleteRecord.type === RecordTimeType.Break) return service.deleteBreakByID(contractID, deleteRecord.id);\n\treturn service.deleteWaitingByID(contractID, deleteRecord.id);\n}\n","import React from 'react';\nimport { makeStyles, MenuItem, Theme } from '@material-ui/core';\nimport moment from 'moment';\nimport { Control, Controller } from 'react-hook-form';\nimport { useWindowSize } from '@react-hook/window-size';\n\nimport KeyValueAutoComplete from './KeyValueAutoComplete';\nimport StandardDatePicker from './StandardDatePicker';\nimport { rules } from '../consts/rules';\nimport {\n\tinitTimeValue,\n\ttimeFormat,\n\taddWorkingTimeFields,\n\tcreateRecordTimeKeyValuePairs,\n} from '../helpers/workingTimeHelper/generalWorkingTimeHelper';\nimport StandardTimePicker from './StandardTimePicker';\nimport ErrorIcon from '../svgComponents/ErrorIcon';\nimport Button from './Button';\nimport { globalInputStyle, useGlobalStyles } from '../consts/globalStyles';\nimport { KeyValue } from '../helpers/userHelper/generalUserHelper';\nimport { useTranslation } from 'react-i18next';\nimport { colors } from '../consts/colors';\nimport { useAuthStateContext } from '../context/auth/useAuth';\nimport { UserRole } from '../service/types/User';\nimport StandardTextField from './StandardTextField';\nimport { RecordTimeType } from '../service/types/BreakTime';\nimport { priceListOptions } from '../consts/priceListOptions';\n\ninterface Props {\n\tqais: KeyValue[];\n\tcontrol: Control>;\n\terrors: Record;\n\tmanualWorkTime: string;\n\tfromTime: string;\n\tonAddManualWorkTime: () => void;\n\twatch: (field: string) => any;\n}\n\nfunction AddWorkingTime(props: Props) {\n\tconst classes = useStyles({});\n\tconst globalClasses = useGlobalStyles();\n\tconst { user } = useAuthStateContext();\n\tconst [windowWidth] = useWindowSize();\n\tconst { t } = useTranslation();\n\tconst type = props.watch(addWorkingTimeFields.type);\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t (\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tonChange(e.target.value);\n\t\t\t\t\t\t\t}}>\n\t\t\t\t\t\t\t{createRecordTimeKeyValuePairs.map((item) => (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t{t(item.key)}\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t/>\n\n\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\t\tif (val && val.value) {\n\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn rules(t).required.message;\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t}}\n\t\t\t\t\t\trender={({ onChange, value }) => (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\n\t\t\t\t
    \n\t\t\t\t\t{type === RecordTimeType.Working ? (\n\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t ({\n\t\t\t\t\t\t\t\t\t\tkey: option.label,\n\t\t\t\t\t\t\t\t\t\tvalue: option.value,\n\t\t\t\t\t\t\t\t\t}))}\n\t\t\t\t\t\t\t\t\tcustomGetOptionLabel={(option) => t(option.key)}\n\t\t\t\t\t\t\t\t\twithoutArrow={true}\n\t\t\t\t\t\t\t\t\twithoutClose={true}\n\t\t\t\t\t\t\t\t\terror={props.errors[addWorkingTimeFields.profession] ? true : false}\n\t\t\t\t\t\t\t\t\thelperText={\n\t\t\t\t\t\t\t\t\t\tprops.errors[addWorkingTimeFields.profession]\n\t\t\t\t\t\t\t\t\t\t\t? props.errors[addWorkingTimeFields.profession].message\n\t\t\t\t\t\t\t\t\t\t\t: ''\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : null}\n\t\t\t\t
    \n\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t{user?.role === UserRole.QualityAssuranceInspector ? null : (\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t{type === RecordTimeType.Working ? (\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\tonChange(e);\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\tinputWrapper={classes.inputWrapper}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{' - '}\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t\tmoment(item).format(timeFormat) !==\n\t\t\t\t\t\t\t\t\t\t\t\tmoment(props.fromTime).format(timeFormat)\n\t\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t} else return t('working_time_screen_add_error_time');\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\trender={({ onChange, value }) => (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\tif (value && (moment(value).get('hours') || moment(value).get('minutes')))\n\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\treturn t('time_error');\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\trender={({ onChange, value }) => (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t)}\n\t\t\t\t\t
    \n\t\t\t\t\t{props.errors[\n\t\t\t\t\t\ttype === RecordTimeType.Working ? addWorkingTimeFields.to : addWorkingTimeFields.duration\n\t\t\t\t\t] ? (\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tprops.errors[\n\t\t\t\t\t\t\t\t\t\ttype === RecordTimeType.Working\n\t\t\t\t\t\t\t\t\t\t\t? addWorkingTimeFields.to\n\t\t\t\t\t\t\t\t\t\t\t: addWorkingTimeFields.duration\n\t\t\t\t\t\t\t\t\t].message\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t) : null}\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t
    \n\t\t\t\t{type === RecordTimeType.Working && (\n\t\t\t\t\t
    \n\t\t\t\t\t\t{props.manualWorkTime}\n\t\t\t\t\t
    \n\t\t\t\t)}\n\t\t\t\t\n\t\t\t
    \n\t\t
    \n\t);\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n\tdateTimeErrorWrapper: {\n\t\tdisplay: 'flex',\n\t\tflexDirection: 'column',\n\t\talignItems: 'flex-end',\n\t},\n\ttrackItemWrapper: {\n\t\tflex: 1,\n\t\tdisplay: 'flex',\n\t},\n\ttrackItemWrapperEnd: {\n\t\tdisplay: 'flex',\n\t\tjustifyContent: 'flex-end',\n\t\talignItems: 'center',\n\t},\n\trowEnd: {\n\t\tdisplay: 'flex',\n\t\tjustifyContent: 'flex-end',\n\t},\n\taddItemWrapper: {\n\t\tflex: 1,\n\t\tdisplay: 'flex',\n\t\tjustifyContent: 'flex-end',\n\t},\n\taddTimeWrapper: {\n\t\tmarginRight: '16px',\n\t\tpadding: '4px 8px',\n\t\tborder: `1px solid ${colors.addTimeBorder}`,\n\t},\n\tinputWrapper: {\n\t\twidth: '50px',\n\t\tpaddingLeft: '5px',\n\t\tpadding: '0',\n\t\tborder: `1px solid ${colors.addTimeBorder}`,\n\t},\n\taddTimeItemWrapper: {\n\t\tflex: 1,\n\t\tdisplay: 'flex',\n\t\twhiteSpace: 'pre',\n\t\talignItems: 'center',\n\t\tjustifyContent: 'flex-end',\n\t},\n\n\taddContainer: {\n\t\tpadding: '20px 16px',\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tborder: `1px solid ${colors.timetrackBorderd}`,\n\t\t[theme.breakpoints.down(1100)]: {\n\t\t\tflexDirection: 'column',\n\t\t\talignItems: 'flex-end',\n\t\t},\n\t},\n\taddContainerInnerWrapper: {\n\t\tflex: 1,\n\t\twidth: '100%',\n\t\tdisplay: 'flex',\n\t\tjustifyContent: 'space-between',\n\t\talignItems: 'center',\n\t\t[theme.breakpoints.down(1100)]: {\n\t\t\tmarginBottom: '16px',\n\t\t},\n\t},\n\tinputAddWrapper: {\n\t\twidth: '80%',\n\t\tpadding: '6px 0px',\n\t\tborderBottom: `1px solid ${colors.timetrackBorderd}`,\n\t\ttransform: 'translateX(-10px)',\n\t},\n\terrorImageWrapper: { marginRight: '5px', height: '16px' },\n\twrapper: {\n\t\twidth: '100%',\n\t},\n\tdateTimeInputWrapper: {\n\t\twidth: '120px',\n\t\tborder: `1px solid ${colors.addTimeBorder}`,\n\t\tmarginLeft: 'auto',\n\t},\n\tdateTimeWrapper: {\n\t\tdisplay: 'flex',\n\t\tflexDirection: 'column',\n\t\tjustifyContent: 'flex-end',\n\t},\n\tbuttonWrapper: {\n\t\twidth: 'fit-content',\n\t\tbackgroundColor: colors.yellow,\n\t\tborderRadius: 4,\n\t\tborder: `1px solid ${colors.yellow}`,\n\t\tpadding: '8px 22px',\n\t\tcursor: 'pointer',\n\t},\n\tclockWrapper: {\n\t\tmarginLeft: '24px',\n\t},\n\tinput: {\n\t\t...globalInputStyle(),\n\t},\n\tinputWrapperDropdown: {\n\t\tminHeight: '20px',\n\t\ttransform: 'translateY(-2px)',\n\t\ttextOverflow: 'ellipsis',\n\t\toverflow: 'hidden',\n\t},\n\titem: {\n\t\twidth: '100%',\n\t\tmaxWidth: 250,\n\t},\n}));\n\nexport default AddWorkingTime;\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core';\nimport { useGlobalStyles } from '../consts/globalStyles';\nimport { useTranslation } from 'react-i18next';\nimport { colors } from '../consts/colors';\n\ninterface Props {\n\tbilled: boolean;\n\tbillable?: boolean;\n}\n\nfunction BilledItem(props: Props) {\n\tconst classes = useStyles({ billed: props.billed, billable: props.billable });\n\tconst globalClasses = useGlobalStyles();\n\tconst { t } = useTranslation();\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t{props.billable ? t('Not billable') : t(props.billed ? 'Billed' : 'Not billed')}\n\t\t\t\t\n\t\t\t
    \n\t\t
    \n\t);\n}\n\ninterface StyleProps {\n\tbilled: boolean;\n\tbillable?: boolean;\n}\n\nconst useStyles = makeStyles(() => ({\n\tcircle: (p: StyleProps) => ({\n\t\twidth: '8px',\n\t\theight: '8px',\n\t\tborderRadius: '4px',\n\t\tbackgroundColor: p.billable ? colors.gray : p.billed ? colors.green : colors.red,\n\t\tmarginRight: '8px',\n\t}),\n\twrapper: (p: StyleProps) => ({\n\t\tpadding: '4px 8px',\n\t\tbackgroundColor: p.billable ? colors.borderColor : p.billed ? colors.lightGreen : colors.lightRed,\n\t\tborderRadius: '4px',\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tminWidth: '50%',\n\t\tmaxWidth: '80%',\n\t}),\n}));\n\nexport default BilledItem;\n","import { TransportType } from '../../service/types/Transport';\nimport { DEFAULT_NO_VALUE } from '../standardInputHelper/generalStandardInputHelper';\n\nexport enum TypeOfTravel {\n\tOwn = 1,\n\tCompany = 2,\n}\n\nexport interface ExpensesFilterInterface {\n\tqai: any;\n\treporter: any;\n\tname: any;\n\tfromDate: any;\n\ttoDate: any;\n\tquantity?: any;\n\tbilled: any;\n}\n\nexport const initExpensesFilters: ExpensesFilterInterface = {\n\tqai: '',\n\treporter: '',\n\tname: '',\n\tfromDate: null,\n\ttoDate: null,\n\tbilled: '',\n};\n\nexport const expensesFilterFields: ExpensesFilterInterface = {\n\tqai: 'qai',\n\treporter: 'reporter',\n\tname: 'name',\n\tfromDate: 'fromDate',\n\ttoDate: 'toDate',\n\tquantity: 'quantity',\n\tbilled: 'billed',\n};\n\nconst data = Object.freeze({ ...initExpensesFilters });\nexport type ExpensesFilterKeys = keyof typeof data;\n\nexport interface Expenses {\n\tworkingTime?: any;\n\tmaterials: any;\n\ttools: any;\n\ttravels: any;\n\ttransport: any;\n\tinvoice: any;\n}\n\nexport const initExpenses: Expenses = {\n\tmaterials: [],\n\ttools: [],\n\ttravels: [],\n\tworkingTime: [],\n\ttransport: [],\n\tinvoice: [],\n};\n\nexport const billedOptions = [\n\t{ key: 'Billed', value: true },\n\t{ key: 'Not billed', value: false },\n];\nexport const filterBilledOptions = [DEFAULT_NO_VALUE, { key: 'Billed', value: 1 }, { key: 'Not billed', value: 0 }];\n\nexport const TravelOptions = [\n\t{ key: 'Private', value: TypeOfTravel.Own },\n\t{ key: 'Company car', value: TypeOfTravel.Company },\n];\n\nexport const TransportOptions = [\n\t{ key: 'PKW', value: TransportType.PKW },\n\t{ key: 'LKW', value: TransportType.LKW },\n\t{ key: 'Transporter', value: TransportType.Transporter },\n\t{ key: 'Spedition', value: TransportType.Spedition },\n];\n\nconst expenses = Object.freeze({ ...initExpenses });\nexport type ExpensesKeys = keyof typeof expenses;\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core';\nimport {\n\taddWorkingTimeFields,\n\tcalculateTimeDifference,\n\ttimeFormat,\n} from '../helpers/workingTimeHelper/generalWorkingTimeHelper';\nimport { colors } from '../consts/colors';\nimport { globalInputStyle, useGlobalStyles } from '../consts/globalStyles';\nimport { fonts } from '../consts/fonts';\nimport { Controller, useForm } from 'react-hook-form';\nimport { rules } from '../consts/rules';\nimport { useTranslation } from 'react-i18next';\nimport { KeyValue } from '../helpers/userHelper/generalUserHelper';\nimport KeyValueAutoComplete from './KeyValueAutoComplete';\nimport WorkingTime from '../service/types/WorkingTime';\nimport StandardTimePicker from './StandardTimePicker';\nimport moment from 'moment';\nimport ErrorIcon from '../svgComponents/ErrorIcon';\nimport DeleteIcon from '../svgComponents/DeleteIcon';\nimport RemoveIcon from '../svgComponents/RemoveIcon';\nimport EditIcon from '../svgComponents/EditIcon';\nimport SaveIcon from '../svgComponents/SaveIcon';\nimport { createWorkingTimeWithID } from '../helpers/workingTimeHelper/updateWorkingTimeHelper';\nimport BilledItem from './BilledItem';\nimport { billedOptions } from '../helpers/expenses/generalExpensesHelper';\nimport { UserRole } from '../service/types/User';\nimport { useAuthStateContext } from '../context/auth/useAuth';\nimport { priceListOptions } from '../consts/priceListOptions';\nimport StandardDatePicker from './StandardDatePicker';\n\ninterface Props {\n\tindex: number;\n\trecord: WorkingTime;\n\tusers: KeyValue[];\n\tonSaveRecordPress: (record: WorkingTime) => Promise;\n\tonDeletePress: (record: WorkingTime) => void;\n}\nfunction RecordItem({ index, record, users, onSaveRecordPress, onDeletePress }: Props) {\n\tconst globalClasses = useGlobalStyles();\n\tconst { t } = useTranslation();\n\tconst [edit, setEdit] = React.useState(false);\n\tconst classes = useStyles({ edit: edit });\n\tconst { control, errors, watch, handleSubmit, setValue } = useForm();\n\tconst { user } = useAuthStateContext();\n\tconst fromTime = watch(addWorkingTimeFields.from);\n\tconst toTime = watch(addWorkingTimeFields.to);\n\n\tconst qai = React.useMemo(() => {\n\t\treturn users.find((user) => user.value.id === record.qai);\n\t}, [record, users]);\n\n\tconst reporter = React.useMemo(() => {\n\t\treturn users.find((user) => user.value.id === record.reporter);\n\t}, [record, users]);\n\n\tconst timeDiff = React.useMemo(() => {\n\t\treturn calculateTimeDifference(fromTime, toTime);\n\t}, [fromTime, toTime]);\n\n\tconst time = React.useMemo(() => {\n\t\tif (edit) {\n\t\t\tconst duration = moment.duration(moment(toTime).diff(moment(fromTime)));\n\t\t\treturn moment.utc(duration.asMilliseconds()).format('HH:mm:ss');\n\t\t} else {\n\t\t\tconst duration = moment.duration(moment(record.endTime).diff(moment(record.startTime)));\n\t\t\treturn moment.utc(duration.asMilliseconds()).format('HH:mm:ss');\n\t\t}\n\t}, [edit, toTime, fromTime, record]);\n\n\tReact.useEffect(() => {\n\t\tif (edit) {\n\t\t\tsetValue(addWorkingTimeFields.from, record.startTime);\n\t\t\tsetValue(addWorkingTimeFields.to, record.endTime);\n\t\t}\n\t}, [edit, setValue, record]);\n\n\tconst onEditPress = () => setEdit(true);\n\n\tconst onSavePress = React.useMemo(\n\t\t() =>\n\t\t\thandleSubmit((data) => {\n\t\t\t\tonSaveRecordPress(createWorkingTimeWithID(data, record, timeDiff))\n\t\t\t\t\t.then((res) => {\n\t\t\t\t\t\tif (res) {\n\t\t\t\t\t\t\tsetEdit(false);\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.catch(() => {});\n\t\t\t}),\n\t\t[onSaveRecordPress, record, timeDiff, handleSubmit]\n\t);\n\n\tconst onDeletePressHandler = () => onDeletePress(record);\n\n\tconst onCancelPress = () => setEdit(false);\n\n\tconst defaultProfession = React.useMemo(() => {\n\t\tconst selectedProfession = priceListOptions.find((item) => item.value === record.profession);\n\n\t\treturn selectedProfession\n\t\t\t? {\n\t\t\t\t\tkey: selectedProfession.label,\n\t\t\t\t\tvalue: selectedProfession.value,\n\t\t\t }\n\t\t\t: null;\n\t}, [record.profession]);\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t {`${index + 1}.`}\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{!edit ? (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{record.startTime.format(timeFormat)}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{!edit ? (\n\t\t\t\t\t\t\t\t{record.endTime.format(timeFormat)}\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t\tmoment(item).format(timeFormat) !== moment(fromTime).format(timeFormat)\n\t\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\t} else return t('working_time_screen_add_error_time');\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\trender={({ onChange, value }) => (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t{errors[addWorkingTimeFields.to] ? (\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{errors[addWorkingTimeFields.to].message}\n\t\t\t\t\t\t
    \n\t\t\t\t\t) : null}\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t
    \n\t\t\t\t{reporter?.key}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t{!edit ? (\n\t\t\t\t\t{qai?.key}\n\t\t\t\t) : (\n\t\t\t\t\t {\n\t\t\t\t\t\t\t\tif (val && val.value) {\n\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn rules(t).required.message;\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t}}\n\t\t\t\t\t\trender={({ onChange, value }) => (\n\t\t\t\t\t\t\t !user.value.deleted)}\n\t\t\t\t\t\t\t\tinput={globalClasses.inputTableStyle}\n\t\t\t\t\t\t\t\twithoutArrow={true}\n\t\t\t\t\t\t\t\twithoutClose={true}\n\t\t\t\t\t\t\t\terror={errors[addWorkingTimeFields.qai] ? true : false}\n\t\t\t\t\t\t\t\thelperText={\n\t\t\t\t\t\t\t\t\terrors[addWorkingTimeFields.qai] ? errors[addWorkingTimeFields.qai].message : ''\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t{!edit ? (\n\t\t\t\t\t\n\t\t\t\t\t\t{priceListOptions[record.profession] ? t(priceListOptions[record.profession].label) : '-'}\n\t\t\t\t\t\n\t\t\t\t) : (\n\t\t\t\t\t (\n\t\t\t\t\t\t\t ({\n\t\t\t\t\t\t\t\t\tkey: option.label,\n\t\t\t\t\t\t\t\t\tvalue: option.value,\n\t\t\t\t\t\t\t\t}))}\n\t\t\t\t\t\t\t\tcustomGetOptionLabel={(option) => t(option.key)}\n\t\t\t\t\t\t\t\tinput={globalClasses.inputTableStyle}\n\t\t\t\t\t\t\t\twithoutArrow={true}\n\t\t\t\t\t\t\t\twithoutClose={true}\n\t\t\t\t\t\t\t\terror={errors[addWorkingTimeFields.profession] ? true : false}\n\t\t\t\t\t\t\t\thelperText={\n\t\t\t\t\t\t\t\t\terrors[addWorkingTimeFields.profession]\n\t\t\t\t\t\t\t\t\t\t? errors[addWorkingTimeFields.profession].message\n\t\t\t\t\t\t\t\t\t\t: ''\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t
    \n\t\t\t{user?.role !== UserRole.QualityAssuranceInspector ? (\n\t\t\t\t
    \n\t\t\t\t\t{!edit ? (\n\t\t\t\t\t\t\n\t\t\t\t\t) : (\n\t\t\t\t\t\t ({ ...item, key: t(item.key) }))\n\t\t\t\t\t\t\t\t.find((val) => val.value === record.billed)}\n\t\t\t\t\t\t\tcontrol={control}\n\t\t\t\t\t\t\tname={addWorkingTimeFields.billed}\n\t\t\t\t\t\t\trules={{\n\t\t\t\t\t\t\t\trequired: rules(t).required,\n\t\t\t\t\t\t\t\tvalidate: (val: KeyValue | undefined) => {\n\t\t\t\t\t\t\t\t\tif (val && val.value !== undefined) {\n\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\treturn rules(t).required.message;\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\trender={({ onChange, value }) => (\n\t\t\t\t\t\t\t\t ({ ...item, key: t(item.key) }))}\n\t\t\t\t\t\t\t\t\tinput={globalClasses.inputTableStyle}\n\t\t\t\t\t\t\t\t\twithoutArrow={true}\n\t\t\t\t\t\t\t\t\twithoutClose={true}\n\t\t\t\t\t\t\t\t\terror={errors[addWorkingTimeFields.billed] ? true : false}\n\t\t\t\t\t\t\t\t\thelperText={\n\t\t\t\t\t\t\t\t\t\terrors[addWorkingTimeFields.billed]\n\t\t\t\t\t\t\t\t\t\t\t? errors[addWorkingTimeFields.billed].message\n\t\t\t\t\t\t\t\t\t\t\t: ''\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t
    \n\t\t\t) : null}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{`${t('working_time_screen_time')}: `}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{time}\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{!edit ? (\n\t\t\t\t\t\t\t\t{record.date.format('DD.MM.YYYY')}\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t{\n\t\t\t\t\t
    \n\t\t\t\t\t\t{edit ? (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{edit ? (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t
    \n\t\t\t\t}\n\t\t\t
    \n\t\t
    \n\t);\n}\n\ninterface StyleProps {\n\tedit: boolean;\n}\n\nconst useStyles = makeStyles(() => ({\n\tinputAddWrapper: {\n\t\twidth: '100%',\n\t\tpadding: '6px 0px',\n\t\tborderBottom: `1px solid ${colors.timetrackBorderd}`,\n\t\ttransform: 'translateX(-10px)',\n\t},\n\tinputWrapper: {\n\t\twidth: '95%',\n\t},\n\tindexWrapper: {\n\t\tdisplay: 'flex',\n\t\tmarginRight: '24px',\n\t\talignItems: 'center',\n\t},\n\tfromWrapper: {\n\t\tdisplay: 'flex',\n\t\tmarginRight: '16px',\n\t\talignItems: 'center',\n\t},\n\ttoWrapper: {\n\t\tdisplay: 'flex',\n\t\tmarginLeft: '16px',\n\t\talignItems: 'center',\n\t},\n\ttimeTitleWrapper: {\n\t\tdisplay: 'flex',\n\t\tmarginRight: '12px',\n\t\talignItems: 'center',\n\t},\n\n\twrapper: {\n\t\tdisplay: 'flex',\n\t\tpadding: '20px 16px',\n\t\tmargin: '4px 0px',\n\t\tborder: `1px solid ${colors.timetrackBorderd}`,\n\t\t//backgroundColor: colors.billGreen,\n\t},\n\titemWrapper: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tflex: 1,\n\t},\n\tbuttonsWrapper: {\n\t\tdisplay: 'flex',\n\t\tflex: 1,\n\t\talignItems: 'center',\n\t\tjustifyContent: 'flex-end',\n\t\tmarginLeft: '16px',\n\t},\n\tsmallTextLight: {\n\t\tfontSize: '12px',\n\t\tlineHeight: '16px',\n\t\tfontFamily: fonts.regular,\n\t\tcolor: colors.gray,\n\t\tletterSpacing: 0.4,\n\t},\n\titemWrapperSpaceBetween: {\n\t\tdisplay: 'flex',\n\t\tflex: 1,\n\t\tjustifyContent: 'space-between',\n\t\talignItems: 'center',\n\t},\n\titemWrapperEnd: {\n\t\tdisplay: 'flex',\n\t\tjustifyContent: 'flex-end',\n\t\talignItems: 'center',\n\t},\n\ttimeInputWrapper: {\n\t\twidth: '45px',\n\t\tpaddingLeft: '5px',\n\t\ttransform: 'translateX(-6px)',\n\t\tpadding: '0',\n\t\tborder: `1px solid ${colors.addTimeBorder}`,\n\t},\n\terrorImageWrapper: { marginRight: '5px', height: '16px' },\n\tinputKeyValueWrapper: {\n\t\twidth: '95%',\n\t\tpadding: '0px 0px',\n\t\t'& .MuiInput-input': {\n\t\t\tmargin: 0,\n\t\t\tcolor: colors.darkGray,\n\t\t\tfontSize: '14px',\n\t\t\tlineHeight: '20px',\n\t\t\tfontFamily: fonts.regular,\n\t\t\tborderRadius: '5px',\n\t\t\tpaddingLeft: '12px',\n\t\t},\n\t},\n\tdashWrapper: (p: StyleProps) => ({\n\t\ttransform: p.edit ? 'translate(-6px)' : '',\n\t}),\n\teditIconWrapper: {\n\t\tmarginRight: '16px',\n\t\tcursor: 'pointer',\n\t},\n\tcloseIconWrapper: {\n\t\tcursor: 'pointer',\n\t},\n\tinput: {\n\t\t...globalInputStyle(),\n\t},\n\tinputWrapperDropdown: {\n\t\tminHeight: '20px',\n\t\ttransform: 'translateY(-2px)',\n\t\ttextOverflow: 'ellipsis',\n\t\toverflow: 'hidden',\n\t},\n\tdateTimeInputWrapper: {\n\t\twidth: '120px',\n\t\tborder: `1px solid ${colors.addTimeBorder}`,\n\t\tmarginLeft: 'auto',\n\t},\n\tdateTimeWrapper: {\n\t\tdisplay: 'flex',\n\t\tflexDirection: 'column',\n\t\tjustifyContent: 'flex-end',\n\t},\n\tautoCompleteInputAddWrapper: {\n\t\twidth: '80%',\n\t\tpadding: '6px 0px',\n\t\tborderBottom: `1px solid ${colors.timetrackBorderd}`,\n\t\ttransform: 'translateX(-10px)',\n\t},\n\n\tautoCompletewrapper: {\n\t\twidth: '100%',\n\t\tpadding: '0px 0px',\n\t\t'& .MuiInput-input': {\n\t\t\tmargin: 0,\n\t\t\tcolor: colors.darkGray,\n\t\t\tfontSize: '14px',\n\t\t\tlineHeight: '20px',\n\t\t\tfontFamily: fonts.regular,\n\t\t\tborderRadius: '5px',\n\t\t\tpaddingLeft: '12px',\n\t\t},\n\t},\n\tleftWrapper: {\n\t\tdisplay: 'flex',\n\t\talignItem: 'center',\n\t},\n}));\n\nexport default RecordItem;\n","import WorkingTime from '../../service/types/WorkingTime';\nimport { addWorkingTimeFields } from './generalWorkingTimeHelper';\nimport { setDateWithTime } from './createWorkingTimeHelper';\nimport BreakTime, { RecordTimeType } from '../../service/types/BreakTime';\nimport service from '../../service/service';\nimport moment from 'moment';\nimport { KeyValue } from '../userHelper/generalUserHelper';\n\nexport function createWorkingTimeWithID(data: any, record: WorkingTime, timeDiff: number) {\n\tconst recordDateMoment = moment(data[addWorkingTimeFields.date]);\n\n\treturn new WorkingTime(\n\t\trecord.id,\n\t\trecord.reporter,\n\t\tdata[addWorkingTimeFields.qai].value.id,\n\t\trecordDateMoment,\n\t\tsetDateWithTime(data[addWorkingTimeFields.from], recordDateMoment.toISOString()),\n\t\tsetDateWithTime(data[addWorkingTimeFields.to], recordDateMoment.toISOString()),\n\t\ttimeDiff,\n\t\t(data[addWorkingTimeFields.profession] as KeyValue).value,\n\t\tdata[addWorkingTimeFields.billed]?.value !== undefined\n\t\t\t? data[addWorkingTimeFields.billed]?.value\n\t\t\t: record.billed\n\t);\n}\n\nexport function getUpdateWorkingTimeService(contractID: number, record: WorkingTime | BreakTime) {\n\tif (record instanceof WorkingTime) return service.updateRecordByID(contractID, record);\n\tif (record.type === RecordTimeType.Break) return service.updateBreakByID(contractID, record);\n\treturn service.updateWaitingByID(contractID, record);\n}\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core';\nimport { useGlobalStyles } from '../consts/globalStyles';\nimport { useTranslation } from 'react-i18next';\nimport WorkingTime from '../service/types/WorkingTime';\nimport { KeyValue } from '../helpers/userHelper/generalUserHelper';\nimport { UserRole } from '../service/types/User';\nimport { useAuthStateContext } from '../context/auth/useAuth';\nimport BreakTime, { RecordTimeType } from '../service/types/BreakTime';\nimport { timeFromSeconds } from '../helpers/workingTimeHelper/generalWorkingTimeHelper';\n\ninterface Props {\n\trecords: (WorkingTime | BreakTime)[];\n\tusers: KeyValue[];\n}\nfunction RecordTitle(props: Props) {\n\tconst classes = useStyles();\n\tconst globalClasses = useGlobalStyles();\n\tconst { t } = useTranslation();\n\tconst { user } = useAuthStateContext();\n\n\tconst sumTime = React.useMemo(() => {\n\t\treturn props.records.reduce((prev, curr) => {\n\t\t\tif (curr instanceof WorkingTime) {\n\t\t\t\treturn prev + curr.duration;\n\t\t\t}\n\t\t\tif (curr.type === RecordTimeType.Break) {\n\t\t\t\treturn prev - curr.duration;\n\t\t\t}\n\t\t\treturn prev;\n\t\t}, 0);\n\t}, [props.records]);\n\n\tconst qai = React.useMemo(() => {\n\t\treturn props.users.find((user) => user.value.id === props.records[0].qai);\n\t}, [props.users, props.records]);\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t{`${qai?.key}`}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{t('working_time_screen_reporter')}\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t
    \n\t\t\t\t{t('working_time_screen_employee')}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t{t('working_time_screen_occupation')}\n\t\t\t
    \n\t\t\t{user?.role !== UserRole.QualityAssuranceInspector ? (\n\t\t\t\t
    \n\t\t\t\t\t{t('working_time_screen_status')}\n\t\t\t\t
    \n\t\t\t) : null}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{`${t('working_time_screen_total')}: `}\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{timeFromSeconds(+sumTime)}\n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t);\n}\n\nconst useStyles = makeStyles(() => ({\n\trow: {\n\t\tdisplay: 'flex',\n\t\tmarginTop: '6px',\n\t},\n\titemWrapperEnd: {\n\t\tdisplay: 'flex',\n\t\tflex: 1,\n\t\tjustifyContent: 'flex-end',\n\t\talignItems: 'center',\n\t\tpaddingRight: '0px',\n\t},\n\titemWrapper: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tflex: 1,\n\t},\n\n\ttimeTitleWrapper: {\n\t\tdisplay: 'flex',\n\t\tmarginRight: '12px',\n\t\talignItems: 'center',\n\t},\n\ttranslateWrapper: {\n\t\ttransform: 'translateX(8px)',\n\t},\n}));\n\nexport default RecordTitle;\n","import BreakTime from '../../service/types/BreakTime';\nimport { addBreakTimeFields, addWorkingTimeFields } from '../workingTimeHelper/generalWorkingTimeHelper';\nimport moment from 'moment';\n\nexport function createBreakTimeWithID(data: any, record: BreakTime) {\n\treturn new BreakTime(\n\t\trecord.id,\n\t\trecord.reporter,\n\t\tdata[addBreakTimeFields.qai].value.id,\n\t\trecord.date,\n\t\tMath.round(\n\t\t\tmoment(data[addWorkingTimeFields.duration])\n\t\t\t\t.set('s', 0)\n\t\t\t\t.diff(moment(record.date).set('s', 0).set('h', 0).set('m', 0)) /\n\t\t\t\t1000 /\n\t\t\t\t60\n\t\t) * 60,\n\t\trecord.type\n\t);\n}\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core';\nimport moment from 'moment';\nimport {\n\taddBreakTimeFields,\n\tfilterRecordTimeTypeKeyValuePairs,\n\ttimeFromUnixToStringFormat,\n} from '../helpers/workingTimeHelper/generalWorkingTimeHelper';\nimport { colors } from '../consts/colors';\nimport { useGlobalStyles } from '../consts/globalStyles';\nimport { fonts } from '../consts/fonts';\nimport { Controller, useForm } from 'react-hook-form';\nimport { rules } from '../consts/rules';\nimport { useTranslation } from 'react-i18next';\nimport { KeyValue } from '../helpers/userHelper/generalUserHelper';\nimport KeyValueAutoComplete from './KeyValueAutoComplete';\nimport DeleteIcon from '../svgComponents/DeleteIcon';\nimport RemoveIcon from '../svgComponents/RemoveIcon';\nimport EditIcon from '../svgComponents/EditIcon';\nimport SaveIcon from '../svgComponents/SaveIcon';\nimport BilledItem from './BilledItem';\nimport { UserRole } from '../service/types/User';\nimport { useAuthStateContext } from '../context/auth/useAuth';\nimport BreakTime, { RecordTimeType } from '../service/types/BreakTime';\nimport { createBreakTimeWithID } from '../helpers/breakTimeHelper/updateBreakTimeHelper';\nimport StandardTimePicker from './StandardTimePicker';\nimport ErrorIcon from '../svgComponents/ErrorIcon';\n\ninterface Props {\n\tindex: number;\n\trecord: BreakTime;\n\tusers: KeyValue[];\n\tonSaveRecordPress: (record: BreakTime) => Promise;\n\tonDeletePress: (record: BreakTime) => void;\n}\nfunction BreakItem({ index, record, users, onSaveRecordPress, onDeletePress }: Props) {\n\tconst globalClasses = useGlobalStyles();\n\tconst { t } = useTranslation();\n\tconst [edit, setEdit] = React.useState(false);\n\tconst classes = useStyles({ edit: edit, type: record.type });\n\tconst { control, errors, handleSubmit, getValues } = useForm();\n\tconst { user } = useAuthStateContext();\n\n\tconst qai = React.useMemo(() => {\n\t\treturn users.find((user) => user.value.id === record.qai);\n\t}, [record, users]);\n\n\tconst reporter = React.useMemo(() => {\n\t\treturn users.find((user) => user.value.id === record.reporter);\n\t}, [record, users]);\n\n\tconst time = timeFromUnixToStringFormat(record.duration);\n\n\tconst onEditPress = () => setEdit(true);\n\n\tconst onSavePress = (data: any) => {\n\t\tconst breakTime = getValues(addBreakTimeFields.duration);\n\t\tconst date = new Date(breakTime);\n\t\tconst fullBreakTime = date.getHours() * 3600 + date.getMinutes() * 60;\n\n\t\tonSaveRecordPress({ ...createBreakTimeWithID(data, record), duration: fullBreakTime })\n\t\t\t.then((res) => {\n\t\t\t\tif (res) {\n\t\t\t\t\tsetEdit(false);\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(() => {});\n\t};\n\n\tconst onDeletePressHandler = () => onDeletePress(record);\n\n\tconst onCancelPress = () => setEdit(false);\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t {`${index + 1}.`}\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{t(filterRecordTimeTypeKeyValuePairs.find((item) => item.value === record.type)?.key || '')}\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t\t
    \n\t\t\t\t{reporter?.key}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t{edit ? (\n\t\t\t\t\t {\n\t\t\t\t\t\t\t\tif (val && val.value) {\n\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn rules(t).required.message;\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t}}\n\t\t\t\t\t\trender={({ onChange, value }) => (\n\t\t\t\t\t\t\t !user.value.deleted)}\n\t\t\t\t\t\t\t\tinput={globalClasses.inputTableStyle}\n\t\t\t\t\t\t\t\twithoutArrow={true}\n\t\t\t\t\t\t\t\twithoutClose={true}\n\t\t\t\t\t\t\t\terror={errors[addBreakTimeFields.qai] ? true : false}\n\t\t\t\t\t\t\t\thelperText={\n\t\t\t\t\t\t\t\t\terrors[addBreakTimeFields.qai] ? errors[addBreakTimeFields.qai].message : ''\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t) : (\n\t\t\t\t\t{qai?.key}\n\t\t\t\t)}\n\t\t\t
    \n\n\t\t\t
    \n\t\t\t\t-\n\t\t\t
    \n\t\t\t{user?.role !== UserRole.QualityAssuranceInspector ? (\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t) : null}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t{`${t('working_time_screen_time')}: `}\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t{edit ? (\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\tif (value && (moment(value).get('hours') || moment(value).get('minutes')))\n\t\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\t\treturn t('time_error')!;\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\trender={({ onChange, value }) => (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{errors[addBreakTimeFields.duration] ? (\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{errors[addBreakTimeFields.duration].message}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t{time}\n\t\t\t\t\t\t)}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t{\n\t\t\t\t\t
    \n\t\t\t\t\t\t{edit ? (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{edit ? (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t
    \n\t\t\t\t}\n\t\t\t
    \n\t\t
    \n\t);\n}\n\ninterface StyleProps {\n\tedit: boolean;\n\ttype: RecordTimeType;\n}\n\nconst useStyles = makeStyles(() => ({\n\terrorRow: {\n\t\talignItems: 'center',\n\t\tjustifyContent: 'center',\n\t\tdisplay: 'flex',\n\t\tflexDirection: 'column',\n\t},\n\tinputAddWrapper: {\n\t\twidth: '100%',\n\t\tpadding: '6px 0px',\n\t\tborderBottom: `1px solid ${colors.timetrackBorderd}`,\n\t\ttransform: 'translateX(-10px)',\n\t},\n\tinputWrapper: {\n\t\twidth: '95%',\n\t},\n\tindexWrapper: {\n\t\tdisplay: 'flex',\n\t\tmarginRight: '24px',\n\t\talignItems: 'center',\n\t},\n\tfromWrapper: {\n\t\tdisplay: 'flex',\n\t\tmarginRight: '16px',\n\t\talignItems: 'center',\n\t},\n\ttoWrapper: {\n\t\tdisplay: 'flex',\n\t\tmarginLeft: '16px',\n\t\talignItems: 'center',\n\t},\n\ttimeTitleWrapper: {\n\t\tdisplay: 'flex',\n\t\tmarginRight: '12px',\n\t\talignItems: 'center',\n\t},\n\n\twrapper: (p: StyleProps) => ({\n\t\tdisplay: 'flex',\n\t\tpadding: '20px 16px',\n\t\tmargin: '4px 0px',\n\t\tborder: `1px solid ${colors.timetrackBorderd}`,\n\t\t//backgroundColor: p.type === RecordTimeType.Break ? colors.billRed : colors.billOragne,\n\t}),\n\titemWrapper: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tflex: 1,\n\t},\n\tbuttonsWrapper: {\n\t\tdisplay: 'flex',\n\t\tflex: 1,\n\t\talignItems: 'center',\n\t\tjustifyContent: 'flex-end',\n\t},\n\tsmallTextLight: {\n\t\tfontSize: '12px',\n\t\tlineHeight: '16px',\n\t\tfontFamily: fonts.regular,\n\t\tcolor: colors.gray,\n\t\tletterSpacing: 0.4,\n\t},\n\titemWrapperSpaceBetween: {\n\t\tdisplay: 'flex',\n\t\tflex: 1,\n\t\tminWidth: '270px',\n\t\tjustifyContent: 'space-between',\n\t\talignItems: 'center',\n\t},\n\titemWrapperEnd: {\n\t\tdisplay: 'flex',\n\t\tjustifyContent: 'flex-end',\n\t\talignItems: 'center',\n\t},\n\ttimeInputWrapper: {\n\t\twidth: '45px',\n\t\tpaddingLeft: '5px',\n\t\ttransform: 'translateX(-6px)',\n\t\tpadding: '0',\n\t\tborder: `1px solid ${colors.addTimeBorder}`,\n\t},\n\terrorImageWrapper: { marginRight: '5px', height: '16px' },\n\tinputKeyValueWrapper: {\n\t\twidth: '95%',\n\t\tpadding: '0px 0px',\n\t\t'& .MuiInput-input': {\n\t\t\tmargin: 0,\n\t\t\tcolor: colors.darkGray,\n\t\t\tfontSize: '14px',\n\t\t\tlineHeight: '20px',\n\t\t\tfontFamily: fonts.regular,\n\t\t\tborderRadius: '5px',\n\t\t\tpaddingLeft: '12px',\n\t\t},\n\t},\n\tdashWrapper: (p: StyleProps) => ({\n\t\ttransform: p.edit ? 'translate(-6px)' : '',\n\t}),\n\teditIconWrapper: {\n\t\tmarginRight: '16px',\n\t\tcursor: 'pointer',\n\t},\n\tcloseIconWrapper: {\n\t\tcursor: 'pointer',\n\t},\n}));\n\nexport default BreakItem;\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core';\nimport WorkingTime from '../service/types/WorkingTime';\nimport ReactList from 'react-list';\nimport { KeyValue } from '../helpers/userHelper/generalUserHelper';\nimport RecordItem from './RecordItem';\nimport RecordTitle from './RecordTitle';\nimport { useGlobalStyles } from '../consts/globalStyles';\nimport { useTranslation } from 'react-i18next';\nimport moment from 'moment';\nimport BreakTime from '../service/types/BreakTime';\nimport BreakItem from './BreakItem';\n\ninterface Props {\n\trecords: (WorkingTime | BreakTime)[];\n\tusers: KeyValue[];\n\ttimeTitle?: string;\n\tonSaveRecordPress: (record: WorkingTime | BreakTime) => Promise;\n\tonDeletePress: (record: WorkingTime | BreakTime) => void;\n}\n\nfunction RecordListWorkingTime(props: Props) {\n\tconst classes = useStyles();\n\tconst globalClasses = useGlobalStyles();\n\tconst { t } = useTranslation();\n\n\tconst transformedRecords = React.useMemo(() => {\n\t\tconst sortedRecordsByDate = props.records.sort((a, b) => b.date.unix() - a.date.unix());\n\n\t\treturn sortedRecordsByDate.reduce((prev, curr) => {\n\t\t\tconst key =\n\t\t\t\tcurr instanceof WorkingTime ? curr.startTime.format('DD.MM.YYYY') : curr.date.format('DD.MM.YYYY');\n\t\t\treturn {\n\t\t\t\t...prev,\n\t\t\t\t[key]: {\n\t\t\t\t\t...(prev[key] ? prev[key] : {}),\n\t\t\t\t\t[curr.qai]: [...(prev[key] && prev[key][curr.qai] ? prev[key][curr.qai] : []), curr],\n\t\t\t\t},\n\t\t\t};\n\t\t}, {} as { [key: string]: { [key: number]: (WorkingTime | BreakTime)[] } });\n\t}, [props.records]);\n\n\tconst keys = React.useMemo(() => Object.keys(transformedRecords), [transformedRecords]);\n\tconst values = React.useMemo(() => Object.values(transformedRecords), [transformedRecords]);\n\n\treturn values.length === 0 ? null : (\n\t\t
    \n\t\t\t (\n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{keys[index] === moment().format('DD.MM.YYYY')\n\t\t\t\t\t\t\t\t\t? t('working_time_screen_today')\n\t\t\t\t\t\t\t\t\t: keys[index]}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t{Object.values(values[index]).map((records) => (\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t{t('working_time_screen_employee')}\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t{items}\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t// Fix for getting the scroll parent, otherwise there is 11 items max\n\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t\tscrollParentGetter={(props) => props.items}\n\t\t\t\t\t\t\t\t\titemRenderer={(index2) =>\n\t\t\t\t\t\t\t\t\t\trecords[index2] instanceof WorkingTime ? (\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t))}\n\t\t\t\t\t
    \n\t\t\t\t)}\n\t\t\t/>\n\t\t
    \n\t);\n}\nconst useStyles = makeStyles(() => ({\n\tcontainer: {\n\t\tmaxHeight: 400,\n\t\toverflow: 'scroll',\n\t},\n\twrapper: {\n\t\tmarginTop: '28px',\n\t},\n\tmainTitleWrapper: {\n\t\tmarginTop: '24px',\n\t},\n\tsubtitle: {\n\t\tmarginTop: '8px',\n\t},\n}));\n\nexport default RecordListWorkingTime;\n","import React from 'react';\nimport { makeStyles, Theme } from '@material-ui/core';\nimport { useGlobalStyles } from '../consts/globalStyles';\nimport { useAuthStateContext } from '../context/auth/useAuth';\nimport Button from './Button';\nimport { colors } from '../consts/colors';\nimport { useWorkingTimeActionContext, useWorkingTimeStateContext } from '../context/workingTime/useWorkingTime';\nimport { timeFromUnixToStringFormat, updateWorkTime } from '../helpers/workingTimeHelper/generalWorkingTimeHelper';\nimport moment from 'moment';\nimport WorkTimeTrack from '../service/types/WorkTimeTrack';\nimport { useTranslation } from 'react-i18next';\nimport StandardDialog, { StandardDialogInterface } from './StandardDialog';\nimport WorkingTime from '../service/types/WorkingTime';\nimport { Controller, useForm } from 'react-hook-form';\nimport { priceListOptions } from '../consts/priceListOptions';\nimport { rules } from '../consts/rules';\nimport KeyValueAutoComplete from './KeyValueAutoComplete';\nimport { KeyValue } from '../helpers/userHelper/generalUserHelper';\n\ninterface Props {\n\tcontractNumber: string;\n\tcontractID: number;\n\tonStopButtonPressWhenCIDAndRID: (record: WorkingTime) => void;\n}\n\nexport interface TrackWorkingTimeFormValues {\n\tprofession: any;\n}\n\nfunction TrackWorkingTime(props: Props) {\n\tconst classes = useStyles({});\n\tconst globalClasses = useGlobalStyles();\n\tconst [workingTime, setWorkingTime] = React.useState('');\n\tconst [buttonText, setButtonText] = React.useState('');\n\tconst { user } = useAuthStateContext();\n\tconst { record } = useWorkingTimeStateContext();\n\tconst { startTracking, stopTracking } = useWorkingTimeActionContext();\n\tconst timer = React.useRef(setTimeout(() => {}, 0));\n\tconst { t } = useTranslation();\n\tconst dialogRef = React.useRef(null);\n\tconst { control, errors, handleSubmit } = useForm();\n\n\tReact.useEffect(() => {\n\t\tif (record && record.contractID === props.contractID) {\n\t\t\tsetButtonText('working_time_screen_stop_button');\n\t\t\ttimer.current = updateWorkTime(moment().diff(record.startTime), timer, setWorkingTime);\n\t\t} else {\n\t\t\tsetButtonText('working_time_screen_start_button');\n\t\t\tsetWorkingTime(timeFromUnixToStringFormat(0));\n\t\t}\n\t\treturn () => {\n\t\t\tclearTimeout(timer.current);\n\t\t};\n\t}, [record, props.contractID]);\n\n\tconst onButtonPress = async (data: TrackWorkingTimeFormValues) => {\n\t\tif (record && record.contractID === props.contractID) {\n\t\t\tconst recordToSave: WorkTimeTrack = { ...record, profession: (data.profession as KeyValue).value };\n\t\t\tconst res = await stopTracking(recordToSave);\n\t\t\tif (res) {\n\t\t\t\tprops.onStopButtonPressWhenCIDAndRID(res);\n\t\t\t}\n\t\t} else if (record) {\n\t\t\tdialogRef.current?.setDialogState(true);\n\t\t} else {\n\t\t\tstartTracking(new WorkTimeTrack(props.contractID, moment(), props.contractNumber));\n\t\t}\n\t};\n\n\tconst startCurrentStopPreviousRecord = async () => {\n\t\tif (record) {\n\t\t\tconst res = await stopTracking(record).catch(() => {});\n\t\t\tif (res) {\n\t\t\t\t//change 0 to profession form value\n\t\t\t\tstartTracking(new WorkTimeTrack(props.contractID, moment(), props.contractNumber));\n\t\t\t\tdialogRef.current?.setDialogState(false);\n\t\t\t}\n\t\t}\n\t};\n\n\tconst closeDialog = () => {\n\t\tdialogRef.current?.setDialogState(false);\n\t};\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t{t('working_time_screen_track_time_title')}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t{`${user?.firstName} ${user?.lastName}`}\n\t\t\t
    \n\t\t\t{record ? (\n\t\t\t\t
    \n\t\t\t\t\t (\n\t\t\t\t\t\t\t ({\n\t\t\t\t\t\t\t\t\tkey: option.label,\n\t\t\t\t\t\t\t\t\tvalue: option.value,\n\t\t\t\t\t\t\t\t}))}\n\t\t\t\t\t\t\t\tcustomGetOptionLabel={(option) => t(option.key)}\n\t\t\t\t\t\t\t\twithoutArrow={true}\n\t\t\t\t\t\t\t\twithoutClose={true}\n\t\t\t\t\t\t\t\terror={errors.profession ? true : false}\n\t\t\t\t\t\t\t\thelperText={errors.profession ? errors.profession.message : ''}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t) : null}\n\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{workingTime}\n\t\t\t\t
    \n\t\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t
    \n\t);\n}\n\nconst useStyles = makeStyles((theme: Theme) => ({\n\ttrackItemWrapper: {\n\t\tflex: 1,\n\t\tdisplay: 'flex',\n\t},\n\n\ttrackItemWrapperEnd: {\n\t\tflex: 1,\n\t\tdisplay: 'flex',\n\t\tjustifyContent: 'flex-end',\n\t\talignItems: 'center',\n\t},\n\ttimeWrapper: {\n\t\tmarginRight: '24px',\n\t},\n\ttrackContainer: {\n\t\tpadding: '20px 16px',\n\t\tdisplay: 'flex',\n\t\tmarginBottom: '16px',\n\t\talignItems: 'center',\n\t\tborder: `1px solid ${colors.timetrackBorderd}`,\n\t},\n\tbuttonWrapper: {\n\t\twidth: 'fit-content',\n\t\tbackgroundColor: colors.yellow,\n\t\tborderRadius: 4,\n\t\tborder: `1px solid ${colors.yellow}`,\n\t\tpadding: '8px 22px',\n\t\tcursor: 'pointer',\n\t},\n\tclockWrapper: {\n\t\tmarginLeft: '24px',\n\t},\n\n\tinputAddWrapper: {\n\t\twidth: '80%',\n\t\tpadding: '6px 0px',\n\t\tborderBottom: `1px solid ${colors.timetrackBorderd}`,\n\t\ttransform: 'translateX(-10px)',\n\t},\n\twrapper: {\n\t\twidth: '100%',\n\t},\n}));\n\nexport default TrackWorkingTime;\n","import { Grid, makeStyles, MenuItem, Typography } from '@material-ui/core';\nimport { MaterialUiPickersDate } from '@material-ui/pickers/typings/date';\nimport React from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { useTranslation } from 'react-i18next';\nimport AddWorkingTime from '../components/AddWorkingTime';\nimport Button from '../components/Button';\nimport Filter from '../components/Filter';\nimport IntervalDatePicker, { IntervalDatePickerDates, IntervalKey } from '../components/IntervalDatePicker';\nimport KeyValueAutoComplete from '../components/KeyValueAutoComplete';\nimport RecordListWorkingTime from '../components/RecordListWorkingTime';\nimport StandardCheckbox from '../components/StandardCheckbox';\nimport StandardDialog, { StandardDialogInterface } from '../components/StandardDialog';\nimport StandardTextField from '../components/StandardTextField';\nimport TrackWorkingTime from '../components/TrackWorkingTime';\nimport { colors } from '../consts/colors';\nimport { globalInputStyle, useGlobalStyles } from '../consts/globalStyles';\nimport { useAuthStateContext } from '../context/auth/useAuth';\nimport { KeyValue } from '../helpers/userHelper/generalUserHelper';\nimport {\n\texportWorkingTimeFields,\n\tfilterRecordTimeTypeKeyValuePairs,\n\tfilterWorkingTimeKeyValuePairs,\n\tWorkingTimeFilterInterface,\n\tWorkingTimeFilterKeys,\n} from '../helpers/workingTimeHelper/generalWorkingTimeHelper';\nimport BreakTime from '../service/types/BreakTime';\nimport { UserRole } from '../service/types/User';\nimport WorkingTime from '../service/types/WorkingTime';\nimport BackArrow from '../svgComponents/BackArrow';\nimport HomeButton from '../svgComponents/HomeButton';\nimport WorkingTimeIcon from '../svgComponents/WorkingTimeIcon';\n\ninterface Props {\n\tintervalDates: IntervalDatePickerDates;\n\tmanualWorkTime: string;\n\tfromTime: any;\n\tcontractID: number;\n\tcontractNumber: string;\n\tfilters: WorkingTimeFilterInterface;\n\tallUsers: KeyValue[];\n\trecords: (WorkingTime | BreakTime)[];\n\tdialogRef: React.MutableRefObject;\n\tonKeyboardDateChange: (date: MaterialUiPickersDate, key: IntervalKey) => void;\n\tonDateChange: (date: MaterialUiPickersDate) => void;\n\tonDatesAccept: () => void;\n\tonDatesCancel: () => void;\n\tclearDates: () => void;\n\tclearAllFilters: () => void;\n\tonAddManualWorkTime: () => void;\n\tonFilterChange: (key: WorkingTimeFilterKeys, value: any) => void;\n\tonSaveRecordPress: (record: WorkingTime | BreakTime) => Promise;\n\tonDeletePress: (record: WorkingTime | BreakTime) => void;\n\tonCancelDialogPress: () => void;\n\tonDeleteRecordDialogPress: () => void;\n\tonStopButtonPressWhenCIDAndRID: (record: WorkingTime) => void;\n\tdownloadTable: () => void;\n\tchangeExportFields: (value: boolean, name: string) => void;\n\texportWorkingTimeFields: any;\n}\nfunction WorkingTimeScreen(props: Props) {\n\tconst [showFilters, setShowFilters] = React.useState(false);\n\tconst classes = useStyles({});\n\tconst globalClasses = useGlobalStyles({ showFilters: showFilters });\n\tconst { t } = useTranslation();\n\tconst filterListRef = React.useRef(null);\n\tconst { user } = useAuthStateContext();\n\tconst { errors, control, watch } = useFormContext();\n\n\tconst onFilterPress = () => setShowFilters((prev) => !prev);\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{t('working_time_screen_title')}\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t !item.value.deleted)}\n\t\t\t\t\tcontrol={control}\n\t\t\t\t\terrors={errors}\n\t\t\t\t\tfromTime={props.fromTime}\n\t\t\t\t\twatch={watch}\n\t\t\t\t\tonAddManualWorkTime={props.onAddManualWorkTime}\n\t\t\t\t\tmanualWorkTime={props.manualWorkTime}\n\t\t\t\t/>\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t{user?.role !== UserRole.QualityAssuranceInspector ? (\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t('working_time_screen_export_add_to')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t {}}\n\t\t\t\t\t\t\t\t\tvalue={props.exportWorkingTimeFields.ExportMaterials}\n\t\t\t\t\t\t\t\t\tdisabled={false}\n\t\t\t\t\t\t\t\t\tname={t('working_time_screen_export_materials')}\n\t\t\t\t\t\t\t\t\tcustomOnChange={props.changeExportFields}\n\t\t\t\t\t\t\t\t\tcustomName={exportWorkingTimeFields.ExportMaterials}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t {}}\n\t\t\t\t\t\t\t\t\tvalue={props.exportWorkingTimeFields.ExportTools}\n\t\t\t\t\t\t\t\t\tdisabled={false}\n\t\t\t\t\t\t\t\t\tname={t('working_time_screen_export_tools')}\n\t\t\t\t\t\t\t\t\tcustomOnChange={props.changeExportFields}\n\t\t\t\t\t\t\t\t\tcustomName={exportWorkingTimeFields.ExportTools}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t {}}\n\t\t\t\t\t\t\t\t\tvalue={props.exportWorkingTimeFields.ExportTravels}\n\t\t\t\t\t\t\t\t\tdisabled={false}\n\t\t\t\t\t\t\t\t\tname={t('working_time_screen_export_travels')}\n\t\t\t\t\t\t\t\t\tcustomOnChange={props.changeExportFields}\n\t\t\t\t\t\t\t\t\tcustomName={exportWorkingTimeFields.ExportTravels}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t {}}\n\t\t\t\t\t\t\t\t\tvalue={props.exportWorkingTimeFields.ExportTransport}\n\t\t\t\t\t\t\t\t\tdisabled={false}\n\t\t\t\t\t\t\t\t\tname={t('working_time_screen_export_transport')}\n\t\t\t\t\t\t\t\t\tcustomOnChange={props.changeExportFields}\n\t\t\t\t\t\t\t\t\tcustomName={exportWorkingTimeFields.ExportTransport}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t
    \n\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t {}}\n\t\t\t\t\t\t\t\tvalue={props.exportWorkingTimeFields.Anonymous}\n\t\t\t\t\t\t\t\tdisabled={false}\n\t\t\t\t\t\t\t\tname={t('working_time_screen_export_anonymous')}\n\t\t\t\t\t\t\t\tcustomOnChange={props.changeExportFields}\n\t\t\t\t\t\t\t\tcustomName={exportWorkingTimeFields.Anonymous}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\tif (e) {\n\t\t\t\t\t\t\t\t\t\t\t\tprops.onFilterChange('reporter', e.value.id.toString());\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\tprops.onFilterChange('reporter', '');\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\toptions={props.allUsers.filter((item) => !item.value.deleted)}\n\t\t\t\t\t\t\t\t\t\tmultiple={false}\n\t\t\t\t\t\t\t\t\t\tvalue={{\n\t\t\t\t\t\t\t\t\t\t\tkey: props.allUsers.find(\n\t\t\t\t\t\t\t\t\t\t\t\t(qai) => qai.value.id.toString() === props.filters.reporter\n\t\t\t\t\t\t\t\t\t\t\t)?.key\n\t\t\t\t\t\t\t\t\t\t\t\t? props.allUsers.find(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t(qai) => qai.value.id.toString() === props.filters.reporter\n\t\t\t\t\t\t\t\t\t\t\t\t )!.key\n\t\t\t\t\t\t\t\t\t\t\t\t: '',\n\t\t\t\t\t\t\t\t\t\t\tvalue: props.filters.reporter,\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\tif (e) {\n\t\t\t\t\t\t\t\t\t\t\t\tprops.onFilterChange('qai', e.value.id.toString());\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\tprops.onFilterChange('qai', '');\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\toptions={props.allUsers.filter((item) => !item.value.deleted)}\n\t\t\t\t\t\t\t\t\t\tmultiple={false}\n\t\t\t\t\t\t\t\t\t\tvalue={{\n\t\t\t\t\t\t\t\t\t\t\tkey: props.allUsers.find(\n\t\t\t\t\t\t\t\t\t\t\t\t(qai) => qai.value.id.toString() === props.filters.qai\n\t\t\t\t\t\t\t\t\t\t\t)?.key\n\t\t\t\t\t\t\t\t\t\t\t\t? props.allUsers.find(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t(qai) => qai.value.id.toString() === props.filters.qai\n\t\t\t\t\t\t\t\t\t\t\t\t )!.key\n\t\t\t\t\t\t\t\t\t\t\t\t: '',\n\t\t\t\t\t\t\t\t\t\t\tvalue: props.filters.qai,\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t props.onFilterChange('billed', e.target.value)}>\n\t\t\t\t\t\t\t\t\t\t{filterWorkingTimeKeyValuePairs.map((item) => (\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t{t(item.key)}\n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t props.onFilterChange('type', e.target.value)}>\n\t\t\t\t\t\t\t\t\t\t{filterRecordTimeTypeKeyValuePairs.map((item) => (\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t\t{t(item.key)}\n\t\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t) : null}\n\t\t\t\t{props.records.length !== 0 ? (\n\t\t\t\t\t\n\t\t\t\t) : null}\n\t\t\t
    \n\t\t\t\n\t\t
    \n\t);\n}\n\ninterface StyleProps {\n\tdisabled?: boolean;\n}\n\nconst useStyles = makeStyles(() => ({\n\tbuttonWrapper: {\n\t\twidth: 'fit-content',\n\t\tbackgroundColor: colors.yellow,\n\t\tborderRadius: 4,\n\t\tborder: `1px solid ${colors.yellow}`,\n\t\tpadding: '12px 24px',\n\t\tcursor: 'pointer',\n\t\t// height: '100%',\n\t\t// marginTop: '15px',\n\t},\n\trow: {\n\t\tdisplay: 'flex',\n\t},\n\trecordWrapper: {\n\t\tmarginTop: '12px',\n\t\tpadding: '20px 16px',\n\t\tbackgroundColor: colors.keyButton,\n\t},\n\ttrackWrapper: {\n\t\tmarginTop: '20px',\n\t\tpadding: '16px',\n\t\tbackgroundColor: colors.lighterYellow,\n\t},\n\ticonWrapper: {\n\t\theight: '30px',\n\t\twidth: '30px',\n\t\tmarginRight: '18px',\n\t\tmarginTop: 'auto',\n\t\tmarginBottom: 'auto',\n\t},\n\ticon: {\n\t\theight: '32px',\n\t\twidth: '32px',\n\t},\n\tinput: (props: StyleProps) => ({\n\t\t...globalInputStyle(props.disabled),\n\t\twhiteSpace: 'pre',\n\t}),\n\trowCenter: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tjustifyContent: 'flex-start',\n\t\tgap: '24px',\n\t},\n\tcheckBoxWrapper: {\n\t\tdisplay: 'flex',\n\t\tflexDirection: 'row',\n\t\tborder: '1px solid #555252',\n\t\tpadding: '12px 24px',\n\t\tgap: '24px',\n\t},\n\tinputWrapper: {\n\t\tminHeight: '20px',\n\t\ttransform: 'translateY(-2px)',\n\t\ttextOverflow: 'ellipsis',\n\t\toverflow: 'hidden',\n\t},\n}));\n\nexport default WorkingTimeScreen;\n","import { MaterialUiPickersDate } from '@material-ui/pickers/typings/date';\nimport moment from 'moment';\nimport React from 'react';\nimport { unstable_batchedUpdates } from 'react-dom';\nimport { FormProvider, useForm } from 'react-hook-form';\nimport { useTranslation } from 'react-i18next';\nimport { useHistory, useParams } from 'react-router-dom';\nimport { IntervalDatePickerDates, IntervalKey } from '../components/IntervalDatePicker';\nimport { StandardDialogInterface } from '../components/StandardDialog';\nimport { LANGUAGE_KEY, languages } from '../consts/language';\nimport { useAuthStateContext } from '../context/auth/useAuth';\nimport { generateAndDownloadExcel } from '../helpers/fileDownloader';\nimport { filterData } from '../helpers/filters';\nimport { ExpensesNavigationInterface } from '../helpers/navigationHelper';\nimport { KeyValue } from '../helpers/userHelper/generalUserHelper';\nimport { getUserOptionsKeyValuePairs } from '../helpers/userHelper/readUserHelper';\nimport { addWorkTime } from '../helpers/workingTimeHelper/createWorkingTimeHelper';\nimport { deleteWorkingTime } from '../helpers/workingTimeHelper/deleteWorkingTimeHelper';\nimport {\n\tExportWorkingTimeInterface,\n\tWorkingTimeFilterInterface,\n\tWorkingTimeFilterKeys,\n\taddWorkingTimeFields,\n\tcalculateTimeDifference,\n\tinitWorkingTimeFilters,\n\ttimeFromUnixToStringFormat,\n\tworkingTimeFields,\n} from '../helpers/workingTimeHelper/generalWorkingTimeHelper';\nimport { onWorkingTimeMount } from '../helpers/workingTimeHelper/readWorkingTimeHelper';\nimport { getUpdateWorkingTimeService } from '../helpers/workingTimeHelper/updateWorkingTimeHelper';\nimport WorkingTimeScreen from '../screens/WorkingTimeScreen';\nimport service from '../service/service';\nimport BreakTime from '../service/types/BreakTime';\nimport { UserRole } from '../service/types/User';\nimport WorkingTime from '../service/types/WorkingTime';\n\nfunction WorkingTimeContainer() {\n\tconst [allUsers, setAllUsers] = React.useState([]);\n\tconst [records, setRecords] = React.useState<(WorkingTime | BreakTime)[]>([]);\n\tconst [filters, setFilters] = React.useState(initWorkingTimeFilters);\n\tconst methods = useForm();\n\tconst [contractData, setContractData] = React.useState({\n\t\tcontractNumber: '',\n\t\tcontractID: 0,\n\t});\n\tconst allRecordsRef = React.useRef<(WorkingTime | BreakTime)[]>([]);\n\tconst dialogRef = React.useRef(null);\n\tconst deleteRecordID = React.useRef();\n\tconst { user } = useAuthStateContext();\n\tconst fromTime = methods.watch(addWorkingTimeFields.from);\n\tconst toTime = methods.watch(addWorkingTimeFields.to);\n\tconst history = useHistory();\n\tconst fetching = React.useRef(false);\n\tconst fetchingRecords = React.useRef(false);\n\tconst routeParmas = useParams();\n\n\tconst [intervalDates, setIntervalDates] = React.useState({\n\t\tfromDate: null,\n\t\ttoDate: null,\n\t});\n\n\tconst [exportWorkingTimeFields, setExportWorkingTimeFields] = React.useState({\n\t\tExportMaterials: false,\n\t\tExportTools: false,\n\t\tExportTravels: false,\n\t\tExportTransport: false,\n\t\tAnonymous: false,\n\t});\n\n\tconst { t } = useTranslation();\n\n\tconst onFilterChange = (key: WorkingTimeFilterKeys, value: string) => {\n\t\tconst tempValue = value === ' ' ? '' : value;\n\t\tsetFilters((prev) => ({ ...prev, [key]: tempValue }));\n\t};\n\n\tconst clearAllFilters = () => {\n\t\tObject.values(workingTimeFields).forEach((val) => methods.setValue(val, ''));\n\t\tsetExportWorkingTimeFields({\n\t\t\tExportMaterials: false,\n\t\t\tExportTools: false,\n\t\t\tExportTravels: false,\n\t\t\tExportTransport: false,\n\t\t\tAnonymous: false,\n\t\t});\n\t\tsetFilters(initWorkingTimeFilters);\n\t};\n\n\tReact.useEffect(() => {\n\t\tsetRecords(filterData(filters, allRecordsRef.current));\n\t}, [filters]);\n\n\tconst manualWorkTime = React.useMemo(() => {\n\t\treturn calculateTimeDifference(fromTime, toTime);\n\t}, [fromTime, toTime]);\n\n\tconst manualWorkTimeFromUnix = React.useMemo(() => {\n\t\treturn timeFromUnixToStringFormat(manualWorkTime);\n\t}, [manualWorkTime]);\n\n\tReact.useEffect(() => {\n\t\tonWorkingTimeMount(history, routeParmas, setContractData);\n\t}, [history, routeParmas]);\n\n\tReact.useEffect(() => {\n\t\tif (contractData.contractID !== 0 && !fetchingRecords.current) {\n\t\t\tfetchingRecords.current = true;\n\t\t\tservice\n\t\t\t\t.getAllRecords(contractData.contractID)\n\t\t\t\t.then((records) => {\n\t\t\t\t\tunstable_batchedUpdates(() => {\n\t\t\t\t\t\tsetRecords(records);\n\t\t\t\t\t\tallRecordsRef.current = records;\n\t\t\t\t\t\tfetchingRecords.current = false;\n\t\t\t\t\t});\n\t\t\t\t})\n\t\t\t\t.catch((e) => {\n\t\t\t\t\tfetchingRecords.current = false;\n\t\t\t\t});\n\t\t}\n\t}, [contractData]);\n\n\tReact.useEffect(() => {\n\t\tif (user && !fetching.current) {\n\t\t\tfetching.current = true;\n\t\t\tgetUserOptionsKeyValuePairs(\n\t\t\t\tuser.role === UserRole.QualityAssuranceInspector ? service.getAllQAIs() : service.getAllUsers(),\n\t\t\t\t() => {}\n\t\t\t)\n\t\t\t\t.then((users) => {\n\t\t\t\t\tlet tempUsers = users.filter((user) => user.value.role !== UserRole.Customer);\n\t\t\t\t\tsetAllUsers(tempUsers);\n\t\t\t\t})\n\t\t\t\t.catch((e) => {\n\t\t\t\t\tfetching.current = false;\n\t\t\t\t});\n\t\t}\n\t}, [user]);\n\n\tconst addWorkingTime = async (data: any) => {\n\t\tif (\n\t\t\tmoment(data[addWorkingTimeFields.from]).isValid() &&\n\t\t\tmoment(data[addWorkingTimeFields.to]).isValid() &&\n\t\t\tmoment(data[addWorkingTimeFields.date]).isValid()\n\t\t) {\n\t\t\tconst newRecord = await addWorkTime(\n\t\t\t\tcontractData.contractID,\n\t\t\t\tuser!,\n\t\t\t\tallUsers,\n\t\t\t\tdata,\n\t\t\t\tmanualWorkTime,\n\t\t\t\tmethods.setValue\n\t\t\t);\n\t\t\tif (newRecord) {\n\t\t\t\tsetRecords((records) => {\n\t\t\t\t\tallRecordsRef.current = [...records, newRecord];\n\t\t\t\t\treturn [...records, newRecord];\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t};\n\n\tconst addRecordToCurrentRecords = (record: WorkingTime) => {\n\t\tsetRecords((records) => {\n\t\t\tallRecordsRef.current = [...records, record];\n\t\t\treturn [...records, record];\n\t\t});\n\t};\n\n\tconst updateRecord = async (record: WorkingTime | BreakTime) => {\n\t\tif (record instanceof WorkingTime) {\n\t\t\tif (moment(record.startTime).isValid() && moment(record.endTime).isValid()) {\n\t\t\t\tconst start = record.startTime;\n\t\t\t\tlet end = record.endTime;\n\n\t\t\t\tif (end < start) {\n\t\t\t\t\tend = end.add(1, 'd');\n\t\t\t\t\trecord.endTime = end;\n\t\t\t\t}\n\t\t\t\tconst duration = end.diff(start);\n\t\t\t\trecord.duration = Math.abs(duration / 1000);\n\t\t\t}\n\t\t}\n\t\tconst res = await getUpdateWorkingTimeService(contractData.contractID, record);\n\t\tif (res) {\n\t\t\tconst recordIndex = records.findIndex((item) => item.id === record.id);\n\t\t\trecords[recordIndex] = record;\n\t\t\tallRecordsRef.current = [...records];\n\t\t\tsetRecords([...records]);\n\t\t}\n\t\treturn res;\n\t};\n\n\tconst openDeleteDialog = (record: WorkingTime | BreakTime) => {\n\t\tdeleteRecordID.current = record;\n\t\tdialogRef.current?.setDialogState(true);\n\t};\n\n\tconst deleteRecord = () =>\n\t\tdeleteWorkingTime(\n\t\t\tservice,\n\t\t\tcontractData.contractID,\n\t\t\tdeleteRecordID.current!,\n\t\t\trecords,\n\t\t\tdialogRef,\n\t\t\tallRecordsRef,\n\t\t\tsetRecords\n\t\t);\n\n\tconst cancelDialog = () => dialogRef.current?.setDialogState(false);\n\n\tconst downloadTable = async () => {\n\t\tlet lan = localStorage.getItem(LANGUAGE_KEY);\n\t\tif (lan === null) {\n\t\t\tlan = languages.deutchland.i18n;\n\t\t}\n\n\t\tconst newFilters = { ...filters, ...exportWorkingTimeFields };\n\t\tconst excelData = await service.createWorkingTimeExcelSheet(contractData.contractID, newFilters, lan);\n\t\texcelData && generateAndDownloadExcel(excelData, t('export_table_hours_overview'), contractData.contractNumber);\n\t};\n\n\tconst onDateChange = React.useCallback(\n\t\t(date: MaterialUiPickersDate) => {\n\t\t\tconst offset = moment(date).utcOffset();\n\t\t\tlet dateMoment = moment(date).add(offset);\n\t\t\tif (!intervalDates.fromDate) {\n\t\t\t\tsetIntervalDates({\n\t\t\t\t\tfromDate: dateMoment,\n\t\t\t\t\ttoDate: null,\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tintervalDates.fromDate &&\n\t\t\t\t!intervalDates.toDate &&\n\t\t\t\tmoment(dateMoment).isSameOrAfter(intervalDates.fromDate)\n\t\t\t) {\n\t\t\t\tsetIntervalDates((prev) => ({\n\t\t\t\t\t...prev,\n\t\t\t\t\ttoDate: dateMoment,\n\t\t\t\t}));\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsetIntervalDates({\n\t\t\t\tfromDate: dateMoment,\n\t\t\t\ttoDate: null,\n\t\t\t});\n\n\t\t\treturn;\n\t\t},\n\t\t[intervalDates]\n\t);\n\n\tconst onKeyboardDateChange = (date: MaterialUiPickersDate, key: IntervalKey) => {\n\t\tconst dateMoment = moment(date).utcOffset(0, true);\n\t\tmethods.clearErrors(['fromDate', 'toDate']);\n\t\tif (key === 'start') {\n\t\t\tif (moment(dateMoment).isSameOrBefore(intervalDates.toDate) || !intervalDates.toDate) {\n\t\t\t\tsetIntervalDates((prev) => ({\n\t\t\t\t\t...prev,\n\t\t\t\t\tfromDate: dateMoment,\n\t\t\t\t}));\n\t\t\t\tsetFilters((prev) => ({\n\t\t\t\t\t...prev,\n\t\t\t\t\tfromDate: dateMoment,\n\t\t\t\t}));\n\t\t\t} else {\n\t\t\t\tmethods.setError('fromDate', { shouldFocus: true, message: t('start_interval_error') });\n\t\t\t}\n\t\t} else if (key === 'end') {\n\t\t\tif (moment(dateMoment).isSameOrAfter(intervalDates.fromDate)) {\n\t\t\t\tsetIntervalDates((prev) => ({\n\t\t\t\t\t...prev,\n\t\t\t\t\ttoDate: dateMoment,\n\t\t\t\t}));\n\t\t\t\tsetFilters((prev) => ({\n\t\t\t\t\t...prev,\n\t\t\t\t\ttoDate: dateMoment,\n\t\t\t\t}));\n\t\t\t} else {\n\t\t\t\tmethods.setError('toDate', { message: t('end_interval_error') });\n\t\t\t}\n\t\t}\n\t};\n\n\tconst onDatesAccept = () => {\n\t\tsetFilters((prev) => ({\n\t\t\t...prev,\n\t\t\tfromDate: intervalDates.fromDate,\n\t\t\ttoDate: intervalDates.toDate,\n\t\t}));\n\t};\n\n\tconst onDatesCancel = () => {\n\t\tconst prevDates: IntervalDatePickerDates = {\n\t\t\tfromDate: filters.fromDate,\n\t\t\ttoDate: filters.toDate,\n\t\t};\n\t\tsetIntervalDates(prevDates);\n\t};\n\n\tconst clearDates = () => {\n\t\tsetFilters((prev) => ({\n\t\t\t...prev,\n\t\t\tfromDate: null,\n\t\t\ttoDate: null,\n\t\t}));\n\n\t\tsetIntervalDates({\n\t\t\tfromDate: null,\n\t\t\ttoDate: null,\n\t\t});\n\t};\n\n\tconst changeExportFields = React.useCallback((value: boolean, name: string) => {\n\t\tsetExportWorkingTimeFields((prev) => ({\n\t\t\t...prev,\n\t\t\t[name]: value,\n\t\t}));\n\t}, []);\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\n\t);\n}\n\nexport default WorkingTimeContainer;\n","import { History, LocationState } from 'history';\nimport { RouteParams } from '../../router/Routes';\nimport service from '../../service/service';\nimport { goToHome } from '../navigationHelper';\nimport { IExpensesContractData } from '../../containers/ExpensesContainer';\n\nexport function onWorkingTimeMount(\n\thistory: History,\n\trouteParams: RouteParams,\n\tsetContractData: (contractData: IExpensesContractData) => void\n) {\n\tif (routeParams.contract_id) {\n\t\tservice\n\t\t\t.getContract(Number(routeParams.contract_id))\n\t\t\t.then((res) => {\n\t\t\t\tif (res)\n\t\t\t\t\tsetContractData({\n\t\t\t\t\t\tcontractID: res.id,\n\t\t\t\t\t\tcontractNumber: res.contractNumber,\n\t\t\t\t\t\tworkLocations: res.workLocations,\n\t\t\t\t\t});\n\t\t\t})\n\t\t\t.catch((e) => {\n\t\t\t\tgoToHome(history);\n\t\t\t});\n\t} else {\n\t\tgoToHome(history);\n\t}\n}\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { TableCellWithCss } from './table/StandardTableCell';\nimport { Control, Controller } from 'react-hook-form';\nimport { ExpenseTabelParamsInterface } from '../consts/material';\nimport { addExpenseFields } from './AddExpensesItem';\nimport { useGlobalStyles } from '../consts/globalStyles';\nimport { AddExpensesItemKeys } from './AddExpensesItem';\nimport KeyValueAutoComplete from './KeyValueAutoComplete';\nimport { KeyValue } from '../helpers/userHelper/generalUserHelper';\nimport { rules } from '../consts/rules';\n\ninterface Props {\n\tparams: ExpenseTabelParamsInterface;\n\tfieldKey: AddExpensesItemKeys;\n\terrors: Record;\n\tcontrol: Control>;\n\tmainClass: string;\n\twrapper: string;\n\tinputKeyValueWrapper: string;\n}\n\nfunction AddExpensesItemKeyValue(props: Props) {\n\tconst globalClasses = useGlobalStyles();\n\tconst { t } = useTranslation();\n\n\treturn (\n\t\t\n\t\t\t {\n\t\t\t\t\t\t\t\t\tif (val && (val.value || typeof val.value === 'boolean')) {\n\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\treturn rules(t).required.message;\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t }\n\t\t\t\t}\n\t\t\t\trender={({ onChange, value }) => (\n\t\t\t\t\t {\n\t\t\t\t\t\t\treturn t(option.key);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\terror={props.errors[addExpenseFields[props.fieldKey]] ? true : false}\n\t\t\t\t\t\thelperText={\n\t\t\t\t\t\t\tprops.errors[addExpenseFields[props.fieldKey]]\n\t\t\t\t\t\t\t\t? props.errors[addExpenseFields[props.fieldKey]].message\n\t\t\t\t\t\t\t\t: ''\n\t\t\t\t\t\t}\n\t\t\t\t\t\tinput={globalClasses.inputTableStyle}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t/>\n\t\t\n\t);\n}\n\nexport default AddExpensesItemKeyValue;\n","import React from 'react';\nimport StandardTextField from './StandardTextField';\nimport { useTranslation } from 'react-i18next';\nimport { TableCellWithCss } from './table/StandardTableCell';\nimport { Control, Controller } from 'react-hook-form';\nimport { ExpenseTabelParamsInterface } from '../consts/material';\nimport { addExpenseFields } from './AddExpensesItem';\nimport { useGlobalStyles } from '../consts/globalStyles';\nimport { AddExpensesItemKeys } from './AddExpensesItem';\nimport { rules } from '../consts/rules';\n\ninterface Props {\n\tparams: ExpenseTabelParamsInterface;\n\tfieldKey: AddExpensesItemKeys;\n\terrors: Record;\n\tcontrol: Control>;\n\tmainClass: string;\n\twrapper: string;\n\tinputTextWrapper: string;\n}\n\nfunction AddExpensesItemStandard(props: Props) {\n\tconst globalClasses = useGlobalStyles();\n\tconst { t } = useTranslation();\n\n\treturn (\n\t\t\n\t\t\t (\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t/>\n\t\t\n\t);\n}\n\nexport default AddExpensesItemStandard;\n","import React from 'react';\nimport { ExpenseTabelParamsInterface } from '../consts/material';\nimport { TableCellWithCss } from './table/StandardTableCell';\n\ninterface Props {\n\tmainClass: string;\n\ttextClass: string;\n\tparams: ExpenseTabelParamsInterface;\n}\nfunction AddExpensesItemStatic(props: Props) {\n\treturn (\n\t\t\n\t\t\t{props.params.value}\n\t\t\n\t);\n}\n\nexport default AddExpensesItemStatic;\n","import moment from 'moment';\nimport React from 'react';\nimport { ExpenseTabelParamsInterface } from '../consts/material';\nimport { TableCellWithCss } from './table/StandardTableCell';\n\ninterface Props {\n\tmainClass: string;\n\ttextClass: string;\n\tparams: ExpenseTabelParamsInterface;\n}\nfunction AddExpensesItemDate(props: Props) {\n\t\n\treturn (\n\t\t\n\t\t\t{moment(props.params.value).format('DD.MM.YYYY')}\n\t\t\n\t);\n}\n\nexport default AddExpensesItemDate;\n","import React from 'react';\nimport { ExpenseTabelParamsInterface } from '../consts/material';\nimport Button from './Button';\nimport { TableCellWithCss } from './table/StandardTableCell';\n\ninterface Props {\n\tmainClass: string;\n\ttextClass: string;\n\tparams: ExpenseTabelParamsInterface;\n\tbuttonWrapper: any;\n\tbuttonText: any;\n}\nfunction AddExpensesItemEdit(props: Props) {\n\treturn (\n\t\t\n\t\t\t{props.params.value}\n\t\t\t null}\n\t\t\t\tbuttonWrapperClassName={props.buttonWrapper}\n\t\t\t\ttext={'Edit'}\n\t\t\t\ttextClassName={props.buttonText}\n\t\t\t/>\n\t\t\n\t);\n}\n\nexport default AddExpensesItemEdit;\n","import React from 'react';\nimport { Control } from 'react-hook-form';\nimport { ExpenseTabelParamsInterface } from '../consts/material';\nimport { AddExpensesItemKeys } from './AddExpensesItem';\nimport AddExpensesItemKeyValue from './AddExpensesItemKeyValue';\nimport AddExpensesItemStandard from './AddExpensesItemStandard';\nimport AddExpensesItemStatic from './AddExpensesItemStatic';\nimport AddExpensesItemDate from './AddExpenseItemDate';\nimport AddExpensesItemEdit from './AddExpensesItemEdit';\n\nexport enum AddExpenseItemCellType {\n\tStandard,\n\tStatic,\n\tKeyValue,\n\tDate,\n\tEdit,\n}\n\ninterface Props {\n\tparams: ExpenseTabelParamsInterface | undefined;\n\tfieldKey: AddExpensesItemKeys;\n\terrors: Record;\n\tcontrol: Control>;\n\tmainClass: string;\n\twrapper: string;\n\tinputTextWrapper: string;\n\tinputKeyValueWrapper: string;\n\ttextClass: string;\n}\n\nfunction AddExpenseItemCell(props: Props) {\n\tif (props.params)\n\t\tswitch (props.params.addType) {\n\t\t\tcase AddExpenseItemCellType.Standard:\n\t\t\t\treturn (\n\t\t\t\t\t\n\t\t\t\t);\n\n\t\t\tcase AddExpenseItemCellType.Edit:\n\t\t\t\treturn (\n\t\t\t\t\t\n\t\t\t\t);\n\t\t\tcase AddExpenseItemCellType.KeyValue:\n\t\t\t\treturn (\n\t\t\t\t\t\n\t\t\t\t);\n\t\t\tcase AddExpenseItemCellType.Static:\n\t\t\t\treturn (\n\t\t\t\t\t\n\t\t\t\t);\n\t\t\tcase AddExpenseItemCellType.Date:\n\t\t\t\treturn (\n\t\t\t\t\t\n\t\t\t\t);\n\t\t}\n\treturn null;\n}\n\nexport default AddExpenseItemCell;\n","import React from 'react';\nimport { makeStyles, TableRow } from '@material-ui/core';\nimport { useForm } from 'react-hook-form';\nimport { TableCellWithCss } from './table/StandardTableCell';\nimport { ExpenseTabelInterface } from '../consts/material';\nimport { colors } from '../consts/colors';\nimport { useGlobalStyles } from '../consts/globalStyles';\nimport { useTranslation } from 'react-i18next';\nimport { fonts } from '../consts/fonts';\nimport AddExpenseItemCell from './AddExpenseItemCell';\nimport { useAuthStateContext } from '../context/auth/useAuth';\nimport { UserRole } from '../service/types/User';\nimport Travel from '../service/types/Travel';\nimport MaterialTool from '../service/types/MaterialTool';\nimport Transport from '../service/types/Transport';\n\ninterface Props {\n\ttableKey: string;\n\texpensesTablePramas: ExpenseTabelInterface;\n\tonAddPressHandler: (data: any) => Promise;\n}\n\nexport const addExpenseFields = {\n\tname: 'name',\n\tquantity: 'quantity',\n\tqai: 'qai',\n\tbilled: 'billed',\n\tprice: 'price',\n\ttravelTime: 'travelTime',\n\tdistance: 'distance',\n\twaitedTime: 'waitedTime',\n\ttypeOfTransport: 'typeOfTransport',\n\ttype: 'type',\n\tedit: 'edit',\n\treporter: 'reporter',\n\tdate: 'date',\n};\n\nconst data = Object.freeze({ ...addExpenseFields });\nexport type AddExpensesItemKeys = keyof typeof data;\n\nfunction AddExpenseTabelItem({ tableKey, expensesTablePramas, onAddPressHandler }: Props) {\n\tconst classes = useStyles({});\n\tconst globalClasses = useGlobalStyles();\n\tconst { control, errors, handleSubmit, setValue } = useForm();\n\tconst { t } = useTranslation();\n\tconst { user } = useAuthStateContext();\n\n\tconst onAddPress = async (data: any) => {\n\t\tconst res = await onAddPressHandler(data).catch(() => {});\n\t\tif (res) {\n\t\t\tObject.values(addExpenseFields).forEach((field) => setValue(field, ''));\n\t\t}\n\t};\n\n\tconst keys: AddExpensesItemKeys[] = React.useMemo(\n\t\t() => Object.keys(expensesTablePramas) as AddExpensesItemKeys[],\n\t\t[expensesTablePramas]\n\t);\n\n\treturn (\n\t\t\n\t\t\t{keys.map((key, index) => {\n\t\t\t\tif (key === 'edit')\n\t\t\t\t\treturn (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{t('expenses_screen_add')}\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t);\n\t\t\t\treturn key === 'billed' && user?.role === UserRole.QualityAssuranceInspector ? null : (\n\t\t\t\t\t\n\t\t\t\t);\n\t\t\t})}\n\t\t
    \n\t);\n}\n\nconst baseWrapper = {\n\tpadding: '0px 14px',\n\toverflow: 'hidden',\n\tleft: '0px',\n\tbackgroundColor: colors.white,\n};\n\nconst useStyles = makeStyles(() => ({\n\titemWrapper: {\n\t\t...baseWrapper,\n\t},\n\titemWrapperStickyLeft: {\n\t\t...baseWrapper,\n\t\tposition: 'sticky',\n\t\tzIndex: 10,\n\t},\n\titemWrapperStickyRight: {\n\t\t...baseWrapper,\n\t\tposition: 'sticky',\n\t\tzIndex: 10,\n\t\tright: '0px',\n\t\tleft: undefined,\n\t},\n\twrapper: {\n\t\twidth: '95%',\n\t},\n\tinputKeyValueWrapper: {\n\t\twidth: '100%',\n\t\tpadding: '6px 0px',\n\t\ttransform: 'translateX(-10px)',\n\t\t'& .MuiInput-input': {\n\t\t\tmargin: 0,\n\t\t\tcolor: colors.darkGray,\n\t\t\tfontSize: '14px',\n\t\t\tlineHeight: '20px',\n\t\t\tfontFamily: fonts.regular,\n\t\t\tborderRadius: '5px',\n\t\t\tpaddingLeft: '12px',\n\t\t},\n\t},\n\tinputTextWrapper: {\n\t\twidth: '100%',\n\t\tpadding: '6px 0px',\n\t},\n\tadd: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tmarginLeft: 'auto',\n\t\tcursor: 'pointer',\n\t\twidth: 'fit-content',\n\t},\n}));\n\nexport default AddExpenseTabelItem;\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core';\nimport SaveIcon from '../svgComponents/SaveIcon';\nimport EditIcon from '../svgComponents/EditIcon';\nimport RemoveIcon from '../svgComponents/RemoveIcon';\nimport DeleteIcon from '../svgComponents/DeleteIcon';\n\ninterface Props {\n\tedit: boolean;\n\tonSavePress: () => void;\n\tonEditPress: () => void;\n\tonCancelPress: () => void;\n\tonDeletePress: () => void;\n}\nfunction ExpensesButtonCellType(props: Props) {\n\tconst classes = useStyles({});\n\treturn (\n\t\t
    \n\t\t\t{props.edit ? (\n\t\t\t\t\n\t\t\t) : (\n\t\t\t\t\n\t\t\t)}\n\t\t\t{props.edit ? (\n\t\t\t\t\n\t\t\t) : (\n\t\t\t\t\n\t\t\t)}\n\t\t
    \n\t);\n}\n\nconst useStyles = makeStyles(() => ({\n\tbuttonsWrapper: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tjustifyContent: 'center',\n\t},\n\teditIconWrapper: {\n\t\tmarginRight: '16px',\n\t\tcursor: 'pointer',\n\t},\n\tcloseIconWrapper: {\n\t\tcursor: 'pointer',\n\t},\n}));\n\nexport default ExpensesButtonCellType;\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core';\nimport { useGlobalStyles } from '../consts/globalStyles';\nimport { Control, Controller } from 'react-hook-form';\nimport { rules, RulesInterface } from '../consts/rules';\nimport { useTranslation } from 'react-i18next';\nimport { colors } from '../consts/colors';\nimport StandardTextField from './StandardTextField';\n\ninterface Props {\n\tedit: boolean;\n\tcontrol: Control>;\n\terrors: Record;\n\tvalue: string | number;\n\tfieldKey: string;\n\tplaceholder?: string;\n\tnumber?: string;\n\trightAlign?: boolean;\n\trules?: Partial;\n\tinputColor?: string;\n}\nfunction ExpensesTextFieldCellType(props: Props) {\n\tconst classes = useStyles({ number: props.number || props.rightAlign ? true : false });\n\tconst globalClasses = useGlobalStyles({\n\t\tnumber: props.number || props.rightAlign ? true : false,\n\t\tinputColor: props.inputColor,\n\t});\n\tconst { t } = useTranslation();\n\n\treturn !props.edit ? (\n\t\t
    \n\t\t\t\n\t\t\t\t{props.value}\n\t\t\t\n\t\t
    \n\t) : (\n\t\t (\n\t\t\t\t\n\t\t\t)}\n\t\t/>\n\t);\n}\n\ninterface StyleProps {\n\tnumber: boolean;\n}\n\nconst useStyles = makeStyles(() => ({\n\twrapper: {\n\t\twidth: '95%',\n\t},\n\tinputWrapper: {\n\t\twidth: '100%',\n\t\tpadding: '6px 0px',\n\t\tborderBottom: `1px solid ${colors.timetrackBorderd}`,\n\t},\n\tinputEndWrapper: {\n\t\twidth: '95%',\n\t\tmarginLeft: 'auto',\n\t},\n\ttextWrapper: (p: StyleProps) => ({\n\t\tdisplay: 'flex',\n\t\talignContent: 'center',\n\t\tjustifyContent: p.number ? 'flex-end' : 'flex-start',\n\t}),\n}));\n\nexport default ExpensesTextFieldCellType;\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core';\nimport { useGlobalStyles } from '../consts/globalStyles';\nimport { Control, Controller } from 'react-hook-form';\nimport KeyValueAutoComplete from './KeyValueAutoComplete';\nimport { KeyValue } from '../helpers/userHelper/generalUserHelper';\nimport { rules } from '../consts/rules';\nimport { useTranslation } from 'react-i18next';\nimport { colors } from '../consts/colors';\nimport { fonts } from '../consts/fonts';\nimport BilledItem from './BilledItem';\n\ninterface Props {\n\tedit: boolean;\n\tcontrol: Control>;\n\terrors: Record;\n\tvalueID: number | boolean;\n\tvalues: KeyValue[];\n\tfieldKey: string;\n\tplaceholder: string;\n\tinputColor: string;\n\tshowAsValue?: boolean;\n}\nfunction ExpensesKeyValueCellType(props: Props) {\n\tconst classes = useStyles({ inputColor: props.inputColor });\n\tconst globalClasses = useGlobalStyles();\n\tconst { t } = useTranslation();\n\n\tconst currentValue = React.useMemo(() => {\n\t\tif (typeof props.valueID === 'boolean') return props.values.find((value) => value.value === props.valueID);\n\t\tif (props.values.length !== 0 && typeof props.values[0].value === 'number')\n\t\t\treturn props.values.find((value) => value.value === props.valueID);\n\t\treturn props.values.find((value) => value.value.id === props.valueID);\n\t}, [props.valueID, props.values]);\n\n\treturn !props.edit ? (\n\t\ttypeof props.valueID === 'boolean' ? (\n\t\t\t\n\t\t) : (\n\t\t\t\n\t\t\t\t{currentValue ? (props.showAsValue ? currentValue.value.id : t(currentValue.key)) : ''}\n\t\t\t\n\t\t)\n\t) : (\n\t\t {\n\t\t\t\t\tif (val && val.value !== undefined) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\treturn rules(t).required.message;\n\t\t\t\t},\n\t\t\t}}\n\t\t\trender={({ onChange, value }) => (\n\t\t\t\t\n\t\t\t)}\n\t\t/>\n\t);\n}\n\ninterface StyleProps {\n\tinputColor: string;\n}\n\nconst useStyles = makeStyles(() => ({\n\tinputWrapper: {\n\t\twidth: '95%',\n\t},\n\n\tinputAddWrapper: (p: StyleProps) => ({\n\t\twidth: '100%',\n\t\tpadding: '6px 0px',\n\t\tborderBottom: `1px solid ${colors.timetrackBorderd}`,\n\t\ttransform: 'translateX(-10px)',\n\t\t'& .MuiInput-input': {\n\t\t\tmargin: 0,\n\t\t\tcolor: p.inputColor ? p.inputColor : colors.darkGray,\n\t\t\tfontSize: '14px',\n\t\t\tlineHeight: '20px',\n\t\t\tfontFamily: fonts.regular,\n\t\t\tborderRadius: '5px',\n\t\t\tpaddingLeft: '12px',\n\t\t},\n\t}),\n}));\n\nexport default ExpensesKeyValueCellType;\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core';\nimport { useGlobalStyles } from '../consts/globalStyles';\nimport { Control, Controller } from 'react-hook-form';\nimport { rules, RulesInterface } from '../consts/rules';\nimport { useTranslation } from 'react-i18next';\nimport { colors } from '../consts/colors';\nimport moment from 'moment';\nimport StandardDatePicker from './StandardDatePicker';\n\ninterface Props {\n\tedit: boolean;\n\tcontrol: Control>;\n\terrors: Record;\n\tvalue: string | number;\n\tfieldKey: string;\n\tplaceholder?: string;\n\tnumber?: string;\n\trightAlign?: boolean;\n\trules?: Partial;\n\tinputColor?: string;\n}\nfunction ExpensesTextFieldCellType(props: Props) {\n\tconst classes = useStyles({ number: props.number || props.rightAlign ? true : false });\n\tconst globalClasses = useGlobalStyles({\n\t\tnumber: props.number || props.rightAlign ? true : false,\n\t\tinputColor: props.inputColor,\n\t});\n\tconst { t } = useTranslation();\n\n\treturn !props.edit ? (\n\t\t
    \n\t\t\t\n\t\t\t\t{moment(props.value).format('DD.MM.YYYY')}\n\t\t\t\n\t\t
    \n\t) : (\n\t\t (\n\t\t\t\t\n\t\t\t)}\n\t\t/>\n\t);\n}\n\ninterface StyleProps {\n\tnumber: boolean;\n}\n\nconst useStyles = makeStyles(() => ({\n\twrapper: {\n\t\twidth: '95%',\n\t},\n\tinputWrapper: {\n\t\twidth: '100%',\n\t\tpadding: '6px 0px',\n\t\tborderBottom: `1px solid ${colors.timetrackBorderd}`,\n\t},\n\tinputEndWrapper: {\n\t\twidth: '95%',\n\t\tmarginLeft: 'auto',\n\t},\n\ttextWrapper: (p: StyleProps) => ({\n\t\tdisplay: 'flex',\n\t\talignContent: 'center',\n\t\tjustifyContent: 'flex-start',\n\t}),\n}));\n\nexport default ExpensesTextFieldCellType;\n","import React, { useState } from 'react';\nimport { makeStyles } from '@material-ui/core';\nimport { useGlobalStyles } from '../consts/globalStyles';\nimport { Control } from 'react-hook-form';\nimport { RulesInterface } from '../consts/rules';\nimport { colors } from '../consts/colors';\nimport Button from './Button';\nimport { goToInvoice } from '../helpers/navigationHelper';\nimport { useHistory } from 'react-router-dom';\nimport service from '../service/service';\nimport { InvoiceItem } from '../service/types/Invoice';\n\ninterface Props {\n\tedit: boolean;\n\tcontrol: Control>;\n\terrors: Record;\n\tvalue: number;\n\tfieldKey: string;\n\tplaceholder?: string;\n\tnumber?: string;\n\trightAlign?: boolean;\n\trules?: Partial;\n\tinputColor?: string;\n\tcontractNumber?: string;\n}\nfunction ExpensesEditFieldCellType(props: Props) {\n\tconst classes = useStyles({ number: props.number || props.rightAlign ? true : false });\n\tconst globalClasses = useGlobalStyles({\n\t\tnumber: props.number || props.rightAlign ? true : false,\n\t\tinputColor: props.inputColor,\n\t});\n\n\tconst history = useHistory();\n\tconst [, setInvoice] = useState(undefined);\n\tconst handleClick = async () => {\n\t\t// e.preventDefault(x/);\n\n\t\tawait service.getInvoiceById(props.value).then((res) => {\n\t\t\tsetInvoice(res);\n\t\t\tgoToInvoice(history, res);\n\t\t});\n\n\t\t// if (invoice)\n\t};\n\treturn (\n\t\t
    \n\t\t\t\n\t\t\t\t{props.value}\n\t\t\t\n\t\t\t\n\t\t
    \n\t);\n}\n\ninterface StyleProps {\n\tnumber: boolean;\n}\n\nconst useStyles = makeStyles(() => ({\n\twrapper: {\n\t\twidth: '95%',\n\t},\n\tinputWrapper: {\n\t\twidth: '100%',\n\t\tpadding: '6px 0px',\n\t\tborderBottom: `1px solid ${colors.timetrackBorderd}`,\n\t},\n\tinputEndWrapper: {\n\t\twidth: '95%',\n\t\tmarginLeft: 'auto',\n\t},\n\ttextWrapper: (p: StyleProps) => ({\n\t\tdisplay: 'flex',\n\t\tplaceContent: 'space-between',\n\t}),\n\tbuttonText: (p: StyleProps) => ({\n\t\tfontSize: '12px',\n\t\tlineHeight: '16px',\n\t\tletterSpacing: '0.4px',\n\t\t// fontFamily: fonts.semiBold,\n\t\tcolor: `rgba(26, 26, 26, 1})`,\n\t}),\n\tbuttonWrapper: {\n\t\tcursor: 'pointer',\n\t\tpadding: '4px 19px',\n\t\tmargin: '0px 10px',\n\t\tborderRadius: '4px',\n\t\tbackground: 'rgba(255, 214, 0, 1)',\n\t\twidth: 'fit-content',\n\t},\n}));\n\nexport default ExpensesEditFieldCellType;\n","import React from 'react';\nimport { ExpenseTabelParamsInterface } from '../consts/material';\nimport { addExpenseFields, AddExpensesItemKeys } from './AddExpensesItem';\nimport { Control } from 'react-hook-form';\nimport { AddExpenseItemCellType } from './AddExpenseItemCell';\nimport { TableCellWithCss } from './table/StandardTableCell';\nimport ExpensesTextFieldCellType from './ExpensesTextFieldCellType';\nimport MaterialTool from '../service/types/MaterialTool';\nimport Travel from '../service/types/Travel';\nimport Transport from '../service/types/Transport';\nimport ExpensesKeyValueCellType from './ExpensesKeyValueCellType';\nimport { KeyValue } from '../helpers/userHelper/generalUserHelper';\nimport ExpensesDateFieldCellType from './ExpensesDateFieldCellType';\nimport ExpensesEditFieldCellType from './ExpensesEditFieldCellType';\n// import Contract from '../service/types/Contract';\n\ninterface Props {\n\tparams: ExpenseTabelParamsInterface | undefined;\n\tfieldKey: AddExpensesItemKeys;\n\terrors: Record;\n\tcontrol: Control>;\n\titemClass: string;\n\tedit: boolean;\n\tisSummary: boolean;\n\texpense: MaterialTool | Travel | Transport;\n\treporter: KeyValue | undefined;\n\ttextClass: string;\n\tinputColor: string;\n\tcontractNumber?: string;\n}\nfunction ExpensesItemCell(props: Props) {\n\tif (props.params)\n\t\tswitch (props.params.addType) {\n\t\t\tcase AddExpenseItemCellType.Standard:\n\t\t\t\treturn (\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t);\n\t\t\tcase AddExpenseItemCellType.KeyValue:\n\t\t\t\treturn (\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t);\n\t\t\tcase AddExpenseItemCellType.Static:\n\t\t\t\treturn (\n\t\t\t\t\t\n\t\t\t\t\t\t{props.reporter?.key}\n\t\t\t\t\t\n\t\t\t\t);\n\t\t\tcase AddExpenseItemCellType.Date:\n\t\t\t\treturn (\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t);\n\n\t\t\tcase AddExpenseItemCellType.Edit:\n\t\t\t\treturn (\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t);\n\t\t}\n\treturn null;\n}\n\nexport default ExpensesItemCell;\n","import React from 'react';\nimport { makeStyles, TableRow } from '@material-ui/core';\nimport MaterialTool from '../service/types/MaterialTool';\nimport { useForm } from 'react-hook-form';\nimport { TableCellWithCss } from './table/StandardTableCell';\nimport { ExpenseTabelInterface } from '../consts/material';\nimport { colors } from '../consts/colors';\nimport { KeyValue } from '../helpers/userHelper/generalUserHelper';\nimport ExpensesButtonCellType from './ExpensesButtonsCellType';\nimport { useGlobalStyles } from '../consts/globalStyles';\nimport { AddExpensesItemKeys } from './AddExpensesItem';\nimport Travel from '../service/types/Travel';\nimport { UserRole } from '../service/types/User';\nimport { useAuthStateContext } from '../context/auth/useAuth';\nimport Transport from '../service/types/Transport';\nimport ExpensesItemCell from './ExpensesItemCell';\n\ninterface Props {\n\texpense: MaterialTool | Travel | Transport;\n\ttableKey: string;\n\texpenseTablePramas: ExpenseTabelInterface;\n\tusers: KeyValue[];\n\tisSummary: boolean;\n\tindex: number;\n\tonUpdatePress: (expense: MaterialTool | Travel | Transport, data: any) => Promise;\n\tonDeletePress: (expenseID: number) => void;\n\tcontractNumber?: string;\n}\n\nfunction ExpenseTabelItem({\n\texpense,\n\ttableKey,\n\texpenseTablePramas,\n\tusers,\n\tisSummary,\n\tindex,\n\tcontractNumber,\n\tonUpdatePress,\n\tonDeletePress,\n}: Props) {\n\tconst classes = useStyles({ isSummary: isSummary, index: index });\n\tconst globalClasses = useGlobalStyles();\n\tconst [edit, setEdit] = React.useState(false);\n\tconst { control, errors, handleSubmit } = useForm();\n\tconst { user } = useAuthStateContext();\n\n\tconst onCancelPress = () => setEdit(false);\n\n\tconst onEditPress = () => setEdit(true);\n\n\tconst onSavePress = async (data: any) => {\n\t\tonUpdatePress(expense, data).then((res) => res && setEdit(false));\n\t};\n\n\tconst onDeletePressHandler = () => {\n\t\tonDeletePress(expense.id);\n\t};\n\n\tconst reporter = React.useMemo(() => {\n\t\treturn users.find((user) => user.value.id === expense.reporter);\n\t}, [expense, users]);\n\n\tconst stickyClass = React.useMemo(\n\t\t() => (index % 2 ? classes.itemWrapperStickyInverted : classes.itemWrapperSticky),\n\t\t[index, classes]\n\t);\n\n\tconst itemClass = React.useMemo(\n\t\t() => (index % 2 ? classes.itemWrapperInverted : classes.itemWrapper),\n\t\t[index, classes]\n\t);\n\n\tconst keys: AddExpensesItemKeys[] = React.useMemo(\n\t\t() => Object.keys(expenseTablePramas) as AddExpensesItemKeys[],\n\t\t[expenseTablePramas]\n\t);\n\n\treturn (\n\t\t\n\t\t\t{keys.map((key, index) => {\n\t\t\t\tif (key === 'edit')\n\t\t\t\t\treturn (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{isSummary ? null : (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\n\t\t\t\t\t);\n\t\t\t\treturn key === 'billed' && user?.role === UserRole.QualityAssuranceInspector ? null : (\n\t\t\t\t\t\n\t\t\t\t);\n\t\t\t})}\n\t\t\n\t);\n}\n\nconst baseWrapper = {\n\talignItems: 'center',\n\tpadding: '14px 16px',\n\toverflow: 'hidden',\n\tleft: '0px',\n\tbackgroundColor: colors.keyButton,\n};\n\ninterface StyleProps {\n\tisSummary?: boolean;\n\tindex: number;\n}\n\nconst useStyles = makeStyles(() => ({\n\titemWrapper: {\n\t\t...baseWrapper,\n\t},\n\titemWrapperSticky: {\n\t\t...baseWrapper,\n\t\tposition: 'sticky',\n\t\tbackgroundColor: colors.darkGray,\n\t},\n\titemWrapperInverted: {\n\t\t...baseWrapper,\n\t\tbackgroundColor: '#d6d6d6',\n\t},\n\titemWrapperStickyInverted: {\n\t\t...baseWrapper,\n\t\tposition: 'sticky',\n\t\tbackgroundColor: colors.lightDarkGray,\n\t},\n\titemWrapperStickyRight: (p: StyleProps) => ({\n\t\t...baseWrapper,\n\t\tposition: 'sticky',\n\t\tright: '0px',\n\t\tleft: undefined,\n\t\tbackgroundColor: p.isSummary ? (p.index % 2 === 0 ? colors.keyButton : '#d6d6d6') : colors.someDarkYellow,\n\t}),\n}));\n\nexport default ExpenseTabelItem;\n","import React from 'react';\nimport { makeStyles, Table, TableBody, TableContainer, TableHead, TableRow } from '@material-ui/core';\nimport { useGlobalStyles } from '../consts/globalStyles';\nimport ReactList from 'react-list';\nimport MaterialTool from '../service/types/MaterialTool';\nimport StandardTableCell from './table/StandardTableCell';\nimport AddExpenseTabelItem from './AddExpensesItem';\nimport Travel from '../service/types/Travel';\nimport { Expenses, ExpensesKeys } from '../helpers/expenses/generalExpensesHelper';\nimport { useAuthStateContext } from '../context/auth/useAuth';\nimport { UserRole } from '../service/types/User';\nimport Transport from '../service/types/Transport';\nimport ExpenseTabelItem from './ExpensesTabelItem';\nimport { KeyValue } from '../helpers/userHelper/generalUserHelper';\n\ninterface Props {\n\ttableKey: string;\n\texpenses: Expenses;\n\texpensesTableParams: Expenses;\n\ttabType: ExpensesKeys;\n\tisSummary: boolean;\n\tusers: KeyValue[];\n\tonAddPress: (data: any) => Promise;\n\tonUpdatePress: (expense: MaterialTool | Travel | Transport, data: any) => Promise;\n\tonDeletePress: (expenseID: number) => void;\n\tcontractNumber?: string;\n}\nfunction ExpensesTabel(props: Props) {\n\tconst classes = useStyles({ isSummary: props.isSummary });\n\tconst globalClasses = useGlobalStyles();\n\tconst { user } = useAuthStateContext();\n\tconst keys = React.useMemo(\n\t\t() => Object.keys(props.expensesTableParams[props.tabType]),\n\t\t[props.expensesTableParams, props.tabType]\n\t);\n\n\treturn (\n\t\t
    \n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{keys.map((key: any, index, array) => {\n\t\t\t\t\t\t\t\treturn key === 'billed' && user?.role === UserRole.QualityAssuranceInspector ? null : (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t//@ts-ignore\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{props.isSummary ? null : (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t{items}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t\titemRenderer={(index) => (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t);\n}\n\ninterface StyleProps {\n\tisSummary?: boolean;\n}\n\nconst useStyles = makeStyles(() => ({\n\tcontainer: (p: StyleProps) => ({\n\t\tmargin: `${p.isSummary ? 0 : 28}px 0px 48px`,\n\t\toverflow: 'auto',\n\t}),\n\tfixed: {\n\t\ttableLayout: 'fixed',\n\t\tborderCollapse: 'separate',\n\t},\n\ttableContainer: {\n\t\tmaxHeight: '502px',\n\t},\n}));\n\nexport default ExpensesTabel;\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport { useGlobalStyles } from '../consts/globalStyles';\nimport { colors } from '../consts/colors';\nimport { ExpensesKeys } from '../helpers/expenses/generalExpensesHelper';\n\ninterface Props {\n\ttitle: string;\n\tactive: ExpensesKeys;\n\ttype: ExpensesKeys;\n\tonPress: (type: ExpensesKeys) => void;\n}\nfunction TabTitle(props: Props) {\n\tconst classes = useStyles({});\n\tconst globalClasses = useGlobalStyles();\n\tconst { t } = useTranslation();\n\n\tconst underlineClass = React.useMemo(\n\t\t() => (props.active === props.type ? classes.underlineDark : classes.underlineLight),\n\t\t[props.active, props.type, classes.underlineDark, classes.underlineLight]\n\t);\n\n\tconst titleClass = React.useMemo(\n\t\t() => (props.active === props.type ? globalClasses.mediumTextSemiDark : globalClasses.mediumTextSemiLight),\n\t\t[props.active, props.type, globalClasses.mediumTextSemiDark, globalClasses.mediumTextSemiLight]\n\t);\n\n\treturn (\n\t\t
    props.onPress(props.type)}>\n\t\t\t{t(props.title)}\n\t\t\t
    \n\t\t
    \n\t);\n}\n\nconst useStyles = makeStyles(() => ({\n\tsubtitleWrapper: {\n\t\tmarginRight: '28px',\n\t\tcursor: 'pointer',\n\t},\n\tunderlineDark: {\n\t\twidth: '100%',\n\t\theight: '1px',\n\t\tbackgroundColor: colors.darkGray,\n\t},\n\tunderlineLight: {\n\t\twidth: '100%',\n\t\theight: '1px',\n\t\tbackgroundColor: colors.lightGray,\n\t},\n}));\n\nexport default TabTitle;\n","import { AddExpenseItemCellType } from '../components/AddExpenseItemCell';\nimport { TableCellType } from '../components/table/StandardTableCell';\nimport { billedOptions } from '../helpers/expenses/generalExpensesHelper';\nimport { KeyValue } from '../helpers/userHelper/generalUserHelper';\nimport User from '../service/types/User';\nimport { rules, RulesInterface } from './rules';\n\nexport interface ExpenseTabelParamsInterface {\n\ttitleType: TableCellType;\n\ttitle: string;\n\twidth: string;\n\tplaceholder: string;\n\taddType: AddExpenseItemCellType;\n\tinputType: 'number' | undefined;\n\trightAlign: boolean;\n\trules?: Partial;\n\toptions?: KeyValue[];\n\tvalue?: string;\n\tshowAsValue?: boolean;\n}\n\nexport interface ExpenseTabelInterface {\n\tid?: ExpenseTabelParamsInterface;\n\tqai?: ExpenseTabelParamsInterface;\n\tbilled?: ExpenseTabelParamsInterface;\n\treporter?: ExpenseTabelParamsInterface;\n\tedit?: ExpenseTabelParamsInterface;\n\tdate?: ExpenseTabelParamsInterface;\n\tdate_of_invoice?: ExpenseTabelParamsInterface;\n\tfrom_date?: ExpenseTabelParamsInterface;\n\tto_date?: ExpenseTabelParamsInterface;\n\tname?: ExpenseTabelParamsInterface;\n\tquantity?: ExpenseTabelParamsInterface;\n\tprice?: ExpenseTabelParamsInterface;\n\ttravelTime?: ExpenseTabelParamsInterface;\n\tdistance?: ExpenseTabelParamsInterface;\n\twaitedTime?: ExpenseTabelParamsInterface;\n\ttypeOfTransport?: ExpenseTabelParamsInterface;\n\ttype?: ExpenseTabelParamsInterface;\n}\n\nexport const materialTabelParams = (\n\tusers: KeyValue[],\n\tuser: User | undefined,\n\tt: (message: string) => string\n): ExpenseTabelInterface => ({\n\tname: {\n\t\ttitleType: TableCellType.Title,\n\t\ttitle: 'expenses_screen_material_table_name_title',\n\t\twidth: '22.66vh',\n\t\tplaceholder: 'expenses_screen_material_table_name_placeholder',\n\t\tinputType: undefined,\n\t\trightAlign: false,\n\t\taddType: AddExpenseItemCellType.Standard,\n\t},\n\tdate: {\n\t\ttitleType: TableCellType.Title,\n\t\ttitle: 'invoice_screen_creation_date',\n\t\twidth: '15.66vh',\n\t\tplaceholder: 'invoice_screen_creation_date',\n\t\taddType: AddExpenseItemCellType.Date,\n\t\tinputType: undefined,\n\t\trightAlign: true,\n\t},\n\tquantity: {\n\t\ttitleType: TableCellType.Title,\n\t\ttitle: 'expenses_screen_material_table_quantity_title',\n\t\twidth: '80px',\n\t\tplaceholder: 'expenses_screen_material_table_quantity_placeholder',\n\t\tinputType: 'number',\n\t\trightAlign: true,\n\t\taddType: AddExpenseItemCellType.Standard,\n\t\trules: {\n\t\t\tpattern: rules(t).numberPatternBelow999,\n\t\t\trequired: rules(t).required,\n\t\t},\n\t},\n\treporter: {\n\t\ttitleType: TableCellType.Title,\n\t\ttitle: 'expenses_screen_table_reporter_title',\n\t\twidth: '20.438vh',\n\t\tplaceholder: '',\n\t\tinputType: undefined,\n\t\trightAlign: false,\n\t\taddType: AddExpenseItemCellType.Static,\n\t\tvalue: `${user?.firstName} ${user?.lastName}`,\n\t},\n\tqai: {\n\t\ttitleType: TableCellType.Title,\n\t\ttitle: 'expenses_screen_table_qai_title',\n\t\twidth: '22.414vh',\n\t\tplaceholder: 'expenses_screen_name',\n\t\toptions: users,\n\t\tinputType: undefined,\n\t\trightAlign: false,\n\t\taddType: AddExpenseItemCellType.KeyValue,\n\t},\n\tbilled: {\n\t\ttitleType: TableCellType.Title,\n\t\ttitle: 'expenses_screen_status',\n\t\twidth: '15.66vh',\n\t\tplaceholder: 'expenses_screen_status',\n\t\tinputType: undefined,\n\t\trightAlign: false,\n\t\toptions: billedOptions,\n\t\taddType: AddExpenseItemCellType.KeyValue,\n\t},\n\tedit: {\n\t\ttitleType: TableCellType.Title,\n\t\ttitle: '',\n\t\twidth: '50px',\n\t\tplaceholder: '',\n\t\tinputType: undefined,\n\t\trightAlign: false,\n\t\taddType: AddExpenseItemCellType.Static,\n\t},\n});\n","import { AddExpenseItemCellType } from '../components/AddExpenseItemCell';\nimport { TableCellType } from '../components/table/StandardTableCell';\nimport { billedOptions } from '../helpers/expenses/generalExpensesHelper';\nimport { KeyValue } from '../helpers/userHelper/generalUserHelper';\nimport User from '../service/types/User';\nimport { ExpenseTabelInterface } from './material';\nimport { rules } from './rules';\n\nexport const toolTabelParams = (\n\tusers: KeyValue[],\n\tuser: User | undefined,\n\tt: (message: string) => string\n): ExpenseTabelInterface => ({\n\tname: {\n\t\ttitleType: TableCellType.Title,\n\t\ttitle: 'expenses_screen_tool_table_name_title',\n\t\twidth: '22.66vh',\n\t\tplaceholder: 'expenses_screen_tool_table_name_placeholder',\n\t\tinputType: undefined,\n\t\trightAlign: false,\n\t\taddType: AddExpenseItemCellType.Standard,\n\t},\n\tdate: {\n\t\ttitleType: TableCellType.Title,\n\t\ttitle: 'invoice_screen_creation_date',\n\t\twidth: '15.66vh',\n\t\tplaceholder: 'invoice_screen_creation_date',\n\t\taddType: AddExpenseItemCellType.Date,\n\t\tinputType: undefined,\n\t\trightAlign: true,\n\t},\n\tquantity: {\n\t\ttitleType: TableCellType.Title,\n\t\ttitle: 'expenses_screen_tool_table_quantity_title',\n\t\twidth: '80px',\n\t\tplaceholder: 'expenses_screen_tool_table_quantity_placeholder',\n\t\tinputType: 'number',\n\t\trightAlign: true,\n\t\taddType: AddExpenseItemCellType.Standard,\n\t\trules: {\n\t\t\tpattern: rules(t).numberPatternBelow999,\n\t\t\trequired: rules(t).required,\n\t\t},\n\t},\n\tprice: {\n\t\ttitleType: TableCellType.Title,\n\t\ttitle: 'expenses_screen_tool_table_price_title',\n\t\twidth: '80px',\n\t\tplaceholder: '€',\n\t\tinputType: 'number',\n\t\trightAlign: true,\n\t\taddType: AddExpenseItemCellType.Standard,\n\t\trules: {\n\t\t\tpattern: rules(t).numberPatternAny,\n\t\t\trequired: rules(t).required,\n\t\t},\n\t},\n\treporter: {\n\t\ttitleType: TableCellType.Title,\n\t\ttitle: 'expenses_screen_table_reporter_title',\n\t\twidth: '20.438vh',\n\t\tplaceholder: '',\n\t\tinputType: undefined,\n\t\trightAlign: false,\n\t\taddType: AddExpenseItemCellType.Static,\n\t\tvalue: `${user?.firstName} ${user?.lastName}`,\n\t},\n\tqai: {\n\t\ttitleType: TableCellType.Title,\n\t\ttitle: 'expenses_screen_table_qai_title',\n\t\twidth: '22.414vh',\n\t\tplaceholder: 'expenses_screen_name',\n\t\toptions: users,\n\t\tinputType: undefined,\n\t\trightAlign: false,\n\t\taddType: AddExpenseItemCellType.KeyValue,\n\t},\n\tbilled: {\n\t\ttitleType: TableCellType.Title,\n\t\ttitle: 'expenses_screen_status',\n\t\twidth: '15.66vh',\n\t\tplaceholder: 'expenses_screen_status',\n\t\tinputType: undefined,\n\t\trightAlign: false,\n\t\toptions: billedOptions,\n\t\taddType: AddExpenseItemCellType.KeyValue,\n\t},\n\tedit: {\n\t\ttitleType: TableCellType.Title,\n\t\ttitle: '',\n\t\twidth: '50px',\n\t\tplaceholder: '',\n\t\tinputType: undefined,\n\t\trightAlign: false,\n\t\taddType: AddExpenseItemCellType.Static,\n\t},\n});\n","import { AddExpenseItemCellType } from '../components/AddExpenseItemCell';\nimport { TableCellType } from '../components/table/StandardTableCell';\nimport { billedOptions, TransportOptions } from '../helpers/expenses/generalExpensesHelper';\nimport { KeyValue } from '../helpers/userHelper/generalUserHelper';\nimport User from '../service/types/User';\nimport { ExpenseTabelInterface } from './material';\n\nexport const transportTabelParams = (users: KeyValue[], user: User | undefined): ExpenseTabelInterface => ({\n\ttype: {\n\t\ttitleType: TableCellType.Title,\n\t\ttitle: 'expenses_screen_transport_table_name_title',\n\t\twidth: '22.66vh',\n\t\tplaceholder: 'expenses_screen_transport_table_name_placeholder',\n\t\tinputType: undefined,\n\t\trightAlign: false,\n\t\taddType: AddExpenseItemCellType.KeyValue,\n\t\toptions: TransportOptions,\n\t},\n\tdate: {\n\t\ttitleType: TableCellType.Title,\n\t\ttitle: 'invoice_screen_creation_date',\n\t\twidth: '15.66vh',\n\t\tplaceholder: 'invoice_screen_creation_date',\n\t\taddType: AddExpenseItemCellType.Date,\n\t\tinputType: undefined,\n\t\trightAlign: true,\n\t},\n\treporter: {\n\t\ttitleType: TableCellType.Title,\n\t\ttitle: 'expenses_screen_table_reporter_title',\n\t\twidth: '20.438vh',\n\t\tplaceholder: '',\n\t\tinputType: undefined,\n\t\trightAlign: false,\n\t\taddType: AddExpenseItemCellType.Static,\n\t\tvalue: `${user?.firstName} ${user?.lastName}`,\n\t},\n\tqai: {\n\t\ttitleType: TableCellType.Title,\n\t\ttitle: 'expenses_screen_table_qai_title',\n\t\twidth: '22.414vh',\n\t\tplaceholder: 'expenses_screen_name',\n\t\toptions: users,\n\t\tinputType: undefined,\n\t\trightAlign: false,\n\t\taddType: AddExpenseItemCellType.KeyValue,\n\t},\n\tbilled: {\n\t\ttitleType: TableCellType.Title,\n\t\ttitle: 'expenses_screen_status',\n\t\twidth: '15.66vh',\n\t\tplaceholder: 'expenses_screen_status',\n\t\tinputType: undefined,\n\t\trightAlign: false,\n\t\toptions: billedOptions,\n\t\taddType: AddExpenseItemCellType.KeyValue,\n\t},\n\tedit: {\n\t\ttitleType: TableCellType.Title,\n\t\ttitle: '',\n\t\twidth: '50px',\n\t\tplaceholder: '',\n\t\tinputType: undefined,\n\t\trightAlign: false,\n\t\taddType: AddExpenseItemCellType.Static,\n\t},\n});\n","import { AddExpenseItemCellType } from '../components/AddExpenseItemCell';\nimport { TableCellType } from '../components/table/StandardTableCell';\nimport { billedOptions, TravelOptions } from '../helpers/expenses/generalExpensesHelper';\nimport { KeyValue } from '../helpers/userHelper/generalUserHelper';\nimport { IContractWorkLocation } from '../service/types/Contract';\nimport User from '../service/types/User';\nimport { ExpenseTabelInterface } from './material';\n\nexport function travelRules(regex: RegExp, t: (value: string) => string) {\n\treturn {\n\t\trequired: {\n\t\t\tvalue: true,\n\t\t\tmessage: t('field_required'),\n\t\t},\n\t\tpattern: {\n\t\t\tvalue: regex,\n\t\t\tmessage: t('expenses_screen_travel_table_pattern'),\n\t\t},\n\t};\n}\n\nexport const travelTabelParams = (\n\tt: (value: string) => string,\n\tusers: KeyValue[],\n\tuser: User | undefined,\n\tworkLocations: IContractWorkLocation[]\n): ExpenseTabelInterface => ({\n\ttravelTime: {\n\t\ttitleType: TableCellType.Title,\n\t\ttitle: 'expenses_screen_travel_table_name_title',\n\t\twidth: '10.66vh',\n\t\tplaceholder: 'expenses_screen_travel_table_name_placeholder',\n\t\tinputType: undefined,\n\t\trightAlign: true,\n\t\taddType: AddExpenseItemCellType.Standard,\n\t\trules: {\n\t\t\t...travelRules(/^([0-9]+h+\\s?)|[0-9]+min$/, t),\n\t\t},\n\t},\n\tdate: {\n\t\ttitleType: TableCellType.Title,\n\t\ttitle: 'invoice_screen_creation_date',\n\t\twidth: '15.66vh',\n\t\tplaceholder: 'invoice_screen_creation_date',\n\t\taddType: AddExpenseItemCellType.Date,\n\t\tinputType: undefined,\n\t\trightAlign: true,\n\t},\n\twaitedTime: {\n\t\ttitleType: TableCellType.Title,\n\t\ttitle: 'expenses_screen_travel_table_waited_time_title',\n\t\twidth: '10.66vh',\n\t\tplaceholder: 'expenses_screen_travel_table_name_placeholder',\n\t\tinputType: undefined,\n\t\trightAlign: true,\n\t\taddType: AddExpenseItemCellType.Standard,\n\t\trules: {\n\t\t\t...travelRules(/^([0-9]+h+\\s?)|[0-9]+min$/, t),\n\t\t},\n\t},\n\tdistance: {\n\t\ttitleType: TableCellType.Title,\n\t\ttitle: 'expenses_screen_travel_table_quantity_title',\n\t\twidth: '9.54vh',\n\t\tplaceholder: 'location',\n\t\tinputType: undefined,\n\t\trightAlign: true,\n\t\taddType: AddExpenseItemCellType.KeyValue,\n\t\toptions: workLocations\n\t\t\t? workLocations.map((location) => ({\n\t\t\t\t\tkey: location.name,\n\t\t\t\t\tvalue: {\n\t\t\t\t\t\tid: `${location.distance}km`,\n\t\t\t\t\t},\n\t\t\t }))\n\t\t\t: [],\n\t\tshowAsValue: true,\n\t},\n\ttypeOfTransport: {\n\t\ttitleType: TableCellType.Title,\n\t\ttitle: 'expenses_screen_travel_table_type_of_transport_title',\n\t\twidth: '20.66vh',\n\t\tplaceholder: 'expenses_screen_travel_table_type_of_transport_placeholder',\n\t\tinputType: undefined,\n\t\trightAlign: false,\n\t\taddType: AddExpenseItemCellType.KeyValue,\n\t\toptions: TravelOptions,\n\t},\n\treporter: {\n\t\ttitleType: TableCellType.Title,\n\t\ttitle: 'expenses_screen_table_reporter_title',\n\t\twidth: '22.438vh',\n\t\tplaceholder: '',\n\t\tinputType: undefined,\n\t\trightAlign: false,\n\t\taddType: AddExpenseItemCellType.Static,\n\t\tvalue: `${user?.firstName} ${user?.lastName}`,\n\t},\n\tqai: {\n\t\ttitleType: TableCellType.Title,\n\t\ttitle: 'expenses_screen_table_qai_title',\n\t\twidth: '22.414vh',\n\t\tplaceholder: 'expenses_screen_name',\n\t\toptions: users,\n\t\tinputType: undefined,\n\t\trightAlign: false,\n\t\taddType: AddExpenseItemCellType.KeyValue,\n\t},\n\tbilled: {\n\t\ttitleType: TableCellType.Title,\n\t\ttitle: 'expenses_screen_status',\n\t\twidth: '15.66vh',\n\t\tplaceholder: 'expenses_screen_status',\n\t\tinputType: undefined,\n\t\trightAlign: false,\n\t\toptions: billedOptions,\n\t\taddType: AddExpenseItemCellType.KeyValue,\n\t},\n\tedit: {\n\t\ttitleType: TableCellType.Title,\n\t\ttitle: '',\n\t\twidth: '50px',\n\t\tplaceholder: '',\n\t\tinputType: undefined,\n\t\trightAlign: false,\n\t\taddType: AddExpenseItemCellType.Static,\n\t},\n});\n","import { Expenses } from '../helpers/expenses/generalExpensesHelper';\nimport { KeyValue } from '../helpers/userHelper/generalUserHelper';\nimport { IContractWorkLocation } from '../service/types/Contract';\nimport User from '../service/types/User';\nimport { materialTabelParams } from './material';\nimport { toolTabelParams } from './tools';\nimport { transportTabelParams } from './transport';\nimport { travelTabelParams } from './travel';\n\nexport const expensesTabelParams = (\n\tt: (value: string) => string,\n\tusers: KeyValue[],\n\tuser: User | undefined,\n\tworkLocations: IContractWorkLocation[]\n): Expenses => ({\n\tmaterials: materialTabelParams(users, user, t),\n\ttools: toolTabelParams(users, user, t),\n\ttravels: travelTabelParams(t, users, user, workLocations),\n\ttransport: transportTabelParams(users, user),\n\tinvoice: null,\n});\n","import { Grid, makeStyles, MenuItem } from '@material-ui/core';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { globalInputStyle, useGlobalStyles } from '../consts/globalStyles';\n\nimport { MaterialUiPickersDate } from '@material-ui/pickers/typings/date';\nimport { Controller, useFormContext } from 'react-hook-form';\nimport ExpensesTabel from '../components/ExpensesTabel';\nimport Filter from '../components/Filter';\nimport IntervalDatePicker, { IntervalDatePickerDates, IntervalKey } from '../components/IntervalDatePicker';\nimport KeyValueAutoComplete from '../components/KeyValueAutoComplete';\nimport StandardTextField from '../components/StandardTextField';\nimport TabTitle from '../components/TabTitle';\nimport { expensesTabelParams } from '../consts/expenses';\nimport { useAuthStateContext } from '../context/auth/useAuth';\nimport {\n\tExpenses,\n\texpensesFilterFields,\n\tExpensesFilterInterface,\n\tExpensesFilterKeys,\n\tExpensesKeys,\n\tfilterBilledOptions,\n\tinitExpensesFilters,\n} from '../helpers/expenses/generalExpensesHelper';\nimport { checkIfUserStopWriting } from '../helpers/filters';\nimport { KeyValue } from '../helpers/userHelper/generalUserHelper';\nimport { RouteParams, Routes } from '../router/Routes';\nimport { IContractWorkLocation } from '../service/types/Contract';\nimport MaterialTool from '../service/types/MaterialTool';\nimport Transport from '../service/types/Transport';\nimport Travel from '../service/types/Travel';\nimport { UserRole } from '../service/types/User';\nimport ExpensessIcon from '../svgComponents/ExpensessIcon';\nimport GoBack from '../svgComponents/GoBack';\nimport HomeButton from '../svgComponents/HomeButton';\n\ninterface Props {\n\tintervalDates: IntervalDatePickerDates;\n\tcontractID: number;\n\tcontractNumber: string;\n\ttabType: ExpensesKeys;\n\texpenses: Expenses;\n\tallUsers: KeyValue[];\n\tfilters: ExpensesFilterInterface;\n\trouteParams: RouteParams;\n\tworkLocations: IContractWorkLocation[];\n\tonUpdatePress: (expense: MaterialTool | Travel | Transport, data: any) => Promise;\n\tonAddPress: (data: any) => Promise;\n\tonFilterChange: (key: ExpensesFilterKeys, value: any) => void;\n\tonTabPress: (type: ExpensesKeys) => void;\n\tclearAllFilters: () => void;\n\tonDeletePress: (expenseID: number) => void;\n\tonKeyboardDateChange: (date: MaterialUiPickersDate, key: IntervalKey) => void;\n\tonDateChange: (date: MaterialUiPickersDate) => void;\n\tonDatesAccept: () => void;\n\tonDatesCancel: () => void;\n\tclearDates: () => void;\n}\n\nfunction ExpensesScreen(props: Props) {\n\tconst [showFilters, setShowFilters] = React.useState(false);\n\tconst classes = useStyles({});\n\tconst globalClasses = useGlobalStyles({ showFilters: showFilters });\n\tconst { t } = useTranslation();\n\tconst { user } = useAuthStateContext();\n\tconst searchRef = React.useRef({ ...initExpensesFilters });\n\tconst filterListRef = React.useRef(null);\n\tconst { errors, control } = useFormContext();\n\n\tconst onFilterPress = () => setShowFilters((prev) => !prev);\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t{`${t('expenses_screen_subtitle')}: `}\n\t\t\t\t{`${props.contractNumber}`}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{t('expenses_screen_title')}\n\t\t\t\t
    \n\t\t\t
    \n\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t{user?.role !== UserRole.QualityAssuranceInspector ? (\n\t\t\t\t\t\n\t\t\t\t) : null}\n\t\t\t\t\n\t\t\t\t{user?.role !== UserRole.QualityAssuranceInspector ? (\n\t\t\t\t\t\n\t\t\t\t) : null}\n\t\t\t
    \n\t\t\t{user?.role !== UserRole.QualityAssuranceInspector ? (\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{props.tabType === 'travels' || props.tabType === 'transport' ? null : (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChange(e);\n\t\t\t\t\t\t\t\t\t\t\t\t\tcheckIfUserStopWriting(e, props.onFilterChange, searchRef, 'name');\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tif (e) {\n\t\t\t\t\t\t\t\t\t\t\tprops.onFilterChange('reporter', e.value.id.toString());\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tprops.onFilterChange('reporter', '');\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\toptions={props.allUsers.filter((item) => !item.value.deleted)}\n\t\t\t\t\t\t\t\t\tmultiple={false}\n\t\t\t\t\t\t\t\t\tvalue={{\n\t\t\t\t\t\t\t\t\t\tkey: props.allUsers.find(\n\t\t\t\t\t\t\t\t\t\t\t(user) => user.value.id.toString() === props.filters.reporter\n\t\t\t\t\t\t\t\t\t\t)?.key\n\t\t\t\t\t\t\t\t\t\t\t? props.allUsers.find(\n\t\t\t\t\t\t\t\t\t\t\t\t\t(user) => user.value.id.toString() === props.filters.reporter\n\t\t\t\t\t\t\t\t\t\t\t )!.key\n\t\t\t\t\t\t\t\t\t\t\t: '',\n\t\t\t\t\t\t\t\t\t\tvalue: props.filters.reporter,\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tif (e) {\n\t\t\t\t\t\t\t\t\t\t\tprops.onFilterChange('qai', e.value.id.toString());\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tprops.onFilterChange('qai', '');\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\toptions={props.allUsers.filter((item) => !item.value.deleted)}\n\t\t\t\t\t\t\t\t\tmultiple={false}\n\t\t\t\t\t\t\t\t\tvalue={{\n\t\t\t\t\t\t\t\t\t\tkey: props.allUsers.find(\n\t\t\t\t\t\t\t\t\t\t\t(user) => user.value.id.toString() === props.filters.qai\n\t\t\t\t\t\t\t\t\t\t)?.key\n\t\t\t\t\t\t\t\t\t\t\t? props.allUsers.find(\n\t\t\t\t\t\t\t\t\t\t\t\t\t(user) => user.value.id.toString() === props.filters.qai\n\t\t\t\t\t\t\t\t\t\t\t )!.key\n\t\t\t\t\t\t\t\t\t\t\t: '',\n\t\t\t\t\t\t\t\t\t\tvalue: props.filters.qai,\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t props.onFilterChange('billed', e.target.value)}>\n\t\t\t\t\t\t\t\t\t{filterBilledOptions.map((item) => (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t{t(item.key)}\n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t) : null}\n\t\t\t\n\t\t
    \n\t);\n}\n\nconst useStyles = makeStyles(() => ({\n\trow: {\n\t\tdisplay: 'flex',\n\t},\n\ticonWrapper: {\n\t\theight: '30px',\n\t\twidth: '30px',\n\t\tmarginRight: '18px',\n\t\tmarginTop: 'auto',\n\t\tmarginBottom: 'auto',\n\t},\n\ticon: {\n\t\theight: '32px',\n\t\twidth: '32px',\n\t},\n\ttabWrapper: {\n\t\tdisplay: 'flex',\n\t\tmarginTop: '28px',\n\t},\n\tfilterWrapper: {\n\t\tmarginTop: '32px',\n\t},\n\tsubtitleWrapper: {\n\t\tmarginTop: '3px',\n\t},\n\tinput: {\n\t\t...globalInputStyle(),\n\t\twhiteSpace: 'pre',\n\t},\n\tinputWrapper: {\n\t\tminHeight: '20px',\n\t\ttransform: 'translateY(-2px)',\n\t\ttextOverflow: 'ellipsis',\n\t\toverflow: 'hidden',\n\t},\n}));\n\nexport default ExpensesScreen;\n","import React from 'react';\nimport { useHistory, useParams } from 'react-router-dom';\nimport { getExpensesData, onExpensesMount } from '../helpers/expenses/readExpensesHelper';\nimport { ExpensesNavigationInterface } from '../helpers/navigationHelper';\nimport {\n\tExpensesFilterInterface,\n\tinitExpensesFilters,\n\tExpensesFilterKeys,\n\tExpenses,\n\texpensesFilterFields,\n\tExpensesKeys,\n} from '../helpers/expenses/generalExpensesHelper';\nimport ExpensesScreen from '../screens/ExpensesScreen';\nimport { getUserOptionsKeyValuePairs } from '../helpers/userHelper/readUserHelper';\nimport service from '../service/service';\nimport { UserRole } from '../service/types/User';\nimport { useAuthStateContext } from '../context/auth/useAuth';\nimport { KeyValue } from '../helpers/userHelper/generalUserHelper';\nimport { filterData } from '../helpers/filters';\nimport { FormProvider, useForm } from 'react-hook-form';\nimport MaterialTool from '../service/types/MaterialTool';\nimport Travel from '../service/types/Travel';\nimport { createExpense, createExpensesData } from '../helpers/expenses/createExpensesHelper';\nimport { updateExpensesData, getUpdateExpense } from '../helpers/expenses/updateExpensesHelper';\nimport StandardDialog, { StandardDialogInterface } from '../components/StandardDialog';\nimport { deleteExpensesData } from '../helpers/expenses/deleteExpensesHelper';\nimport { RouteParams } from '../router/Routes';\nimport Transport from '../service/types/Transport';\nimport { IntervalDatePickerDates } from '../components/IntervalDatePicker';\nimport moment from 'moment';\nimport { MaterialUiPickersDate } from '@material-ui/pickers/typings/date';\nimport { IContractWorkLocation } from '../service/types/Contract';\nimport { useTranslation } from 'react-i18next';\n\nexport interface IExpensesContractData extends ExpensesNavigationInterface {\n\tworkLocations: IContractWorkLocation[];\n}\n\nfunction ExpensesContainer() {\n\tconst [tabType, setTabType] = React.useState('materials');\n\tconst [filters, setFilters] = React.useState(initExpensesFilters);\n\tconst [expenses, setExpenses] = React.useState({\n\t\tmaterials: [],\n\t\ttools: [],\n\t\ttravels: [],\n\t\ttransport: [],\n\t\tinvoice: [],\n\t});\n\tconst [allUsers, setAllUsers] = React.useState([]);\n\tconst history = useHistory();\n\tconst methods = useForm();\n\tconst { t } = useTranslation();\n\n\tconst { user } = useAuthStateContext();\n\tconst [contractData, setContractData] = React.useState({\n\t\tcontractNumber: '',\n\t\tcontractID: 0,\n\t\tworkLocations: [],\n\t});\n\tconst allExpensesRef = React.useRef({\n\t\tmaterials: [],\n\t\ttools: [],\n\t\ttravels: [],\n\t\ttransport: [],\n\t\tinvoice: [],\n\t});\n\tconst filterNameRef = React.useRef({\n\t\tmaterials: '',\n\t\ttools: '',\n\t\ttravels: '',\n\t\tworkingTime: '',\n\t\ttransport: '',\n\t\tinvoice: '',\n\t});\n\tconst dialogRef = React.useRef(null);\n\tconst deleteExpenseID = React.useRef(0);\n\tconst routeParams: RouteParams = useParams();\n\tconst [intervalDates, setIntervalDates] = React.useState({\n\t\tfromDate: null,\n\t\ttoDate: null,\n\t});\n\n\tconst onFilterChange = (key: ExpensesFilterKeys, value: string) => {\n\t\tconst tempValue = value === ' ' ? '' : value;\n\t\tsetFilters((prev) => ({ ...prev, [key]: tempValue }));\n\n\t\tif (key === 'name') {\n\t\t\tif (tabType !== 'travels' && tabType !== 'transport') {\n\t\t\t\tfilterNameRef.current[tabType] = tempValue;\n\t\t\t}\n\t\t}\n\t};\n\n\tReact.useEffect(() => {\n\t\tsetExpenses({\n\t\t\t...allExpensesRef.current,\n\t\t\t[tabType]: filterData(filters, allExpensesRef.current[tabType]),\n\t\t});\n\t}, [filters, tabType]);\n\n\tconst clearAllFilters = () => {\n\t\tObject.values(expensesFilterFields).forEach((val) => methods.setValue(val, ''));\n\t\tsetFilters(initExpensesFilters);\n\t};\n\n\tReact.useEffect(() => {\n\t\tonExpensesMount(history, routeParams, setContractData);\n\t}, [history, routeParams]);\n\n\tReact.useEffect(() => {\n\t\tmethods.setValue(expensesFilterFields.name, filterNameRef.current[tabType]);\n\t\tsetFilters((filters) => ({ ...filters, name: filterNameRef.current[tabType] }));\n\t\tif (allExpensesRef.current[tabType].length === 0 && contractData.contractID) {\n\t\t\tgetExpensesData(tabType, contractData.contractID)\n\t\t\t\t.then((res: MaterialTool[] | Travel[] | Transport[]) => {\n\t\t\t\t\tallExpensesRef.current = { ...allExpensesRef.current, [tabType]: res };\n\t\t\t\t\tsetExpenses({ ...allExpensesRef.current, [tabType]: res });\n\t\t\t\t})\n\t\t\t\t.catch(() => {});\n\t\t}\n\t}, [tabType, contractData, methods.setValue]);\n\n\tReact.useEffect(() => {\n\t\tgetUserOptionsKeyValuePairs(\n\t\t\tuser?.role === UserRole.QualityAssuranceInspector ? service.getAllQAIs() : service.getAllUsers(),\n\t\t\t() => {}\n\t\t)\n\t\t\t.then((users) => {\n\t\t\t\tconst tempUsers = users.filter((user) => user.value.role !== UserRole.Customer && !user.value.deleted);\n\t\t\t\tsetAllUsers(tempUsers);\n\t\t\t})\n\t\t\t.catch(() => {});\n\t}, [user]);\n\n\tconst addExpense = async (data: any) => {\n\t\tconst expense = createExpense(tabType, user!, data);\n\n\t\tconst res = await createExpensesData(tabType, contractData.contractID, expense);\n\t\tif (res) {\n\t\t\tsetExpenses((expenses) => {\n\t\t\t\tconst newExpenses = { ...expenses, [tabType]: [res, ...expenses[tabType]] };\n\t\t\t\tallExpensesRef.current = newExpenses;\n\t\t\t\treturn newExpenses;\n\t\t\t});\n\t\t}\n\t\treturn res;\n\t};\n\n\tconst updateExpense = async (expense: MaterialTool | Travel | Transport, data: any) => {\n\t\tconst newExpense = getUpdateExpense(tabType, expense, data);\n\n\t\tconst res = await updateExpensesData(tabType, contractData.contractID, newExpense);\n\t\tif (res) {\n\t\t\tsetExpenses((expenses) => {\n\t\t\t\tconst expenseIndex = expenses[tabType].findIndex(\n\t\t\t\t\t(item: MaterialTool | Travel | Transport) => item.id === newExpense.id\n\t\t\t\t);\n\t\t\t\texpenses[tabType][expenseIndex] = newExpense;\n\t\t\t\tallExpensesRef.current = { ...expenses };\n\t\t\t\treturn { ...expenses };\n\t\t\t});\n\t\t}\n\t\treturn res;\n\t};\n\n\tconst openDeleteDialog = (expenseID: number) => {\n\t\tdialogRef.current?.setDialogState(true);\n\t\tdeleteExpenseID.current = expenseID;\n\t};\n\n\tconst closeDeleteDialog = () => {\n\t\tdialogRef.current?.setDialogState(false);\n\t};\n\n\tconst deleteExpense = () => {\n\t\tdeleteExpensesData(tabType, contractData.contractID, deleteExpenseID.current)\n\t\t\t.then((res) => {\n\t\t\t\tif (res) {\n\t\t\t\t\tdialogRef.current?.setDialogState(false);\n\t\t\t\t\tsetExpenses((expenses) => {\n\t\t\t\t\t\tconst newExpenses = {\n\t\t\t\t\t\t\t...expenses,\n\t\t\t\t\t\t\t[tabType]: expenses[tabType].filter(\n\t\t\t\t\t\t\t\t(item: MaterialTool | Travel) => item.id !== deleteExpenseID.current\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t};\n\t\t\t\t\t\tallExpensesRef.current = newExpenses;\n\t\t\t\t\t\treturn newExpenses;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(() => {});\n\t};\n\n\tconst onDateChange = React.useCallback(\n\t\t(date: MaterialUiPickersDate) => {\n\t\t\tconst offset = moment(date).utcOffset();\n\t\t\tlet dateMoment = moment(date).add(offset);\n\n\t\t\tif (!intervalDates.fromDate) {\n\t\t\t\tsetIntervalDates({\n\t\t\t\t\tfromDate: dateMoment,\n\t\t\t\t\ttoDate: null,\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tintervalDates.fromDate &&\n\t\t\t\t!intervalDates.toDate &&\n\t\t\t\tmoment(dateMoment).isSameOrAfter(intervalDates.fromDate)\n\t\t\t) {\n\t\t\t\tsetIntervalDates((prev) => ({\n\t\t\t\t\t...prev,\n\t\t\t\t\ttoDate: dateMoment,\n\t\t\t\t}));\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsetIntervalDates({\n\t\t\t\tfromDate: dateMoment,\n\t\t\t\ttoDate: null,\n\t\t\t});\n\n\t\t\treturn;\n\t\t},\n\t\t[intervalDates]\n\t);\n\n\tconst onKeyboardDateChange = (date: MaterialUiPickersDate, key: IntervalKey) => {\n\t\tconst dateMoment = moment(date).utcOffset(0, true);\n\t\tmethods.clearErrors(['fromDate', 'toDate']);\n\t\tif (key === 'start') {\n\t\t\tif (moment(dateMoment).isSameOrBefore(intervalDates.toDate) || !intervalDates.toDate) {\n\t\t\t\tsetIntervalDates((prev) => ({\n\t\t\t\t\t...prev,\n\t\t\t\t\tfromDate: dateMoment,\n\t\t\t\t}));\n\t\t\t\tsetFilters((prev) => ({\n\t\t\t\t\t...prev,\n\t\t\t\t\tfromDate: dateMoment,\n\t\t\t\t}));\n\t\t\t} else {\n\t\t\t\tmethods.setError('fromDate', { message: t('start_interval_error') });\n\t\t\t}\n\t\t} else if (key === 'end') {\n\t\t\tif (moment(dateMoment).isSameOrAfter(intervalDates.fromDate)) {\n\t\t\t\tsetIntervalDates((prev) => ({\n\t\t\t\t\t...prev,\n\t\t\t\t\ttoDate: dateMoment,\n\t\t\t\t}));\n\t\t\t\tsetFilters((prev) => ({\n\t\t\t\t\t...prev,\n\t\t\t\t\ttoDate: dateMoment,\n\t\t\t\t}));\n\t\t\t} else {\n\t\t\t\tmethods.setError('toDate', { message: t('end_interval_error') });\n\t\t\t}\n\t\t}\n\t};\n\n\tconst onDatesAccept = () => {\n\t\tsetFilters((prev) => ({\n\t\t\t...prev,\n\t\t\tfromDate: intervalDates.fromDate,\n\t\t\ttoDate: intervalDates.toDate,\n\t\t}));\n\t};\n\n\tconst onDatesCancel = () => {\n\t\tconst prevDates: IntervalDatePickerDates = {\n\t\t\tfromDate: filters.fromDate,\n\t\t\ttoDate: filters.toDate,\n\t\t};\n\t\tsetIntervalDates(prevDates);\n\t};\n\n\tconst clearDates = () => {\n\t\tsetFilters((prev) => ({\n\t\t\t...prev,\n\t\t\tfromDate: null,\n\t\t\ttoDate: null,\n\t\t}));\n\n\t\tsetIntervalDates({\n\t\t\tfromDate: null,\n\t\t\ttoDate: null,\n\t\t});\n\t};\n\n\treturn (\n\t\t
    \n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t
    \n\t);\n}\n\nexport default ExpensesContainer;\n","import { History, LocationState } from 'history';\nimport { RouteParams } from '../../router/Routes';\nimport service from '../../service/service';\nimport { goToHome } from '../navigationHelper';\nimport { ExpensesKeys } from './generalExpensesHelper';\nimport { IExpensesContractData } from '../../containers/ExpensesContainer';\n\nexport function onExpensesMount(\n\thistory: History,\n\trouteParams: RouteParams,\n\tsetContractData: (contractData: IExpensesContractData) => void\n) {\n\tif (routeParams.contract_id) {\n\t\tservice\n\t\t\t.getContract(Number(routeParams.contract_id))\n\t\t\t.then((res) => {\n\t\t\t\tif (res)\n\t\t\t\t\tsetContractData({\n\t\t\t\t\t\tcontractID: res.id,\n\t\t\t\t\t\tcontractNumber: res.contractNumber,\n\t\t\t\t\t\tworkLocations: res.workLocations,\n\t\t\t\t\t});\n\t\t\t})\n\t\t\t.catch((e) => {\n\t\t\t\tgoToHome(history);\n\t\t\t});\n\t} else {\n\t\tgoToHome(history);\n\t}\n}\n\nexport async function getExpensesData(key: ExpensesKeys, contractID: number) {\n\tif (key === 'materials') {\n\t\treturn await service.getMaterialExpenses(contractID);\n\t} else if (key === 'tools') {\n\t\treturn await service.getToolExpenses(contractID);\n\t} else if (key === 'travels') {\n\t\treturn await service.getTravelExpenses(contractID);\n\t} else {\n\t\treturn await service.getTransportExpenses(contractID);\n\t}\n}\n","import { addExpenseFields } from '../../components/AddExpensesItem';\nimport service from '../../service/service';\nimport MaterialTool from '../../service/types/MaterialTool';\nimport Transport from '../../service/types/Transport';\nimport Travel from '../../service/types/Travel';\nimport { ExpensesKeys } from './generalExpensesHelper';\n\nexport async function updateExpensesData(\n\tkey: ExpensesKeys,\n\tcontractID: number,\n\texpense: MaterialTool | Travel | Transport\n) {\n\ttry {\n\t\tif (key === 'materials' && expense instanceof MaterialTool) {\n\t\t\treturn await service.updateMaterialExpenses(contractID, expense);\n\t\t} else if (key === 'tools' && expense instanceof MaterialTool) {\n\t\t\treturn await service.updateToolExpenses(contractID, expense);\n\t\t} else if (expense instanceof Travel) {\n\t\t\treturn await service.updateTravelExpenses(contractID, expense);\n\t\t} else if (expense instanceof Transport) {\n\t\t\treturn await service.updateTransportExpenses(contractID, expense);\n\t\t} else {\n\t\t\treturn Promise.resolve(false);\n\t\t}\n\t} catch (e) {\n\t\treturn false;\n\t}\n}\n\nexport function getUpdateExpense(key: ExpensesKeys, expense: MaterialTool | Travel | Transport, data: any) {\n\tif (key === 'materials') {\n\t\treturn new MaterialTool(\n\t\t\texpense.id,\n\t\t\tdata[addExpenseFields.name],\n\t\t\tNumber(data[addExpenseFields.quantity]),\n\t\t\texpense.reporter,\n\t\t\tdata[addExpenseFields.qai].value.id,\n\t\t\tdata[addExpenseFields.date],\n\t\t\tdata[addExpenseFields.billed] !== undefined ? data[addExpenseFields.billed].value : expense.billed,\n\t\t\tdata[addExpenseFields.price]\n\t\t);\n\t} else if (key === 'tools') {\n\t\treturn new MaterialTool(\n\t\t\texpense.id,\n\t\t\tdata[addExpenseFields.name],\n\t\t\tNumber(data[addExpenseFields.quantity]),\n\t\t\texpense.reporter,\n\t\t\tdata[addExpenseFields.qai].value.id,\n\t\t\tdata[addExpenseFields.date],\n\t\t\tdata[addExpenseFields.billed] !== undefined ? data[addExpenseFields.billed].value : expense.billed,\n\t\t\tdata[addExpenseFields.price]\n\t\t);\n\t} else if (key === 'travels') {\n\t\treturn new Travel(\n\t\t\texpense.id,\n\t\t\tdata[addExpenseFields.travelTime],\n\t\t\tdata[addExpenseFields.distance].value.id,\n\t\t\texpense.reporter,\n\t\t\tdata[addExpenseFields.qai].value.id,\n\t\t\tdata[addExpenseFields.date],\n\t\t\tdata[addExpenseFields.billed] !== undefined ? data[addExpenseFields.billed].value : expense.billed,\n\t\t\tdata[addExpenseFields.waitedTime],\n\t\t\tdata[addExpenseFields.typeOfTransport].value\n\t\t);\n\t} else {\n\t\treturn new Transport(\n\t\t\texpense.id,\n\t\t\tdata[addExpenseFields.type].value,\n\t\t\texpense.reporter,\n\t\t\tdata[addExpenseFields.qai].value.id,\n\t\t\tdata[addExpenseFields.date],\n\t\t\tdata[addExpenseFields.billed] !== undefined ? data[addExpenseFields.billed].value : expense.billed\n\t\t);\n\t}\n}\n","import { addExpenseFields } from '../../components/AddExpensesItem';\nimport service from '../../service/service';\nimport MaterialTool from '../../service/types/MaterialTool';\nimport Travel from '../../service/types/Travel';\nimport User from '../../service/types/User';\nimport { ExpensesKeys } from './generalExpensesHelper';\nimport moment from 'moment';\nimport Transport from '../../service/types/Transport';\n\nexport async function createExpensesData(\n\tkey: ExpensesKeys,\n\tcontractID: number,\n\texpense: MaterialTool | Travel | Transport\n) {\n\tif (key === 'materials' && expense instanceof MaterialTool) {\n\t\tconst id = await service.createMaterialExpenses(contractID, expense);\n\t\tif (id) {\n\t\t\treturn MaterialTool.createMaterialToolWithID(id, expense);\n\t\t}\n\t\treturn false;\n\t} else if (key === 'tools' && expense instanceof MaterialTool) {\n\t\tconst id = await service.createToolExpenses(contractID, expense);\n\t\tif (id) {\n\t\t\treturn MaterialTool.createMaterialToolWithID(id, expense);\n\t\t}\n\t\treturn false;\n\t} else if (expense instanceof Travel) {\n\t\tconst id = await service.createTravelExpenses(contractID, expense);\n\t\tif (id) {\n\t\t\treturn Travel.createTravelWithID(id, expense);\n\t\t}\n\t\treturn false;\n\t} else if (expense instanceof Transport) {\n\t\tconst id = await service.createTransportExpenses(contractID, expense);\n\t\tif (id) {\n\t\t\treturn Transport.createTransportWithID(id, expense);\n\t\t}\n\t\treturn false;\n\t} else {\n\t\treturn Promise.resolve(false);\n\t}\n}\n\nexport function createExpense(key: ExpensesKeys, user: User, data: any) {\n\tif (key === 'materials') {\n\t\treturn new MaterialTool(\n\t\t\t0,\n\t\t\tdata[addExpenseFields.name],\n\t\t\tNumber(data[addExpenseFields.quantity]),\n\t\t\tuser!.id,\n\t\t\tdata[addExpenseFields.qai].value.id,\n\t\t\tmoment(),\n\t\t\tdata[addExpenseFields.billed] !== undefined ? data[addExpenseFields.billed].value : false,\n\t\t\tdata[addExpenseFields.price]\n\t\t);\n\t} else if (key === 'tools') {\n\t\treturn new MaterialTool(\n\t\t\t0,\n\t\t\tdata[addExpenseFields.name],\n\t\t\tNumber(data[addExpenseFields.quantity]),\n\t\t\tuser!.id,\n\t\t\tdata[addExpenseFields.qai].value.id,\n\t\t\tmoment(),\n\t\t\tdata[addExpenseFields.billed] !== undefined ? data[addExpenseFields.billed].value : false,\n\t\t\tdata[addExpenseFields.price]\n\t\t);\n\t} else if (key === 'travels') {\n\t\treturn new Travel(\n\t\t\t0,\n\t\t\tdata[addExpenseFields.travelTime],\n\t\t\tdata[addExpenseFields.distance].value.id,\n\t\t\tuser!.id,\n\t\t\tdata[addExpenseFields.qai].value.id,\n\t\t\tmoment(),\n\t\t\tdata[addExpenseFields.billed] !== undefined ? data[addExpenseFields.billed].value : false,\n\t\t\tdata[addExpenseFields.waitedTime],\n\t\t\tdata[addExpenseFields.typeOfTransport].value\n\t\t);\n\t} else {\n\t\treturn new Transport(\n\t\t\t0,\n\t\t\tdata[addExpenseFields.type].value,\n\t\t\tuser!.id,\n\t\t\tdata[addExpenseFields.qai].value.id,\n\t\t\tmoment(),\n\t\t\tdata[addExpenseFields.billed] !== undefined ? data[addExpenseFields.billed].value : false\n\t\t);\n\t}\n}\n","import service from '../../service/service';\nimport { ExpensesKeys } from './generalExpensesHelper';\n\nexport async function deleteExpensesData(key: ExpensesKeys, contractID: number, expenseID: number) {\n\tif (key === 'materials') {\n\t\treturn await service.deleteMaterialExpensesByID(contractID, expenseID);\n\t} else if (key === 'tools') {\n\t\treturn await service.deleteToolExpensesByID(contractID, expenseID);\n\t} else if (key === 'travels') {\n\t\treturn await service.deleteTravelExpensesByID(contractID, expenseID);\n\t} else {\n\t\treturn await service.deleteTransportExpensesByID(contractID, expenseID);\n\t}\n}\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport { useGlobalStyles } from '../consts/globalStyles';\nimport WorkingTime from '../service/types/WorkingTime';\nimport { timeFromUnixToStringFormat } from '../helpers/workingTimeHelper/generalWorkingTimeHelper';\nimport { RECORD_LIST_PARAMS } from './RecordListSummary';\nimport BreakTime, { RecordTimeType } from '../service/types/BreakTime';\n\ninterface Props {\n\trecords: (WorkingTime | BreakTime)[];\n\ttimeTitle: string;\n}\nfunction RecordTitleSummary({ records, timeTitle }: Props) {\n\tconst classes = useStyles({});\n\tconst globalClasses = useGlobalStyles();\n\tconst { t } = useTranslation();\n\n\tconst sumTime = records.reduce((prev, curr) => {\n\t\tif (curr instanceof WorkingTime) {\n\t\t\treturn prev + curr.duration;\n\t\t}\n\t\tif (curr.type === RecordTimeType.Break) {\n\t\t\treturn prev - curr.duration;\n\t\t}\n\t\treturn prev;\n\t}, 0);\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t{timeTitle}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{'Total: '}\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{timeFromUnixToStringFormat(sumTime)}\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t
    \n\t\t\t\t{t('Reporter')}\n\t\t\t
    \n\n\t\t\t
    \n\t\t\t\t{t('Status')}\n\t\t\t
    \n\t\t
    \n\t);\n}\n\nconst useStyles = makeStyles(() => ({\n\trow: {\n\t\tdisplay: 'flex',\n\t\tmarginTop: '6px',\n\t},\n\trangeWrapper: {\n\t\twidth: RECORD_LIST_PARAMS.RANGE,\n\t},\n\ttimeWrapper: {\n\t\twidth: RECORD_LIST_PARAMS.TIME,\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t},\n\treporterWrapper: {\n\t\twidth: RECORD_LIST_PARAMS.REPORTER,\n\t},\n\ttimeTitleWrapper: {\n\t\tdisplay: 'flex',\n\t\tmarginRight: '12px',\n\t\talignItems: 'center',\n\t},\n\tstatusWrapper: {\n\t\twidth: RECORD_LIST_PARAMS.STATUS,\n\t},\n}));\n\nexport default RecordTitleSummary;\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core';\nimport { timeFormat, timeFromUnixToStringFormat } from '../helpers/workingTimeHelper/generalWorkingTimeHelper';\nimport { colors } from '../consts/colors';\nimport { useGlobalStyles } from '../consts/globalStyles';\nimport { fonts } from '../consts/fonts';\nimport { KeyValue } from '../helpers/userHelper/generalUserHelper';\nimport WorkingTime from '../service/types/WorkingTime';\nimport BilledItem from './BilledItem';\nimport { RECORD_LIST_PARAMS } from './RecordListSummary';\n\ninterface Props {\n\tindex: number;\n\trecord: WorkingTime;\n\tusers: KeyValue[];\n}\nfunction RecordItemSummary(props: Props) {\n\tconst globalClasses = useGlobalStyles();\n\tconst classes = useStyles();\n\n\tconst reporter = React.useMemo(() => {\n\t\treturn props.users.find((user) => user.value.id === props.record.reporter);\n\t}, [props.record, props.users]);\n\n\tconst time = React.useMemo(() => {\n\t\treturn timeFromUnixToStringFormat(props.record.duration);\n\t}, [props.record]);\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t {`${props.index + 1}.`}\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{props.record.date.format('DD.MM.YYYY')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{props.record.startTime.format(timeFormat)}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{props.record.endTime.format(timeFormat)}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{'Time: '}\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{time}\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t
    \n\t\t\t\t{reporter?.key}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t
    \n\t\t
    \n\t);\n}\n\nconst useStyles = makeStyles(() => ({\n\tinputAddWrapper: {\n\t\twidth: '100%',\n\t\tpadding: '6px 0px',\n\t\tborderBottom: `1px solid ${colors.timetrackBorderd}`,\n\t\ttransform: 'translateX(-10px)',\n\t},\n\tinputWrapper: {\n\t\twidth: '95%',\n\t},\n\tindexWrapper: {\n\t\tdisplay: 'flex',\n\t\tmarginRight: '24px',\n\t\talignItems: 'center',\n\t},\n\tfromWrapper: {\n\t\tdisplay: 'flex',\n\t\tmarginRight: '16px',\n\t\talignItems: 'center',\n\t},\n\ttoWrapper: {\n\t\tdisplay: 'flex',\n\t\tmarginLeft: '16px',\n\t\talignItems: 'center',\n\t},\n\ttimeTitleWrapper: {\n\t\tdisplay: 'flex',\n\t\tmarginRight: '12px',\n\t\talignItems: 'center',\n\t},\n\ttimeWrapper: {\n\t\twidth: RECORD_LIST_PARAMS.TIME,\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t},\n\treporterWrapper: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\twidth: RECORD_LIST_PARAMS.REPORTER,\n\t},\n\tstatusWrapper: {\n\t\twidth: RECORD_LIST_PARAMS.STATUS,\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t},\n\twrapper: {\n\t\tdisplay: 'flex',\n\t\tpadding: '20px 16px',\n\t\tmargin: '4px 0px',\n\t\tborder: `1px solid ${colors.timetrackBorderd}`,\n\t\t//backgroundColor: colors.billGreen,\n\t},\n\trangeWrapper: {\n\t\twidth: RECORD_LIST_PARAMS.RANGE,\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t},\n\tsmallTextLight: {\n\t\tfontSize: '12px',\n\t\tlineHeight: '16px',\n\t\tfontFamily: fonts.regular,\n\t\tcolor: colors.gray,\n\t\tletterSpacing: 0.4,\n\t},\n\trow: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t},\n\ttimeInputWrapper: {\n\t\twidth: '45px',\n\t\tpaddingLeft: '5px',\n\t\ttransform: 'translateX(-6px)',\n\t\tpadding: '0',\n\t\tborder: `1px solid ${colors.addTimeBorder}`,\n\t},\n\tdateWrapper: {\n\t\tmarginRight: '50px',\n\t},\n}));\n\nexport default RecordItemSummary;\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core';\nimport {\n\tfilterRecordTimeTypeKeyValuePairs,\n\ttimeFromUnixToStringFormat,\n} from '../helpers/workingTimeHelper/generalWorkingTimeHelper';\nimport { colors } from '../consts/colors';\nimport { useGlobalStyles } from '../consts/globalStyles';\nimport { fonts } from '../consts/fonts';\nimport { KeyValue } from '../helpers/userHelper/generalUserHelper';\nimport BilledItem from './BilledItem';\nimport { RECORD_LIST_PARAMS } from './RecordListSummary';\nimport BreakTime, { RecordTimeType } from '../service/types/BreakTime';\nimport { useTranslation } from 'react-i18next';\n\ninterface Props {\n\tindex: number;\n\trecord: BreakTime;\n\tusers: KeyValue[];\n}\nfunction BreakItemSummary(props: Props) {\n\tconst globalClasses = useGlobalStyles();\n\tconst classes = useStyles({ type: props.record.type });\n\tconst { t } = useTranslation();\n\n\tconst reporter = React.useMemo(() => {\n\t\treturn props.users.find((user) => user.value.id === props.record.reporter);\n\t}, [props.record, props.users]);\n\n\tconst time = React.useMemo(() => {\n\t\treturn timeFromUnixToStringFormat(props.record.duration);\n\t}, [props.record]);\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t {`${props.index + 1}.`}\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{props.record.date.format('DD.MM.YYYY')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t(\n\t\t\t\t\t\t\t\t\tfilterRecordTimeTypeKeyValuePairs.find((item) => item.value === props.record.type)\n\t\t\t\t\t\t\t\t\t\t?.key || ''\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{'Time: '}\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{time}\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t
    \n\t\t\t\t{reporter?.key}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t
    \n\t\t
    \n\t);\n}\n\ninterface StyleProps {\n\ttype: RecordTimeType;\n}\n\nconst useStyles = makeStyles(() => ({\n\tinputAddWrapper: {\n\t\twidth: '100%',\n\t\tpadding: '6px 0px',\n\t\tborderBottom: `1px solid ${colors.timetrackBorderd}`,\n\t\ttransform: 'translateX(-10px)',\n\t},\n\tinputWrapper: {\n\t\twidth: '95%',\n\t},\n\tindexWrapper: {\n\t\tdisplay: 'flex',\n\t\tmarginRight: '24px',\n\t\talignItems: 'center',\n\t},\n\tfromWrapper: {\n\t\tdisplay: 'flex',\n\t\tmarginRight: '16px',\n\t\talignItems: 'center',\n\t},\n\ttoWrapper: {\n\t\tdisplay: 'flex',\n\t\tmarginLeft: '16px',\n\t\talignItems: 'center',\n\t},\n\ttimeTitleWrapper: {\n\t\tdisplay: 'flex',\n\t\tmarginRight: '12px',\n\t\talignItems: 'center',\n\t},\n\ttimeWrapper: {\n\t\twidth: RECORD_LIST_PARAMS.TIME,\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t},\n\treporterWrapper: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\twidth: RECORD_LIST_PARAMS.REPORTER,\n\t},\n\tstatusWrapper: {\n\t\twidth: RECORD_LIST_PARAMS.STATUS,\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t},\n\twrapper: (p: StyleProps) => ({\n\t\tdisplay: 'flex',\n\t\tpadding: '20px 16px',\n\t\tmargin: '4px 0px',\n\t\tborder: `1px solid ${colors.timetrackBorderd}`,\n\t\t//backgroundColor: p.type === RecordTimeType.Break ? colors.billRed : colors.billOragne,\n\t}),\n\trangeWrapper: {\n\t\twidth: RECORD_LIST_PARAMS.RANGE,\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t},\n\tsmallTextLight: {\n\t\tfontSize: '12px',\n\t\tlineHeight: '16px',\n\t\tfontFamily: fonts.regular,\n\t\tcolor: colors.gray,\n\t\tletterSpacing: 0.4,\n\t},\n\trow: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t},\n\ttimeInputWrapper: {\n\t\twidth: '45px',\n\t\tpaddingLeft: '5px',\n\t\ttransform: 'translateX(-6px)',\n\t\tpadding: '0',\n\t\tborder: `1px solid ${colors.addTimeBorder}`,\n\t},\n\tdateWrapper: {\n\t\tmarginRight: '50px',\n\t},\n}));\n\nexport default BreakItemSummary;\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core';\nimport WorkingTime from '../service/types/WorkingTime';\nimport ReactList from 'react-list';\nimport { KeyValue } from '../helpers/userHelper/generalUserHelper';\nimport { useGlobalStyles } from '../consts/globalStyles';\nimport RecordTitleSummary from './RecordTitleSummary';\nimport RecordItemSummary from './RecordItemSummary';\nimport BreakTime from '../service/types/BreakTime';\nimport BreakItemSummary from './BreakItemSummary';\n\nexport const RECORD_LIST_PARAMS = {\n\tRANGE: '40.517%',\n\tTIME: '18.642%',\n\tREPORTER: '21.875%',\n\tSTATUS: '18.966%',\n};\n\ninterface Props {\n\trecords: (WorkingTime | BreakTime)[];\n\tusers: KeyValue[];\n\ttimeTitle: string;\n}\n\nfunction RecordListSummary(props: Props) {\n\tconst classes = useStyles();\n\tconst globalClasses = useGlobalStyles();\n\n\tconst transformedRecords = React.useMemo(() => {\n\t\tconst sortedRecordsByDate = props.records.sort((a, b) => b.date.unix() - a.date.unix());\n\n\t\treturn sortedRecordsByDate.reduce((prev, curr) => {\n\t\t\treturn {\n\t\t\t\t...prev,\n\t\t\t\t[curr.qai]: [...(prev[curr.qai] ? prev[curr.qai] : []), curr],\n\t\t\t};\n\t\t}, {} as { [key: string]: (WorkingTime | BreakTime)[] });\n\t}, [props.records]);\n\n\tconst keys = Object.keys(transformedRecords);\n\tconst values = Object.values(transformedRecords);\n\n\treturn (\n\t\t
    \n\t\t\t (\n\t\t\t\t\t user.value.id.toString() === keys[index])?.key}>\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{props.users.find((user) => user.value.id.toString() === keys[index])?.key}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\n\t\t\t\t\t\t\n\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\treturn values[index][index2] instanceof WorkingTime ? (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t)}\n\t\t\t/>\n\t\t
    \n\t);\n}\nconst useStyles = makeStyles(() => ({\n\tcontainer: {\n\t\tmaxHeight: 400,\n\t\toverflow: 'scroll',\n\t},\n\twrapper: {\n\t\tmarginTop: '0px',\n\t},\n\tmainTitleWrapper: {\n\t\tmarginTop: '16px',\n\t},\n\tsubtitle: {\n\t\tmarginTop: '8px',\n\t},\n}));\n\nexport default RecordListSummary;\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core';\nimport { Expenses, ExpensesKeys, initExpenses } from '../helpers/expenses/generalExpensesHelper';\nimport { KeyValue } from '../helpers/userHelper/generalUserHelper';\nimport MaterialTool from '../service/types/MaterialTool';\nimport Transport from '../service/types/Transport';\nimport Travel from '../service/types/Travel';\nimport { useAuthStateContext } from '../context/auth/useAuth';\nimport { useTranslation } from 'react-i18next';\nimport { expensesTabelParams } from '../consts/expenses';\nimport ExpensesTabel from './ExpensesTabel';\nimport { useGlobalStyles } from '../consts/globalStyles';\nimport { IContractWorkLocation } from '../service/types/Contract';\n\ninterface Props {\n\tsummaryData: Expenses;\n\tusers: KeyValue[];\n\ttabType: ExpensesKeys;\n\ttimeTitle: string;\n\tworkLocations: IContractWorkLocation[];\n}\n\nfunction SummaryExpensesWrapper(props: Props) {\n\tconst classes = useStyles({});\n\tconst globalClasses = useGlobalStyles();\n\tconst { t } = useTranslation();\n\tconst { user } = useAuthStateContext();\n\n\tconst transformedSummaryData = React.useMemo(() => {\n\t\treturn (Object.keys(props.summaryData) as ExpensesKeys[]).reduce((prev, curr: ExpensesKeys) => {\n\t\t\tif (curr === 'workingTime') return prev;\n\n\t\t\tconst currentExpense = props.summaryData[curr].reduce(\n\t\t\t\t(\n\t\t\t\t\tprev: { [key: string]: (MaterialTool | Transport | Travel)[] },\n\t\t\t\t\tcurr: MaterialTool | Transport | Travel\n\t\t\t\t) => {\n\t\t\t\t\treturn { ...prev, [curr.qai]: [...(prev[curr.qai] ? prev[curr.qai] : []), curr] };\n\t\t\t\t},\n\t\t\t\t{} as {\n\t\t\t\t\t[key: string]: (MaterialTool | Transport | Travel)[];\n\t\t\t\t}\n\t\t\t);\n\t\t\treturn {\n\t\t\t\t...prev,\n\t\t\t\t...Object.keys(currentExpense).reduce((prevState, currKey) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...prevState,\n\t\t\t\t\t\t[currKey]: {\n\t\t\t\t\t\t\t...prev[currKey],\n\t\t\t\t\t\t\t[curr]: currentExpense[currKey],\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t}, {} as { [key: string]: Expenses }),\n\t\t\t};\n\t\t}, {} as { [key: string]: Expenses });\n\t}, [props.summaryData]);\n\n\treturn (\n\t\t
    \n\t\t\t{Object.keys(transformedSummaryData).map((id) =>\n\t\t\t\ttransformedSummaryData[id][props.tabType] ? (\n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{props.users.find((user) => user.value.id.toString() === id)?.key}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{props.timeTitle}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t {}}\n\t\t\t\t\t\t\tusers={props.users}\n\t\t\t\t\t\t\texpenses={{ ...initExpenses, ...transformedSummaryData[id] }}\n\t\t\t\t\t\t\texpensesTableParams={expensesTabelParams(t, props.users, user, props.workLocations)}\n\t\t\t\t\t\t\ttableKey={'Expenses'}\n\t\t\t\t\t\t\ttabType={props.tabType}\n\t\t\t\t\t\t\tonAddPress={() => {\n\t\t\t\t\t\t\t\treturn Promise.resolve(false);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tonUpdatePress={() => {\n\t\t\t\t\t\t\t\treturn Promise.resolve(false);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t
    \n\t\t\t\t) : null\n\t\t\t)}\n\t\t
    \n\t);\n}\n\nconst useStyles = makeStyles(() => ({\n\tmainTitleWrapper: {\n\t\tmarginTop: '16px',\n\t},\n\trangeWrapper: {},\n}));\n\nexport default SummaryExpensesWrapper;\n","import * as React from 'react';\nimport { SVGProps } from 'react';\n\nconst CalendarIcon = (props: SVGProps) => (\n\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n);\n\nexport default CalendarIcon;\n","import { TableCellType } from '../components/table/StandardTableCell';\nimport { TableParamInterface } from './rhenusOverview';\n\ninterface InvoiceParamInterface {\n\tid: TableParamInterface;\n\tcreation_date: TableParamInterface;\n\tdate_of_invoice: TableParamInterface;\n\tfrom_date: TableParamInterface;\n\tto_date: TableParamInterface;\n}\n\nexport const invoiceTableParams: InvoiceParamInterface = {\n\tid: {\n\t\twidth: '18.5vw',\n\t\ttitle: 'id',\n\t\ttype: TableCellType.Sticky,\n\t\ttitleType: TableCellType.Title,\n\t\tsticky: true,\n\t},\n\tcreation_date: {\n\t\twidth: '10.5vw',\n\t\ttitle: 'invoice_screen_creation_date',\n\t\ttype: TableCellType.Text,\n\t\ttitleType: TableCellType.Title,\n\t},\n\tdate_of_invoice: {\n\t\twidth: '9.035vw',\n\t\ttitle: 'invoice_screen_billing_date',\n\t\ttype: TableCellType.Text,\n\t\ttitleType: TableCellType.Title,\n\t},\n\tfrom_date: {\n\t\twidth: '12.96vw',\n\t\ttitle: 'invoice_screen_billed_from',\n\t\ttype: TableCellType.Text,\n\t\ttitleType: TableCellType.Title,\n\t},\n\tto_date: {\n\t\twidth: '26.711vw',\n\t\ttitle: 'invoice_screen_billed_until',\n\t\ttype: TableCellType.Text,\n\t\ttitleType: TableCellType.Title,\n\t},\n};\n","import { makeStyles } from '@material-ui/core';\nimport moment from 'moment';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useHistory } from 'react-router-dom';\nimport { colors } from '../consts/colors';\nimport { useGlobalStyles } from '../consts/globalStyles';\nimport { invoiceTableParams } from '../consts/invoice';\nimport { Routes } from '../router/Routes';\nimport Invoice from '../service/types/Invoice';\nimport CustomTableBody from './CustomTableBody';\n\ninterface TransformedInvoice {\n\tcreation_date: string;\n\tdate_of_invoice: string;\n\tfrom_date: string;\n\tid: number;\n\tto_date: string;\n}\ninterface TransformedInvoices {\n\t[key: number]: TransformedInvoice[];\n}\n\ninterface Props {\n\tinvoices: Invoice[];\n}\n\nconst InvoiceListSummary = ({ invoices }: Props) => {\n\tconst classes = useStyles();\n\tconst globalClasses = useGlobalStyles();\n\n\tconst { t } = useTranslation();\n\n\tconst history = useHistory();\n\n\tconst transformedInvoices: TransformedInvoices = React.useMemo(() => {\n\t\tconst dateOfInvoiceArr = invoices.map((inv) => moment(inv.date_of_invoice));\n\n\t\tlet transformedInvoices: TransformedInvoices = {};\n\n\t\tconst maxYear = moment.max(dateOfInvoiceArr).year();\n\t\tconst minYear = moment.min(dateOfInvoiceArr).year();\n\n\t\tfor (let i = minYear; i <= maxYear; i++) {\n\t\t\tconst invoicesArr: TransformedInvoice[] = invoices\n\t\t\t\t.filter((invoice) => moment(invoice.date_of_invoice).year() === i)\n\t\t\t\t.map((invoice) => ({\n\t\t\t\t\tcreation_date: moment(invoice.creation_date).format('DD.MM.YYYY'),\n\t\t\t\t\tdate_of_invoice: moment(invoice.date_of_invoice).format('DD.MM.YYYY'),\n\t\t\t\t\tfrom_date: moment(invoice.from_date).format('DD.MM.YYYY'),\n\t\t\t\t\tid: invoice.id,\n\t\t\t\t\tto_date: moment(invoice.to_date).format('DD.MM.YYYY'),\n\t\t\t\t}));\n\n\t\t\tif (invoicesArr.length > 0) {\n\t\t\t\ttransformedInvoices[i] = invoicesArr;\n\t\t\t}\n\t\t}\n\n\t\treturn transformedInvoices;\n\t}, [invoices]);\n\n\tconst onEditPress = (id: number) => {\n\t\thistory.push(`${Routes.Invoice}/${id.toString()}`);\n\t};\n\n\treturn (\n\t\t
    \n\t\t\t{Object.keys(transformedInvoices).map((year) => (\n\t\t\t\t
    \n\t\t\t\t\t
    {t('year').toUpperCase()}
    \n\t\t\t\t\t
    {year}
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t))}\n\t\t
    \n\t);\n};\n\nconst useStyles = makeStyles(() => ({\n\ttitleWrapper: {\n\t\t// marginBottom: '12px',\n\t},\n\tyearText: {\n\t\tcolor: colors.gray,\n\t},\n\tsection: {\n\t\tmarginBottom: '32px',\n\t},\n\ttableMargin: {\n\t\tmargin: '0px',\n\t},\n}));\n\nexport default InvoiceListSummary;\n","import React from 'react';\nimport { Grid, makeStyles, MenuItem } from '@material-ui/core';\nimport TabTitle from '../components/TabTitle';\nimport BackArrow from '../svgComponents/BackArrow';\nimport HomeButton from '../svgComponents/HomeButton';\nimport { globalInputStyle, useGlobalStyles } from '../consts/globalStyles';\nimport { useTranslation } from 'react-i18next';\nimport { Expenses, ExpensesKeys, filterBilledOptions } from '../helpers/expenses/generalExpensesHelper';\nimport { colors } from '../consts/colors';\nimport { KeyValue } from '../helpers/userHelper/generalUserHelper';\nimport StandardDatePicker from '../components/StandardDatePicker';\nimport {\n\tIStartBillingValues,\n\tstartBillingFields,\n\tSummaryFilterInterface,\n\tSummaryFilterKeys,\n} from '../containers/SummaryContainer';\nimport moment, { Moment } from 'moment';\nimport { ContractStatusType } from '../helpers/contractHelper/generalContractHelper';\nimport StandardTextField from '../components/StandardTextField';\nimport KeyValueAutoComplete from '../components/KeyValueAutoComplete';\nimport RecordListSummary from '../components/RecordListSummary';\nimport SummaryExpensesWrapper from '../components/SummaryExpensesWrapper';\nimport { useAuthStateContext } from '../context/auth/useAuth';\nimport { UserRole } from '../service/types/User';\nimport Button from '../components/Button';\nimport StandardDialog, { StandardDialogInterface } from '../components/StandardDialog';\nimport Customer from '../service/types/Customer';\nimport { Controller, useFormContext } from 'react-hook-form';\nimport { rules } from '../consts/rules';\nimport CalendarIcon from '../assets/images/svgs/CalendarIcon';\nimport IntervalDatePicker, { IntervalDatePickerDates, IntervalKey } from '../components/IntervalDatePicker';\nimport { MaterialUiPickersDate } from '@material-ui/pickers/typings/date';\nimport InvoiceListSummary from '../components/InvoiceListSummary';\nimport Invoice from '../service/types/Invoice';\nimport { IContractWorkLocation } from '../service/types/Contract';\n\ninterface Props {\n\tintervalDates: IntervalDatePickerDates;\n\tstartBillingDates: IntervalDatePickerDates;\n\tallUsers: KeyValue[];\n\tcontractNumber: string;\n\tcontractStatus: ContractStatusType;\n\tworkLocations: IContractWorkLocation[];\n\tfilters: SummaryFilterInterface;\n\tisAdmin: boolean;\n\tsummaryData: Expenses;\n\ttabType: ExpensesKeys;\n\tcontractCustomer: string;\n\tdialogRef: React.MutableRefObject;\n\tcustomers: Customer[];\n\topenCloseContractPress: () => void;\n\tonFilterChange: (key: SummaryFilterKeys, val: any) => void;\n\tonTabPress: (tabType: ExpensesKeys) => void;\n\topenDialog: () => void;\n\tonDialogCancel: () => void;\n\tonSubmit: (data: IStartBillingValues) => void;\n\tonKeyboardDateChange: (date: MaterialUiPickersDate, key: IntervalKey) => void;\n\tonDateChange: (date: MaterialUiPickersDate) => void;\n\tonDatesAccept: () => void;\n\tonDatesCancel: () => void;\n\tclearDates: () => void;\n\t//start billing datepicker methods\n\tonKeyboardBillingDateChange: (date: MaterialUiPickersDate, key: IntervalKey) => void;\n\tonStartBillingDateChange: (date: MaterialUiPickersDate) => void;\n\tonStartBillingDatesAccept: () => void;\n\tonStartBillingDatesCancel: () => void;\n\tclearStartBillingDates: () => void;\n}\nfunction SummaryScreen({\n\tallUsers,\n\tcontractNumber,\n\tcontractStatus,\n\tfilters,\n\tisAdmin,\n\tsummaryData,\n\ttabType,\n\tstartBillingDates,\n\tclearDates,\n\tintervalDates,\n\tonDateChange,\n\tonDatesAccept,\n\tonDatesCancel,\n\topenCloseContractPress,\n\tonFilterChange,\n\tonTabPress,\n\tonDialogCancel,\n\tclearStartBillingDates,\n\tonStartBillingDateChange,\n\tonStartBillingDatesAccept,\n\tonStartBillingDatesCancel,\n\tcontractCustomer,\n\tcustomers,\n\tdialogRef,\n\topenDialog,\n\tonSubmit,\n\tworkLocations,\n\tonKeyboardDateChange,\n\tonKeyboardBillingDateChange,\n}: Props) {\n\tconst classes = useStyles({ contractStatus: contractStatus });\n\tconst globalClasses = useGlobalStyles();\n\tconst { t } = useTranslation();\n\tconst { user } = useAuthStateContext();\n\tconst { control, errors, handleSubmit, getValues } = useFormContext();\n\n\tconst timeTitle =\n\t\t(filters.fromDate ? moment(filters.fromDate).format('DD.MM.YYYY') : t('working_time_screen_no_selection')) +\n\t\t' - ' +\n\t\t(filters.toDate ? moment(filters.toDate).format('DD.MM.YYYY') : t('working_time_screen_no_selection'));\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t{contractStatus\n\t\t\t\t\t\t\t? t('summary_screen_contract_status_opened')\n\t\t\t\t\t\t\t: t('summary_screen_contract_status_closed')}\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{`${t('expenses_screen_subtitle')}: `}\n\t\t\t\t\t{`${contractNumber}`}\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t{t('summary_screen_title')}\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t{user?.role === UserRole.Accounting && (\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{isAdmin && (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{contractStatus ? t('summary_screen_close_contract') : t('summary_screen_open_contract')}\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t{tabType !== 'invoice' && (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t onFilterChange('billed', e.target.value)}>\n\t\t\t\t\t\t\t{filterBilledOptions.map((item) => (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t{t(item.key)}\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tif (e) {\n\t\t\t\t\t\t\t\t\tonFilterChange('qai', e);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tonFilterChange('qai', []);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tvalue={filters.qai}\n\t\t\t\t\t\t\tmultiple={true}\n\t\t\t\t\t\t\tdisableCloseOnSelect\n\t\t\t\t\t\t\twithCheckbox={true}\n\t\t\t\t\t\t\toptions={allUsers.filter((user) => !user.value.deleted)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t)}\n\n\t\t\t
    \n\t\t\t\t{tabType === 'workingTime' ? (\n\t\t\t\t\t
    \n\t\t\t\t\t\t{user?.role === UserRole.Accounting && (\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t)}\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t) : tabType === 'invoice' ? (\n\t\t\t\t\t\n\t\t\t\t) : (\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t
    \n\n\t\t\t\n\t\t\t\t\t\t
    {t('billing_period')}
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tconst endDate = moment(getValues(startBillingFields.billingPeriodEnd));\n\t\t\t\t\t\t\t\t\t\tconst startDate = moment(val);\n\t\t\t\t\t\t\t\t\t\tif (startDate.isAfter(endDate)) {\n\t\t\t\t\t\t\t\t\t\t\treturn 'Start date must be before end date!';\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\trender={({ onChange, value }) => (\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t
    \n\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t
    \n\n\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{customers.map((customer) => (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\t{customer.name}\n\t\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t
    \n\t\t\t\t}\n\t\t\t\tonCancle={onDialogCancel}\n\t\t\t\tonAccept={handleSubmit(onSubmit)}\n\t\t\t\ttitle={t('start_billing_button')}\n\t\t\t\tcancleText={t('error_service_dialog_cancel')}\n\t\t\t\tref={dialogRef}\n\t\t\t\tshowWarning={false}\n\t\t\t\tnotShrinkable\n\t\t\t/>\n\t\t
    \n\t);\n}\n\ninterface StyleProps {\n\tcontractStatus: ContractStatusType;\n}\n\nconst useStyles = makeStyles((theme) => ({\n\trow: {\n\t\tdisplay: 'flex',\n\t},\n\ttabWrapper: {\n\t\tdisplay: 'flex',\n\t\tmarginTop: '4px',\n\t\talignItems: 'center',\n\t},\n\ttitleWrapper: {\n\t\tmarginRight: '32px',\n\t},\n\thorizontalLine: {\n\t\twidth: '1px',\n\t\theight: '40px',\n\t\tbackgroundColor: colors.darkGray,\n\t\tmarginRight: '32px',\n\t},\n\tsubtitleWrapper: {\n\t\tmarginTop: '3px',\n\t},\n\tstatusWrapper: (p: StyleProps) => ({\n\t\tpadding: '4px 8px',\n\t\tmarginRight: '12px',\n\t\tborderRadius: '4px',\n\t\theight: 'fit-content',\n\t\talignSelf: 'center',\n\t\tbackgroundColor: p.contractStatus ? colors.lightGreen : colors.lightPink,\n\t}),\n\ttitleRow: {\n\t\tdisplay: 'flex',\n\t\tjustifyContent: 'space-between',\n\t},\n\topenCloseWrapper: {\n\t\talignSelf: 'center',\n\t\tcursor: 'pointer',\n\t},\n\trecordWrapper: {\n\t\tmarginTop: '0px',\n\t\tpadding: '10px 16px 20px',\n\t\tbackgroundColor: colors.keyButton,\n\t},\n\ttableWrapper: {\n\t\tmarginTop: '24px',\n\t},\n\tinput: {\n\t\t...globalInputStyle(),\n\t\twhiteSpace: 'pre',\n\t},\n\tinputWrapper: {\n\t\tminHeight: '20px',\n\t\ttransform: 'translateY(-2px)',\n\t\ttextOverflow: 'ellipsis',\n\t\toverflow: 'hidden',\n\t},\n\tbtnWrapper: {\n\t\tbackground: 'transparent',\n\t\toutline: 'none',\n\t\tborder: 'none',\n\t\tcursor: 'pointer',\n\t},\n\tbtnText: {\n\t\tcolor: colors.darkGray,\n\t\tfontSize: '14px',\n\t\tborderBottom: `1px solid ${colors.darkGray}`,\n\t},\n\t//popup styles\n\tfieldWrapper: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tmarginBottom: theme.spacing(2),\n\t\t[theme.breakpoints.down('xs')]: {\n\t\t\tflexDirection: 'column',\n\t\t},\n\t},\n\tpickerInputRight: {\n\t\tmarginLeft: theme.spacing(1.2),\n\t\t[theme.breakpoints.down('xs')]: {\n\t\t\tmarginLeft: 0,\n\t\t},\n\t},\n\tpickerInput: {\n\t\twidth: 150,\n\t\t[theme.breakpoints.down('xs')]: {\n\t\t\tmarginBottom: theme.spacing(2),\n\t\t},\n\t},\n\tlast: {\n\t\tmarginBottom: theme.spacing(2),\n\t},\n\tcalendarIcon: {\n\t\tposition: 'absolute',\n\t\tright: '4px',\n\t},\n\tperiodLabel: {\n\t\tmarginBottom: '4px',\n\t},\n\tbtnContainer: {\n\t\ttextAlign: 'right',\n\t},\n\tpaper: {\n\t\tmaxWidth: 'fit-content',\n\t},\n}));\n\nexport default SummaryScreen;\n","import { MaterialUiPickersDate } from '@material-ui/pickers/typings/date';\nimport moment, { Moment } from 'moment';\nimport React from 'react';\nimport { FormProvider, useForm } from 'react-hook-form';\nimport { useTranslation } from 'react-i18next';\nimport { useHistory, useParams } from 'react-router-dom';\nimport { IntervalDatePickerDates, IntervalKey } from '../components/IntervalDatePicker';\nimport { StandardDialogInterface } from '../components/StandardDialog';\nimport { useAuthStateContext } from '../context/auth/useAuth';\nimport { ContractStatusType } from '../helpers/contractHelper/generalContractHelper';\nimport { Expenses, ExpensesKeys } from '../helpers/expenses/generalExpensesHelper';\nimport { filterData } from '../helpers/filters';\nimport { SummaryNavigationInterface, replaceSummaryHistoryData } from '../helpers/navigationHelper';\nimport { getSummaryData, onSummaryMount } from '../helpers/summaryHelper/readSummaryHelper';\nimport { KeyValue } from '../helpers/userHelper/generalUserHelper';\nimport { getUserOptionsKeyValuePairs } from '../helpers/userHelper/readUserHelper';\nimport SummaryScreen from '../screens/SummaryScreen';\nimport service from '../service/service';\nimport BreakTime from '../service/types/BreakTime';\nimport Customer from '../service/types/Customer';\nimport Invoice from '../service/types/Invoice';\nimport MaterialTool from '../service/types/MaterialTool';\nimport Transport from '../service/types/Transport';\nimport Travel from '../service/types/Travel';\nimport { UserRole } from '../service/types/User';\nimport WorkingTime from '../service/types/WorkingTime';\n\nexport const startBillingFields = {\n\tbillingPeriodStart: 'billingPeriodStart',\n\tbillingPeriodEnd: 'billingPeriodEnd',\n\tcreationDate: 'creationDate',\n\tdateOfInvoice: 'dateOfInvoice',\n\tcustomer: 'customer',\n};\n\nexport interface IStartBillingValues {\n\tbillingPeriodStart: Moment | null;\n\tbillingPeriodEnd: Moment | null;\n\tcreationDate: Moment;\n\tdateOfInvoice: Moment;\n\tcustomer: string;\n}\n\nexport interface SummaryFilterInterface {\n\tfromDate: Moment | null;\n\ttoDate: Moment | null;\n\tbilled: any;\n\tqai: any;\n}\n\nexport const initSummaryFilters: SummaryFilterInterface = {\n\tfromDate: null,\n\ttoDate: null,\n\tbilled: '',\n\tqai: [],\n};\nconst data = Object.freeze({ ...initSummaryFilters });\nexport type SummaryFilterKeys = keyof typeof data;\n\nfunction SummaryContainer() {\n\tconst [tabType, setTabType] = React.useState('workingTime');\n\tconst [contractStatus, setContractStatus] = React.useState(ContractStatusType.NotClosed);\n\tconst [filters, setFilters] = React.useState({ ...initSummaryFilters });\n\tconst [summaryData, setSummaryData] = React.useState({\n\t\tmaterials: [],\n\t\ttools: [],\n\t\ttravels: [],\n\t\tworkingTime: [],\n\t\ttransport: [],\n\t\tinvoice: [],\n\t});\n\tconst [allUsers, setAllUsers] = React.useState([]);\n\tconst history = useHistory();\n\tconst { user } = useAuthStateContext();\n\tconst allSummaryDataRef = React.useRef({\n\t\tmaterials: [],\n\t\ttools: [],\n\t\ttravels: [],\n\t\tworkingTime: [],\n\t\ttransport: [],\n\t\tinvoice: [],\n\t});\n\tconst [contractData, setContractData] = React.useState({\n\t\tcontractNumber: '',\n\t\tcontractID: 0,\n\t\tcontractStatus: ContractStatusType.Closed,\n\t\tcontractCustomer: '',\n\t\tworkLocations: [],\n\t});\n\tconst routeParmas = useParams();\n\tconst { t } = useTranslation();\n\n\tconst methods = useForm({});\n\n\tconst [customers, setCustomers] = React.useState([]);\n\n\tconst dialogRef = React.useRef(null);\n\tconst [intervalDates, setIntervalDates] = React.useState({\n\t\tfromDate: null,\n\t\ttoDate: null,\n\t});\n\n\tconst [startBillingDates, setStartBillingDates] = React.useState({\n\t\tfromDate: null,\n\t\ttoDate: null,\n\t});\n\n\tconst onFilterChange = (key: SummaryFilterKeys, value: string) => {\n\t\tconst tempValue = value === ' ' ? '' : value;\n\t\tsetFilters((prev) => ({ ...prev, [key]: tempValue }));\n\t};\n\n\tReact.useEffect(() => {\n\t\tservice\n\t\t\t.getAllCustomers()\n\t\t\t.then((customers) => {\n\t\t\t\tsetCustomers(customers);\n\t\t\t})\n\t\t\t.catch(() => {});\n\t}, []);\n\n\tReact.useEffect(() => {\n\t\tsetSummaryData({\n\t\t\t...allSummaryDataRef.current,\n\t\t\t[tabType]:\n\t\t\t\ttabType !== 'invoice'\n\t\t\t\t\t? filterData(filters, allSummaryDataRef.current[tabType])\n\t\t\t\t\t: allSummaryDataRef.current[tabType],\n\t\t});\n\t}, [filters, tabType]);\n\n\tReact.useEffect(() => {\n\t\tgetUserOptionsKeyValuePairs(service.getAllUsers(), () => {})\n\t\t\t.then((users) => setAllUsers(users.filter((user) => user.value.role !== UserRole.Customer)))\n\t\t\t.catch(() => {});\n\t}, [user]);\n\n\tReact.useEffect(() => {\n\t\tonSummaryMount(history, routeParmas, setContractData, setContractStatus);\n\t}, [history, routeParmas]);\n\n\tReact.useEffect(() => {\n\t\tif (allSummaryDataRef.current[tabType].length === 0 && contractData.contractID) {\n\t\t\tgetSummaryData(tabType, contractData.contractID)\n\t\t\t\t.then((res: MaterialTool[] | Travel[] | (WorkingTime | BreakTime)[] | Transport[] | Invoice[]) => {\n\t\t\t\t\tallSummaryDataRef.current = { ...allSummaryDataRef.current, [tabType]: res };\n\n\t\t\t\t\tsetSummaryData({\n\t\t\t\t\t\t...allSummaryDataRef.current,\n\t\t\t\t\t\t[tabType]: tabType !== 'invoice' ? filterData(filters, res) : res,\n\t\t\t\t\t});\n\t\t\t\t})\n\t\t\t\t.catch(() => {});\n\t\t}\n\t}, [tabType, contractData, filters]);\n\n\tconst openCloseContract = () => {\n\t\tconst newContractStatus = contractStatus ? ContractStatusType.Closed : ContractStatusType.NotClosed;\n\t\tservice\n\t\t\t.openCloseContract(contractData.contractID, newContractStatus)\n\t\t\t.then((res) => {\n\t\t\t\tif (res) {\n\t\t\t\t\tsetContractStatus(newContractStatus);\n\t\t\t\t\treplaceSummaryHistoryData(history, { ...contractData, status: newContractStatus });\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(() => {});\n\t};\n\n\tconst openDialog = () => {\n\t\tdialogRef.current?.setDialogState(true);\n\t};\n\n\tconst onDialogCancel = () => {\n\t\tdialogRef.current?.setDialogState(false);\n\n\t\tmethods.reset({\n\t\t\tbillingPeriodEnd: null,\n\t\t\tbillingPeriodStart: null,\n\t\t\tcreationDate: moment(),\n\t\t\tcustomer: contractData.contractCustomer,\n\t\t\tdateOfInvoice: moment(),\n\t\t});\n\t};\n\n\tconst onSubmit = React.useCallback(\n\t\t(data: IStartBillingValues) => {\n\t\t\tif (data.billingPeriodStart && data.billingPeriodEnd) {\n\t\t\t\tservice\n\t\t\t\t\t.createInvoice(\n\t\t\t\t\t\tcontractData.contractID,\n\t\t\t\t\t\tdata.dateOfInvoice,\n\t\t\t\t\t\tdata.billingPeriodStart,\n\t\t\t\t\t\tdata.billingPeriodEnd\n\t\t\t\t\t)\n\t\t\t\t\t.then((res) => {\n\t\t\t\t\t\tdialogRef.current?.setDialogState(false);\n\t\t\t\t\t\tmethods.reset({\n\t\t\t\t\t\t\tbillingPeriodEnd: null,\n\t\t\t\t\t\t\tbillingPeriodStart: null,\n\t\t\t\t\t\t\tcreationDate: moment(),\n\t\t\t\t\t\t\tcustomer: contractData.contractCustomer,\n\t\t\t\t\t\t\tdateOfInvoice: moment(),\n\t\t\t\t\t\t});\n\t\t\t\t\t\tsetStartBillingDates({\n\t\t\t\t\t\t\tfromDate: null,\n\t\t\t\t\t\t\ttoDate: null,\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\t[contractData.contractCustomer, contractData.contractID, methods]\n\t);\n\n\tconst onDateChange = React.useCallback(\n\t\t(date: MaterialUiPickersDate) => {\n\t\t\tconst offset = moment(date).utcOffset();\n\t\t\tlet dateMoment = moment(date).add(offset);\n\n\t\t\tif (!intervalDates.fromDate) {\n\t\t\t\tsetIntervalDates({\n\t\t\t\t\tfromDate: dateMoment,\n\t\t\t\t\ttoDate: null,\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tintervalDates.fromDate &&\n\t\t\t\t!intervalDates.toDate &&\n\t\t\t\tmoment(dateMoment).isSameOrAfter(intervalDates.fromDate)\n\t\t\t) {\n\t\t\t\tsetIntervalDates((prev) => ({\n\t\t\t\t\t...prev,\n\t\t\t\t\ttoDate: dateMoment,\n\t\t\t\t}));\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsetIntervalDates({\n\t\t\t\tfromDate: dateMoment,\n\t\t\t\ttoDate: null,\n\t\t\t});\n\n\t\t\treturn;\n\t\t},\n\t\t[intervalDates]\n\t);\n\n\tconst onKeyboardBillingDateChange = (date: MaterialUiPickersDate, key: IntervalKey) => {\n\t\tconst offset = moment(date).utcOffset();\n\t\tlet dateMoment = moment(date).add(offset);\n\t\tmethods.clearErrors(['billingPeriodStart', 'billingPeriodEnd']);\n\t\tif (key === 'start') {\n\t\t\tif (moment(dateMoment).isSameOrBefore(startBillingDates.toDate) || !startBillingDates.toDate) {\n\t\t\t\tsetStartBillingDates((prev) => ({\n\t\t\t\t\t...prev,\n\t\t\t\t\tfromDate: dateMoment,\n\t\t\t\t}));\n\t\t\t\tmethods.setValue(startBillingFields.billingPeriodStart, dateMoment);\n\t\t\t\tmethods.clearErrors(startBillingFields.billingPeriodStart);\n\t\t\t} else {\n\t\t\t\tmethods.setError('billingPeriodStart', { message: t('start_interval_error') });\n\t\t\t}\n\t\t} else if (key === 'end') {\n\t\t\tif (moment(dateMoment).isSameOrAfter(startBillingDates.fromDate) || !startBillingDates.fromDate) {\n\t\t\t\tsetStartBillingDates((prev) => ({\n\t\t\t\t\t...prev,\n\t\t\t\t\ttoDate: dateMoment,\n\t\t\t\t}));\n\t\t\t\tmethods.setValue(startBillingFields.billingPeriodEnd, dateMoment);\n\t\t\t\tmethods.clearErrors(startBillingFields.billingPeriodEnd);\n\t\t\t} else {\n\t\t\t\tmethods.setError('billingPeriodEnd', { message: t('end_interval_error') });\n\t\t\t}\n\t\t}\n\t};\n\n\tconst onKeyboardDateChange = (date: MaterialUiPickersDate, key: IntervalKey) => {\n\t\tconst dateMoment = moment(date).utcOffset(0, true);\n\t\tmethods.clearErrors(['fromDate', 'toDate']);\n\t\tif (key === 'start') {\n\t\t\tif (moment(dateMoment).isSameOrBefore(intervalDates.toDate) || !intervalDates.toDate) {\n\t\t\t\tsetIntervalDates((prev) => ({\n\t\t\t\t\t...prev,\n\t\t\t\t\tfromDate: dateMoment,\n\t\t\t\t}));\n\t\t\t\tsetFilters((prev) => ({\n\t\t\t\t\t...prev,\n\t\t\t\t\tfromDate: dateMoment,\n\t\t\t\t}));\n\t\t\t} else {\n\t\t\t\tmethods.setError('fromDate', { message: t('start_interval_error') });\n\t\t\t}\n\t\t} else if (key === 'end') {\n\t\t\tif (moment(dateMoment).isSameOrAfter(intervalDates.fromDate)) {\n\t\t\t\tsetIntervalDates((prev) => ({\n\t\t\t\t\t...prev,\n\t\t\t\t\ttoDate: dateMoment,\n\t\t\t\t}));\n\t\t\t\tsetFilters((prev) => ({\n\t\t\t\t\t...prev,\n\t\t\t\t\ttoDate: dateMoment,\n\t\t\t\t}));\n\t\t\t} else {\n\t\t\t\tmethods.setError('toDate', { message: t('end_interval_error') });\n\t\t\t}\n\t\t}\n\t};\n\n\tconst onDatesAccept = () => {\n\t\tsetFilters((prev) => ({\n\t\t\t...prev,\n\t\t\tfromDate: intervalDates.fromDate,\n\t\t\ttoDate: intervalDates.toDate,\n\t\t}));\n\t};\n\n\tconst onDatesCancel = () => {\n\t\tconst prevDates: IntervalDatePickerDates = {\n\t\t\tfromDate: filters.fromDate,\n\t\t\ttoDate: filters.toDate,\n\t\t};\n\t\tsetIntervalDates(prevDates);\n\t};\n\n\tconst clearDates = () => {\n\t\tsetFilters((prev) => ({\n\t\t\t...prev,\n\t\t\tfromDate: null,\n\t\t\ttoDate: null,\n\t\t}));\n\n\t\tsetIntervalDates({\n\t\t\tfromDate: null,\n\t\t\ttoDate: null,\n\t\t});\n\t};\n\n\tconst onStartBillingDateChange = React.useCallback(\n\t\t(date: MaterialUiPickersDate) => {\n\t\t\tconst offset = moment(date).utcOffset();\n\t\t\tlet dateMoment = moment(date).add(offset);\n\n\t\t\tif (!startBillingDates.fromDate) {\n\t\t\t\tsetStartBillingDates({\n\t\t\t\t\tfromDate: dateMoment,\n\t\t\t\t\ttoDate: null,\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tstartBillingDates.fromDate &&\n\t\t\t\t!startBillingDates.toDate &&\n\t\t\t\tmoment(dateMoment).isSameOrAfter(startBillingDates.fromDate)\n\t\t\t) {\n\t\t\t\tsetStartBillingDates((prev) => ({\n\t\t\t\t\t...prev,\n\t\t\t\t\ttoDate: dateMoment,\n\t\t\t\t}));\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsetStartBillingDates({\n\t\t\t\tfromDate: dateMoment,\n\t\t\t\ttoDate: null,\n\t\t\t});\n\n\t\t\treturn;\n\t\t},\n\t\t[startBillingDates]\n\t);\n\n\tconst onStartBillingDatesAccept = () => {\n\t\tmethods.setValue(startBillingFields.billingPeriodStart, startBillingDates.fromDate);\n\t\tstartBillingDates.fromDate && methods.clearErrors(startBillingFields.billingPeriodStart);\n\n\t\tmethods.setValue(startBillingFields.billingPeriodEnd, startBillingDates.toDate);\n\t\tstartBillingDates.toDate && methods.clearErrors(startBillingFields.billingPeriodEnd);\n\t};\n\n\tconst onStartBillingDatesCancel = () => {\n\t\tconst previousStartDate = methods.getValues().billingPeriodStart;\n\t\tconst previousEndDate = methods.getValues().billingPeriodEnd;\n\n\t\tsetStartBillingDates({\n\t\t\tfromDate: previousStartDate,\n\t\t\ttoDate: previousEndDate,\n\t\t});\n\t};\n\n\tconst clearStartBillingDates = () => {\n\t\tsetStartBillingDates({\n\t\t\tfromDate: null,\n\t\t\ttoDate: null,\n\t\t});\n\n\t\tmethods.reset({\n\t\t\tbillingPeriodEnd: null,\n\t\t\tbillingPeriodStart: null,\n\t\t});\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\n\t);\n}\n\nexport default SummaryContainer;\n","import { History, LocationState } from 'history';\nimport { RouteParams } from '../../router/Routes';\nimport service from '../../service/service';\nimport { ContractStatusType } from '../contractHelper/generalContractHelper';\nimport { ExpensesKeys } from '../expenses/generalExpensesHelper';\nimport { goToHome, SummaryNavigationInterface } from '../navigationHelper';\n\nexport function onSummaryMount(\n\thistory: History,\n\trouteParams: RouteParams,\n\tsetContractData: (contractData: SummaryNavigationInterface) => void,\n\tsetContractStatus: (status: ContractStatusType) => void\n) {\n\tconst historyState = history.location.state as undefined | SummaryNavigationInterface;\n\n\tif (historyState && historyState.contractID) {\n\t\tsetContractData({ ...historyState });\n\t\tsetContractStatus(historyState.contractStatus);\n\t} else if (routeParams.contract_id) {\n\t\tservice\n\t\t\t.getContract(Number(routeParams.contract_id))\n\t\t\t.then((res) => {\n\t\t\t\tif (res) {\n\t\t\t\t\tsetContractData({\n\t\t\t\t\t\tcontractID: res.id,\n\t\t\t\t\t\tcontractStatus: res.status,\n\t\t\t\t\t\tcontractNumber: res.contractNumber,\n\t\t\t\t\t\tcontractCustomer: res.customer.toString(),\n\t\t\t\t\t\tworkLocations: res.workLocations,\n\t\t\t\t\t});\n\t\t\t\t\tsetContractStatus(res.status);\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch((e) => {\n\t\t\t\tgoToHome(history);\n\t\t\t});\n\t} else {\n\t\tgoToHome(history);\n\t}\n}\n\nexport async function getSummaryData(key: ExpensesKeys, contractID: number) {\n\tif (key === 'materials') {\n\t\treturn await service.getMaterialExpenses(contractID);\n\t} else if (key === 'tools') {\n\t\treturn await service.getToolExpenses(contractID);\n\t} else if (key === 'travels') {\n\t\treturn await service.getTravelExpenses(contractID);\n\t} else if (key === 'workingTime') {\n\t\treturn await service.getAllRecords(contractID);\n\t} else if (key === 'invoice') {\n\t\treturn await service.getAllInvoices(contractID);\n\t} else {\n\t\treturn await service.getTransportExpenses(contractID);\n\t}\n}\n","import React from 'react';\nimport { Grid, makeStyles } from '@material-ui/core';\nimport { Control, Controller } from 'react-hook-form';\nimport { useGlobalStyles } from '../consts/globalStyles';\nimport AuthTextField from '../components/AuthTextField';\nimport { useTranslation } from 'react-i18next';\nimport { changePasswordFields } from '../containers/ChangePasswordContainer';\nimport Button from '../components/Button';\nimport { standardPasswordReset } from '../consts/login';\nimport BackArrow from '../svgComponents/BackArrow';\nimport HomeButton from '../svgComponents/HomeButton';\n\ninterface Props {\n\tcontrol: Control>;\n\terrors: Record;\n\tonChangePasswordPRess: () => void;\n\tgetValues: (field: string) => string;\n}\n\nfunction ChangePasswordScreen(props: Props) {\n\tconst classes = useStyles({});\n\tconst globalClasses = useGlobalStyles({});\n\tconst { t } = useTranslation();\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{t('change_password_screen_title')}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t\t) => {\n\t\t\t\t\t\t\t\t\t\t\tif (e.key === 'Enter') {\n\t\t\t\t\t\t\t\t\t\t\t\tprops.onChangePasswordPRess();\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t\t) => {\n\t\t\t\t\t\t\t\t\t\t\tif (e.key === 'Enter') {\n\t\t\t\t\t\t\t\t\t\t\t\tprops.onChangePasswordPRess();\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tif (props.getValues(changePasswordFields.newPassword) === val) return true;\n\t\t\t\t\t\t\t\t\t\telse return t('change_password_screen_must_match');\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\trender={({ onChange }) => (\n\t\t\t\t\t\t\t\t\t) => {\n\t\t\t\t\t\t\t\t\t\t\tif (e.key === 'Enter') {\n\t\t\t\t\t\t\t\t\t\t\t\tprops.onChangePasswordPRess();\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t);\n}\n\nconst useStyles = makeStyles(() => ({\n\twrappper: {\n\t\tmarginTop: '108px',\n\t},\n\tbuttonWrapper: {\n\t\tmarginTop: '40px',\n\t},\n\ttitleWrapper: {\n\t\tmarginBottom: '20px',\n\t},\n\temailWrapper: {\n\t\tmarginBottom: '20px',\n\t},\n}));\n\nexport default ChangePasswordScreen;\n","import React from 'react';\nimport { useForm } from 'react-hook-form';\nimport { useAuthActionContext } from '../context/auth/useAuth';\nimport { onAuthTokenError } from '../helpers/authHelper';\nimport ChangePasswordScreen from '../screens/ChangePasswordScreen';\nimport service from '../service/service';\n\nexport const changePasswordFields = {\n\toldPassword: 'oldPassword',\n\tnewPassword: 'newPassword',\n\trepeatPassword: 'repeatPassword',\n};\n\nfunction ChangePasswordContainer() {\n\tconst { control, handleSubmit, errors, getValues } = useForm();\n\tconst { setUser } = useAuthActionContext();\n\n\tconst onChangePasswordPress = React.useMemo(\n\t\t() =>\n\t\t\thandleSubmit((data) => {\n\t\t\t\tservice\n\t\t\t\t\t.changePassword(data[changePasswordFields.oldPassword], data[changePasswordFields.newPassword])\n\t\t\t\t\t.then((res) => {\n\t\t\t\t\t\tif (res) {\n\t\t\t\t\t\t\tservice\n\t\t\t\t\t\t\t\t.logout()\n\t\t\t\t\t\t\t\t.then((res) => {\n\t\t\t\t\t\t\t\t\tif (res) {\n\t\t\t\t\t\t\t\t\t\tonAuthTokenError(setUser);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t.catch(() => {});\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.catch(() => {});\n\t\t\t}),\n\t\t[handleSubmit, setUser]\n\t);\n\n\treturn (\n\t\t\n\t);\n}\n\nexport default ChangePasswordContainer;\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { Table, TableBody, TableContainer, TableHead, TableRow } from '@material-ui/core';\nimport { TFunction } from 'i18next';\n\nimport StandardTableCell, { TableCellType } from './StandardTableCell';\nimport { useGlobalStyles } from '../../consts/globalStyles';\nimport { ContractSummaryInterface } from '../../service/types/Contract';\n\ninterface Props {\n\tcontractSummary: ContractSummaryInterface;\n\tt: TFunction;\n}\n\nexport default function SimpleDataTable({ contractSummary, t }: Props) {\n\tconst classes = useStyles();\n\tconst globalClasses = useGlobalStyles();\n\n\tconst DATA = [\n\t\t{\n\t\t\tcolumn: t('simple_data_table_contract_employees'),\n\t\t\tvalue: contractSummary.employeeTotalAmount,\n\t\t},\n\t\t{\n\t\t\tcolumn: t('simple_data_table_billable_hours'),\n\t\t\tvalue: parseFloat(contractSummary.totalBillableHours.toFixed(2)),\n\t\t},\n\t\t{\n\t\t\tcolumn: t('simple_data_table_billed_hours'),\n\t\t\tvalue: parseFloat(contractSummary.billedHours.toFixed(2)),\n\t\t},\n\t\t{\n\t\t\tcolumn: t('simple_data_table_not_billed_hours'),\n\t\t\tvalue: parseFloat(contractSummary.notBilledHours.toFixed(2)),\n\t\t},\n\t];\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{DATA.map((el, index) => (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t))}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{DATA.map((el, index) => (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t))}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t
    \n\t);\n}\n\nconst useStyles = makeStyles(() => ({\n\ttableContainer: {\n\t\tdisplay: 'flex',\n\t\tflex: 1,\n\t\tjustifyContent: 'center',\n\t\talignItems: 'center',\n\t\tmaxWidth: '70%',\n\t\tmarginBottom: '50px',\n\t},\n\tfixed: {\n\t\ttableLayout: 'fixed',\n\t\tborderCollapse: 'separate',\n\t},\n}));\n","import React from 'react';\nimport { Sector } from 'recharts';\nimport { colors } from '../../consts/colors';\nimport { fonts } from '../../consts/fonts';\n\nexport const renderActiveShape = (totalData: number, t: (text: string) => string) => (props: any) => {\n\tconst RADIAN = Math.PI / 180;\n\tconst { cx, cy, midAngle, innerRadius, outerRadius, startAngle, endAngle, fill, payload, value } = props;\n\tconst sin = Math.sin(-RADIAN * midAngle);\n\tconst cos = Math.cos(-RADIAN * midAngle);\n\tconst sx = cx + (outerRadius + 10) * cos;\n\tconst sy = cy + (outerRadius + 10) * sin;\n\tconst mx = cx + (outerRadius + 30) * cos;\n\tconst my = cy + (outerRadius + 30) * sin;\n\tconst ex = mx + (cos >= 0 ? 1 : -1) * 22;\n\tconst ey = my;\n\tconst textAnchor = cos >= 0 ? 'start' : 'end';\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{totalData}\n\t\t\t\n\t\t\t\n\t\t\t\t{t('dashboard_screen_total')}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t= 0 ? 1 : -1) * 12} y={ey} textAnchor={textAnchor} fill=\"#333\">{`${\n\t\t\t\tpayload.name.split(' ')[1]\n\t\t\t}: ${value} ${t('dashboard_screen_parts')}`}\n\t\t\t= 0 ? 1 : -1) * 12} y={ey} dy={18} textAnchor={textAnchor} fill=\"#999\">\n\t\t\t\t{`(${t('dashboard_screen_rate')} ${((Number(value) / totalData) * 100).toFixed(2)}%)`}\n\t\t\t\n\t\t\n\t);\n};\n\nexport function renderCustomLegend(t: (text: string) => string) {\n\treturn (props: any) => {\n\t\tconst { payload } = props;\n\n\t\treturn (\n\t\t\t
    \n\t\t\t\t{payload.map((entry: any, index: number) => (\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{t(entry.value)}\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t))}\n\t\t\t
    \n\t\t);\n\t};\n}\n","import { Moment } from 'moment';\nimport { colors } from '../../consts/colors';\nimport RhenusCase from '../../service/types/RhenusCase';\nimport StandardCaseInput from '../../service/types/StandardCase';\nimport { PartStatusType } from '../rhenusInputHelper/generalRhenusHelper';\n\nexport interface DashboardFilterInterface {\n\tpartNumber: any;\n\ttypeOfInspection: any;\n\tshift: any;\n\tfromDate: Moment | null;\n\ttoDate: Moment | null;\n}\n\nexport const initDashboardFilters: DashboardFilterInterface = {\n\tpartNumber: '',\n\ttypeOfInspection: '',\n\tshift: '',\n\tfromDate: null,\n\ttoDate: null,\n};\n\nconst data = Object.freeze({ ...initDashboardFilters });\nexport type DashboardCaseFilterKeys = keyof typeof data;\n\nexport const dashboardInputFields = {\n\tpartNumber: 'partNumber',\n};\n\ninterface Chart {\n\tpartsIO: ChartData;\n\tpartsNIO: ChartData;\n\tpartsReworked: ChartData;\n}\n\ninterface ChartData {\n\tname: string;\n\tvalue: number;\n}\n\nexport const chartColors = [colors.someDarkYellow, colors.partsNIOChart, colors.partReworkedChart];\n\nexport function getTotalPartsTested(errors: StandardCaseInput[] | RhenusCase[]) {\n\tif (errors.length !== 0) {\n\t\tif (errors[0] instanceof StandardCaseInput) {\n\t\t\treturn (errors as StandardCaseInput[]).reduce((prev, curr) => prev + curr.totalPartsTested, 0);\n\t\t} else {\n\t\t\treturn errors.length;\n\t\t}\n\t}\n\treturn 0;\n}\n\nexport function getChartData(errors: StandardCaseInput[] | RhenusCase[]): ChartData[] {\n\tif (errors.length !== 0) {\n\t\tif (errors[0] instanceof StandardCaseInput) {\n\t\t\treturn Object.values(\n\t\t\t\t(errors as StandardCaseInput[]).reduce(\n\t\t\t\t\t(prev, curr) => {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tpartsIO: { ...prev.partsIO, value: prev.partsIO.value + curr.partsIO },\n\t\t\t\t\t\t\tpartsNIO: { ...prev.partsNIO, value: prev.partsNIO.value + curr.partsNIO },\n\t\t\t\t\t\t\tpartsReworked: {\n\t\t\t\t\t\t\t\t...prev.partsReworked,\n\t\t\t\t\t\t\t\tvalue: prev.partsReworked.value + curr.partsReworked,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tpartsIO: {\n\t\t\t\t\t\t\tname: 'Parts IO',\n\t\t\t\t\t\t\tvalue: 0,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tpartsNIO: { name: 'Parts NIO', value: 0 },\n\t\t\t\t\t\tpartsReworked: { name: 'Parts Reworked', value: 0 },\n\t\t\t\t\t} as Chart\n\t\t\t\t)\n\t\t\t);\n\t\t} else {\n\t\t\treturn Object.values(\n\t\t\t\t(errors as RhenusCase[]).reduce(\n\t\t\t\t\t(prev, curr) => {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tpartsIO: {\n\t\t\t\t\t\t\t\t...prev.partsIO,\n\t\t\t\t\t\t\t\tvalue: prev.partsIO.value + (curr.partStatus === PartStatusType.PartIO ? 1 : 0),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tpartsNIO: {\n\t\t\t\t\t\t\t\t...prev.partsNIO,\n\t\t\t\t\t\t\t\tvalue: prev.partsNIO.value + (curr.partStatus === PartStatusType.PartNIO ? 1 : 0),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tpartsReworked: {\n\t\t\t\t\t\t\t\t...prev.partsReworked,\n\t\t\t\t\t\t\t\tvalue:\n\t\t\t\t\t\t\t\t\tprev.partsReworked.value + (curr.partStatus === PartStatusType.PartRework ? 1 : 0),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tpartsIO: {\n\t\t\t\t\t\t\tname: 'Parts IO',\n\t\t\t\t\t\t\tvalue: 0,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tpartsNIO: { name: 'Parts NIO', value: 0 },\n\t\t\t\t\t\tpartsReworked: { name: 'Parts Reworked', value: 0 },\n\t\t\t\t\t} as Chart\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t}\n\n\treturn [] as ChartData[];\n}\n","import * as React from 'react';\n\nfunction BackIcon(props: React.SVGProps) {\n\treturn (\n\t\t\n\t\t\t{'5E329B47-CBD2-491B-B272-50AB7C24E55C'}\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n\nexport default BackIcon;\n","import { Grid, makeStyles, MenuItem } from '@material-ui/core';\nimport { useWindowHeight, useWindowWidth } from '@react-hook/window-size';\nimport moment from 'moment';\nimport React from 'react';\nimport { Controller, useFormContext } from 'react-hook-form';\nimport { Cell, LabelList, Legend, Pie, PieChart } from 'recharts';\n\nimport { MaterialUiPickersDate } from '@material-ui/pickers/typings/date';\nimport { useTranslation } from 'react-i18next';\nimport AdminTLZoneOverview from '../components/AdminTLZoneOverview';\nimport Button from '../components/Button';\nimport Filter from '../components/Filter';\nimport IntervalDatePicker, { IntervalDatePickerDates, IntervalKey } from '../components/IntervalDatePicker';\nimport RhenusCaseList from '../components/RhenusCaseList';\nimport StandardAutoComplete from '../components/StandardAutoComplete';\nimport StandardCaseInputList from '../components/StandardCaseInputList';\nimport StandardDatePicker from '../components/StandardDatePicker';\nimport StandardFileInput from '../components/StandardFileInput';\nimport StandardTextField from '../components/StandardTextField';\nimport SimpleDataTable from '../components/table/SimpleDataTable';\nimport { colors } from '../consts/colors';\nimport { globalInputStyle, useGlobalStyles } from '../consts/globalStyles';\nimport { ContractType } from '../helpers/contractHelper/generalContractHelper';\nimport { renderActiveShape, renderCustomLegend } from '../helpers/dashboardHelper/chartHelper';\nimport {\n\tchartColors,\n\tDashboardCaseFilterKeys,\n\tDashboardFilterInterface,\n\tdashboardInputFields,\n\tgetChartData,\n\tgetTotalPartsTested,\n\tinitDashboardFilters,\n} from '../helpers/dashboardHelper/generalDashboardHelper';\nimport { checkIfUserStopWriting } from '../helpers/filters';\nimport { DEFAULT_NO_VALUE } from '../helpers/standardInputHelper/generalStandardInputHelper';\nimport { Routes } from '../router/Routes';\nimport Contract, { ContractSummaryInterface } from '../service/types/Contract';\nimport Customer from '../service/types/Customer';\nimport RhenusCase from '../service/types/RhenusCase';\nimport RhenusOverviewInformation from '../service/types/RhenusOverviewInformation';\nimport StandardCaseInput from '../service/types/StandardCase';\nimport User from '../service/types/User';\nimport AttachmentIcon from '../svgComponents/AttachmentIcon';\nimport BackIcon from '../svgComponents/BackIcon';\nimport GoBack from '../svgComponents/GoBack';\nimport HomeButton from '../svgComponents/HomeButton';\nimport PdfAttachmentIcon from '../svgComponents/PdfAttachmentIcon';\n\ninterface Props {\n\tintervalDates: IntervalDatePickerDates;\n\tcontract: Contract;\n\tcontractSummary: ContractSummaryInterface | undefined;\n\tcustomer: Customer | undefined;\n\tteamLeader: User | undefined;\n\tcontactQAI24: User | undefined;\n\terrors: StandardCaseInput[] | RhenusOverviewInformation[];\n\tfilters: DashboardFilterInterface;\n\tcurrentZone: number;\n\tzoneInformations: { [key: string]: RhenusCase[] };\n\tpartNumberOptions: string[];\n\tonKeyboardDateChange: (date: MaterialUiPickersDate, key: IntervalKey) => void;\n\tonDateChange: (date: MaterialUiPickersDate) => void;\n\tonDatesAccept: () => void;\n\tonDatesCancel: () => void;\n\tclearDates: () => void;\n\tclearAllFilters: () => void;\n\tonFilterChange: (key: DashboardCaseFilterKeys, value: any) => void;\n\tonZoneOverviewPress: (item: RhenusOverviewInformation) => void;\n\tonBackIconPress: () => void;\n\tdownloadTable: () => void;\n\tuser: User | undefined;\n}\n\nconst MAX_TABLE_HEIGHT = '640px';\n\nfunction DashboardScreen(props: Props) {\n\tconst [showFilters, setShowFilters] = React.useState(false);\n\tconst width = useWindowWidth();\n\tconst height = useWindowHeight();\n\tconst classes = useStyles({});\n\tconst [activeIndex, setActiveIndex] = React.useState(0);\n\tconst globalClasses = useGlobalStyles({ showFilters });\n\tconst { t } = useTranslation();\n\tconst filterListRef = React.useRef(null);\n\tconst searchRef = React.useRef({ ...initDashboardFilters });\n\tconst onFilterPress = () => setShowFilters((prev) => !prev);\n\tconst { errors, control } = useFormContext();\n\tconst chartData = React.useMemo(\n\t\t() =>\n\t\t\tgetChartData(\n\t\t\t\tprops.currentZone ? props.zoneInformations[props.currentZone] : (props.errors as StandardCaseInput[])\n\t\t\t),\n\t\t[props.errors, props.currentZone, props.zoneInformations]\n\t);\n\tconst totalData = React.useMemo(\n\t\t() =>\n\t\t\tgetTotalPartsTested(\n\t\t\t\tprops.currentZone ? props.zoneInformations[props.currentZone] : (props.errors as StandardCaseInput[])\n\t\t\t),\n\t\t[props.errors, props.currentZone, props.zoneInformations]\n\t);\n\tconst onPieMouseEnter = (_: any, index: number) => setActiveIndex(index);\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t{`${t('dashboard_screen_contract_number')}: `}\n\t\t\t\t{`${props.contract.contractNumber}`}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{t('dashboard_screen_title')}\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t
    \n\t\t\t\t{t('dashboard_screen_subtitle')}\n\t\t\t
    \n\t\t\t\n\t\t\t\t\n\t\t\t\t\t {}}\n\t\t\t\t\t\tdisabled={true}\n\t\t\t\t\t\tfixed={true}\n\t\t\t\t\t\tisUserNotEditing={false}\n\t\t\t\t\t\tvalue={moment(props.contract.date)}\n\t\t\t\t\t/>\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\t\tmultiple={false}\n\t\t\t\t\t\tdisabled={true}\n\t\t\t\t\t\tonChange={() => {}}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t {}}\n\t\t\t\t\t\tdisabled={true}\n\t\t\t\t\t\tfixed={true}\n\t\t\t\t\t\tvalue={props.customer?.name}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t {}}\n\t\t\t\t\t\tdisabled={true}\n\t\t\t\t\t\tfixed={true}\n\t\t\t\t\t\tvalue={props.contract.contactPerson.map((el) => el.name).join(', ')}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t{/* \n\t\t\t\t\n\t\t\t\t\t {}}\n\t\t\t\t\t\tdisabled={true}\n\t\t\t\t\t\tfixed={true}\n\t\t\t\t\t\tvalue={props.contract.workLocation}\n\t\t\t\t\t/>\n\t\t\t\t */}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t\t\t\n\t\t\t\t\t {}}\n\t\t\t\t\t\tdisabled={true}\n\t\t\t\t\t\tfixed={true}\n\t\t\t\t\t\tvalue={`${props.teamLeader?.firstName} ${props.teamLeader?.lastName}`}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t {}}\n\t\t\t\t\t\tdisabled={true}\n\t\t\t\t\t\tfixed={true}\n\t\t\t\t\t\tvalue={`${props.contactQAI24?.firstName} ${props.contactQAI24?.lastName}`}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t {}}\n\t\t\t\t\t\tdisabled={true}\n\t\t\t\t\t\tfixed={true}\n\t\t\t\t\t\tvalue={`${\n\t\t\t\t\t\t\tprops.teamLeader && props.teamLeader.phonenumber ? props.teamLeader.phonenumber : ''\n\t\t\t\t\t\t}`}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\t\tmultiple={true}\n\t\t\t\t\t\tdisabled={true}\n\t\t\t\t\t\tmargin={10}\n\t\t\t\t\t\tonChange={() => {}}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\n\t\t\t
    \n\t\t\t\t{t('dashboard_screen_errors')}\n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tonChange(e);\n\t\t\t\t\t\t\t\t\t\tcheckIfUserStopWriting(e, props.onFilterChange, searchRef, 'partNumber');\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\toptions={props.partNumberOptions}\n\t\t\t\t\t\t\t\t\tmultiple={false}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t props.onFilterChange('typeOfInspection', e.target.value)}>\n\t\t\t\t\t\t\t{[' ', ...props.contract.typesOfInspection].map((item) => (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t{t(item)}\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tprops.onFilterChange('shift', e.target.value);\n\t\t\t\t\t\t\t}}>\n\t\t\t\t\t\t\t{[\n\t\t\t\t\t\t\t\tDEFAULT_NO_VALUE,\n\t\t\t\t\t\t\t\t...props.contract.shiftTimes.map((shift) => ({\n\t\t\t\t\t\t\t\t\tkey: shift.name,\n\t\t\t\t\t\t\t\t\tvalue: shift.id,\n\t\t\t\t\t\t\t\t})),\n\t\t\t\t\t\t\t].map((item) => (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t{t(item.key)}\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t\t
    \n\t\t\t\t{props.contract.contractType === ContractType.Standard ? (\n\t\t\t\t\t {}}\n\t\t\t\t\t\tfilters={props.filters as any}\n\t\t\t\t\t\tshiftTimes={props.contract.shiftTimes}\n\t\t\t\t\t\tdashboard={true}\n\t\t\t\t\t\tphoto={props.contract.isPhotoAllowed}\n\t\t\t\t\t\tautomatedUpdates={props.contract.automatedUpdates}\n\t\t\t\t\t\ttypesOfInspections={[' ', ...props.contract.typesOfInspection]}\n\t\t\t\t\t\tonFilterChange={props.onFilterChange as any}\n\t\t\t\t\t\tallAssignedQAIs={[]}\n\t\t\t\t\t\tstandardCaseInputs={props.errors as StandardCaseInput[]}\n\t\t\t\t\t\tonViewPress={() => {}}\n\t\t\t\t\t\tmaxHeight={MAX_TABLE_HEIGHT}\n\t\t\t\t\t/>\n\t\t\t\t) : props.currentZone === 0 ? (\n\t\t\t\t\t\n\t\t\t\t) : (\n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t(props.errors as RhenusOverviewInformation[]).find(\n\t\t\t\t\t\t\t\t\t\t\t(error) => error.zone.id === props.currentZone\n\t\t\t\t\t\t\t\t\t\t)?.zone.name\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\n\t\t\t\t\t\t {}}\n\t\t\t\t\t\t\ttypesOfInspections={[' ', ...props.contract.typesOfInspection]}\n\t\t\t\t\t\t\terrorTypes={[' ', ...props.contract.errorTypes]}\n\t\t\t\t\t\t\tamountOfParts={\n\t\t\t\t\t\t\t\tprops.contract.amountOfParts ? [' ', ...props.contract.amountOfParts] : [' ']\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tshiftTimes={props.contract.shiftTimes}\n\t\t\t\t\t\t\tonFilterChange={props.onFilterChange as any}\n\t\t\t\t\t\t\tdashboard={true}\n\t\t\t\t\t\t\tonViewPress={() => {}}\n\t\t\t\t\t\t\tmaxHeight={MAX_TABLE_HEIGHT}\n\t\t\t\t\t\t\tphoto={props.contract.isPhotoAllowed}\n\t\t\t\t\t\t\trhenusCaseInputs={props.zoneInformations[props.currentZone] as RhenusCase[]}\n\t\t\t\t\t\t/>\n\t\t\t\t\t
    \n\t\t\t\t)}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t{props.contactQAI24 &&\n\t\t\t\tprops.errors.length !== 0 &&\n\t\t\t\tprops.customer &&\n\t\t\t\tprops.teamLeader &&\n\t\t\t\t((props.currentZone !== 0 && props.zoneInformations[props.currentZone].length !== 0) ||\n\t\t\t\t\tprops.contract.contractType === ContractType.Standard) ? (\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{chartData.map((_, index) => (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t))}\n\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\treturn ((Number(val) / totalData) * 100).toFixed(2) + '%';\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t) : null}\n\t\t\t
    \n\t\t\t{props.contractSummary && (\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t)}\n\t\t
    \n\t);\n}\n\nconst useStyles = makeStyles(() => ({\n\tbuttonWrapper: {\n\t\twidth: 'fit-content',\n\t\tbackgroundColor: colors.yellow,\n\t\tborderRadius: 4,\n\t\tborder: `1px solid ${colors.yellow}`,\n\t\tpadding: '8px 22px',\n\t\tcursor: 'pointer',\n\t\tmarginTop: '15px',\n\t},\n\tcontractNumberWrapper: {\n\t\tmarginTop: '3px',\n\t},\n\tsubtitleWrapper: {\n\t\tmargin: '20px 0px 16px',\n\t},\n\tzoneSubtitle: {\n\t\tmarginLeft: '16px',\n\t},\n\trow: {\n\t\tdisplay: 'flex',\n\t},\n\tzoneRow: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tmargin: '30px 0px 16px',\n\t},\n\tfieldWrapper: {\n\t\tmarginTop: '32px',\n\t},\n\ticonWrappper: {\n\t\tmarginRight: '12px',\n\t},\n\twrapper: {\n\t\tmarginTop: '40px',\n\t\tmarginBottom: '43px',\n\t},\n\tbottomWrapper: {\n\t\tmarginBottom: '50px',\n\t},\n\tinput: {\n\t\t...globalInputStyle(),\n\t\twhiteSpace: 'pre',\n\t},\n\tinputWrapper: {\n\t\ttransform: 'translateY(-2px)',\n\t\ttextOverflow: 'ellipsis',\n\t\toverflow: 'hidden',\n\t},\n\tchartContainer: {\n\t\tbackgroundColor: 'white',\n\t\tboxShadow: '0 4px 8px -4px rgba(26,26,26,0.2)',\n\t},\n\tbackIcon: {\n\t\tbackgroundColor: colors.yellow,\n\t\tpadding: '10px 6px',\n\t\tborderRadius: '21px',\n\t\tcursor: 'pointer',\n\t},\n\ttableWrapper: {\n\t\tdisplay: 'flex',\n\t\tjustifyContent: 'center',\n\t\tbackgroundColor: 'white',\n\t\tboxShadow: '0 4px 8px -4px rgba(26,26,26,0.2)',\n\t\tpadding: '20px 0',\n\t},\n}));\n\nexport default DashboardScreen;\n","import React from 'react';\nimport { useHistory, useParams } from 'react-router-dom';\nimport DashboardScreen from '../screens/DashboardScreen';\nimport { getErrorService } from '../helpers/dashboardHelper/readDashboardHelper';\nimport Contract, { ContractSummaryInterface } from '../service/types/Contract';\nimport Customer from '../service/types/Customer';\nimport service from '../service/service';\nimport { useAuthStateContext } from '../context/auth/useAuth';\nimport User from '../service/types/User';\nimport RhenusCase from '../service/types/RhenusCase';\nimport StandardCaseInput from '../service/types/StandardCase';\nimport {\n\tDashboardCaseFilterKeys,\n\tDashboardFilterInterface,\n\tdashboardInputFields,\n\tinitDashboardFilters,\n} from '../helpers/dashboardHelper/generalDashboardHelper';\nimport { filterData } from '../helpers/filters';\nimport { FormProvider, useForm } from 'react-hook-form';\nimport { RouteParams, Routes } from '../router/Routes';\nimport RhenusOverviewInformation from '../service/types/RhenusOverviewInformation';\nimport { ContractType } from '../helpers/contractHelper/generalContractHelper';\nimport moment from 'moment';\nimport { generateAndDownloadExcel } from '../helpers/fileDownloader';\nimport { languages, LANGUAGE_KEY } from '../consts/language';\nimport { useTranslation } from 'react-i18next';\nimport { unstable_batchedUpdates } from 'react-dom';\nimport Spinner from '../components/Spinner';\nimport { MaterialUiPickersDate } from '@material-ui/pickers/typings/date';\nimport { IntervalDatePickerDates, IntervalKey } from '../components/IntervalDatePicker';\n\nfunction DashboardContainer() {\n\tconst history = useHistory();\n\tconst { user } = useAuthStateContext();\n\tconst methods = useForm();\n\n\tconst [contract, setContract] = React.useState();\n\tconst [customer, setCustomer] = React.useState();\n\tconst [errors, setErrors] = React.useState([]);\n\tconst [teamLeader, setTeamLeader] = React.useState();\n\tconst [contactQAI24, setContactQAI24] = React.useState();\n\tconst [filters, setFilters] = React.useState(initDashboardFilters);\n\tconst [currentZone, setCurrentZone] = React.useState(0);\n\tconst [zoneInformations, setZoneInformations] = React.useState<{ [key: string]: RhenusCase[] }>({});\n\tconst [allStandardCaseInputs, setAllStandardCaseInputs] = React.useState([]);\n\n\tconst allErrors = React.useRef([]);\n\tconst zoneErrors = React.useRef<{ [key: string]: RhenusCase[] }>({});\n\tconst routeParams: RouteParams = useParams();\n\tconst [contractSummary, setContractSummary] = React.useState(undefined);\n\tconst [mounted, setMounted] = React.useState(false);\n\n\tconst [intervalDates, setIntervalDates] = React.useState({\n\t\tfromDate: null,\n\t\ttoDate: null,\n\t});\n\n\tconst { t } = useTranslation();\n\n\tconst fetchData = React.useCallback(async () => {\n\t\ttry {\n\t\t\tlet customer: Customer | undefined;\n\t\t\tlet teamLeader: User | undefined;\n\t\t\tlet contactQAI24: User | undefined;\n\t\t\tlet errors: RhenusOverviewInformation[] | StandardCaseInput[] | void;\n\t\t\tlet contractSummary: any;\n\n\t\t\tconst contract = await service.getContract(Number(routeParams.contract_id));\n\n\t\t\tif (routeParams.contract_id) {\n\t\t\t\tconst allInputs = await service.getAllStandardCaseInputs(Number(routeParams.contract_id));\n\t\t\t\tsetAllStandardCaseInputs(allInputs);\n\t\t\t}\n\n\t\t\tif (contract && user) {\n\t\t\t\tcustomer = await service.getCustomerByContract(contract.id);\n\t\t\t}\n\n\t\t\tif (contract) {\n\t\t\t\tteamLeader = await service.getTeamLeaderByContract(contract.id);\n\t\t\t\tcontactQAI24 = await service.getContactQAI24ByContract(contract.id);\n\t\t\t\terrors = await getErrorService(contract);\n\t\t\t\tcontractSummary = await service.contractSummary(\n\t\t\t\t\tcontract.id,\n\t\t\t\t\tintervalDates.fromDate,\n\t\t\t\t\tintervalDates.toDate\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tunstable_batchedUpdates(() => {\n\t\t\t\tsetContract(contract);\n\t\t\t\tif (customer) setCustomer(customer);\n\t\t\t\tif (teamLeader) setTeamLeader(teamLeader);\n\t\t\t\tif (contactQAI24) setContactQAI24(contactQAI24);\n\n\t\t\t\tif (errors) {\n\t\t\t\t\tsetErrors(errors);\n\t\t\t\t\tallErrors.current = errors;\n\t\t\t\t}\n\n\t\t\t\tif (contractSummary) setContractSummary(contractSummary);\n\t\t\t\tsetMounted(true);\n\t\t\t});\n\t\t} catch (e) {\n\t\t\thistory.push(Routes.Home);\n\t\t}\n\t}, [history, routeParams.contract_id, user, intervalDates]);\n\n\tReact.useEffect(() => {\n\t\tfetchData();\n\t}, [fetchData]);\n\n\tconst onFilterChange = (key: DashboardCaseFilterKeys, value: any) => {\n\t\tconst tempValue = value === ' ' ? '' : value;\n\t\tsetFilters((prev) => ({ ...prev, [key]: tempValue }));\n\t};\n\tconst clearAllFilters = () => {\n\t\tObject.values(dashboardInputFields).forEach((value) => methods.setValue(value, ''));\n\t\tsetFilters(initDashboardFilters);\n\t\tsetIntervalDates({\n\t\t\tfromDate: null,\n\t\t\ttoDate: null,\n\t\t});\n\t};\n\n\tReact.useEffect(() => {\n\t\tif (contract) {\n\t\t\tif (contract.contractType === ContractType.Standard) setErrors(filterData(filters, allErrors.current));\n\t\t\telse {\n\t\t\t\tsetZoneInformations(() => {\n\t\t\t\t\treturn Object.keys(zoneErrors.current).reduce((acc, cur) => {\n\t\t\t\t\t\t//@ts-ignore\n\t\t\t\t\t\treturn { ...acc, [cur]: filterData(filters, zoneErrors.current[cur]) };\n\t\t\t\t\t}, {});\n\t\t\t\t});\n\t\t\t\tif (filters.fromDate || filters.toDate) {\n\t\t\t\t\tservice\n\t\t\t\t\t\t.getRhenusOverviewInformations(\n\t\t\t\t\t\t\tcontract.id,\n\t\t\t\t\t\t\tfilters.fromDate ? filters.fromDate : moment(contract.date),\n\t\t\t\t\t\t\tfilters.toDate ? filters.toDate : moment()\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.then((res) => {\n\t\t\t\t\t\t\tif (res) {\n\t\t\t\t\t\t\t\tsetErrors(res);\n\t\t\t\t\t\t\t\tallErrors.current = res;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.catch(() => {});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}, [filters, contract]);\n\n\tconst getZoneData = React.useCallback(\n\t\t(item: RhenusOverviewInformation) => {\n\t\t\tif (zoneInformations[item.zone.id]) {\n\t\t\t\tsetCurrentZone(item.zone.id);\n\t\t\t} else {\n\t\t\t\tservice\n\t\t\t\t\t.getZoneCaseInputs(0, item.zone.id)\n\t\t\t\t\t.then((res) => {\n\t\t\t\t\t\tif (res) {\n\t\t\t\t\t\t\tsetZoneInformations((prev) => {\n\t\t\t\t\t\t\t\tconst newData = { ...prev, [item.zone.id]: res };\n\t\t\t\t\t\t\t\tzoneErrors.current = newData;\n\t\t\t\t\t\t\t\treturn Object.keys(zoneErrors.current).reduce((acc, cur) => {\n\t\t\t\t\t\t\t\t\t//@ts-ignore\n\t\t\t\t\t\t\t\t\treturn { ...acc, [cur]: filterData(filters, zoneErrors.current[cur]) };\n\t\t\t\t\t\t\t\t}, {});\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tsetCurrentZone(item.zone.id);\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.catch(() => {});\n\t\t\t}\n\t\t},\n\t\t[filters, zoneInformations]\n\t);\n\n\tconst setRhenusOverviewInforamtions = () => setCurrentZone(0);\n\n\tconst downloadTable = async () => {\n\t\tlet lan = localStorage.getItem(LANGUAGE_KEY);\n\t\tif (lan === null) {\n\t\t\tlan = languages.deutchland.i18n;\n\t\t}\n\t\tif (contract) {\n\t\t\tif (filters.fromDate) {\n\t\t\t\tconst offset = moment(filters.fromDate).utcOffset();\n\t\t\t\tfilters.fromDate = moment(filters.fromDate).add(offset);\n\t\t\t}\n\t\t\tif (filters.toDate) {\n\t\t\t\tconst offset = moment(filters.toDate).utcOffset();\n\t\t\t\tfilters.toDate = moment(filters.toDate).add(offset);\n\t\t\t}\n\t\t\tconst excelData = await service.createStandardErrorInputsExcelSheet(contract.id, filters, lan);\n\t\t\texcelData && generateAndDownloadExcel(excelData, t('export_table_order_overview'), contract.contractNumber);\n\t\t}\n\t};\n\n\tconst inputs: string[] = allStandardCaseInputs.map((val) => val.partNumber);\n\n\tconst partNumberOptions = inputs.filter((item, index) => inputs.indexOf(item) === index);\n\n\tconst onDateChange = React.useCallback(\n\t\t(date: MaterialUiPickersDate) => {\n\t\t\tconst offset = moment(date).utcOffset();\n\t\t\tlet dateMoment = moment(date).add(offset);\n\n\t\t\tif (!intervalDates.fromDate) {\n\t\t\t\tsetIntervalDates({\n\t\t\t\t\tfromDate: dateMoment,\n\t\t\t\t\ttoDate: null,\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tintervalDates.fromDate &&\n\t\t\t\t!intervalDates.toDate &&\n\t\t\t\tmoment(dateMoment).isSameOrAfter(intervalDates.fromDate)\n\t\t\t) {\n\t\t\t\tsetIntervalDates((prev) => ({\n\t\t\t\t\t...prev,\n\t\t\t\t\ttoDate: dateMoment,\n\t\t\t\t}));\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsetIntervalDates({\n\t\t\t\tfromDate: dateMoment,\n\t\t\t\ttoDate: null,\n\t\t\t});\n\n\t\t\treturn;\n\t\t},\n\t\t[intervalDates]\n\t);\n\n\tconst onKeyboardDateChange = (date: MaterialUiPickersDate, key: IntervalKey) => {\n\t\tconst dateMoment = moment(date).utcOffset(0, true);\n\t\tmethods.clearErrors(['fromDate', 'toDate']);\n\t\tif (key === 'start') {\n\t\t\tif (moment(dateMoment).isSameOrBefore(intervalDates.toDate) || !intervalDates.toDate) {\n\t\t\t\tsetIntervalDates((prev) => ({\n\t\t\t\t\t...prev,\n\t\t\t\t\tfromDate: dateMoment,\n\t\t\t\t}));\n\t\t\t\tsetFilters((prev) => ({\n\t\t\t\t\t...prev,\n\t\t\t\t\tfromDate: dateMoment,\n\t\t\t\t}));\n\t\t\t} else {\n\t\t\t\tmethods.setError('fromDate', { message: t('start_interval_error') });\n\t\t\t}\n\t\t} else if (key === 'end') {\n\t\t\tif (moment(dateMoment).isSameOrAfter(intervalDates.fromDate)) {\n\t\t\t\tsetIntervalDates((prev) => ({\n\t\t\t\t\t...prev,\n\t\t\t\t\ttoDate: dateMoment,\n\t\t\t\t}));\n\t\t\t\tsetFilters((prev) => ({\n\t\t\t\t\t...prev,\n\t\t\t\t\ttoDate: dateMoment,\n\t\t\t\t}));\n\t\t\t} else {\n\t\t\t\tmethods.setError('toDate', { message: t('end_interval_error') });\n\t\t\t}\n\t\t}\n\t};\n\n\tconst onDatesAccept = () => {\n\t\tsetFilters((prev) => ({\n\t\t\t...prev,\n\t\t\tfromDate: intervalDates.fromDate,\n\t\t\ttoDate: intervalDates.toDate,\n\t\t}));\n\t};\n\n\tconst onDatesCancel = () => {\n\t\tconst prevDates: IntervalDatePickerDates = {\n\t\t\tfromDate: filters.fromDate,\n\t\t\ttoDate: filters.toDate,\n\t\t};\n\t\tsetIntervalDates(prevDates);\n\t};\n\n\tconst clearDates = () => {\n\t\tsetFilters((prev) => ({\n\t\t\t...prev,\n\t\t\tfromDate: null,\n\t\t\ttoDate: null,\n\t\t}));\n\n\t\tsetIntervalDates({\n\t\t\tfromDate: null,\n\t\t\ttoDate: null,\n\t\t});\n\t};\n\n\tif (!mounted || !contract) return ;\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\n\t);\n}\n\nexport default DashboardContainer;\n","import { History, LocationState } from 'history';\nimport { RouteParams } from '../../router/Routes';\nimport service from '../../service/service';\nimport Contract from '../../service/types/Contract';\nimport { ContractType } from '../contractHelper/generalContractHelper';\nimport { ContractNavigationInterface, goToHome } from '../navigationHelper';\nimport moment from 'moment';\n\nexport function onDashboardScreenMount(\n\thistory: History,\n\trouteParams: RouteParams,\n\tsetContract: (customer: Contract | undefined) => void\n) {\n\tconst historyState = history.location.state as ContractNavigationInterface | undefined;\n\n\tif (historyState && historyState.contract) {\n\t\tsetContract(Contract.fromJSON(JSON.parse(historyState.contract)));\n\t} else if (routeParams.contract_id) {\n\t\tservice\n\t\t\t.getContract(Number(routeParams.contract_id))\n\t\t\t.then((res) => {\n\t\t\t\tsetContract(res);\n\t\t\t})\n\t\t\t.catch((e) => {\n\t\t\t\tgoToHome(history);\n\t\t\t});\n\t} else {\n\t\tgoToHome(history);\n\t}\n}\n\nexport async function getErrorService(contract: Contract) {\n\tif (contract.contractType === ContractType.Standard) {\n\t\treturn await service.getAllStandardCaseInputs(contract.id).catch(() => {});\n\t} else {\n\t\treturn await service.getRhenusOverviewInformations(contract.id, contract.date, moment()).catch(() => {});\n\t}\n}\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core';\nimport CloseIcon from '../svgComponents/CloseIcon';\nimport { useGlobalStyles } from '../consts/globalStyles';\nimport { colors } from '../consts/colors';\nimport { useNotificationActionContext, useNotificationStateContext } from '../context/notification/useNotification';\nimport { useTranslation } from 'react-i18next';\n\nfunction Notification() {\n\tconst { notification, visible } = useNotificationStateContext();\n\tconst { hideNotification } = useNotificationActionContext();\n\tconst [shown, setShown] = React.useState(false);\n\tconst [display, setDisplay] = React.useState(true);\n\n\tconst classes = useStyles({ shown: shown, visible: visible, display: display });\n\tconst globalClasses = useGlobalStyles({});\n\tconst { t } = useTranslation();\n\n\tconst onCloseNotification = () => {\n\t\tsetShown(false);\n\t\thideNotification();\n\t\tsetDisplay(false);\n\t\tsetTimeout(() => {\n\t\t\tsetDisplay(true);\n\t\t}, 1500);\n\t};\n\n\tReact.useEffect(() => {\n\t\tif (visible) {\n\t\t\tsetShown(true);\n\t\t\tsetTimeout(() => {\n\t\t\t\tsetShown(false);\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\thideNotification();\n\t\t\t\t}, 1500);\n\t\t\t}, 3500);\n\t\t}\n\t}, [visible, hideNotification]);\n\n\treturn (\n\t\t
    \n\t\t\t\n\t\t\t\t{t(notification.text, { text: notification.additional })}\n\t\t\t\n\t\t\t\n\t\t
    \n\t);\n}\n\ninterface StyleProps {\n\tvisible: boolean;\n\tshown: boolean;\n\tdisplay: boolean;\n}\n\nconst useStyles = makeStyles(() => ({\n\twrapper: (p: StyleProps) => ({\n\t\tposition: 'fixed',\n\t\tbottom: '20px',\n\t\tleft: '110px',\n\t\tright: '110px',\n\t\tpadding: '10px 40px 10px 32px',\n\t\tdisplay: p.display ? 'flex' : 'none',\n\t\tboxShadow: '0 4px 8px -4px rgba(26,26,26,0.2)',\n\t\talignItems: 'center',\n\t\tjustifyContent: 'space-between',\n\t\tbackgroundColor: colors.lightYellow,\n\t\topacity: p.shown ? 1 : 0,\n\t\ttransition: 'opacity 1.5s',\n\t\tpointerEvents: p.visible ? 'auto' : 'none',\n\t\tzIndex: 30,\n\t}),\n\tcloseIcon: {\n\t\tcursor: 'pointer',\n\t},\n}));\n\nexport default Notification;\n","import React from 'react';\nimport { Grid, makeStyles } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport { useGlobalStyles } from '../consts/globalStyles';\nimport { Control, Controller } from 'react-hook-form';\nimport BackArrow from '../svgComponents/BackArrow';\nimport HomeButton from '../svgComponents/HomeButton';\nimport StandardTextField from '../components/StandardTextField';\nimport StandardDatePicker from '../components/StandardDatePicker';\nimport { invoiceInputFields } from '../containers/InvoiceContainer';\nimport { InvoiceItem } from '../service/types/Invoice';\nimport { rules } from '../consts/rules';\nimport StandardCRUDButtons from '../components/StandardCRUDButtons';\nimport StandardDialog, { StandardDialogInterface } from '../components/StandardDialog';\nimport Button from '../components/Button';\nimport SaveIcon from '../svgComponents/SaveIcon';\n\ninterface Props {\n\tinvoice: InvoiceItem | undefined;\n\tisUserEditing: boolean;\n\tcontrol: Control>;\n\terrors: Record;\n\tdialogRef: React.MutableRefObject;\n\tonSubmitPress: () => void;\n\tonCancelPress: () => void;\n\tonDeletePress: () => void;\n\tonCancelDialogPress: () => void;\n\tonDeleteInvoiceDialogPress: () => void;\n\tcloseBilling: () => void;\n\tdownloadAsPdf: () => void;\n}\n\nfunction InvoiceScreen(props: Props) {\n\tconst globalClasses = useGlobalStyles();\n\tconst { t } = useTranslation();\n\n\tconst classes = useStyles();\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t{props.invoice ? props.invoice?.id : t('rhenus_case_screen_new_error_input')}\n\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t\tcanDelete\n\t\t\t\t\tdata={props.invoice}\n\t\t\t\t\tisUserEditing={props.isUserEditing}\n\t\t\t\t\tonCancelPress={props.onCancelPress}\n\t\t\t\t\tonDeletePress={props.onDeletePress}\n\t\t\t\t\tonSubmitPress={props.onSubmitPress}\n\t\t\t\t/>\n\t\t\t
    \n\t\t\t\n\t\t
    \n\t);\n}\n\nconst useStyles = makeStyles(() => ({\n\ttitleWrapper: {\n\t\tdisplay: 'flex',\n\t\tjustifyContent: 'space-between',\n\t\talignItems: 'center',\n\t\tmarginBottom: '24px',\n\t},\n\n\tfieldWrapper: {\n\t\tmarginBottom: '32px',\n\t},\n\tinvoiceUnderline: {\n\t\tmarginBottom: '32px',\n\t},\n\trowWrapper: {\n\t\tdisplay: 'flex',\n\t\tmarginTop: '48px',\n\t\talignItems: 'center',\n\t\tmarginBottom: '32px',\n\t},\n\tdownloadWrapper: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t},\n\tdownloadBtn: {\n\t\tmarginLeft: '8px',\n\t},\n}));\n\nexport default InvoiceScreen;\n","import React from 'react';\nimport { useForm } from 'react-hook-form';\nimport { useHistory, useParams } from 'react-router-dom';\nimport service from '../service/service';\nimport { RouteParams, Routes } from '../router/Routes';\nimport { InvoiceItem } from '../service/types/Invoice';\nimport { StandardDialogInterface } from '../components/StandardDialog';\nimport InvoiceScreen from '../screens/InvoiceScreen';\n\nexport const invoiceInputFields = {\n\tcreation_date: 'creation_date',\n\tdate_of_invoice: 'date_of_invoice',\n\tfrom_date: 'from_date',\n\tto_date: 'to_date',\n\tbill_number: 'bill_number',\n\n\tnumber_of_shifts: '',\n\tnumber_of_workers: '',\n\t//QA\n\tinspector_hours: '',\n\tinspector_late_hours: '',\n\tinspector_night_hours: '',\n\tinspector_sunday_night_hours: '',\n\tinspector_week_overtime_hours: '',\n\n\t//TEAMLEADER\n\tteamlead_hours: '',\n\tteamlead_late_hours: '',\n\tteamlead_night_hours: '',\n\tteamlead_sunday_night_hours: '',\n\tteamlead_week_overtime_hours: '',\n\n\t//RESIDENT\n\t// resident_hours: '',\n\t// resident_late_hours: '',\n\t// resident_night_hours: '',\n\t// resident_sunday_night_hours: '',\n\t// resident_week_overtime_hours: '',\n\n\tgloves: '',\n\ttravel_time: '',\n\tkilometers: '',\n\ttravel_fee: '',\n\tadministration_fee: '',\n\tapplication_intake: '',\n\tcustomer: '',\n};\n\nfunction InvoiceContainer() {\n\tconst { control, handleSubmit, errors, reset } = useForm();\n\n\tconst [isUserEditing, setIsUserEditing] = React.useState(false);\n\n\tconst [invoice, setInvoice] = React.useState(undefined);\n\n\tconst dialogRef = React.useRef(null);\n\n\tconst history = useHistory();\n\n\tconst routeParams: RouteParams = useParams();\n\n\tReact.useEffect(() => {\n\t\tconst id = routeParams.invoice_id;\n\n\t\tif (id) {\n\t\t\tservice\n\t\t\t\t.getInvoiceById(parseInt(id))\n\t\t\t\t.then(setInvoice)\n\t\t\t\t.catch(() => {});\n\t\t}\n\t}, [routeParams.invoice_id]);\n\n\tconst onCancelPress = () => {\n\t\tif (invoice) {\n\t\t\treset({\n\t\t\t\t[invoiceInputFields.creation_date]: invoice.creation_date,\n\t\t\t\t[invoiceInputFields.from_date]: invoice.from_date,\n\t\t\t\t[invoiceInputFields.to_date]: invoice.to_date,\n\t\t\t\t[invoiceInputFields.bill_number]: invoice.bill_number ? invoice.bill_number : 0,\n\t\t\t\t[invoiceInputFields.date_of_invoice]: invoice.date_of_invoice,\n\t\t\t});\n\t\t\tsetIsUserEditing(false);\n\t\t}\n\t};\n\n\tconst onDeletePress = () => dialogRef.current?.setDialogState(true);\n\tconst onCancelDialogPress = () => dialogRef.current?.setDialogState(false);\n\n\tconst onUpdatePress = React.useMemo(\n\t\t() =>\n\t\t\thandleSubmit((data) => {\n\t\t\t\tif (invoice) {\n\t\t\t\t\tservice\n\t\t\t\t\t\t.updateInvoice(\n\t\t\t\t\t\t\tinvoice.id,\n\t\t\t\t\t\t\tdata[invoiceInputFields.creation_date],\n\t\t\t\t\t\t\tdata[invoiceInputFields.date_of_invoice],\n\t\t\t\t\t\t\tdata[invoiceInputFields.from_date],\n\t\t\t\t\t\t\tdata[invoiceInputFields.to_date],\n\t\t\t\t\t\t\tdata[invoiceInputFields.bill_number]\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.then(() => {\n\t\t\t\t\t\t\tsetIsUserEditing(false);\n\t\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}),\n\t\t[handleSubmit, invoice]\n\t);\n\n\tconst onSubmitPress = () => {\n\t\tif (invoice) {\n\t\t\tif (isUserEditing) {\n\t\t\t\tonUpdatePress();\n\t\t\t} else {\n\t\t\t\tonEditPress();\n\t\t\t}\n\t\t}\n\t};\n\n\tconst onEditPress = () => setIsUserEditing(true);\n\n\tconst onDeleteInvoiceDialogPress = () => {\n\t\tif (invoice) {\n\t\t\tservice.deleteInvoice(invoice.id).then(() => {\n\t\t\t\thistory.push(`${Routes.Summary}/${invoice.contract_id}`);\n\t\t\t});\n\t\t}\n\t};\n\n\tconst closeBilling = () => {\n\t\tif (invoice) {\n\t\t\tservice.completeInvoice(invoice.id).then(() => {\n\t\t\t\tsetInvoice((prev) => {\n\t\t\t\t\treturn prev ? { ...prev, completed: true } : undefined;\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t};\n\n\tconst downloadAsPdf = () => {\n\t\tif (invoice) {\n\t\t\tservice.exportInvoice(invoice.id).then((res) => {\n\t\t\t\tif (res) {\n\t\t\t\t\tconst linkSource = `data:application/pdf;base64,${res}`;\n\t\t\t\t\tconst downloadLink = document.createElement('a');\n\t\t\t\t\tconst fileName = `${invoice.id.toString()}.pdf`;\n\t\t\t\t\tdownloadLink.href = linkSource;\n\t\t\t\t\tdownloadLink.download = fileName;\n\t\t\t\t\tdownloadLink.click();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t};\n\n\tif (!invoice) {\n\t\treturn <>;\n\t}\n\n\treturn (\n\t\t\n\t);\n}\n\nexport default InvoiceContainer;\n","import React from 'react';\nimport { Grid, makeStyles } from '@material-ui/core';\nimport { useWindowHeight } from '@react-hook/window-size';\n\nimport Avatar from '../components/Avatar';\nimport MenuItem from '../components/MenuItem';\nimport { entitiesItems } from '../consts/menuItems';\nimport LanguageList from '../components/LanguageList';\nimport background from '../assets/images/backgroud.png';\nimport IQRLogoBlack from '../svgComponents/IQRLogoBlack';\nimport ReduceWorkTimeTracking from '../components/ReduceWorkTimeTracking';\nimport { useWorkingTimeStateContext } from '../context/workingTime/useWorkingTime';\n\nimport '../App.css';\nimport { useGlobalStyles } from '../consts/globalStyles';\n\nexport default function Entities() {\n\tconst windowHeight = useWindowHeight();\n\tconst classes = useStyles({ windowHeight: windowHeight });\n\tconst globalClasses = useGlobalStyles();\n\tconst { record } = useWorkingTimeStateContext();\n\n\treturn (\n\t\t\n\t\t\t
    \n\t\t\t\t\"Background\"\n\t\t\t
    \n\t\t\t\n\n\t\t\t\n\t\t\t\t{record ? (\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t) : null}\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t\t\t{entitiesItems.map((item, index) => (\n\t\t\t\t\t\n\t\t\t\t))}\n\t\t\t\n\t\t
    \n\t);\n}\n\ninterface StyleProps {\n\twindowHeight: number;\n}\n\nconst useStyles = makeStyles(() => ({\n\tcontainerWrapper: (p: StyleProps) => ({\n\t\tminHeight: p.windowHeight,\n\t\toverflow: 'hidden',\n\t}),\n\tavatarWrapper: { position: 'absolute', top: '0', right: '0', display: 'flex' },\n\tcontentWrapper: { marginTop: 0 },\n\tlanguageWarpper: {\n\t\tmarginTop: '32px',\n\t\tmarginRight: '25px',\n\t},\n\trecordWrapper: {\n\t\tmarginTop: '10px',\n\t\tmarginRight: '15px',\n\t},\n\tbackgroundImage: {\n\t\twidth: '100%',\n\t},\n\tbackgroundImageWrapper: { position: 'absolute', top: 0, left: 0, right: 0, pointerEvents: 'none' },\n\tloginImage: {\n\t\theight: '100%',\n\t},\n\tloginImageWrapper: { position: 'absolute', top: 0, left: 0, bottom: 0, zIndex: -1 },\n}));\n","import React, { useRef, useState } from 'react';\nimport { Chip } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport TextField from '@material-ui/core/TextField';\nimport Autocomplete from '@mui/material/Autocomplete';\nimport { withStyles, makeStyles } from '@material-ui/core/styles';\n\nimport ErrorIcon from '../svgComponents/ErrorIcon';\n\nimport { fonts } from '../consts/fonts';\nimport { colors } from '../consts/colors';\nimport { globalInputStyle, useGlobalStyles } from '../consts/globalStyles';\nimport DropdownArrow from '../svgComponents/DropdownArrow';\n\nconst TextFieldWithCSS = withStyles({\n\troot: {\n\t\t'& .MuiAutocomplete-popupIndicatorOpen': {\n\t\t\ttransition: 'all 0.5s',\n\t\t\tmarginTop: '5px',\n\t\t},\n\t\t'& .MuiAutocomplete-popupIndicator': {\n\t\t\tmarginRight: '2px',\n\t\t\tmarginTop: '5px',\n\t\t\ttransition: 'all 0.5s',\n\t\t},\n\t\t'& .MuiIconButton-root:hover': {\n\t\t\tbackgroundColor: 'white',\n\t\t},\n\t\t'& .Mui-disabled': {\n\t\t\tcolor: colors.gray,\n\t\t\topacity: '0.7',\n\t\t},\n\t\t'& .MuiAutocomplete-inputRoot': {\n\t\t\tpaddingLeft: '12px',\n\t\t},\n\t\t'& .MuiInput-underline:before': {\n\t\t\tborderBottom: `0px solid ${colors.lightGray}`,\n\t\t},\n\t\t'& .MuiInput-input': {\n\t\t\t...globalInputStyle(),\n\t\t\tborderRadius: '5px',\n\t\t\tpaddingLeft: '12px',\n\t\t},\n\t\t'& .MuiInput-input.Mui-disabled': {\n\t\t\t...globalInputStyle(),\n\t\t\tcolor: colors.lightGray,\n\t\t\tborderRadius: '5px',\n\t\t\tpaddingLeft: '12px',\n\t\t},\n\t\t'& .MuiInput-underline:after': {\n\t\t\tborderBottom: `0px solid ${colors.lightGray}`,\n\t\t},\n\t\t'& label.Mui-focused:not(.Mui-error)': {\n\t\t\tcolor: colors.lightGray,\n\t\t},\n\t\t'& .MuiInput-underline:hover:not(.Mui-disabled):before': {\n\t\t\tborderBottom: `0px solid ${colors.lightGray}`,\n\t\t},\n\t\t'& .MuiInput-underline': {\n\t\t\tborderBottomStyle: 'none',\n\t\t},\n\t\t'& .MuiSelect-select:focus': {\n\t\t\tbackgroundColor: 'white',\n\t\t\tborderRadius: '5px',\n\t\t},\n\t\t'& .Mui-error': {\n\t\t\tcolor: colors.error,\n\t\t},\n\t},\n})(TextField);\n\ninterface Props {\n\tdisabled?: boolean;\n\tlabel: string;\n\tvalue: any[];\n\toptions: any[];\n\terror?: boolean;\n\tlimitTags?: number;\n\thelperText?: string;\n\tplaceholder?: string;\n\tdisableCloseOnSelect?: boolean;\n\tonChange: (event: any) => void;\n}\n\nfunction MuiAutocomplete({\n\tdisabled = false,\n\tlabel,\n\tvalue,\n\toptions,\n\terror,\n\tlimitTags = 10,\n\thelperText,\n\tplaceholder,\n\tdisableCloseOnSelect,\n\tonChange,\n}: Props) {\n\tconst { t } = useTranslation();\n\tconst globalClasses = useGlobalStyles();\n\tconst zoneNameRef = useRef();\n\tconst [focused, setFocused] = useState(false);\n\n\tconst classes = useAutocompleteStyles({ focused, disabled });\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t{label}\n\t\t\t
    \n\t\t\t `${option?.firstName} ${option?.lastName}`}\n\t\t\t\tlimitTags={limitTags}\n\t\t\t\tclasses={{\n\t\t\t\t\tinputRoot: classes.inputRoot,\n\t\t\t\t\tpaper: classes.dropdownContainer,\n\t\t\t\t\toption: classes.optionClass,\n\t\t\t\t\tclearIndicator: classes.clearIndicator,\n\t\t\t\t\tlistbox: classes.listBox,\n\t\t\t\t}}\n\t\t\t\trenderTags={(tagValue, getTagProps) =>\n\t\t\t\t\ttagValue.map((option: any, index) => (\n\t\t\t\t\t\t\n\t\t\t\t\t))\n\t\t\t\t}\n\t\t\t\tgetLimitTagsText={(val) => {`+${val} ${placeholder}`}}\n\t\t\t\tdisableCloseOnSelect={disableCloseOnSelect}\n\t\t\t\tnoOptionsText={t('autocomplete_no_options')}\n\t\t\t\tloadingText={t('autocomplete_loading')}\n\t\t\t\tmultiple\n\t\t\t\tonChange={(event, value) => onChange(value)}\n\t\t\t\trenderInput={(params) => (\n\t\t\t\t\t
    \n\t\t\t\t\t\t setFocused(true),\n\t\t\t\t\t\t\t\tonBlur: () => setFocused(false),\n\n\t\t\t\t\t\t\t\tendAdornment: (\n\t\t\t\t\t\t\t\t\t
    {params.InputProps.endAdornment}
    \n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tlabel={undefined}\n\t\t\t\t\t\t\terror={error}\n\t\t\t\t\t\t\thelperText=\"\"\n\t\t\t\t\t\t\tclassName={classes.inputWrapper}\n\t\t\t\t\t\t/>\n\t\t\t\t\t
    \n\t\t\t\t)}\n\t\t\t\tpopupIcon={\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t}\n\t\t\t/>\n\t\t\t{error ? (\n\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t{helperText}\n\t\t\t\t
    \n\t\t\t) : null}\n\t\t
    \n\t);\n}\n\ninterface StyleProps {\n\tfocused: boolean;\n\tdisabled: boolean;\n}\n\nconst useAutocompleteStyles = makeStyles(() => ({\n\tlabel: (p: StyleProps) => ({\n\t\tcolor: p.disabled ? colors.lightGray : colors.gray,\n\t\tfontSize: '14px',\n\t\tlineHeight: '20px',\n\t\tfontFamily: fonts.regular,\n\t}),\n\tlabelWrapper: {\n\t\tmarginBottom: '4px',\n\t\tdisplay: 'flex',\n\t\twhiteSpace: 'pre-line',\n\t},\n\tinputWrapper: (p: StyleProps) => ({\n\t\twidth: '100%',\n\t\tborderRadius: '4px',\n\t\tbackgroundColor: colors.white,\n\t\tborder: `1px solid ${p.focused ? colors.darkGray : '#C0C0C0'}`,\n\t}),\n\tdropdownContainer: {\n\t\tboxShadow: 'none',\n\t\tborder: `1px solid ${colors.borderColor}`,\n\t},\n\trow: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tmarginTop: '3px',\n\t},\n\terror: {\n\t\tfontSize: '12px',\n\t\tlineHeight: '16px',\n\t\tfontFamily: fonts.regular,\n\t\tcolor: colors.error,\n\t},\n\terrorImageWrapper: { marginRight: '5px', height: '16px' },\n\tinputRow: { display: 'flex', alignItems: 'center' },\n\tchipHeight: {\n\t\theight: '26px',\n\t\tmargin: '3px',\n\t\tbackgroundColor: colors.someYellow,\n\t},\n\tinput: {\n\t\t...globalInputStyle(),\n\t\twhiteSpace: 'pre',\n\t\tcolor: colors.darkGray,\n\t\tborderRadius: '5px',\n\t\tpaddingLeft: '12px',\n\t},\n\toptionClass: {\n\t\t'&[aria-selected=true]': {\n\t\t\tbackgroundColor: colors.white,\n\t\t},\n\t\t'&[aria-selected=true]:hover': {\n\t\t\tbackgroundColor: 'rgba(0,0,0,0.04)',\n\t\t},\n\t},\n\tdeleteIcon: {\n\t\tcolor: colors.darkGray,\n\t},\n\tinputRoot: {\n\t\tpaddingRight: '30px',\n\t\tminHeight: '35px',\n\t},\n\tclearIndicator: {\n\t\tdisplay: 'inline-flex',\n\t},\n\tlistBox: {\n\t\toverflow: 'hidden',\n\t\tmaxHeight: 'unset',\n\t},\n\tendAdormentWrapper: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t},\n\tdropdownArrowWrapper: {\n\t\theight: 'fit-content',\n\t\tpadding: '5px 12px',\n\t\ttransform: 'translateY(0px)',\n\t\talignItems: 'center',\n\t\tdisplay: 'flex',\n\t},\n}));\n\nexport default MuiAutocomplete;\n","import React, { useEffect, useState } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport { Grid, makeStyles } from '@material-ui/core';\nimport { useForm, Controller } from 'react-hook-form';\n\nimport Button from '../components/Button';\nimport GoBack from '../svgComponents/GoBack';\nimport HomeButton from '../svgComponents/HomeButton';\nimport MuiAutocomplete from '../components/MuiAutocomplete';\nimport StandardTextField from '../components/StandardTextField';\n\nimport { rules } from '../consts/rules';\nimport { fonts } from '../consts/fonts';\nimport User from '../service/types/User';\nimport service from '../service/service';\nimport { colors } from '../consts/colors';\nimport { Routes } from '../router/Routes';\nimport { useGlobalStyles } from '../consts/globalStyles';\nimport { useAtom } from 'jotai';\nimport { groupAtom } from '../atoms/group';\nimport Spinner from '../components/Spinner';\nimport StandardDialog, { StandardDialogInterface } from '../components/StandardDialog';\n\nexport interface UpdateGroup extends CreateGroup {\n\tgroupId: number;\n}\nexport interface CreateGroup {\n\tname: string;\n\tteamLeadsIds: number[];\n}\n\ntype FormValues = {\n\tgroupName: string;\n\tgroupMembers: User[];\n};\n\nconst formFields = {\n\tgroupName: 'groupName',\n\tgroupMembers: 'groupMembers',\n};\n\nexport default function GroupCreatePage() {\n\tconst history = useHistory();\n\tconst classes = useStyles();\n\tconst { t } = useTranslation();\n\tconst [, setGroups] = useAtom(groupAtom);\n\tconst [loading, setLoading] = useState(false);\n\tconst [teamLeaders, setTeamLeaders] = useState([]);\n\tconst dialogRef = React.useRef(null);\n\tconst globalClasses = useGlobalStyles({ description: colors.lightGray });\n\tconst { control, handleSubmit, errors, formState, reset } = useForm({\n\t\tmode: 'onSubmit',\n\t});\n\n\tconst resetForm = () => {\n\t\treset({ groupMembers: [], groupName: '' });\n\t};\n\n\tconst onSubmit = async (data: FormValues) => {\n\t\tconst teamLeadsIds = data.groupMembers.map((el) => el.id);\n\n\t\ttry {\n\t\t\tsetLoading(true);\n\t\t\tconst res = await service.createGroup({ name: data.groupName, teamLeadsIds });\n\n\t\t\tif (res) {\n\t\t\t\tconst readGroups = await service.readGroups();\n\t\t\t\tsetGroups(readGroups);\n\t\t\t\thistory.goBack();\n\t\t\t}\n\t\t} finally {\n\t\t\tsetLoading(false);\n\t\t}\n\t};\n\n\tconst onAcceptDialog = () => history.goBack();\n\tconst onCancelDialog = () => dialogRef.current?.setDialogState(false);\n\n\tconst onCancel = () => {\n\t\tif (formState.isDirty) {\n\t\t\tdialogRef.current?.setDialogState(true);\n\t\t} else {\n\t\t\tresetForm();\n\t\t\thistory.goBack();\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\t(async () => {\n\t\t\ttry {\n\t\t\t\tconst teamLeaders = await service.getAllTeamLeaders();\n\t\t\t\tsetTeamLeaders(teamLeaders.filter((el) => el.deleted === false));\n\t\t\t} catch {}\n\t\t})();\n\t}, []);\n\n\tif (loading) return ;\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t{t('group_create_title')}\n\t\t\t
    \n\n\t\t\t
    \n\t\t\t\t{t('group_create_subtitle')}\n\t\t\t
    \n\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tif (val === undefined) return rules(t).required.message;\n\t\t\t\t\t\t\t\t\treturn val?.length === 0 ? rules(t).required.message : true;\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\trender={({ onChange, value }) => (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t\n\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t\n\t\t
    \n\t);\n}\n\nconst useStyles = makeStyles(() => ({\n\ttitleWrapper: {\n\t\tmarginBottom: '24px',\n\t},\n\tsubtitleWrapper: {\n\t\tmargin: '28px 0px',\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tjustifyContent: 'space-between',\n\t},\n\trowWrapper: {\n\t\tdisplay: 'flex',\n\t\tmargin: '48px 0px',\n\t\talignItems: 'center',\n\t},\n\tnoMargin: {\n\t\tmargin: 'unset',\n\t},\n\taddMember: {\n\t\tfontSize: '14px',\n\t\tlineHeight: '20px',\n\t\tfontFamily: fonts.regular,\n\t\tcolor: colors.darkGray,\n\t\ttextDecoration: 'underline',\n\t\tborder: 'none',\n\t\tcursor: 'pointer',\n\t\tmarginTop: '10px',\n\t\tmarginLeft: 'auto',\n\t\tdisplay: 'block',\n\t\tbackgroundColor: 'transparent',\n\t},\n}));\n","import { atom } from 'jotai';\nimport User from '../service/types/User';\n\nexport const teamLeadersAtom = atom([]);\n","import React, { useEffect, useRef, useState } from 'react';\nimport { useAtom } from 'jotai';\nimport { useTranslation } from 'react-i18next';\nimport { Grid, makeStyles } from '@material-ui/core';\nimport { useForm, Controller } from 'react-hook-form';\nimport { useHistory, useLocation, useParams } from 'react-router-dom';\n\nimport Button from '../../components/Button';\nimport Spinner from '../../components/Spinner';\nimport GoBack from '../../svgComponents/GoBack';\nimport HomeButton from '../../svgComponents/HomeButton';\nimport MuiAutocomplete from '../../components/MuiAutocomplete';\nimport StandardTextField from '../../components/StandardTextField';\nimport StandardDialog, { StandardDialogInterface } from '../../components/StandardDialog';\n\nimport { rules } from '../../consts/rules';\nimport { fonts } from '../../consts/fonts';\nimport User from '../../service/types/User';\nimport service from '../../service/service';\nimport { colors } from '../../consts/colors';\nimport { Routes } from '../../router/Routes';\nimport { groupAtom } from '../../atoms/group';\nimport { Group } from '../groupOverview/GroupOverview';\nimport { teamLeadersAtom } from '../../atoms/teamLeaders';\nimport { useGlobalStyles } from '../../consts/globalStyles';\nimport { useNotificationActionContext } from '../../context/notification/useNotification';\n\nexport interface CreateGroup {\n\tname: string;\n\tteamLeadsIds: number[];\n}\n\ntype FormValues = {\n\tgroupName: string;\n\tgroupMembers: User[];\n};\n\nconst formFields = {\n\tgroupName: 'groupName',\n\tgroupMembers: 'groupMembers',\n};\n\nexport default function GroupUpdatePage() {\n\tconst history = useHistory();\n\tconst { id }: { id: string } = useParams();\n\tconst { state }: { state?: Group } = useLocation();\n\n\tconst classes = useStyles();\n\tconst { t } = useTranslation();\n\tconst globalClasses = useGlobalStyles({ description: colors.lightGray });\n\n\tconst mounted = useRef(false);\n\tconst { setNotification } = useNotificationActionContext();\n\tconst deleteDialogRef = React.useRef(null);\n\n\tconst [editMode, setEditMode] = useState(false);\n\tconst [, setGroups] = useAtom(groupAtom);\n\tconst [loading, setLoading] = useState(false);\n\tconst [teamLeaders, setTeamLeaders] = useAtom(teamLeadersAtom);\n\tconst groupRef = useRef<{ groupName: string; groupMembers: any } | undefined>({\n\t\tgroupName: state?.name ?? '',\n\t\tgroupMembers: [],\n\t});\n\n\tconst { control, handleSubmit, errors, formState, setValue, getValues } = useForm({\n\t\tmode: 'onSubmit',\n\t\tdefaultValues: {\n\t\t\tgroupName: state?.name ?? '',\n\t\t\tgroupMembers: [],\n\t\t},\n\t\tshouldUnregister: false,\n\t});\n\n\tconst resetForm = () => {\n\t\tsetValue(formFields.groupName, groupRef.current?.groupName);\n\t\tsetValue(formFields.groupMembers, groupRef.current?.groupMembers);\n\t};\n\n\tconst onEdit = () => setEditMode(true);\n\n\t/* const navigateOnSuccess = () => {\n\t\tif (history.location.key) {\n\t\t\thistory.goBack();\n\t\t} else {\n\t\t\thistory.push(Routes.GroupOverview);\n\t\t}\n\t}; */\n\n\tconst onSubmit = async (data: FormValues) => {\n\t\tconst teamLeadsIds = data.groupMembers.map((el) => el.id);\n\t\tconst preparedData = { groupId: parseInt(id), name: data.groupName, teamLeadsIds };\n\n\t\ttry {\n\t\t\tsetLoading(true);\n\t\t\tconst updateGroup = await service.updateGroup(preparedData);\n\n\t\t\tif (updateGroup) {\n\t\t\t\tconst readGroups = await service.readGroups();\n\t\t\t\tsetGroups(readGroups);\n\t\t\t\tsetNotification({\n\t\t\t\t\ttext: 'group_update_updated_notification',\n\t\t\t\t\tadditional: data.groupName,\n\t\t\t\t});\n\n\t\t\t\t// This will force new fetch on users screen\n\t\t\t\tlocalStorage.removeItem('ALL_USERS');\n\t\t\t}\n\t\t} finally {\n\t\t\tsetLoading(false);\n\t\t\tsetEditMode(false);\n\t\t}\n\t};\n\n\tconst openDeleteDialog = () => deleteDialogRef.current?.setDialogState(true);\n\tconst closeDeleteDialog = () => deleteDialogRef.current?.setDialogState(false);\n\n\tconst onDelete = async () => {\n\t\ttry {\n\t\t\tconst deleteSuccess = await service.deleteGroup(parseInt(id));\n\t\t\tif (deleteSuccess) {\n\t\t\t\tsetGroups((prev) => prev.filter((group) => group.groupId !== parseInt(id)));\n\t\t\t\thistory.goBack();\n\t\t\t\tsetNotification({\n\t\t\t\t\ttext: 'group_update_delete_notification',\n\t\t\t\t\tadditional: getValues(formFields.groupName),\n\t\t\t\t});\n\t\t\t}\n\t\t} finally {\n\t\t\tsetLoading(false);\n\t\t}\n\t};\n\n\tconst onCancel = () => {\n\t\tcloseDeleteDialog();\n\t\tresetForm();\n\t\tsetEditMode(false);\n\t};\n\n\tuseEffect(() => {\n\t\t(async () => {\n\t\t\ttry {\n\t\t\t\tif (!mounted.current && teamLeaders.length <= 0) {\n\t\t\t\t\tsetLoading(true);\n\t\t\t\t\tconst getTeamLeaders = await service.getAllTeamLeaders();\n\t\t\t\t\tsetTeamLeaders(getTeamLeaders.filter((el) => el.deleted === false));\n\t\t\t\t\tmounted.current = true;\n\t\t\t\t} else {\n\t\t\t\t\tmounted.current = true;\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\tsetLoading(false);\n\t\t\t}\n\t\t})();\n\t}, [setTeamLeaders, teamLeaders.length]);\n\n\tuseEffect(() => {\n\t\t(async () => {\n\t\t\ttry {\n\t\t\t\tif (!state?.name && mounted.current) {\n\t\t\t\t\tsetLoading(true);\n\t\t\t\t\tconst readGroup = await service.readGroup(parseInt(id));\n\n\t\t\t\t\tif (readGroup) {\n\t\t\t\t\t\tsetValue(formFields.groupName, readGroup.name);\n\n\t\t\t\t\t\tconst users = readGroup.users.map((user) =>\n\t\t\t\t\t\t\tteamLeaders.find((leader) => leader.id === user.id)\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif (users.length > 0) {\n\t\t\t\t\t\t\tsetValue(formFields.groupMembers, users);\n\t\t\t\t\t\t\tgroupRef.current = { groupName: readGroup.name, groupMembers: users as any };\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\tsetLoading(false);\n\t\t\t}\n\t\t})();\n\t}, [id, setValue, state?.name, teamLeaders]);\n\n\tuseEffect(() => {\n\t\tif (state?.users) {\n\t\t\tconst users = state.users.map((user) => teamLeaders.find((leader) => leader.id === user.id));\n\t\t\tif (users.length > 0) {\n\t\t\t\tsetValue(formFields.groupMembers, users);\n\t\t\t\tgroupRef.current = { groupName: groupRef.current?.groupName ?? '', groupMembers: users };\n\t\t\t}\n\t\t}\n\t}, [setValue, state?.users, teamLeaders]);\n\n\tif (loading) return ;\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t{t('group_update_title')}\n\t\t\t
    \n\n\t\t\t
    \n\t\t\t\t{t('group_update_subtitle')}\n\t\t\t
    \n\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tif (val === undefined) return rules(t).required.message;\n\t\t\t\t\t\t\t\t\treturn val?.length === 0 ? rules(t).required.message : true;\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\trender={({ onChange, value }) => (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t{editMode ? (\n\t\t\t\t\t\t\n\t\t\t\t\t) : (\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\n\t\t\t\t\t{editMode ? (\n\t\t\t\t\t\t\n\t\t\t\t\t) : (\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t\n\t\t
    \n\t);\n}\n\nconst useStyles = makeStyles(() => ({\n\ttitleWrapper: {\n\t\tmarginBottom: '24px',\n\t},\n\tsubtitleWrapper: {\n\t\tmargin: '28px 0px',\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tjustifyContent: 'space-between',\n\t},\n\trowWrapper: {\n\t\tdisplay: 'flex',\n\t\tmargin: '48px 0px',\n\t\talignItems: 'center',\n\t},\n\tnoMargin: {\n\t\tmargin: 'unset',\n\t},\n\taddMember: {\n\t\tfontSize: '14px',\n\t\tlineHeight: '20px',\n\t\tfontFamily: fonts.regular,\n\t\tcolor: colors.darkGray,\n\t\ttextDecoration: 'underline',\n\t\tborder: 'none',\n\t\tcursor: 'pointer',\n\t\tmarginTop: '10px',\n\t\tmarginLeft: 'auto',\n\t\tdisplay: 'block',\n\t\tbackgroundColor: 'transparent',\n\t},\n}));\n","import React from 'react';\nimport { Link } from 'react-router-dom';\nimport { makeStyles } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\n\nimport NewLink from '../../../components/NewLink';\nimport IQRLogo from '../../../svgComponents/IQRLogo';\nimport HomeButton from '../../../svgComponents/HomeButton';\n\nimport { Routes } from '../../../router/Routes';\nimport { useGlobalStyles } from '../../../consts/globalStyles';\n\nexport default function Header() {\n\tconst { t } = useTranslation();\n\tconst classes = useStyles();\n\tconst globalClasses = useGlobalStyles();\n\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{t('group_overview_title')}\n\t\t\t\t
    \n\t\t\t\t\n\t\t\t
    \n\t\t\n\t);\n}\n\nconst useStyles = makeStyles(() => ({\n\trow: {\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tjustifyContent: 'space-between',\n\t},\n\ttitleWrapper: {\n\t\tmarginBottom: '12px',\n\t},\n}));\n","import React from 'react';\nimport { Link } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport { Table, TableBody, TableCell, TableContainer, TableHead, TableRow, makeStyles } from '@material-ui/core';\n\nimport { Group } from '../GroupOverview';\n\nimport { fonts } from '../../../consts/fonts';\nimport { Routes } from '../../../router/Routes';\nimport { colors } from '../../../consts/colors';\nimport { useGlobalStyles } from '../../../consts/globalStyles';\n\nconst TABLE_HEAD = [\n\t{\n\t\tname: 'group_overview_group_name',\n\t\twidth: '5vw',\n\t},\n\t{\n\t\tname: 'group_overview_group_members',\n\t\twidth: '20vw',\n\t},\n\t{\n\t\tname: '',\n\t\twidth: '2vw',\n\t},\n];\n\ninterface Props {\n\tgroups: Group[];\n}\n\nfunction GroupList({ groups }: Props) {\n\tconst classes = useStyles();\n\tconst globalClasses = useGlobalStyles({ description: colors.gray });\n\tconst { t } = useTranslation();\n\n\treturn (\n\t\t
    \n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{TABLE_HEAD.map((el) => (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{t(el.name)}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{groups?.map((group) => (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{group.name}\n\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{group.users.map((el) => el.name).join(', ')}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{t('group_overview_edit')}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t))}\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t);\n}\n\nconst useStyles = makeStyles(() => ({\n\tcontainer: {\n\t\tmargin: '48px 0px',\n\t\toverflow: 'auto',\n\t},\n\tfixed: {\n\t\ttableLayout: 'fixed',\n\t\tborderCollapse: 'separate',\n\t},\n\titemWrapper: {\n\t\tpadding: '14px 16px',\n\t\toverflow: 'hidden',\n\t\tleft: '0px',\n\t},\n\tlink: {\n\t\tfontFamily: fonts.regular,\n\t\tlineHeight: '20px',\n\t\tfontSize: '14px',\n\t\tcolor: colors.darkGray,\n\t\ttextDecoration: 'underline !important',\n\t\tcursor: 'pointer',\n\t},\n}));\n\nexport default GroupList;\n","import React, { useEffect, useMemo, useState } from 'react';\nimport { Grid } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\n\nimport Header from './components/Header';\nimport Spinner from '../../components/Spinner';\nimport GroupList from './components/GroupList';\nimport StandardTextField from '../../components/StandardTextField';\n\nimport Filter from '../../components/Filter';\nimport service from '../../service/service';\nimport { useGlobalStyles } from '../../consts/globalStyles';\nimport { useAtom } from 'jotai';\nimport { groupAtom } from '../../atoms/group';\n\nexport interface GroupUser {\n\tid: number;\n\tname: string;\n}\nexport interface Group {\n\tgroupId: number;\n\tname: string;\n\tusers: GroupUser[];\n}\n\nexport default function GroupOverview() {\n\tconst { t } = useTranslation();\n\n\tconst [groups, setGroups] = useAtom(groupAtom);\n\tconst [showFilters, setShowFilters] = useState(false);\n\tconst [groupNameFilter, setGroupNameFilter] = useState('');\n\tconst [groupMemberFilter, setGroupMemberFilter] = useState('');\n\n\tconst groupData = useMemo(() => {\n\t\tlet data = groups;\n\t\tif (groupNameFilter.trim() !== '') {\n\t\t\tdata = data.filter((el) => el.name.toLowerCase().startsWith(groupNameFilter.trim().toLowerCase()));\n\t\t}\n\t\tif (groupMemberFilter.trim() !== '') {\n\t\t\tdata = data.filter(\n\t\t\t\t(el) =>\n\t\t\t\t\tel.users.filter((member) =>\n\t\t\t\t\t\tmember.name.toLowerCase().includes(groupMemberFilter.trim().toLowerCase())\n\t\t\t\t\t).length > 0\n\t\t\t);\n\t\t}\n\n\t\treturn data;\n\t}, [groups, groupNameFilter, groupMemberFilter]);\n\n\tconst globalClasses = useGlobalStyles();\n\tconst onFilterPress = () => setShowFilters((prev) => !prev);\n\n\tconst clearAllFilters = () => {\n\t\tsetGroupNameFilter('');\n\t\tsetGroupMemberFilter('');\n\t};\n\n\tuseEffect(() => {\n\t\t(async () => {\n\t\t\ttry {\n\t\t\t\tif (groups.length <= 0) {\n\t\t\t\t\tconst readGroups = await service.readGroups();\n\t\t\t\t\tsetGroups(readGroups);\n\t\t\t\t}\n\t\t\t} catch {}\n\t\t})();\n\t}, [groups, setGroups]);\n\n\tif (groups?.length === 0) return ;\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t setGroupNameFilter(e.target.value)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t setGroupMemberFilter(e.target.value)}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\n\n\t\t\t\n\t\t
    \n\t);\n}\n","import React from 'react';\nimport { BrowserRouter as Router, Switch, Route, Redirect } from 'react-router-dom';\nimport RouteGuard from 'react-guard';\nimport i18n from '../i18n';\n\nimport LoginContainer, { LoginType } from '../containers/LoginContainer';\nimport { RouteRestrictions, Routes, RoutesName } from './Routes';\nimport ForgotPasswordContainer from '../containers/ForgotPasswordContainer';\nimport ResetPasswordContainer from '../containers/ResetPasswordContainer';\nimport { useAuthStateContext } from '../context/auth/useAuth';\nimport { usePrevious } from '../hooks/usePrevious';\nimport { getLoginRedirectRoute } from '../consts/login';\nimport { languages, LANGUAGE_KEY } from '../consts/language';\nimport ContactUsContainer from '../containers/ContactUsContainer';\nimport ErrorWrapper from '../components/ErrorWrapper';\nimport LegalNoticeDialog from '../components/LegalNoticeDialog';\nimport ErrorServiceDialog from '../components/ErrorServiceDialog';\nimport HomeContainer from '../containers/HomeContainer';\nimport SettingsContainer from '../containers/SettingsContainer';\nimport UserOverviewContainer from '../containers/UserOverviewContainer';\nimport ContractContainer from '../containers/ContractContainer';\nimport CustomerOverviewContainer from '../containers/CustomerOverviewContainer';\nimport CustomerContainer from '../containers/CustomerContainer';\nimport StandardCaseInputContainer from '../containers/StandardCaseInputContainer';\nimport ProcessContractContainer from '../containers/ProcessContractContainer';\nimport ContractOverviewContainer from '../containers/ContractOverviewContainer';\nimport { ContractViewType } from '../helpers/contractHelper/generalContractHelper';\nimport ZoneOverviewContainer from '../containers/ZoneOverviewContainer';\nimport ContactPersonContainer from '../containers/ContactPersonContainer';\nimport { goToContract, goToDashboard, goToExpenses, goToProcessContract } from '../helpers/navigationHelper';\nimport RhenusCaseContainer from '../containers/RhenusCaseContainer';\nimport WorkingTimeContainer from '../containers/WorkingTimeContainer';\nimport StandardDialog, { StandardDialogInterface } from '../components/StandardDialog';\nimport { useWorkingTimeStateContext } from '../context/workingTime/useWorkingTime';\nimport WorkTimeTrack from '../service/types/WorkTimeTrack';\nimport ExpensesContainer from '../containers/ExpensesContainer';\nimport SummaryContainer from '../containers/SummaryContainer';\nimport ChangePasswordContainer from '../containers/ChangePasswordContainer';\nimport DashboardContainer from '../containers/DashboardContainer';\nimport Notification from '../components/Notification';\nimport { createBrowserHistory } from 'history';\nimport InvoiceContainer from '../containers/InvoiceContainer';\n\nimport Entities from '../pages/Entities';\nimport GroupCreatePage from '../pages/GroupCreatePage';\nimport GroupUpdatePage from '../pages/groupUpdatePage/GroupUpdatePage';\nimport GroupOverview from '../pages/groupOverview/GroupOverview';\nimport UserContainer from '../containers/UserContainer';\n\ninterface Props {}\n\nfunction MainRouter(props: Props) {\n\tconst { user } = useAuthStateContext();\n\tconst previousUserRole = usePrevious(user?.role);\n\n\tconst legalNoticeRef = React.useRef(null);\n\tconst { record } = useWorkingTimeStateContext();\n\tconst dialogRef = React.useRef(null);\n\tconst recordRef = React.useRef();\n\n\tconst closeDialog = () => {\n\t\tdialogRef.current?.setDialogState(false);\n\t};\n\n\tconst onAccept = () => {\n\t\tdialogRef.current?.setDialogState(false);\n\t\tif (recordRef.current) {\n\t\t\tgoToExpenses(createBrowserHistory(), recordRef.current);\n\t\t\twindow.location.reload();\n\t\t}\n\t};\n\n\tReact.useEffect(() => {\n\t\tif (user?.firstName) {\n\t\t\tif (record) {\n\t\t\t\trecordRef.current = record;\n\t\t\t} else if (recordRef.current) {\n\t\t\t\tdialogRef.current?.setDialogState(true);\n\t\t\t}\n\t\t} else {\n\t\t\trecordRef.current = undefined;\n\t\t}\n\t}, [record, user]);\n\n\tReact.useEffect(() => {\n\t\tconst language = localStorage.getItem(LANGUAGE_KEY);\n\t\tif (language === null) {\n\t\t\tlocalStorage.setItem(LANGUAGE_KEY, languages.deutchland.i18n);\n\t\t} else {\n\t\t\ti18n.changeLanguage(language);\n\t\t}\n\t}, []);\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{(p: any) => }\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n\nexport default MainRouter;\n","import React from 'react';\n\nexport function usePrevious(value: any) {\n\tconst ref = React.useRef();\n\n\tReact.useEffect(() => {\n\t\tref.current = value;\n\t}, [value]);\n\n\treturn ref.current;\n}\n","import React, { ReactNode, useEffect, useRef } from 'react';\nimport { useAtom } from 'jotai';\n\nimport service from '../service/service';\nimport { groupAtom } from '../atoms/group';\nimport { userAtom } from '../atoms/userAtom';\nimport { allCustomersAtom } from '../atoms/allCustomers';\nimport { unstable_batchedUpdates } from 'react-dom';\n\ninterface Props {\n\tchildren: ReactNode;\n}\n\nexport default function InitWrapper({ children }: Props) {\n\tconst mounted = useRef(false);\n\tconst [groups, setGroups] = useAtom(groupAtom);\n\tconst [, setAllCustomers] = useAtom(allCustomersAtom);\n\tconst [user] = useAtom(userAtom);\n\n\tuseEffect(() => {\n\t\t(async () => {\n\t\t\ttry {\n\t\t\t\tif (!mounted.current && user) {\n\t\t\t\t\tconst readGroups = await service.readGroups();\n\t\t\t\t\tconst allCustomers = await service.getAllCustomers();\n\n\t\t\t\t\tunstable_batchedUpdates(() => {\n\t\t\t\t\t\tsetGroups(readGroups);\n\t\t\t\t\t\tsetAllCustomers(allCustomers);\n\t\t\t\t\t\tmounted.current = true;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t} catch {\n\t\t\t\tmounted.current = false;\n\t\t\t}\n\t\t})();\n\t}, [groups, setAllCustomers, setGroups, user]);\n\n\treturn <>{children};;\n}\n","import React from 'react';\nimport LoadingWrapper from './components/LoadingWrapper';\n\nimport ContextProvider from './context/ContextProvider';\nimport MainRouter from './router/MainRouter';\nimport moment from 'moment-timezone';\nimport InitWrapper from './wrappers/InitWrapper';\n\nfunction App() {\n\tmoment.tz.setDefault('Germany/Berlin');\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n\nexport default App;\n","import { ReportHandler } from 'web-vitals';\n\nconst reportWebVitals = (onPerfEntry?: ReportHandler) => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry); \n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n}\n\nexport default reportWebVitals;\n","//import './whyDidyouRender';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport App from './App';\nimport './i18n';\nimport reportWebVitals from './reportWebVitals';\n\nReactDOM.render(\n\t\n\t\t\n\t,\n\tdocument.getElementById('root')\n);\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(c.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();\n"],"sourceRoot":""}