{"version":3,"sources":["AppError.tsx","Layout/Footer.tsx","Layout/CubeLogo.tsx","Lib/Roles.ts","Schemas/Api/ComparisonGroup.ts","Lib/Ajv.ts","Lib/SchemaMapper.ts","Lib/ComparisonGroupSchemaMapper.ts","Lib/JSONFetch.ts","Lib/CachingService.ts","Lib/ComparisonGroup.ts","Lib/Encoding.ts","Lib/Helper.tsx","Schemas/Api/ComparisonCombination.ts","Schemas/Api/UserComparisonCombination.ts","Lib/ComparisonGroupMapper.ts","Lib/ComparisonGroupService.ts","Schemas/Api/MasterData.ts","Lib/MasterDataSchemaMapper.ts","Lib/LookupService.ts","Schemas/Api/Pharmacy.ts","Schemas/Api/PharmacyInfo.ts","Lib/Pharmacy.ts","Lib/PharmacyData.ts","Lib/PharmacyMapper.ts","Lib/RawPharmacy.ts","Lib/RawPharmacyMapper.ts","Schemas/Api/User.ts","Lib/User.ts","Lib/UserMapper.ts","Lib/PharmacyService.ts","Schemas/Api/Report.ts","Lib/Report.ts","Lib/ReportMapper.ts","Lib/ReportService.ts","Schemas/Api/SalesData.ts","Lib/SalesDataMapper.ts","Schemas/Api/StaffData.ts","Lib/YearlyData.ts","Lib/Mappings/StaffTypes.ts","Lib/StaffDataMapper.ts","Lib/StaffDataService.ts","Lib/UserService.ts","Lib/ValidationHelpers.ts","Lib/YearlyDataValidation.ts","Schemas/Api/IntermediateResult.ts","Lib/Mappings/Intermediates.ts","Lib/IntermediatesMapper.ts","Schemas/Api/RuleParamaters.ts","Lib/RuleParamatersMapper.ts","Schemas/Api/ValidationResult.ts","Lib/ValidationResultsMapper.ts","Schemas/Api/YearlyData.ts","Lib/YearlyDataMapper.ts","Schemas/Api/YearlyPharmacy.ts","Lib/YearlyPharmacyMapper.ts","Lib/YearlyDataValidations/AspirantCount.ts","Lib/YearlyDataValidations/BalanceEquality.ts","Lib/YearlyDataValidations/BranchPharmacyTrend.ts","Lib/YearlyDataValidations/BuyingSyndicate.ts","Lib/YearlyDataValidations/BuyingSyndicateTrend.ts","Lib/YearlyDataValidations/Concessionaire.ts","Lib/YearlyDataValidations/CustomerCountTrend.ts","Lib/YearlyDataValidations/ExepensesToSales.ts","Lib/YearlyDataValidations/FamiliaryWork.ts","Lib/YearlyDataValidations/GrossProfitToSales.ts","Lib/YearlyDataValidations/GrossProfitTrend.ts","Lib/YearlyDataValidations/HighPriceMoreThanInsuranceShare.ts","Lib/YearlyDataValidations/InsurancePackagesTrend.ts","Lib/YearlyDataValidations/InsuranceShare.ts","Lib/YearlyDataValidations/InsuranceShareTrend.ts","Lib/YearlyDataValidations/LegalSocialExpenses.ts","Lib/YearlyDataValidations/MaterialExpense.ts","Lib/YearlyDataValidations/MaterialExpenseTrend.ts","Lib/YearlyDataValidations/OfficinAreaTrend.ts","Lib/YearlyDataValidations/PrescriptionTrend.ts","Lib/YearlyDataValidations/PrivatePackagesTrend.ts","Lib/YearlyDataValidations/PrivateShareTrend.ts","Lib/YearlyDataValidations/Profit.ts","Lib/YearlyDataValidations/PropertyOwner.ts","Lib/YearlyDataValidations/PropertyOwnerTrend.ts","Lib/YearlyDataValidations/SalesAreaTrend.ts","Lib/YearlyDataValidations/SkilledStaffMissing.ts","Lib/YearlyDataValidations/SkilledStaffWithoutExpenses.ts","Lib/YearlyDataValidations/StaffExpense.ts","Lib/YearlyDataValidations/StaffExpenseToProfit.ts","Lib/YearlyDataValidations/StaffExpenseTrend.ts","Lib/YearlyDataValidations/StaffNonPharmacistExpense.ts","Lib/YearlyDataValidations/StaffPharmacistExpense.ts","Lib/YearlyDataValidations/StockDifference.ts","Lib/YearlyDataValidations/TenureExpense.ts","Lib/YearlyDataValidations/TenureExpenseTrend.ts","Lib/YearlyDataValidations/TenureMissing.ts","Lib/YearlyDataValidations/UnskilledStaffMissing.ts","Lib/YearlyDataValidations/UnskilledStaffWithoutExpenses.ts","Lib/YearlyDataValidations/createValidationsWithParams.ts","Lib/Intermediates.ts","Lib/FormValidations/YearlyDataParamters.ts","Lib/YearlyDataService.ts","Lib/ServiceProvider.ts","Providers/AuthProvider.tsx","Hooks/useAuth.ts","Providers/DataProvider.tsx","Hooks/useCachedData.ts","Components/Common/Involvement.tsx","Layout/Menu.tsx","Layout/Header.tsx","Lib/UserWithPharmacy.ts","Lib/AuthService.ts","Providers/NotificationProvider.tsx","Layout/Notification/Notification.tsx","Hooks/useNotifications.ts","Layout/Notification/Notifications.tsx","Layout/Providers.tsx","Layout/Theme/Theme.ts","Layout/Layout.tsx","Components/Common/Ui/NarrowBox.tsx","Components/Public/About.tsx","Hooks/useChangeEffect.ts","Components/Common/FormSelect.tsx","Components/Common/MultiSelect.tsx","assets/apostar_pfeil.svg","Components/ComparisonGroups/Form.tsx","Components/Common/Dialogs/EditDialog.tsx","Components/Common/ItemStatus.tsx","Components/ComparisonGroups/ListItem.tsx","Components/Common/LabelValue.tsx","Components/Common/Ui/ListLoader.tsx","Hooks/useDialog.ts","Hooks/useEditDialog.ts","Hooks/useSaveWithNotification.ts","Hooks/useService.ts","Hooks/useFilteredComparisonGroups.ts","Hooks/useLoad.ts","Components/Common/Ui/useTypeStyles.ts","Components/User/ChooseComparisonGroup.tsx","Lib/ComparisonGroupFilter.ts","Components/Common/Ui/LoadingIndicator.tsx","Components/ComparisonGroups/ComparisonGroupMenu.tsx","Components/ComparisonGroups/renderTable.tsx","Components/Common/ItemMenu.tsx","Components/ComparisonGroups/renderList.tsx","Components/ComparisonGroups/Table.tsx","Components/ComparisonGroups/index.tsx","Components/Public/Contact.tsx","assets/apostar_icons_white_benutzer_anlegen.svg","Components/Dashboard/Infobox.tsx","Components/Common/Form/DataSelect.tsx","Components/Common/Dialogs/DefaultDialog.tsx","Components/Dashboard/ActivateMonthly.tsx","Components/Dashboard/Monthly.tsx","assets/apostar_icons_white_apotheke_datenaendern.svg","Components/Dashboard/QuickAction.tsx","assets/apostar_icons_white_apotheke_anlegen.svg","assets/apostar_icons_white_benutzer_datenaendern.svg","Components/Dashboard/Yearly.tsx","assets/frontpage-background.jpg","Components/Dashboard/Dashboard.tsx","Components/Public/Faq.tsx","Components/Public/Imprint.tsx","Components/Public/LegalTerms.tsx","Components/Common/Ui/Icons.tsx","Components/Common/LoadingButton.tsx","Components/Common/Form/FormSuccess.tsx","Lib/FormValidations/validateEmail.ts","Lib/FormValidations/User.ts","Components/Public/RedeemPasswordCode.tsx","Components/Public/useTwoColumnFormStyles.ts","Components/Public/LostPassword.tsx","Hooks/useFormikTouchErrors.ts","Components/Common/Form/FormikTouchErrors.tsx","Components/Common/Ui/NarrowContainer.tsx","Components/Common/Form/DataSelectField.tsx","Components/Common/Form/HelperField.tsx","Components/Common/Form/LocationMultiSelect.tsx","Components/User/PharmacyDataForm.tsx","Lib/FormValidations/Pharmacy.ts","Components/User/PharmacyData.tsx","Components/User/UserDataForm.tsx","Components/User/UserForm.tsx","Components/User/PharmacyBranchSelect.tsx","Components/Common/Ui/ResponsiveTable.tsx","Components/User/UserMenu.tsx","Components/User/UsersList.tsx","Components/Common/useFabStyles.ts","Components/User/PharmacyUsers.tsx","Components/PublicRoute.tsx","Components/User/RequestRegistrationCodeForm.tsx","Components/User/RegistrationCodeForm.tsx","Components/Common/Form/SteppedForm.tsx","Components/User/RegisterBranch.tsx","assets/apostar_icons_meineapotheke.svg","Components/ReportsArchive/ReportsFilter.tsx","assets/apostar_icons_download.svg","Components/ReportsArchive/PeriodTag.tsx","Components/ReportsArchive/Table.tsx","Components/Common/Ui/TableEmptyState.tsx","Components/Common/Ui/TableRowLoader.tsx","Components/ReportsArchive/index.tsx","Components/RestrictedRoute.tsx","Components/Public/SignIn.tsx","Components/Public/SignUp.tsx","Components/Dashboard/Terms.tsx","Components/User/UserStandaloneForm.tsx","Components/ValidationParams/Param.tsx","Components/ValidationParams/Definitions.ts","Components/ValidationParams/ParamInputs.tsx","Components/ValidationParams/SelectYear.tsx","Components/ValidationParams/index.tsx","Components/YearlyData/TrendIndicator.tsx","Components/YearlyData/CompareableNumberInput.tsx","Components/YearlyData/CompareableNumbersHeader.tsx","Components/YearlyData/FieldError.tsx","Components/YearlyData/BalanceSheet.tsx","Components/Common/AnimatedNumber.tsx","Components/YearlyData/DataCompleteness.tsx","Lib/Dates.ts","Components/YearlyData/ErrorMessages.tsx","Components/YearlyData/FormMenuItem.tsx","assets/apostar_icons_eingabe_4_bilanz.svg","assets/apostar_icons_eingabe_1_allgdaten.svg","assets/apostar_icons_eingabe_3_gewinnverlust.svg","assets/apostar_icons_eingabe_1_apodaten.svg","assets/apostar_icons_eingabe_2_personal.svg","Components/YearlyData/WarningMenuItem.tsx","Components/YearlyData/FormMenu.tsx","Components/YearlyData/DateInput.tsx","Components/YearlyData/SelectInput.tsx","Components/YearlyData/YesNoInput.tsx","Components/YearlyData/useSalesData.ts","Components/YearlyData/GeneralForm.tsx","Components/YearlyData/IncomeSheet.tsx","Components/YearlyData/Instructions.tsx","Components/YearlyData/PharmacyData.tsx","Components/YearlyData/AddStaff.tsx","Components/YearlyData/StaffDataLoad.tsx","Components/YearlyData/StaffRow.tsx","Components/YearlyData/StaffForm.tsx","Hooks/useLeaveWarning.ts","Components/YearlyData/useProgress.ts","Components/YearlyData/FormWizard.tsx","Routes.tsx","App.tsx","reportWebVitals.ts","index.tsx","Lib/CredentialStore.ts"],"names":["AppError","error","clearError","Container","maxWidth","style","height","display","alignItems","justifyContent","Card","raised","CardContent","Typography","variant","gutterBottom","fontSize","marginBottom","color","Link","href","Button","onClick","Footer","history","useHistory","goToTerms","useCallback","push","goToFaq","goToContact","goToImprint","className","align","Date","getFullYear","component","position","bottom","left","zIndex","process","useStyles","makeStyles","theme","logoCube","verticalAlign","breakpoints","down","marginLeft","marginTop","logoWord","providedLine","fontWeight","rightPart","container","LogoCube","classes","join","src","alt","target","getDefaults","accountantRole","parseInt","accountantInvolvement","userRole","mainRole","hasAnyRole","user","role","fetchedRoles","desiredIds","filter","match","includes","begBezeichnung","map","lookup","begID","schema","properties","type","ajvInstance","ajv","allErrors","$data","AjvJTD","ajvErrors","ajvJTD","SchemaMapper","parser","arrayParser","serializer","getParser","Ajv","compileParser","getArrayParser","elements","getSerializer","compileSerializer","serialize","model","mapToData","serializeArray","models","parse","data","parsed","detail","substring","Error","message","mapToModel","parseArray","item","ComparisonGroupSchemaMapper","ComparisonGroupSchema","JSONFetch","url","method","body","responseParser","bodySerializer","credentialStore","getDefaultCredentialStore","getRequestHeaders","Promise","resolve","then","authHeaders","fetchHeaders","Headers","Accept","bodyOptions","fetchOptions","headers","fetch","fetchResponse","status","text","raw","json","catch","e","Bugsnag","notify","CachingService","entityName","mapper","this","length","ComparationGroup","offizin","privateShare","highPriceShare","openingHours","pharmacyCount","population","state","location","active","valid","title","id","uriEncode","value","encodeURIComponent","nestedBenchmarkingGroupAccessor","replace","updateData","toUpdate","dataSet","idKey","foundIndex","findIndex","splice","nullable","undefined","nullifined","booleanToYN","flag","booleanToYNNullable","hasNullValue","Object","values","getModelValueArray","key","Array","isArray","obj","getModelValue","getModelByValue","single","find","urify","params","queryString","keys","queryStart","localDate","date","getTime","getTimezoneOffset","toISOString","toApiDate","dateFormat","split","reverse","formatNumber","number","numStr","toString","hasDecimalSeparator","indexOf","splitDecimal","beforeDecimal","afterDecimal","addNegation","applyThousandSeparator","MONTH_NAMES","monthFormat","separator","parts","monthNum","ValidComparisonCombination","bekNr","kombiListe","IDListe","aktiv","enum","gueltig","SaveValidComparisonCombination","ids","benID","benchKombiNr","ComparisonGroupMapper","offizinData","privateShareData","highPriceShareData","openingHoursData","pharmacyCountData","populationData","stateData","locationData","userComparisonCombinationParser","saveSerializer","dataKeys","serializeForSave","mapToSaveData","ComparisonGroup","findValueFromData","concat","sort","serializeSetActive","JSON","stringify","dataString","Number","items","userCombinationSchema","ComparisonGroupService","getAll","setCurrent","userId","group","apiUrl","benchGrpNr","setActive","save","baseUrl","getUserComparisonCombinationParser","lkuID","lkuWert","lkuAktiv","MasterDataSchema","LookupService","MasterDataSchemaMapper","apoID","apoBetrnr","apoBezeichnung","apoGruendungsjahr","apoApoAnzID","apoEinwAnzID","apoBundeslandID","apoOeffnungsdauerID","apoSoftwareID","apoLageIds","apoAktiv","apoAbvMonatlich","apoGhkTransfer","apoBilanzstichtag","optionalProperties","apoFilapo","apoHauptApoID","apoBundesland","Pharmacy","foundingYear","software","monthlySubscribed","transferGK","dateOfBalance","branch","mainPharmacyId","PharmacyData","PharmacyMapper","softwareData","apiSchema","infoParser","infoApiSchema","pharmacy","setIsBranchOf","dataValue","searchIn","i","RawPharmacyMapper","RawPharmacy","v","isNaN","benUsername","benTitel","benVName","benNName","benFunktionID","benEmail","benApoID","benHauptbenutzer","benRolleID","benPW","benAktiv","UserArray","User","firstName","lastName","username","email","involvement","mainUser","pharmacyId","password","parseJSON","UserSchema","parseArrayJSON","UserMapper","activeJN","PharmacyService","pharmacyNumber","code","apoBetrNr","regCode","mapToDataModel","ApoBetrNr","apoRegCode","registrationCode","Apotheke","Benutzer","newId","arbApoKennung","arbTyp1","arbTyp2","arbTyp3","arbZeitraum","arbBenchKombi","arbPfad","arbDatum","Report","filepath","timestamp","period","filename","reportSchema","reportTypeParams","general","ReportService","ApoID","Typ","dateMode","dateYear","Jahr","periodParams","Herkunft","Monat","getMonth","hasOwnProperty","kpiA16","kpiA18","SalesDataMapper","SalesDataSchema","recipeCount","packageCount","persApoID","persWj","persKurzBez","persLfdnr","persDGDN","persFPers","persSatzart","persJahreswert","persAnzMon","persMon1","persMon2","persMon3","persMon4","persMon5","persMon6","persMon7","persMon8","persMon9","persMon10","persMon11","persMon12","PharmacyLeaderOccupation","owner","tenure","employed","PharmacyNightDutiesPerYear","to19","to29","to39","to49","to59","to69","to79","to99","to159","to199","more","staffTypeOptions","employer","concessionaire","ownerPharmacist","ownerNonPharmacist","employee","director","pharmacist","aspirant","trainee","employeeUnskilled","employeeSkilled","merchant","cleaner","otherEmployee","family","familyPharmacist","familyNonPharmacist","staffTypeCategories","staffTypeByKey","CATEGORY_MARK","SKILLED_MARKS","intermediateMapping","TYPE_IDS","A52","A53","A54","A55","A56","A57","A58","A59","A60","A61","A62","A63","A64","A65","StaffDataMapper","year","StaffDataSchema","transmissionType","staffId","sum","quota","months","monthly","reduce","partialSum","a","getStaffDataFromString","input","fill","monthData","fromEntries","slice","_","StaffTypeMapping","StaffDataService","start","end","ApoId","WJBeginn","WJEnde","loadedStaff","b","localeCompare","UserService","response","returnValue","userMail","r","parsedResponse","newPassword","getErrorsForField","field","errors","affectedFields","unique","arrayWithDuplicates","n","getFieldsFromExpression","expression","ruleParameters","DataEvaluator","compareData","intermediates","calculateIntermediates","compare","definitions","forEach","result","getIn","calculation","leftSide","operator","rightSide","leftResult","rightResult","UserValdiation","errorMessage","dependency","customError","validatedResult","validatedFlagged","evaluator","precheck","calcResult","isFinite","bounds","boundsCritical","low","high","matchResult","validationResult","Validator","results","rules","intermediateResults","rule","passedValidation","validate","emptyFields","income","err","balance","keyPrefix","fieldValues","entries","some","CalcergKurzBez","CalcergApoID","CalcergWj","CalcergWert","assets_LJ","liabilities_LJ","operating_expenses_LJ","total_output_LJ","offizin_revenue_LJ","gross_yield_LJ","staff_cost_LJ","yearly_profit_LJ","yearly_profit_after_annuity_LJ","cf_LJ","IntermediateResultMapper","IntermediateResultSchema","Mapping","checksWj","checksGuV_01","checksGuV_02","checksGuV_03","checksGuV_04","checksGuV_05","checksGuV_06","checksGuV_07","checksGuV_08","checksGuV_09","checksGuV_10","checksGuV_11","checksGuV_12","checksGuV_13","checksGuV_14","checksGuV_15","checksGuV_16","checksGuV_17","checksGuV_18","checksGuV_19","checksGuV_20","checksGuV_21","checksGuV_22","checksGuV_23","checksBilanz_01","checksBilanz_02","checksStruktur_01","checksStruktur_02","checksStruktur_03","checksStruktur_04","checksStruktur_05","checksStruktur_06","checksPersonal_01","checksPersonal_02","checksPersonal_03","checksPersonal_04","checksPersonal_05","checksPersonal_06","checksPersonal_07","checksPersonal_08","checksPersonal_09","checksPersonal_10","checksPersonal_11","checksPersonal_12","checksPersonal_13","FIELD_MAP","getRuleParamterFromString","partValues","min","max","minw","maxw","part","keyValue","trim","parseFloat","serializeRuleParameter","RuleParamatersMapper","RuleParamatersSchema","apiParameter","mapped","ruleParameter","checkergKurzBez","checkergApoID","checkergWj","checkergWert","checkergStatus","ValidationResultMapper","ValidationResultSchema","flaggedCritical","flaggedWarn","kpiApoID","kpiWj","kpiKzRumpfjahr","kpiKzFortschritt","kpiKzStatus","kpiA2","kpiA3","kpiA50","kpiA51","kpiA4","kpiA5","kpiA19","kpiA9","kpiA13","kpiA14","kpiA15","kpiA17","kpiA52","kpiA53","kpiA54","kpiA55","kpiA56","kpiA57","kpiA58","kpiA59","kpiA60","kpiA61","kpiA62","kpiA63","kpiA64","kpiA65","kpiB1","kpiB2","kpiB3","kpiB4","kpiB5","kpiB6","kpiB7","kpiB8","kpiB9","kpiB10","kpiB11","kpiB12","kpiB13","kpiE1","kpiE2","kpiE3","kpiE4","kpiE50","kpiE5","kpiE6","kpiE7","kpiE8","kpiE9","kpiE10","kpiE11","kpiE13","kpiE14","kpiE15","kpiE16","kpiE17","kpiE18","kpiE19","kpiE20","kpiE21","kpiE22","kpiE23","kpiE51","kpiE25","kpiE26","kpiE27","kpiE28","kpiE29","kpiE52","kpiE53","occupationKeys","nightDutyKeys","validationResultMark","none","warn","critical","YearlyDataMapper","YearlyDataSchema","A2_LJ","A3_LJ","A4_LJ","A5_LJ","A9_LJ","A6_LJ","A7_LJ","A19_LJ","A13_LJ","A14_LJ","A15_LJ","A16_LJ","A17_LJ","A18_LJ","E1_LJ","E2_LJ","E3_LJ","E4_LJ","E5_LJ","E6_LJ","E7_LJ","E8_LJ","E9_LJ","E10_LJ","E11_LJ","E13_LJ","E14_LJ","E15_LJ","E16_LJ","E17_LJ","E18_LJ","E19_LJ","E20_LJ","E21_LJ","E22_LJ","E23_LJ","E24_LJ","E25_LJ","E26_LJ","E27_LJ","E28_LJ","E29_LJ","E30_LJ","E50_LJ","E99_LJ","B1_LJ","B2_LJ","B3_LJ","B4_LJ","B5_LJ","B6_LJ","B7_LJ","B8_LJ","B9_LJ","B10_LJ","B11_LJ","B12_LJ","staff","rows","ApoABVJahrKurzBez","ApoABVJahrApoID","ApoABVJahrWj","ApoABVJahrBegID","dataMap","S1","S2","S3","S4","S5","YearlyPharmacyMapper","YearlyPharmacySchema","Math","abs","incomeInput","diff","sign","messages","bound","salaryMerchant","salaryTrainee","salaryEmployeeSkilled","salaryEmployeeUnskilled","salaryCleaner","salaryOtherEmployee","salaryDirector","salaryPharmacist","salaryAspirant","createValidationsWithParams","BalanceEquality","balanceEquality","StockDifferenceCreator","stockRelationLastYear","InsuranceShareCreator","insuranceSalesRelationOfficin","HighPriceMoreThanInsuranceShare","BuyingSyndicateCreator","salesBuyingSyndicate","LegalSocialExpensesCreator","legalSocialExpense","ProfitCreator","profit","PrivateShareTrendCreator","privateSalesRelationLastYear","InsuranceShareTrendCreator","insuranceSalesRelationLastYear","TenureExpenseTrendCreator","tenureExpense","MaterialExpenseCreator","materialExpenseRelationSales","MaterialExpenseTrendCreator","materialExpenseRelationLastYear","StaffExpenseCreator","staffExpenseRelationSales","StaffExpenseTrendCreator","staffExpenseRelationLastYear","StaffExpenseToProfitCreator","staffExpenseRelationProfit","ExepensesToSalesCreator","expensesRelationSales","GrossProfitToSalesCreator","profitRelationSales","GrossProfitTrendCreator","profitRelationLastYear","AspirantCountCreator","apirantTotalQuota","ConcessionaireCreator","quotaConcessionaire","CustomerCountTrendCreator","customerCountRelationLastYear","FamiliaryWorkCreator","familiaryTotalQuota","InsurancePackagesTrendCreator","insurancePackageSalesRelationLastYear","OfficinAreaTrendCreator","officeAreasRelationLastYear","PrescriptionTrendCreator","prescriptionCountRelationLastYear","PrivatePackagesTrendCreator","privatePackageSalesRelationLastYear","PropertyOwnerCreator","rentalExpenseOwnership","PropertyOwnerTrend","SalesAreaTrendCreator","workingAreasRelationLastYear","SkilledStaffMissing","SkilledStaffWithoutExpenses","TenureExpenseCreator","tenureExpenseRelationSales","TenureMissingCreator","tenureExpenseWithoutTenure","UnskilledStaffMissing","UnskilledStaffWithoutExpenses","BranchPharmacyTrend","BuyingSyndicateTrend","StaffPharmacistExpenseCreator","StaffNonPharmacistExpenseCreator","intermediateCalculations","isValidBounds","isValidParam","param","allValid","YearlyDataService","validators","loadRuleParamters","parameters","validator","addRule","staffMapper","pharmacyMapper","all","arrayData","staffData","isEmpty","intermediatesMapper","IntermediatesMapper","resultsMapper","yearlyPharmacyMapper","combinedData","validationResults","ServiceProvider","services","registered","cache","fullyInitialized","yearlyData","report","ReportMapper","comparisonGroup","initComparisonGroupService","initPharmacyService","initUserService","required","get","fetchedData","memo","rollingResult","console","log","serviceName","loadService","ProviderAccessErrorCb","createAuthContext","AuthContext","createContext","authentication","isAuthenticated","isLoading","signIn","signOut","useAuth","useContext","AuthContextProvider","children","onSignIn","onSignOut","useState","setAuthentication","setError","loading","setLoading","contextValue","credentials","auth","finally","signOutError","Provider","credentialsStore","BasicLocalStorageCredentialStore","setDefaultCredentialStore","DataProviderContext","React","getService","service","getCache","DataProvider","ready","setReady","useEffect","initialize","loadAllRequiredDependencies","getCredentials","content","name","flexDirection","CircularProgress","useCachedData","assign","Involvement","displayInvolvement","useMemo","Chip","size","label","drawer","minWidth","paddingTop","paddingBottom","borderLeft","paddingLeft","yearly","MENU_STRUCTURE","path","roles","renderMenu","node","onNavigate","checkRole","List","Divider","ListSubheader","button","ListItemText","primary","Menu","open","onClose","Drawer","anchor","PaperProps","IconButton","ChevronRight","ListItemIcon","Avatar","Person","secondary","Header","setOpen","handleDrawerClose","goToHome","listen","menuButton","AppBar","Toolbar","UserWithPharmacy","benPwd","userData","storeCredentials","clear","NotificationContext","notifications","add","icon","addError","addSuccess","addInfo","addControlledNotification","hideNotification","NotificationProvider","setNotifications","controlled","generatedKey","now","random","newval","prev","notification","addWithoutControls","alertSeverities","Notification","actions","isOpen","handleClose","event","reason","autoHide","iconProp","thickness","action","Close","Snackbar","anchorOrigin","vertical","horizontal","autoHideDuration","Alert","severity","SnackbarContent","useNotifications","Notifications","Providers","colorPrimary","heading","textTransform","applySpacing","factor","createBreakpoints","createTheme","palette","main","typography","fontFamily","spacing","props","MuiTextField","margin","overrides","MuiCssBaseline","flex","MuiAppBar","root","MuiContainer","paddingRight","MuiTypography","h1","h2","h3","h4","h5","h6","overflowWrap","wordWrap","hyphens","subtitle1","lineHeight","MuiSvgIcon","MuiDialogTitle","top","right","MuiPaper","rounded","borderRadius","MuiCard","MuiCardContent","padding","MuiCardHeader","MuiToolbar","MuiTableRow","MuiTableCell","borderBottomWidth","grey","head","MuiTablePagination","MuiButton","contained","backgroundColor","MuiFormGroup","MuiCheckbox","alignSelf","textAlign","MuiStepper","boxShadow","MuiStep","completed","MuiStepIcon","width","MuiStepLabel","MuiOutlinedInput","MuiFormControl","marginNormal","deDE","appBarSpacer","mixins","toolbar","buildVersion","appVersion","apiKey","collectUserIp","plugins","BugsnagPluginReact","ErrorBoundary","getPlugin","createErrorBoundary","Layout","basename","ThemeProvider","FallbackComponent","CssBaseline","NarrowContainer","boxProps","Grid","md","xs","Box","overline","intro","cardContent","minHeight","About","NarrowBox","useChangeEffect","callback","deps","didMount","useRef","current","FormSelect","options","defaultValue","valueKey","labelKey","onChange","noGutter","disabled","disableClearable","renderOption","opt","setValue","labelId","toLowerCase","errorProps","helperText","extraProps","Autocomplete","getOptionSelected","getOptionLabel","option","selected","renderInput","TextField","not","_path","narrowList","narrowHead","MultiSelect","hasSelectAll","initialChecked","checked","setChecked","numberOfChecked","handleToggle","currentIndex","newChecked","firstUpdate","CardHeader","avatar","Checkbox","handleToggleAll","indeterminate","inputProps","titleTypographyProps","subheader","dense","tabIndex","disableRipple","Form","onValuesChange","nullValue","selectData","setData","setDataForKey","noValidate","autoComplete","FormGroup","loc","exclusive","EditDialog","saveText","cancelText","onSave","Dialog","fullWidth","DialogTitle","DialogContent","DialogActions","ItemStatus","CheckCircle","RemoveCircle","ListItem","LabelValue","ListLoader","rowCount","withList","_v","rowIndex","Skeleton","useDialog","openInitially","close","useEditDialog","editTitle","closeOnSave","setModel","formData","setFormData","onSaveCallback","getEditDialogProps","changeHandler","changedValues","defaultTexts","useSaveWithNotification","saveFn","notificationTexts","success","useService","useFilteredComparisonGroups","dataState","setDataState","setIsLoading","Service","editDialog","onFetchData","onEdit","onQuickEdit","useLoad","load","reloadTs","setReloadTs","update","reload","borderTop","comparisonGroupLabels","labels","dataKey","ChooseComparisonGroup","getCurrent","isLoadingCurrent","updateCurrent","page","setPage","setFilter","toDisplay","haystack","filterDetailed","displayedGroups","displayedGroupsLength","selectedGroup","saveChange","useTypeStyles","gridTemplateColumns","gridGap","WarningRounded","mt","mb","Fragment","ListItemSecondaryAction","TablePagination","count","onPageChange","p","rowsPerPage","rowsPerPageOptions","Paper","ListItemAvatar","ArrowUpward","ImportExport","ArrowDownward","LoadingIndicator","ComparisonGroupMenu","onActiveChange","anchorEl","setAnchorEl","cb","activeLabel","currentTarget","MoreHoriz","keepMounted","Boolean","MenuItem","columnDefinitions","accessor","Cell","inner","Tooltip","placement","tableRender","getTableProps","headerGroups","getTableBodyProps","prepareRow","onEditRow","onQuickEditRow","TableHead","headerGroup","TableRow","getHeaderGroupProps","column","TableCell","getHeaderProps","render","TableBody","row","getRowProps","cells","cell","getCellProps","original","isActive","ItemMenu","listRender","wrap","filterByKeyword","columnIds","globalFilterValue","String","term","ComparisonGroupsTable","tableData","pageCountState","useTheme","isMobile","useMediaQuery","columns","tableInstance","useTable","initialState","pageIndex","pageSize","globalFilter","pageCount","useGlobalFilter","usePagination","gotoPage","setGlobalFilter","setPageSize","filterSetter","timer","timeout","args","clearTimeout","setTimeout","apply","debounce","elevation","disableGutters","renderList","renderTable","labelDisplayedRows","from","to","onRowsPerPageChange","ComparisonGroups","received","showDialog","editModel","Fab","Add","Contact","Infobox","hours","getHours","greeting","cardStretch","innerCardHeader","newsMeta","DataSelect","exclude","displayedData","givenData","onAction","actionProps","stackedActions","texts","description","accept","ActivateMonthly","accepted","setAccepted","extra","setExtra","saveRaw","window","FormControl","onBlur","FormControlLabel","control","FormHelperText","Monthly","navigateTo","isMainUser","isUser","typeClasses","centerCard","QuickAction","CardActionArea","Icon","Yearly","isAccountant","gridView","iconCard","contrastText","cardEmpty","backgroundImage","bgImage","backgroundRepeat","backgroundSize","common","white","spacedGrid","Dashboard","onLink","hasMonthlySubscribed","UserDataIcon","CreateUserIcon","PharmacyDataIcon","RegisterBranchIcon","card","Faq","Imprint","counterIncrement","listStyle","float","sub","counterReset","table","border","borderCollapse","borderSpacing","_extends","arguments","source","prototype","call","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","SvgApostarPfeil","_ref","svgRef","titleId","xmlns","xmlnsXlink","x","y","viewBox","enableBackground","xmlSpace","ref","d","ForwardRef","defaultStyles","CreateIconComponent","IconSvg","styles","SvgIcon","ArrowRight","ArrowIcon","marginRight","ArrowLeft","transform","LoadingButton","loadingPosition","buttonProps","FormSucccess","actionLabel","validateEmail","validatePasswords","password_confirm","test","withConfirmation","withPassword","roleDefaults","startsWith","email_confirm","passwordErrors","validateWithUsernameCheck","check","baseErrors","RedeeemPasswordCode","onCancel","finished","setFinished","FormSuccess","initialValues","validateOnChange","validateOnBlur","onSubmit","setSubmitting","changePassword","isSubmitting","submitForm","preventDefault","useTwoColumnFormStyles","fullGrid","infoColumn","formColumn","up","background","breakLayout","leftAlign","spaceTop","spaceBottom","lead","logo","contentCenter","dividerSpaced","LostPassword","onBackClicked","search","useLocation","URLSearchParams","lostPasswordRequest","submitCount","isValid","DefaultDialog","RedeemPasswordCode","useFormikTouchErrors","formik","useFormikContext","formikErrorKeys","submitCountRef","setTouched","touched","fieldName","FormikTouchErrors","FormikField","form","fieldError","showError","fieldProps","finalValue","fieldToSelect","helperFieldContainer","whiteSpace","helperFieldInput","helperFieldHelp","helpButton","useTooltipStyles","arrow","tooltip","HelperField","help","tooltipClasses","disableFocusRipple","StepIcon","LocationMultiSelect","initial","FormikLocationSelect","isSignUp","displaySoftware","displayDates","select","DataSelectField","CheckboxWithLabel","defaultChecked","Label","msg","parsedTimestamp","asDate","month","nextMonth","setDate","getDate","savePharmacy","PharmacyDataForm","makeStbUsername","padStart","UserDataForm","registerOther","nextAccountantNumber","pharmacyService","setFieldValue","nonFixedUsername","setNonFixedUsername","pharmacyDataPromise","reject","num","userDetails","sm","InputLabelProps","shrink","UserForm","buttonText","formikRef","userService","validateExisting","getUsernameAvailable","innerRef","potentialPromise","toUserShape","PharmacyBranchSelect","getBranches","ResponsiveTable","tableProps","tableBodyProps","mobileView","breakpoint","menu","menuHeader","emptyView","renderIndexes","indexes","primaryTypographyProps","noWrap","UserMenu","UsersList","useFabStyles","fab","fabIcon","globalLoader","Users","branchId","setBranchId","formRef","handleSubmit","closeDialog","updatedUser","RestrictedRoute","allowAuthenticated","rest","pathname","RequestRegistrationCodeForm","onFinished","done","setDone","setErrors","requestRegistrationCode","RegistrationCodeForm","onCanFinishChanged","validateForm","setValues","setPharmacy","isLoadingPharmacy","setIsLoadingPharmacy","requestingCode","setRequestingCode","checkRegistrationCode","SteppedForm","stepConfig","validations","nextStepLabel","prevStepLabel","completeLabel","steps","valueCache","setValueCache","activeStep","setActiveStep","canFinishCurrentStep","setCanFinishCurrentStep","isCompleted","setIsCompleted","isLastStep","renderStepContent","step","ComponentToRender","handleBack","formContent","Stepper","Step","StepLabel","RegisterBranch","Registrierungscode","Apothenkendaten","validatePharmacy","register","defaultFilter","currentYear","ReportsFilter","filterValues","setFilterValues","newFilters","setFullYear","yearOptions","ID","monthOptions","setDateValue","setMonth","FormLabel","FileIcon","PeriodTag","Table","DownloadIcon","TableEmptyState","Search","colCount","Wrapper","colSpan","TableRowLoader","withTable","_w","colIndex","divider","filterLabel","dateLabel","ReportsArchive","f","getRecent","missesTerms","hasRole","SignIn","onInfoClicked","onPasswordLostClicked","onRegisterClicked","authenticate","SignUp","onFinishedAction","validateUser","Apothekendaten","Terms","desiredId","unsuccessful","UserStandaloneForm","pctConvert","fromPct","round","pctConvertBounds","convertPctBounds","Param","numType","initialValue","onInputChange","valueAsNumber","newValue","outer","Timelapse","adornment","InputAdornment","InputProps","startAdornment","VALIDATION_PARAMS","ParamInputs","onValueChange","SelectYear","onSelect","years","flexWrap","ValidationParams","setYear","loadedData","setLoadedData","inputData","setInputData","invalid","isComplete","saveRuleParameters","chip","TrendIndicator","unit","stringValue","Infinity","toFixed","NEGATIVE_ENABLED_FIELDS","eurAdornment","adornmentLabels","pcs","m2","CompareableNumberInput","compareValue","trend","liveValue","onFocused","relatedTarget","getBoundingClientRect","innerHeight","scrollBy","numeralValue","change","hasLiveValue","adornmentProps","endAdornment","trendIndicator","tooltipText","InputLabel","decimalSeparator","thousandSeparator","decimalScale","isAllowed","floatValue","allowNegative","onFocus","placeholder","customInput","OutlinedInput","CompareableNumbersHeader","FieldError","Warning","BalanceFields","BalanceSheet","compareValues","nextValues","AnimatedNumber","fps","duration","format","C","previousValue","lastTimestamp","startTimestamp","handle","animate","reset","shouldProcess","nextValue","pValue","sTimestamp","endAnimation","requestAnimationFrame","startAnimation","cancelAnimationFrame","DataCompleteness","val","LinearProgress","Help","getDefaultFiscalYearDates","refDate","ErrorMessages","headerAction","FormMenuItem","complete","warning","textDecoration","progressDisplay","progress","total","FormMenu","errorCount","MenuList","IconPharmacy","IconGeneral","IconStaff","IconIncome","IconBalance","WarningMenuItem","toValue","monthSupport","toDate","day","dateWithDay","DateInput","propValue","document","createElement","setAttribute","supportsMonth","inputTypeDate","valueAsDate","usedDate","toDateWithFallback","SelectInput","Select","YesNoInput","RadioGroup","Radio","labelPlacement","useSalesData","onLoaded","fiscalYear","setLoad","getSalesInformation","GeneralFields","yearlyPeriodEndDate","fixedMaxDate","next","GeneralForm","manualToDateSet","setManualToDateSet","onChangeDate","record","IncomeFields","helpTexts","IncomeSheet","stepNumber","stepContainer","Instructions","missingLastYear","onRequestLastYear","EmbeddedPharmacyDataForm","AddStaff","onAdd","category","availableKeys","buttonClassName","info","StaffDataLoad","m","pt","pb","final","monthNames","StaffRowCmp","onDelete","startMonth","endMonth","setMain","setDetail","updateSum","newSum","limit","monthes","monthItems","nr","monthLabel","index","newDetail","monthCount","monthSum","numberInput","labelCol","rowActions","rowAction","categoryKeys","filterByCategory","pristineTotals","concessionaireCount","ownerPharmacistCount","ownerNonPharmacistCount","directorCount","pharmacistCount","aspirantCount","traineeCount","employeeUnskilledCount","employeeSkilledCount","merchantCount","cleanerCount","otherEmployeeCount","familyPharmacistCount","familyNonPharmacistCount","pristineValue","totals","calculateTotals","getYearlyQuota","useLeaveWarning","confirmationMessage","enabled","handleUnload","addEventListener","removeEventListener","useProgress","pages","pageComponents","rowsByCatgeory","errorsDisplay","getErrorsForGroup","rowChange","newRows","newValues","StaffRow","arr","without","saveButton","formTitle","extraLink","stickySave","leavingWarning","FormWizard","useParams","getCollectionYear","requestedYear","isCurrentYear","currentPage","setCurrentPage","setValidator","hasUnsavedChanges","setHasUnsavedChanges","hasPharmacyChange","setHasPharmacyChange","isLoadingError","setIsLoadingError","setCompareData","getValidator","loadedStaffData","changeYear","onSaveClicked","getResults","saveData","hasCriticalErrors","changeYearButton","displayedComponent","FormComponent","totalProgress","when","routeStubs","Routes","comparisonGroupsRequested","infoRequested","lostPasswordRequested","registrationRequested","goBack","slug","PublicRoute","PharmacyUsers","LegalTerms","App","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","StrictMode","getElementById","storeKey","hasCredentials","sessionStorage","localStorage","getItem","storedValue","Buffer","stored","Authorization","authString","setItem","removeItem","defaultCredentialStore","store"],"mappings":"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MlhC,MAAI,EAACohC,GAAI,EAAf,SACI,cAACqC,GAAA,EAAD,CACIoB,WAAY,CAAE9mC,KAAM,SAAU7E,MAAO,CAAEimC,UAAW,UAClD5J,KAAK,sBACLgN,SAAU4lB,EACV/lB,aAAY,OAAEj/B,QAAF,IAAEA,GAAF,UAAEA,EAAOmX,sBAAT,aAAE,EAAuBE,KACrCkuC,WAAY,CACRC,eAAgBH,aC8C7BI,GAvK+C,CAAC,CAC3D3lD,GAAI,qBACJgzB,MAAO,6BACPgyB,QAAS,OACV,CACChlD,GAAI,wBACJgzB,MAAO,8CACPgyB,QAAS,OACV,CACChlD,GAAI,+BACJgzB,MAAO,8CACPgyB,QAAS,OACV,CACChlD,GAAI,8BACJgzB,MAAO,kDACPgyB,QAAS,OACV,CACChlD,GAAI,gCACJgzB,MAAO,+CACPgyB,QAAS,OACV,CACChlD,GAAI,iCACJgzB,MAAO,2CACPgyB,QAAS,OACV,CACChlD,GAAI,+BACJgzB,MAAO,iDACPgyB,QAAS,OACV,CACChlD,GAAI,8BACJgzB,MAAO,gDACPgyB,QAAS,OACV,CACChlD,GAAI,uBACJgzB,MAAO,uCACPgyB,QAAS,OACV,CACChlD,GAAI,gBACJgzB,MAAO,iCACPgyB,QAAS,OACV,CACChlD,GAAI,gBACJgzB,MAAO,2BACPgyB,QAAS,OACV,CACChlD,GAAI,kCACJgzB,MAAO,mCACPgyB,QAAS,OACV,CACChlD,GAAI,+BACJgzB,MAAO,iDACPgyB,QAAS,OACV,CACChlD,GAAI,4BACJgzB,MAAO,oDACPgyB,QAAS,OACV,CACChlD,GAAI,+BACJgzB,MAAO,wCACPgyB,QAAS,OACV,CACChlD,GAAI,wBACJgzB,MAAO,oDACPgyB,QAAS,OACV,CACChlD,GAAI,sBACJgzB,MAAO,6DACPgyB,QAAS,OACV,CACChlD,GAAI,yBACJgzB,MAAO,+DACPgyB,QAAS,OACV,CACChlD,GAAI,SACJgzB,MAAO,uCACPgyB,QAAS,OACV,CACChlD,GAAI,6BACJgzB,MAAO,6DACPgyB,QAAS,OACV,CACChlD,GAAI,6BACJgzB,MAAO,oEACPgyB,QAAS,OACV,CACChlD,GAAI,yBACJgzB,MAAO,yCACPgyB,QAAS,OACV,CACChlD,GAAI,wBACJgzB,MAAO,4CACPgyB,QAAS,OACV,CACChlD,GAAI,kBACJgzB,MAAO,6BACPgyB,QAAS,OACV,CACChlD,GAAI,gCACJgzB,MAAO,qDACPgyB,QAAS,OACV,CACChlD,GAAI,oCACJgzB,MAAO,qDACPgyB,QAAS,OACV,CACChlD,GAAI,sCACJgzB,MAAO,qEACPgyB,QAAS,OACV,CACChlD,GAAI,wCACJgzB,MAAO,4EACPgyB,QAAS,OACV,CACChlD,GAAI,sBACJgzB,MAAO,gCACPgyB,QAAS,OACV,CACChlD,GAAI,sBACJgzB,MAAO,8CACPgyB,QAAS,SACV,CACChlD,GAAI,oBACJgzB,MAAO,qBACPgyB,QAAS,SACV,CACChlD,GAAI,6BACJgzB,MAAO,8CACPgyB,QAAS,OACV,CACChlD,GAAI,iBACJgzB,MAAO,2CACPgyB,QAAS,OACV,CACChlD,GAAI,mBACJgzB,MAAO,wDACPgyB,QAAS,OACV,CACChlD,GAAI,iBACJgzB,MAAO,oCACPgyB,QAAS,OACV,CACChlD,GAAI,iBACJgzB,MAAO,+BACPgyB,QAAS,OACV,CACChlD,GAAI,gBACJgzB,MAAO,yCACPgyB,QAAS,OACV,CACChlD,GAAI,wBACJgzB,MAAO,qEACPgyB,QAAS,OACV,CACChlD,GAAI,0BACJgzB,MAAO,sEACPgyB,QAAS,OACV,CACChlD,GAAI,gBACJgzB,MAAO,uCACPgyB,QAAS,OACV,CACChlD,GAAI,sBACJgzB,MAAO,6CACPgyB,QAAS,QChHEY,GA1CiC,SAAC,GAG1C,IAFHxP,EAEE,EAFFA,cAEE,IADF9W,gBACE,MADS,aACT,EAEF,EAAsB3O,mBAClBylB,GAfJ1gC,GAAepC,QAAO,SAACgc,EAAM/tB,GAAP,mBAAC,eAChB+tB,GADe,kBAEjB/tB,EAAM,CAAE6V,OAAQ,GAAIC,eAAgB,QACrC,KAWKkoC,EAAT,oBAKMsG,EAAgB,SAACT,EAA8BplD,GACjDu/C,GAAU,SAACzoB,GAGP,OAFAA,E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","file":"static/js/main.e51a3e52.chunk.js","sourcesContent":["import {\n Button,\n Card,\n CardContent,\n Container,\n Link,\n Typography,\n} from '@material-ui/core';\n\nimport {\n Healing as Icon,\n} from '@material-ui/icons';\n\ntype ErrorProps = {\n error: Error\n info: React.ErrorInfo\n clearError: () => void\n};\n\nconst hideErrorMessage = process.env.NODE_ENV === 'production';\n\nfunction AppError({\n error,\n clearError,\n}: ErrorProps) {\n const containerStyles = {\n height: '100vh',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n };\n\n return (\n \n \n \n \n Leider ist ein Fehler aufgetreten\n \n {!hideErrorMessage && (\n \n {error.message}\n \n )}\n \n \n Es tut uns leid, die Seite ist leider abgestürzt. Versuchen sie bitte die\n Seite neu zu laden und die Aktion noch einmal auszuführen.\n \n \n Sollte der Fehler bestehen bleiben versuchen Sie die Seite noch einmal im\n Inkognito-Modus bzw. Privaten Modus zu besuchen. Siehe:\n \n \n \n Firefox: Privater Modus\n \n {' | '}\n \n Chrome: Inkognito Modus\n \n {' | '}\n \n Edge: InPrivate Modus\n \n \n \n \n \n \n );\n}\n\nexport default AppError;\n","import { Link, Typography } from '@material-ui/core/';\nimport React, { useCallback } from 'react';\n\nimport { useHistory } from 'react-router-dom';\n\nexport default function Footer() {\n // History is used\n const history = useHistory();\n const goToTerms = useCallback(() => history.push('/agb'), [history]);\n const goToFaq = useCallback(() => history.push('/faq'), [history]);\n const goToContact = useCallback(() => history.push('/kontakt'), [history]);\n const goToImprint = useCallback(() => history.push('/impressum'), [history]);\n\n return (\n
\n \n Copyright ©\n {' '}\n \n Apothekerverband\n \n {' '}\n {new Date().getFullYear()}\n \n \n \n Nutzungsbedingungen\n \n {' | '}\n \n FAQ\n \n {' | '}\n \n Kontakt\n \n {' | '}\n \n Impressum\n \n \n \n {process.env.REACT_APP_VERSION}-{process.env.REACT_APP_GIT_SHA}\n \n
\n );\n}\n","import {\n Link,\n Typography,\n makeStyles,\n} from '@material-ui/core';\n\nimport React from 'react';\n\nconst useStyles = makeStyles((theme) => ({\n logoCube: {\n verticalAlign: 'middle',\n height: 90,\n [theme.breakpoints.down('sm')]: {\n height: 42,\n marginLeft: '-30%',\n marginTop: '-5%',\n marginBottom: '-5%',\n },\n },\n logoWord: {\n verticalAlign: 'middle',\n marginTop: 10,\n height: 40,\n [theme.breakpoints.down('sm')]: {\n height: 27,\n marginTop: 5,\n },\n },\n providedLine: {\n [theme.breakpoints.down('sm')]: {\n display: 'none',\n },\n fontSize: 12,\n '& .MuiLink-root': {\n fontWeight: '700',\n },\n },\n rightPart: {},\n container: {\n display: 'flex',\n alignItems: 'center',\n },\n}))\n\n/**\n * Layouts header, display an app bar and a global menu.\n */\nexport default function LogoCube({\n onClick,\n className,\n}: { onClick: () => void, className?: string }) {\n // Main UI\n const classes = useStyles();\n return (\n
\n \n \"logo\"\n \n \n \n \"logo\"\n \n \n Ein Service des österreichischen Apothekerverbands\n \n \n
\n );\n}\n","import { GroupTypeEntity } from './ComparisonGroup';\nimport User from './User';\n\n// All roles\nconst roles = [\n 'Superuser', 'Apothekerverband', 'Hauptbenutzer', 'Benutzer', 'Steuerberater',\n] as const;\n\nexport default roles;\n\n// A type identifier\nexport type RoleType = typeof roles[number];\n\n// Default role configurations\nexport const getDefaults = () => {\n if (\n !process.env.REACT_APP_ACCOUNTANT_ROLE_ID\n ||!process.env.REACT_APP_ACCOUNTANT_INVOLVEMENT_ID\n || !process.env.REACT_APP_DEFAULT_ROLE_ID\n || !process.env.REACT_APP_MAIN_ROLE_ID\n ) {\n throw new Error('Default roles not configured');\n }\n\n return {\n accountantRole: parseInt(process.env.REACT_APP_ACCOUNTANT_ROLE_ID, 10),\n accountantInvolvement: parseInt(process.env.REACT_APP_ACCOUNTANT_INVOLVEMENT_ID, 10),\n userRole: parseInt(process.env.REACT_APP_DEFAULT_ROLE_ID, 10),\n mainRole: parseInt(process.env.REACT_APP_MAIN_ROLE_ID, 10),\n };\n}\n\n// Check a role from a user\nconst hasRole = (user: User, role: RoleType, fetchedRoles: Array = []) => {\n const desiredId = fetchedRoles.find((match) => (match.begBezeichnung === role));\n if (!desiredId) {\n console.warn('cannot find role', role);\n }\n\n return user.role === desiredId?.begID;\n};\n\n// Check one role of many\n// Check a role from a user\nconst hasAnyRole = (user: User, role: RoleType[], fetchedRoles: Array = []) => {\n const desiredIds = fetchedRoles\n .filter((match) => (role.includes(match.begBezeichnung as any)))\n .map((lookup) => (lookup.begID));\n\n return desiredIds.includes(user.role);\n};\n\n\nexport {\n hasRole,\n hasAnyRole,\n};\n","import { JTDSchemaType } from 'ajv/dist/jtd';\n/**\n * File contains JSON Type Definitions for comparison group entity types.\n */\n\n/**\n * The typed entity from api\n */\nexport type ComparisonGroupApiEntity = {\n begID: number,\n begBezeichnung: string,\n};\n\n/**\n * Typed schema for the entity\n */\nconst schema: JTDSchemaType = {\n properties: {\n begID: { type: 'int32' },\n begBezeichnung: { type: 'string' },\n },\n};\nexport default schema;\n\n/**\n * Export array form as well\n */\nexport const ComparisonGroupArray: JTDSchemaType> = {\n elements: schema,\n};\n","import ajv from 'ajv';\nimport ajvErrors from 'ajv-errors';\nimport ajvJTD from 'ajv/dist/jtd';\n\nconst ajvInstance = new ajv({ allErrors: true, $data: true });\n// register custom error support\n\n\nexport default ajvErrors(ajvInstance);\n\nexport const AjvJTD = new ajvJTD();\n","import { JTDParser, JTDSchemaType } from 'ajv/dist/jtd';\n\nimport { AjvJTD as Ajv } from './Ajv';\n\n/**\n * Custom basic mapper, that provides parser and serializer methods from a given schema.\n */\nabstract class SchemaMapper{\n /**\n * Given schema, must be provided by implementing classes\n */\n abstract schema: JTDSchemaType;\n\n // Parser for single entities\n parser?: JTDParser;\n\n // Parser for array of entities\n arrayParser?: JTDParser>;\n\n // Serializer for a single entity\n serializer?: (data: U) => string;\n\n // Abstract mapping methods must still be done in implementations\n abstract mapToModel(input: U): T;\n abstract mapToData(input: T): U;\n\n /**\n * Get a parser for a single entity json string\n */\n getParser = (): JTDParser => {\n if (!this.parser) {\n this.parser = Ajv.compileParser(this.schema);\n }\n return this.parser;\n }\n\n /**\n * Get a parser for a array of entities as json string\n */\n getArrayParser = (): JTDParser> => {\n if (!this.arrayParser) {\n this.arrayParser = Ajv.compileParser({ elements: this.schema });\n }\n return this.arrayParser;\n }\n\n /**\n * Get a serializer for an entity\n */\n getSerializer = () => {\n if (!this.serializer) {\n this.serializer = Ajv.compileSerializer(this.schema);\n }\n return this.serializer;\n }\n\n /**\n * Directly serialize a model to a json string represenation\n */\n serialize = (model: T) => {\n return this.getSerializer()(this.mapToData(model));\n }\n\n /**\n * Directly serialize a model to a json string represenation\n */\n serializeArray = (models: T[]) => {\n return `[${models.map((model) => this.serialize(model)).join(',')}]`;\n }\n\n /**\n * Directly parse a string to the destination model\n */\n parse = (data: string) => {\n const parser = this.getParser();\n const parsed = parser(data);\n if (!parsed) {\n const detail = data.substring((parser.position || 0) - 10, (parser.position || 0) + 10);\n throw new Error(`Parsing failed, ${parser.message} at ${parser.position}: ${detail}`);\n }\n return this.mapToModel(parsed);\n }\n\n /**\n * Directly parse a string to the destination array of models\n */\n parseArray = (data: string) => {\n const parser = this.getArrayParser();\n const parsed = parser(data);\n if (!parsed) {\n const detail = data.substring((parser.position || 0) - 10, (parser.position || 0) + 10);\n throw new Error(`Parsing failed, ${parser.message} at ${parser.position}: ${detail}`);\n }\n return parsed.map((item) => this.mapToModel(item));\n }\n};\n\nexport default SchemaMapper;\n","import ComparisonGroupSchema, { ComparisonGroupApiEntity } from '../Schemas/Api/ComparisonGroup';\n\nimport { GroupTypeEntity } from './ComparisonGroup';\nimport SchemaMapper from './SchemaMapper';\n\nexport default class ComparisonGroupSchemaMapper\n extends SchemaMapper {\n\n schema = ComparisonGroupSchema;\n\n mapToData(model: GroupTypeEntity) {\n return {\n begID: model.begID,\n begBezeichnung: model.begBezeichnung,\n };\n }\n\n mapToModel(data: ComparisonGroupApiEntity) {\n return {\n begID: data.begID,\n begBezeichnung: data.begBezeichnung,\n };\n }\n}\n","import Bugsnag from '@bugsnag/js';\nimport { JTDParser } from 'ajv/dist/jtd';\nimport { getDefaultCredentialStore } from './CredentialStore';\n\n// Conditional base url\nexport const BASE_URL = process.env.REACT_APP_BASE_URL || (process.env.NODE_ENV === 'production'\n ? 'https://www.apostar.at:7533/'\n : 'http://localhost:3000/api/');\n\n/**\n * Options for fetch.\n */\nexport interface JSONFetchOptions {\n url: string,\n method?: 'get' | 'post' | 'put' | 'delete',\n body?: U,\n responseParser?: JTDParser,\n bodySerializer: U extends undefined ? never : (data: U) => string,\n};\n\n/**\n * Custom fetch client. Works with throwing errors instead of resolving with invalid status codes\n * for invalid http status codes in repsonse. Also takes care of parsing data received from the\n * server, with a potential custom parser and serializer.\n */\nexport default function JSONFetch({\n url,\n method = 'get',\n body,\n responseParser,\n bodySerializer,\n}: JSONFetchOptions): Promise {\n const credentialStore = getDefaultCredentialStore();\n return (credentialStore ? credentialStore.getRequestHeaders() : Promise.resolve({}))\n .then((authHeaders) => {\n const fetchHeaders = new Headers({\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n ...authHeaders\n });\n let bodyOptions = body ? { method, body: bodySerializer(body) } : { method };\n\n // For testing\n if (process.env.NODE_ENV === 'development' && method !== 'get') {\n console.log(\"[DEV] overwrite body\", bodyOptions);\n bodyOptions = { method: 'get' };\n }\n\n const fetchOptions = {\n headers: fetchHeaders,\n ...bodyOptions\n };\n return fetch(`${BASE_URL}${url}`, fetchOptions);\n })\n .then((fetchResponse) => {\n // In case an error status code is returned\n if (fetchResponse.status >= 400) {\n throw Error(`Error fetching ${url}. Server responded with a ${fetchResponse.status} code.`);\n }\n\n // A 'no-content' response was received return an empty response\n if (fetchResponse.status === 204) {\n return '';\n }\n\n // Parsing function for data received, could be a promise itself\n if(responseParser) {\n return fetchResponse.text()\n .then((raw) => {\n return responseParser(raw);\n })\n .then((parsed) => {\n if(!parsed) {\n throw new Error(`Parsing response from server failed, ${responseParser.message} at ${responseParser.position}`);\n }\n return parsed;\n });\n }\n return fetchResponse.json().catch((e) => {\n if (process.env.NODE_ENV !== 'development') throw e;\n });\n })\n .catch((e) => {\n Bugsnag.notify(e);\n throw e;\n });\n}\n","import ComparisonGroupSchemaMapper from './ComparisonGroupSchemaMapper';\nimport JSONFetch from './JSONFetch';\n\nexport default class CachingService {\n /* Entity name also used as endpoint */\n entityName: string = '';\n mapper = new ComparisonGroupSchemaMapper();\n\n constructor(entityName = '') {\n if (entityName) {\n this.entityName = entityName;\n }\n\n if (this.entityName.length < 1) {\n throw Error('Service needs entity');\n }\n }\n\n getAll() {\n return JSONFetch({\n url: this.entityName,\n bodySerializer: () => '',\n responseParser: this.mapper.parseArray,\n });\n }\n}\n","export type GroupTypeEntity = {\n begID: number,\n begBezeichnung: string,\n};\n\nexport default class ComparationGroup {\n id: Nullable = null;\n\n offizin: Nullable = null;\n\n privateShare: Nullable = null;\n\n highPriceShare: Nullable = null;\n\n openingHours: Nullable = null;\n\n pharmacyCount: Nullable = null;\n\n population: Nullable = null;\n\n state: Nullable = null;\n\n location: Array = [];\n\n active: boolean = false;\n\n valid: boolean = false;\n\n title: string = '';\n\n constructor(\n offizin: Nullable = null,\n privateShare: Nullable = null,\n highPriceShare: Nullable = null,\n openingHours: Nullable = null,\n pharmacyCount: Nullable = null,\n population: Nullable = null,\n state: Nullable = null,\n location: Array = [],\n active: boolean = true,\n valid: boolean = true,\n title: string = '',\n id: Nullable = null,\n ) {\n this.offizin = offizin;\n this.privateShare = privateShare;\n this.highPriceShare = highPriceShare;\n this.openingHours = openingHours;\n this.pharmacyCount = pharmacyCount;\n this.population = population;\n this.state = state;\n this.location = location;\n this.active = active;\n this.valid = valid;\n this.title = title;\n this.id = id;\n }\n}\n","/**\n * Encode a value for url\n */\nexport const uriEncode = (value: string | number | null | undefined | boolean) => {\n if (!value) {\n return '';\n }\n return encodeURIComponent(value);\n}\n","import { Chip, Tooltip } from '@material-ui/core';\n// @ts-ignore\nimport { applyThousandSeparator, splitDecimal } from 'react-number-format/lib/utils';\n\nimport { CellProps } from 'react-table';\nimport { GroupTypeEntity } from './ComparisonGroup';\nimport React from 'react';\nimport { uriEncode } from './Encoding';\n\n// Helper used later\n// @see https://stackoverflow.com/a/49752227/1171541\nexport type KeysOfType = { [P in keyof T]: T[P] extends TProp? P : never }[keyof T];\n\n/**\n * Access value of a nested object\n */\nexport function nestedBenchmarkingGroupAccessor({ value }: { value?: GroupTypeEntity }) {\n return (\n value\n && value.begBezeichnung\n && value.begBezeichnung.replace(/\\(\\d+\\)/, '')\n ) || (-);\n}\n\n/**\n * Access value of a nested object\n */\nexport function locationCellRender({ value }: CellProps>) {\n const count = value.length;\n const title = value.map((inner: GroupTypeEntity) => nestedBenchmarkingGroupAccessor({ value: inner })).join(', ');\n return (\n \n \n \n );\n}\n\nexport const debounce = (callback: T, timeout = 300): (...args: Array) => void => {\n let timer: ReturnType;\n return (...args) => {\n clearTimeout(timer);\n timer = setTimeout(() => { callback.apply(this, args); }, timeout);\n };\n}\n\n/**\n * Update a model in a dataset\n */\nexport const updateData = >(\n toUpdate: T, dataSet: Array, idKey: keyof T = 'id',\n): Array => {\n const foundIndex = dataSet.findIndex((model: T) => (model[idKey] === toUpdate[idKey]));\n\n if (foundIndex < 0) {\n dataSet.push(toUpdate);\n } else {\n dataSet.splice(foundIndex, 1, toUpdate);\n }\n\n // Some nescessary for new insert\n return [...dataSet];\n};\n\n// Nullable type\nexport const nullable = (value: T): Exclude | null =>\n // @ts-ignore\n (value === undefined ? null : value);\n\n// Null to undefined\nexport const nullifined = (value: T): Exclude | undefined =>\n // @ts-ignore\n (value === null ? undefined : value);\n\n// Boolean to API J/N conversion\nexport const booleanToYN = (flag: boolean): 'J' | 'N' => (flag ? 'J' : 'N');\n\n// ...ith nullable check\nexport const booleanToYNNullable = (flag?: boolean): 'J' | 'N' | null =>\n (flag === undefined ? null : (flag ? 'J' : 'N'));\n\n\n// Check if an object has a null value in it\nexport const hasNullValue = (value: Record): boolean =>\n Object.values(value).includes(null);\n\n/**\n * Wrap and unwrap model values helper\n */\nexport const getModelValueArray = (\n model: T | null,\n key: KeysOfType,\n): Array => {\n const value = (model && Array.isArray(model[key])) ? model[key] : null;\n // We need to cast the given value, check for array was executed on the line above.\n return (value && (value as unknown as GroupTypeEntity[]).map((obj) => (obj.begID))) || [];\n}\n\n/**\n * Wrap and unwrap model values helper\n */\nexport const getModelValue = (\n model: T | null,\n key: KeysOfType>,\n) => {\n const value = model && model[key];\n return (value && (value as unknown as GroupTypeEntity).begID) || null;\n};\n\n/**\n\n/**\n * Find suiting model to id number\n */\nexport function getModelByValue(models: Array>, id: Array): Array;\nexport function getModelByValue(models: Array>, id: number): GroupTypeEntity;\n\nexport function getModelByValue(models: Array>, id: Array | number) {\n if (Array.isArray(id)) {\n return id.map((single) => getModelByValue(models, single));\n }\n return models.find((model) => (model.begID === id));\n}\n/**\n * Generate a uri with query params\n */\nexport const urify = (url: string, params: Record = {}) => {\n const queryString = Object.keys(params)\n .map((key) => (`${key}=${uriEncode(params[key])}`))\n .join('&');\n const queryStart = url.includes('?') ? '&' : '?';\n return `${url}${queryStart}${queryString}`\n};\n/**\n * Convert to iso date format but adjust timezone difference to have local value\n */\nexport const localDate = (date?: Date | null) => {\n // Adjust timezoneoffset (multiply by seconds and ms)\n return date ? new Date(\n date.getTime() - date.getTimezoneOffset() * 60 * 1000,\n ).toISOString().substring(0, 10) : undefined;\n};\n\n// Date to api date, which is an iso string without time zone information for current local date\nexport const toApiDate = (date?: Date | null): string | null => (\n date ? `${localDate(date)}T00:00:00` : null\n);\n\n/**\n * Simple date formatting utitity\n */\nexport const dateFormat = (date: Date) => localDate(date)!.split('-').reverse().join('.');\n\n/**\n * Number formatting for display. Same as in used input formatting lib.\n * @see https://github.com/s-yadav/react-number-format/blob/960ad2bcec58a812d5e0c1abd84c9a3e9771bc83/src/number_format.js#L473\n */\nexport const formatNumber = (number?: number) => {\n if (undefined === number) {\n return '';\n }\n\n const numStr = number.toString();\n const thousandSeparator = '.';\n const decimalSeparator = ',';\n\n const hasDecimalSeparator = numStr.indexOf('.') !== -1;\n let { beforeDecimal, afterDecimal, addNegation } = splitDecimal(numStr, true);\n\n if (thousandSeparator) {\n beforeDecimal = applyThousandSeparator(beforeDecimal, thousandSeparator, 'thousand');\n }\n\n //restore negation sign\n if (addNegation) {\n beforeDecimal = '-' + beforeDecimal;\n }\n\n // Build new number string\n return beforeDecimal + ((hasDecimalSeparator && decimalSeparator) || '') + afterDecimal;\n}\n\n/**\n * Month names\n */\nexport const MONTH_NAMES = ['Jänner', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'];\n\n/**\n * Simple date formatting utitity\n */\nexport const monthFormat = (date: Date, separator: string = ' ') => {\n const parts = localDate(date)!.split('-');\n const monthNum = parseInt(parts[1]) - 1;\n return `${MONTH_NAMES[monthNum]}${separator}${parts[0]}`;\n};\n","import { JTDSchemaType } from 'ajv/dist/jtd';\n/**\n * File contains JSON Type Definitions for comparion combination entity types.\n */\n\n/**\n * The typed entity from api\n */\nexport type ComparisonCombinationApiEntity = {\n bekID: number,\n bekNr: number,\n bekPos: number,\n bekGruppeID: number,\n bekAktiv: 'J' | 'N',\n};\n\n/**\n * Typed schema for the entity\n */\nconst schema: JTDSchemaType = {\n properties: {\n bekID: { type: 'int32' },\n bekNr: { type: 'int32' },\n bekPos: { type: 'int32' },\n bekGruppeID: { type: 'int32' },\n bekAktiv: { enum: ['J', 'N'] },\n },\n};\nexport default schema;\n\n/**\n * Export array form as well\n */\nexport const ComparisonCombinationArray: JTDSchemaType> = {\n elements: schema,\n};\n\n/**\n * The typed entity from api for combination with validity information\n */\nexport type ValidComparisonCombinationApiEntity = {\n bekNr: number,\n kombiListe: string,\n IDListe: string,\n aktiv: 'J' | 'N',\n gueltig: 'J' | 'N',\n};\n\n/**\n * The typed entity from api for combination with validity information\n */\nexport type ValidComparisonCombinationSavingApiEntity = {\n bekNr: number\n ids: string,\n aktiv: 'J' | 'N',\n gueltig: 'J' | 'N',\n};\n\n/**\n * Typed schema for the entity\n */\nexport const ValidComparisonCombination: JTDSchemaType = {\n properties: {\n bekNr: { type: 'int32' },\n kombiListe: { type: 'string' },\n IDListe: { type: 'string' },\n aktiv: { enum: ['J', 'N'] },\n gueltig: { enum: ['J', 'N'] },\n },\n};\n\n/**\n * Typed schema for the entity\n */\nexport const SaveValidComparisonCombination: JTDSchemaType = {\n properties: {\n bekNr: { type: 'int32' },\n ids: { type: 'string' },\n aktiv: { enum: ['J', 'N'] },\n gueltig: { enum: ['J', 'N'] },\n },\n};\n\n/**\n * Export array form as well\n */\nexport const ValidComparisonCombinationArray: JTDSchemaType> = {\n elements: ValidComparisonCombination,\n};\n\n\n/**\n * The typed entity from api for user defined combination\n */\nexport type ComparisonCombinationByUserApiEntity = {\n benID: number,\n benchKombiNr: string,\n};\n\n/**\n * Typed schema for the entity\n */\nexport const ByUser: JTDSchemaType = {\n properties: {\n benID: { type: 'int32' },\n benchKombiNr: { type: 'string' },\n },\n};\n","import { JTDSchemaType } from 'ajv/dist/jtd';\n/**\n * File contains JSON Type Definitions for user entity types.\n */\n\n/**\n * The typed entity from api\n */\nexport type UserComparisonCombinationApiEntity = {\n benID: number,\n benchKombiNr: number,\n};\n\n/**\n * Typed schema for the entity\n */\nconst schema: JTDSchemaType = {\n properties: {\n benID: { type: 'int32' },\n benchKombiNr: { type: 'int32' },\n },\n};\nexport default schema;\n","import ComparisonGroup, { GroupTypeEntity } from './ComparisonGroup';\nimport { KeysOfType, booleanToYN, getModelValue } from './Helper';\nimport {\n SaveValidComparisonCombination,\n ValidComparisonCombination,\n ValidComparisonCombinationApiEntity,\n ValidComparisonCombinationSavingApiEntity,\n} from '../Schemas/Api/ComparisonCombination';\nimport userCombinationSchema, {\n UserComparisonCombinationApiEntity,\n} from '../Schemas/Api/UserComparisonCombination';\n\nimport { AjvJTD } from './Ajv';\nimport { JTDParser } from 'ajv/dist/jtd';\nimport SchemaMapper from './SchemaMapper';\n\nexport default class ComparisonGroupMapper\n extends SchemaMapper {\n schema = ValidComparisonCombination;\n userComparisonCombinationParser?: JTDParser;\n\n offizinData: Array;\n privateShareData: Array;\n highPriceShareData: Array;\n openingHoursData: Array;\n pharmacyCountData: Array;\n populationData: Array;\n stateData: Array;\n locationData: Array;\n\n saveSerializer?: (data: ValidComparisonCombinationSavingApiEntity) => string;\n\n dataKeys = {\n offizin: 'offizinData',\n privateShare: 'privateShareData',\n highPriceShare: 'highPriceShareData',\n openingHours: 'openingHoursData',\n pharmacyCount: 'pharmacyCountData',\n population: 'populationData',\n state: 'stateData',\n location: 'locationData',\n } as const;\n\n constructor(\n offizinData: Array,\n privateShareData: Array,\n highPriceShareData: Array,\n openingHoursData: Array,\n pharmacyCountData: Array,\n populationData: Array,\n stateData: Array,\n locationData: Array,\n ) {\n super();\n this.offizinData = offizinData;\n this.privateShareData = privateShareData;\n this.highPriceShareData = highPriceShareData;\n this.openingHoursData = openingHoursData;\n this.pharmacyCountData = pharmacyCountData;\n this.populationData = populationData;\n this.stateData = stateData;\n this.locationData = locationData;\n }\n\n serializeForSave = (model: ComparisonGroup) => {\n if (!this.saveSerializer) {\n this.saveSerializer = AjvJTD.compileSerializer(SaveValidComparisonCombination);\n }\n return this.saveSerializer(this.mapToSaveData(model));\n };\n\n mapToModel = (data: ValidComparisonCombinationApiEntity) => {\n return new ComparisonGroup(\n this.single(this.findValueFromData('offizin', data.IDListe)),\n this.single(this.findValueFromData('privateShare', data.IDListe)),\n this.single(this.findValueFromData('highPriceShare', data.IDListe)),\n this.single(this.findValueFromData('openingHours', data.IDListe)),\n this.single(this.findValueFromData('pharmacyCount', data.IDListe)),\n this.single(this.findValueFromData('population', data.IDListe)),\n this.single(this.findValueFromData('state', data.IDListe)),\n this.findValueFromData('location', data.IDListe),\n data.aktiv === 'J',\n data.gueltig === 'J',\n data.kombiListe,\n data.bekNr,\n )\n };\n\n mapToSaveData = (model: ComparisonGroup): ValidComparisonCombinationSavingApiEntity => {\n const { aktiv, gueltig, bekNr, IDListe } = this.mapToData(model);\n return { aktiv, gueltig, bekNr, ids: IDListe.replace(/,,/g, ';') };\n };\n\n mapToData = (model: ComparisonGroup) => {\n const ids = ([\n 'offizin', 'privateShare', 'highPriceShare',\n 'openingHours', 'pharmacyCount', 'population', 'state',\n ] as const).map((key) => (getModelValue(model, key))).filter((value) => (value !== null));\n const all = ids.concat(model.location.map((location) => (location.begID)).sort());\n\n return {\n IDListe: all.join(',,'),\n aktiv: booleanToYN(model.active),\n gueltig: 'J' as const,\n bekNr: model.id || 0,\n kombiListe: '',\n };\n };\n\n serializeSetActive = (active: boolean) => {\n return JSON.stringify({ aktiv: booleanToYN(active) });\n };\n\n findValueFromData(\n key: KeysOfType|GroupTypeEntity[]>,\n dataString: string,\n ): Array {\n const data = this[this.dataKeys[key]];\n const matchedItems = dataString\n .replace(/^,+|,+$/g, '')\n .split(',,')\n .filter((value) => (value !== ''))\n .map((id) => (data.find((item) => (item.begID === Number.parseInt(id, 10)))))\n .filter((value) => (value !== undefined));\n\n // Undefined from data.find in map is filtered out in the last step, TS does not infer this,\n // so we need to cast here.\n return matchedItems as unknown as GroupTypeEntity[];\n }\n\n single(items: Array): GroupTypeEntity | null {\n return items.length > 0 ? items[0] : null;\n }\n\n getUserComparisonCombinationParser() {\n if (!this.userComparisonCombinationParser) {\n this.userComparisonCombinationParser = AjvJTD.compileParser(userCombinationSchema);\n }\n return this.userComparisonCombinationParser;\n }\n}\n","import JSONFetch, { JSONFetchOptions } from './JSONFetch';\n\nimport ComparisonGroup from './ComparisonGroup';\nimport ComparisonGroupMapper from './ComparisonGroupMapper';\nimport { urify } from './Helper';\n\nexport type CompType = 'monthly' | 'yearly';\n\nexport default class ComparisonGroupService {\n // Mapper to use\n mapper: ComparisonGroupMapper;\n\n // The constructor\n constructor(mapper: ComparisonGroupMapper) {\n this.mapper = mapper;\n }\n\n getAll = (): Promise> => {\n return JSONFetch({\n url: '/BenchmarkingKombiListGueltig',\n bodySerializer: () => '',\n responseParser: this.mapper.parseArray,\n });\n };\n\n getCurrent(userId: number, type: CompType = 'yearly'): Promise {\n const baseUrl = type === 'yearly'\n ? 'BenchKombiJahrByBenID'\n : 'BenchGrpByBenID';\n\n return JSONFetch({\n url: `/${baseUrl}/${userId}`,\n bodySerializer: () => '',\n responseParser: this.mapper.getUserComparisonCombinationParser(),\n })\n .then((data) => (data.benchKombiNr));\n }\n\n setCurrent = (userId: number, group: ComparisonGroup, type: CompType = 'yearly'): Promise => {\n const apiUrl = type === 'yearly'\n ? '/UpdateBenchKombiJahrByBenID'\n : '/UpdateBenchKombiByBenID';\n\n return JSONFetch({\n method: 'put',\n url: urify(apiUrl, { benID: userId, benchGrpNr: group.id }),\n bodySerializer: () => '',\n }).then(() => {});\n };\n\n setActive = (group: ComparisonGroup, active = true): Promise => {\n return JSONFetch({\n method: 'put',\n url: `SetBenchKombiActiveByNr/${group.id}`,\n body: group,\n bodySerializer: () => this.mapper.serializeSetActive(active),\n responseParser: () => true,\n }).then(() => {});\n };\n\n save = (group: ComparisonGroup): Promise => {\n const method: Pick, 'url' | 'method'> = group.id ? {\n url: `/UpdateBenchKombiByNr/${group.id}`,\n method: 'put',\n }: {\n url: '/InsertBenchKombi',\n method: 'post',\n };\n\n return JSONFetch({\n ...method,\n body: group,\n bodySerializer: (data) => this.mapper.serializeForSave(data),\n responseParser: (raw) => (group.id ? group : this.mapper.parse(raw)),\n });\n };\n}\n","import { JTDSchemaType } from 'ajv/dist/jtd';\n/**\n * File contains JSON Type Definitions for comparison group entity types.\n */\n\n/**\n * The typed entity from api\n */\nexport type MasterDataApiEntity = {\n lkuID: number,\n lkuWert: string,\n lkuAktiv: 'J' | 'N',\n};\n\n/**\n * Typed schema for the entity\n */\nconst schema: JTDSchemaType = {\n properties: {\n lkuID: { type: 'int32' },\n lkuWert: { type: 'string' },\n lkuAktiv: { enum: ['J', 'N'] },\n },\n};\nexport default schema;\n\n/**\n * Export array form as well\n */\nexport const MasterDataArray: JTDSchemaType> = {\n elements: schema,\n};\n","import MasterDataSchema, { MasterDataApiEntity } from '../Schemas/Api/MasterData';\n\nimport { GroupTypeEntity } from './ComparisonGroup';\nimport SchemaMapper from './SchemaMapper';\n\nexport default class ComparisonGroupSchemaMapper\n extends SchemaMapper {\n\n schema = MasterDataSchema;\n\n mapToData(model: GroupTypeEntity) {\n return {\n lkuID: model.begID,\n lkuWert: model.begBezeichnung,\n lkuAktiv: 'J' as const,\n };\n }\n\n mapToModel(data: MasterDataApiEntity) {\n return {\n begID: data.lkuID,\n begBezeichnung: data.lkuWert,\n };\n }\n}\n","import JSONFetch from './JSONFetch';\nimport MasterDataSchemaMapper from './MasterDataSchemaMapper';\n\nexport default class LookupService {\n /* Entity name also used as endpoint */\n entityName: string = '';\n\n mapper = new MasterDataSchemaMapper();\n\n constructor(entityName = '') {\n if (entityName) {\n this.entityName = entityName;\n }\n\n if (this.entityName.length < 1) {\n throw Error('Service needs entity');\n }\n }\n\n getAll() {\n return JSONFetch({\n url: this.entityName,\n bodySerializer: () => '',\n responseParser: this.mapper.parseArray,\n });\n }\n}\n","import { JTDSchemaType } from 'ajv/dist/jtd';\n/**\n * File contains JSON Type Definitions for pharmacy entity types.\n */\n\n/**\n * The typed entity from api\n */\nexport type PharmacyApiEntity = {\n apoID: number,\n apoBetrnr: string,\n apoBezeichnung: string,\n apoGruendungsjahr: number | null,\n apoApoAnzID: number | null,\n apoEinwAnzID: number | null,\n apoBundeslandID: number | null,\n apoOeffnungsdauerID: number | null,\n apoSoftwareID: number | null,\n apoLageIds: string | null,\n apoAktiv: 'J' | 'N',\n apoFilapo?: 'J' | 'N' | null,\n apoHauptApoID?: number | null,\n apoAbvMonatlich: 'J' | 'N',\n apoGhkTransfer: 'J' | 'N',\n apoBilanzstichtag: string | null,\n};\n\n/**\n * Typed schema for the entity\n */\nconst schema: JTDSchemaType = {\n properties: {\n apoID: { type: 'int32' },\n apoBetrnr: { type: 'string' },\n apoBezeichnung: { type: 'string' },\n apoGruendungsjahr: { type: 'int16', nullable: true },\n apoApoAnzID: { type: 'int32', nullable: true },\n apoEinwAnzID: { type: 'int32', nullable: true },\n apoBundeslandID: { type: 'int32', nullable: true },\n apoOeffnungsdauerID: { type: 'int32', nullable: true },\n apoSoftwareID: { type: 'int32', nullable: true },\n apoLageIds: { type: 'string', nullable: true },\n apoAktiv: { enum: ['J', 'N'] },\n apoAbvMonatlich: { enum: ['J', 'N'] },\n apoGhkTransfer: { enum: ['J', 'N'] },\n apoBilanzstichtag: { type: 'string', nullable: true },\n },\n optionalProperties: {\n apoFilapo: { enum: ['J', 'N'], nullable: true },\n apoHauptApoID: { type: 'int32', nullable: true }\n },\n};\n\nexport default schema;\n\n/**\n * Export array form as well\n */\nexport const PharmacyArray: JTDSchemaType> = {\n elements: schema,\n};\n","import { JTDSchemaType } from 'ajv/dist/jtd';\n/**\n * File contains JSON Type Definitions for pharmacy info entity types.\n */\n\n/**\n * The typed entity from api\n */\nexport type PharmacyInfoApiEntity = {\n apoBetrnr: string,\n apoBezeichnung: string,\n apoBundesland: string,\n apoAktiv: 'J' | 'N',\n};\n\n/**\n * Typed schema for the entity\n */\nconst schema: JTDSchemaType = {\n properties: {\n apoBetrnr: { type: 'string' },\n apoBezeichnung: { type: 'string' },\n apoBundesland: { type: 'string' },\n apoAktiv: { enum: ['J', 'N'] }\n },\n};\nexport default schema;\n","import { GroupTypeEntity } from './ComparisonGroup';\n\nexport default class Pharmacy {\n id: Nullable = null;\n\n number: string = '';\n\n title: string = '';\n\n foundingYear: Nullable;\n\n openingHours: Nullable = null;\n\n pharmacyCount: Nullable = null;\n\n population: Nullable = null;\n\n software: Nullable = null;\n\n state: Nullable = null;\n\n location: Array = [];\n\n active: boolean = false;\n\n monthlySubscribed: boolean = false;\n\n transferGK: boolean = false;\n\n branch: boolean = false;\n\n mainPharmacyId: Nullable = null;\n\n dateOfBalance: Nullable = null;\n\n constructor(\n number: string,\n title: string,\n foundingYear: Nullable = null,\n openingHours: Nullable = null,\n pharmacyCount: Nullable = null,\n population: Nullable = null,\n state: Nullable = null,\n software: Nullable = null,\n location: Array = [],\n active: boolean = true,\n monthlySubscribed: boolean = false,\n transferGK: boolean = false,\n dateOfBalance: Nullable = null,\n id: Nullable = null,\n ) {\n this.number = number;\n this.title = title;\n this.foundingYear = foundingYear;\n this.openingHours = openingHours;\n this.pharmacyCount = pharmacyCount;\n this.population = population;\n this.state = state;\n this.software = software;\n this.location = location;\n this.active = active;\n this.monthlySubscribed = monthlySubscribed;\n this.transferGK = transferGK;\n this.dateOfBalance = dateOfBalance;\n this.id = id;\n }\n\n setIsBranchOf(id: number) {\n this.branch = true;\n this.mainPharmacyId = id;\n }\n}\n","export default class PharmacyData {\n number: Nullable = null;\n\n title: Nullable = null;\n\n state: Nullable = null;\n\n active: boolean = false;\n\n constructor(\n number: Nullable = null,\n title: Nullable = null,\n state: Nullable = null,\n active: boolean = true,\n ) {\n this.number = number;\n this.title = title;\n this.state = state;\n this.active = active;\n }\n}\n","import { KeysOfType, booleanToYN, getModelValue, toApiDate } from './Helper';\nimport apiSchema, { PharmacyApiEntity } from '../Schemas/Api/Pharmacy';\nimport infoApiSchema, { PharmacyInfoApiEntity } from '../Schemas/Api/PharmacyInfo';\n\nimport { AjvJTD as Ajv } from './Ajv';\nimport { GroupTypeEntity } from './ComparisonGroup';\nimport { JTDParser } from \"ajv/dist/jtd\"\nimport Pharmacy from './Pharmacy';\nimport PharmacyData from './PharmacyData';\nimport SchemaMapper from './SchemaMapper';\n\nexport default class PharmacyMapper extends SchemaMapper {\n schema = apiSchema;\n infoParser: JTDParser;\n\n openingHoursData: Array;\n pharmacyCountData: Array;\n populationData: Array;\n stateData: Array;\n locationData: Array;\n softwareData: Array;\n\n dataKeys = {\n openingHours: 'openingHoursData',\n pharmacyCount: 'pharmacyCountData',\n population: 'populationData',\n software: 'softwareData',\n state: 'stateData',\n location: 'locationData',\n } as const;\n\n constructor(\n openingHoursData: Array,\n pharmacyCountData: Array,\n populationData: Array,\n stateData: Array,\n locationData: Array,\n softwareData: Array,\n ) {\n super();\n this.openingHoursData = openingHoursData;\n this.pharmacyCountData = pharmacyCountData;\n this.populationData = populationData;\n this.stateData = stateData;\n this.locationData = locationData;\n this.softwareData = softwareData;\n\n this.infoParser = Ajv.compileParser(infoApiSchema);\n }\n\n /**\n * Map json data to a Pharmacy model\n */\n mapToModel(data: PharmacyApiEntity) {\n const pharmacy = new Pharmacy(\n data.apoBetrnr,\n data.apoBezeichnung,\n data.apoGruendungsjahr,\n this.single(this.findValueFromData('openingHours', data.apoOeffnungsdauerID)),\n this.single(this.findValueFromData('pharmacyCount', data.apoApoAnzID)),\n this.single(this.findValueFromData('population', data.apoEinwAnzID)),\n this.single(this.findValueFromData('state', data.apoBundeslandID)),\n this.single(this.findValueFromData('software', data.apoSoftwareID)),\n this.findValueFromData('location', data.apoLageIds),\n data.apoAktiv === \"J\",\n data.apoAbvMonatlich === \"J\",\n data.apoGhkTransfer === \"J\",\n data.apoBilanzstichtag ? new Date(Date.parse(data.apoBilanzstichtag)) : null,\n data.apoID || null,\n );\n\n if (data.apoFilapo === 'J' && data.apoHauptApoID) {\n pharmacy.setIsBranchOf(data.apoHauptApoID);\n }\n\n return pharmacy;\n }\n\n mapToDataModel(data: PharmacyInfoApiEntity) {\n return new PharmacyData(\n data.apoBetrnr,\n data.apoBezeichnung,\n data.apoBundesland,\n data.apoAktiv === \"J\",\n );\n }\n\n /**\n * Map Pharmacy model to json data\n */\n mapToData = (model: Pharmacy): PharmacyApiEntity => {\n return {\n apoBetrnr: model.number,\n apoBezeichnung: model.title,\n apoGruendungsjahr: model.foundingYear || null,\n apoID: model.id || 0,\n apoOeffnungsdauerID: getModelValue(model, 'openingHours'),\n apoApoAnzID: getModelValue(model, 'pharmacyCount'),\n apoEinwAnzID: getModelValue(model, 'population'),\n apoBundeslandID: getModelValue(model, 'state'),\n apoSoftwareID: getModelValue(model, 'software'),\n apoAktiv: booleanToYN(model.active),\n apoLageIds: model.location.map((location) => (location.begID)).join(';'),\n apoAbvMonatlich: booleanToYN(model.monthlySubscribed),\n apoGhkTransfer: booleanToYN(model.transferGK),\n apoBilanzstichtag: toApiDate(model.dateOfBalance),\n apoHauptApoID: model.mainPharmacyId,\n apoFilapo: booleanToYN(model.branch),\n };\n };\n\n findValueFromData(\n key: KeysOfType|GroupTypeEntity[]>,\n dataValue: number | string | null,\n ): Array {\n if (!dataValue) { return []; }\n\n const searchIn = typeof dataValue === 'string' ? dataValue.split(';').map((i) => parseInt(i, 10)) : [dataValue];\n\n const data = this[this.dataKeys[key]];\n const matchedItems = searchIn.map((id) => (data.find((item) => (item.begID === id))))\n .filter((value) => (value !== undefined));\n\n // Undefined from data.find in map is filtered out in the last step, TS does not infer this,\n // so we need to cast here.\n return matchedItems as unknown as GroupTypeEntity[];\n }\n\n single(items: Array): GroupTypeEntity | null {\n return items.length > 0 ? items[0] : null;\n }\n}\n","/**\n * Raw pharmacy with no foreign data\n */\nexport default class Pharmacy {\n id: Nullable = null;\n number: string = '';\n title: string = '';\n foundingYear: Nullable;\n openingHours: Nullable = null;\n pharmacyCount: Nullable = null;\n population: Nullable = null;\n software: Nullable = null;\n state: Nullable = null;\n location: Array = [];\n active: boolean = false;\n monthlySubscribed: boolean = false;\n transferGK: boolean = false;\n dateOfBalance: Nullable = null;\n\n constructor(\n number: string,\n title: string,\n foundingYear: Nullable = null,\n openingHours: Nullable = null,\n pharmacyCount: Nullable = null,\n population: Nullable = null,\n state: Nullable = null,\n software: Nullable = null,\n location: Array = [],\n active: boolean = true,\n monthlySubscribed: boolean = false,\n transferGK: boolean = false,\n dateOfBalance: Nullable = null,\n id: Nullable = null,\n ) {\n this.number = number;\n this.title = title;\n this.foundingYear = foundingYear;\n this.openingHours = openingHours;\n this.pharmacyCount = pharmacyCount;\n this.population = population;\n this.state = state;\n this.software = software;\n this.location = location;\n this.active = active;\n this.monthlySubscribed = monthlySubscribed;\n this.transferGK = transferGK;\n this.dateOfBalance = dateOfBalance;\n this.id = id;\n }\n}\n","import apiSchema, { PharmacyApiEntity } from '../Schemas/Api/Pharmacy';\n\nimport RawPharmacy from './RawPharmacy';\nimport SchemaMapper from './SchemaMapper';\nimport { booleanToYN } from './Helper';\n\nexport default class RawPharmacyMapper extends SchemaMapper {\n schema = apiSchema;\n\n /**\n * Map json data to a Pharmacy model\n */\n mapToModel(data: PharmacyApiEntity) {\n return new RawPharmacy(\n data.apoBetrnr,\n data.apoBezeichnung,\n data.apoGruendungsjahr,\n data.apoOeffnungsdauerID,\n data.apoApoAnzID,\n data.apoEinwAnzID,\n data.apoBundeslandID,\n data.apoSoftwareID,\n data.apoLageIds?.split(';').map(parseInt).filter((v) => (!isNaN(v))) ?? [],\n data.apoAktiv === \"J\",\n data.apoAbvMonatlich === \"J\",\n data.apoGhkTransfer === \"J\",\n data.apoBilanzstichtag,\n data.apoID || null,\n );\n }\n\n /**\n * Map Pharmacy model to json data\n */\n mapToData = (model: RawPharmacy): PharmacyApiEntity => {\n return {\n apoBetrnr: model.number,\n apoBezeichnung: model.title,\n apoGruendungsjahr: model.foundingYear || null,\n apoID: model.id || 0,\n apoOeffnungsdauerID: model.openingHours || null,\n apoApoAnzID: model.pharmacyCount || null,\n apoEinwAnzID: model.population || null,\n apoBundeslandID: model.state || null,\n apoSoftwareID: model.software || null,\n apoAktiv: booleanToYN(model.active),\n apoLageIds: model.location.join(';'),\n apoAbvMonatlich: booleanToYN(model.monthlySubscribed),\n apoGhkTransfer: booleanToYN(model.transferGK),\n apoBilanzstichtag: model.dateOfBalance || null,\n };\n };\n}\n","import { JTDSchemaType } from 'ajv/dist/jtd';\n/**\n * File contains JSON Type Definitions for user entity types.\n */\n\n/**\n * The typed entity from api\n */\nexport type UserApiEntity = {\n benID: number,\n benUsername: string,\n benTitel: string | null,\n benVName: string | null,\n benNName: string | null,\n benFunktionID: number,\n benEmail: string,\n benApoID: number,\n benHauptbenutzer: string | null,\n benRolleID: number,\n benPW: string | null,\n benAktiv: 'J' | 'N',\n};\n\n/**\n * Typed schema for the entity\n */\nconst schema: JTDSchemaType = {\n properties: {\n benID: { type: 'int32' },\n benUsername: { type: 'string' },\n benTitel: { type: 'string', nullable: true },\n benVName: { type: 'string', nullable: true },\n benNName: { type: 'string', nullable: true },\n benFunktionID: { type: 'int32' },\n benEmail: { type: 'string' },\n benApoID: { type: 'int32' },\n benHauptbenutzer: { type: 'string', nullable: true },\n benRolleID: { type: 'int32' },\n benPW: { type: 'string', nullable: true },\n benAktiv: { enum: ['J', 'N'] }\n },\n};\nexport default schema;\n\n/**\n * Export array form as well\n */\nexport const UserArray: JTDSchemaType> = {\n elements: schema,\n};\n","export default class User {\n id: Nullable = null;\n\n title: Nullable = null;\n\n firstName: Nullable = '';\n\n lastName: Nullable = '';\n\n username: string = '';\n\n password?: Nullable = null;\n\n email: Nullable = null;\n\n involvement: number = 0;\n\n role: number = 0;\n\n active: boolean = false;\n\n mainUser: boolean = false;\n\n pharmacyId: number = 0;\n\n constructor(\n title: Nullable = null,\n firstName: Nullable = null,\n lastName: Nullable = null,\n username: string = '',\n email: Nullable = null,\n involvement: number = 1,\n role: number = 1,\n active: boolean = true,\n mainUser: boolean = false,\n pharmacyId: number = 0,\n id: Nullable = null,\n ) {\n this.title = title;\n this.firstName = firstName;\n this.lastName = lastName;\n this.username = username;\n this.email = email;\n this.involvement = involvement;\n this.role = role;\n this.active = active;\n this.mainUser = mainUser;\n this.pharmacyId = pharmacyId;\n this.id = id;\n }\n}\n","import UserSchema, { UserApiEntity, UserArray } from '../Schemas/Api/User';\n\nimport Ajv from \"ajv/dist/jtd\"\nimport SchemaMapper from './SchemaMapper';\nimport User from './User';\n\n/**\n * Compile a typed schema via AJV\n */\nconst ajv = new Ajv()\nexport const parseJSON = ajv.compileParser(UserSchema);\nexport const parseArrayJSON = ajv.compileParser(UserArray);\n\nexport default class UserMapper\n extends SchemaMapper {\n schema = UserSchema;\n\n /**\n * Map json data to a user model\n */\n mapToModel = (data: UserApiEntity) => {\n return new User(\n data.benTitel,\n data.benVName,\n data.benNName,\n data.benUsername,\n data.benEmail,\n data.benFunktionID,\n data.benRolleID,\n data.benAktiv === 'J',\n data.benHauptbenutzer === 'J',\n data.benApoID,\n data.benID || null,\n );\n }\n\n /**\n * Map user model to json data\n */\n mapToData = (model: User) => {\n const activeJN: 'J' | 'N' = model.active ? 'J' : 'N';\n return {\n benTitel: model.title || '',\n benVName: model.firstName || '',\n benNName: model.lastName || '',\n benUsername: model.username,\n benEmail: model.email || '',\n benRolleID: model.role,\n benFunktionID: model.involvement,\n benAktiv: activeJN,\n benHauptbenutzer: model.mainUser ? 'J' : 'N',\n benID: model.id || 0,\n benPW: model.password || '',\n benApoID: model.pharmacyId,\n };\n };\n}\n","import JSONFetch from './JSONFetch';\nimport Pharmacy from './Pharmacy';\nimport PharmacyData from './PharmacyData';\nimport PharmacyMapper from './PharmacyMapper';\nimport RawPharmacy from './RawPharmacy';\nimport RawPharmacyMapper from './RawPharmacyMapper';\nimport User from './User';\nimport UserMapper from './UserMapper';\nimport { urify } from './Helper';\n\ntype RegistrationCode = {\n pharmacyNumber: string,\n registrationCode: string,\n};\n\nexport default class PharmacyService {\n // Mapper to use\n mapper: PharmacyMapper;\n\n // The constructor\n constructor(mapper: PharmacyMapper) {\n this.mapper = mapper;\n }\n\n checkRegistrationCode(pharmacyNumber: string, code: string): Promise {\n return JSONFetch({\n url: urify('/CheckApoRegCode', { apoBetrNr: pharmacyNumber, regCode: code }),\n bodySerializer: () => '',\n responseParser: this.mapper.infoParser,\n })\n .then((parsed) => this.mapper.mapToDataModel(parsed));\n }\n\n requestRegistrationCode(pharmacyNumber: string): Promise {\n return JSONFetch({\n url: urify('/SendApoRegCode', { apoBetrNr: pharmacyNumber }),\n bodySerializer: () => '',\n responseParser: () => true,\n });\n }\n\n register(data: [RegistrationCode, Pharmacy, User?]): Promise {\n return JSONFetch({\n method: 'post',\n url: urify('/Registration', { ApoBetrNr: data[0].pharmacyNumber, apoRegCode: data[0].registrationCode }),\n body: data,\n bodySerializer: () => JSON.stringify({\n Apotheke: this.mapper.mapToData(data[1]),\n Benutzer: data[2] ? new UserMapper().mapToData(data[2]) : {},\n }),\n responseParser: (newId: string) => parseInt(newId, 10),\n })\n .then((parsed) => {});\n }\n\n getBranches(id: number): Promise> {\n return JSONFetch({\n url: `/FilAposByApoID/${id}`,\n bodySerializer: () => '',\n responseParser: this.mapper.parseArray,\n });\n }\n\n get(id: number): Promise {\n return JSONFetch({\n url: `/ApothekeByID/${id}`,\n bodySerializer: () => '',\n responseParser: this.mapper.parse,\n });\n }\n\n save(pharmacy: Pharmacy): Promise {\n return JSONFetch({\n method: 'put',\n url: '/UpdateApotheke',\n body: pharmacy,\n bodySerializer: (data) => this.mapper.serialize(data),\n })\n .then(() => pharmacy);\n }\n\n saveRaw(pharmacy: RawPharmacy): Promise {\n return JSONFetch({\n method: 'put',\n url: '/UpdateApotheke',\n body: pharmacy,\n bodySerializer: (data) => (new RawPharmacyMapper()).serialize(data),\n })\n .then(() => pharmacy);\n }\n}\n","import { JTDSchemaType } from 'ajv/dist/jtd';\n/**\n * File contains JSON Type Definitions for comparison group entity types.\n */\n\n/**\n * The typed entity from api\n */\nexport type ReportApiEntity = {\n arbApoKennung: string,\n arbTyp1: 'JABV' | 'MABV' | 'ABV',\n arbTyp2: string,\n arbTyp3: string,\n arbZeitraum: string,\n arbBenchKombi: string,\n arbPfad: string,\n arbDatum: string,\n};\n\n/**\n * Typed schema for the entity\n */\nconst schema: JTDSchemaType = {\n properties: {\n arbApoKennung: { type: 'string' },\n arbTyp1: { enum: ['JABV', 'MABV', 'ABV'] },\n arbTyp2: { type: 'string' },\n arbTyp3: { type: 'string' },\n arbZeitraum: { type: 'string' },\n arbBenchKombi: { type: 'string' },\n arbPfad: { type: 'string' },\n arbDatum: { type: 'string' },\n },\n};\nexport default schema;\n\n/**\n * Export array form as well\n */\nexport const ReportArray: JTDSchemaType> = {\n elements: schema,\n};\n","/**\n * The report period\n */\nexport type PeriodType = 'monthly' | 'yearly' | 'all';\n\n/**\n * The report type\n */\nexport type ReportType = 'general' | 'pharmacy';\n\n/**\n * Report model class\n */\nexport default class Report {\n /**\n * File base name\n */\n filename: string = '';\n\n /**\n * Complete web path (url)\n */\n filepath: string = '';\n\n /**\n * The files timestamp\n */\n timestamp: Date;\n\n /**\n * Report type\n */\n type: ReportType = 'general';\n\n /**\n * The period\n */\n period: PeriodType = 'monthly';\n\n constructor(\n filepath: string,\n timestamp: Date,\n period?: PeriodType,\n type?: ReportType,\n ) {\n this.filepath = filepath;\n this.filename = filepath.split('/').reverse()[0];\n this.timestamp = timestamp;\n\n if (period) {\n this.period = period;\n }\n if (type) {\n this.type = type;\n }\n }\n}\n","import reportSchema, { ReportApiEntity } from '../Schemas/Api/Report';\n\nimport Report from '../Lib/Report';\nimport SchemaMapper from './SchemaMapper';\n\nexport default class ComparisonGroupMapper\n extends SchemaMapper {\n schema = reportSchema;\n\n mapToModel = (data: ReportApiEntity) => {\n return new Report(\n data.arbPfad,\n new Date(Date.parse(data.arbDatum)),\n data.arbTyp1 === 'JABV' ? 'yearly' : 'monthly',\n data.arbTyp2 === 'Privat' ? 'pharmacy' : 'general',\n );\n };\n\n mapToData = (model: Report) => {\n throw new Error('Report cannot be serialized');\n };\n}\n","import Report, { PeriodType, ReportType } from './Report';\n\nimport JSONFetch from './JSONFetch';\nimport ReportMapper from './ReportMapper';\nimport { urify } from './Helper';\n\nconst reportTypeParams = { general: 'A', pharmacy: 'E' } as const;\n\nexport default class ReportService {\n // Mapper to use\n mapper: ReportMapper;\n\n // The constructor\n constructor(mapper: ReportMapper) {\n this.mapper = mapper;\n }\n\n /**\n * Get most recent\n */\n getRecent(pharmacyId: number, type: ReportType): Promise> {\n return JSONFetch({\n url: urify('/ArchivBerichteByApoID', { ApoID: pharmacyId, Typ: reportTypeParams[type] }),\n bodySerializer: () => '',\n responseParser: this.mapper.parseArray,\n });\n }\n\n /**\n * Get all\n */\n getAll(\n pharmacyId: number,\n type: ReportType,\n period: PeriodType,\n date?: Date,\n dateMode?: 'year' | 'month' | 'yearMonth',\n ): Promise> {\n const dateYear = !date || date.getFullYear() < (new Date().getFullYear() - 20)\n ? {} : { Jahr: date.getFullYear() };\n\n const periodParams = ['yearly', 'all'].includes(period) ? {\n Herkunft: period === 'yearly' ? 'JABV' : 'ABV',\n ...dateYear\n } : {\n Herkunft: 'MABV',\n Monat: date ? date.getMonth() + 1 : null,\n ...dateYear\n };\n\n // Adjust from dateMode\n if (dateMode === 'year' && periodParams.hasOwnProperty('Monat')) {\n // @ts-ignore\n delete periodParams.Monat;\n }\n if (dateMode === 'month' && periodParams.hasOwnProperty('Jahr')) {\n // @ts-ignore\n delete periodParams.Jahr;\n }\n\n\n return JSONFetch({\n url: urify(\n '/ArchivBerichteByApoID',\n {\n ApoID: pharmacyId,\n Typ: reportTypeParams[type],\n ...periodParams,\n },\n ),\n bodySerializer: () => '',\n responseParser: this.mapper.parseArray,\n });\n }\n}\n","import { JTDSchemaType } from 'ajv/dist/jtd';\n/**\n * File contains JSON Type Definitions for comparison group entity types.\n */\n\n/**\n * The typed entity from api\n */\nexport type SalesDataApiEntity = {\n kpiA16: number,\n kpiA18: number,\n};\n\n\n\n/**\n * Typed schema for the entity\n */\nconst schema: JTDSchemaType = {\n properties: {\n kpiA16: { type: 'int32' },\n kpiA18: { type: 'int32' },\n },\n};\nexport default schema;\n\n/**\n * Export array form as well\n */\nexport const SalesDataArray: JTDSchemaType> = {\n elements: schema,\n};\n","import SalesDataSchema, {\n SalesDataApiEntity,\n} from '../Schemas/Api/SalesData';\n\nimport SchemaMapper from './SchemaMapper';\n\nexport type SalesData = { recipeCount: number, packageCount: number };\n\nexport default class SalesDataMapper\n extends SchemaMapper {\n schema = SalesDataSchema;\n\n /**\n * Map json data to a user model\n */\n mapToModel = (data: SalesDataApiEntity) => {\n return {\n recipeCount: data.kpiA16,\n packageCount: data.kpiA18,\n };\n }\n\n /**\n * Map user model to json data\n */\n mapToData = (model: SalesData) => {\n return {\n kpiA16: model.recipeCount,\n kpiA18: model.packageCount,\n };\n };\n}\n","import { JTDSchemaType } from 'ajv/dist/jtd';\n/**\n * File contains JSON Type Definitions for comparison group entity types.\n */\n\nexport const staffTypeMarks = ['A52' , 'A53' , 'A54' , 'A55' , 'A56' , 'A57' , 'A58' , 'A59' , 'A60' , 'A61' , 'A62', 'A63', 'A64', 'A65'] as const;\nexport type StaffMarkType = typeof staffTypeMarks[number];\n\nexport const skilledStaffMarks = ['AL' , 'PH' , 'AS' , 'SP'] as const;\nexport type SkilledStaffMarkType = typeof skilledStaffMarks[number];\n\n/**\n * The typed entity from api\n */\nexport type StaffDataApiEntity = {\n persApoID: number,\n persWj: number,\n persKurzBez: StaffMarkType,\n persLfdnr: number,\n persDGDN: 'DN' | 'DG' | 'ME',\n persFPers: SkilledStaffMarkType,\n persSatzart: 'J' | 'M' | 'A',\n persJahreswert: number,\n persAnzMon: number,\n persMon1: number,\n persMon2: number,\n persMon3: number,\n persMon4: number,\n persMon5: number,\n persMon6: number,\n persMon7: number,\n persMon8: number,\n persMon9: number,\n persMon10: number,\n persMon11: number,\n persMon12: number,\n};\n\n\n\n/**\n * Typed schema for the entity\n */\nconst schema: JTDSchemaType = {\n properties: {\n persApoID: { type: 'int32' },\n persWj: { type: 'int32' },\n persKurzBez: { enum: [...staffTypeMarks]},\n persLfdnr: { type: 'int32' },\n persDGDN: { enum: ['DG', 'DN', 'ME'] },\n persFPers: { enum: [...skilledStaffMarks] },\n persSatzart: { enum: ['J', 'M', 'A'] },\n persJahreswert: { type: 'float32' },\n persAnzMon: { type: 'int32' },\n persMon1: { type: 'int32' },\n persMon2: { type: 'int32' },\n persMon3: { type: 'int32' },\n persMon4: { type: 'int32' },\n persMon5: { type: 'int32' },\n persMon6: { type: 'int32' },\n persMon7: { type: 'int32' },\n persMon8: { type: 'int32' },\n persMon9: { type: 'int32' },\n persMon10: { type: 'int32' },\n persMon11: { type: 'int32' },\n persMon12: { type: 'int32' },\n },\n};\nexport default schema;\n\n/**\n * Export array form as well\n */\nexport const StaffDataArray: JTDSchemaType> = {\n elements: schema,\n};\n","import Pharmacy from './Pharmacy';\n\nexport const PharmacyLeaderOccupation = {\n owner: 'Konzessionär / (Mit-)Eigentümer',\n tenure: 'Pächter',\n employed: 'angestellter Leiter',\n} as const;\n\nexport const PharmacyNightDutiesPerYear = {\n to19: '0 bis 19',\n to29: '20 bis 29',\n to39: '30 bis 39',\n to49: '40 bis 49',\n to59: '50 bis 59',\n to69: '60 bis 69',\n to79: '70 bis 79',\n to99: '80 bis 99',\n to159: '100 bis 159',\n to199: '160 bis 199',\n more: 'Mehr als 200',\n} as const;\n\nexport interface BalanceSheet {\n B1_LJ?: number,\n B2_LJ?: number,\n B3_LJ?: number,\n B4_LJ?: number,\n B5_LJ?: number,\n B6_LJ?: number,\n B7_LJ?: number,\n B8_LJ?: number,\n B9_LJ?: number,\n B10_LJ?: number,\n B11_LJ?: number,\n B12_LJ?: number,\n};\n\nexport interface IncomeSheet {\n E1_LJ?: number,\n E2_LJ?: number,\n E3_LJ?: number,\n E4_LJ?: number,\n E5_LJ?: number,\n E6_LJ?: number,\n E7_LJ?: number,\n E8_LJ?: number,\n E9_LJ?: number,\n E10_LJ?: number,\n E11_LJ?: number,\n E13_LJ?: number,\n E14_LJ?: number,\n E15_LJ?: number,\n E16_LJ?: number,\n E17_LJ?: number,\n E18_LJ?: number,\n E19_LJ?: number,\n E20_LJ?: number,\n E21_LJ?: number,\n E22_LJ?: number,\n E23_LJ?: number,\n E24_LJ?: number,\n E25_LJ?: number,\n E26_LJ?: number,\n E27_LJ?: number,\n E28_LJ?: number,\n E29_LJ?: number,\n E30_LJ?: number,\n E50_LJ?: number,\n E99_LJ?: number,\n};\n\nexport interface General {\n A2_LJ?: Date,\n A3_LJ?: Date,\n A4_LJ?: boolean,\n A5_LJ?: keyof typeof PharmacyLeaderOccupation,\n A9_LJ?: keyof typeof PharmacyNightDutiesPerYear,\n A6_LJ?: boolean,\n A7_LJ?: boolean,\n A19_LJ?: boolean,\n A13_LJ?: number,\n A14_LJ?: number,\n A15_LJ?: number,\n A16_LJ?: number,\n A17_LJ?: number,\n A18_LJ?: number,\n};\n\nexport const staffTypeOptions = {\n employer: {\n concessionaire: 'Konzessionär',\n ownerPharmacist: 'Miteigentümer Apotheker/Aspirant',\n ownerNonPharmacist: 'Miteigentümer Keine Pharmazeutische Fachkraft',\n },\n employee: {\n director: 'Apothekenleiter',\n pharmacist: 'Vertretungsberechtigter Apotheker',\n aspirant: 'Aspirant',\n trainee: 'PKA-Lehrling',\n employeeUnskilled: 'sonstige Angestellte ohne Berufsausbildung',\n employeeSkilled: 'sonstige Angestellte mit Berufsausbildung',\n merchant: 'PKA',\n cleaner: 'Raumpfleger',\n otherEmployee: 'sonstiger Arbeiter',\n },\n family: {\n familyPharmacist: 'Pharmazeutische Fachkraft',\n familyNonPharmacist: 'Nicht Pharmazeutische Fachkraft',\n },\n} as const;\n\nexport const staffTypeCategories = {\n employer: 'Dienstgeber',\n employee: 'Dienstnehmer',\n family: 'Familiäre Mittätigkeit',\n} as const;\n\nexport const staffTypeByKey = {\n ...staffTypeOptions.employer,\n ...staffTypeOptions.employee,\n ...staffTypeOptions.family,\n} as const;\n\n// Helper type\nexport type KeysUnder = T extends object ? {\n [P in keyof T]-?: keyof T[P] | never\n}[keyof T] : never;\n\nexport type Tuple = [TItem, ...TItem[]] & { length: TLength };\n\n/**\n * Staff type is all available options from staff type struct\n */\nexport type StaffType = KeysUnder;\n\n/**\n * Staff row object\n */\nexport interface StaffRow {\n type: StaffType,\n transmissionType: 'J' | 'M' | 'A',\n staffId: number,\n sum: {\n months: number,\n quota: number,\n },\n monthly?: Tuple,\n};\n\n/**\n * Staff row with id\n */\nexport type StaffRowWithId = StaffRow & {\n id: number,\n};\n\n/**\n * Staff data is entered rowwise\n */\ntype Counts = {\n [Property in keyof Type as `${string & Property}Count`]: number\n};\nexport interface StaffData\n extends Partial>, Partial>> {\n rows: Array,\n};\n\n/**\n * The whole object of yearly data storage\n */\nexport interface YearlyData {\n year?: number,\n pharmacy?: Pharmacy,\n general: General,\n income: IncomeSheet,\n balance: BalanceSheet,\n staff: StaffData,\n isEmpty?: true,\n validationResult?: 'none' | 'warn' | 'critical',\n};\n\n/**\n * An object with multiple data to be saved\n */\nexport interface YearlySaveData {\n pharmacy: Pharmacy,\n general: General,\n income: IncomeSheet,\n balance: BalanceSheet,\n staff: StaffData,\n validationResult?: 'none' | 'warn' | 'critical',\n validationResults: Array<{ rule: string, result: [number | undefined, boolean, boolean] }>,\n intermediates: Record,\n};\n","import { SkilledStaffMarkType, StaffMarkType } from '../../Schemas/Api/StaffData';\nimport { StaffType, staffTypeOptions } from '../YearlyData';\n\nexport const getCategory = (type: Readonly): keyof typeof staffTypeOptions => {\n return Object.keys(staffTypeOptions).find((key: keyof typeof staffTypeOptions) => (\n (Object.keys(staffTypeOptions[key]) as Array).includes(type)\n )) || 'employee';\n};\n\nexport const CATEGORY_MARK: Record = {\n concessionaire: 'DG',\n ownerPharmacist: 'ME',\n ownerNonPharmacist: 'ME',\n director: 'DN',\n pharmacist: 'DN',\n aspirant: 'DN',\n trainee: 'DN',\n employeeUnskilled: 'DN',\n employeeSkilled: 'DN',\n merchant: 'DN',\n cleaner: 'DN',\n otherEmployee: 'DN',\n familyPharmacist: 'DG',\n familyNonPharmacist: 'DG',\n};\n\nexport const SKILLED_MARKS: Record = {\n concessionaire: 'AL',\n ownerPharmacist: 'PH',\n ownerNonPharmacist: 'SP',\n director: 'AL',\n pharmacist: 'PH',\n aspirant: 'AS',\n trainee: 'SP',\n employeeUnskilled: 'SP',\n employeeSkilled: 'SP',\n merchant: 'SP',\n cleaner: 'SP',\n otherEmployee: 'SP',\n familyPharmacist: 'PH',\n familyNonPharmacist: 'SP',\n};\n\nconst intermediateMapping: Record = {\n concessionaire: 'A52',\n ownerPharmacist: 'A63',\n ownerNonPharmacist: 'A64',\n director: 'A54',\n pharmacist: 'A55',\n aspirant: 'A56',\n trainee: 'A58',\n employeeUnskilled: 'A60',\n employeeSkilled: 'A59',\n merchant: 'A57',\n cleaner: 'A61',\n otherEmployee: 'A62',\n familyPharmacist: 'A53',\n familyNonPharmacist: 'A65',\n};\n\nexport default intermediateMapping;\n","import StaffDataSchema, {\n StaffDataApiEntity,\n} from '../Schemas/Api/StaffData';\nimport {\n StaffRow,\n StaffType,\n Tuple,\n} from './YearlyData';\nimport StaffTypeMapping, {\n CATEGORY_MARK,\n SKILLED_MARKS,\n} from './Mappings/StaffTypes';\n\nimport SchemaMapper from './SchemaMapper';\n\n// Mapping of type ids from api to internal ones\nconst TYPE_IDS: Record = {\n A52: 'concessionaire',\n A53: 'familyPharmacist',\n A54: 'director',\n A55: 'pharmacist',\n A56: 'aspirant',\n A57: 'merchant',\n A58: 'trainee',\n A59: 'employeeSkilled',\n A60: 'employeeUnskilled',\n A61: 'cleaner',\n A62: 'otherEmployee',\n A63: 'ownerPharmacist',\n A64: 'ownerNonPharmacist',\n A65: 'familyNonPharmacist',\n}\n\n/**\n * Helper method to get an array an exact tuple size no matter the input\n */\nconst arraySize = (input: Array, length: U, fill: T): Tuple =>\n input.concat((new Array(length)).fill(fill)).slice(0, length) as Tuple;\n\n/**\n * Object from string\n */\nconst getStaffDataFromString = (data: StaffDataApiEntity): Omit => {\n // YearlyData\n if (data.persSatzart === 'J') {\n return {\n sum: {\n quota: data.persJahreswert,\n months: data.persAnzMon,\n },\n };\n }\n\n const monthly = ([\n 'persMon1',\n 'persMon2',\n 'persMon3',\n 'persMon4',\n 'persMon5',\n 'persMon6',\n 'persMon7',\n 'persMon8',\n 'persMon9',\n 'persMon10',\n 'persMon11',\n 'persMon12',\n ] as const).map((key) => (data[key] || 0)) as Tuple;\n const months = monthly.filter((quota) => quota > 0).length;\n const quota = monthly.reduce((partialSum, a) => partialSum + a, 0) / months;\n\n return {\n sum: {\n months,\n quota,\n },\n monthly,\n };\n}\n\nexport default class StaffDataMapper\n extends SchemaMapper {\n schema = StaffDataSchema;\n year: number;\n pharmacyId: number;\n\n constructor(pharmacyId: number, year: number) {\n super();\n this.year = year;\n this.pharmacyId = pharmacyId;\n }\n\n /**\n * Map json data to a user model\n */\n mapToModel = (data: StaffDataApiEntity) => {\n return {\n type: TYPE_IDS[data.persKurzBez],\n transmissionType: data.persSatzart,\n staffId: data.persLfdnr,\n ...getStaffDataFromString(data),\n };\n }\n\n /**\n * Map user model to json data\n */\n mapToData = (model: StaffRow) => {\n const monthData = Object.fromEntries(\n arraySize([], 12, 0).map((_, i) => [\n `persMon${i + 1}`, model.monthly?.[i] || 0,\n ])\n ) as Omit;\n return {\n persApoID: this.pharmacyId,\n persWj: this.year,\n persLfdnr: model.staffId,\n persKurzBez: StaffTypeMapping[model.type],\n persDGDN: CATEGORY_MARK[model.type],\n persFPers: SKILLED_MARKS[model.type],\n persSatzart: model.transmissionType,\n persJahreswert: model.sum.quota,\n persAnzMon: model.sum.months,\n ...monthData,\n }\n };\n}\n","import SalesDataMapper, { SalesData } from './SalesDataMapper';\nimport { localDate, urify } from './Helper';\n\nimport JSONFetch from './JSONFetch';\nimport StaffDataMapper from './StaffDataMapper';\nimport { StaffRow } from './YearlyData';\n\nexport default class StaffDataService {\n get(pharmacyId: number, year: number, start: Date, end: Date): Promise> {\n return JSONFetch({\n url: urify('/GetPersonalFromGK', {\n ApoId: pharmacyId,\n Jahr: year,\n WJBeginn: localDate(start)?.substring(0, 7).replace('-', ''),\n WJEnde: localDate(end)?.substring(0, 7).replace('-', ''),\n }),\n bodySerializer: () => '',\n responseParser: (new StaffDataMapper(pharmacyId, year)).parseArray,\n }).then((loadedStaff) => (\n loadedStaff.sort((a, b) => (a.type.localeCompare(b.type)))\n ));\n }\n\n getSalesInformation(pharmacyId: number, start: Date, end: Date): Promise {\n return JSONFetch({\n url: urify('/GetRezPckFromGK', {\n ApoId: pharmacyId,\n WJBeginn: localDate(start)?.substring(0, 7).replace('-', ''),\n WJEnde: localDate(end)?.substring(0, 7).replace('-', ''),\n }),\n bodySerializer: () => '',\n responseParser: (new SalesDataMapper()).parse,\n });\n }\n}\n","import UserMapper, { parseArrayJSON, parseJSON } from './UserMapper';\n\nimport JSONFetch from './JSONFetch';\nimport User from './User';\nimport { urify } from './Helper';\n\nexport default class UserService {\n // Mapper to use\n mapper: UserMapper;\n\n // The constructor\n constructor(mapper: UserMapper) {\n this.mapper = mapper;\n }\n\n getUsernameAvailable(username: string): Promise {\n return JSONFetch({\n url: urify('/CheckDBEntity', { type: 'Benutzer', value: username }),\n bodySerializer: () => '',\n responseParser: JSON.parse\n }).then((response) => (!!response.returnValue));\n }\n\n getAll(pharmacyId: number): Promise> {\n return JSONFetch({\n url: `/BenutzerByApoID/${pharmacyId}`,\n responseParser: parseArrayJSON,\n bodySerializer: () => '',\n })\n .then((data) => data.map((item) => this.mapper.mapToModel(item)));\n }\n\n setActive(user: User, active = true): Promise {\n user.active = active;\n\n return JSONFetch({\n method: 'put',\n url: '/UpdateBenutzer',\n body: user,\n bodySerializer: (data) => JSON.stringify(this.mapper.mapToData(data)),\n })\n .then(() => user);\n }\n\n lostPasswordRequest(email: string, pharmacyNumber: string): Promise {\n return JSONFetch({\n url: urify('/GetPWChangeCode', { userMail: email, apoBetrNr: pharmacyNumber }),\n bodySerializer: () => '',\n })\n .then(() => {});\n }\n\n save(user: User): Promise {\n return JSONFetch({\n method: user.id ? 'put' : 'post',\n url: user.id ? '/UpdateBenutzer' : '/InsertBenutzer',\n body: user,\n bodySerializer: (data) => JSON.stringify(this.mapper.mapToData(data)),\n responseParser: (r) => (r),\n })\n .then((data) => {\n if (user.id) {\n return user;\n }\n const parsedResponse = parseJSON(data);\n if (!parsedResponse) {\n throw new Error(`Invalid user response from server: ${parseJSON.message}`);\n }\n\n return this.mapper.mapToModel(parsedResponse);\n });\n }\n\n savePassword(user: User): Promise {\n return JSONFetch({\n method: 'put',\n url: '/UpdateBenutzer',\n body: user,\n bodySerializer: (data) => JSON.stringify(this.mapper.mapToData(data)),\n })\n .then(() => {});\n }\n\n changePassword(code: string, newPassword: string): Promise {\n return JSONFetch({\n method: 'put',\n url: `/ChangePassword?guid=${code}&pwd=${newPassword}`,\n bodySerializer: () => '',\n }).then(() => {});\n }\n}\n","import {\n ArithmeticExpression,\n Error,\n} from './YearlyDataValidation';\n\n/**\n * Filter error messages from fields\n */\nexport function getErrorsForField(field: string, errors: Array): Array {\n return errors.filter((error) => (\n error.affectedFields.includes(field)\n ));\n}\n\n/**\n * Filter error messages for a group\n */\nexport function getErrorsForGroup(group: string, errors: Array): Array {\n return errors.filter((error) => (\n error.affectedFields.findIndex((field) => (field.startsWith(`${group}.`))) !== -1\n ));\n}\n\n/**\n * Filter an array for unique values\n */\nfunction unique(arrayWithDuplicates: Array): Array {\n return arrayWithDuplicates.filter((n, i) => arrayWithDuplicates.indexOf(n) === i);\n};\n\n/**\n * Helper type for resolved expression type strings\n */\ntype ExpressionTypeString = `${string}.${string}` | `compare.${string}.${string}`;\n\n/**\n * Get all field identifiers from an artihmetic expression\n */\nexport default function getFieldsFromExpression(expression: ArithmeticExpression): Array {\n // Mathematical number, no field\n if (typeof expression === 'number' || expression === null) {\n return [];\n }\n\n // Identifier\n if (typeof expression === 'string') {\n return [expression];\n }\n\n // Get all fields from left hand and right hand side\n return unique([\n ...getFieldsFromExpression(expression[0]),\n ...getFieldsFromExpression(expression[2]),\n ]);\n}\n\n/**\n * Get all field identifiers from an artihmetic expression\n */\nexport function getFieldsFromExpressionResolved(\n expression: ArithmeticExpression,\n intermediates: Record,\n): Array {\n const baseFields = getFieldsFromExpression(expression);\n const remainingBaseFields = baseFields.filter((field) => !field.startsWith('intermediates.'));\n const intermediateFields = baseFields.filter((field) => field.startsWith('intermediates.'));\n\n if (intermediateFields.length === 0) {\n return baseFields;\n }\n\n // Resolve the intermediates\n const intermediatesResolved = intermediateFields.reduce>((memo, field) => {\n const intermediateType = field.replace('intermediates.', '');\n return [\n ...memo,\n ...getFieldsFromExpressionResolved(\n intermediates[intermediateType],\n intermediates,\n ),\n ];\n }, []);\n\n return unique([\n ...remainingBaseFields,\n ...intermediatesResolved,\n ]);\n}\n","import { YearlyData } from './YearlyData';\nimport getFieldsFromExpression from './ValidationHelpers';\nimport { getIn } from 'formik';\n\n/**\n * Interface for validation errors\n */\nexport interface Error {\n message: string,\n affectedFields: Array,\n};\n\n/**\n * Interface for validation errors\n */\nexport interface ErrorMessageOnly {\n message: string,\n};\n\n/**\n * Intermediate definitions to specify named calculations as intermediate values\n */\nexport interface IntermediateDefintions extends Readonly> {};\n\n/**\n * Validation data interface\n */\nexport interface YearlyValidationData\n extends YearlyData {\n // Intermediates to calculate\n intermediates: Record,\n\n /* The data to compare with */\n compare?: YearlyData & { intermediates: IntermediateDataCalculations },\n};\n\n/**\n * Definitions of arithmetic operations and comparisons\n */\nexport type ArithmeticOperator = '+' | '-' | '/' | '*';\nexport type ComparationOperator = '<' | '<=' | '>' | '>=' | '=' | '!';\n\n/**\n * Arithmetic expression type, any expression that we can arithmetically evaluate\n */\nexport type ArithmeticExpression =\n `${string}.${string}` |\n `compare.${string}.${string}` |\n number |\n [\n ArithmeticExpression,\n ArithmeticOperator,\n ArithmeticExpression,\n ];\n\n/**\n * A rule parameter is a definition of bounds, that will be used in validations\n */\nexport type RuleParamater = {\n /**\n * Normal bounds to trigger a warning\n */\n bounds: { low: number, high: number },\n /**\n * A critical error to trigger critical\n */\n boundsCritical?: { low: number, high: number },\n};\n\n/**\n * These are available rules as array\n */\nexport const ruleParameters = [\n 'legalSocialExpense',\n 'salesRelationLastYear',\n 'privateSalesRelationLastYear',\n 'privateSalesRelationOfficin',\n 'insuranceSalesRelationOfficin',\n 'insuranceSalesRelationLastYear',\n 'workingAreasRelationLastYear',\n 'officeAreasRelationLastYear',\n 'salesBuyingSyndicate',\n 'rentalExpense',\n 'tenureExpense',\n 'materialExpenseRelationLastYear',\n 'materialExpenseRelationSales',\n 'staffExpenseRelationSales',\n 'staffExpenseRelationLastYear',\n 'expensesRelationSales',\n 'profitRelationSales',\n 'profitRelationLastYear',\n 'profit',\n 'tenureExpenseRelationSales',\n 'tenureExpenseWithoutTenure',\n 'rentalExpenseOwnership',\n 'stockRelationLastYear',\n 'balanceEquality',\n 'customerCountRelationLastYear',\n 'prescriptionCountRelationLastYear',\n 'privatePackageSalesRelationLastYear',\n 'insurancePackageSalesRelationLastYear',\n 'quotaConcessionaire',\n 'familiaryTotalQuota',\n 'apirantTotalQuota',\n 'staffExpenseRelationProfit',\n 'salaryDirector',\n 'salaryPharmacist',\n 'salaryAspirant',\n 'salaryMerchant',\n 'salaryTrainee',\n 'salaryEmployeeSkilled',\n 'salaryEmployeeUnskilled',\n 'salaryCleaner',\n 'salaryOtherEmployee',\n] as const;\n\n/**\n * Rule parameter definitions type\n */\nexport type RuleParamaters = Record;\n\n/**\n * Types of validations we can perform. Currently: within bounds or arithmetic comparison\n */\nexport type ValidationMatch = {\n type: 'bounds',\n bounds: { low: number, high: number },\n boundsCritical?: { low: number, high: number },\n} | {\n type: 'compare',\n compare: ComparationOperator,\n value: ArithmeticExpression,\n};\n\n/**\n * Data evaluator.\n */\nexport class DataEvaluator {\n /**\n * Data given\n */\n data: YearlyValidationData;\n\n constructor(data: YearlyData, compareData: YearlyData | undefined, intermediates: Intermediates) {\n this.data = {\n ...data,\n // We implicitly ignore empty object here, it gets correctly populated in calcu\n // @ts-ignore\n intermediates: {},\n };\n\n this.calculateIntermediates(intermediates);\n\n // Last year calculations are done with separate instance of self\n if (compareData) {\n const compare = new DataEvaluator(compareData, undefined, intermediates);\n // @ts-ignore\n this.data.compare = compare.data;\n }\n }\n\n /**\n * Calculation of intermediate values\n */\n calculateIntermediates(definitions: Intermediates) {\n // Calculate and store every intermediate\n const definedIntermediates = Object.keys(definitions);\n definedIntermediates.forEach((key) => {\n // @ts-ignore\n this.data.intermediates[key] = this.result(definitions[key]);\n });\n }\n\n /**\n * Just get a raw value\n */\n raw(key: string): any {\n return getIn(this.data, key);\n }\n\n /**\n * Get the result for an arithmetic expression, undefined if not possible because not all\n * required values are given\n */\n result(calculation: ArithmeticExpression): number | undefined {\n // Simple number evaluation\n if (typeof calculation === 'number' || calculation === null) {\n return calculation;\n }\n\n // String resolves to a value from the data\n if (typeof calculation === 'string') {\n const value = getIn(this.data, calculation);\n return value;\n }\n\n // Unpack the operation\n const [leftSide, operator, rightSide] = calculation;\n const leftResult = this.result(leftSide);\n const rightResult = this.result(rightSide);\n\n // A mathematical operation is possible when both expressions can be evaluated\n if (undefined !== leftResult && undefined !== rightResult) {\n if (operator === '+') {\n return leftResult + rightResult;\n }\n if (operator === '-') {\n return leftResult - rightResult;\n }\n if (operator === '/') {\n return leftResult / rightResult;\n }\n if (operator === '*') {\n return leftResult * rightResult;\n }\n }\n\n return undefined;\n }\n}\n\n/**\n * A validation rule validates data, based on an \"arithmetic expression\" (in array notation), and\n * matches it with certain criteria.\n */\nexport interface ValidationRule {\n // The underlying calculation\n calculation: ArithmeticExpression;\n\n // The match that is required\n match: ValidationMatch;\n\n // The error to be reported\n error: ErrorMessageOnly;\n\n // The result\n validatedResult?: number;\n\n // If this validation is internally as errorneous (critical error)\n validatedFlagged: boolean;\n\n // Id to identify this rule later\n id: string;\n\n /**\n * Validate from an evaluator\n */\n validate(evaluator: DataEvaluator): boolean;\n}\n\ntype CustomErrorType = { high: string, low: string } | ((result: number, match: ValidationMatch, evaluator: DataEvaluator) => string);\n\n/**\n * Common validation abstraction\n */\nexport abstract class Validation implements ValidationRule {\n abstract calculation: ArithmeticExpression;\n abstract match: ValidationMatch;\n abstract error: ErrorMessageOnly;\n customError?: CustomErrorType = undefined;\n dependency?: [string, any, ComparationOperator?] = undefined;\n validatedResult?: number;\n validatedFlagged: boolean = false;\n id: string = '';\n\n // Comparation\n compare(operator: ComparationOperator, a: number, b: number) {\n return (operator !== '=' || a === b)\n && (operator !== '<' || a < b)\n && (operator !== '<=' || a <= b)\n && (operator !== '>' || a > b)\n && (operator !== '>=' || a >= b)\n && (operator !== '!' || a !== b);\n }\n\n /**\n * Validation function evaluation expression and matches it\n */\n validate(evaluator: DataEvaluator): boolean {\n // Reset any prior values\n this.validatedFlagged = false;\n this.validatedResult = undefined;\n\n // Check if a dependency is given and check that dependency\n if (this.dependency) {\n const precheck = evaluator.raw(this.dependency[0]);\n if (\n undefined === precheck\n || (this.dependency.length === 2 && precheck !== this.dependency[1])\n // @ts-ignore\n || (this.dependency.length === 3 && !this.compare(this.dependency[2], precheck, this.dependency[1]))\n ) {\n return true;\n }\n }\n\n // Calculate the arithmetic result, if evaluation is not possible validation passes\n const calcResult = evaluator.result(this.calculation);\n this.validatedResult = calcResult;\n if (calcResult === undefined || isNaN(calcResult) || !isFinite(calcResult)) {\n // Ensure undefined also for NaN\n this.validatedResult = undefined;\n return true;\n }\n\n // Bounds\n if (this.match.type === 'bounds') {\n const { bounds, boundsCritical } = this.match;\n\n // Bounds invalid must save a flag that this rule is invalid\n if (boundsCritical) {\n if (!((undefined === boundsCritical.low || calcResult >= boundsCritical.low)\n && (undefined === boundsCritical.high || calcResult <= boundsCritical.high))\n ) {\n this.validatedFlagged = true;\n };\n }\n\n // Adjust saved error if error message is fluid\n if (this.customError) {\n if (typeof this.customError === 'function') {\n this.error.message = this.customError(calcResult, this.match, evaluator);\n } else if (undefined !== bounds.low && calcResult < bounds.low) {\n this.error.message = this.customError.low;\n } else if (undefined !== bounds.high && calcResult > bounds.low) {\n this.error.message = this.customError.high;\n }\n }\n\n return (undefined === bounds.low || calcResult >= bounds.low)\n && (undefined === bounds.high || calcResult <= bounds.high);\n }\n\n // We compare with a result, could be undefined which means pass, see above\n const { compare, value } = this.match;\n const matchResult = evaluator.result(value);\n if (matchResult === undefined) {\n return true;\n }\n\n // Get the result\n const validationResult = (compare !== '=' || calcResult === matchResult)\n && (compare !== '<' || calcResult < matchResult)\n && (compare !== '<=' || calcResult <= matchResult)\n && (compare !== '>' || calcResult > matchResult)\n && (compare !== '>=' || calcResult >= matchResult)\n && (compare !== '!' || calcResult !== matchResult);\n\n // Custom error\n if (!validationResult && typeof this.customError === 'function') {\n this.error.message = this.customError(calcResult, this.match, evaluator);\n }\n\n return validationResult;\n }\n}\n\n// @ts-ignore\nexport class UserValdiation extends Validation {\n constructor(\n calculation: ArithmeticExpression,\n match: ValidationMatch,\n errorMessage: string | CustomErrorType,\n dependency?: [string, any, ComparationOperator?],\n id?: string,\n ) {\n super();\n // @ts-ignore\n this.calculation = calculation;\n // @ts-ignore\n this.match = match;\n // @ts-ignore\n this.error = {\n message: typeof errorMessage === 'string' ? errorMessage : '',\n };\n\n // Bounds error message\n if (typeof errorMessage !== 'string') {\n this.customError = errorMessage;\n }\n\n this.dependency = dependency;\n this.id = id || '';\n }\n}\n\n/**\n * Validator class, constructs a validator with a given ruleset to validate yearly data entity.\n */\nclass Validator {\n // Storage for errors durint a validation\n errors: Array = [];\n\n // Calculated results in the same order as rules, in format: [result, critical, warning]\n results: Array<[number | undefined, boolean, boolean]> = [];\n\n // Array of rules to check\n rules: Array = [];\n\n // Intermediate definitions\n intermediates: Intermediates;\n\n // Intermediate definitions\n intermediateResults?: Record;\n\n constructor(intermediates: Intermediates) {\n this.intermediates = intermediates;\n }\n\n addRule(rule: ValidationRule) {\n this.rules.push(rule);\n }\n\n /**\n * Main validation function. Returns boolean for performance and simplicity.\n */\n validate(data: YearlyData, compareData?: YearlyData): boolean {\n const evaluator = new DataEvaluator(data, compareData, this.intermediates);\n\n // Clear errors\n this.errors = [];\n\n // Normal validations\n this.results = this.rules.map((rule) => {\n const passedValidation = rule.validate(evaluator);\n if (!passedValidation) {\n this.errors.push({\n ...rule.error,\n affectedFields: getFieldsFromExpression(rule.calculation),\n });\n }\n return [rule.validatedResult, rule.validatedFlagged, !passedValidation];\n });\n\n // Empty field warnings\n this.emptyFields(data.income, 'income').forEach((err) => this.errors.push(err));\n this.emptyFields(data.balance, 'balance').forEach((err) => this.errors.push(err));\n\n this.intermediateResults = evaluator.data.intermediates;\n\n return this.errors.length === 0;\n }\n\n /**\n * Add some errors for empty fields if the rest of the form has significant progress. This is to\n * increase awareness that all fields must be completed.\n */\n emptyFields(values: Record, keyPrefix: string): Array {\n const fieldValues = Object.entries(values);\n const progress = fieldValues.filter(([, v]) => (v !== undefined)).length / fieldValues.length;\n\n // No warnings prior to treshold\n if (progress < 0.75) { return []; }\n\n return fieldValues\n .filter(([, v]) => (v === undefined))\n .map(([key]) => ({\n message: 'Bitte eine „0“ eingeben, wenn der Saldo dieser Position null beträgt',\n affectedFields: [`${keyPrefix}.${key}`],\n }))\n }\n\n /**\n * True if any validation reports a critical error\n */\n hasCriticalErrors(): boolean {\n return this.results.some(([_, criticalFlagged]) => criticalFlagged);\n }\n\n /**\n * Get all the results\n */\n getResults(): Array<{ rule: string, result: [number | undefined, boolean, boolean] }> {\n // How to get name?\n return this.rules.map((rule, i) => ({\n rule: rule.id,\n result: this.results[i],\n }));\n }\n}\n\nexport default Validator;\n","import { JTDSchemaType } from 'ajv/dist/jtd';\n/**\n * File contains JSON Type Definitions for comparison group entity types.\n */\n\n/**\n * The typed entity from api\n */\nexport type IntermediateResultApiEntity = {\n CalcergKurzBez: string,\n CalcergApoID: number,\n CalcergWj: number,\n CalcergWert: number,\n};\n\n/**\n * Typed schema for the entity\n */\nconst schema: JTDSchemaType = {\n properties: {\n CalcergKurzBez: { type: 'string' },\n CalcergApoID: { type: 'int32' },\n CalcergWj: { type: 'int32' },\n CalcergWert: { type: 'int32' },\n },\n};\nexport default schema;\n\n/**\n * Export array form as well\n */\nexport const IntermediateResultArray: JTDSchemaType> = {\n elements: schema,\n};\n","import intermediates from '../Intermediates';\n\nconst intermediateMapping: Record = {\n assets_LJ: 'Calc_01',\n liabilities_LJ: 'Calc_03',\n operating_expenses_LJ: 'Calc_11',\n total_output_LJ: 'Calc_14',\n offizin_revenue_LJ: 'Calc_17',\n gross_yield_LJ: 'Calc_19',\n staff_cost_LJ: 'Calc_22',\n yearly_profit_LJ: 'Calc_05',\n yearly_profit_after_annuity_LJ: 'Calc_08',\n cf_LJ: 'Calc_25',\n};\n\nexport default intermediateMapping;\n","import IntermediateResultSchema, {\n IntermediateResultApiEntity,\n} from '../Schemas/Api/IntermediateResult';\n\nimport { AjvJTD as Ajv } from './Ajv';\nimport Mapping from './Mappings/Intermediates';\n\ntype IntermediateResult = Record;\n\nexport default class IntermediateResultMapper {\n // Serializer for a single entity\n serializer?: (data: Array) => string;\n\n pharmacyId: number;\n\n year: number;\n\n constructor(pharmacyId: number, year: number) {\n this.pharmacyId = pharmacyId;\n this.year = year;\n }\n\n /**\n * Get a serializer for an entity\n */\n getSerializer = () => {\n if (!this.serializer) {\n this.serializer = Ajv.compileSerializer({ elements: IntermediateResultSchema });\n }\n return this.serializer;\n }\n\n\n\n /**\n * Directly serialize a model to a json string represenation\n */\n serialize = (model: IntermediateResult) => {\n const data = (Object.keys(model).map((key) => {\n if (!Mapping[key]) {\n return null;\n }\n\n return {\n CalcergKurzBez: Mapping[key],\n CalcergApoID: this.pharmacyId,\n CalcergWj: this.year,\n CalcergWert: model[key], \n };\n }) as Array)\n .filter(({ CalcergWert }) => (CalcergWert !== undefined));\n\n return this.getSerializer()(data);\n }\n}\n","import { JTDSchemaType } from 'ajv/dist/jtd';\n/**\n * File contains JSON Type Definitions for comparison group entity types.\n */\n\n/**\n * The typed entity from api\n */\nexport type RuleParamatersApiEntity = {\n checksWj: number,\n checksGuV_01: string,\n checksGuV_02: string,\n checksGuV_03: string,\n checksGuV_04: string,\n checksGuV_05: string,\n checksGuV_06: string,\n checksGuV_07: string,\n checksGuV_08: string,\n checksGuV_09: string,\n checksGuV_10: string,\n checksGuV_11: string,\n checksGuV_12: string,\n checksGuV_13: string,\n checksGuV_14: string,\n checksGuV_15: string,\n checksGuV_16: string,\n checksGuV_17: string,\n checksGuV_18: string,\n checksGuV_19: string,\n checksGuV_20: string,\n checksGuV_21: string,\n checksGuV_22: string,\n checksGuV_23: string,\n checksBilanz_01: string,\n checksBilanz_02: string,\n checksStruktur_01: string,\n checksStruktur_02: string,\n checksStruktur_03: string,\n checksStruktur_04: string,\n checksStruktur_05: string,\n checksStruktur_06: string,\n checksPersonal_01: string,\n checksPersonal_02: string,\n checksPersonal_03: string,\n checksPersonal_04: string,\n checksPersonal_05: string,\n checksPersonal_06: string,\n checksPersonal_07: string,\n checksPersonal_08: string,\n checksPersonal_09: string,\n checksPersonal_10: string,\n checksPersonal_11: string,\n checksPersonal_12: string,\n checksPersonal_13: string,\n};\n\n/**\n * Typed schema for the entity\n */\nconst schema: JTDSchemaType = {\n properties: {\n checksWj: { type: 'int32' },\n checksGuV_01: { type: 'string' },\n checksGuV_02: { type: 'string' },\n checksGuV_03: { type: 'string' },\n checksGuV_04: { type: 'string' },\n checksGuV_05: { type: 'string' },\n checksGuV_06: { type: 'string' },\n checksGuV_07: { type: 'string' },\n checksGuV_08: { type: 'string' },\n checksGuV_09: { type: 'string' },\n checksGuV_10: { type: 'string' },\n checksGuV_11: { type: 'string' },\n checksGuV_12: { type: 'string' },\n checksGuV_13: { type: 'string' },\n checksGuV_14: { type: 'string' },\n checksGuV_15: { type: 'string' },\n checksGuV_16: { type: 'string' },\n checksGuV_17: { type: 'string' },\n checksGuV_18: { type: 'string' },\n checksGuV_19: { type: 'string' },\n checksGuV_20: { type: 'string' },\n checksGuV_21: { type: 'string' },\n checksGuV_22: { type: 'string' },\n checksGuV_23: { type: 'string' },\n checksBilanz_01: { type: 'string' },\n checksBilanz_02: { type: 'string' },\n checksStruktur_01: { type: 'string' },\n checksStruktur_02: { type: 'string' },\n checksStruktur_03: { type: 'string' },\n checksStruktur_04: { type: 'string' },\n checksStruktur_05: { type: 'string' },\n checksStruktur_06: { type: 'string' },\n checksPersonal_01: { type: 'string' },\n checksPersonal_02: { type: 'string' },\n checksPersonal_03: { type: 'string' },\n checksPersonal_04: { type: 'string' },\n checksPersonal_05: { type: 'string' },\n checksPersonal_06: { type: 'string' },\n checksPersonal_07: { type: 'string' },\n checksPersonal_08: { type: 'string' },\n checksPersonal_09: { type: 'string' },\n checksPersonal_10: { type: 'string' },\n checksPersonal_11: { type: 'string' },\n checksPersonal_12: { type: 'string' },\n checksPersonal_13: { type: 'string' },\n },\n};\nexport default schema;\n\n/**\n * Export array form as well\n */\nexport const RuleParamatersArray: JTDSchemaType> = {\n elements: schema,\n};\n","import {\n RuleParamater,\n RuleParamaters,\n} from './YearlyDataValidation';\nimport RuleParamatersSchema, {\n RuleParamatersApiEntity,\n} from '../Schemas/Api/RuleParamaters';\n\nimport SchemaMapper from './SchemaMapper';\n\nconst FIELD_MAP = {\n checksGuV_01: 'legalSocialExpense',\n checksGuV_03: 'salesRelationLastYear',\n checksGuV_04: 'privateSalesRelationLastYear',\n checksGuV_05: 'privateSalesRelationOfficin',\n checksGuV_06: 'insuranceSalesRelationOfficin',\n checksGuV_07: 'insuranceSalesRelationLastYear',\n checksGuV_10: 'salesBuyingSyndicate',\n checksGuV_11: 'rentalExpense',\n checksGuV_12: 'tenureExpense',\n checksGuV_13: 'materialExpenseRelationLastYear',\n checksGuV_14: 'materialExpenseRelationSales',\n checksGuV_15: 'staffExpenseRelationSales',\n checksGuV_16: 'staffExpenseRelationLastYear',\n checksGuV_17: 'expensesRelationSales',\n checksGuV_18: 'profitRelationSales',\n checksGuV_19: 'profitRelationLastYear',\n checksGuV_20: 'profit',\n checksGuV_21: 'tenureExpenseRelationSales',\n checksGuV_22: 'tenureExpenseWithoutTenure',\n checksGuV_23: 'rentalExpenseOwnership',\n checksBilanz_01: 'stockRelationLastYear',\n checksBilanz_02: 'balanceEquality',\n checksStruktur_01: 'workingAreasRelationLastYear',\n checksStruktur_02: 'officeAreasRelationLastYear',\n checksStruktur_03: 'customerCountRelationLastYear',\n checksStruktur_04: 'prescriptionCountRelationLastYear',\n checksStruktur_05: 'privatePackageSalesRelationLastYear',\n checksStruktur_06: 'insurancePackageSalesRelationLastYear',\n checksPersonal_01: 'quotaConcessionaire',\n checksPersonal_02: 'familiaryTotalQuota',\n checksPersonal_03: 'apirantTotalQuota',\n checksPersonal_04: 'staffExpenseRelationProfit',\n checksPersonal_05: 'salaryDirector',\n checksPersonal_06: 'salaryPharmacist',\n checksPersonal_07: 'salaryAspirant',\n checksPersonal_08: 'salaryMerchant',\n checksPersonal_09: 'salaryTrainee',\n checksPersonal_10: 'salaryEmployeeSkilled',\n checksPersonal_11: 'salaryEmployeeUnskilled',\n checksPersonal_12: 'salaryCleaner',\n checksPersonal_13: 'salaryOtherEmployee',\n} as const;\n\n/**\n * Object from string\n */\nconst getRuleParamterFromString = (data: string): RuleParamater => {\n const partValues = { min: 0, max: 0, minw: 0, maxw: 0 };\n const parts = data.split('|');\n parts.forEach((part) => {\n const keyValue = part.split(':');\n // @ts-ignore\n if (Object.keys(partValues).includes(keyValue[0].trim()) && keyValue[1]) {\n // @ts-ignore\n partValues[keyValue[0].trim()] = parseFloat(keyValue[1].trim());\n }\n });\n\n return {\n bounds: { low: partValues.minw, high: partValues.maxw },\n boundsCritical: { low: partValues.min, high: partValues.max },\n };\n}\n\n/**\n * Object from string\n */\nconst serializeRuleParameter = (data: RuleParamater, year: number): string => {\n return [\n data.boundsCritical?.low ?? 0,\n data.boundsCritical?.high ?? 0,\n data.bounds.low,\n data.bounds.high,\n year,\n year,\n ].join(';');\n}\n\nexport default class RuleParamatersMapper\n extends SchemaMapper {\n schema = RuleParamatersSchema;\n year: number;\n\n constructor(year: number) {\n super();\n this.year = year;\n }\n\n /**\n * Map json data to a user model\n */\n mapToModel = (data: RuleParamatersApiEntity) => {\n return Object.fromEntries(\n Object.entries(FIELD_MAP).map(([\n apiParameter, ruleParameter,\n ]) => ([\n // @ts-ignore\n ruleParameter, getRuleParamterFromString(data[apiParameter])\n ]))\n ) as RuleParamaters;\n }\n\n /**\n * Map user model to json data\n */\n mapToData = (model: RuleParamaters) => {\n const mapped = Object.fromEntries(\n Object.entries(FIELD_MAP).map(([\n apiParameter, ruleParameter,\n ]) => ([\n apiParameter, serializeRuleParameter(model[ruleParameter], this.year)\n ]))\n );\n\n return {\n checksWj: this.year,\n checksGuV_02: '',\n checksGuV_08: '',\n checksGuV_09: '',\n ...mapped,\n } as RuleParamatersApiEntity;\n };\n}\n","import { JTDSchemaType } from 'ajv/dist/jtd';\n/**\n * File contains JSON Type Definitions for comparison group entity types.\n */\n\n/**\n * The typed entity from api\n */\nexport type ValidationResultApiEntity = {\n checkergKurzBez: string,\n checkergApoID: number,\n checkergWj: number,\n checkergWert: number,\n checkergStatus: 'O' | 'W' | 'K' | 'N',\n};\n\n\n/**\n * Typed schema for the entity\n */\nconst schema: JTDSchemaType = {\n properties: {\n checkergKurzBez: { type: 'string' },\n checkergApoID: { type: 'int32' },\n checkergWj: { type: 'int32' },\n checkergWert: { type: 'int32' },\n checkergStatus: { enum: ['O', 'W', 'K', 'N'] },\n },\n};\nexport default schema;\n\n/**\n * Export array form as well\n */\nexport const ValidationResultArray: JTDSchemaType> = {\n elements: schema,\n};\n","import ValidationResultSchema, {\n ValidationResultApiEntity,\n} from '../Schemas/Api/ValidationResult';\n\nimport { AjvJTD as Ajv } from './Ajv';\n\ntype ValidationResult = Array<{ rule: string, result: [number | undefined, boolean, boolean] }>;\n\nexport default class ValidationResultMapper {\n // Serializer for a single entity\n serializer?: (data: Array) => string;\n\n pharmacyId: number;\n\n year: number;\n\n constructor(pharmacyId: number, year: number) {\n this.pharmacyId = pharmacyId;\n this.year = year;\n }\n\n /**\n * Get a serializer for an entity\n */\n getSerializer = () => {\n if (!this.serializer) {\n this.serializer = Ajv.compileSerializer({ elements: ValidationResultSchema });\n }\n return this.serializer;\n }\n\n /**\n * Directly serialize a model to a json string represenation\n */\n serialize = (model: ValidationResult) => {\n const data = model.map(({\n rule,\n result: [result, flaggedCritical, flaggedWarn],\n }) => {\n return {\n checkergKurzBez: rule,\n checkergApoID: this.pharmacyId,\n checkergWj: this.year,\n checkergWert: result === undefined || result === null || isNaN(result) ? null : result,\n checkergStatus: flaggedCritical ? 'K' : (flaggedWarn ? 'W' : (result === undefined ? 'N' : 'O')),\n };\n }).filter(\n ({ checkergKurzBez }) => (checkergKurzBez !== ''),\n ) as Array;\n\n return this.getSerializer()(data);\n }\n}\n","import { JTDSchemaType } from 'ajv/dist/jtd';\n/**\n * File contains JSON Type Definitions for comparison group entity types.\n */\n\ntype BooleanApiField = 'J' | 'N';\n\n/**\n * The typed entity from api\n */\nexport type YearlyDataApiEntity = {\n kpiApoID: number,\n kpiWj: number,\n kpiKzRumpfjahr: BooleanApiField,\n kpiKzFortschritt: 'E' | 'H' | 'V',\n kpiKzStatus: 'O' | 'W' | 'K',\n kpiA2: string | null,\n kpiA3: string | null,\n kpiA50: BooleanApiField | null,\n kpiA51: BooleanApiField | null,\n kpiA4: BooleanApiField | null,\n kpiA5: string | null,\n kpiA19: BooleanApiField | null,\n kpiA9: string | null,\n kpiA13: number | null,\n kpiA14: number | null,\n kpiA15: number | null,\n kpiA16: number | null,\n kpiA17: number | null,\n kpiA18: number | null,\n kpiA52: number | null,\n kpiA53: number | null,\n kpiA54: number | null,\n kpiA55: number | null,\n kpiA56: number | null,\n kpiA57: number | null,\n kpiA58: number | null,\n kpiA59: number | null,\n kpiA60: number | null,\n kpiA61: number | null,\n kpiA62: number | null,\n kpiA63: number | null,\n kpiA64: number | null,\n kpiA65: number | null,\n kpiB1: number | null,\n kpiB2: number | null,\n kpiB3: number | null,\n kpiB4: number | null,\n kpiB5: number | null,\n kpiB6: number | null,\n kpiB7: number | null,\n kpiB8: number | null,\n kpiB9: number | null,\n kpiB10: number | null,\n kpiB11: number | null,\n kpiB12: number | null,\n kpiB13: number | null,\n kpiE1: number | null,\n kpiE2: number | null,\n kpiE3: number | null,\n kpiE4: number | null,\n kpiE50: number | null,\n kpiE53: number | null,\n kpiE5: number | null,\n kpiE6: number | null,\n kpiE7: number | null,\n kpiE8: number | null,\n kpiE9: number | null,\n kpiE10: number | null,\n kpiE11: number | null,\n kpiE13: number | null,\n kpiE14: number | null,\n kpiE15: number | null,\n kpiE16: number | null,\n kpiE17: number | null,\n kpiE18: number | null,\n kpiE19: number | null,\n kpiE20: number | null,\n kpiE21: number | null,\n kpiE22: number | null,\n kpiE23: number | null,\n kpiE51: number | null,\n kpiE25: number | null,\n kpiE26: number | null,\n kpiE27: number | null,\n kpiE28: number | null,\n kpiE29: number | null,\n kpiE52: number | null,\n};\n\n/**\n * Typed schema for the entity\n */\nconst schema: JTDSchemaType = {\n properties: {\n kpiApoID: { type: 'int32' },\n kpiWj: { type: 'int32' },\n kpiKzRumpfjahr: { enum: ['J', 'N'] },\n kpiKzFortschritt: { enum: ['E', 'H', 'V'] },\n kpiKzStatus: { enum: ['O', 'W', 'K'] },\n kpiA2: { type: 'string', nullable: true },\n kpiA3: { type: 'string', nullable: true },\n kpiA50: { enum: ['J', 'N'], nullable: true },\n kpiA51: { enum: ['J', 'N'], nullable: true },\n kpiA4: { enum: ['J', 'N'], nullable: true },\n kpiA5: { type: 'string', nullable: true },\n kpiA19: { enum: ['J', 'N'], nullable: true },\n kpiA9: { type: 'string', nullable: true },\n kpiA13: { type: 'int32', nullable: true },\n kpiA14: { type: 'int32', nullable: true },\n kpiA15: { type: 'int32', nullable: true },\n kpiA16: { type: 'int32', nullable: true },\n kpiA17: { type: 'int32', nullable: true },\n kpiA18: { type: 'int32', nullable: true },\n kpiA52: { type: 'int32', nullable: true },\n kpiA53: { type: 'int32', nullable: true },\n kpiA54: { type: 'int32', nullable: true },\n kpiA55: { type: 'int32', nullable: true },\n kpiA56: { type: 'int32', nullable: true },\n kpiA57: { type: 'int32', nullable: true },\n kpiA58: { type: 'int32', nullable: true },\n kpiA59: { type: 'int32', nullable: true },\n kpiA60: { type: 'int32', nullable: true },\n kpiA61: { type: 'int32', nullable: true },\n kpiA62: { type: 'int32', nullable: true },\n kpiA63: { type: 'int32', nullable: true },\n kpiA64: { type: 'int32', nullable: true },\n kpiA65: { type: 'int32', nullable: true },\n kpiB1: { type: 'int32', nullable: true },\n kpiB2: { type: 'int32', nullable: true },\n kpiB3: { type: 'int32', nullable: true },\n kpiB4: { type: 'int32', nullable: true },\n kpiB5: { type: 'int32', nullable: true },\n kpiB6: { type: 'int32', nullable: true },\n kpiB7: { type: 'int32', nullable: true },\n kpiB8: { type: 'int32', nullable: true },\n kpiB9: { type: 'int32', nullable: true },\n kpiB10: { type: 'int32', nullable: true },\n kpiB11: { type: 'int32', nullable: true },\n kpiB12: { type: 'int32', nullable: true },\n kpiB13: { type: 'int32', nullable: true },\n kpiE1: { type: 'int32', nullable: true },\n kpiE2: { type: 'int32', nullable: true },\n kpiE3: { type: 'int32', nullable: true },\n kpiE4: { type: 'int32', nullable: true },\n kpiE50: { type: 'int32', nullable: true },\n kpiE5: { type: 'int32', nullable: true },\n kpiE6: { type: 'int32', nullable: true },\n kpiE7: { type: 'int32', nullable: true },\n kpiE8: { type: 'int32', nullable: true },\n kpiE9: { type: 'int32', nullable: true },\n kpiE10: { type: 'int32', nullable: true },\n kpiE11: { type: 'int32', nullable: true },\n kpiE13: { type: 'int32', nullable: true },\n kpiE14: { type: 'int32', nullable: true },\n kpiE15: { type: 'int32', nullable: true },\n kpiE16: { type: 'int32', nullable: true },\n kpiE17: { type: 'int32', nullable: true },\n kpiE18: { type: 'int32', nullable: true },\n kpiE19: { type: 'int32', nullable: true },\n kpiE20: { type: 'int32', nullable: true },\n kpiE21: { type: 'int32', nullable: true },\n kpiE22: { type: 'int32', nullable: true },\n kpiE23: { type: 'int32', nullable: true },\n kpiE51: { type: 'int32', nullable: true },\n kpiE25: { type: 'int32', nullable: true },\n kpiE26: { type: 'int32', nullable: true },\n kpiE27: { type: 'int32', nullable: true },\n kpiE28: { type: 'int32', nullable: true },\n kpiE29: { type: 'int32', nullable: true },\n kpiE52: { type: 'int32', nullable: true },\n kpiE53: { type: 'int32', nullable: true },\n },\n};\nexport default schema;\n\n/**\n * Export array form as well\n */\nexport const YearlyDataArray: JTDSchemaType> = {\n elements: schema,\n};\n","import {\n PharmacyLeaderOccupation,\n PharmacyNightDutiesPerYear,\n YearlyData,\n} from './YearlyData';\nimport YearlyDataSchema, {\n YearlyDataApiEntity,\n} from '../Schemas/Api/YearlyData';\nimport {\n booleanToYNNullable,\n hasNullValue,\n nullable,\n nullifined,\n toApiDate,\n} from './Helper';\n\nimport SchemaMapper from './SchemaMapper';\n\n// Set keys, needed for typed search when accessing values\nconst occupationKeys = Object.keys(PharmacyLeaderOccupation);\nconst nightDutyKeys = Object.keys(PharmacyNightDutiesPerYear);\n\nconst validationResultMark = {\n none: 'O',\n warn: 'W',\n critical: 'K',\n} as const;\n\nexport default class YearlyDataMapper\n extends SchemaMapper {\n schema = YearlyDataSchema;\n\n /**\n * Map json data to a user model\n */\n mapToModel = (data: YearlyDataApiEntity) => {\n return {\n general: {\n A2_LJ: data.kpiA2 ? new Date(Date.parse(data.kpiA2)) : undefined,\n A3_LJ: data.kpiA3 ? new Date(Date.parse(data.kpiA3)) : undefined,\n A4_LJ: data.kpiA4 === 'J',\n A5_LJ: occupationKeys.find((key) => (PharmacyLeaderOccupation[key] === data.kpiA5)),\n A9_LJ: nightDutyKeys.find((key) => (PharmacyNightDutiesPerYear[key] === data.kpiA9)),\n A6_LJ: data.kpiA50 === 'J',\n A7_LJ: data.kpiA51 === 'J',\n A19_LJ: data.kpiA19 === 'J',\n A13_LJ: nullifined(data.kpiA13),\n A14_LJ: nullifined(data.kpiA14),\n A15_LJ: nullifined(data.kpiA15),\n A16_LJ: nullifined(data.kpiA16),\n A17_LJ: nullifined(data.kpiA17),\n A18_LJ: nullifined(data.kpiA18),\n },\n income: {\n E1_LJ: nullifined(data.kpiE1),\n E2_LJ: nullifined(data.kpiE2),\n E3_LJ: nullifined(data.kpiE3),\n E4_LJ: nullifined(data.kpiE4),\n E5_LJ: nullifined(data.kpiE5),\n E6_LJ: nullifined(data.kpiE6),\n E7_LJ: nullifined(data.kpiE7),\n E8_LJ: nullifined(data.kpiE8),\n E9_LJ: nullifined(data.kpiE9),\n E10_LJ: nullifined(data.kpiE10),\n E11_LJ: nullifined(data.kpiE11),\n E13_LJ: nullifined(data.kpiE13),\n E14_LJ: nullifined(data.kpiE14),\n E15_LJ: nullifined(data.kpiE15),\n E16_LJ: nullifined(data.kpiE16),\n E17_LJ: nullifined(data.kpiE17),\n E18_LJ: nullifined(data.kpiE18),\n E19_LJ: nullifined(data.kpiE19),\n E20_LJ: nullifined(data.kpiE20),\n E21_LJ: nullifined(data.kpiE21),\n E22_LJ: nullifined(data.kpiE22),\n E23_LJ: nullifined(data.kpiE23),\n E24_LJ: nullifined(data.kpiE51),\n E25_LJ: nullifined(data.kpiE25),\n E26_LJ: nullifined(data.kpiE26),\n E27_LJ: nullifined(data.kpiE27),\n E28_LJ: nullifined(data.kpiE28),\n E29_LJ: nullifined(data.kpiE29),\n E30_LJ: nullifined(data.kpiE52),\n E50_LJ: nullifined(data.kpiE50),\n E99_LJ: nullifined(data.kpiE53),\n },\n balance: {\n B1_LJ: nullifined(data.kpiB1),\n B2_LJ: nullifined(data.kpiB2),\n B3_LJ: nullifined(data.kpiB3),\n B4_LJ: nullifined(data.kpiB4),\n B5_LJ: nullifined(data.kpiB5),\n B6_LJ: nullifined(data.kpiB6),\n B7_LJ: nullifined(data.kpiB7),\n B8_LJ: nullifined(data.kpiB8),\n B9_LJ: nullifined(data.kpiB9),\n B10_LJ: nullifined(data.kpiB10),\n B11_LJ: nullifined(data.kpiB11),\n B12_LJ: nullifined(data.kpiB12),\n },\n staff: { rows: [] },\n };\n }\n\n /**\n * Map user model to json data\n */\n mapToData = (model: YearlyData) => {\n const data: Omit = {\n kpiApoID: model.pharmacy?.id || 0,\n kpiWj: model.year || 0,\n kpiKzRumpfjahr: 'N' as const,\n kpiKzStatus: validationResultMark[model.validationResult || 'none'],\n kpiA2: toApiDate(model.general.A2_LJ),\n kpiA3: toApiDate(model.general.A3_LJ),\n kpiA50: booleanToYNNullable(model.general.A6_LJ),\n kpiA51: booleanToYNNullable(model.general.A7_LJ),\n kpiA4: booleanToYNNullable(model.general.A4_LJ),\n kpiA5: model.general.A5_LJ ? PharmacyLeaderOccupation[model.general.A5_LJ] : null,\n kpiA19: booleanToYNNullable(model.general.A19_LJ),\n kpiA9: model.general.A9_LJ ? PharmacyNightDutiesPerYear[model.general.A9_LJ] : null,\n kpiA13: nullable(model.general.A13_LJ),\n kpiA14: nullable(model.general.A14_LJ),\n kpiA15: nullable(model.general.A15_LJ),\n kpiA16: nullable(model.general.A16_LJ),\n kpiA17: nullable(model.general.A17_LJ),\n kpiA18: nullable(model.general.A18_LJ),\n kpiA52: model.staff.concessionaire || null,\n kpiA53: model.staff.familyPharmacist || null,\n kpiA54: model.staff.pharmacist || null,\n kpiA55: model.staff.familyPharmacist || null,\n kpiA56: model.staff.aspirant || null,\n kpiA57: model.staff.merchant || null,\n kpiA58: model.staff.trainee || null,\n kpiA59: model.staff.employeeSkilled || null,\n kpiA60: model.staff.employeeUnskilled || null,\n kpiA61: model.staff.cleaner || null,\n kpiA62: model.staff.otherEmployee || null,\n kpiA63: model.staff.ownerPharmacist || null,\n kpiA64: model.staff.ownerNonPharmacist || null,\n kpiA65: model.staff.familyNonPharmacist || null,\n kpiB1: nullable(model.balance.B1_LJ),\n kpiB2: nullable(model.balance.B2_LJ),\n kpiB3: nullable(model.balance.B3_LJ),\n kpiB4: nullable(model.balance.B4_LJ),\n kpiB5: nullable(model.balance.B5_LJ),\n kpiB6: nullable(model.balance.B6_LJ),\n kpiB7: nullable(model.balance.B7_LJ),\n kpiB8: nullable(model.balance.B8_LJ),\n kpiB9: nullable(model.balance.B9_LJ),\n kpiB10: nullable(model.balance.B10_LJ),\n kpiB11: nullable(model.balance.B11_LJ),\n kpiB12: nullable(model.balance.B12_LJ),\n kpiB13: null,\n kpiE1: nullable(model.income.E1_LJ),\n kpiE2: nullable(model.income.E2_LJ),\n kpiE3: nullable(model.income.E3_LJ),\n kpiE4: nullable(model.income.E4_LJ),\n kpiE5: nullable(model.income.E5_LJ),\n kpiE6: nullable(model.income.E6_LJ),\n kpiE7: nullable(model.income.E7_LJ),\n kpiE8: nullable(model.income.E8_LJ),\n kpiE9: nullable(model.income.E9_LJ),\n kpiE10: nullable(model.income.E10_LJ),\n kpiE11: nullable(model.income.E11_LJ),\n kpiE13: nullable(model.income.E13_LJ),\n kpiE14: nullable(model.income.E14_LJ),\n kpiE15: nullable(model.income.E15_LJ),\n kpiE16: nullable(model.income.E16_LJ),\n kpiE17: nullable(model.income.E17_LJ),\n kpiE18: nullable(model.income.E18_LJ),\n kpiE19: nullable(model.income.E19_LJ),\n kpiE20: nullable(model.income.E20_LJ),\n kpiE21: nullable(model.income.E21_LJ),\n kpiE22: nullable(model.income.E22_LJ),\n kpiE23: nullable(model.income.E23_LJ),\n kpiE51: nullable(model.income.E24_LJ),\n kpiE25: nullable(model.income.E25_LJ),\n kpiE26: nullable(model.income.E26_LJ),\n kpiE27: nullable(model.income.E27_LJ),\n kpiE28: nullable(model.income.E28_LJ),\n kpiE29: nullable(model.income.E29_LJ),\n kpiE52: nullable(model.income.E30_LJ),\n kpiE50: nullable(model.income.E50_LJ),\n kpiE53: nullable(model.income.E99_LJ),\n };\n\n return {\n kpiKzFortschritt: (hasNullValue(data) ? 'H' as const : 'V' as const),\n ...data,\n };\n };\n}\n","import { JTDSchemaType } from 'ajv/dist/jtd';\n/**\n * File contains JSON Type Definitions for comparison group entity types.\n */\n\n/**\n * The typed entity from api\n */\nexport type YearlyPharmacyApiEntity = {\n ApoABVJahrKurzBez: string,\n ApoABVJahrApoID: number,\n ApoABVJahrWj: number,\n ApoABVJahrBegID: number,\n};\n\n/**\n * Typed schema for the entity\n */\nconst schema: JTDSchemaType = {\n properties: {\n ApoABVJahrKurzBez: { type: 'string' },\n ApoABVJahrApoID: { type: 'int32' },\n ApoABVJahrWj: { type: 'int32' },\n ApoABVJahrBegID: { type: 'int32' },\n },\n};\nexport default schema;\n\n/**\n * Export array form as well\n */\nexport const YearlyPharmacyArray: JTDSchemaType> = {\n elements: schema,\n};\n","import YearlyPharmacySchema, {\n YearlyPharmacyApiEntity,\n} from '../Schemas/Api/YearlyPharmacy';\n\nimport { AjvJTD as Ajv } from './Ajv';\nimport { JTDParser } from 'ajv/dist/jtd';\nimport Pharmacy from './Pharmacy';\nimport RawPharmacy from './RawPharmacy';\n\nconst dataMap: Record = {\n S1: 'state',\n S2: 'pharmacyCount',\n S3: 'population',\n S4: 'openingHours',\n S5: 'location',\n} as const;\n\nexport default class YearlyPharmacyMapper {\n // Serializer for a single entity\n serializer?: (data: Array) => string;\n parser?: JTDParser>;\n\n pharmacyId: number;\n pharmacy: RawPharmacy;\n\n year: number;\n\n constructor(pharmacy: RawPharmacy, year: number) {\n this.pharmacy = pharmacy;\n this.pharmacyId = pharmacy.id!;\n this.year = year;\n }\n\n /**\n * Get a serializer for an entity\n */\n getSerializer = () => {\n if (!this.serializer) {\n this.serializer = Ajv.compileSerializer({ elements: YearlyPharmacySchema });\n }\n return this.serializer;\n }\n\n /**\n * Get a serializer for an entity\n */\n getParser = () => {\n if (!this.parser) {\n this.parser = Ajv.compileParser({ elements: YearlyPharmacySchema });\n }\n return this.parser;\n }\n\n /**\n * Directly serialize a model to a json string represenation\n */\n serialize = (model: Pharmacy) => {\n const entries = [\n ['S2', model.pharmacyCount?.begID],\n ['S3', model.population?.begID],\n ['S4', model.openingHours?.begID],\n ...model.location.map(({ begID }) => (['S5', begID]))\n ];\n\n const data = entries.map(([key, value]) => ({\n ApoABVJahrKurzBez: key,\n ApoABVJahrApoID: this.pharmacyId,\n ApoABVJahrWj: this.year,\n ApoABVJahrBegID: value,\n })).filter(({ApoABVJahrBegID}) => (ApoABVJahrBegID !== undefined)) as Array;\n\n return this.getSerializer()(data);\n }\n\n /**\n * Directly parse a string to the destination array of models\n */\n parseArray = (data: string) => {\n const parser = this.getParser();\n const parsed = parser(data);\n if (!parsed) {\n const detail = data.substring((parser.position || 0) - 10, (parser.position || 0) + 10);\n throw new Error(`Parsing failed, ${parser.message} at ${parser.position}: ${detail}`);\n }\n\n const pharmacy = new Pharmacy(\n this.pharmacy.number,\n this.pharmacy.title,\n this.pharmacy.foundingYear,\n null, null, null, null, { begID: this.pharmacy.state!, begBezeichnung: '' }, [],\n this.pharmacy.active,\n this.pharmacy.monthlySubscribed,\n this.pharmacy.transferGK,\n this.pharmacy.dateOfBalance ?\n new Date(Date.parse(this.pharmacy.dateOfBalance)) : null,\n this.pharmacyId,\n );\n pharmacy.location = parsed\n .filter(({ ApoABVJahrKurzBez }) => (ApoABVJahrKurzBez === 'S5'))\n .map(({ ApoABVJahrBegID }) => ({ begID: ApoABVJahrBegID, begBezeichnung: '' }));\n\n parsed\n .filter(({ ApoABVJahrKurzBez }) => (ApoABVJahrKurzBez !== 'S5'))\n .forEach(({ ApoABVJahrBegID, ApoABVJahrKurzBez }) => {\n // @ts-ignore\n pharmacy[dataMap[ApoABVJahrKurzBez]] = { begID: ApoABVJahrBegID, begBezeichnung: '' };\n });\n return pharmacy;\n }\n}\n","import { RuleParamater, UserValdiation } from '../YearlyDataValidation';\n\n/**\n * Checks for plausibleness in buying syndicate data\n */\nconst rule = (params: RuleParamater) => (\n new UserValdiation(\n 'staff.aspirant',\n { type: 'bounds', ...params },\n 'Es dürfen maximal 20/10tel Aspiranten gemeldet werden.',\n undefined,\n 'Personal_03',\n )\n);\n\nexport default rule;\n","import { RuleParamater, UserValdiation } from '../YearlyDataValidation';\n\nimport { formatNumber } from '../Helper'\n\n/**\n * Checks for equality in balance sheet on assets and liabilities\n */\nconst rule = (params: RuleParamater) => (\n new UserValdiation(\n ['intermediates.assets_LJ', '/', 'intermediates.liabilities_LJ'],\n { type: 'bounds', ...params },\n (result, match, evaluator) => {\n const value = evaluator.result(['intermediates.assets_LJ', '-', 'intermediates.liabilities_LJ']);\n return (\n `Aktiva und Passiva Ihrer Bilanz stimmen nicht überein. ${\n (value || 0) > 0\n ? 'Die Aktiva übersteigen die Passiva um'\n : 'Die Passiva übersteigen die Aktiva um'\n } ${formatNumber(Math.abs(value || 0))} EUR. Bitte prüfen Sie die Eingaben bei den Bilanzahlen.`\n );\n },\n undefined,\n 'Bilanz_02',\n )\n);\n\nexport default rule;\n","import { UserValdiation } from '../YearlyDataValidation';\n\n/**\n * Checks for difference in stock at start and end\n */\nconst rule = new UserValdiation(\n ['general.A7_LJ', '-', 'compare.general.A7_LJ'],\n { type: 'compare', compare: '=', value: 0 },\n 'Ihre Angabe zur Filialapotheke erscheint nicht konsistent zum Vorjahr.',\n undefined,\n 'Struktur_07',\n);\n\nexport default rule;\n","import { RuleParamater, UserValdiation } from '../YearlyDataValidation';\n\n/**\n * Checks for plausibleness in buying syndicate data\n */\nconst rule = (params: RuleParamater) => (\n new UserValdiation(\n ['intermediates.gross_yield_LJ', '/', 'intermediates.total_output_LJ'],\n { type: 'bounds', ...params },\n 'Aufgrund der Aufwandsstruktur erscheint eine Einkaufsgemeinschaft nicht plausibel. Bitte prüfen Sie Ihre Eingabe ob Sie als Träger einer Einkaufsgemeinschaft fungieren!',\n ['general.A6_LJ', true],\n 'GuV_10',\n )\n);\n\nexport default rule;\n","import { UserValdiation } from '../YearlyDataValidation';\n\n/**\n * Checks for difference in stock at start and end\n */\nconst rule = new UserValdiation(\n ['general.A6_LJ', '-', 'compare.general.A6_LJ'],\n { type: 'compare', compare: '=', value: 0 },\n 'Ihre Angabe zur Einkaufsgemeinschaft erscheint nicht konsistent zum Vorjahr.',\n undefined,\n 'GuV_25',\n);\n\nexport default rule;\n","import { RuleParamater, UserValdiation } from '../YearlyDataValidation';\n\n/**\n * Checks for plausibleness in buying syndicate data\n */\nconst rule = (params: RuleParamater) => (\n new UserValdiation(\n 'staff.concessionaire',\n { type: 'bounds', ...params },\n 'Die Arbeitsleistung als Konzessionär ist entweder zu hoch oder zu niedrig erfasst. Eingabe in 10tel. Wenn Sie zB. 44h/Woche arbeiten, dann erfassen Sie bitte 11/10tel.',\n undefined,\n 'Personal_01',\n )\n);\n\nexport default rule;\n","import { RuleParamater, UserValdiation } from '../YearlyDataValidation';\n\n/**\n * Checks for plausibleness in buying syndicate data\n */\nconst rule = (params: RuleParamater) => (\n new UserValdiation(\n ['general.A15_LJ', '/', 'compare.general.A15_LJ'],\n { type: 'bounds', ...params },\n 'Die Veränderung der Kundenzahl pro Jahr weicht stark vom Vorjahr ab. Bitte prüfen Sie Ihre Angaben!',\n undefined,\n 'Struktur_03',\n )\n);\n\nexport default rule;\n","import { RuleParamater, UserValdiation } from '../YearlyDataValidation';\n\n/**\n * Checks for plausibleness in buying syndicate data\n */\nconst rule = (params: RuleParamater) => (\n new UserValdiation(\n ['intermediates.operating_expenses_LJ', '/', 'intermediates.total_output_LJ'],\n { type: 'bounds', ...params },\n {\n high: 'Der Betriebsaufwand im Verhältnis zum Umsatz erscheint unplausibel niedrig. Bitte prüfen Sie nochmals Ihre Aufwendungen und Umsätze.',\n low: 'Der Betriebsaufwand im Verhältnis zum Umsatz erscheint unplausibel hoch. Bitte prüfen Sie nochmals Ihre Aufwendungen und Umsätze.',\n },\n undefined,\n 'GuV_17',\n )\n);\n\nexport default rule;\n","import { RuleParamater, UserValdiation } from '../YearlyDataValidation';\n\n/**\n * Checks for plausibleness in buying syndicate data\n */\nconst rule = (params: RuleParamater) => (\n new UserValdiation(\n ['staff.familyPharmacist', '+', 'staff.familyNonPharmacist'],\n { type: 'bounds', ...params },\n 'Die Eingabe der 10tel bezüglich familiärer Mittätigkeit erscheint unplausibel.',\n undefined,\n 'Personal_02',\n )\n);\n\nexport default rule;\n","import { RuleParamater, UserValdiation } from '../YearlyDataValidation';\n\n/**\n * Checks for plausibleness in buying syndicate data\n */\nconst rule = (params: RuleParamater) => (\n new UserValdiation(\n ['intermediates.gross_yield_LJ', '/', 'intermediates.total_output_LJ'],\n { type: 'bounds', ...params },\n {\n high: 'Der Bruttogewinn ist im Verhältnis zum Gesamtumsatz unplausibel hoch',\n low: 'Der Bruttogewinn ist im Verhältnis zum Gesamtumsatz unplausibel niedrig',\n },\n undefined,\n 'GuV_18',\n )\n);\n\nexport default rule;\n","import { RuleParamater, UserValdiation } from '../YearlyDataValidation';\n\n/**\n * Checks for plausibleness in buying syndicate data\n */\nconst rule = (params: RuleParamater) => (\n new UserValdiation(\n ['intermediates.gross_yield_LJ', '/', 'compare.intermediates.gross_yield_LJ'],\n { type: 'bounds', ...params },\n 'Die Bruttogewinnveränderung weicht deutlich vom Vorjahr ab.',\n undefined,\n 'GuV_19',\n )\n);\n\nexport default rule;\n","import { UserValdiation } from '../YearlyDataValidation';\n\n/**\n * Checks for equality in balance sheet on assets and liabilities\n */\nconst rule = new UserValdiation(\n ['income.E2_LJ', '-', 'income.E3_LJ'],\n { type: 'compare', value: 0, compare: '>' },\n 'Bitte prüfen Sie die Umsatzangaben im Krankenkassenbereich.',\n undefined,\n 'GuV_24',\n);\nexport default rule;\n","import { RuleParamater, UserValdiation } from '../YearlyDataValidation';\n\n/**\n * Checks for plausibleness in buying syndicate data\n */\nconst rule = (params: RuleParamater) => (\n new UserValdiation(\n ['general.A18_LJ', '/', 'compare.general.A18_LJ'],\n { type: 'bounds', ...params },\n 'Die Veränderung der abgesetzte Krankenkassenpackungen pro Jahr weicht stark vom Vorjahr ab. Bitte prüfen Sie Ihre Angaben!',\n undefined,\n 'Struktur_06',\n )\n);\n\nexport default rule;\n","import { RuleParamater, UserValdiation } from '../YearlyDataValidation';\n\n/**\n * Checks for difference in stock at start and end\n */\nconst rule = (params: RuleParamater) => (\n new UserValdiation(\n ['income.E2_LJ', '/', 'intermediates.offizin_revenue_LJ'],\n { type: 'bounds', ...params },\n 'Bitte prüfen Sie Ihre Privat und Krankenkassenumsätze, das Verhältnis erscheint unplausibel.',\n undefined,\n 'GuV_06',\n )\n);\n\nexport default rule;\n","import { RuleParamater, UserValdiation } from '../YearlyDataValidation';\n\n/**\n * Checks for difference in stock at start and end\n */\nconst rule = (params: RuleParamater) => (\n new UserValdiation(\n ['income.E2_LJ', '/', 'compare.income.E2_LJ'],\n { type: 'bounds', ...params },\n 'Ihre Angabe zum Krankenkassenumsatz erscheint nicht konsistent zum Vorjahr.',\n undefined,\n 'GuV_07',\n )\n);\n\nexport default rule;\n","import { RuleParamater, UserValdiation } from '../YearlyDataValidation';\n\n/**\n * Checks for difference in stock at start and end\n */\nconst rule = (params: RuleParamater) => (\n new UserValdiation(\n ['income.E11_LJ', '/', ['income.E7_LJ', '+', 'income.E8_LJ']],\n { type: 'bounds', ...params },\n 'Der gesetzliche Sozialaufwand bewegt sich je nach Personalstruktur im Rahmen von 25%-32% der Lohn- und Gehaltskosten. Bitte prüfen Sie die Eingaben im Personalaufwand.',\n undefined,\n 'GuV_01',\n )\n);\n\nexport default rule;\n","import { RuleParamater, UserValdiation } from '../YearlyDataValidation';\n\n/**\n * Checks for plausibleness in buying syndicate data\n */\nconst rule = (params: RuleParamater) => (\n new UserValdiation(\n ['income.E6_LJ', '/', 'intermediates.total_output_LJ'],\n { type: 'bounds', ...params },\n {\n low: 'Das Verhältnis Wareneinsatz zum Umsatzerlös erscheint unplausibel niedrig',\n high: 'Das Verhältnis Wareneinsatz zum Umsatzerlös erscheint unplausibel hoch',\n },\n undefined,\n 'GuV_14',\n )\n);\n\nexport default rule;\n","import { RuleParamater, UserValdiation } from '../YearlyDataValidation';\n\n/**\n * Checks for plausibleness in buying syndicate data\n */\nconst rule = (params: RuleParamater) => (\n new UserValdiation(\n ['income.E6_LJ', '/', 'compare.income.E6_LJ'],\n { type: 'bounds', ...params },\n 'Ihre Angabe zum Wareneinsatz erscheint nicht konsistent zum Vorjahr.',\n undefined,\n 'GuV_13',\n )\n);\n\nexport default rule;\n","import { RuleParamater, UserValdiation } from '../YearlyDataValidation';\n\n/**\n * Checks for plausibleness in buying syndicate data\n */\nconst rule = (params: RuleParamater) => (\n new UserValdiation(\n ['general.A14_LJ', '/', 'compare.general.A14_LJ'],\n { type: 'bounds', ...params },\n 'Die Veränderung der Offizinräumlichkeiten weicht stark vom Vorjahr ab. Bitte prüfen Sie Ihre Angaben!',\n undefined,\n 'Struktur_02',\n )\n);\n\nexport default rule;\n","import { RuleParamater, UserValdiation } from '../YearlyDataValidation';\n\n/**\n * Checks for plausibleness in buying syndicate data\n */\nconst rule = (params: RuleParamater) => (\n new UserValdiation(\n ['general.A16_LJ', '/', 'compare.general.A16_LJ'],\n { type: 'bounds', ...params },\n 'Die Veränderung der Rezeptzahl pro Jahr weicht stark vom Vorjahr ab. Bitte prüfen Sie Ihre Angaben!',\n undefined,\n 'Struktur_04',\n )\n);\n\nexport default rule;\n","import { RuleParamater, UserValdiation } from '../YearlyDataValidation';\n\n/**\n * Checks for plausibleness in buying syndicate data\n */\nconst rule = (params: RuleParamater) => (\n new UserValdiation(\n ['general.A17_LJ', '/', 'compare.general.A17_LJ'],\n { type: 'bounds', ...params },\n 'Die Veränderung der abgesetzte Privatpackungen pro Jahr weicht stark vom Vorjahr ab. Bitte prüfen Sie Ihre Angaben!',\n undefined,\n 'Struktur_05',\n )\n);\n\nexport default rule;\n","import { RuleParamater, UserValdiation } from '../YearlyDataValidation';\n\n/**\n * Checks for difference in stock at start and end\n */\nconst rule = (params: RuleParamater) => (\n new UserValdiation(\n ['income.E1_LJ', '/', 'compare.income.E1_LJ'],\n { type: 'bounds', ...params },\n 'Die Schwankung im Privatumsatz erscheint nicht konsistent zum Vorjahr.',\n undefined,\n 'GuV_04',\n )\n);\n\nexport default rule;\n","import { RuleParamater, UserValdiation } from '../YearlyDataValidation';\n\nimport { formatNumber } from '../Helper'\n\n/**\n * Checks for plausibleness in buying syndicate data\n */\nconst rule = (params: RuleParamater) => (\n new UserValdiation(\n ['income.E30_LJ', '/', 'intermediates.yearly_profit_LJ'],\n { type: 'bounds', ...params },\n (result, match, evaluator) => {\n const incomeInput = evaluator.raw('income.E30_LJ');\n const diff = evaluator.result(['intermediates.yearly_profit_LJ', '-', 'income.E30_LJ']) || 0;\n const profit = incomeInput + diff;\n const sign = diff < 0 ? '-' : '+';\n return `Der von Ihnen in diesem Feld manuell erfasste Jahresüberschuss weicht vom Jahresüberschuss iHv. ${formatNumber(profit)} EUR, der aufgrund Ihrer Erträge und Aufwendungen berechnet wurde, um ${sign} ${formatNumber(Math.abs(diff))} EUR ab.`;\n },\n undefined,\n 'GuV_20',\n )\n);\n\nexport default rule;\n","import { RuleParamater, UserValdiation } from '../YearlyDataValidation';\n\n/**\n * Checks for difference in stock at start and end\n */\nconst rule = (params: RuleParamater) => (\n new UserValdiation(\n ['income.E20_LJ', '/', 'intermediates.total_output_LJ'],\n { type: 'bounds', ...params },\n 'Wird Ihre Apotheke in einer Eigenimmobilie betrieben, wenn ja, dann prüfen Sie bitte den Mietaufwand.',\n ['general.A19_LJ', true],\n 'GuV_23',\n )\n);\n\nexport default rule;\n","import { UserValdiation } from '../YearlyDataValidation';\n\n/**\n * Checks for difference in stock at start and end\n */\nconst rule = new UserValdiation(\n ['general.A19_LJ', '-', 'compare.general.A19_LJ'],\n { type: 'compare', compare: '=', value: 0 },\n 'Ihre Angabe zur Eigenimmobilie erscheint nicht konsistent zum Vorjahr.',\n);\n\nexport default rule;\n","import { RuleParamater, UserValdiation } from '../YearlyDataValidation';\n\n/**\n * Checks for plausibleness in buying syndicate data\n */\nconst rule = (params: RuleParamater) => (\n new UserValdiation(\n ['general.A13_LJ', '/', 'compare.general.A13_LJ'],\n { type: 'bounds', ...params },\n 'Die Veränderung der Betriebsräumlichkeiten weicht stark vom Vorjahr ab. Bitte prüfen Sie Ihre Angaben!',\n undefined,\n 'Struktur_01',\n )\n);\n\nexport default rule;\n","import { UserValdiation } from '../YearlyDataValidation';\n\n/**\n * Checks for plausibleness in buying syndicate data\n */\nconst rule = new UserValdiation(\n ['staff.director', '+', ['staff.pharmacist', '+', 'staff.aspirant']],\n { type: 'compare', compare: '=', value: 0 },\n 'Sie haben einen Aufwand für pharmazeutische Fachkräfte in der GuV erfasst, aber keine Fachkräfte.',\n ['E7_LJ', 0, '>'],\n 'Personal_14',\n);\n\nexport default rule;\n","import { UserValdiation } from '../YearlyDataValidation';\n\n/**\n * Checks for plausibleness in buying syndicate data\n */\nconst rule = new UserValdiation(\n ['staff.director', '+', ['staff.pharmacist', '+', 'staff.aspirant']],\n { type: 'compare', compare: '>', value: 0 },\n 'Sie haben Fachpersonal erfasst, aber keinen Aufwendungen für pharmazeutische Fachkräfte in der GuV erfasst.',\n ['E7_LJ', 0, '='],\n 'Personal_15',\n);\n\nexport default rule;\n","import { RuleParamater, UserValdiation } from '../YearlyDataValidation';\n\n/**\n * Checks for plausibleness in buying syndicate data\n */\nconst rule = (params: RuleParamater) => (\n new UserValdiation(\n ['intermediates.staff_cost_LJ', '/', 'intermediates.total_output_LJ'],\n { type: 'bounds', ...params },\n {\n low: 'Das Verhältnis Personalaufwand zum Umsatzerlös erscheint unplausibel hoch',\n high: 'Das Verhältnis Personalaufwand zum Umsatzerlös erscheint unplausibel niedrig',\n },\n undefined,\n 'GuV_15',\n )\n);\n\nexport default rule;\n","import { RuleParamater, UserValdiation } from '../YearlyDataValidation';\n\n/**\n * Checks for plausibleness in buying syndicate data\n */\nconst rule = (params: RuleParamater) => (\n new UserValdiation(\n ['intermediates.staff_cost_LJ', '/', 'intermediates.gross_yield_LJ'],\n { type: 'bounds', ...params },\n {\n low: 'Der Personalaufwand erscheint im Verhältnis zum Bruttoertrag unplausibel hoch',\n high: 'Der Personalaufwand erscheint im Verhältnis zum Bruttoertrag unplausibel niedrig',\n },\n undefined,\n 'Personal_04',\n )\n);\n\nexport default rule;\n","import { RuleParamater, UserValdiation } from '../YearlyDataValidation';\n\n/**\n * Checks for plausibleness in buying syndicate data\n */\nconst rule = (params: RuleParamater) => (\n new UserValdiation(\n ['intermediates.staff_cost_LJ', '/', 'compare.intermediates.staff_cost_LJ'],\n { type: 'bounds', ...params },\n 'Ihre Angabe zum Personalaufwand erscheint nicht konsistent zum Vorjahr.',\n undefined,\n 'GuV_16',\n )\n);\n\nexport default rule;\n","import { RuleParamater, UserValdiation } from '../YearlyDataValidation';\n\ntype RequiredParams = {\n salaryMerchant: RuleParamater,\n salaryTrainee: RuleParamater,\n salaryEmployeeSkilled: RuleParamater,\n salaryEmployeeUnskilled: RuleParamater,\n salaryCleaner: RuleParamater,\n salaryOtherEmployee: RuleParamater,\n};\n\nconst messages = {\n high: 'Der ausgewiesene Hilfspersonalaufwand ist zu hoch bzw. der Personalstand zu niedrig. Bitte prüfen Sie die Angaben in der Personalstatistik sowie Ihren Personalaufwand in der GuV.',\n low: 'Der ausgewiesene Hilfspersonalaufwand ist zu niedrig bzw. der Personalstand zu hoch. Bitte prüfen Sie die Angaben in der Personalstatistik sowie Ihren Personalaufwand in der GuV.',\n};\n\n/**\n * Checks for plausibleness in buying syndicate data\n */\nconst rule = (params: RequiredParams, bound: 'low' | 'high') => (\n new UserValdiation(\n [\n [\n [\n [\n ['staff.merchant', '*', params.salaryMerchant.bounds[bound]],\n '+',\n ['staff.trainee', '*', params.salaryTrainee.bounds[bound]],\n ],\n '+',\n [\n ['staff.employeeSkilled', '*', params.salaryEmployeeSkilled.bounds[bound]],\n '+',\n ['staff.employeeUnskilled', '*', params.salaryEmployeeUnskilled.bounds[bound]],\n ],\n ],\n '+',\n [\n ['staff.cleaner', '*', params.salaryCleaner.bounds[bound]],\n '+',\n ['staff.otherEmployee', '*', params.salaryOtherEmployee.bounds[bound]],\n ],\n ],\n '/',\n 'income.E8_LJ'\n ],\n // Compare this relatively means first part is higher or lower than second part of divison\n { type: 'compare', compare: bound === 'low' ? '<=' : '>=', value: 1 },\n messages[bound],\n ['income.E8_LJ', 0, '>'],\n bound === 'low' ? 'Personal_20' : 'Personal_21',\n )\n);\n\nexport default rule;\n","import { RuleParamater, UserValdiation } from '../YearlyDataValidation';\n\ntype RequiredParams = {\n salaryDirector: RuleParamater,\n salaryPharmacist: RuleParamater,\n salaryAspirant: RuleParamater,\n};\n\nconst messages = {\n high: 'Der ausgewiesene Fachpersonalaufwand ist zu hoch bzw. der Personalstand zu niedrig. Bitte prüfen Sie die Angaben in der Personalstatistik sowie Ihren Personalaufwand in der GuV.',\n low: 'Der ausgewiesene Fachpersonalaufwand ist zu niedrig bzw. der Personalstand zu hoch. Bitte prüfen Sie die Angaben in der Personalstatistik sowie Ihren Personalaufwand in der GuV.',\n};\n\n/**\n * Checks for plausibleness in buying syndicate data\n */\nconst rule = (params: RequiredParams, bound: 'low' | 'high') => (\n new UserValdiation(\n [\n [['staff.director', '*', params.salaryDirector.bounds[bound]],\n '+', [['staff.pharmacist', '*', params.salaryPharmacist.bounds[bound]],\n '+', ['staff.aspirant', '*', params.salaryAspirant.bounds[bound]]\n ]],\n '/',\n 'income.E7_LJ'\n ],\n // Compare this relatively means first part is higher or lower than second part of divison\n { type: 'compare', compare: bound === 'low' ? '<=' : '>=', value: 1 },\n messages[bound],\n undefined,\n bound === 'low' ? 'Personal_18' : 'Personal_19',\n )\n);\n\nexport default rule;\n","import { RuleParamater, UserValdiation } from '../YearlyDataValidation';\n\n/**\n * Checks for difference in stock at start and end\n */\nconst rule = (params: RuleParamater) => (\n new UserValdiation(\n ['balance.B3_LJ', '/', 'compare.balance.B3_LJ'],\n { type: 'bounds', ...params },\n 'Bitte prüfen Sie die Eingabe im Warenbestand. Die Abweichung zum Vorjahr erscheint unplausibel.',\n undefined,\n 'Bilanz_01',\n )\n);\n\nexport default rule;\n","import { RuleParamater, UserValdiation } from '../YearlyDataValidation';\n\n/**\n * Checks for difference in stock at start and end\n */\nconst rule = (params: RuleParamater) => (\n new UserValdiation(\n ['income.E21_LJ', '/', 'intermediates.total_output_LJ'],\n { type: 'bounds', ...params },\n 'Sie haben Ihre Apotheke als Pachtapotheke deklariert, jedoch erscheint der Pachtaufwand unplausibel. Bitte prüfen Sie Ihre Eingaben.',\n ['general.A5_LJ', 'tenure'],\n 'GuV_21',\n )\n);\n\nexport default rule;\n","import { RuleParamater, UserValdiation } from '../YearlyDataValidation';\n\n/**\n * Checks for difference in stock at start and end\n */\nconst rule = (params: RuleParamater) => (\n new UserValdiation(\n ['income.E21_LJ', '/', 'compare.income.E21_LJ'],\n { type: 'bounds', ...params },\n 'Ihre Angabe zum Pachtaufwand erscheint nicht konsistent zum Vorjahr.',\n undefined,\n 'GuV_12',\n )\n);\n\nexport default rule;\n","import { RuleParamater, UserValdiation } from '../YearlyDataValidation';\n\n/**\n * Checks for difference in stock at start and end\n */\nconst rule = (params: RuleParamater) => (\n new UserValdiation(\n ['income.E21_LJ', '/', 'intermediates.total_output_LJ'],\n { type: 'bounds', ...params },\n 'Sie haben einen Pachtaufwand erfasst, Ihre Apotheke jedoch nicht als Pachtapotheke deklariert.',\n ['general.A5_LJ', 'tenure', '!'],\n 'GuV_22',\n )\n);\n\nexport default rule;\n","import { UserValdiation } from '../YearlyDataValidation';\n\n/**\n * Checks for plausibleness in buying syndicate data\n */\nconst rule = new UserValdiation(\n ['staff.trainee',\n '+', ['staff.employeeSkilled',\n '+', ['staff.merchant',\n '+', ['staff.cleaner',\n '+', 'staff.otherEmployee']]]],\n { type: 'compare', compare: '=', value: 0 },\n 'Sie haben einen Aufwand für Hilfspersonal in der GuV erfasst, aber keine Hilfskräfte.',\n ['E8_LJ', 0, '>'],\n 'Personal_16',\n);\n\nexport default rule;\n","import { UserValdiation } from '../YearlyDataValidation';\n\n/**\n * Checks for plausibleness in buying syndicate data\n */\nconst rule = new UserValdiation(\n ['staff.trainee',\n '+', ['staff.employeeSkilled',\n '+', ['staff.merchant',\n '+', ['staff.cleaner',\n '+', 'staff.otherEmployee']]]],\n { type: 'compare', compare: '>', value: 0 },\n 'Sie haben Hilfspersonal erfasst, aber keinen Aufwendungen für Hilfskräfte in der GuV erfasst.',\n ['E8_LJ', 0, '='],\n 'Personal_17',\n);\n\nexport default rule;\n","import { RuleParamaters, UserValdiation } from '../YearlyDataValidation';\n\nimport AspirantCountCreator from './AspirantCount';\nimport BalanceEquality from './BalanceEquality';\nimport BranchPharmacyTrend from './BranchPharmacyTrend';\nimport BuyingSyndicateCreator from './BuyingSyndicate';\nimport BuyingSyndicateTrend from './BuyingSyndicateTrend';\nimport ConcessionaireCreator from './Concessionaire';\nimport CustomerCountTrendCreator from './CustomerCountTrend';\nimport ExepensesToSalesCreator from './ExepensesToSales';\nimport FamiliaryWorkCreator from './FamiliaryWork';\nimport GrossProfitToSalesCreator from './GrossProfitToSales';\nimport GrossProfitTrendCreator from './GrossProfitTrend';\nimport HighPriceMoreThanInsuranceShare from './HighPriceMoreThanInsuranceShare';\nimport InsurancePackagesTrendCreator from './InsurancePackagesTrend';\nimport InsuranceShareCreator from './InsuranceShare';\nimport InsuranceShareTrendCreator from './InsuranceShareTrend';\nimport LegalSocialExpensesCreator from './LegalSocialExpenses';\nimport MaterialExpenseCreator from './MaterialExpense';\nimport MaterialExpenseTrendCreator from './MaterialExpenseTrend';\nimport OfficinAreaTrendCreator from './OfficinAreaTrend';\nimport PrescriptionTrendCreator from './PrescriptionTrend';\nimport PrivatePackagesTrendCreator from './PrivatePackagesTrend';\nimport PrivateShareTrendCreator from './PrivateShareTrend';\nimport ProfitCreator from './Profit';\nimport PropertyOwnerCreator from './PropertyOwner';\nimport PropertyOwnerTrend from './PropertyOwnerTrend';\nimport SalesAreaTrendCreator from './SalesAreaTrend';\nimport SkilledStaffMissing from './SkilledStaffMissing';\nimport SkilledStaffWithoutExpenses from './SkilledStaffWithoutExpenses';\nimport StaffExpenseCreator from './StaffExpense';\nimport StaffExpenseToProfitCreator from './StaffExpenseToProfit';\nimport StaffExpenseTrendCreator from './StaffExpenseTrend';\nimport StaffNonPharmacistExpenseCreator from './StaffNonPharmacistExpense';\nimport StaffPharmacistExpenseCreator from './StaffPharmacistExpense';\nimport StockDifferenceCreator from './StockDifference';\nimport TenureExpenseCreator from './TenureExpense';\nimport TenureExpenseTrendCreator from './TenureExpenseTrend';\nimport TenureMissingCreator from './TenureMissing';\nimport UnskilledStaffMissing from './UnskilledStaffMissing';\nimport UnskilledStaffWithoutExpenses from './UnskilledStaffWithoutExpenses';\n\n/**\n * All validations combined in one array\n */\nconst createValidationsWithParams = (params: RuleParamaters): Array => ([\n BalanceEquality(params.balanceEquality),\n StockDifferenceCreator(params.stockRelationLastYear),\n InsuranceShareCreator(params.insuranceSalesRelationOfficin),\n HighPriceMoreThanInsuranceShare,\n BuyingSyndicateCreator(params.salesBuyingSyndicate),\n LegalSocialExpensesCreator(params.legalSocialExpense),\n ProfitCreator(params.profit),\n PrivateShareTrendCreator(params.privateSalesRelationLastYear),\n InsuranceShareTrendCreator(params.insuranceSalesRelationLastYear),\n TenureExpenseTrendCreator(params.tenureExpense),\n MaterialExpenseCreator(params.materialExpenseRelationSales),\n MaterialExpenseTrendCreator(params.materialExpenseRelationLastYear),\n StaffExpenseCreator(params.staffExpenseRelationSales),\n StaffExpenseTrendCreator(params.staffExpenseRelationLastYear),\n StaffExpenseToProfitCreator(params.staffExpenseRelationProfit),\n ExepensesToSalesCreator(params.expensesRelationSales),\n GrossProfitToSalesCreator(params.profitRelationSales),\n GrossProfitTrendCreator(params.profitRelationLastYear),\n AspirantCountCreator(params.apirantTotalQuota),\n ConcessionaireCreator(params.quotaConcessionaire),\n CustomerCountTrendCreator(params.customerCountRelationLastYear),\n FamiliaryWorkCreator(params.familiaryTotalQuota),\n InsurancePackagesTrendCreator(params.insurancePackageSalesRelationLastYear),\n OfficinAreaTrendCreator(params.officeAreasRelationLastYear),\n PrescriptionTrendCreator(params.prescriptionCountRelationLastYear),\n PrivatePackagesTrendCreator(params.privatePackageSalesRelationLastYear),\n PropertyOwnerCreator(params.rentalExpenseOwnership),\n PropertyOwnerTrend,\n SalesAreaTrendCreator(params.workingAreasRelationLastYear),\n SkilledStaffMissing,\n SkilledStaffWithoutExpenses,\n TenureExpenseCreator(params.tenureExpenseRelationSales),\n TenureMissingCreator(params.tenureExpenseWithoutTenure),\n UnskilledStaffMissing,\n UnskilledStaffWithoutExpenses,\n BranchPharmacyTrend,\n BuyingSyndicateTrend,\n StaffPharmacistExpenseCreator(params, 'low'),\n StaffPharmacistExpenseCreator(params, 'high'),\n StaffNonPharmacistExpenseCreator(params, 'low'),\n StaffNonPharmacistExpenseCreator(params, 'high'),\n]);\n\nexport default createValidationsWithParams;\n","import {\r\n IntermediateDefintions\r\n} from './YearlyDataValidation';\r\n\r\n/* eslint-disable indent */\r\nconst intermediateCalculations: IntermediateDefintions = {\r\n // Calculate all assets\r\n assets_LJ: [\r\n 'balance.B1_LJ', '+', [\r\n 'balance.B3_LJ', '+', [\r\n 'balance.B4_LJ', '+', [\r\n 'balance.B5_LJ', '+',\r\n 'balance.B6_LJ']]]],\r\n\r\n // Calculate all liabilities\r\n liabilities_LJ: [\r\n 'balance.B7_LJ', '+', [\r\n 'balance.B8_LJ', '+', [\r\n 'balance.B9_LJ', '+', [\r\n 'balance.B10_LJ', '+', [\r\n 'balance.B11_LJ', '+',\r\n 'balance.B12_LJ']]]]],\r\n\r\n // Operating expenses\r\n operating_expenses_LJ: [\r\n 'income.E13_LJ',\r\n '+', ['income.E14_LJ',\r\n '+', ['income.E15_LJ',\r\n '+', ['income.E16_LJ',\r\n '+', ['income.E17_LJ',\r\n '+', ['income.E18_LJ',\r\n '+', ['income.E19_LJ',\r\n '+', ['income.E26_LJ',\r\n '+', ['income.E20_LJ',\r\n '+', ['income.E21_LJ',\r\n '+', ['income.E22_LJ',\r\n '+', ['income.E23_LJ',\r\n '+', ['income.E24_LJ',\r\n '+', ['income.E25_LJ',\r\n '+', 'income.E27_LJ']]]]]]]]]]]]],\r\n ],\r\n\r\n total_output_LJ: [\r\n 'income.E1_LJ',\r\n '+', ['income.E2_LJ',\r\n '+', ['income.E4_LJ',\r\n '+', ['income.E5_LJ',\r\n '+', 'income.E50_LJ']]]\r\n ],\r\n\r\n offizin_revenue_LJ: [\r\n 'income.E1_LJ', '+', 'income.E2_LJ',\r\n ],\r\n\r\n gross_yield_LJ: [\r\n 'intermediates.total_output_LJ', '-', 'income.E6_LJ'\r\n ],\r\n\r\n staff_cost_LJ: [\r\n 'income.E7_LJ',\r\n '+', ['income.E8_LJ',\r\n '+', ['income.E9_LJ',\r\n '+', ['income.E10_LJ',\r\n '+', 'income.E11_LJ']]],\r\n ],\r\n\r\n // Yearly profit\r\n yearly_profit_LJ: [\r\n 'intermediates.total_output_LJ',\r\n '-', ['intermediates.staff_cost_LJ',\r\n '+', ['intermediates.operating_expenses_LJ',\r\n '+', 'income.E6_LJ']],\r\n ],\r\n\r\n // After annuity payment\r\n yearly_profit_after_annuity_LJ: [\r\n 'intermediates.yearly_profit_LJ', '-', 'income.E29_LJ'\r\n ],\r\n\r\n cf_LJ: [\r\n 'intermediates.yearly_profit_LJ',\r\n '+', ['income.E18_LJ',\r\n '+', 'income.E19_LJ'],\r\n ],\r\n};\r\n/* eslint-enable indent */\r\n\r\nexport default intermediateCalculations;\r\n","import { RuleParamaters, ruleParameters } from '../YearlyDataValidation';\n\nimport { RuleParamaterInput } from '../../Components/ValidationParams/Definitions';\n\n/**\n * Valid bounds node\n */\nexport const isValidBounds = (bounds: { low?: number, high?: number }): boolean => (\n bounds.low !== undefined && bounds.low !== null\n && bounds.high !== undefined && bounds.high !== null\n);\n\n/**\n * Valid param node\n */\nexport const isValidParam = (param?: RuleParamaterInput): boolean => (\n !(\n !param\n || !param.bounds\n || !isValidBounds(param.bounds)\n || (\n param.boundsCritical &&\n !isValidBounds(param.boundsCritical)\n )\n )\n);\n\n/**\n * Get errorneous entries from a values object\n */\nexport const getErrorneous = (values: any) => {\n return ruleParameters.filter((param) => !isValidParam(values[param]));\n}\n\n/**\n * Validate if all yearly params are present\n */\nconst validate = (values: any): values is RuleParamaters => {\n if (typeof values !== 'object') {\n return false;\n }\n let allValid = true;\n\n // Traverse all parameter key to see if they are all set\n ruleParameters.forEach((param) => {\n if (\n !isValidParam(values[param])\n ) {\n allValid = false;\n }\n });\n\n return allValid;\n}\n\nexport default validate;\n","import Validator, { RuleParamaters, ValidationRule } from './YearlyDataValidation';\nimport { YearlyData, YearlySaveData } from './YearlyData';\n\nimport IntermediatesMapper from './IntermediatesMapper';\nimport JSONFetch from './JSONFetch';\nimport RawPharmacy from './RawPharmacy';\nimport RuleParamatersMapper from './RuleParamatersMapper';\nimport StaffDataMapper from './StaffDataMapper';\nimport ValidationResultMapper from './ValidationResultsMapper';\nimport YearlyDataMapper from './YearlyDataMapper';\nimport YearlyPharmacyMapper from './YearlyPharmacyMapper';\nimport createValidationsWithParams from './YearlyDataValidations/createValidationsWithParams';\nimport intermediateCalculations from './Intermediates';\nimport validate from './FormValidations/YearlyDataParamters';\n\nconst mapper = new YearlyDataMapper();\n\n/**\n * Service class for yearly data entities\n */\nexport default class YearlyDataService {\n // Validator instance\n validators: Record> = {};\n\n /**\n * Get a validator for a certain year.\n */\n getValidator(year: number): Promise> {\n // Load once and cache\n if (!this.validators[year]) {\n return this.loadRuleParamters(year)\n .then((parameters) => {\n /**\n * Validate if all params are given. If not throw an error because then\n * validator is not valid.\n */\n if (!validate(parameters)) {\n throw new Error('7182: Parameters could not be loaded');\n }\n\n const rules = createValidationsWithParams(parameters);\n const validator = new Validator(intermediateCalculations);\n rules.forEach((rule: ValidationRule) => validator.addRule(rule));\n\n this.validators[year] = validator;\n return this.validators[year];\n });\n }\n\n return Promise.resolve(this.validators[year]);\n }\n\n /**\n * Load rule paramters for a given year\n */\n loadRuleParamters(year: number): Promise {\n return JSONFetch({\n url: `/CheckStammByWJ?Jahr=${year}`,\n responseParser: (new RuleParamatersMapper(year)).parse,\n bodySerializer: () => '',\n });\n }\n\n /**\n * Get data for a certain year\n */\n get(pharmacy: RawPharmacy, year: number): Promise {\n const pharmacyId = pharmacy.id!;\n const staffMapper = new StaffDataMapper(pharmacyId, year);\n const pharmacyMapper = new YearlyPharmacyMapper(pharmacy, year);\n return Promise.all([\n JSONFetch({\n url: `/KpiWerteByApoIDWJ?ApoID=${pharmacyId}&Jahr=${year}`,\n responseParser: mapper.parseArray,\n bodySerializer: () => '',\n }),\n JSONFetch({\n url: `/KPIPersonal?ApoID=${pharmacyId}&Jahr=${year}`,\n responseParser: staffMapper.parseArray,\n bodySerializer: () => '',\n }),\n JSONFetch({\n url: `/ApothekeByIDABVJahr?ApoID=${pharmacyId}&Jahr=${year}`,\n responseParser: pharmacyMapper.parseArray,\n bodySerializer: () => '',\n }),\n ])\n .then(([arrayData, staffData, pharmacy]) => {\n if (arrayData.length === 1) {\n return {\n ...arrayData[0],\n staff: { rows: staffData },\n pharmacy,\n };\n }\n return {\n isEmpty: true,\n general: {},\n balance: {},\n income: {},\n staff: { rows: [] },\n };\n });\n }\n\n /**\n * Save data for a certain year\n */\n save(data: YearlySaveData, pharmacy: RawPharmacy, year: number): Promise {\n const pharmacyId = pharmacy.id!;\n const intermediatesMapper = new IntermediatesMapper(pharmacyId, year);\n const resultsMapper = new ValidationResultMapper(pharmacyId, year);\n const staffMapper = new StaffDataMapper(pharmacyId, year);\n const yearlyPharmacyMapper = new YearlyPharmacyMapper(pharmacy, year);\n\n const combinedData = `{\n \"KPIWerte\": ${mapper.serialize(data)},\n \"CalcErgebnis\": ${intermediatesMapper.serialize(data.intermediates)},\n \"CheckErgebnis\": ${resultsMapper.serialize(data.validationResults)},\n \"KpiPersonal\": ${staffMapper.serializeArray(data.staff.rows)},\n \"ApoABVJahr\": ${yearlyPharmacyMapper.serialize(data.pharmacy)}\n }`;\n\n return JSONFetch({\n url: `/InsertUpdateKpiAll?apo_id=${pharmacyId}&jahr=${year}`,\n responseParser: () => data,\n bodySerializer: (a) => a,\n body: combinedData,\n method: 'post',\n }).then(() => (data));\n }\n\n saveRuleParameters(year: number, data: RuleParamaters): Promise {\n return JSONFetch({\n url: `/InsertUpdateCheckStamm`,\n responseParser: () => {},\n bodySerializer: (new RuleParamatersMapper(year)).serialize,\n body: data,\n method: 'post',\n });\n }\n}\n","import CachingService from './CachingService';\nimport ComparisonGroupMapper from './ComparisonGroupMapper';\nimport ComparisonGroupService from './ComparisonGroupService';\nimport LookupService from './LookupService';\nimport PharmacyMapper from './PharmacyMapper';\nimport PharmacyService from './PharmacyService';\nimport ReportMapper from './ReportMapper';\nimport ReportService from './ReportService';\nimport StaffDataService from './StaffDataService';\nimport UserMapper from './UserMapper';\nimport UserService from './UserService';\nimport YearlyDataService from './YearlyDataService';\n\n/**\n * Service provider\n */\n/* eslint-disable class-methods-use-this */\nexport default class ServiceProvider {\n services: { [name: string]: any } = {};\n registered: { [name: string]: () => any } = {};\n cache: { [name: string]: any } = {};\n fullyInitialized: boolean = false;\n\n /**\n * Initialize the service provider\n */\n initialize() {\n this.services = {\n offizin: new CachingService('BenchmarkingGruppen/Offizinumsatz'),\n privateShare: new CachingService('BenchmarkingGruppen/Privatumsatz'),\n highPriceShare: new CachingService('BenchmarkingGruppen/Hochpreisanteil'),\n openingHours: new CachingService('BenchmarkingGruppen/Oeffnungszeiten'),\n pharmacyCount: new CachingService('BenchmarkingGruppen/Apothekenanzahl'),\n population: new CachingService('BenchmarkingGruppen/Einwohner'),\n state: new CachingService('BenchmarkingGruppen/Bundeslaender'),\n location: new CachingService('BenchmarkingGruppen/Lage'),\n software: new LookupService('Lookup/Software'),\n role: new LookupService('Lookup/Rolle'),\n involvement: new LookupService('Lookup/Funktion'),\n yearlyData: new YearlyDataService(),\n staffData: new StaffDataService(),\n report: new ReportService(new ReportMapper()),\n };\n\n this.registered = {\n comparisonGroup: () => this.initComparisonGroupService(),\n pharmacy: () => this.initPharmacyService(),\n user: () => this.initUserService(),\n };\n\n return this;\n }\n\n /**\n * Stub to load all required dependencies\n */\n loadAllRequiredDependencies() {\n const required = [\n 'offizin',\n 'privateShare',\n 'highPriceShare',\n 'openingHours',\n 'pharmacyCount',\n 'population',\n 'state',\n 'location',\n 'software',\n 'role',\n 'involvement',\n ];\n return Promise.all(\n required.filter((key) => (!this.cache[key]))\n .map((key) => this.get(key).getAll()),\n )\n .then((fetchedData) => {\n this.cache = required.reduce<{ [key: string]: any }>((memo, key, i) => {\n memo[key] = fetchedData[i];\n return memo;\n }, {});\n return fetchedData;\n })\n .then((rollingResult) => {\n this.fullyInitialized = true;\n console.log(\"FULLY\");\n return rollingResult;\n })\n .catch((e) => {\n throw e;\n });\n }\n\n /**\n * Get some service\n */\n get(serviceName: string) {\n if (!this.services[serviceName]) {\n this.loadService(serviceName);\n }\n\n return this.services[serviceName];\n }\n\n /**\n * Load a service\n */\n // eslint-disable-next-line no-unused-vars\n loadService(serviceName: string) {\n if (!this.registered[serviceName]) {\n throw Error(`Service with name ${serviceName} not found`);\n }\n this.services[serviceName] = this.registered[serviceName]();\n }\n\n initComparisonGroupService() {\n const mapper = new ComparisonGroupMapper(\n this.cache.offizin,\n this.cache.privateShare,\n this.cache.highPriceShare,\n this.cache.openingHours,\n this.cache.pharmacyCount,\n this.cache.population,\n this.cache.state,\n this.cache.location,\n );\n return new ComparisonGroupService(mapper);\n }\n\n initUserService() {\n const mapper = new UserMapper();\n return new UserService(mapper);\n }\n\n initPharmacyService() {\n const mapper = new PharmacyMapper(\n this.cache.openingHours,\n this.cache.pharmacyCount,\n this.cache.population,\n this.cache.state,\n this.cache.location,\n this.cache.software,\n );\n return new PharmacyService(mapper);\n }\n}\n","import React, { PropsWithChildren, createContext, useCallback, useContext, useState } from 'react';\n\n// Context type definition\ninterface AuthContextType {\n authentication: T | null,\n isAuthenticated: boolean,\n isLoading: boolean,\n error: Error | null,\n signIn: (credentials: U) => Promise,\n signOut: () => Promise,\n};\n\ninterface AuthContextProviderProps extends PropsWithChildren<{\n onSignIn: (credentials: U) => Promise,\n onSignOut: () => Promise,\n}> {};\n\n// An error for out of context access\nconst ProviderAccessErrorCb = () => {\n throw new Error('You can only use setAuthenticated wihtin AuthContextProvider');\n};\n\nconst createAuthContext = (): {\n useAuth: () => AuthContextType,\n AuthContext: React.Context>,\n AuthContextProvider: React.FC>,\n} => {\n const AuthContext = createContext>({\n authentication: null,\n isAuthenticated: false,\n isLoading: false,\n error: null,\n signIn: ProviderAccessErrorCb,\n signOut: ProviderAccessErrorCb,\n });\n\n type AuthContextProviderProps = PropsWithChildren<{\n onSignIn: (credentials: U) => Promise,\n onSignOut: () => Promise,\n }>;\n\n const AuthContextProvider = ({ children, onSignIn, onSignOut }: AuthContextProviderProps) => {\n const [authentication, setAuthentication] = useState(null);\n const [error, setError] = useState(null);\n const [loading, setLoading] = useState(false);\n\n const contextValue = {\n authentication: authentication,\n isAuthenticated: !!authentication,\n isLoading: loading,\n error: error,\n signIn: useCallback(\n (credentials: U) => {\n setLoading(true);\n return onSignIn(credentials)\n .then((auth: T) => {\n setError(null);\n setAuthentication(auth);\n })\n .catch(() => setError(new Error('Ungültige Logindaten')))\n .finally(() => setLoading(false));\n },\n [onSignIn, setAuthentication],\n ),\n signOut: useCallback(\n () => {\n setLoading(true);\n return onSignOut()\n .then(() => setAuthentication(null))\n .catch((signOutError) => setError(signOutError))\n .finally(() => setLoading(false));\n },\n [onSignOut, setAuthentication]\n ),\n };\n return (\n \n {children}\n \n );\n };\n\n const useAuth = (): AuthContextType => {\n return useContext(AuthContext);\n };\n\n return {\n useAuth,\n AuthContext,\n AuthContextProvider,\n };\n};\n\nexport default createAuthContext;\n","import {\n BasicLocalStorageCredentialStore,\n setDefaultCredentialStore,\n} from '../Lib/CredentialStore';\n\nimport { Credentials } from '../Providers/DataProvider';\nimport UserWithPharmacy from '../Lib/UserWithPharmacy';\nimport createAuthContext from '../Providers/AuthProvider';\nimport { useContext } from 'react';\n\n/**\n * Create a credentials store and use as default\n */\nconst credentialsStore = new BasicLocalStorageCredentialStore('TokApo');\nsetDefaultCredentialStore(credentialsStore);\n\n/**\n * Export the contexts\n */\nexport const {\n useAuth,\n AuthContext,\n AuthContextProvider,\n} = createAuthContext();\n\nexport function useAuthenticate(): (credentials: Credentials) => void {\n return useContext(AuthContext).signIn;\n}\n\n// re-export as default as well\nexport default useAuth;\n","import { CircularProgress, Container, Typography } from '@material-ui/core';\nimport React, { PropsWithChildren, useEffect, useState } from 'react';\n\nimport ServiceProvider from '../Lib/ServiceProvider';\nimport { getDefaultCredentialStore } from '../Lib/CredentialStore';\nimport useAuth from '../Hooks/useAuth';\n\nexport type Credentials = {\n username: string,\n password: string,\n};\n\nexport const DataProviderContext = React.createContext({\n getService: (service: string) => {},\n getCache: () => {},\n});\n\nexport default function DataProvider({ children }: PropsWithChildren<{}>) {\n // If the provider is ready or lodaing\n const [ready, setReady] = useState(false);\n\n // The servides currently loaded\n const [services] = useState(new ServiceProvider());\n\n // Authentication given or not\n const { authentication, signIn } = useAuth();\n\n // Services, load dependencies while showing a loading indicator as well a potential authenticated\n // use\n useEffect(() => {\n services.initialize()\n .loadAllRequiredDependencies()\n .then(() => getDefaultCredentialStore()?.getCredentials())\n .then((credentials: undefined | [string, string]) => {\n if (!credentials) {\n return null;\n }\n return signIn({ username: credentials[0], password: credentials[1] });\n })\n .finally(() => setReady(true));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // Create the context for this provider\n const contextValue = {\n getService: (name: string) => services!.get(name),\n getCache: () => services!.cache,\n };\n\n // Content is either initalizing or the default children\n let content;\n if ((authentication || services) && !ready) {\n content = (\n \n \n \n Initializing app...\n \n \n );\n } else {\n content = children;\n }\n\n return (\n \n {content}\n \n );\n}\n","import { DataProviderContext } from '../Providers/DataProvider';\nimport { useContext } from 'react';\n\nconst useCachedData = >(keys: T): { [K in T[any]]: any } => {\n const cache = useContext(DataProviderContext).getCache();\n // TS is righfully complaining about the empty object not conforming to our required return\n // object. I do not yet have a solution to that.\n // @ts-ignore\n return keys.reduce((memo, key) => {\n // @ts-ignore\n Object.assign(memo, { [key]: cache[key] });\n return memo;\n }, {});\n};\n\nexport default useCachedData;\n","import React, { useMemo } from 'react';\n\nimport { Chip } from '@material-ui/core';\nimport useCachedData from '../../Hooks/useCachedData';\n\nexport type InvolvementProps = {\n value: Nullable,\n};\n\nconst Involvement: React.FC = ({ value }) => {\n const { involvement } = useCachedData(['involvement']);\n const displayInvolvement = useMemo(() => (\n (involvement || []).find((item: { begID: number}) => (item.begID === value))\n ), [value, involvement]);\n\n return displayInvolvement ? (\n \n ) : null;\n};\n\nexport default Involvement;\n","import {\n Avatar,\n Divider,\n Drawer,\n IconButton,\n List,\n ListItem,\n ListItemIcon,\n ListItemText,\n ListSubheader,\n Typography,\n makeStyles,\n} from '@material-ui/core';\nimport {\n ChevronRight as ChevronRightIcon,\n Person as PersonIcon,\n} from '@material-ui/icons';\nimport { RoleType, hasAnyRole } from '../Lib/Roles';\n\nimport { GroupTypeEntity } from '../Lib/ComparisonGroup';\nimport Involvement from '../Components/Common/Involvement';\nimport React from 'react';\nimport UserWithPharmacy from '../Lib/UserWithPharmacy';\n\nconst useStyles = makeStyles(() => ({\n drawer: {\n minWidth: '300px',\n },\n monthly: {\n paddingTop: 0,\n paddingBottom: 0,\n borderLeft: '8px solid #B897BF',\n '& .MuiListSubheader-root': {\n color: '#B897BF',\n paddingLeft: 8,\n },\n '& .MuiListItem-root': {\n paddingLeft: 8,\n },\n },\n yearly: {\n paddingTop: 0,\n paddingBottom: 0,\n borderLeft: '8px solid #41756F',\n '& .MuiListSubheader-root': {\n color: '#41756F',\n paddingLeft: 8,\n },\n '& .MuiListItem-root': {\n paddingLeft: 8,\n },\n },\n}));\n\ntype MenuNode = {\n label: string,\n path?: string,\n roles?: Array,\n children?: Array,\n className?: keyof ReturnType,\n};\n\n/**\n * Menu structure\n */\nconst MENU_STRUCTURE: Array = [{\n label: 'Startseite',\n path: '/dashboard',\n}, {\n label: 'Admin-Stammdaten',\n path: '/stammdaten',\n}, {\n label: 'Benutzer',\n path: '/benutzer',\n roles: ['Hauptbenutzer'],\n}, {\n label: 'Apothekendaten',\n path: '/apotheke',\n roles: ['Hauptbenutzer'],\n}, {\n label: 'Neue Filialapotheke',\n path: '/filiale',\n roles: ['Hauptbenutzer'],\n}, {\n label: 'monatlicher ABV',\n className: 'monthly',\n children: [{\n label: 'Vergleichsgruppe festlegen',\n path: '/monatlich/vergleichsgruppe',\n roles: ['Benutzer', 'Hauptbenutzer'],\n }],\n}, {\n label: 'Jährlicher ABV',\n className: 'yearly',\n children: [{\n label: 'Dateneingabe',\n path: '/jaehrlich',\n roles: ['Steuerberater', 'Hauptbenutzer'],\n }, {\n label: 'Vergleichsgruppe festlegen',\n path: '/jaehrlich/vergleichsgruppe',\n roles: ['Benutzer', 'Hauptbenutzer'],\n }],\n}, {\n label: 'Vergleichsgruppen verwalten',\n path: '/manage-comparison-groups',\n roles: ['Apothekerverband'],\n}, {\n label: 'Rechenparameter',\n path: '/manage-params',\n roles: ['Apothekerverband'],\n}, {\n label: '',\n children: [{\n label: 'FAQ',\n path: '/faq',\n }, {\n label: 'Kontakt',\n path: '/kontakt',\n }],\n}];\n\n/**\n * Properties for menu component\n */\nexport interface MenuProps {\n open: boolean,\n onClose: () => void,\n onSignOut: () => void,\n onNavigate: (path: string) => void,\n authentication: UserWithPharmacy,\n roles: Array,\n};\n\nconst renderMenu = (\n node: Array,\n onNavigate: (path: string) => void,\n checkRole: (roles: Array, path: string) => boolean,\n classes: ReturnType,\n): Array => (\n node.map(({ label, path = '', children = undefined, roles, className }) => {\n if (children) {\n const items = renderMenu(children, onNavigate, checkRole, classes);\n return items.length < 1 ? undefined : (\n \n \n \n {label}\n \n {items}\n \n );\n }\n return (\n (roles && !checkRole(roles, path)) ? undefined : (\n onNavigate(path)} key={path}>\n \n \n )\n );\n }).filter((node) => (node !== undefined))\n);\n\n/**\n * The main menu\n */\nexport default function Menu({\n open,\n onClose,\n onSignOut,\n onNavigate,\n authentication,\n roles,\n}: MenuProps) {\n const classes = useStyles();\n return (\n \n
\n \n \n \n
\n \n \n \n \n \n {authentication.pharmacy.title}\n \n \n \n )}\n />\n \n {\n onClose();\n onSignOut();\n }}>\n \n \n \n \n {renderMenu(\n MENU_STRUCTURE,\n onNavigate,\n (required, path) => {\n if (path === '/monatlich/vergleichsgruppe' && !authentication.pharmacy.monthlySubscribed) {\n return false;\n }\n return hasAnyRole(authentication, required, roles);\n },\n classes,\n )}\n \n \n \n );\n}\n","import {\n AppBar,\n IconButton,\n Link,\n Toolbar,\n Typography,\n} from '@material-ui/core';\nimport React, { useCallback, useEffect, useState } from 'react';\n\nimport CubeLogo from './CubeLogo';\nimport Menu from './Menu';\nimport {\n Menu as MenuIcon,\n} from '@material-ui/icons';\nimport useAuth from '../Hooks/useAuth';\nimport useCachedData from '../Hooks/useCachedData';\nimport {\n useHistory,\n} from 'react-router-dom';\n\n/**\n * Layouts header, display an app bar and a global menu.\n */\nexport default function Header() {\n // The state of drawer\n const [open, setOpen] = useState(false);\n\n // Use authentication\n const { authentication, signOut } = useAuth();\n const { role } = useCachedData(['role']);\n\n // Drawer states management\n const handleDrawerOpen = () => {\n setOpen(true);\n };\n const handleDrawerClose = () => {\n setOpen(false);\n };\n\n // History is used\n const history = useHistory();\n\n // Go to home\n const goToHome = useCallback(() => history.push('/'), [history]);\n\n // Close drawer on navigation, pass unlisten as return argument (return value from listen())\n useEffect(() => history.listen(() => {\n handleDrawerClose();\n }));\n\n // Drawer is conditional if authentication is present\n const drawer = !authentication ? null : (\n history.push(path)}\n onSignOut={() => signOut()}\n onClose={() => handleDrawerClose()}\n authentication={authentication}\n roles={role}\n />\n );\n\n // We display either a menu drawer icon or a button to go to the sign in page\n const menuButton = !authentication ? (\n \n Zum Login\n \n ) : (\n \n \n \n );\n\n // Main UI\n return (\n <>\n \n \n \n {menuButton}\n \n \n {drawer}\n \n );\n}\n","import RawPharmacy from './RawPharmacy';\nimport User from './User';\n\n/**\n * Extended user model with pharmacy\n */\nexport default class UserWithPharmacy extends User {\n /**\n * The pharmacy\n */\n pharmacy: RawPharmacy;\n\n /**\n * Construct from user with pharmacy\n */\n constructor(\n user: User,\n pharmacy: RawPharmacy,\n ) {\n super(\n user.title,\n user.firstName,\n user.lastName,\n user.username,\n user.email,\n user.involvement,\n user.role,\n user.active,\n user.mainUser,\n user.pharmacyId,\n user.id,\n );\n this.pharmacy = pharmacy;\n }\n}\n","import UserMapper, { parseJSON } from '../Lib/UserMapper';\n\nimport { Credentials } from '../Providers/DataProvider';\nimport JSONFetch from '../Lib/JSONFetch';\nimport RawPharmacyMapper from '../Lib/RawPharmacyMapper';\nimport User from '../Lib/User';\nimport UserWithPharmacy from '../Lib/UserWithPharmacy';\nimport {\n getDefaultCredentialStore,\n} from '../Lib/CredentialStore';\n\n/**\n * Sign in method, stores credentials on success\n */\nconst signIn = ({ username, password }: Credentials): Promise => {\n return JSONFetch({\n method: 'post',\n url: '/CheckLogin',\n body: { benUsername: username, benPwd: password },\n bodySerializer: JSON.stringify,\n responseParser: parseJSON,\n })\n .then((userData) => {\n // Invalid response\n if (!userData) {\n throw new Error('Invalid');\n }\n\n // Store the credentials\n getDefaultCredentialStore()?.storeCredentials(\n username, password,\n );\n\n // Map the user object\n return (new UserMapper()).mapToModel(userData);\n })\n .then((user: User) => (\n JSONFetch({\n method: 'get',\n url: `/ApothekeByID/${encodeURIComponent(user.pharmacyId)}`,\n bodySerializer: () => '',\n // We use an empty pharmacy mapper that's enough for a flat incomplete entity\n responseParser: (new RawPharmacyMapper()).parse,\n })\n .then((pharmacy) => (\n new UserWithPharmacy(user, pharmacy)\n ))\n ));\n};\n\n/**\n * Sign out\n */\nconst signOut = (): Promise => {\n getDefaultCredentialStore()?.clear();\n return Promise.resolve();\n};\n\n// Export\nexport {\n signIn,\n signOut,\n};\n","import React, { createContext, useState } from 'react';\n\nimport { WrappingFC } from '../CommonTypes/Components';\n\n/**\n * Notification type type\n */\nexport type NotificationType = 'error' | 'success' | 'info' | 'warn' | 'loading';\n\n/**\n * Notification type\n */\nexport type Notification = {\n message: string,\n type: NotificationType,\n icon: string,\n key: number,\n open: boolean | null,\n};\n\n/**\n * Type of controls for notifications\n */\nexport type ControlledNotificationControls = {\n hideNotification: () => void,\n};\n\n/**\n * Internal state type\n */\ntype NotificationsState = Array;\n\n/**\n * The created context.\n */\nexport const NotificationContext = createContext<{\n notifications: Array,\n add: (message: string, type: NotificationType, icon: string) => void,\n addError: (message: string, icon?: string) => void,\n addSuccess: (message: string, icon?: string) => void,\n addInfo: (message: string, icon?: string) => void,\n addControlledNotification: (message: string, type: NotificationType, icon: string) => ControlledNotificationControls,\n }>(\n {\n notifications: [],\n add: (message: string, type: NotificationType, icon: string) => {},\n addError: (message: string, icon?: string) => {},\n addSuccess: (message: string, icon?: string) => {},\n addInfo: (message: string, icon?: string) => {},\n addControlledNotification: (message: string, type: NotificationType, icon: string): ControlledNotificationControls => ({\n hideNotification: () => {},\n }),\n }\n );\n\n/**\n * The provider, implementing the context\n */\nconst NotificationProvider: WrappingFC = ({ children }) => {\n // Notifications state\n const [notifications, setNotifications] = useState([]);\n\n /**\n * Generic add notification function\n */\n const add = (\n message: string,\n type: NotificationType,\n icon: string,\n controlled?: boolean,\n ): ControlledNotificationControls => {\n const generatedKey = Date.now() + Math.random();\n const newval = [\n ...notifications,\n { message, type, icon, key: generatedKey, open: controlled ? true : null },\n ];\n setNotifications(newval);\n\n return {\n hideNotification: () => setNotifications((prev: NotificationsState) => (\n [\n ...prev.map((notification) => (\n notification.key === generatedKey ? {\n ...notification,\n open: false,\n } : notification\n )),\n ]\n )),\n };\n };\n\n const addWithoutControls = (\n message: string,\n type: NotificationType,\n icon: string,\n controlled?: boolean,\n ): void => {\n add(message, type, icon, controlled);\n };\n\n /// Generate the context\n const contextValue = {\n notifications,\n add: (message: string, type: NotificationType, icon: string) => addWithoutControls(message, type, icon),\n addError: (message: string, icon: string = '') => addWithoutControls(message, 'error', icon),\n addSuccess: (message: string, icon: string = '') => addWithoutControls(message, 'success', icon),\n addInfo: (message: string, icon: string = '') => addWithoutControls(message, 'info', icon),\n addControlledNotification: (message: string, type: NotificationType, icon: string) => add(message, type, icon, true),\n };\n\n return (\n \n {children}\n \n );\n}\n\nexport default NotificationProvider;\n","import { CircularProgress, IconButton, Snackbar, SnackbarContent } from '@material-ui/core';\nimport React, { useEffect, useState } from 'react';\n\nimport { Alert } from '@material-ui/lab';\nimport { Close as CloseIcon } from '@material-ui/icons';\nimport { NotificationType } from '../../Providers/NotificationProvider';\n\nconst alertSeverities = ['error', 'success', 'info'];\n\nexport type NotificationProps = {\n message: string,\n type?: NotificationType,\n actions?: Array,\n onClose?: () => void,\n open?: boolean | null,\n};\n\nconst Notification: React.FC = ({\n message,\n type = 'default',\n actions = [],\n onClose = () => {},\n open = null,\n}) => {\n // Open state\n const [isOpen, setOpen] = useState(true);\n\n // Closing handler\n const handleClose = (event?: any, reason?: string) => {\n if (reason === 'clickaway') {\n return;\n }\n setOpen(false);\n };\n\n // Autohiding?\n const autoHide = open === null ? 3000 : null;\n\n // Initial open\n useEffect(() => {\n setOpen(open !== false);\n }, [open]);\n\n const iconProp: { icon?: React.ReactNode, action?: React.ReactNode } = {};\n if (type === 'loading') {\n iconProp.icon = (\n \n );\n } else {\n iconProp.action = (\n <>\n \n \n \n \n );\n }\n\n return (\n \n {alertSeverities.includes(type) ? (\n \n {message}\n \n ) : (\n \n )}\n \n );\n}\n\nexport default Notification;\n","import { NotificationContext } from '../Providers/NotificationProvider';\nimport { useContext } from 'react';\n\nconst useNotifications = () => useContext(NotificationContext);\n\nexport default useNotifications;\n","import React from 'react';\nimport Notification from './Notification';\nimport useNotifications from '../../Hooks/useNotifications';\n\nconst Notifications: React.FC<{}> = () => {\n const { notifications } = useNotifications();\n return (\n <>\n {notifications.map(({ key, message, type, open }) => (\n \n ))}\n \n );\n};\n\nexport default Notifications;\n","import { signIn, signOut } from '../Lib/AuthService';\n\nimport { AuthContextProvider } from '../Hooks/useAuth';\nimport DataProvider from '../Providers/DataProvider';\nimport NotificationProvider from '../Providers/NotificationProvider';\nimport Notifications from './Notification/Notifications';\n\n/**\n * All the providers\n */\nconst Providers: React.FC<{ children: React.ReactNode }> = ({ children }) => (\n \n \n \n {children}\n \n \n \n \n);\n\nexport default Providers;\n","import createBreakpoints from '@material-ui/core/styles/createBreakpoints'\nimport { createTheme } from '@material-ui/core/styles';\nimport { deDE } from '@material-ui/core/locale';\nimport { grey } from '@material-ui/core/colors';\n\n/**\n * Color definitions\n */\nconst colorPrimary = '#d40e14';\nconst colorSecondary = '#d40e14';\n\n/**\n * Some basics used in many\n */\nconst heading: { color: string, fontWeight: number, textTransform: 'uppercase' } = {\n color: colorPrimary,\n fontWeight: 700,\n textTransform: 'uppercase',\n};\n\nconst applySpacing = (factor: number) => `${factor}rem`;\nconst breakpoints = createBreakpoints({})\n\n/**\n * Create a theme\n */\nexport default createTheme({\n /**\n * Adjust the color palette\n */\n palette: {\n primary: {\n main: colorPrimary,\n },\n secondary: {\n main: colorSecondary,\n },\n },\n /**\n * Adjust the typography\n */\n typography: {\n fontFamily: [\n 'ApothekeFontCalibLight',\n '-apple-system',\n 'BlinkMacSystemFont',\n '\"Segoe UI\"',\n 'Roboto',\n '\"Helvetica Neue\"',\n 'Arial',\n 'sans-serif',\n '\"Apple Color Emoji\"',\n '\"Segoe UI Emoji\"',\n '\"Segoe UI Symbol\"',\n ].join(','),\n },\n /**\n * Spacing function to be used in custom stylings\n */\n spacing: applySpacing,\n /**\n * Default props configuration\n */\n props: {\n // Force outlined input stye\n MuiTextField: {\n variant: 'outlined',\n margin: 'normal',\n },\n },\n /**\n * Style overrides\n */\n overrides: {\n /**\n * General layout styles\n */\n // Some basic styles\n MuiCssBaseline: {\n '@global': {\n // Custom toolbar primary that flexes accoross the toolbar\n '.toolbar-primary': {\n flex: 1,\n },\n },\n },\n // Appbar, adjust gaps and flex flow\n MuiAppBar: {\n root: {\n paddingTop: '0',\n paddingBottom: '0',\n marginBottom: '1rem',\n\n '& .MuiToolbar-root': {\n flexDirection: 'row',\n justifyContent: 'space-between',\n },\n },\n },\n /**\n * General container has less spacing\n */\n MuiContainer: {\n root: {\n [breakpoints.down('sm')]: {\n paddingLeft: applySpacing(1),\n paddingRight: applySpacing(1),\n },\n },\n },\n /**\n * Typography\n */\n MuiTypography: {\n h1: {\n ...heading,\n fontSize: '2rem',\n marginBottom: applySpacing(2),\n },\n h2: { ...heading, fontSize: '1.7rem' },\n h3: { ...heading, fontSize: '1.4rem' },\n h4: { ...heading, fontSize: '1.25rem' },\n h5: { ...heading, fontSize: '1.1rem' },\n h6: { ...heading, fontSize: '1rem' },\n\n root: {\n overflowWrap: 'break-word',\n wordWrap: 'break-word',\n hyphens: 'auto',\n },\n\n subtitle1: {\n lineHeight: 1.4,\n fontSize: 18,\n '&.MuiTypography-gutterBottom': {\n marginBottom: applySpacing(2),\n },\n },\n\n gutterBottom: {\n marginBottom: applySpacing(1),\n },\n },\n // Icon adjustment\n MuiSvgIcon: {\n root: {\n verticalAlign: 'middle',\n },\n colorPrimary: {\n color: '#45a200',\n },\n },\n\n /**\n * Dialogs\n */\n MuiDialogTitle: {\n root: {\n '& .MuiIconButton-root': {\n position: 'absolute',\n top: '.5rem',\n right: '.5rem',\n },\n },\n },\n /**\n * Surface elements like papers and cards\n */\n // Custom rounding for paper\n MuiPaper: {\n rounded: {\n borderRadius: '2px',\n },\n },\n // Adjust padding on cards\n MuiCard: {\n root: {\n '& > .MuiList-root': {\n '& > .MuiListItem-gutters': {\n paddingLeft: applySpacing(3),\n paddingRight: applySpacing(3),\n },\n '& > .MuiListItem-container': {\n '& > .MuiListItem-gutters': {\n paddingLeft: applySpacing(3),\n paddingRight: applySpacing(3),\n },\n '& > .MuiListItemSecondaryAction-root': {\n right: applySpacing(3),\n },\n },\n },\n },\n },\n MuiCardContent: {\n root: {\n padding: `${applySpacing(2)} ${applySpacing(3)}`,\n [breakpoints.down('sm')]: {\n paddingLeft: applySpacing(1),\n paddingRight: applySpacing(1),\n },\n },\n },\n MuiCardHeader: {\n root: {\n padding: `${applySpacing(2)} ${applySpacing(3)}`,\n [breakpoints.down('sm')]: {\n paddingLeft: applySpacing(1),\n paddingRight: applySpacing(1),\n },\n '& + .MuiCardContent-root': {\n paddingTop: 0,\n },\n },\n },\n\n /**\n * Tables\n */\n // Table toolbar spacing\n MuiToolbar: {\n root: {\n paddingTop: '1.5rem',\n paddingBottom: '1.5rem',\n paddingLeft: '1.5rem',\n paddingRight: '1.5rem',\n [breakpoints.down('sm')]: {\n paddingLeft: applySpacing(1),\n paddingRight: applySpacing(1),\n paddingTop: applySpacing(0.5),\n paddingBottom: applySpacing(0.5),\n },\n },\n },\n // Table row and cell spacing\n MuiTableRow: {\n root: {\n '& .MuiTableCell-root:first-child': {\n paddingLeft: '1.5rem',\n },\n '& .MuiTableCell-root:last-child': {\n paddingRight: '1.5rem',\n },\n },\n },\n // Table cell, colors and borders\n MuiTableCell: {\n root: {\n borderBottomWidth: 2,\n },\n body: {\n color: grey[900],\n },\n head: {\n color: grey[600],\n textTransform: 'uppercase',\n },\n },\n // Pagination coloring and sizing\n MuiTablePagination: {\n actions: {\n '& .MuiSvgIcon-root': {\n fontSize: '3rem',\n },\n '& .MuiIconButton-colorInherit': {\n color: colorPrimary,\n },\n '& .Mui-disabled': {\n color: grey[400],\n },\n },\n },\n\n /**\n * Form elements\n */\n // Button styles, custom spacing and text\n MuiButton: {\n label: {\n textTransform: 'uppercase',\n fontWeight: 700,\n },\n contained: {\n paddingTop: applySpacing(.75),\n paddingBottom: applySpacing(.75),\n\n '&.Mui-disabled': {\n backgroundColor: grey[400],\n color: grey[100],\n },\n },\n },\n\n MuiFormGroup: {\n root: {\n marginBottom: '2rem',\n },\n },\n\n MuiCheckbox: {\n root: {\n alignSelf: 'flex-start',\n '& + .MuiFormControlLabel-label': {\n textAlign: 'left',\n paddingTop: 9,\n paddingBottom: 9,\n },\n },\n },\n\n // Stepper control\n MuiStepper: {\n root: {\n backgroundColor: 'transparent',\n boxShadow: 'none',\n marginBottom: applySpacing(3),\n },\n },\n MuiStep: {\n completed: {\n '& .MuiStepIcon-root.MuiStepIcon-completed': {\n color: 'green',\n },\n '& .MuiStepLabel-root > .MuiStepLabel-labelContainer': {\n '@media(max-width: 959.95px)': {\n display: 'none',\n },\n },\n },\n root: {\n '& .MuiStepLabel-root.Mui-disabled > .MuiStepLabel-labelContainer': {\n '@media(max-width: 959.95px)': {\n display: 'none',\n },\n },\n },\n },\n MuiStepIcon: {\n root: {\n width: '1.5em',\n height: '1.5em',\n color: grey[400],\n },\n text: {\n fontWeight: 700,\n },\n },\n MuiStepLabel: {\n label: {\n color: grey[400],\n fontSize: 16,\n marginBottom: 0,\n },\n },\n\n // Input disabled\n MuiOutlinedInput: {\n root: {\n '&.Mui-disabled': {\n backgroundColor: grey[400],\n },\n },\n },\n\n MuiFormControl: {\n root: {\n '& + .MuiButton-root': {\n marginTop: applySpacing(1),\n },\n },\n marginNormal: {\n marginBottom: applySpacing(1),\n },\n },\n },\n}, deDE);\n","import { Container, CssBaseline, Theme, ThemeProvider } from '@material-ui/core';\n\nimport AppError from '../AppError';\nimport Bugsnag from '@bugsnag/js'\nimport BugsnagPluginReact from '@bugsnag/plugin-react'\nimport Footer from './Footer';\nimport Header from './Header';\nimport Providers from './Providers';\nimport React from 'react';\nimport {\n BrowserRouter as Router,\n} from 'react-router-dom';\nimport { makeStyles } from '@material-ui/core/styles';\nimport theme from './Theme/Theme';\n\nconst styles = (theme: Theme) => ({\n appBarSpacer: {\n marginBottom: 120,\n ...theme.mixins.toolbar,\n [theme.breakpoints.down('sm')]: {\n marginBottom: 60,\n },\n },\n});\nconst useStyles = makeStyles(styles);\n\n// Get the version from env\nconst buildVersion = [process.env.REACT_APP_VERSION || 'none'];\nif (process.env.REACT_APP_GIT_SHA) {\n buildVersion.push(process.env.REACT_APP_GIT_SHA);\n}\nconst appVersion = buildVersion.join('-');\n\n// Start our bugsnag\nif (process.env.REACT_APP_BUGSNAG_KEY) {\n Bugsnag.start({\n apiKey: process.env.REACT_APP_BUGSNAG_KEY,\n collectUserIp: false,\n appVersion,\n plugins: [new BugsnagPluginReact()],\n });\n}\n\nconst ErrorBoundary = Bugsnag\n .getPlugin('react')!\n .createErrorBoundary(React);\n\ntype Props = {\n children: React.ReactChild,\n};\n\nfunction Layout({ children }: Props) {\n const classes = useStyles();\n return (\n \n \n \n \n
\n \n
\n {/* @ts-ingore */}\n \n {/* @ts-ingore */}\n {children}\n \n