{"version":3,"sources":["api/api.ts","styles/aepPalette.ts","app/components/toggle/toggleStyles.ts","app/components/icons/IconWrapper.tsx","app/components/icons/CollapseIcon.tsx","app/components/toggle/Toggle.tsx","app/components/navitem/navItemStyles.ts","app/components/navitem/NavItem.tsx","app/components/icons/SearchIcon.tsx","app/components/icons/ZackUndDaIcon.tsx","app/components/icons/InvoiceIcon.tsx","app/components/icons/DeliveryIcon.tsx","app/components/icons/SpecialOrdersIcon.tsx","app/components/icons/ArticleIcon.tsx","app/components/icons/DiscoverIcon.tsx","app/components/icons/NewsIcon.tsx","app/components/icons/CollaborationIcon.tsx","styles/aepTypography.ts","assets/fonts/museoSans_W01_300.woff","assets/fonts/museoSans_W01_300_Italic.woff","assets/fonts/museoSans_W01_500.woff","assets/fonts/museoSans_W01_500_Italic.woff","assets/fonts/museoSans_W01_900.woff","assets/fonts/museoSans_W01_900_Italic.woff","styles/AepThemeProvider.tsx","app/components/navbar/navbarStyles.ts","app/components/icons/HomeIcon.tsx","api/base.ts","api/common.ts","app/components/card/AnalysesCard.tsx","api/configuration.ts","app/contexts/UserContext.tsx","app/components/icons/DownloadIcon.tsx","app/contexts/CustomerContext.tsx","app/components/snackbar/Snackbar.tsx","app/contexts/SnackbarContext.tsx","app/wrappers/ApiWrapper.tsx","app/contexts/SpecialOrdersContext.tsx","app/components/navbar/Navbar.tsx","app/hooks/useTablet.ts","app/wrappers/PrivateWrapper.tsx","app/components/grid/dynamicGridStyles.ts","app/components/grid/DynamicGrid.tsx","app/components/card/Card.tsx","app/components/other/TextDivider.tsx","app/components/button/TextButton.tsx","app/components/button/NavButton.tsx","app/pages/dashboard/cards/DashboardCard.tsx","app/components/icons/GraphsIcon.tsx","app/components/chart/chartStyles.ts","app/components/chart/elements/BarChart.tsx","app/hooks/useWindowDimensions.ts","app/components/button/IconButton.tsx","app/components/other/CenteredTextMessage.tsx","app/components/chart/elements/ChartTooltip.tsx","app/components/chart/elements/SwarmPlot.tsx","app/components/other/OneLineTypography.tsx","app/components/chart/Chart.tsx","app/components/chart/charts/PopulatedBarChart.tsx","app/components/chart/charts/PopulatedSwarmPlot.tsx","app/components/carousel/Carousel.tsx","app/components/datepicker/CustomPickersDay.tsx","app/service/CustomDateService.tsx","app/components/documentloader/DocumentLoader.tsx","app/components/card/InfoCard.tsx","app/pages/dashboard/cards/DeliveryShipmentInfoCard.tsx","app/pages/dashboard/cards/LastDeliveriesCard.tsx","app/service/CustomNumberService.tsx","app/pages/dashboard/cards/InvoiceInfoCard.tsx","app/components/icons/InvoicesIcon.tsx","app/pages/dashboard/cards/LastInvoicesCard.tsx","strapi/StrapiApi.ts","app/wrappers/ImageWrapper.tsx","app/pages/dashboard/Dashboard.tsx","app/pages/dashboard/cards/OfferDashboardCard.tsx","app/pages/dashboard/cards/OffersCard.tsx","app/service/CustomArrayService.tsx","app/pages/dashboard/cards/NewsCard.tsx","app/components/table/tableFilter/models.ts","app/components/card/TabableCard.tsx","app/pages/orders/ordersStyles.tsx","app/components/textfield/TextField.tsx","app/components/textfield/CounterField.tsx","app/components/datepicker/dateRangePickerStyles.ts","app/components/datepicker/DateRangePicker.tsx","app/components/datepicker/DatePicker.tsx","app/components/textfield/ChipsField.tsx","app/components/table/tableFilter/filterStyles.ts","app/components/table/tableFilter/FilterTab.tsx","app/components/table/tableFilter/FilterTabsField.tsx","app/components/table/tableFilter/TableFilter.tsx","app/pages/orders/positions/OrderPositionsTable.tsx","app/components/table/TableLoadMoreRow.tsx","app/components/table/tableStyles.tsx","app/components/table/TableContainer.tsx","app/components/table/TableAccordionWrapper.tsx","app/components/table/AnimatedTableRow.tsx","app/components/table/TableAccordionRow.tsx","app/pages/orders/positions/OrderPositionsTableRow.tsx","app/pages/orders/positions/PositionsRowCommonHeader.tsx","app/pages/orders/positions/CancellationPositionsTable.tsx","app/pages/orders/tabs/DailyOrdersSearchContainer.tsx","app/pages/orders/positions/CancellationPositionsTableRow.tsx","app/pages/orders/positions/DispensationPositionsTable.tsx","app/pages/orders/tabs/CancellationsSearchContainer.tsx","app/pages/orders/positions/DispensationPositionsTableRow.tsx","app/pages/deliveries/elements/ReturnSearchContainer.tsx","app/pages/orders/tabs/DispensationsSearchContainer.tsx","app/pages/orders/Orders.tsx","app/pages/deliveries/deliveriesStyles.tsx","app/components/icons/DetailViewIcon.tsx","app/components/table/IconButtonDetailView.tsx","app/pages/deliveries/elements/DeliverySearchTableRow.tsx","app/pages/deliveries/elements/DeliverySearchTable.tsx","app/pages/deliveries/elements/DeliverySearchContainer.tsx","app/pages/deliveries/elements/ReturnSearchTable.tsx","app/pages/receipts/mainTab/ReceiptsSearchContainer.tsx","app/pages/deliveries/Deliveries.tsx","app/pages/deliveries/deliveriesDetails/DeliveryDetailTableFooter.tsx","app/pages/deliveries/deliveriesDetails/DeliveryDetailTableRow.tsx","app/pages/deliveries/deliveriesDetails/DeliveryDetailTable.tsx","app/pages/deliveries/deliveriesDetails/DeliveryDetailCard.tsx","app/pages/deliveries/deliveriesDetails/DeliveriesDetails.tsx","app/components/appbar/appBarStyles.ts","app/components/icons/MailPhoneIcon.tsx","app/components/icons/MailIcon.tsx","app/service/JwtService.tsx","app/components/appbar/elements/PharmacyPicker.tsx","app/components/appbar/elements/UserMenu.tsx","assets/images/AEP-Logo-mit-claim-RGB.svg","app/components/appbar/CustomBadge.tsx","app/components/icons/CountdownIcon.tsx","app/components/appbar/elements/Counter.tsx","app/components/appbar/AppBar.tsx","app/pages/employees/employeesStyles.tsx","app/pages/employees/elements/PermissionChip.tsx","app/pages/employees/elements/PermissionChipDropdown.tsx","app/pages/employees/elements/EmployeePermissions.tsx","app/pages/employees/elements/EmployeeForm.tsx","app/pages/employees/elements/EmployeeAccordion.tsx","app/pages/employees/Employees.tsx","app/pages/news/newsStyles.ts","app/pages/news/NewsItem.tsx","app/pages/news/NewsItemSkeleton.tsx","app/pages/news/NewsItemDetails.tsx","app/pages/news/News.tsx","app/pages/contact/contactStyles.tsx","app/pages/contact/cards/ContactMessageCard.tsx","app/components/card/ContactCard.tsx","app/components/card/SalesContactCard.tsx","app/pages/contact/Contact.tsx","app/pages/offers/OfferCard.tsx","app/pages/offers/offersStyles.ts","app/pages/offers/OfferCardContent.tsx","app/pages/offers/BannerCarousel.tsx","app/pages/offers/Offers.tsx","app/pages/articleAdmissions/articleAdmissionsStyles.ts","app/pages/articleAdmissions/ArticleAdmissionsCard.tsx","app/pages/articleAdmissions/ArticleAdmissions.tsx","app/pages/specialOrders/specialOrdersStyles.ts","app/pages/specialOrders/elements/ErrorMessageOverlay.tsx","app/pages/specialOrders/elements/SpecialOrdersTableRow.tsx","app/pages/specialOrders/elements/SpecialOrdersTable.tsx","app/pages/specialOrders/SpecialOrders.tsx","app/pages/userProfile/userProfileStyles.ts","app/pages/userProfile/UserProfileForm.tsx","app/pages/userProfile/UserProfile.tsx","app/pages/postbox/postBoxStyles.ts","app/pages/postbox/elements/MessageDetailCard.tsx","app/pages/postbox/elements/MessageOverview.tsx","app/pages/postbox/elements/MessagesOverviewCard.tsx","app/pages/postbox/PostBox.tsx","app/wrappers/PageWrapper.tsx","app/pages/receipts/mainTab/ReceiptsSearchTableRow.tsx","app/pages/receipts/mainTab/ReceiptsSearchTable.tsx","app/pages/receipts/statisticTab/FurtherReceiptSearchContainer.tsx","app/pages/receipts/statisticTab/FurtherReceiptsSearchTableRow.tsx","app/pages/receipts/statisticTab/FurtherReceiptsSearchTable.tsx","app/pages/receipts/Receipts.tsx","app/pages/downloads/DownloadsTableRow.tsx","app/pages/downloads/DownloadsTable.tsx","app/pages/downloads/DownloadSearchContainer.tsx","app/pages/downloads/Downloads.tsx","app/App.tsx","serviceWorker.ts","keycloak.ts","app/contexts/ContextsProvider.tsx","index.tsx"],"names":["ArticleAdmissionRequestFrequencyEnum","FurtherReceiptTypeEnum","MessageResponseOriginEnum","PharmacyDtoStatusEnum","PharmacyOwnerDtoStatusEnum","UserDtoPermissionsEnum","aepPalette","common","black","white","base","lightest","lighter","light","main","primary","dark","secondary","darker","warning","error","success","font","other","transparentBlue","transparentBlue2","chartPalette","iconStyles","color","cursor","IconWrapper","props","children","fontSize","sx","viewBox","styles","SvgIcon","component","CollapseIcon","style","transform","flip","d","Toggle","active","iconType","onClick","activeIcon","inactiveIcon","Box","rootBoxStyles","linkStyles","margin","display","alignItems","borderRadius","lineHeight","textDecoration","justifyContent","whiteSpace","linkBoxStyles","padding","paddingLeft","flexDirection","width","backgroundColor","textStyles","overflow","urlLinkStyles","NavItem","icon","minimized","route","text","inside","Collapse","in","marginLeft","includes","href","target","to","isActive","SearchIcon","ZackUndDaIcon","height","fill","xmlns","stroke","strokeWidth","strokeLinecap","strokeLinejoin","InvoiceIcon","DeliveryIcon","SpecialOrdersIcon","ArticleIcon","DiscoverIcon","NewsIcon","CollaborationIcon","aepTypography","fontFamily","h1","fontWeight","letterSpacing","h2","h3","h4","body1","body2","bodyBold","button","subline","caption","small","maxWidth","theme","createTheme","palette","typography","spacing","factor","breakpoints","values","xs","sm","md","lg","xl","components","MuiCssBaseline","styleOverrides","museoSans_W01_300","museoSans_W01_300_Italic","museoSans_W01_500","museoSans_W01_500_Italic","museoSans_W01_900","museoSans_W01_900_Italic","MuiAccordion","defaultProps","disableGutters","root","boxShadow","MuiAccordionSummary","expandIcon","borderTop","content","expandIconWrapper","MuiAlert","variant","message","MuiAppBar","MuiButtonBase","disableRipple","MuiButton","border","textTransform","borderColor","variants","MuiCard","position","MuiCheckbox","svg","MuiChip","px","transition","deleteIcon","MuiFormControl","marginBottom","MuiInput","MuiInputLabel","MuiMenuItem","MuiMobileStepper","dotActive","MuiModal","MuiPickersDay","MuiPopover","paper","marginTop","MuiSelect","inputProps","standard","MuiSnackbar","autoHideDuration","MuiTab","MuiTable","borderCollapse","MuiTableRow","hover","MuiTableCell","borderBottom","head","paddingTop","paddingBottom","MuiTableHead","MuiTextField","minHeight","input","MuiTooltip","arrow","tooltip","MuiTypography","buttonText","MuiYearPicker","deDE","AepTheme","ThemeProvider","CssBaseline","labelStyles","maxHeight","toggleStyles","employeeStyles","down","minWidth","top","left","up","bottom","HomeIcon","BASE_PATH","replace","BaseAPI","configuration","basePath","axios","globalAxios","this","RequiredError","field","msg","name","Error","DUMMY_BASE_URL","assertParamExists","functionName","paramName","paramValue","undefined","setSearchParams","url","searchParams","URLSearchParams","search","objects","object","key","Array","isArray","delete","item","append","set","toString","serializeDataIfNeeded","value","requestOptions","nonString","isJsonMime","headers","JSON","stringify","toPathString","pathname","hash","createRequestFunction","axiosArgs","axiosRequestArgs","options","request","AnalysisData","AnalysisControllerApiFp","localVarAxiosParamCreator","getData","customerNumber","analysisType","months","a","localVarPath","encodeURIComponent","String","localVarUrlObj","URL","baseOptions","localVarRequestOptions","method","localVarHeaderParameter","localVarQueryParameter","headersFromBaseOptions","AnalysisControllerApiAxiosParamCreator","localVarAxiosArgs","AnalysisControllerApi","then","ArticleAdmissionControllerApiFp","postArticleAdmission","articleAdmissionRequest","data","ArticleAdmissionControllerApiAxiosParamCreator","ArticleAdmissionControllerApi","CancellationsControllerApiFp","getAllCancellations","CancellationsControllerApiAxiosParamCreator","CancellationsControllerApi","CounterControllerApiFp","getCounter","CounterControllerApiAxiosParamCreator","CounterControllerApi","DeliveriesControllerApiFp","getAllDeliveries","pageNumber","pageLimit","sortByDateDesc","pzn","fromDate","toDate","deliveryNoteId","getDeliveryById","DeliveriesControllerApiAxiosParamCreator","DeliveriesControllerApi","DispensationsControllerApiFp","getAllDispensations","DispensationsControllerApiAxiosParamCreator","DispensationsControllerApi","DocumentsControllerApiFp","getDocument","documentId","documentDate","documentType","Date","toISOString","substr","getDocumentAsBase64","DocumentsControllerApiAxiosParamCreator","DocumentsControllerApi","FurtherReceiptsControllerApiFp","getFurtherReceipts","receiptType","articleName","supplierName","batchNumber","getFurtherReceiptsAsCSV","FurtherReceiptsControllerApiAxiosParamCreator","FurtherReceiptsControllerApi","InvoicesControllerApiFp","getAllInvoices","InvoicesControllerApiAxiosParamCreator","InvoicesControllerApi","MessageControllerApiFp","getAllMessages","getUnreadMessageCount","patchMessage","messageId","messagePatchRequest","postMessage","messageRequest","MessageControllerApiAxiosParamCreator","MessageControllerApi","OrdersControllerApiFp","cancelOrderPositions","cancelDto","getAllOrders","triggerReturn","triggerReturnRequestDto","OrdersControllerApiAxiosParamCreator","OrdersControllerApi","ReceiptsControllerApiFp","getAllReceipts","ReceiptsControllerApiAxiosParamCreator","ReceiptsControllerApi","ReturnsControllerApiFp","getAllReturns","state","ReturnsControllerApiAxiosParamCreator","ReturnsControllerApi","SpecialOrdersControllerApiFp","getSpecialOrders","postSpecialOrder","specialOrderRequest","SpecialOrdersControllerApiAxiosParamCreator","SpecialOrdersControllerApi","UserControllerApiFp","createUser","userDto","deleteUser","userName","getAllUsers","getUser","getUserProfile","updateUser","updateUserProfile","userProfileDto","UserControllerApiAxiosParamCreator","UserControllerApi","Configuration","param","apiKey","username","password","accessToken","formDataCtor","mime","jsonMime","RegExp","test","toLowerCase","UserContext","React","createContext","checkUserRole","userRoles","updateUserRoles","userFullName","updateUserFullName","updateUserName","UserContextProvider","useState","setUserRoles","setuserFullName","setUserName","Provider","roles","Admin","some","current","DownloadIcon","bg","downloading","dlIconSx","boxSizing","CircularProgress","textAlign","CustomerContext","updateCustomerNumber","unreadMessageCount","updateUnreadMessageCount","count","CustomerContextProvider","setCustomerNumber","setUnreadMessageCount","Snackbar","alertprops","snackbarProps","Alert","Stack","direction","split","multilineSeparator","map","messageFragment","i","Typography","mt","SnackbarContext","showSnackbar","handleHttpError","handleError","handleCancelOrderPositions","SnackbarContextProvider","open","setOpen","severity","setSeverity","setMessage","setAutoHideDuration","newSeverity","newMessage","e","console","log","response","errorMessage","positions","failedPositionErrors","onCancelSuccess","failedPositions","errorObj","orderObject","succesfulPositions","filter","failedPosition","orderPosition","length","errArr","successArr","concat","join","onClose","ApiWrapper","useKeycloak","keycloak","token","window","_env_","REACT_APP_API_URL","authorization","deliveriesControllerApi","ordersControllerApi","dispensationsControllerApi","cancellationsControllerApi","userControllerApi","documentsControllerApi","invoicesControllerApi","messageControllerApi","counterControllerApi","specialOrdersControllerApi","articleAdmissionControllerApi","analysisControllerApi","receiptsControllerApi","furtherReceiptsControllerApi","returnsControllerApi","SpecialOrdersContext","specialOrderResponses","specialOrderRequests","updateSpecialOrderRequests","containsSpecialOrderRequest","loading","loadSpecialOrders","postOrders","setSelectedOrderIds","SpecialOrdersContextProvider","api","useContext","setLoading","setSpecialOrderRequests","setSpecialOrderResponses","res","catch","finally","useEffect","Bestellungen","orderRequests","failedOrders","successfulOrders","order","wasSuccess","wasFailure","unshift","alteredSpecialOrderRequest","remove","stateSlice","slice","indexToAlter","findIndex","orderRequest","id","splice","push","orderRequestId","BelegePermissions","Lieferscheine","Monatsberichte","Nachbelastungen","Gutschriften","Sammelrechnungen","Navbar","timeout","submenuExpanded","setSubmenuExpanded","innerWidth","sidebarExpanded","setSidebarExpanded","userExpansionSetting","setUserExpansionSetting","ml","orientation","pb","Statistiken","AepImBlick","PrivateWrapper","initialized","authenticated","login","gridBoxStyles","flexGrow","gap","gridTemplateColumns","gridTemplateRows","DynamicGrid","shownCardIds","cardRenderObjects","xlInitialGrid","xsInitialGrid","xlGrid","setXlGrid","xsGrid","setXsGrid","limitGridSize","stretchArr","arr","uniqueCells","cell","forEach","sort","resizeGrid","grid","horizStretchedGrid","row","dashboardCardId","processedColumns","column","finalRows","parseGridColumn","cardId","gridSize","startCol","endCol","j","parseGridRow","startRow","endRow","newXlGrid","newXsGrid","cardObj","FC","createElement","gridColumn","gridRow","renderCard","Card","shrink","image","initialLoadingComplete","innerBoxStyles","innerRef","Grow","growTimeout","ref","bgcolor","Fade","fadeTimeout","mountOnEnter","unmountOnExit","LinearProgress","zIndex","alt","src","objectFit","TextDivider","borderLeft","TextButton","NavButton","back","py","marginRight","DashboardCard","header","pt","right","GraphsIcon","modalBoxStyles","headerStyles","chartTheme","textColor","BarChart","chartData","mini","xlabel","ylabel","unit","columnData","setColumnData","keys","setKeys","formatCategoricalData","barSegmentKeys","columnKeys","sortPositions","dataPoint","label","sortPosition","x","parseData","columnKey","index","ySegments","sortBySortPosition","flattenedObject","segment","y","generateColumnData","colorBy","colors","groupMode","indexBy","layout","valueFormat","Intl","NumberFormat","currency","format","from","modifiers","axisBottom","tickSize","tickPadding","tickRotation","legend","legendPosition","legendOffset","axisLeft","enableGridX","enableGridY","enableLabel","labelSkipWidth","labelSkipHeight","labelTextColor","isInteractive","legends","anchor","dataFrom","itemWidth","itemHeight","translateY","itemsSpacing","role","ariaLabel","barAriaLabel","formattedValue","indexValue","getWindowDimensions","innerHeight","useWindowDimensions","windowDimensions","setWindowDimensions","handleResize","addEventListener","removeEventListener","IconButton","disabled","CeneteredTextMessage","ChartTooltip","p","mr","SwarmPlot","nodeSizeLabel","groups","setGroups","nodeSizeValues","setNodeSizeValues","yAxisMin","setYAxisMin","yAxisMax","setYAxisMax","groupsArr","minSize","maxSize","yValues","datapoint","b","minY","Math","floor","min","maxY","ceil","max","size","groupsArrIntegers","parseInt","maxX","minX","NaN","fullRangeX","xVal","groupBy","valueScale","type","reverse","sizes","scheme","axisTop","axisRight","CenteredTextMessage","OneLineTypography","tooltipPlacement","renderText","textOverflow","Tooltip","title","placement","Chart","containerRef","fullData","inCarousel","upliftMiniState","defaultHeight","clientHeight","setMini","modalOpen","setModalOpen","setHeight","containerWidth","clientWidth","hasData","handleClick","renderChart","full","opacity","headline","Modal","PopulatedBarChart","dataSet","liftLoadingState","barChartData","setBarChartData","fullBarChartData","setFullBarChartData","isApiSubscribed","sixMonthsPromise","err","thirteenMonthsPromise","Promise","all","swarmPlotDataSwarmPlot","swarmPlotData","setSwarmPlotData","filteredSwarmPlotData","setFilteredSwarmPlotData","filteredResponse","Object","assign","bottomLimit","getDate","Carousel","maxSteps","useTheme","activeStep","setActiveStep","autoScrollTimer","setAutoScrollTimer","handleNext","clear","prevActiveStep","clearInterval","interval","setInterval","axis","onChangeIndex","step","enableMouseEvents","MobileStepper","steps","nextButton","backButton","AnalysesCard","cardRef","useRef","loadingPACKMON","setLoadingPACKMON","loadingUMSMON","setLoadingUMSMON","loadingBESTZEIT","setLoadingBESTZEIT","loadingCondition","PACKMON","UMSMON","BESTZEIT","Analysen","PopulatedSwarmPlot","CustomPickersDay","styled","PickersDay","shouldForwardProp","prop","dayIsBetween","isFirstDay","isLastDay","borderTopLeftRadius","borderBottomLeftRadius","borderBottomRightRadius","borderTopRightRadius","ddmmyyyyFormat","date","day","month","getMonth","year","getFullYear","deDateStringFormat","reformatDateString","dateString","stringToDate","parts","extractDatesFromPeriod","period","utcToGermanDateString","utcString","excludeTimestamp","returnDate","toLocaleString","DocumentLoader","isNotNull","isDownloadable","stopPropagation","stringToYMD","element","document","setAttribute","click","InfoCard","download","headerValue","key1","key1Value","key2","key2Value","multilineHeader","pr","pl","deliverInfoCardStyles","mb","DeliveryShipmentInfoCard","deliveryNo","deliveryDate","navigate","useNavigate","LastDeliveriesCard","deliveries","setDeliveries","Skeleton","animation","delivery","toCurrency","amount","invoiceInfoCardStyles","InvoiceInfoCard","invoice","invoiceId","invoiceDate","billingAmount","invoiceType","tooltipContent","InvoicesIcon","LastInvoicesCard","invoices","setInvoices","fadeIn","StrapiApi","axiosRequestConfig","baseURL","Authorization","selectedTab","searchTerms","queryString","term","DashboardCardIds","ImageWrapper","containerSx","boxProps","objectTagType","typographyInfoStyles","OfferDashboardCard","offerAttributes","baseUrl","artikelName","bild","mindestmenge","packungsgroesse","preis","rabatt","attributes","OffersCard","strapiApi","offers","setOffers","getDashboardOffers","shuffledOffers","array","randomIndex","currentIndex","random","shuffleArr","getTopOffer","topOffers","dashboard","NewsCard","article","setArticle","getLatesttArticle","articleArr","heroBild","titel","teaserText","TableFilterType","Dashboard","cardsToShow","setCardsToShow","adminConfig","DELIVERY","LAST_DELIVERIES","LAST_INVOICES","OFFERS","ANALYSES","NEWS","bestellungenConfig","lieferscheineConfig","sammelrechnungenConfig","analysenConfig","aepImBlickConfig","cards","mapCardsToRoles","TabableCard","tabs","setTabs","currentTabIndex","setCurrentTabIndex","tabsFromChildren","parseTabsFromChildren","Tabs","indicatorColor","onChange","_event","newValue","tab","Tab","CardTabContent","Textfield","CounterField","changeCount","InputLabelProps","onBlur","DateRangePicker","dateRange","setDateRange","toggleDatePicker","dateRangeString","setDateRangeString","errMsg","setErrMsg","minDate","maxDate","isValidDateStringInRange","dateObj","parse","locale","de","isValid","getTime","isValidDateString","val","helperText","maxLength","startDate","endDate","startDateString","trim","endDateString","replaceAll","indexOf","endsWith","placeholder","inputFormat","mask","selectedDate","getDay","PopperProps","anchorEl","getElementById","renderDay","selectedDates","pickersDayProps","start","end","isWithinInterval","isSameDay","disableMargin","renderWeekPickerDay","renderInput","showTodayButton","clearable","DatePicker","range","setValue","reset","setDate","isDatePickerOpen","setIsDatePickerOpen","mx","InputAdornmentProps","params","ChipsField","setValues","setCurrentValue","currentValue","handleDelete","event","valueToRemove","parentElement","innerText","prevState","onKeyDown","preventDefault","InputProps","flexFlow","startAdornment","Chip","onDelete","searchFieldStyles","textFieldStyles","dropDownStyles","cardStyles","paddingRight","cardInnerBoxStyles","searchIconStyles","clearIconStyles","buttonStyles","buttonSecondaryStyles","FilterTab","selected","FilterTabsField","menuItems","OrderPositionStatus","TableFilter","initialValues","onSubmit","resetSearchParameters","searchFields","handleResetRows","triggerSubmit","handleResetFilter","resetChildren","setResetChildren","setSelectedTab","setSearchTerms","currentsearchTerm","setCurrentSearchTerm","initialLoadComplete","setInitialLoadComplete","hasChips","chips","hasDateRange","hasTabs","submitPageSearch","setSubmitting","loadMore","setTimeout","validate","errors","searchField","validationFunction","touched","handleChange","handleBlur","handleReset","handleSubmit","isSubmitting","submitForm","renderSearchField","textfield","TextField","dropdown","FormControl","InputLabel","Select","menuItem","MenuItem","handleResetAll","numberOfSearchFields","overrides","searchFieldsInCardArea","columnGap","Button","startIcon","TableLoadMoreRow","loadCallback","hide","limitedRowStyles","rootContainerStackStyles","submitButtonStyles","justifySelf","containerCardStyles","containerCardBoxStyles","fullSizeRows","hasDetailViewSwitch","overflowX","containerControlStackStyles","selectableRows","tablePageDefaultLength","TableContainer","buttonAction","fullSizeRowsInit","hasButtonCounter","liftStateToParent","noData","noDataMessage","noInitialApiCall","pageable","preselectedRows","Table","tableFilterProps","setLoadMore","loadMoreLocked","setLoadMoreLocked","setfullSizeRows","setInitialLoadingComplete","setResetSearchParameters","selectedRows","setSelectedRows","tableRef","setCount","newCount","throttleLoadMore","handleLoadMore","tableEl","reachedBottom","scrollTop","scrollHeight","offsetHeight","changed","loadCallbackOverride","allSelected","ids","handleSelectAll","rowIds","rowsAlreadyInSelection","rowId","rowsToAdd","containsAll","every","handleSelectRow","selectedIndex","newSelected","idx","isSelected","my","FormControlLabel","control","Switch","checked","counter","renderButton","TableAccordionWrapper","tableHeader","stickyHeader","TableBody","AnimatedTableRow","transitionDelay","render","setRender","TableRow","transitionProperty","TableAccordionRow","expanded","handleExpansion","Accordion","AccordionSummary","AccordionDetails","OrderPositionsTableRow","positionData","positionId","TableCell","align","stateNumber","OPEN_NUMBER","Checkbox","quantity","PositionsRowCommonHeader","CancellationPositionStatus","OrderPositionsTable","positionIds","openPositions","showSelectAll","TableHead","DailyOrdersSearchContainer","orders","setOrders","shownOrders","setShownOrders","selectedOrderPositions","setSelectedOrderPositions","loadOrders","orderCancelDtos","orderIds","selectedOrdersData","orderNoteId","ordersToCancel","orderData","orderNotePositions","cancelDtoObj","orderId","generateCancelDtoObjects","filterPzn","searchPzn","orderNotePosition","newShownOrders","orderDate","CancellationPositionsTableRow","CancellationPositionsTable","CancellationsSearchContainer","cancellations","setCancellations","shownCancellations","setShownCancellations","setSelectedCancellationPositions","cancellationPosition","newShownCancellations","cancellation","cancellationPositions","cancellationId","DispensationPositionsTableRow","ReturnState","DispensationPositionsTable","DispensationsSearchContainer","dispensations","setDispensations","shownDispensations","setShownDispensations","selectedDispensationPositions","setSelectedDispensationPositions","cancelApi","loadDispensations","dispensationCancelDtos","dispensationIds","dispensationPosition","selectedDispensationsData","dispensation","dispensationId","dispensationsToCancel","dispensationData","dispensationPositions","newShownDispensations","expiryDate","Orders","DetialViewIcon","IconButtonDetailView","DeliverySearchTableRow","labelId","deliveryState","deliveryStateNumber","DeliverySearchTable","DeliverySearchContainer","setPageNumber","stateValue","newDeliveries","existingDeliveries","prevPageNumber","ReturnSearchTable","returnPositionsData","returnPositionData","price","description","solution","ReceiptType","ReturnSearchContainer","returns","setReturns","returnsApi","ordersApi","EMPTY","newReturns","existingReturns","OPEN","IN_PROGRESS","CLOSED","returnData","registrationDate","returnNumber","collectionDate","boxes","returnPositions","Deliveries","DeliveryDetailTableFooter","sumNetto","TableFooter","taxTypes","U19","U7","U07","DeliveryDetailTableRow","orderedQuantity","tax","mark","DeliveryDetailTable","deliveryNotePositions","DeliveryDetailCard","deliveryId","setDelivery","setExpanded","DeliveriesDetails","useLocation","initialRender","setInitialRender","rootStyles","containerStyles","leftContainerStyles","imageStyles","greetingStyles","greetingStylesTablet","rightContainerStyles","selectStyles","avatarStyles","textDividerStyles","counterStyles","MailIcon","getPharmacies","getTokenBody","getJwtGroups","getJwtRoles","realm_access","permissionName","Postfach","Stammdaten","fromKeycloakRoleString","bodyText","atob","bodyTextUTF8","decodeURIComponent","c","charCodeAt","char","PharmacyPicker","mainPharmacy","defaultPharmacy","pharmacy","setPharmacy","updateSelection","selectedId","getAllPharmacies","group","nameParts","localeCompare","pharmacies","entry","menuItemStyles","UserMenu","Popover","anchorOrigin","vertical","horizontal","transformOrigin","logout","CustomBadge","badgeContent","CountdownIcon","Counter","sanitizedModalHtml","showCounter","setShowCounter","dangerouslySetInnerHTML","__html","AppBar","hasCounter","counterApi","messageApi","bodyRef","greeting","setGreeting","setBoxShadow","sanitizedCounterModalHtml","setSanitizedCounterModalHtml","userMenuOpen","setUserMenuOpen","avatarRef","user","initials","tokenParsed","given_name","charAt","family_name","formatInitials","renderGreeting","tablet","localTime","getHours","generateGreeting","addScrollEventToBody","sanitizedHTML","sanitizeHtml","allowedTags","AepLogo","MailPhoneIcon","Avatar","employeesTimeout","topBoxStyles","inputColumnStackStyles","inputColumnStyles","formTextFieldStyles","expandMoreIconStyles","permissionChipDropdownBoxOuterStyles","permissionChipDropdownBoxInnerStyles","PermissionChip","checkAccessRights","m","PermissionChipDropdown","childPermissions","parentRef","offsetWidth","EmployeePermissions","permissions","setPermissions","requiredPermissions","handleUpdateChip","pageName","permission","pageNames","EmployeeForm","shown","employeeData","newEmployee","userCreated","pwFillerString","firstName","lastName","initialPassword","initialPasswordRepeat","email","handleEmployeesError","loadUser","hasValidEmail","apiValues","fullWidth","float","EmployeeAccordion","loadUsers","rowValue","isDeleting","setIsDeleting","Employees","isError","setError","addNewEmployee","setAddNewEmployee","employees","setEmployees","expandedIndex","setExpandedIndex","employee","itemRootStackStyles","itemImageWrapperStyles","itemDisplayDateStyles","itemHeaderStyles","itemTeaserTextStyles","itemNavButtonStyles","itemDetailsRootStackStyles","arrowUpwardsStyles","NewsItem","toggleDetailView","gueltigVon","displayDate","bildUrl","img","NewsSkeleton","NewsItemDetails","htmlString","markdownConverter","showdown","Converter","lastInList","bodyTextHtml","makeHtml","li","ol","ul","blockquote","News","articles","setArticles","detailView","setDetailView","scrollIntoView","getAllArticles","NewsItemSkeleton","gridContainerStyles","contactCardTypographyStyles","subject","ContactMessageCard","form","resetForm","userid","status","multiline","minRows","maxRows","ContactCard","isArticleAdmission","contactInfo","emailaddresse","telefonnummer","erreichbarkeit","faxnummer","SalesContactCard","vorname","toUpperCase","nachname","Contact","contacts","setContacts","salesContacts","setSalesContacts","getContacts","getSalesContacts","Grid","container","OfferCard","highlight","rowGap","imageWrapperContainerStyles","teaserTextBoxStyles","teaserTextStyles","infoBoxOneStyles","infoBoxTwoStyles","OfferCardContent","halfWidth","teasertext","teaserTextShown","BannerCarousel","banners","banner","Offers","highlightOffers","setHighlightOffers","priceHitOffers","setPriceHitOffers","setBanners","getCategorizedOffers","resHighLightOffers","dailyOffer","offer","kategorie","filterHighlightOffers","resPriceHitOffers","filterPriceHitOffers","getUncategorizedOffers","getBanners","rootCardStyles","inputLabelStyles","frequency","ArticleAdmissionsCard","setFrequency","match","Daily","Weekly","Monthly","ArticleAdmissions","tableCellStyles","tableCellInputStyles","outline","ErrorMessageOverlay","borderRight","SpecialOrdersTableRow","setQuantity","inputTouched","setInputTouched","setInitialized","packageSize","aek","newQuantity","valueAsNumber","isNaN","onFocus","validUntil","SpecialOrdersTable","SpecialOrders","categorizeOrders","allCategories","category","Set","ordersInCategory","s","UserProfileForm","userData","passwordInputProps","autoComplete","passwordRepeat","UserProfile","setUserData","overviewCardStyles","verticalDividerStyles","overviewStackStyles","overviewInnerStackStyles","overviewStatusBoxStyles","detailCardStyles","detailStackStyles","inlineText","messageBodyStyles","messageBodyTextStyles","MessageDetailCard","selectedMessage","messageEl","innerHTML","creationDate","MessageOverview","unread","messageUnread","setMessageUnread","origin","computeMessageStateText","computeMessageStateColor","MessagesOverviewCard","messages","setSelectedMessage","readByPortal","PostBox","setMessages","PageWrapper","scrollable","ReceiptsSearchTableRow","receiptId","compressReceiptType","receiptName","receiptDate","Lieferschein","ReceiptsSearchTable","receipts","Gutschrift","Monatsbericht","Nachbelastung","Sammelrechnung","ReceiptsSearchContainer","setMenuItems","setSelectableRows","setReceipts","setNoDataMessage","permissionObj","generateMenuItemsFromPermissions","receiptNumber","newReceipts","existingReceipts","docType","boxNumber","FurtherReceiptsSearchTableRow","FurtherReceiptSearchContainer","setDownloading","searchParamsState","setSearchParamsState","Defekt","Charge","Hochp","Reimp","Tfg","Tierarz","Aeppr","Aeppl","Logvg","Valuta","Uebw","Index","Btm","Maxnl","FurtherReceiptsSearchTable","Receipts","DownloadsTableRow","downloadData","downloadUrl","datei","infotext","createdAt","DownloadsTable","downloads","DownloadSearchContainer","setDownloads","downloadCategories","setDownloadCategories","extractCategoreis","dlCategory","v","getDownloadCategories","categories","getDownloads","Downloads","App","preferred_username","getUserName","className","path","Boolean","location","hostname","keycloakConfig","REACT_APP_KEYCLOAK_URL","realm","clientId","REACT_APP_KEYCLOAK_CLIENT_ID","Keycloak","ContextsProvider","ReactDOM","StrictMode","LocalizationProvider","dateAdapter","AdapterDateFns","authClient","initOptions","onEvent","updateToken","AepThemeProvider","basename","navigator","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.15293ce0.chunk.js","sourcesContent":["/* tslint:disable */\n/* eslint-disable */\n/**\n * AEP Portal Backend\n * AEP Portal Backend\n *\n * The version of the OpenAPI document: v0.0.1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport { Configuration } from './configuration';\nimport globalAxios, { AxiosPromise, AxiosInstance, AxiosRequestConfig } from 'axios';\n// Some imports not used depending on template conditions\n// @ts-ignore\nimport { DUMMY_BASE_URL, assertParamExists, setApiKeyToObject, setBasicAuthToObject, setBearerAuthToObject, setOAuthToObject, setSearchParams, serializeDataIfNeeded, toPathString, createRequestFunction } from './common';\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS, RequestArgs, BaseAPI, RequiredError } from './base';\n\n/**\n * \n * @export\n * @interface ArticleAdmissionRequest\n */\nexport interface ArticleAdmissionRequest {\n /**\n * \n * @type {string}\n * @memberof ArticleAdmissionRequest\n */\n 'pzn': string;\n /**\n * \n * @type {string}\n * @memberof ArticleAdmissionRequest\n */\n 'frequency': ArticleAdmissionRequestFrequencyEnum;\n /**\n * \n * @type {number}\n * @memberof ArticleAdmissionRequest\n */\n 'amount': number;\n}\n\n/**\n * @export\n * @enum {string}\n */\nexport enum ArticleAdmissionRequestFrequencyEnum {\n Daily = 'Daily',\n Weekly = 'Weekly',\n Monthly = 'Monthly'\n}\n\n/**\n * \n * @export\n * @interface CancelDto\n */\nexport interface CancelDto {\n /**\n * \n * @type {string}\n * @memberof CancelDto\n */\n 'orderId': string;\n /**\n * \n * @type {string}\n * @memberof CancelDto\n */\n 'orderPosition': string;\n /**\n * \n * @type {string}\n * @memberof CancelDto\n */\n 'pzn': string;\n}\n/**\n * \n * @export\n * @interface CancelErrorDto\n */\nexport interface CancelErrorDto {\n /**\n * \n * @type {CancelDto}\n * @memberof CancelErrorDto\n */\n 'orderObject'?: CancelDto;\n /**\n * \n * @type {number}\n * @memberof CancelErrorDto\n */\n 'errorCode'?: number;\n /**\n * \n * @type {string}\n * @memberof CancelErrorDto\n */\n 'errorMessage'?: string;\n}\n/**\n * \n * @export\n * @interface CancellationDto\n */\nexport interface CancellationDto {\n /**\n * \n * @type {string}\n * @memberof CancellationDto\n */\n 'cancellationId': string;\n /**\n * \n * @type {string}\n * @memberof CancellationDto\n */\n 'label'?: string;\n /**\n * \n * @type {string}\n * @memberof CancellationDto\n */\n 'orderDate'?: string;\n /**\n * \n * @type {Array}\n * @memberof CancellationDto\n */\n 'cancellationPositions'?: Array;\n}\n/**\n * \n * @export\n * @interface CancellationPositionDto\n */\nexport interface CancellationPositionDto {\n /**\n * \n * @type {string}\n * @memberof CancellationPositionDto\n */\n 'positionId': string;\n /**\n * \n * @type {string}\n * @memberof CancellationPositionDto\n */\n 'articleName'?: string;\n /**\n * \n * @type {string}\n * @memberof CancellationPositionDto\n */\n 'pzn': string;\n /**\n * \n * @type {string}\n * @memberof CancellationPositionDto\n */\n 'state'?: string;\n /**\n * \n * @type {number}\n * @memberof CancellationPositionDto\n */\n 'stateNumber'?: number;\n /**\n * \n * @type {number}\n * @memberof CancellationPositionDto\n */\n 'quantity'?: number;\n}\n/**\n * \n * @export\n * @interface CounterDto\n */\nexport interface CounterDto {\n /**\n * \n * @type {string}\n * @memberof CounterDto\n */\n 'customerNumber'?: string;\n /**\n * \n * @type {string}\n * @memberof CounterDto\n */\n 'content'?: string;\n /**\n * \n * @type {string}\n * @memberof CounterDto\n */\n 'creationTimestamp'?: string;\n}\n/**\n * \n * @export\n * @interface DeliveryDto\n */\nexport interface DeliveryDto {\n /**\n * \n * @type {string}\n * @memberof DeliveryDto\n */\n 'deliveryNoteId': string;\n /**\n * \n * @type {string}\n * @memberof DeliveryDto\n */\n 'deliveryDate'?: string;\n /**\n * \n * @type {string}\n * @memberof DeliveryDto\n */\n 'deliveryState'?: string;\n /**\n * \n * @type {number}\n * @memberof DeliveryDto\n */\n 'deliveryStateNumber'?: number;\n /**\n * \n * @type {Array}\n * @memberof DeliveryDto\n */\n 'deliveryNotePositions'?: Array;\n /**\n * \n * @type {number}\n * @memberof DeliveryDto\n */\n 'sumLowTax'?: number;\n /**\n * \n * @type {number}\n * @memberof DeliveryDto\n */\n 'sumHighTax'?: number;\n /**\n * \n * @type {number}\n * @memberof DeliveryDto\n */\n 'sumNetto'?: number;\n}\n/**\n * \n * @export\n * @interface DeliveryNotePositionDto\n */\nexport interface DeliveryNotePositionDto {\n /**\n * \n * @type {string}\n * @memberof DeliveryNotePositionDto\n */\n 'positionId': string;\n /**\n * \n * @type {number}\n * @memberof DeliveryNotePositionDto\n */\n 'orderedQuantity': number;\n /**\n * \n * @type {number}\n * @memberof DeliveryNotePositionDto\n */\n 'deliveredQuantity'?: number;\n /**\n * \n * @type {string}\n * @memberof DeliveryNotePositionDto\n */\n 'articleName'?: string;\n /**\n * \n * @type {string}\n * @memberof DeliveryNotePositionDto\n */\n 'pzn': string;\n /**\n * \n * @type {number}\n * @memberof DeliveryNotePositionDto\n */\n 'price': number;\n /**\n * \n * @type {string}\n * @memberof DeliveryNotePositionDto\n */\n 'tax'?: string;\n /**\n * \n * @type {string}\n * @memberof DeliveryNotePositionDto\n */\n 'mark'?: string;\n /**\n * \n * @type {string}\n * @memberof DeliveryNotePositionDto\n */\n 'state'?: string;\n}\n/**\n * \n * @export\n * @interface DispensationDto\n */\nexport interface DispensationDto {\n /**\n * \n * @type {string}\n * @memberof DispensationDto\n */\n 'dispensationId': string;\n /**\n * \n * @type {string}\n * @memberof DispensationDto\n */\n 'label'?: string;\n /**\n * \n * @type {string}\n * @memberof DispensationDto\n */\n 'orderDate'?: string;\n /**\n * \n * @type {string}\n * @memberof DispensationDto\n */\n 'expiryDate'?: string;\n /**\n * \n * @type {Array}\n * @memberof DispensationDto\n */\n 'dispensationPositions'?: Array;\n}\n/**\n * \n * @export\n * @interface DispensationPositionDto\n */\nexport interface DispensationPositionDto {\n /**\n * \n * @type {string}\n * @memberof DispensationPositionDto\n */\n 'positionId': string;\n /**\n * \n * @type {string}\n * @memberof DispensationPositionDto\n */\n 'articleName'?: string;\n /**\n * \n * @type {string}\n * @memberof DispensationPositionDto\n */\n 'pzn': string;\n /**\n * \n * @type {string}\n * @memberof DispensationPositionDto\n */\n 'state'?: string;\n /**\n * \n * @type {number}\n * @memberof DispensationPositionDto\n */\n 'stateNumber'?: number;\n /**\n * \n * @type {number}\n * @memberof DispensationPositionDto\n */\n 'quantity'?: number;\n}\n/**\n * \n * @export\n * @interface FurtherReceiptDto\n */\nexport interface FurtherReceiptDto {\n /**\n * \n * @type {string}\n * @memberof FurtherReceiptDto\n */\n 'docType'?: string;\n /**\n * \n * @type {number}\n * @memberof FurtherReceiptDto\n */\n 'deliveryNoteId'?: number;\n /**\n * \n * @type {string}\n * @memberof FurtherReceiptDto\n */\n 'deliveryDate'?: string;\n /**\n * \n * @type {string}\n * @memberof FurtherReceiptDto\n */\n 'pzn'?: string;\n /**\n * \n * @type {string}\n * @memberof FurtherReceiptDto\n */\n 'articleName'?: string;\n /**\n * \n * @type {string}\n * @memberof FurtherReceiptDto\n */\n 'supplierName'?: string;\n /**\n * \n * @type {number}\n * @memberof FurtherReceiptDto\n */\n 'amount'?: number;\n /**\n * \n * @type {number}\n * @memberof FurtherReceiptDto\n */\n 'price'?: number;\n /**\n * \n * @type {string}\n * @memberof FurtherReceiptDto\n */\n 'boxNumber'?: string;\n /**\n * \n * @type {string}\n * @memberof FurtherReceiptDto\n */\n 'batchNumber'?: string;\n}\n/**\n * \n * @export\n * @enum {string}\n */\n\nexport enum FurtherReceiptTypeEnum {\n Defekt = 'DEFEKT',\n Charge = 'CHARGE',\n Hochp = 'HOCHP',\n Reimp = 'REIMP',\n Tfg = 'TFG',\n Tierarz = 'TIERARZ',\n Aeppr = 'AEPPR',\n Aeppl = 'AEPPL',\n Logvg = 'LOGVG',\n Valuta = 'VALUTA',\n Uebw = 'UEBW',\n Index = 'INDEX',\n Btm = 'BTM',\n Maxnl = 'MAXNL'\n}\n\n/**\n * \n * @export\n * @interface InvoiceDto\n */\nexport interface InvoiceDto {\n /**\n * \n * @type {string}\n * @memberof InvoiceDto\n */\n 'invoiceId': string;\n /**\n * \n * @type {string}\n * @memberof InvoiceDto\n */\n 'invoiceDate': string;\n /**\n * \n * @type {string}\n * @memberof InvoiceDto\n */\n 'invoiceType'?: string;\n /**\n * \n * @type {number}\n * @memberof InvoiceDto\n */\n 'billingAmount'?: number;\n}\n/**\n * \n * @export\n * @interface MessageCounterResponse\n */\nexport interface MessageCounterResponse {\n /**\n * \n * @type {number}\n * @memberof MessageCounterResponse\n */\n 'count': number;\n}\n/**\n * \n * @export\n * @interface MessagePatchRequest\n */\nexport interface MessagePatchRequest {\n /**\n * \n * @type {boolean}\n * @memberof MessagePatchRequest\n */\n 'readByPortal'?: boolean;\n}\n/**\n * \n * @export\n * @interface MessageRequest\n */\nexport interface MessageRequest {\n /**\n * \n * @type {string}\n * @memberof MessageRequest\n */\n 'subject': string;\n /**\n * \n * @type {string}\n * @memberof MessageRequest\n */\n 'userid': string;\n /**\n * \n * @type {string}\n * @memberof MessageRequest\n */\n 'message': string;\n}\n/**\n * \n * @export\n * @interface MessageResponse\n */\nexport interface MessageResponse {\n /**\n * \n * @type {number}\n * @memberof MessageResponse\n */\n 'id': number;\n /**\n * \n * @type {string}\n * @memberof MessageResponse\n */\n 'subject': string;\n /**\n * \n * @type {string}\n * @memberof MessageResponse\n */\n 'userid': string;\n /**\n * \n * @type {string}\n * @memberof MessageResponse\n */\n 'message': string;\n /**\n * \n * @type {number}\n * @memberof MessageResponse\n */\n 'state': number;\n /**\n * \n * @type {string}\n * @memberof MessageResponse\n */\n 'creationDate': string;\n /**\n * \n * @type {string}\n * @memberof MessageResponse\n */\n 'origin': MessageResponseOriginEnum;\n /**\n * \n * @type {boolean}\n * @memberof MessageResponse\n */\n 'readByPortal': boolean;\n}\n\n/**\n * @export\n * @enum {string}\n */\nexport enum MessageResponseOriginEnum {\n Aep = 'AEP',\n Portal = 'PORTAL'\n}\n\n/**\n * \n * @export\n * @interface OrderDto\n */\nexport interface OrderDto {\n /**\n * \n * @type {string}\n * @memberof OrderDto\n */\n 'orderNoteId': string;\n /**\n * \n * @type {string}\n * @memberof OrderDto\n */\n 'label'?: string;\n /**\n * \n * @type {string}\n * @memberof OrderDto\n */\n 'orderDate'?: string;\n /**\n * \n * @type {Array}\n * @memberof OrderDto\n */\n 'orderNotePositions'?: Array;\n}\n/**\n * \n * @export\n * @interface OrderNotePositionDto\n */\nexport interface OrderNotePositionDto {\n /**\n * \n * @type {string}\n * @memberof OrderNotePositionDto\n */\n 'positionId': string;\n /**\n * \n * @type {string}\n * @memberof OrderNotePositionDto\n */\n 'articleName'?: string;\n /**\n * \n * @type {string}\n * @memberof OrderNotePositionDto\n */\n 'pzn': string;\n /**\n * \n * @type {string}\n * @memberof OrderNotePositionDto\n */\n 'state'?: string;\n /**\n * \n * @type {number}\n * @memberof OrderNotePositionDto\n */\n 'stateNumber'?: number;\n /**\n * \n * @type {number}\n * @memberof OrderNotePositionDto\n */\n 'quantity'?: number;\n}\n/**\n * \n * @export\n * @interface PharmacyDto\n */\nexport interface PharmacyDto {\n /**\n * \n * @type {string}\n * @memberof PharmacyDto\n */\n 'customerNumber'?: string;\n /**\n * \n * @type {string}\n * @memberof PharmacyDto\n */\n 'mainPharmacyNumber'?: string;\n /**\n * \n * @type {string}\n * @memberof PharmacyDto\n */\n 'name'?: string;\n /**\n * \n * @type {string}\n * @memberof PharmacyDto\n */\n 'bga'?: string;\n /**\n * \n * @type {string}\n * @memberof PharmacyDto\n */\n 'street'?: string;\n /**\n * \n * @type {string}\n * @memberof PharmacyDto\n */\n 'city'?: string;\n /**\n * \n * @type {string}\n * @memberof PharmacyDto\n */\n 'postalCode'?: string;\n /**\n * \n * @type {string}\n * @memberof PharmacyDto\n */\n 'status'?: PharmacyDtoStatusEnum;\n /**\n * \n * @type {string}\n * @memberof PharmacyDto\n */\n 'statusDate'?: string;\n}\n\n/**\n * @export\n * @enum {string}\n */\nexport enum PharmacyDtoStatusEnum {\n New = 'NEW',\n Upd = 'UPD',\n Del = 'DEL',\n Akt = 'AKT'\n}\n\n/**\n * \n * @export\n * @interface PharmacyOwnerDto\n */\nexport interface PharmacyOwnerDto {\n /**\n * \n * @type {string}\n * @memberof PharmacyOwnerDto\n */\n 'customerNumber'?: string;\n /**\n * \n * @type {string}\n * @memberof PharmacyOwnerDto\n */\n 'title'?: string;\n /**\n * \n * @type {string}\n * @memberof PharmacyOwnerDto\n */\n 'fullName'?: string;\n /**\n * \n * @type {string}\n * @memberof PharmacyOwnerDto\n */\n 'firstName'?: string;\n /**\n * \n * @type {string}\n * @memberof PharmacyOwnerDto\n */\n 'lastName'?: string;\n /**\n * \n * @type {string}\n * @memberof PharmacyOwnerDto\n */\n 'email'?: string;\n /**\n * \n * @type {string}\n * @memberof PharmacyOwnerDto\n */\n 'password'?: string;\n /**\n * \n * @type {string}\n * @memberof PharmacyOwnerDto\n */\n 'status'?: PharmacyOwnerDtoStatusEnum;\n /**\n * \n * @type {string}\n * @memberof PharmacyOwnerDto\n */\n 'statusDate'?: string;\n /**\n * \n * @type {PharmacyDto}\n * @memberof PharmacyOwnerDto\n */\n 'mainPharmacy'?: PharmacyDto;\n /**\n * \n * @type {Array}\n * @memberof PharmacyOwnerDto\n */\n 'pharmacies'?: Array;\n}\n\n/**\n * @export\n * @enum {string}\n */\nexport enum PharmacyOwnerDtoStatusEnum {\n New = 'NEW',\n Upd = 'UPD',\n Del = 'DEL',\n Akt = 'AKT'\n}\n\n/**\n * \n * @export\n * @interface ReceiptDto\n */\nexport interface ReceiptDto {\n /**\n * \n * @type {string}\n * @memberof ReceiptDto\n */\n 'receiptId': string;\n /**\n * \n * @type {string}\n * @memberof ReceiptDto\n */\n 'receiptDate': string;\n /**\n * \n * @type {string}\n * @memberof ReceiptDto\n */\n 'receiptName': string;\n}\n/**\n * \n * @export\n * @interface ReturnDto\n */\nexport interface ReturnDto {\n /**\n * \n * @type {number}\n * @memberof ReturnDto\n */\n 'returnNumber'?: number;\n /**\n * \n * @type {string}\n * @memberof ReturnDto\n */\n 'returnState'?: string;\n /**\n * \n * @type {string}\n * @memberof ReturnDto\n */\n 'state'?: string;\n /**\n * \n * @type {string}\n * @memberof ReturnDto\n */\n 'registrationDate'?: string;\n /**\n * \n * @type {string}\n * @memberof ReturnDto\n */\n 'collectionDate'?: string;\n /**\n * \n * @type {string}\n * @memberof ReturnDto\n */\n 'boxes'?: string;\n /**\n * \n * @type {Array}\n * @memberof ReturnDto\n */\n 'returnPositions'?: Array;\n}\n/**\n * \n * @export\n * @interface ReturnPositionDto\n */\nexport interface ReturnPositionDto {\n /**\n * \n * @type {string}\n * @memberof ReturnPositionDto\n */\n 'description'?: string;\n /**\n * \n * @type {string}\n * @memberof ReturnPositionDto\n */\n 'pzn'?: string;\n /**\n * \n * @type {string}\n * @memberof ReturnPositionDto\n */\n 'articleName'?: string;\n /**\n * \n * @type {number}\n * @memberof ReturnPositionDto\n */\n 'quantity'?: number;\n /**\n * \n * @type {number}\n * @memberof ReturnPositionDto\n */\n 'price'?: number;\n /**\n * \n * @type {string}\n * @memberof ReturnPositionDto\n */\n 'deliveryNoteId'?: string;\n /**\n * \n * @type {string}\n * @memberof ReturnPositionDto\n */\n 'deliveryDate'?: string;\n /**\n * \n * @type {string}\n * @memberof ReturnPositionDto\n */\n 'solution'?: string;\n}\n/**\n * \n * @export\n * @interface SpecialOrderCreationResultDto\n */\nexport interface SpecialOrderCreationResultDto {\n /**\n * Special Orders which could be placed\n * @type {Array}\n * @memberof SpecialOrderCreationResultDto\n */\n 'successfulOrders'?: Array;\n /**\n * Special Orders which could not be placed (eg Today is out of ValidityRange)\n * @type {Array}\n * @memberof SpecialOrderCreationResultDto\n */\n 'failedOrders'?: Array;\n}\n/**\n * \n * @export\n * @interface SpecialOrderCreationResultItemDto\n */\nexport interface SpecialOrderCreationResultItemDto {\n /**\n * \n * @type {number}\n * @memberof SpecialOrderCreationResultItemDto\n */\n 'id': number;\n /**\n * \n * @type {string}\n * @memberof SpecialOrderCreationResultItemDto\n */\n 'category': string;\n /**\n * \n * @type {string}\n * @memberof SpecialOrderCreationResultItemDto\n */\n 'pzn': string;\n /**\n * \n * @type {string}\n * @memberof SpecialOrderCreationResultItemDto\n */\n 'articleName': string;\n}\n/**\n * \n * @export\n * @interface SpecialOrderRequest\n */\nexport interface SpecialOrderRequest {\n /**\n * The Id returned by SpecialOrderResponse\n * @type {number}\n * @memberof SpecialOrderRequest\n */\n 'id': number;\n /**\n * \n * @type {number}\n * @memberof SpecialOrderRequest\n */\n 'amount': number;\n}\n/**\n * \n * @export\n * @interface SpecialOrderResponse\n */\nexport interface SpecialOrderResponse {\n /**\n * \n * @type {number}\n * @memberof SpecialOrderResponse\n */\n 'id': number;\n /**\n * \n * @type {string}\n * @memberof SpecialOrderResponse\n */\n 'pzn': string;\n /**\n * \n * @type {string}\n * @memberof SpecialOrderResponse\n */\n 'articleName': string;\n /**\n * \n * @type {number}\n * @memberof SpecialOrderResponse\n */\n 'amount': number;\n /**\n * \n * @type {number}\n * @memberof SpecialOrderResponse\n */\n 'aek': number;\n /**\n * \n * @type {string}\n * @memberof SpecialOrderResponse\n */\n 'packageSize': string;\n /**\n * \n * @type {string}\n * @memberof SpecialOrderResponse\n */\n 'category': string;\n /**\n * \n * @type {string}\n * @memberof SpecialOrderResponse\n */\n 'validUntil': string;\n}\n/**\n * \n * @export\n * @interface TriggerReturnRequestDto\n */\nexport interface TriggerReturnRequestDto {\n /**\n * The quantity of boxes that should be returned.\n * @type {number}\n * @memberof TriggerReturnRequestDto\n */\n 'quantity': number;\n}\n/**\n * \n * @export\n * @interface UserDto\n */\nexport interface UserDto {\n /**\n * Academic title of the user\n * @type {string}\n * @memberof UserDto\n */\n 'title'?: string;\n /**\n * First name of the user\n * @type {string}\n * @memberof UserDto\n */\n 'firstName': string;\n /**\n * Last name of the user\n * @type {string}\n * @memberof UserDto\n */\n 'lastName': string;\n /**\n * generated User name\n * @type {string}\n * @memberof UserDto\n */\n 'userName'?: string;\n /**\n * Initial password for user account\n * @type {string}\n * @memberof UserDto\n */\n 'initialPassword'?: string;\n /**\n * Email address of the user\n * @type {string}\n * @memberof UserDto\n */\n 'email'?: string;\n /**\n * User application permissions\n * @type {Array}\n * @memberof UserDto\n */\n 'permissions'?: Array;\n}\n\n/**\n * @export\n * @enum {string}\n */\nexport enum UserDtoPermissionsEnum {\n Admin = 'Admin',\n AepImBlick = 'AEP im Blick',\n Analysen = 'Analysen',\n Bestellungen = 'Bestellungen',\n Postfach = 'Postfach',\n Stammdaten = 'Stammdaten',\n Lieferscheine = 'Lieferscheine',\n Monatsberichte = 'Monatsberichte',\n Nachbelastungen = 'Nachbelastungen',\n Gutschriften = 'Gutschriften',\n Sammelrechnungen = 'Sammelrechnungen',\n Statistiken = 'Statistiken'\n}\n\n/**\n * \n * @export\n * @interface UserProfileDto\n */\nexport interface UserProfileDto {\n /**\n * Academic title of the user\n * @type {string}\n * @memberof UserProfileDto\n */\n 'title'?: string;\n /**\n * First name of the user\n * @type {string}\n * @memberof UserProfileDto\n */\n 'firstName': string;\n /**\n * Last name of the user\n * @type {string}\n * @memberof UserProfileDto\n */\n 'lastName': string;\n /**\n * generated User name\n * @type {string}\n * @memberof UserProfileDto\n */\n 'userName'?: string;\n /**\n * Email address of the user\n * @type {string}\n * @memberof UserProfileDto\n */\n 'email'?: string;\n /**\n * The password for user account\n * @type {string}\n * @memberof UserProfileDto\n */\n 'password'?: string;\n}\n\n/**\n * AnalysisControllerApi - axios parameter creator\n * @export\n */\nexport const AnalysisControllerApiAxiosParamCreator = function (configuration?: Configuration) {\n return {\n /**\n * \n * @param {string} customerNumber The Customernumber\n * @param {string} analysisType The type of Analysis eg PACKMON, UMSMON and BESTZEIT\n * @param {number} [months] Show data for the last n months\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n getData: async (customerNumber: string, analysisType: string, months?: number, options: AxiosRequestConfig = {}): Promise => {\n // verify required parameter 'customerNumber' is not null or undefined\n assertParamExists('getData', 'customerNumber', customerNumber)\n // verify required parameter 'analysisType' is not null or undefined\n assertParamExists('getData', 'analysisType', analysisType)\n const localVarPath = `/customers/{customerNumber}/analysis/{analysisType}`\n .replace(`{${\"customerNumber\"}}`, encodeURIComponent(String(customerNumber)))\n .replace(`{${\"analysisType\"}}`, encodeURIComponent(String(analysisType)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n if (months !== undefined) {\n localVarQueryParameter['months'] = months;\n }\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n }\n};\n\n/**\n * AnalysisControllerApi - functional programming interface\n * @export\n */\nexport const AnalysisControllerApiFp = function(configuration?: Configuration) {\n const localVarAxiosParamCreator = AnalysisControllerApiAxiosParamCreator(configuration)\n return {\n /**\n * \n * @param {string} customerNumber The Customernumber\n * @param {string} analysisType The type of Analysis eg PACKMON, UMSMON and BESTZEIT\n * @param {number} [months] Show data for the last n months\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async getData(customerNumber: string, analysisType: string, months?: number, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.getData(customerNumber, analysisType, months, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n },\n }\n};\n\n/**\n * AnalysisControllerApi - factory interface\n * @export\n */\nexport const AnalysisControllerApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\n const localVarFp = AnalysisControllerApiFp(configuration)\n return {\n /**\n * \n * @param {string} customerNumber The Customernumber\n * @param {string} analysisType The type of Analysis eg PACKMON, UMSMON and BESTZEIT\n * @param {number} [months] Show data for the last n months\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n getData(customerNumber: string, analysisType: string, months?: number, options?: any): AxiosPromise {\n return localVarFp.getData(customerNumber, analysisType, months, options).then((request) => request(axios, basePath));\n },\n };\n};\n\n/**\n * AnalysisControllerApi - object-oriented interface\n * @export\n * @class AnalysisControllerApi\n * @extends {BaseAPI}\n */\nexport class AnalysisControllerApi extends BaseAPI {\n /**\n * \n * @param {string} customerNumber The Customernumber\n * @param {string} analysisType The type of Analysis eg PACKMON, UMSMON and BESTZEIT\n * @param {number} [months] Show data for the last n months\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof AnalysisControllerApi\n */\n public getData(customerNumber: string, analysisType: string, months?: number, options?: AxiosRequestConfig) {\n return AnalysisControllerApiFp(this.configuration).getData(customerNumber, analysisType, months, options).then((request) => request(this.axios, this.basePath));\n }\n}\n\n\n/**\n * ArticleAdmissionControllerApi - axios parameter creator\n * @export\n */\nexport const ArticleAdmissionControllerApiAxiosParamCreator = function (configuration?: Configuration) {\n return {\n /**\n * \n * @summary Creates a new article admission\n * @param {string} customerNumber The Customernumber\n * @param {ArticleAdmissionRequest} [articleAdmissionRequest] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n postArticleAdmission: async (customerNumber: string, articleAdmissionRequest?: ArticleAdmissionRequest, options: AxiosRequestConfig = {}): Promise => {\n // verify required parameter 'customerNumber' is not null or undefined\n assertParamExists('postArticleAdmission', 'customerNumber', customerNumber)\n const localVarPath = `/customers/{customerNumber}/articleAdmission`\n .replace(`{${\"customerNumber\"}}`, encodeURIComponent(String(customerNumber)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n\n \n localVarHeaderParameter['Content-Type'] = 'application/json';\n\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n localVarRequestOptions.data = serializeDataIfNeeded(articleAdmissionRequest, localVarRequestOptions, configuration)\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n }\n};\n\n/**\n * ArticleAdmissionControllerApi - functional programming interface\n * @export\n */\nexport const ArticleAdmissionControllerApiFp = function(configuration?: Configuration) {\n const localVarAxiosParamCreator = ArticleAdmissionControllerApiAxiosParamCreator(configuration)\n return {\n /**\n * \n * @summary Creates a new article admission\n * @param {string} customerNumber The Customernumber\n * @param {ArticleAdmissionRequest} [articleAdmissionRequest] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async postArticleAdmission(customerNumber: string, articleAdmissionRequest?: ArticleAdmissionRequest, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.postArticleAdmission(customerNumber, articleAdmissionRequest, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n },\n }\n};\n\n/**\n * ArticleAdmissionControllerApi - factory interface\n * @export\n */\nexport const ArticleAdmissionControllerApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\n const localVarFp = ArticleAdmissionControllerApiFp(configuration)\n return {\n /**\n * \n * @summary Creates a new article admission\n * @param {string} customerNumber The Customernumber\n * @param {ArticleAdmissionRequest} [articleAdmissionRequest] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n postArticleAdmission(customerNumber: string, articleAdmissionRequest?: ArticleAdmissionRequest, options?: any): AxiosPromise {\n return localVarFp.postArticleAdmission(customerNumber, articleAdmissionRequest, options).then((request) => request(axios, basePath));\n },\n };\n};\n\n/**\n * ArticleAdmissionControllerApi - object-oriented interface\n * @export\n * @class ArticleAdmissionControllerApi\n * @extends {BaseAPI}\n */\nexport class ArticleAdmissionControllerApi extends BaseAPI {\n /**\n * \n * @summary Creates a new article admission\n * @param {string} customerNumber The Customernumber\n * @param {ArticleAdmissionRequest} [articleAdmissionRequest] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof ArticleAdmissionControllerApi\n */\n public postArticleAdmission(customerNumber: string, articleAdmissionRequest?: ArticleAdmissionRequest, options?: AxiosRequestConfig) {\n return ArticleAdmissionControllerApiFp(this.configuration).postArticleAdmission(customerNumber, articleAdmissionRequest, options).then((request) => request(this.axios, this.basePath));\n }\n}\n\n\n/**\n * CancellationsControllerApi - axios parameter creator\n * @export\n */\nexport const CancellationsControllerApiAxiosParamCreator = function (configuration?: Configuration) {\n return {\n /**\n * \n * @param {string} customerNumber The Customernumber\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n getAllCancellations: async (customerNumber: string, options: AxiosRequestConfig = {}): Promise => {\n // verify required parameter 'customerNumber' is not null or undefined\n assertParamExists('getAllCancellations', 'customerNumber', customerNumber)\n const localVarPath = `/customers/{customerNumber}/cancellations`\n .replace(`{${\"customerNumber\"}}`, encodeURIComponent(String(customerNumber)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n }\n};\n\n/**\n * CancellationsControllerApi - functional programming interface\n * @export\n */\nexport const CancellationsControllerApiFp = function(configuration?: Configuration) {\n const localVarAxiosParamCreator = CancellationsControllerApiAxiosParamCreator(configuration)\n return {\n /**\n * \n * @param {string} customerNumber The Customernumber\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async getAllCancellations(customerNumber: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.getAllCancellations(customerNumber, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n },\n }\n};\n\n/**\n * CancellationsControllerApi - factory interface\n * @export\n */\nexport const CancellationsControllerApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\n const localVarFp = CancellationsControllerApiFp(configuration)\n return {\n /**\n * \n * @param {string} customerNumber The Customernumber\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n getAllCancellations(customerNumber: string, options?: any): AxiosPromise> {\n return localVarFp.getAllCancellations(customerNumber, options).then((request) => request(axios, basePath));\n },\n };\n};\n\n/**\n * CancellationsControllerApi - object-oriented interface\n * @export\n * @class CancellationsControllerApi\n * @extends {BaseAPI}\n */\nexport class CancellationsControllerApi extends BaseAPI {\n /**\n * \n * @param {string} customerNumber The Customernumber\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof CancellationsControllerApi\n */\n public getAllCancellations(customerNumber: string, options?: AxiosRequestConfig) {\n return CancellationsControllerApiFp(this.configuration).getAllCancellations(customerNumber, options).then((request) => request(this.axios, this.basePath));\n }\n}\n\n\n/**\n * CounterControllerApi - axios parameter creator\n * @export\n */\nexport const CounterControllerApiAxiosParamCreator = function (configuration?: Configuration) {\n return {\n /**\n * \n * @param {string} customerNumber The Customernumber\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n getCounter: async (customerNumber: string, options: AxiosRequestConfig = {}): Promise => {\n // verify required parameter 'customerNumber' is not null or undefined\n assertParamExists('getCounter', 'customerNumber', customerNumber)\n const localVarPath = `/customers/{customerNumber}/counter`\n .replace(`{${\"customerNumber\"}}`, encodeURIComponent(String(customerNumber)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n }\n};\n\n/**\n * CounterControllerApi - functional programming interface\n * @export\n */\nexport const CounterControllerApiFp = function(configuration?: Configuration) {\n const localVarAxiosParamCreator = CounterControllerApiAxiosParamCreator(configuration)\n return {\n /**\n * \n * @param {string} customerNumber The Customernumber\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async getCounter(customerNumber: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.getCounter(customerNumber, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n },\n }\n};\n\n/**\n * CounterControllerApi - factory interface\n * @export\n */\nexport const CounterControllerApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\n const localVarFp = CounterControllerApiFp(configuration)\n return {\n /**\n * \n * @param {string} customerNumber The Customernumber\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n getCounter(customerNumber: string, options?: any): AxiosPromise {\n return localVarFp.getCounter(customerNumber, options).then((request) => request(axios, basePath));\n },\n };\n};\n\n/**\n * CounterControllerApi - object-oriented interface\n * @export\n * @class CounterControllerApi\n * @extends {BaseAPI}\n */\nexport class CounterControllerApi extends BaseAPI {\n /**\n * \n * @param {string} customerNumber The Customernumber\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof CounterControllerApi\n */\n public getCounter(customerNumber: string, options?: AxiosRequestConfig) {\n return CounterControllerApiFp(this.configuration).getCounter(customerNumber, options).then((request) => request(this.axios, this.basePath));\n }\n}\n\n\n/**\n * DeliveriesControllerApi - axios parameter creator\n * @export\n */\nexport const DeliveriesControllerApiAxiosParamCreator = function (configuration?: Configuration) {\n return {\n /**\n * \n * @param {string} customerNumber The Customernumber\n * @param {number} [pageNumber] The page to fetch\n * @param {number} [pageLimit] The number of deliveries to return per page\n * @param {boolean} [sortByDateDesc] Sort deliveries by publish date descending\n * @param {string} [pzn] \n * @param {string} [fromDate] The startDate of the dateRange in the format dd.mm.yyyy\n * @param {string} [toDate] The endDate of the dateRange in the format dd.mm.yyyy\n * @param {string} [deliveryNoteId] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n getAllDeliveries: async (customerNumber: string, pageNumber?: number, pageLimit?: number, sortByDateDesc?: boolean, pzn?: string, fromDate?: string, toDate?: string, deliveryNoteId?: string, options: AxiosRequestConfig = {}): Promise => {\n // verify required parameter 'customerNumber' is not null or undefined\n assertParamExists('getAllDeliveries', 'customerNumber', customerNumber)\n const localVarPath = `/customers/{customerNumber}/deliveries`\n .replace(`{${\"customerNumber\"}}`, encodeURIComponent(String(customerNumber)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n if (pageNumber !== undefined) {\n localVarQueryParameter['pageNumber'] = pageNumber;\n }\n\n if (pageLimit !== undefined) {\n localVarQueryParameter['pageLimit'] = pageLimit;\n }\n\n if (sortByDateDesc !== undefined) {\n localVarQueryParameter['sortByDateDesc'] = sortByDateDesc;\n }\n\n if (pzn !== undefined) {\n localVarQueryParameter['pzn'] = pzn;\n }\n\n if (fromDate !== undefined) {\n localVarQueryParameter['fromDate'] = fromDate;\n }\n\n if (toDate !== undefined) {\n localVarQueryParameter['toDate'] = toDate;\n }\n\n if (deliveryNoteId !== undefined) {\n localVarQueryParameter['deliveryNoteId'] = deliveryNoteId;\n }\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * \n * @param {string} customerNumber The Customernumber\n * @param {string} deliveryNoteId \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n getDeliveryById: async (customerNumber: string, deliveryNoteId: string, options: AxiosRequestConfig = {}): Promise => {\n // verify required parameter 'customerNumber' is not null or undefined\n assertParamExists('getDeliveryById', 'customerNumber', customerNumber)\n // verify required parameter 'deliveryNoteId' is not null or undefined\n assertParamExists('getDeliveryById', 'deliveryNoteId', deliveryNoteId)\n const localVarPath = `/customers/{customerNumber}/deliveries/{deliveryNoteId}`\n .replace(`{${\"customerNumber\"}}`, encodeURIComponent(String(customerNumber)))\n .replace(`{${\"deliveryNoteId\"}}`, encodeURIComponent(String(deliveryNoteId)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n }\n};\n\n/**\n * DeliveriesControllerApi - functional programming interface\n * @export\n */\nexport const DeliveriesControllerApiFp = function(configuration?: Configuration) {\n const localVarAxiosParamCreator = DeliveriesControllerApiAxiosParamCreator(configuration)\n return {\n /**\n * \n * @param {string} customerNumber The Customernumber\n * @param {number} [pageNumber] The page to fetch\n * @param {number} [pageLimit] The number of deliveries to return per page\n * @param {boolean} [sortByDateDesc] Sort deliveries by publish date descending\n * @param {string} [pzn] \n * @param {string} [fromDate] The startDate of the dateRange in the format dd.mm.yyyy\n * @param {string} [toDate] The endDate of the dateRange in the format dd.mm.yyyy\n * @param {string} [deliveryNoteId] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async getAllDeliveries(customerNumber: string, pageNumber?: number, pageLimit?: number, sortByDateDesc?: boolean, pzn?: string, fromDate?: string, toDate?: string, deliveryNoteId?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.getAllDeliveries(customerNumber, pageNumber, pageLimit, sortByDateDesc, pzn, fromDate, toDate, deliveryNoteId, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n },\n /**\n * \n * @param {string} customerNumber The Customernumber\n * @param {string} deliveryNoteId \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async getDeliveryById(customerNumber: string, deliveryNoteId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.getDeliveryById(customerNumber, deliveryNoteId, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n },\n }\n};\n\n/**\n * DeliveriesControllerApi - factory interface\n * @export\n */\nexport const DeliveriesControllerApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\n const localVarFp = DeliveriesControllerApiFp(configuration)\n return {\n /**\n * \n * @param {string} customerNumber The Customernumber\n * @param {number} [pageNumber] The page to fetch\n * @param {number} [pageLimit] The number of deliveries to return per page\n * @param {boolean} [sortByDateDesc] Sort deliveries by publish date descending\n * @param {string} [pzn] \n * @param {string} [fromDate] The startDate of the dateRange in the format dd.mm.yyyy\n * @param {string} [toDate] The endDate of the dateRange in the format dd.mm.yyyy\n * @param {string} [deliveryNoteId] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n getAllDeliveries(customerNumber: string, pageNumber?: number, pageLimit?: number, sortByDateDesc?: boolean, pzn?: string, fromDate?: string, toDate?: string, deliveryNoteId?: string, options?: any): AxiosPromise> {\n return localVarFp.getAllDeliveries(customerNumber, pageNumber, pageLimit, sortByDateDesc, pzn, fromDate, toDate, deliveryNoteId, options).then((request) => request(axios, basePath));\n },\n /**\n * \n * @param {string} customerNumber The Customernumber\n * @param {string} deliveryNoteId \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n getDeliveryById(customerNumber: string, deliveryNoteId: string, options?: any): AxiosPromise {\n return localVarFp.getDeliveryById(customerNumber, deliveryNoteId, options).then((request) => request(axios, basePath));\n },\n };\n};\n\n/**\n * DeliveriesControllerApi - object-oriented interface\n * @export\n * @class DeliveriesControllerApi\n * @extends {BaseAPI}\n */\nexport class DeliveriesControllerApi extends BaseAPI {\n /**\n * \n * @param {string} customerNumber The Customernumber\n * @param {number} [pageNumber] The page to fetch\n * @param {number} [pageLimit] The number of deliveries to return per page\n * @param {boolean} [sortByDateDesc] Sort deliveries by publish date descending\n * @param {string} [pzn] \n * @param {string} [fromDate] The startDate of the dateRange in the format dd.mm.yyyy\n * @param {string} [toDate] The endDate of the dateRange in the format dd.mm.yyyy\n * @param {string} [deliveryNoteId] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof DeliveriesControllerApi\n */\n public getAllDeliveries(customerNumber: string, pageNumber?: number, pageLimit?: number, sortByDateDesc?: boolean, pzn?: string, fromDate?: string, toDate?: string, deliveryNoteId?: string, options?: AxiosRequestConfig) {\n return DeliveriesControllerApiFp(this.configuration).getAllDeliveries(customerNumber, pageNumber, pageLimit, sortByDateDesc, pzn, fromDate, toDate, deliveryNoteId, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * \n * @param {string} customerNumber The Customernumber\n * @param {string} deliveryNoteId \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof DeliveriesControllerApi\n */\n public getDeliveryById(customerNumber: string, deliveryNoteId: string, options?: AxiosRequestConfig) {\n return DeliveriesControllerApiFp(this.configuration).getDeliveryById(customerNumber, deliveryNoteId, options).then((request) => request(this.axios, this.basePath));\n }\n}\n\n\n/**\n * DispensationsControllerApi - axios parameter creator\n * @export\n */\nexport const DispensationsControllerApiAxiosParamCreator = function (configuration?: Configuration) {\n return {\n /**\n * \n * @param {string} customerNumber The Customernumber\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n getAllDispensations: async (customerNumber: string, options: AxiosRequestConfig = {}): Promise => {\n // verify required parameter 'customerNumber' is not null or undefined\n assertParamExists('getAllDispensations', 'customerNumber', customerNumber)\n const localVarPath = `/customers/{customerNumber}/dispensations`\n .replace(`{${\"customerNumber\"}}`, encodeURIComponent(String(customerNumber)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n }\n};\n\n/**\n * DispensationsControllerApi - functional programming interface\n * @export\n */\nexport const DispensationsControllerApiFp = function(configuration?: Configuration) {\n const localVarAxiosParamCreator = DispensationsControllerApiAxiosParamCreator(configuration)\n return {\n /**\n * \n * @param {string} customerNumber The Customernumber\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async getAllDispensations(customerNumber: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.getAllDispensations(customerNumber, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n },\n }\n};\n\n/**\n * DispensationsControllerApi - factory interface\n * @export\n */\nexport const DispensationsControllerApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\n const localVarFp = DispensationsControllerApiFp(configuration)\n return {\n /**\n * \n * @param {string} customerNumber The Customernumber\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n getAllDispensations(customerNumber: string, options?: any): AxiosPromise> {\n return localVarFp.getAllDispensations(customerNumber, options).then((request) => request(axios, basePath));\n },\n };\n};\n\n/**\n * DispensationsControllerApi - object-oriented interface\n * @export\n * @class DispensationsControllerApi\n * @extends {BaseAPI}\n */\nexport class DispensationsControllerApi extends BaseAPI {\n /**\n * \n * @param {string} customerNumber The Customernumber\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof DispensationsControllerApi\n */\n public getAllDispensations(customerNumber: string, options?: AxiosRequestConfig) {\n return DispensationsControllerApiFp(this.configuration).getAllDispensations(customerNumber, options).then((request) => request(this.axios, this.basePath));\n }\n}\n\n\n/**\n * DocumentsControllerApi - axios parameter creator\n * @export\n */\nexport const DocumentsControllerApiAxiosParamCreator = function (configuration?: Configuration) {\n return {\n /**\n * Will download the given document from the DMS\n * @param {string} customerNumber The Customernumber\n * @param {string} documentId The AEP document id\n * @param {string} documentDate The creation date of the document\n * @param {'LS' | 'SR' | 'NB' | 'GS' | 'MB' | 'TB'} [documentType] The type of the document to download. Possible values are SR (Rechnung), LS(Lieferschein), NB(Nachbelastung), GS(Gutschrift), MB(Monatsbericht), TB(LS or GS or NB)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n getDocument: async (customerNumber: string, documentId: string, documentDate: string, documentType?: 'LS' | 'SR' | 'NB' | 'GS' | 'MB' | 'TB', options: AxiosRequestConfig = {}): Promise => {\n // verify required parameter 'customerNumber' is not null or undefined\n assertParamExists('getDocument', 'customerNumber', customerNumber)\n // verify required parameter 'documentId' is not null or undefined\n assertParamExists('getDocument', 'documentId', documentId)\n // verify required parameter 'documentDate' is not null or undefined\n assertParamExists('getDocument', 'documentDate', documentDate)\n const localVarPath = `/documents/{customerNumber}/{documentId}`\n .replace(`{${\"customerNumber\"}}`, encodeURIComponent(String(customerNumber)))\n .replace(`{${\"documentId\"}}`, encodeURIComponent(String(documentId)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n if (documentDate !== undefined) {\n localVarQueryParameter['documentDate'] = (documentDate as any instanceof Date) ?\n (documentDate as any).toISOString().substr(0,10) :\n documentDate;\n }\n\n if (documentType !== undefined) {\n localVarQueryParameter['documentType'] = documentType;\n }\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * Will download the given document from the DMS\n * @param {string} customerNumber The Customernumber\n * @param {string} documentId The AEP document id\n * @param {string} documentDate The creation date of the document\n * @param {'LS' | 'SR' | 'NB' | 'GS' | 'MB' | 'TB'} [documentType] The type of the document to download. Possible values are SR (Rechnung), LS(Lieferschein), NB(Nachbelastung), GS(Gutschrift), MB(Monatsbericht), TB(LS or GS or NB)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n getDocumentAsBase64: async (customerNumber: string, documentId: string, documentDate: string, documentType?: 'LS' | 'SR' | 'NB' | 'GS' | 'MB' | 'TB', options: AxiosRequestConfig = {}): Promise => {\n // verify required parameter 'customerNumber' is not null or undefined\n assertParamExists('getDocumentAsBase64', 'customerNumber', customerNumber)\n // verify required parameter 'documentId' is not null or undefined\n assertParamExists('getDocumentAsBase64', 'documentId', documentId)\n // verify required parameter 'documentDate' is not null or undefined\n assertParamExists('getDocumentAsBase64', 'documentDate', documentDate)\n const localVarPath = `/documents/{customerNumber}/{documentId}/base64`\n .replace(`{${\"customerNumber\"}}`, encodeURIComponent(String(customerNumber)))\n .replace(`{${\"documentId\"}}`, encodeURIComponent(String(documentId)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n if (documentDate !== undefined) {\n localVarQueryParameter['documentDate'] = (documentDate as any instanceof Date) ?\n (documentDate as any).toISOString().substr(0,10) :\n documentDate;\n }\n\n if (documentType !== undefined) {\n localVarQueryParameter['documentType'] = documentType;\n }\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n }\n};\n\n/**\n * DocumentsControllerApi - functional programming interface\n * @export\n */\nexport const DocumentsControllerApiFp = function(configuration?: Configuration) {\n const localVarAxiosParamCreator = DocumentsControllerApiAxiosParamCreator(configuration)\n return {\n /**\n * Will download the given document from the DMS\n * @param {string} customerNumber The Customernumber\n * @param {string} documentId The AEP document id\n * @param {string} documentDate The creation date of the document\n * @param {'LS' | 'SR' | 'NB' | 'GS' | 'MB' | 'TB'} [documentType] The type of the document to download. Possible values are SR (Rechnung), LS(Lieferschein), NB(Nachbelastung), GS(Gutschrift), MB(Monatsbericht), TB(LS or GS or NB)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async getDocument(customerNumber: string, documentId: string, documentDate: string, documentType?: 'LS' | 'SR' | 'NB' | 'GS' | 'MB' | 'TB', options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.getDocument(customerNumber, documentId, documentDate, documentType, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n },\n /**\n * Will download the given document from the DMS\n * @param {string} customerNumber The Customernumber\n * @param {string} documentId The AEP document id\n * @param {string} documentDate The creation date of the document\n * @param {'LS' | 'SR' | 'NB' | 'GS' | 'MB' | 'TB'} [documentType] The type of the document to download. Possible values are SR (Rechnung), LS(Lieferschein), NB(Nachbelastung), GS(Gutschrift), MB(Monatsbericht), TB(LS or GS or NB)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async getDocumentAsBase64(customerNumber: string, documentId: string, documentDate: string, documentType?: 'LS' | 'SR' | 'NB' | 'GS' | 'MB' | 'TB', options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.getDocumentAsBase64(customerNumber, documentId, documentDate, documentType, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n },\n }\n};\n\n/**\n * DocumentsControllerApi - factory interface\n * @export\n */\nexport const DocumentsControllerApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\n const localVarFp = DocumentsControllerApiFp(configuration)\n return {\n /**\n * Will download the given document from the DMS\n * @param {string} customerNumber The Customernumber\n * @param {string} documentId The AEP document id\n * @param {string} documentDate The creation date of the document\n * @param {'LS' | 'SR' | 'NB' | 'GS' | 'MB' | 'TB'} [documentType] The type of the document to download. Possible values are SR (Rechnung), LS(Lieferschein), NB(Nachbelastung), GS(Gutschrift), MB(Monatsbericht), TB(LS or GS or NB)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n getDocument(customerNumber: string, documentId: string, documentDate: string, documentType?: 'LS' | 'SR' | 'NB' | 'GS' | 'MB' | 'TB', options?: any): AxiosPromise {\n return localVarFp.getDocument(customerNumber, documentId, documentDate, documentType, options).then((request) => request(axios, basePath));\n },\n /**\n * Will download the given document from the DMS\n * @param {string} customerNumber The Customernumber\n * @param {string} documentId The AEP document id\n * @param {string} documentDate The creation date of the document\n * @param {'LS' | 'SR' | 'NB' | 'GS' | 'MB' | 'TB'} [documentType] The type of the document to download. Possible values are SR (Rechnung), LS(Lieferschein), NB(Nachbelastung), GS(Gutschrift), MB(Monatsbericht), TB(LS or GS or NB)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n getDocumentAsBase64(customerNumber: string, documentId: string, documentDate: string, documentType?: 'LS' | 'SR' | 'NB' | 'GS' | 'MB' | 'TB', options?: any): AxiosPromise {\n return localVarFp.getDocumentAsBase64(customerNumber, documentId, documentDate, documentType, options).then((request) => request(axios, basePath));\n },\n };\n};\n\n/**\n * DocumentsControllerApi - object-oriented interface\n * @export\n * @class DocumentsControllerApi\n * @extends {BaseAPI}\n */\nexport class DocumentsControllerApi extends BaseAPI {\n /**\n * Will download the given document from the DMS\n * @param {string} customerNumber The Customernumber\n * @param {string} documentId The AEP document id\n * @param {string} documentDate The creation date of the document\n * @param {'LS' | 'SR' | 'NB' | 'GS' | 'MB' | 'TB'} [documentType] The type of the document to download. Possible values are SR (Rechnung), LS(Lieferschein), NB(Nachbelastung), GS(Gutschrift), MB(Monatsbericht), TB(LS or GS or NB)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof DocumentsControllerApi\n */\n public getDocument(customerNumber: string, documentId: string, documentDate: string, documentType?: 'LS' | 'SR' | 'NB' | 'GS' | 'MB' | 'TB', options?: AxiosRequestConfig) {\n return DocumentsControllerApiFp(this.configuration).getDocument(customerNumber, documentId, documentDate, documentType, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * Will download the given document from the DMS\n * @param {string} customerNumber The Customernumber\n * @param {string} documentId The AEP document id\n * @param {string} documentDate The creation date of the document\n * @param {'LS' | 'SR' | 'NB' | 'GS' | 'MB' | 'TB'} [documentType] The type of the document to download. Possible values are SR (Rechnung), LS(Lieferschein), NB(Nachbelastung), GS(Gutschrift), MB(Monatsbericht), TB(LS or GS or NB)\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof DocumentsControllerApi\n */\n public getDocumentAsBase64(customerNumber: string, documentId: string, documentDate: string, documentType?: 'LS' | 'SR' | 'NB' | 'GS' | 'MB' | 'TB', options?: AxiosRequestConfig) {\n return DocumentsControllerApiFp(this.configuration).getDocumentAsBase64(customerNumber, documentId, documentDate, documentType, options).then((request) => request(this.axios, this.basePath));\n }\n}\n\n\n/**\n * FurtherReceiptsControllerApi - axios parameter creator\n * @export\n */\nexport const FurtherReceiptsControllerApiAxiosParamCreator = function (configuration?: Configuration) {\n return {\n /**\n * \n * @param {string} customerNumber The Customernumber\n * @param {FurtherReceiptTypeEnum} receiptType \n * @param {number} [pageNumber] The page to fetch\n * @param {number} [pageLimit] The number of receipts to return per page\n * @param {string} [fromDate] The startDate of the dateRange in the format dd.mm.yyyy\n * @param {string} [toDate] The endDate of the dateRange in the format dd.mm.yyyy\n * @param {string} [pzn] \n * @param {string} [articleName] \n * @param {number} [deliveryNoteId] \n * @param {string} [supplierName] \n * @param {string} [batchNumber] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n getFurtherReceipts: async (customerNumber: string, receiptType: FurtherReceiptTypeEnum, pageNumber?: number, pageLimit?: number, fromDate?: string, toDate?: string, pzn?: string, articleName?: string, deliveryNoteId?: number, supplierName?: string, batchNumber?: string, options: AxiosRequestConfig = {}): Promise => {\n // verify required parameter 'customerNumber' is not null or undefined\n assertParamExists('getFurtherReceipts', 'customerNumber', customerNumber)\n // verify required parameter 'receiptType' is not null or undefined\n assertParamExists('getFurtherReceipts', 'receiptType', receiptType)\n const localVarPath = `/customers/{customerNumber}/furtherReceipts/{receiptType}`\n .replace(`{${\"customerNumber\"}}`, encodeURIComponent(String(customerNumber)))\n .replace(`{${\"receiptType\"}}`, encodeURIComponent(String(receiptType)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n if (pageNumber !== undefined) {\n localVarQueryParameter['pageNumber'] = pageNumber;\n }\n\n if (pageLimit !== undefined) {\n localVarQueryParameter['pageLimit'] = pageLimit;\n }\n\n if (fromDate !== undefined) {\n localVarQueryParameter['fromDate'] = fromDate;\n }\n\n if (toDate !== undefined) {\n localVarQueryParameter['toDate'] = toDate;\n }\n\n if (pzn !== undefined) {\n localVarQueryParameter['pzn'] = pzn;\n }\n\n if (articleName !== undefined) {\n localVarQueryParameter['articleName'] = articleName;\n }\n\n if (deliveryNoteId !== undefined) {\n localVarQueryParameter['deliveryNoteId'] = deliveryNoteId;\n }\n\n if (supplierName !== undefined) {\n localVarQueryParameter['supplierName'] = supplierName;\n }\n\n if (batchNumber !== undefined) {\n localVarQueryParameter['batchNumber'] = batchNumber;\n }\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * \n * @param {string} customerNumber The Customernumber\n * @param {FurtherReceiptTypeEnum} receiptType \n * @param {string} [fromDate] The startDate of the dateRange in the format dd.mm.yyyy\n * @param {string} [toDate] The endDate of the dateRange in the format dd.mm.yyyy\n * @param {string} [pzn] \n * @param {string} [articleName] \n * @param {number} [deliveryNoteId] \n * @param {string} [supplierName] \n * @param {string} [batchNumber] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n getFurtherReceiptsAsCSV: async (customerNumber: string, receiptType: FurtherReceiptTypeEnum, fromDate?: string, toDate?: string, pzn?: string, articleName?: string, deliveryNoteId?: number, supplierName?: string, batchNumber?: string, options: AxiosRequestConfig = {}): Promise => {\n // verify required parameter 'customerNumber' is not null or undefined\n assertParamExists('getFurtherReceiptsAsCSV', 'customerNumber', customerNumber)\n // verify required parameter 'receiptType' is not null or undefined\n assertParamExists('getFurtherReceiptsAsCSV', 'receiptType', receiptType)\n const localVarPath = `/customers/{customerNumber}/furtherReceipts/{receiptType}/csv`\n .replace(`{${\"customerNumber\"}}`, encodeURIComponent(String(customerNumber)))\n .replace(`{${\"receiptType\"}}`, encodeURIComponent(String(receiptType)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n if (fromDate !== undefined) {\n localVarQueryParameter['fromDate'] = fromDate;\n }\n\n if (toDate !== undefined) {\n localVarQueryParameter['toDate'] = toDate;\n }\n\n if (pzn !== undefined) {\n localVarQueryParameter['pzn'] = pzn;\n }\n\n if (articleName !== undefined) {\n localVarQueryParameter['articleName'] = articleName;\n }\n\n if (deliveryNoteId !== undefined) {\n localVarQueryParameter['deliveryNoteId'] = deliveryNoteId;\n }\n\n if (supplierName !== undefined) {\n localVarQueryParameter['supplierName'] = supplierName;\n }\n\n if (batchNumber !== undefined) {\n localVarQueryParameter['batchNumber'] = batchNumber;\n }\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n }\n};\n\n/**\n * FurtherReceiptsControllerApi - functional programming interface\n * @export\n */\nexport const FurtherReceiptsControllerApiFp = function(configuration?: Configuration) {\n const localVarAxiosParamCreator = FurtherReceiptsControllerApiAxiosParamCreator(configuration)\n return {\n /**\n * \n * @param {string} customerNumber The Customernumber\n * @param {FurtherReceiptTypeEnum} receiptType \n * @param {number} [pageNumber] The page to fetch\n * @param {number} [pageLimit] The number of receipts to return per page\n * @param {string} [fromDate] The startDate of the dateRange in the format dd.mm.yyyy\n * @param {string} [toDate] The endDate of the dateRange in the format dd.mm.yyyy\n * @param {string} [pzn] \n * @param {string} [articleName] \n * @param {number} [deliveryNoteId] \n * @param {string} [supplierName] \n * @param {string} [batchNumber] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async getFurtherReceipts(customerNumber: string, receiptType: FurtherReceiptTypeEnum, pageNumber?: number, pageLimit?: number, fromDate?: string, toDate?: string, pzn?: string, articleName?: string, deliveryNoteId?: number, supplierName?: string, batchNumber?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.getFurtherReceipts(customerNumber, receiptType, pageNumber, pageLimit, fromDate, toDate, pzn, articleName, deliveryNoteId, supplierName, batchNumber, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n },\n /**\n * \n * @param {string} customerNumber The Customernumber\n * @param {FurtherReceiptTypeEnum} receiptType \n * @param {string} [fromDate] The startDate of the dateRange in the format dd.mm.yyyy\n * @param {string} [toDate] The endDate of the dateRange in the format dd.mm.yyyy\n * @param {string} [pzn] \n * @param {string} [articleName] \n * @param {number} [deliveryNoteId] \n * @param {string} [supplierName] \n * @param {string} [batchNumber] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async getFurtherReceiptsAsCSV(customerNumber: string, receiptType: FurtherReceiptTypeEnum, fromDate?: string, toDate?: string, pzn?: string, articleName?: string, deliveryNoteId?: number, supplierName?: string, batchNumber?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.getFurtherReceiptsAsCSV(customerNumber, receiptType, fromDate, toDate, pzn, articleName, deliveryNoteId, supplierName, batchNumber, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n },\n }\n};\n\n/**\n * FurtherReceiptsControllerApi - factory interface\n * @export\n */\nexport const FurtherReceiptsControllerApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\n const localVarFp = FurtherReceiptsControllerApiFp(configuration)\n return {\n /**\n * \n * @param {string} customerNumber The Customernumber\n * @param {FurtherReceiptTypeEnum} receiptType \n * @param {number} [pageNumber] The page to fetch\n * @param {number} [pageLimit] The number of receipts to return per page\n * @param {string} [fromDate] The startDate of the dateRange in the format dd.mm.yyyy\n * @param {string} [toDate] The endDate of the dateRange in the format dd.mm.yyyy\n * @param {string} [pzn] \n * @param {string} [articleName] \n * @param {number} [deliveryNoteId] \n * @param {string} [supplierName] \n * @param {string} [batchNumber] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n getFurtherReceipts(customerNumber: string, receiptType: FurtherReceiptTypeEnum, pageNumber?: number, pageLimit?: number, fromDate?: string, toDate?: string, pzn?: string, articleName?: string, deliveryNoteId?: number, supplierName?: string, batchNumber?: string, options?: any): AxiosPromise> {\n return localVarFp.getFurtherReceipts(customerNumber, receiptType, pageNumber, pageLimit, fromDate, toDate, pzn, articleName, deliveryNoteId, supplierName, batchNumber, options).then((request) => request(axios, basePath));\n },\n /**\n * \n * @param {string} customerNumber The Customernumber\n * @param {FurtherReceiptTypeEnum} receiptType \n * @param {string} [fromDate] The startDate of the dateRange in the format dd.mm.yyyy\n * @param {string} [toDate] The endDate of the dateRange in the format dd.mm.yyyy\n * @param {string} [pzn] \n * @param {string} [articleName] \n * @param {number} [deliveryNoteId] \n * @param {string} [supplierName] \n * @param {string} [batchNumber] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n getFurtherReceiptsAsCSV(customerNumber: string, receiptType: FurtherReceiptTypeEnum, fromDate?: string, toDate?: string, pzn?: string, articleName?: string, deliveryNoteId?: number, supplierName?: string, batchNumber?: string, options?: any): AxiosPromise {\n return localVarFp.getFurtherReceiptsAsCSV(customerNumber, receiptType, fromDate, toDate, pzn, articleName, deliveryNoteId, supplierName, batchNumber, options).then((request) => request(axios, basePath));\n },\n };\n};\n\n/**\n * FurtherReceiptsControllerApi - object-oriented interface\n * @export\n * @class FurtherReceiptsControllerApi\n * @extends {BaseAPI}\n */\nexport class FurtherReceiptsControllerApi extends BaseAPI {\n /**\n * \n * @param {string} customerNumber The Customernumber\n * @param {FurtherReceiptTypeEnum} receiptType \n * @param {number} [pageNumber] The page to fetch\n * @param {number} [pageLimit] The number of receipts to return per page\n * @param {string} [fromDate] The startDate of the dateRange in the format dd.mm.yyyy\n * @param {string} [toDate] The endDate of the dateRange in the format dd.mm.yyyy\n * @param {string} [pzn] \n * @param {string} [articleName] \n * @param {number} [deliveryNoteId] \n * @param {string} [supplierName] \n * @param {string} [batchNumber] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof FurtherReceiptsControllerApi\n */\n public getFurtherReceipts(customerNumber: string, receiptType: FurtherReceiptTypeEnum, pageNumber?: number, pageLimit?: number, fromDate?: string, toDate?: string, pzn?: string, articleName?: string, deliveryNoteId?: number, supplierName?: string, batchNumber?: string, options?: AxiosRequestConfig) {\n return FurtherReceiptsControllerApiFp(this.configuration).getFurtherReceipts(customerNumber, receiptType, pageNumber, pageLimit, fromDate, toDate, pzn, articleName, deliveryNoteId, supplierName, batchNumber, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * \n * @param {string} customerNumber The Customernumber\n * @param {FurtherReceiptTypeEnum} receiptType \n * @param {string} [fromDate] The startDate of the dateRange in the format dd.mm.yyyy\n * @param {string} [toDate] The endDate of the dateRange in the format dd.mm.yyyy\n * @param {string} [pzn] \n * @param {string} [articleName] \n * @param {number} [deliveryNoteId] \n * @param {string} [supplierName] \n * @param {string} [batchNumber] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof FurtherReceiptsControllerApi\n */\n public getFurtherReceiptsAsCSV(customerNumber: string, receiptType: FurtherReceiptTypeEnum, fromDate?: string, toDate?: string, pzn?: string, articleName?: string, deliveryNoteId?: number, supplierName?: string, batchNumber?: string, options?: AxiosRequestConfig) {\n return FurtherReceiptsControllerApiFp(this.configuration).getFurtherReceiptsAsCSV(customerNumber, receiptType, fromDate, toDate, pzn, articleName, deliveryNoteId, supplierName, batchNumber, options).then((request) => request(this.axios, this.basePath));\n }\n}\n\n\n/**\n * InvoicesControllerApi - axios parameter creator\n * @export\n */\nexport const InvoicesControllerApiAxiosParamCreator = function (configuration?: Configuration) {\n return {\n /**\n * \n * @param {string} customerNumber The Customernumber\n * @param {number} [pageNumber] The page to fetch\n * @param {number} [pageLimit] The number of invoices to return per page\n * @param {string} [fromDate] The startDate of the dateRange in the format dd.mm.yyyy\n * @param {string} [toDate] The endDate of the dateRange in the format dd.mm.yyyy\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n getAllInvoices: async (customerNumber: string, pageNumber?: number, pageLimit?: number, fromDate?: string, toDate?: string, options: AxiosRequestConfig = {}): Promise => {\n // verify required parameter 'customerNumber' is not null or undefined\n assertParamExists('getAllInvoices', 'customerNumber', customerNumber)\n const localVarPath = `/customers/{customerNumber}/invoices`\n .replace(`{${\"customerNumber\"}}`, encodeURIComponent(String(customerNumber)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n if (pageNumber !== undefined) {\n localVarQueryParameter['pageNumber'] = pageNumber;\n }\n\n if (pageLimit !== undefined) {\n localVarQueryParameter['pageLimit'] = pageLimit;\n }\n\n if (fromDate !== undefined) {\n localVarQueryParameter['fromDate'] = fromDate;\n }\n\n if (toDate !== undefined) {\n localVarQueryParameter['toDate'] = toDate;\n }\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n }\n};\n\n/**\n * InvoicesControllerApi - functional programming interface\n * @export\n */\nexport const InvoicesControllerApiFp = function(configuration?: Configuration) {\n const localVarAxiosParamCreator = InvoicesControllerApiAxiosParamCreator(configuration)\n return {\n /**\n * \n * @param {string} customerNumber The Customernumber\n * @param {number} [pageNumber] The page to fetch\n * @param {number} [pageLimit] The number of invoices to return per page\n * @param {string} [fromDate] The startDate of the dateRange in the format dd.mm.yyyy\n * @param {string} [toDate] The endDate of the dateRange in the format dd.mm.yyyy\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async getAllInvoices(customerNumber: string, pageNumber?: number, pageLimit?: number, fromDate?: string, toDate?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.getAllInvoices(customerNumber, pageNumber, pageLimit, fromDate, toDate, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n },\n }\n};\n\n/**\n * InvoicesControllerApi - factory interface\n * @export\n */\nexport const InvoicesControllerApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\n const localVarFp = InvoicesControllerApiFp(configuration)\n return {\n /**\n * \n * @param {string} customerNumber The Customernumber\n * @param {number} [pageNumber] The page to fetch\n * @param {number} [pageLimit] The number of invoices to return per page\n * @param {string} [fromDate] The startDate of the dateRange in the format dd.mm.yyyy\n * @param {string} [toDate] The endDate of the dateRange in the format dd.mm.yyyy\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n getAllInvoices(customerNumber: string, pageNumber?: number, pageLimit?: number, fromDate?: string, toDate?: string, options?: any): AxiosPromise> {\n return localVarFp.getAllInvoices(customerNumber, pageNumber, pageLimit, fromDate, toDate, options).then((request) => request(axios, basePath));\n },\n };\n};\n\n/**\n * InvoicesControllerApi - object-oriented interface\n * @export\n * @class InvoicesControllerApi\n * @extends {BaseAPI}\n */\nexport class InvoicesControllerApi extends BaseAPI {\n /**\n * \n * @param {string} customerNumber The Customernumber\n * @param {number} [pageNumber] The page to fetch\n * @param {number} [pageLimit] The number of invoices to return per page\n * @param {string} [fromDate] The startDate of the dateRange in the format dd.mm.yyyy\n * @param {string} [toDate] The endDate of the dateRange in the format dd.mm.yyyy\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof InvoicesControllerApi\n */\n public getAllInvoices(customerNumber: string, pageNumber?: number, pageLimit?: number, fromDate?: string, toDate?: string, options?: AxiosRequestConfig) {\n return InvoicesControllerApiFp(this.configuration).getAllInvoices(customerNumber, pageNumber, pageLimit, fromDate, toDate, options).then((request) => request(this.axios, this.basePath));\n }\n}\n\n\n/**\n * MessageControllerApi - axios parameter creator\n * @export\n */\nexport const MessageControllerApiAxiosParamCreator = function (configuration?: Configuration) {\n return {\n /**\n * Returns all available message for the given customer number\n * @param {string} customerNumber The Customernumber\n * @param {number} [pageNumber] The page to fetch\n * @param {number} [pageLimit] The amout of messages to load\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n getAllMessages: async (customerNumber: string, pageNumber?: number, pageLimit?: number, options: AxiosRequestConfig = {}): Promise => {\n // verify required parameter 'customerNumber' is not null or undefined\n assertParamExists('getAllMessages', 'customerNumber', customerNumber)\n const localVarPath = `/customers/{customerNumber}/messages`\n .replace(`{${\"customerNumber\"}}`, encodeURIComponent(String(customerNumber)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n if (pageNumber !== undefined) {\n localVarQueryParameter['pageNumber'] = pageNumber;\n }\n\n if (pageLimit !== undefined) {\n localVarQueryParameter['pageLimit'] = pageLimit;\n }\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * Returns the amount of unread messages for the given customernumber\n * @param {string} customerNumber The Customernumber\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n getUnreadMessageCount: async (customerNumber: string, options: AxiosRequestConfig = {}): Promise => {\n // verify required parameter 'customerNumber' is not null or undefined\n assertParamExists('getUnreadMessageCount', 'customerNumber', customerNumber)\n const localVarPath = `/customers/{customerNumber}/messages/unread-count`\n .replace(`{${\"customerNumber\"}}`, encodeURIComponent(String(customerNumber)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * \n * @summary Patches a specific message (currently only the readByPortal attribute could be patched)\n * @param {string} customerNumber The Customernumber\n * @param {number} messageId The messageId\n * @param {MessagePatchRequest} [messagePatchRequest] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n patchMessage: async (customerNumber: string, messageId: number, messagePatchRequest?: MessagePatchRequest, options: AxiosRequestConfig = {}): Promise => {\n // verify required parameter 'customerNumber' is not null or undefined\n assertParamExists('patchMessage', 'customerNumber', customerNumber)\n // verify required parameter 'messageId' is not null or undefined\n assertParamExists('patchMessage', 'messageId', messageId)\n const localVarPath = `/customers/{customerNumber}/messages/{messageId}`\n .replace(`{${\"customerNumber\"}}`, encodeURIComponent(String(customerNumber)))\n .replace(`{${\"messageId\"}}`, encodeURIComponent(String(messageId)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'PATCH', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n\n \n localVarHeaderParameter['Content-Type'] = 'application/json';\n\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n localVarRequestOptions.data = serializeDataIfNeeded(messagePatchRequest, localVarRequestOptions, configuration)\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * \n * @summary Creates a message\n * @param {string} customerNumber The Customernumber\n * @param {MessageRequest} [messageRequest] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n postMessage: async (customerNumber: string, messageRequest?: MessageRequest, options: AxiosRequestConfig = {}): Promise => {\n // verify required parameter 'customerNumber' is not null or undefined\n assertParamExists('postMessage', 'customerNumber', customerNumber)\n const localVarPath = `/customers/{customerNumber}/messages`\n .replace(`{${\"customerNumber\"}}`, encodeURIComponent(String(customerNumber)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n\n \n localVarHeaderParameter['Content-Type'] = 'application/json';\n\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n localVarRequestOptions.data = serializeDataIfNeeded(messageRequest, localVarRequestOptions, configuration)\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n }\n};\n\n/**\n * MessageControllerApi - functional programming interface\n * @export\n */\nexport const MessageControllerApiFp = function(configuration?: Configuration) {\n const localVarAxiosParamCreator = MessageControllerApiAxiosParamCreator(configuration)\n return {\n /**\n * Returns all available message for the given customer number\n * @param {string} customerNumber The Customernumber\n * @param {number} [pageNumber] The page to fetch\n * @param {number} [pageLimit] The amout of messages to load\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async getAllMessages(customerNumber: string, pageNumber?: number, pageLimit?: number, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.getAllMessages(customerNumber, pageNumber, pageLimit, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n },\n /**\n * Returns the amount of unread messages for the given customernumber\n * @param {string} customerNumber The Customernumber\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async getUnreadMessageCount(customerNumber: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.getUnreadMessageCount(customerNumber, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n },\n /**\n * \n * @summary Patches a specific message (currently only the readByPortal attribute could be patched)\n * @param {string} customerNumber The Customernumber\n * @param {number} messageId The messageId\n * @param {MessagePatchRequest} [messagePatchRequest] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async patchMessage(customerNumber: string, messageId: number, messagePatchRequest?: MessagePatchRequest, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.patchMessage(customerNumber, messageId, messagePatchRequest, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n },\n /**\n * \n * @summary Creates a message\n * @param {string} customerNumber The Customernumber\n * @param {MessageRequest} [messageRequest] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async postMessage(customerNumber: string, messageRequest?: MessageRequest, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.postMessage(customerNumber, messageRequest, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n },\n }\n};\n\n/**\n * MessageControllerApi - factory interface\n * @export\n */\nexport const MessageControllerApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\n const localVarFp = MessageControllerApiFp(configuration)\n return {\n /**\n * Returns all available message for the given customer number\n * @param {string} customerNumber The Customernumber\n * @param {number} [pageNumber] The page to fetch\n * @param {number} [pageLimit] The amout of messages to load\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n getAllMessages(customerNumber: string, pageNumber?: number, pageLimit?: number, options?: any): AxiosPromise> {\n return localVarFp.getAllMessages(customerNumber, pageNumber, pageLimit, options).then((request) => request(axios, basePath));\n },\n /**\n * Returns the amount of unread messages for the given customernumber\n * @param {string} customerNumber The Customernumber\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n getUnreadMessageCount(customerNumber: string, options?: any): AxiosPromise {\n return localVarFp.getUnreadMessageCount(customerNumber, options).then((request) => request(axios, basePath));\n },\n /**\n * \n * @summary Patches a specific message (currently only the readByPortal attribute could be patched)\n * @param {string} customerNumber The Customernumber\n * @param {number} messageId The messageId\n * @param {MessagePatchRequest} [messagePatchRequest] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n patchMessage(customerNumber: string, messageId: number, messagePatchRequest?: MessagePatchRequest, options?: any): AxiosPromise {\n return localVarFp.patchMessage(customerNumber, messageId, messagePatchRequest, options).then((request) => request(axios, basePath));\n },\n /**\n * \n * @summary Creates a message\n * @param {string} customerNumber The Customernumber\n * @param {MessageRequest} [messageRequest] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n postMessage(customerNumber: string, messageRequest?: MessageRequest, options?: any): AxiosPromise {\n return localVarFp.postMessage(customerNumber, messageRequest, options).then((request) => request(axios, basePath));\n },\n };\n};\n\n/**\n * MessageControllerApi - object-oriented interface\n * @export\n * @class MessageControllerApi\n * @extends {BaseAPI}\n */\nexport class MessageControllerApi extends BaseAPI {\n /**\n * Returns all available message for the given customer number\n * @param {string} customerNumber The Customernumber\n * @param {number} [pageNumber] The page to fetch\n * @param {number} [pageLimit] The amout of messages to load\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof MessageControllerApi\n */\n public getAllMessages(customerNumber: string, pageNumber?: number, pageLimit?: number, options?: AxiosRequestConfig) {\n return MessageControllerApiFp(this.configuration).getAllMessages(customerNumber, pageNumber, pageLimit, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * Returns the amount of unread messages for the given customernumber\n * @param {string} customerNumber The Customernumber\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof MessageControllerApi\n */\n public getUnreadMessageCount(customerNumber: string, options?: AxiosRequestConfig) {\n return MessageControllerApiFp(this.configuration).getUnreadMessageCount(customerNumber, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * \n * @summary Patches a specific message (currently only the readByPortal attribute could be patched)\n * @param {string} customerNumber The Customernumber\n * @param {number} messageId The messageId\n * @param {MessagePatchRequest} [messagePatchRequest] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof MessageControllerApi\n */\n public patchMessage(customerNumber: string, messageId: number, messagePatchRequest?: MessagePatchRequest, options?: AxiosRequestConfig) {\n return MessageControllerApiFp(this.configuration).patchMessage(customerNumber, messageId, messagePatchRequest, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * \n * @summary Creates a message\n * @param {string} customerNumber The Customernumber\n * @param {MessageRequest} [messageRequest] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof MessageControllerApi\n */\n public postMessage(customerNumber: string, messageRequest?: MessageRequest, options?: AxiosRequestConfig) {\n return MessageControllerApiFp(this.configuration).postMessage(customerNumber, messageRequest, options).then((request) => request(this.axios, this.basePath));\n }\n}\n\n\n/**\n * MonitoringControllerApi - axios parameter creator\n * @export\n */\nexport const MonitoringControllerApiAxiosParamCreator = function (configuration?: Configuration) {\n return {\n /**\n * \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n ping: async (options: AxiosRequestConfig = {}): Promise => {\n const localVarPath = `/public/monitoring/ping`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n }\n};\n\n/**\n * MonitoringControllerApi - functional programming interface\n * @export\n */\nexport const MonitoringControllerApiFp = function(configuration?: Configuration) {\n const localVarAxiosParamCreator = MonitoringControllerApiAxiosParamCreator(configuration)\n return {\n /**\n * \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async ping(options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.ping(options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n },\n }\n};\n\n/**\n * MonitoringControllerApi - factory interface\n * @export\n */\nexport const MonitoringControllerApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\n const localVarFp = MonitoringControllerApiFp(configuration)\n return {\n /**\n * \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n ping(options?: any): AxiosPromise {\n return localVarFp.ping(options).then((request) => request(axios, basePath));\n },\n };\n};\n\n/**\n * MonitoringControllerApi - object-oriented interface\n * @export\n * @class MonitoringControllerApi\n * @extends {BaseAPI}\n */\nexport class MonitoringControllerApi extends BaseAPI {\n /**\n * \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof MonitoringControllerApi\n */\n public ping(options?: AxiosRequestConfig) {\n return MonitoringControllerApiFp(this.configuration).ping(options).then((request) => request(this.axios, this.basePath));\n }\n}\n\n\n/**\n * OrdersControllerApi - axios parameter creator\n * @export\n */\nexport const OrdersControllerApiAxiosParamCreator = function (configuration?: Configuration) {\n return {\n /**\n * Cancels the given order position\n * @param {string} customerNumber The Customernumber\n * @param {Array} [cancelDto] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n cancelOrderPositions: async (customerNumber: string, cancelDto?: Array, options: AxiosRequestConfig = {}): Promise => {\n // verify required parameter 'customerNumber' is not null or undefined\n assertParamExists('cancelOrderPositions', 'customerNumber', customerNumber)\n const localVarPath = `/customers/{customerNumber}/orders/cancel`\n .replace(`{${\"customerNumber\"}}`, encodeURIComponent(String(customerNumber)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n\n \n localVarHeaderParameter['Content-Type'] = 'application/json';\n\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n localVarRequestOptions.data = serializeDataIfNeeded(cancelDto, localVarRequestOptions, configuration)\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * Will return the orders for the given customer number\n * @param {string} customerNumber The Customernumber\n * @param {number} [pageNumber] The page to fetch\n * @param {number} [pageLimit] The number of orders to return per page\n * @param {boolean} [sortByDateDesc] Sort orders by publish date descending\n * @param {string} [pzn] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n getAllOrders: async (customerNumber: string, pageNumber?: number, pageLimit?: number, sortByDateDesc?: boolean, pzn?: string, options: AxiosRequestConfig = {}): Promise => {\n // verify required parameter 'customerNumber' is not null or undefined\n assertParamExists('getAllOrders', 'customerNumber', customerNumber)\n const localVarPath = `/customers/{customerNumber}/orders`\n .replace(`{${\"customerNumber\"}}`, encodeURIComponent(String(customerNumber)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n if (pageNumber !== undefined) {\n localVarQueryParameter['pageNumber'] = pageNumber;\n }\n\n if (pageLimit !== undefined) {\n localVarQueryParameter['pageLimit'] = pageLimit;\n }\n\n if (sortByDateDesc !== undefined) {\n localVarQueryParameter['sortByDateDesc'] = sortByDateDesc;\n }\n\n if (pzn !== undefined) {\n localVarQueryParameter['pzn'] = pzn;\n }\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * Will trigger the return for the current month.\n * @param {string} customerNumber The Customernumber\n * @param {TriggerReturnRequestDto} triggerReturnRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n triggerReturn: async (customerNumber: string, triggerReturnRequestDto: TriggerReturnRequestDto, options: AxiosRequestConfig = {}): Promise => {\n // verify required parameter 'customerNumber' is not null or undefined\n assertParamExists('triggerReturn', 'customerNumber', customerNumber)\n // verify required parameter 'triggerReturnRequestDto' is not null or undefined\n assertParamExists('triggerReturn', 'triggerReturnRequestDto', triggerReturnRequestDto)\n const localVarPath = `/customers/{customerNumber}/orders/trigger-return`\n .replace(`{${\"customerNumber\"}}`, encodeURIComponent(String(customerNumber)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n\n \n localVarHeaderParameter['Content-Type'] = 'application/json';\n\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n localVarRequestOptions.data = serializeDataIfNeeded(triggerReturnRequestDto, localVarRequestOptions, configuration)\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n }\n};\n\n/**\n * OrdersControllerApi - functional programming interface\n * @export\n */\nexport const OrdersControllerApiFp = function(configuration?: Configuration) {\n const localVarAxiosParamCreator = OrdersControllerApiAxiosParamCreator(configuration)\n return {\n /**\n * Cancels the given order position\n * @param {string} customerNumber The Customernumber\n * @param {Array} [cancelDto] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async cancelOrderPositions(customerNumber: string, cancelDto?: Array, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.cancelOrderPositions(customerNumber, cancelDto, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n },\n /**\n * Will return the orders for the given customer number\n * @param {string} customerNumber The Customernumber\n * @param {number} [pageNumber] The page to fetch\n * @param {number} [pageLimit] The number of orders to return per page\n * @param {boolean} [sortByDateDesc] Sort orders by publish date descending\n * @param {string} [pzn] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async getAllOrders(customerNumber: string, pageNumber?: number, pageLimit?: number, sortByDateDesc?: boolean, pzn?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.getAllOrders(customerNumber, pageNumber, pageLimit, sortByDateDesc, pzn, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n },\n /**\n * Will trigger the return for the current month.\n * @param {string} customerNumber The Customernumber\n * @param {TriggerReturnRequestDto} triggerReturnRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async triggerReturn(customerNumber: string, triggerReturnRequestDto: TriggerReturnRequestDto, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.triggerReturn(customerNumber, triggerReturnRequestDto, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n },\n }\n};\n\n/**\n * OrdersControllerApi - factory interface\n * @export\n */\nexport const OrdersControllerApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\n const localVarFp = OrdersControllerApiFp(configuration)\n return {\n /**\n * Cancels the given order position\n * @param {string} customerNumber The Customernumber\n * @param {Array} [cancelDto] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n cancelOrderPositions(customerNumber: string, cancelDto?: Array, options?: any): AxiosPromise> {\n return localVarFp.cancelOrderPositions(customerNumber, cancelDto, options).then((request) => request(axios, basePath));\n },\n /**\n * Will return the orders for the given customer number\n * @param {string} customerNumber The Customernumber\n * @param {number} [pageNumber] The page to fetch\n * @param {number} [pageLimit] The number of orders to return per page\n * @param {boolean} [sortByDateDesc] Sort orders by publish date descending\n * @param {string} [pzn] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n getAllOrders(customerNumber: string, pageNumber?: number, pageLimit?: number, sortByDateDesc?: boolean, pzn?: string, options?: any): AxiosPromise> {\n return localVarFp.getAllOrders(customerNumber, pageNumber, pageLimit, sortByDateDesc, pzn, options).then((request) => request(axios, basePath));\n },\n /**\n * Will trigger the return for the current month.\n * @param {string} customerNumber The Customernumber\n * @param {TriggerReturnRequestDto} triggerReturnRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n triggerReturn(customerNumber: string, triggerReturnRequestDto: TriggerReturnRequestDto, options?: any): AxiosPromise {\n return localVarFp.triggerReturn(customerNumber, triggerReturnRequestDto, options).then((request) => request(axios, basePath));\n },\n };\n};\n\n/**\n * OrdersControllerApi - object-oriented interface\n * @export\n * @class OrdersControllerApi\n * @extends {BaseAPI}\n */\nexport class OrdersControllerApi extends BaseAPI {\n /**\n * Cancels the given order position\n * @param {string} customerNumber The Customernumber\n * @param {Array} [cancelDto] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof OrdersControllerApi\n */\n public cancelOrderPositions(customerNumber: string, cancelDto?: Array, options?: AxiosRequestConfig) {\n return OrdersControllerApiFp(this.configuration).cancelOrderPositions(customerNumber, cancelDto, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * Will return the orders for the given customer number\n * @param {string} customerNumber The Customernumber\n * @param {number} [pageNumber] The page to fetch\n * @param {number} [pageLimit] The number of orders to return per page\n * @param {boolean} [sortByDateDesc] Sort orders by publish date descending\n * @param {string} [pzn] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof OrdersControllerApi\n */\n public getAllOrders(customerNumber: string, pageNumber?: number, pageLimit?: number, sortByDateDesc?: boolean, pzn?: string, options?: AxiosRequestConfig) {\n return OrdersControllerApiFp(this.configuration).getAllOrders(customerNumber, pageNumber, pageLimit, sortByDateDesc, pzn, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * Will trigger the return for the current month.\n * @param {string} customerNumber The Customernumber\n * @param {TriggerReturnRequestDto} triggerReturnRequestDto \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof OrdersControllerApi\n */\n public triggerReturn(customerNumber: string, triggerReturnRequestDto: TriggerReturnRequestDto, options?: AxiosRequestConfig) {\n return OrdersControllerApiFp(this.configuration).triggerReturn(customerNumber, triggerReturnRequestDto, options).then((request) => request(this.axios, this.basePath));\n }\n}\n\n\n/**\n * ReceiptsControllerApi - axios parameter creator\n * @export\n */\nexport const ReceiptsControllerApiAxiosParamCreator = function (configuration?: Configuration) {\n return {\n /**\n * \n * @param {string} customerNumber The Customernumber\n * @param {'SR' | 'LS' | 'NB' | 'GS' | 'MB'} receiptType SR: Rechnung, LS: Lieferschein, NB: Nachbelastung, GS: Gutschrift, MB: Monatsbericht\n * @param {number} [pageNumber] The page to fetch\n * @param {number} [pageLimit] The number of receipts to return per page\n * @param {string} [fromDate] The startDate of the dateRange in the format dd.mm.yyyy\n * @param {string} [toDate] The endDate of the dateRange in the format dd.mm.yyyy\n * @param {string} [pzn] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n getAllReceipts: async (customerNumber: string, receiptType: 'SR' | 'LS' | 'NB' | 'GS' | 'MB', pageNumber?: number, pageLimit?: number, fromDate?: string, toDate?: string, pzn?: string, options: AxiosRequestConfig = {}): Promise => {\n // verify required parameter 'customerNumber' is not null or undefined\n assertParamExists('getAllReceipts', 'customerNumber', customerNumber)\n // verify required parameter 'receiptType' is not null or undefined\n assertParamExists('getAllReceipts', 'receiptType', receiptType)\n const localVarPath = `/customers/{customerNumber}/receipts/{receiptType}`\n .replace(`{${\"customerNumber\"}}`, encodeURIComponent(String(customerNumber)))\n .replace(`{${\"receiptType\"}}`, encodeURIComponent(String(receiptType)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n if (pageNumber !== undefined) {\n localVarQueryParameter['pageNumber'] = pageNumber;\n }\n\n if (pageLimit !== undefined) {\n localVarQueryParameter['pageLimit'] = pageLimit;\n }\n\n if (fromDate !== undefined) {\n localVarQueryParameter['fromDate'] = fromDate;\n }\n\n if (toDate !== undefined) {\n localVarQueryParameter['toDate'] = toDate;\n }\n\n if (pzn !== undefined) {\n localVarQueryParameter['pzn'] = pzn;\n }\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n }\n};\n\n/**\n * ReceiptsControllerApi - functional programming interface\n * @export\n */\nexport const ReceiptsControllerApiFp = function(configuration?: Configuration) {\n const localVarAxiosParamCreator = ReceiptsControllerApiAxiosParamCreator(configuration)\n return {\n /**\n * \n * @param {string} customerNumber The Customernumber\n * @param {'SR' | 'LS' | 'NB' | 'GS' | 'MB'} receiptType SR: Rechnung, LS: Lieferschein, NB: Nachbelastung, GS: Gutschrift, MB: Monatsbericht\n * @param {number} [pageNumber] The page to fetch\n * @param {number} [pageLimit] The number of receipts to return per page\n * @param {string} [fromDate] The startDate of the dateRange in the format dd.mm.yyyy\n * @param {string} [toDate] The endDate of the dateRange in the format dd.mm.yyyy\n * @param {string} [pzn] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async getAllReceipts(customerNumber: string, receiptType: 'SR' | 'LS' | 'NB' | 'GS' | 'MB', pageNumber?: number, pageLimit?: number, fromDate?: string, toDate?: string, pzn?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.getAllReceipts(customerNumber, receiptType, pageNumber, pageLimit, fromDate, toDate, pzn, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n },\n }\n};\n\n/**\n * ReceiptsControllerApi - factory interface\n * @export\n */\nexport const ReceiptsControllerApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\n const localVarFp = ReceiptsControllerApiFp(configuration)\n return {\n /**\n * \n * @param {string} customerNumber The Customernumber\n * @param {'SR' | 'LS' | 'NB' | 'GS' | 'MB'} receiptType SR: Rechnung, LS: Lieferschein, NB: Nachbelastung, GS: Gutschrift, MB: Monatsbericht\n * @param {number} [pageNumber] The page to fetch\n * @param {number} [pageLimit] The number of receipts to return per page\n * @param {string} [fromDate] The startDate of the dateRange in the format dd.mm.yyyy\n * @param {string} [toDate] The endDate of the dateRange in the format dd.mm.yyyy\n * @param {string} [pzn] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n getAllReceipts(customerNumber: string, receiptType: 'SR' | 'LS' | 'NB' | 'GS' | 'MB', pageNumber?: number, pageLimit?: number, fromDate?: string, toDate?: string, pzn?: string, options?: any): AxiosPromise> {\n return localVarFp.getAllReceipts(customerNumber, receiptType, pageNumber, pageLimit, fromDate, toDate, pzn, options).then((request) => request(axios, basePath));\n },\n };\n};\n\n/**\n * ReceiptsControllerApi - object-oriented interface\n * @export\n * @class ReceiptsControllerApi\n * @extends {BaseAPI}\n */\nexport class ReceiptsControllerApi extends BaseAPI {\n /**\n * \n * @param {string} customerNumber The Customernumber\n * @param {'SR' | 'LS' | 'NB' | 'GS' | 'MB'} receiptType SR: Rechnung, LS: Lieferschein, NB: Nachbelastung, GS: Gutschrift, MB: Monatsbericht\n * @param {number} [pageNumber] The page to fetch\n * @param {number} [pageLimit] The number of receipts to return per page\n * @param {string} [fromDate] The startDate of the dateRange in the format dd.mm.yyyy\n * @param {string} [toDate] The endDate of the dateRange in the format dd.mm.yyyy\n * @param {string} [pzn] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof ReceiptsControllerApi\n */\n public getAllReceipts(customerNumber: string, receiptType: 'SR' | 'LS' | 'NB' | 'GS' | 'MB', pageNumber?: number, pageLimit?: number, fromDate?: string, toDate?: string, pzn?: string, options?: AxiosRequestConfig) {\n return ReceiptsControllerApiFp(this.configuration).getAllReceipts(customerNumber, receiptType, pageNumber, pageLimit, fromDate, toDate, pzn, options).then((request) => request(this.axios, this.basePath));\n }\n}\n\n\n/**\n * ReturnsControllerApi - axios parameter creator\n * @export\n */\nexport const ReturnsControllerApiAxiosParamCreator = function (configuration?: Configuration) {\n return {\n /**\n * \n * @param {string} customerNumber \n * @param {number} [pageNumber] The page to fetch\n * @param {number} [pageLimit] The number of returns to return per page\n * @param {string} [pzn] \n * @param {'' | '1' | '5' | '9'} [state] 1: open, 5: in process, 9: completed\n * @param {string} [fromDate] The startDate of the dateRange in the format dd.mm.yyyy\n * @param {string} [toDate] The endDate of the dateRange in the format dd.mm.yyyy\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n getAllReturns: async (customerNumber: string, pageNumber?: number, pageLimit?: number, pzn?: string, state?: '' | '1' | '5' | '9', fromDate?: string, toDate?: string, options: AxiosRequestConfig = {}): Promise => {\n // verify required parameter 'customerNumber' is not null or undefined\n assertParamExists('getAllReturns', 'customerNumber', customerNumber)\n const localVarPath = `/customers/{customerNumber}/returns`\n .replace(`{${\"customerNumber\"}}`, encodeURIComponent(String(customerNumber)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n if (pageNumber !== undefined) {\n localVarQueryParameter['pageNumber'] = pageNumber;\n }\n\n if (pageLimit !== undefined) {\n localVarQueryParameter['pageLimit'] = pageLimit;\n }\n\n if (pzn !== undefined) {\n localVarQueryParameter['pzn'] = pzn;\n }\n\n if (state !== undefined) {\n localVarQueryParameter['state'] = state;\n }\n\n if (fromDate !== undefined) {\n localVarQueryParameter['fromDate'] = fromDate;\n }\n\n if (toDate !== undefined) {\n localVarQueryParameter['toDate'] = toDate;\n }\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n }\n};\n\n/**\n * ReturnsControllerApi - functional programming interface\n * @export\n */\nexport const ReturnsControllerApiFp = function(configuration?: Configuration) {\n const localVarAxiosParamCreator = ReturnsControllerApiAxiosParamCreator(configuration)\n return {\n /**\n * \n * @param {string} customerNumber \n * @param {number} [pageNumber] The page to fetch\n * @param {number} [pageLimit] The number of returns to return per page\n * @param {string} [pzn] \n * @param {'' | '1' | '5' | '9'} [state] 1: open, 5: in process, 9: completed\n * @param {string} [fromDate] The startDate of the dateRange in the format dd.mm.yyyy\n * @param {string} [toDate] The endDate of the dateRange in the format dd.mm.yyyy\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async getAllReturns(customerNumber: string, pageNumber?: number, pageLimit?: number, pzn?: string, state?: '' | '1' | '5' | '9', fromDate?: string, toDate?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.getAllReturns(customerNumber, pageNumber, pageLimit, pzn, state, fromDate, toDate, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n },\n }\n};\n\n/**\n * ReturnsControllerApi - factory interface\n * @export\n */\nexport const ReturnsControllerApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\n const localVarFp = ReturnsControllerApiFp(configuration)\n return {\n /**\n * \n * @param {string} customerNumber \n * @param {number} [pageNumber] The page to fetch\n * @param {number} [pageLimit] The number of returns to return per page\n * @param {string} [pzn] \n * @param {'' | '1' | '5' | '9'} [state] 1: open, 5: in process, 9: completed\n * @param {string} [fromDate] The startDate of the dateRange in the format dd.mm.yyyy\n * @param {string} [toDate] The endDate of the dateRange in the format dd.mm.yyyy\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n getAllReturns(customerNumber: string, pageNumber?: number, pageLimit?: number, pzn?: string, state?: '' | '1' | '5' | '9', fromDate?: string, toDate?: string, options?: any): AxiosPromise> {\n return localVarFp.getAllReturns(customerNumber, pageNumber, pageLimit, pzn, state, fromDate, toDate, options).then((request) => request(axios, basePath));\n },\n };\n};\n\n/**\n * ReturnsControllerApi - object-oriented interface\n * @export\n * @class ReturnsControllerApi\n * @extends {BaseAPI}\n */\nexport class ReturnsControllerApi extends BaseAPI {\n /**\n * \n * @param {string} customerNumber \n * @param {number} [pageNumber] The page to fetch\n * @param {number} [pageLimit] The number of returns to return per page\n * @param {string} [pzn] \n * @param {'' | '1' | '5' | '9'} [state] 1: open, 5: in process, 9: completed\n * @param {string} [fromDate] The startDate of the dateRange in the format dd.mm.yyyy\n * @param {string} [toDate] The endDate of the dateRange in the format dd.mm.yyyy\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof ReturnsControllerApi\n */\n public getAllReturns(customerNumber: string, pageNumber?: number, pageLimit?: number, pzn?: string, state?: '' | '1' | '5' | '9', fromDate?: string, toDate?: string, options?: AxiosRequestConfig) {\n return ReturnsControllerApiFp(this.configuration).getAllReturns(customerNumber, pageNumber, pageLimit, pzn, state, fromDate, toDate, options).then((request) => request(this.axios, this.basePath));\n }\n}\n\n\n/**\n * SpecialOrdersControllerApi - axios parameter creator\n * @export\n */\nexport const SpecialOrdersControllerApiAxiosParamCreator = function (configuration?: Configuration) {\n return {\n /**\n * \n * @param {string} customerNumber The Customernumber\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n getSpecialOrders: async (customerNumber: string, options: AxiosRequestConfig = {}): Promise => {\n // verify required parameter 'customerNumber' is not null or undefined\n assertParamExists('getSpecialOrders', 'customerNumber', customerNumber)\n const localVarPath = `/specialOrders/{customerNumber}`\n .replace(`{${\"customerNumber\"}}`, encodeURIComponent(String(customerNumber)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * \n * @summary Creates special Order Entries\n * @param {string} customerNumber The Customernumber\n * @param {Array} [specialOrderRequest] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n postSpecialOrder: async (customerNumber: string, specialOrderRequest?: Array, options: AxiosRequestConfig = {}): Promise => {\n // verify required parameter 'customerNumber' is not null or undefined\n assertParamExists('postSpecialOrder', 'customerNumber', customerNumber)\n const localVarPath = `/specialOrders/{customerNumber}`\n .replace(`{${\"customerNumber\"}}`, encodeURIComponent(String(customerNumber)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n\n \n localVarHeaderParameter['Content-Type'] = 'application/json';\n\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n localVarRequestOptions.data = serializeDataIfNeeded(specialOrderRequest, localVarRequestOptions, configuration)\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n }\n};\n\n/**\n * SpecialOrdersControllerApi - functional programming interface\n * @export\n */\nexport const SpecialOrdersControllerApiFp = function(configuration?: Configuration) {\n const localVarAxiosParamCreator = SpecialOrdersControllerApiAxiosParamCreator(configuration)\n return {\n /**\n * \n * @param {string} customerNumber The Customernumber\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async getSpecialOrders(customerNumber: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.getSpecialOrders(customerNumber, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n },\n /**\n * \n * @summary Creates special Order Entries\n * @param {string} customerNumber The Customernumber\n * @param {Array} [specialOrderRequest] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async postSpecialOrder(customerNumber: string, specialOrderRequest?: Array, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.postSpecialOrder(customerNumber, specialOrderRequest, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n },\n }\n};\n\n/**\n * SpecialOrdersControllerApi - factory interface\n * @export\n */\nexport const SpecialOrdersControllerApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\n const localVarFp = SpecialOrdersControllerApiFp(configuration)\n return {\n /**\n * \n * @param {string} customerNumber The Customernumber\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n getSpecialOrders(customerNumber: string, options?: any): AxiosPromise> {\n return localVarFp.getSpecialOrders(customerNumber, options).then((request) => request(axios, basePath));\n },\n /**\n * \n * @summary Creates special Order Entries\n * @param {string} customerNumber The Customernumber\n * @param {Array} [specialOrderRequest] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n postSpecialOrder(customerNumber: string, specialOrderRequest?: Array, options?: any): AxiosPromise {\n return localVarFp.postSpecialOrder(customerNumber, specialOrderRequest, options).then((request) => request(axios, basePath));\n },\n };\n};\n\n/**\n * SpecialOrdersControllerApi - object-oriented interface\n * @export\n * @class SpecialOrdersControllerApi\n * @extends {BaseAPI}\n */\nexport class SpecialOrdersControllerApi extends BaseAPI {\n /**\n * \n * @param {string} customerNumber The Customernumber\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof SpecialOrdersControllerApi\n */\n public getSpecialOrders(customerNumber: string, options?: AxiosRequestConfig) {\n return SpecialOrdersControllerApiFp(this.configuration).getSpecialOrders(customerNumber, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * \n * @summary Creates special Order Entries\n * @param {string} customerNumber The Customernumber\n * @param {Array} [specialOrderRequest] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof SpecialOrdersControllerApi\n */\n public postSpecialOrder(customerNumber: string, specialOrderRequest?: Array, options?: AxiosRequestConfig) {\n return SpecialOrdersControllerApiFp(this.configuration).postSpecialOrder(customerNumber, specialOrderRequest, options).then((request) => request(this.axios, this.basePath));\n }\n}\n\n\n/**\n * UserControllerApi - axios parameter creator\n * @export\n */\nexport const UserControllerApiAxiosParamCreator = function (configuration?: Configuration) {\n return {\n /**\n * \n * @summary Creates a user\n * @param {string} customerNumber The Customernumber\n * @param {UserDto} [userDto] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n createUser: async (customerNumber: string, userDto?: UserDto, options: AxiosRequestConfig = {}): Promise => {\n // verify required parameter 'customerNumber' is not null or undefined\n assertParamExists('createUser', 'customerNumber', customerNumber)\n const localVarPath = `/customers/{customerNumber}/users`\n .replace(`{${\"customerNumber\"}}`, encodeURIComponent(String(customerNumber)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n\n \n localVarHeaderParameter['Content-Type'] = 'application/json';\n\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n localVarRequestOptions.data = serializeDataIfNeeded(userDto, localVarRequestOptions, configuration)\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * \n * @summary deletes a user\n * @param {string} customerNumber The Customernumber\n * @param {string} userName The Username\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n deleteUser: async (customerNumber: string, userName: string, options: AxiosRequestConfig = {}): Promise => {\n // verify required parameter 'customerNumber' is not null or undefined\n assertParamExists('deleteUser', 'customerNumber', customerNumber)\n // verify required parameter 'userName' is not null or undefined\n assertParamExists('deleteUser', 'userName', userName)\n const localVarPath = `/customers/{customerNumber}/users/{userName}`\n .replace(`{${\"customerNumber\"}}`, encodeURIComponent(String(customerNumber)))\n .replace(`{${\"userName\"}}`, encodeURIComponent(String(userName)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * \n * @param {string} customerNumber The Customernumber\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n getAllUsers: async (customerNumber: string, options: AxiosRequestConfig = {}): Promise => {\n // verify required parameter 'customerNumber' is not null or undefined\n assertParamExists('getAllUsers', 'customerNumber', customerNumber)\n const localVarPath = `/customers/{customerNumber}/users`\n .replace(`{${\"customerNumber\"}}`, encodeURIComponent(String(customerNumber)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * \n * @param {string} customerNumber The Customernumber\n * @param {string} userName The Username\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n getUser: async (customerNumber: string, userName: string, options: AxiosRequestConfig = {}): Promise => {\n // verify required parameter 'customerNumber' is not null or undefined\n assertParamExists('getUser', 'customerNumber', customerNumber)\n // verify required parameter 'userName' is not null or undefined\n assertParamExists('getUser', 'userName', userName)\n const localVarPath = `/customers/{customerNumber}/users/{userName}`\n .replace(`{${\"customerNumber\"}}`, encodeURIComponent(String(customerNumber)))\n .replace(`{${\"userName\"}}`, encodeURIComponent(String(userName)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * \n * @summary gets a userProfile\n * @param {string} customerNumber The Customernumber\n * @param {string} userName The Username\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n getUserProfile: async (customerNumber: string, userName: string, options: AxiosRequestConfig = {}): Promise => {\n // verify required parameter 'customerNumber' is not null or undefined\n assertParamExists('getUserProfile', 'customerNumber', customerNumber)\n // verify required parameter 'userName' is not null or undefined\n assertParamExists('getUserProfile', 'userName', userName)\n const localVarPath = `/customers/{customerNumber}/users/{userName}/profile`\n .replace(`{${\"customerNumber\"}}`, encodeURIComponent(String(customerNumber)))\n .replace(`{${\"userName\"}}`, encodeURIComponent(String(userName)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * \n * @summary updates a user\n * @param {string} customerNumber The Customernumber\n * @param {string} userName The Username\n * @param {UserDto} [userDto] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n updateUser: async (customerNumber: string, userName: string, userDto?: UserDto, options: AxiosRequestConfig = {}): Promise => {\n // verify required parameter 'customerNumber' is not null or undefined\n assertParamExists('updateUser', 'customerNumber', customerNumber)\n // verify required parameter 'userName' is not null or undefined\n assertParamExists('updateUser', 'userName', userName)\n const localVarPath = `/customers/{customerNumber}/users/{userName}`\n .replace(`{${\"customerNumber\"}}`, encodeURIComponent(String(customerNumber)))\n .replace(`{${\"userName\"}}`, encodeURIComponent(String(userName)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'PUT', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n\n \n localVarHeaderParameter['Content-Type'] = 'application/json';\n\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n localVarRequestOptions.data = serializeDataIfNeeded(userDto, localVarRequestOptions, configuration)\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * \n * @summary updates a userProfile\n * @param {string} customerNumber The Customernumber\n * @param {string} userName The Username\n * @param {UserProfileDto} [userProfileDto] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n updateUserProfile: async (customerNumber: string, userName: string, userProfileDto?: UserProfileDto, options: AxiosRequestConfig = {}): Promise => {\n // verify required parameter 'customerNumber' is not null or undefined\n assertParamExists('updateUserProfile', 'customerNumber', customerNumber)\n // verify required parameter 'userName' is not null or undefined\n assertParamExists('updateUserProfile', 'userName', userName)\n const localVarPath = `/customers/{customerNumber}/users/{userName}/profile`\n .replace(`{${\"customerNumber\"}}`, encodeURIComponent(String(customerNumber)))\n .replace(`{${\"userName\"}}`, encodeURIComponent(String(userName)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'PUT', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n\n \n localVarHeaderParameter['Content-Type'] = 'application/json';\n\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n localVarRequestOptions.data = serializeDataIfNeeded(userProfileDto, localVarRequestOptions, configuration)\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n }\n};\n\n/**\n * UserControllerApi - functional programming interface\n * @export\n */\nexport const UserControllerApiFp = function(configuration?: Configuration) {\n const localVarAxiosParamCreator = UserControllerApiAxiosParamCreator(configuration)\n return {\n /**\n * \n * @summary Creates a user\n * @param {string} customerNumber The Customernumber\n * @param {UserDto} [userDto] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async createUser(customerNumber: string, userDto?: UserDto, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.createUser(customerNumber, userDto, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n },\n /**\n * \n * @summary deletes a user\n * @param {string} customerNumber The Customernumber\n * @param {string} userName The Username\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async deleteUser(customerNumber: string, userName: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.deleteUser(customerNumber, userName, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n },\n /**\n * \n * @param {string} customerNumber The Customernumber\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async getAllUsers(customerNumber: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.getAllUsers(customerNumber, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n },\n /**\n * \n * @param {string} customerNumber The Customernumber\n * @param {string} userName The Username\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async getUser(customerNumber: string, userName: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.getUser(customerNumber, userName, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n },\n /**\n * \n * @summary gets a userProfile\n * @param {string} customerNumber The Customernumber\n * @param {string} userName The Username\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async getUserProfile(customerNumber: string, userName: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.getUserProfile(customerNumber, userName, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n },\n /**\n * \n * @summary updates a user\n * @param {string} customerNumber The Customernumber\n * @param {string} userName The Username\n * @param {UserDto} [userDto] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async updateUser(customerNumber: string, userName: string, userDto?: UserDto, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.updateUser(customerNumber, userName, userDto, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n },\n /**\n * \n * @summary updates a userProfile\n * @param {string} customerNumber The Customernumber\n * @param {string} userName The Username\n * @param {UserProfileDto} [userProfileDto] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async updateUserProfile(customerNumber: string, userName: string, userProfileDto?: UserProfileDto, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.updateUserProfile(customerNumber, userName, userProfileDto, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n },\n }\n};\n\n/**\n * UserControllerApi - factory interface\n * @export\n */\nexport const UserControllerApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\n const localVarFp = UserControllerApiFp(configuration)\n return {\n /**\n * \n * @summary Creates a user\n * @param {string} customerNumber The Customernumber\n * @param {UserDto} [userDto] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n createUser(customerNumber: string, userDto?: UserDto, options?: any): AxiosPromise {\n return localVarFp.createUser(customerNumber, userDto, options).then((request) => request(axios, basePath));\n },\n /**\n * \n * @summary deletes a user\n * @param {string} customerNumber The Customernumber\n * @param {string} userName The Username\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n deleteUser(customerNumber: string, userName: string, options?: any): AxiosPromise {\n return localVarFp.deleteUser(customerNumber, userName, options).then((request) => request(axios, basePath));\n },\n /**\n * \n * @param {string} customerNumber The Customernumber\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n getAllUsers(customerNumber: string, options?: any): AxiosPromise> {\n return localVarFp.getAllUsers(customerNumber, options).then((request) => request(axios, basePath));\n },\n /**\n * \n * @param {string} customerNumber The Customernumber\n * @param {string} userName The Username\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n getUser(customerNumber: string, userName: string, options?: any): AxiosPromise {\n return localVarFp.getUser(customerNumber, userName, options).then((request) => request(axios, basePath));\n },\n /**\n * \n * @summary gets a userProfile\n * @param {string} customerNumber The Customernumber\n * @param {string} userName The Username\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n getUserProfile(customerNumber: string, userName: string, options?: any): AxiosPromise {\n return localVarFp.getUserProfile(customerNumber, userName, options).then((request) => request(axios, basePath));\n },\n /**\n * \n * @summary updates a user\n * @param {string} customerNumber The Customernumber\n * @param {string} userName The Username\n * @param {UserDto} [userDto] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n updateUser(customerNumber: string, userName: string, userDto?: UserDto, options?: any): AxiosPromise {\n return localVarFp.updateUser(customerNumber, userName, userDto, options).then((request) => request(axios, basePath));\n },\n /**\n * \n * @summary updates a userProfile\n * @param {string} customerNumber The Customernumber\n * @param {string} userName The Username\n * @param {UserProfileDto} [userProfileDto] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n updateUserProfile(customerNumber: string, userName: string, userProfileDto?: UserProfileDto, options?: any): AxiosPromise {\n return localVarFp.updateUserProfile(customerNumber, userName, userProfileDto, options).then((request) => request(axios, basePath));\n },\n };\n};\n\n/**\n * UserControllerApi - object-oriented interface\n * @export\n * @class UserControllerApi\n * @extends {BaseAPI}\n */\nexport class UserControllerApi extends BaseAPI {\n /**\n * \n * @summary Creates a user\n * @param {string} customerNumber The Customernumber\n * @param {UserDto} [userDto] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof UserControllerApi\n */\n public createUser(customerNumber: string, userDto?: UserDto, options?: AxiosRequestConfig) {\n return UserControllerApiFp(this.configuration).createUser(customerNumber, userDto, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * \n * @summary deletes a user\n * @param {string} customerNumber The Customernumber\n * @param {string} userName The Username\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof UserControllerApi\n */\n public deleteUser(customerNumber: string, userName: string, options?: AxiosRequestConfig) {\n return UserControllerApiFp(this.configuration).deleteUser(customerNumber, userName, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * \n * @param {string} customerNumber The Customernumber\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof UserControllerApi\n */\n public getAllUsers(customerNumber: string, options?: AxiosRequestConfig) {\n return UserControllerApiFp(this.configuration).getAllUsers(customerNumber, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * \n * @param {string} customerNumber The Customernumber\n * @param {string} userName The Username\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof UserControllerApi\n */\n public getUser(customerNumber: string, userName: string, options?: AxiosRequestConfig) {\n return UserControllerApiFp(this.configuration).getUser(customerNumber, userName, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * \n * @summary gets a userProfile\n * @param {string} customerNumber The Customernumber\n * @param {string} userName The Username\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof UserControllerApi\n */\n public getUserProfile(customerNumber: string, userName: string, options?: AxiosRequestConfig) {\n return UserControllerApiFp(this.configuration).getUserProfile(customerNumber, userName, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * \n * @summary updates a user\n * @param {string} customerNumber The Customernumber\n * @param {string} userName The Username\n * @param {UserDto} [userDto] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof UserControllerApi\n */\n public updateUser(customerNumber: string, userName: string, userDto?: UserDto, options?: AxiosRequestConfig) {\n return UserControllerApiFp(this.configuration).updateUser(customerNumber, userName, userDto, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * \n * @summary updates a userProfile\n * @param {string} customerNumber The Customernumber\n * @param {string} userName The Username\n * @param {UserProfileDto} [userProfileDto] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof UserControllerApi\n */\n public updateUserProfile(customerNumber: string, userName: string, userProfileDto?: UserProfileDto, options?: AxiosRequestConfig) {\n return UserControllerApiFp(this.configuration).updateUserProfile(customerNumber, userName, userProfileDto, options).then((request) => request(this.axios, this.basePath));\n }\n}\n\n\n/**\n * UserImportControllerApi - axios parameter creator\n * @export\n */\nexport const UserImportControllerApiAxiosParamCreator = function (configuration?: Configuration) {\n return {\n /**\n * \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n disablePharmacyOwners: async (options: AxiosRequestConfig = {}): Promise => {\n const localVarPath = `/admin/disable-users`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n enablePharmacyOwners: async (options: AxiosRequestConfig = {}): Promise => {\n const localVarPath = `/admin/enable-users`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * \n * @param {string} [lastrun] The last run timestamp\n * @param {boolean} [incremental] Incremental or full import\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n importPharmacyOwners: async (lastrun?: string, incremental?: boolean, options: AxiosRequestConfig = {}): Promise => {\n const localVarPath = `/admin/user-import`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n if (lastrun !== undefined) {\n localVarQueryParameter['lastrun'] = (lastrun as any instanceof Date) ?\n (lastrun as any).toISOString() :\n lastrun;\n }\n\n if (incremental !== undefined) {\n localVarQueryParameter['incremental'] = incremental;\n }\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n migrateRoles: async (options: AxiosRequestConfig = {}): Promise => {\n const localVarPath = `/admin/migrate-roles`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'PUT', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * \n * @summary Creates Users and Pharmacies based on a JSON\n * @param {boolean} [incremental] Incremental or full import\n * @param {number} [step] which step to start import on (0 - pharmacy import, 1 - user creation, 2 - user deletion, 3 - user activation, 4 - pharmacy assignment)\n * @param {Array} [pharmacyOwnerDto] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n postUsers: async (incremental?: boolean, step?: number, pharmacyOwnerDto?: Array, options: AxiosRequestConfig = {}): Promise => {\n const localVarPath = `/admin/user-import`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n if (incremental !== undefined) {\n localVarQueryParameter['incremental'] = incremental;\n }\n\n if (step !== undefined) {\n localVarQueryParameter['step'] = step;\n }\n\n\n \n localVarHeaderParameter['Content-Type'] = 'application/json';\n\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n localVarRequestOptions.data = serializeDataIfNeeded(pharmacyOwnerDto, localVarRequestOptions, configuration)\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n }\n};\n\n/**\n * UserImportControllerApi - functional programming interface\n * @export\n */\nexport const UserImportControllerApiFp = function(configuration?: Configuration) {\n const localVarAxiosParamCreator = UserImportControllerApiAxiosParamCreator(configuration)\n return {\n /**\n * \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async disablePharmacyOwners(options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.disablePharmacyOwners(options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n },\n /**\n * \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async enablePharmacyOwners(options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.enablePharmacyOwners(options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n },\n /**\n * \n * @param {string} [lastrun] The last run timestamp\n * @param {boolean} [incremental] Incremental or full import\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async importPharmacyOwners(lastrun?: string, incremental?: boolean, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.importPharmacyOwners(lastrun, incremental, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n },\n /**\n * \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async migrateRoles(options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.migrateRoles(options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n },\n /**\n * \n * @summary Creates Users and Pharmacies based on a JSON\n * @param {boolean} [incremental] Incremental or full import\n * @param {number} [step] which step to start import on (0 - pharmacy import, 1 - user creation, 2 - user deletion, 3 - user activation, 4 - pharmacy assignment)\n * @param {Array} [pharmacyOwnerDto] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async postUsers(incremental?: boolean, step?: number, pharmacyOwnerDto?: Array, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.postUsers(incremental, step, pharmacyOwnerDto, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n },\n }\n};\n\n/**\n * UserImportControllerApi - factory interface\n * @export\n */\nexport const UserImportControllerApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\n const localVarFp = UserImportControllerApiFp(configuration)\n return {\n /**\n * \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n disablePharmacyOwners(options?: any): AxiosPromise {\n return localVarFp.disablePharmacyOwners(options).then((request) => request(axios, basePath));\n },\n /**\n * \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n enablePharmacyOwners(options?: any): AxiosPromise {\n return localVarFp.enablePharmacyOwners(options).then((request) => request(axios, basePath));\n },\n /**\n * \n * @param {string} [lastrun] The last run timestamp\n * @param {boolean} [incremental] Incremental or full import\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n importPharmacyOwners(lastrun?: string, incremental?: boolean, options?: any): AxiosPromise {\n return localVarFp.importPharmacyOwners(lastrun, incremental, options).then((request) => request(axios, basePath));\n },\n /**\n * \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n migrateRoles(options?: any): AxiosPromise {\n return localVarFp.migrateRoles(options).then((request) => request(axios, basePath));\n },\n /**\n * \n * @summary Creates Users and Pharmacies based on a JSON\n * @param {boolean} [incremental] Incremental or full import\n * @param {number} [step] which step to start import on (0 - pharmacy import, 1 - user creation, 2 - user deletion, 3 - user activation, 4 - pharmacy assignment)\n * @param {Array} [pharmacyOwnerDto] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n postUsers(incremental?: boolean, step?: number, pharmacyOwnerDto?: Array, options?: any): AxiosPromise {\n return localVarFp.postUsers(incremental, step, pharmacyOwnerDto, options).then((request) => request(axios, basePath));\n },\n };\n};\n\n/**\n * UserImportControllerApi - object-oriented interface\n * @export\n * @class UserImportControllerApi\n * @extends {BaseAPI}\n */\nexport class UserImportControllerApi extends BaseAPI {\n /**\n * \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof UserImportControllerApi\n */\n public disablePharmacyOwners(options?: AxiosRequestConfig) {\n return UserImportControllerApiFp(this.configuration).disablePharmacyOwners(options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof UserImportControllerApi\n */\n public enablePharmacyOwners(options?: AxiosRequestConfig) {\n return UserImportControllerApiFp(this.configuration).enablePharmacyOwners(options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * \n * @param {string} [lastrun] The last run timestamp\n * @param {boolean} [incremental] Incremental or full import\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof UserImportControllerApi\n */\n public importPharmacyOwners(lastrun?: string, incremental?: boolean, options?: AxiosRequestConfig) {\n return UserImportControllerApiFp(this.configuration).importPharmacyOwners(lastrun, incremental, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof UserImportControllerApi\n */\n public migrateRoles(options?: AxiosRequestConfig) {\n return UserImportControllerApiFp(this.configuration).migrateRoles(options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * \n * @summary Creates Users and Pharmacies based on a JSON\n * @param {boolean} [incremental] Incremental or full import\n * @param {number} [step] which step to start import on (0 - pharmacy import, 1 - user creation, 2 - user deletion, 3 - user activation, 4 - pharmacy assignment)\n * @param {Array} [pharmacyOwnerDto] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof UserImportControllerApi\n */\n public postUsers(incremental?: boolean, step?: number, pharmacyOwnerDto?: Array, options?: AxiosRequestConfig) {\n return UserImportControllerApiFp(this.configuration).postUsers(incremental, step, pharmacyOwnerDto, options).then((request) => request(this.axios, this.basePath));\n }\n}\n\n\n","export const aepPalette = {\n common: {\n black: \"#000\",\n white: \"#fff\",\n },\n base: {\n lightest: \"#F8F8F8\",\n lighter: \"#F5F6F8\",\n light: \"#B1B0B0\",\n main: \"#7A7979\",\n },\n primary: {\n lighter: \"#DDB2B3\",\n light: \"#E3000F\",\n main: \"#BB1C0E\",\n dark: \"#95160B\",\n },\n secondary: {\n lighter: \"#FCFDFF\",\n light: \"#C5D9E8\",\n main: \"#486998\",\n dark: \"#334D6E\",\n darker: \"#334D6E\",\n },\n warning: {\n main: \"#F0AA57\",\n },\n error: {\n main: \"#D6313C\",\n },\n success: {\n main: \"#65A414\",\n },\n font: {\n light: \"#5A5858\",\n main: \"#4B5D77\",\n dark: \"#333333\",\n },\n other: {\n transparentBlue: \"rgba(197, 217, 232, 0.2)\",\n transparentBlue2: \"rgba(72, 105, 152, 0.2)\",\n },\n};\n\nexport const chartPalette = [\n \"#9FC4E3\",\n \"#C5D9E8\",\n \"#D01606\",\n \"#E6EDF2\",\n \"#F4B2AC\",\n];\n","import { CSSProperties } from \"react\";\nimport { aepPalette } from \"../../../styles/aepPalette\";\n\nexport const iconStyles: CSSProperties = {\n color: aepPalette.font.dark,\n cursor: \"pointer\",\n};\n","import { SvgIcon, SvgIconProps } from \"@mui/material\";\n\nconst IconWrapper = (props: SvgIconProps) => {\n const { children, color, fontSize, sx, viewBox } = props;\n const styles = {\n color: color ? \"\" : \"font.dark\",\n ...sx,\n };\n\n return (\n \n {children}\n \n );\n};\n\nexport default IconWrapper;\n","import { SvgIconProps } from \"@mui/material/SvgIcon/SvgIcon\";\nimport IconWrapper from \"./IconWrapper\";\n\ninterface CollapseIconProps extends SvgIconProps {\n flip?: string;\n}\n\nconst CollapseIcon = (props: CollapseIconProps) => (\n \n \n \n);\n\nexport default CollapseIcon;\n","import KeyboardArrowRightIcon from \"@mui/icons-material/KeyboardArrowRight\";\nimport KeyboardArrowDownIcon from \"@mui/icons-material/KeyboardArrowDown\";\nimport { Box, SxProps, Theme } from \"@mui/material\";\nimport { iconStyles } from \"./toggleStyles\";\nimport CollapseIcon from \"../icons/CollapseIcon\";\n\ninterface ToggleProps {\n active: boolean;\n iconType: \"arrowHorizontal\" | \"arrowVertical\";\n onClick?: () => void;\n sx?: SxProps;\n}\n\nconst Toggle = (props: ToggleProps): JSX.Element => {\n const { active, iconType, onClick, sx } = props;\n\n const activeIcon =\n iconType === \"arrowHorizontal\" ? (\n \n ) : (\n \n );\n const inactiveIcon =\n iconType === \"arrowHorizontal\" ? (\n \n ) : (\n \n );\n\n return (\n \n {active ? activeIcon : inactiveIcon}\n \n );\n};\n\nexport default Toggle;\n","import { SxProps, Theme } from \"@mui/material/styles\";\nimport { CSSProperties } from \"react\";\nimport { aepPalette } from \"../../../styles/aepPalette\";\n\nexport const rootBoxStyles: SxProps = {};\n\nexport const widthOverrides: SxProps = {\n paddingLeft: \"19px\",\n marginLeft: \"-18px\",\n};\n\nexport const linkStyles: CSSProperties = {\n margin: \"4px 12px\",\n display: \"flex\",\n alignItems: \"center\",\n borderRadius: \"5px\",\n cursor: \"pointer\",\n fontSize: \"1.4rem\",\n lineHeight: \"19px\",\n textDecoration: \"none\",\n justifyContent: \"space-between\",\n whiteSpace: \"nowrap\",\n};\n\nexport const linkBoxStyles: SxProps = {\n borderRadius: \"5px\",\n padding: \"6px 19px\",\n paddingLeft: \"19px\",\n display: \"flex\",\n alignItems: \"center\",\n color: aepPalette.font.dark,\n flexDirection: \"row\",\n width: \"100%\",\n \"&:hover, &:active\": {\n backgroundColor: aepPalette.base.lighter,\n },\n};\n\nexport const textStyles: CSSProperties = {\n alignItems: \"center\",\n display: \"flex\",\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n};\n\nexport const urlLinkStyles: CSSProperties = {\n margin: \"4px 12px\",\n display: \"flex\",\n alignItems: \"center\",\n borderRadius: \"5px\",\n cursor: \"pointer\",\n fontSize: \"1.4rem\",\n lineHeight: \"19px\",\n textDecoration: \"none\",\n justifyContent: \"space-between\",\n whiteSpace: \"nowrap\",\n backgroundColor: \"transparent\",\n};\n","import { Box, Collapse, SxProps, Theme } from \"@mui/material\";\nimport { NavLink } from \"react-router-dom\";\nimport { aepPalette } from \"../../../styles/aepPalette\";\nimport {\n rootBoxStyles,\n linkBoxStyles,\n textStyles,\n linkStyles,\n urlLinkStyles,\n} from \"./navItemStyles\";\n\ninterface NavItemProps {\n children?: JSX.Element | JSX.Element[];\n icon?: JSX.Element;\n // minimized indicates the parent container is not expanded\n minimized: boolean;\n route: string;\n sx?: SxProps;\n text: string;\n}\n\nconst NavItem = (props: NavItemProps) => {\n const { icon, minimized, route, sx, text } = props;\n\n const inside = (\n \n {icon}\n \n \n {text}\n \n \n \n );\n\n if (route.includes(\"https:\")) {\n return (\n \n \n \n {inside}\n \n \n \n );\n }\n\n return (\n \n \n {\n return {\n ...linkStyles,\n backgroundColor: isActive\n ? aepPalette.base.lighter\n : \"transparent\",\n };\n }}\n >\n {inside}\n \n \n \n );\n};\n\nexport default NavItem;\n","import { SvgIconProps } from \"@mui/material/SvgIcon/SvgIcon\";\nimport IconWrapper from \"./IconWrapper\";\n\nconst SearchIcon = (props: SvgIconProps) => (\n \n \n \n);\n\nexport default SearchIcon;\n","import { SvgIconProps } from \"@mui/material/SvgIcon/SvgIcon\";\nimport IconWrapper from \"./IconWrapper\";\nimport { Box } from \"@mui/material\";\n\nconst ZackUndDaIcon = () => (\n \n \n \n \n \n \n \n);\n\nexport default ZackUndDaIcon;\n","import { SvgIconProps } from \"@mui/material/SvgIcon/SvgIcon\";\nimport IconWrapper from \"./IconWrapper\";\n\nconst InvoiceIcon = (props: SvgIconProps) => (\n \n \n \n \n \n \n \n \n);\n\nexport default InvoiceIcon;\n","import { SvgIconProps } from \"@mui/material/SvgIcon/SvgIcon\";\nimport IconWrapper from \"./IconWrapper\";\n\nconst DeliveryIcon = (props: SvgIconProps) => (\n \n \n \n \n \n \n \n \n \n \n);\n\nexport default DeliveryIcon;\n","import { SvgIconProps } from \"@mui/material/SvgIcon/SvgIcon\";\nimport IconWrapper from \"./IconWrapper\";\n\nconst SpecialOrdersIcon = (props: SvgIconProps) => (\n \n \n \n \n);\n\nexport default SpecialOrdersIcon;\n","import { SvgIconProps } from \"@mui/material/SvgIcon/SvgIcon\";\nimport IconWrapper from \"./IconWrapper\";\n\nconst ArticleIcon = (props: SvgIconProps) => (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n);\n\nexport default ArticleIcon;\n","import { SvgIconProps } from \"@mui/material/SvgIcon/SvgIcon\";\nimport IconWrapper from \"./IconWrapper\";\n\nconst DiscoverIcon = (props: SvgIconProps) => (\n \n \n \n \n \n \n);\n\nexport default DiscoverIcon;\n","import { SvgIconProps } from \"@mui/material/SvgIcon/SvgIcon\";\nimport IconWrapper from \"./IconWrapper\";\n\nconst NewsIcon = (props: SvgIconProps) => (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n);\n\nexport default NewsIcon;\n","import { SvgIconProps } from \"@mui/material/SvgIcon/SvgIcon\";\nimport IconWrapper from \"./IconWrapper\";\n\nconst CollaborationIcon = (props: SvgIconProps) => (\n \n \n \n);\n\nexport default CollaborationIcon;\n","import { aepPalette } from \"./aepPalette\";\n\nexport const aepTypography = {\n fontFamily: \"Museo Sans\",\n fontSize: 14,\n h1: {\n color: aepPalette.font?.main,\n fontSize: \"2.6rem\",\n fontWeight: 500,\n letterSpacing: 0,\n lineHeight: \"3.1rem\",\n },\n h2: {\n color: aepPalette.font?.main,\n fontSize: \"2rem\",\n fontWeight: 500,\n letterSpacing: 0,\n lineHeight: \"3rem\",\n },\n h3: {\n color: aepPalette.font?.main,\n fontSize: \"1.6rem\",\n fontWeight: 300,\n letterSpacing: 0,\n lineHeight: \"2.8rem\",\n },\n h4: {\n color: aepPalette.font?.main,\n fontSize: \"1.4rem\",\n fontWeight: 300,\n letterSpacing: 0,\n lineHeight: \"2.3rem\",\n },\n body1: {\n color: aepPalette.font?.main,\n fontSize: \"1.4rem\",\n fontWeight: 500,\n letterSpacing: 0,\n lineHeight: \"2rem\",\n },\n body2: {\n color: aepPalette.font?.main,\n fontSize: \"1.3rem\",\n fontWeight: 300,\n letterSpacing: 0,\n lineHeight: \"2rem\",\n },\n bodyBold: {\n color: aepPalette.font?.main,\n fontSize: \"1.3rem\",\n fontWeight: 500,\n letterSpacing: 0,\n lineHeight: \"2rem\",\n },\n button: {\n fontSize: \"1.3rem\",\n fontWeight: 500,\n letterSpacing: 0,\n lineHeight: \"1.5rem\",\n },\n subline: {\n fontSize: \"1.6rem\",\n fontWeight: 300,\n letterSpacing: 0,\n lineHeight: \"2.2rem\",\n },\n caption: {\n fontSize: \"1.1rem\",\n fontWeight: 500,\n letterSpacing: 0,\n lineHeight: \"1.5rem\",\n },\n small: {\n fontSize: \"1rem\",\n fontWeight: 300,\n letterSpacing: 0,\n lineHeight: \"1.2rem\",\n },\n};\n","export default __webpack_public_path__ + \"static/media/museoSans_W01_300.57afe4fd.woff\";","export default __webpack_public_path__ + \"static/media/museoSans_W01_300_Italic.7e2358ca.woff\";","export default __webpack_public_path__ + \"static/media/museoSans_W01_500.05879370.woff\";","export default __webpack_public_path__ + \"static/media/museoSans_W01_500_Italic.09ed9e2d.woff\";","export default __webpack_public_path__ + \"static/media/museoSans_W01_900.56cf53e7.woff\";","export default __webpack_public_path__ + \"static/media/museoSans_W01_900_Italic.f9a81113.woff\";","/* eslint-disable @typescript-eslint/ban-ts-comment */\nimport CssBaseline from \"@mui/material/CssBaseline\";\nimport { createTheme, ThemeProvider } from \"@mui/material\";\nimport { deDE } from \"@mui/material/locale\";\nimport { aepPalette } from \"./aepPalette\";\nimport { aepTypography } from \"./aepTypography\";\nimport ExpandMoreIcon from \"@mui/icons-material/ExpandMore\";\n\nimport museoSans_W01_300 from \"../assets/fonts/museoSans_W01_300.woff\";\nimport museoSans_W01_300_Italic from \"../assets/fonts/museoSans_W01_300_Italic.woff\";\nimport museoSans_W01_500 from \"../assets/fonts/museoSans_W01_500.woff\";\nimport museoSans_W01_500_Italic from \"../assets/fonts/museoSans_W01_500_Italic.woff\";\nimport museoSans_W01_900 from \"../assets/fonts/museoSans_W01_900.woff\";\nimport museoSans_W01_900_Italic from \"../assets/fonts/museoSans_W01_900_Italic.woff\";\n\nexport const maxWidth = \"1920px\";\n\nexport const theme = createTheme(\n {\n palette: aepPalette,\n typography: aepTypography,\n spacing: (factor: number) => `${0.8 * factor}rem`,\n breakpoints: {\n values: {\n xs: 0,\n sm: 600,\n md: 900,\n lg: 1100,\n xl: 1300,\n },\n },\n components: {\n MuiCssBaseline: {\n styleOverrides: `\n html {\n font-size: 62.5%;\n }\n body {\n font-size: 1.4rem;\n max-width: ${maxWidth};\n margin: auto;\n }\n a {\n text-decoration: none;\n }\n @font-face {\n font-family: 'Museo Sans';\n font-style: normal;\n font-weight: 300;\n src: url(${museoSans_W01_300}) format('woff');\n }\n @font-face {\n font-family: 'Museo Sans';\n font-style: italic;\n font-weight: 300;\n src: url(${museoSans_W01_300_Italic}) format('woff');\n }\n @font-face {\n font-family: 'Museo Sans';\n font-style: normal;\n font-weight: 500;\n src: url(${museoSans_W01_500}) format('woff');\n }\n @font-face {\n font-family: 'Museo Sans';\n font-style: italic;\n font-weight: 500;\n src: url(${museoSans_W01_500_Italic}) format('woff');\n }\n @font-face {\n font-family: 'Museo Sans';\n font-style: normal;\n font-weight: 900;\n src: url(${museoSans_W01_900}) format('woff');\n }\n @font-face {\n font-family: 'Museo Sans';\n font-style: italic;\n font-weight: 900;\n src: url(${museoSans_W01_900_Italic}) format('woff');\n }\n `,\n },\n MuiAccordion: {\n defaultProps: {\n disableGutters: true,\n },\n styleOverrides: {\n root: {\n boxShadow: \"none\",\n \"&::before\": {\n backgroundColor: \"rgba(0, 0, 0, 0)\",\n },\n },\n },\n },\n MuiAccordionSummary: {\n defaultProps: {\n expandIcon: ,\n },\n styleOverrides: {\n root: {\n borderTop: `1px solid ${aepPalette.secondary.light}`,\n cursor: \"pointer\",\n flexDirection: \"row-reverse\",\n width: \"100%\",\n \"&.Mui-expanded\": {\n backgroundColor: aepPalette.secondary.light,\n },\n \"&:hover, &:active\": {\n backgroundColor: aepPalette.secondary.light,\n },\n },\n content: {\n alignItems: \"center\",\n justifyContent: \"space-between\",\n margin: 0,\n },\n expandIconWrapper: {\n transform: \"rotate(-90deg)\",\n \"&.Mui-expanded\": {\n transform: \"rotate(0deg)\",\n },\n },\n },\n },\n MuiAlert: {\n defaultProps: {\n variant: \"filled\",\n },\n styleOverrides: {\n message: {\n display: \"flex\",\n alignItems: \"center\",\n \"& > div > p\": {\n color: `${aepPalette.common.white}`,\n },\n },\n },\n },\n MuiAppBar: {\n styleOverrides: {\n root: {\n boxShadow: \"none\",\n flexDirection: \"row\",\n margin: \"0 auto\",\n maxWidth: maxWidth,\n },\n },\n },\n MuiButtonBase: {\n defaultProps: {\n disableRipple: true,\n },\n },\n MuiButton: {\n defaultProps: {\n variant: \"primary\",\n },\n styleOverrides: {\n root: {\n backgroundColor: aepPalette.primary.main,\n border: `1px solid ${aepPalette.primary.main}`,\n borderRadius: \"200px\",\n boxShadow: \"none\",\n color: aepPalette.common.white,\n fontSize: \"1.3rem\",\n lineHeight: \"1.8\",\n padding: \"0.8rem 3.6rem\",\n textTransform: \"none\",\n height: \"3rem\",\n \"&:active\": {\n boxShadow: \"0rem 0.4rem 0.6rem rgba(0, 0, 0, 0.1)\",\n },\n \"&:hover\": {\n backgroundColor: `${aepPalette.primary.lighter}`,\n },\n \"&:disabled\": {\n backgroundColor: \"#B1B0B0\",\n color: aepPalette.common.white,\n borderColor: \"#B1B0B0\",\n },\n },\n },\n variants: [\n {\n props: { variant: \"primary\" },\n style: {\n backgroundColor: aepPalette.primary.main,\n color: aepPalette.common.white,\n \"&:hover, &.Mui-focusVisible\": {\n backgroundColor: aepPalette.primary.dark,\n },\n \"&:active\": {\n backgroundColor: aepPalette.primary.dark,\n boxShadow: \"inset 0px 0 px 5px black\",\n },\n \"&.Mui-disabled\": {\n border: `1px solid ${aepPalette.base.light}`,\n },\n },\n },\n {\n props: { variant: \"secondary\" },\n style: {\n backgroundColor: \"white\",\n border: `1px solid ${aepPalette.primary.light}`,\n color: aepPalette.font.dark,\n \"&:hover, &.Mui-focusVisible\": {\n backgroundColor: aepPalette.base.lighter,\n border: `1px solid ${aepPalette.base.lighter}`,\n },\n \"&:active\": {\n border: `1px solid ${aepPalette.primary.light}`,\n },\n \"&.Mui-disabled\": {\n border: `1px solid ${aepPalette.primary.lighter}`,\n },\n },\n },\n ],\n },\n MuiCard: {\n styleOverrides: {\n root: {\n border: `1px solid ${aepPalette.secondary.light}`,\n boxShadow: \"none\",\n position: \"relative\",\n },\n },\n },\n MuiCheckbox: {\n defaultProps: {\n color: \"secondary\",\n },\n styleOverrides: {\n root: {\n padding: 0,\n svg: {\n height: \"1.8rem\",\n width: \"1.8rem\",\n },\n },\n },\n },\n MuiChip: {\n styleOverrides: {\n root: {\n backgroundColor: aepPalette.secondary.light,\n color: aepPalette.secondary.main,\n cursor: \"pointer\",\n fontSize: \"1.3rem\",\n fontWeight: 400,\n px: 1.5,\n transition: \"background-color 0.2s\",\n \"&:active\": {\n backgroundColor: aepPalette.secondary.light,\n boxShadow: \"none\",\n },\n \"&:hover\": {\n backgroundColor: aepPalette.secondary.dark,\n boxShadow: \"none\",\n color: aepPalette.common.white,\n },\n },\n icon: {\n color: aepPalette.common.white,\n transform: \"translateY(0.2rem)\",\n },\n deleteIcon: {\n fontSize: \"16px\",\n color: aepPalette.base.light,\n \"&:hover\": {\n color: aepPalette.common.white,\n },\n },\n },\n variants: [\n {\n props: { variant: \"checked\" },\n style: {\n backgroundColor: aepPalette.secondary.dark,\n color: aepPalette.common.white,\n },\n },\n {\n props: { variant: \"term\" },\n style: {\n backgroundColor: aepPalette.secondary.main,\n color: aepPalette.common.white,\n \"&:hover\": {\n backgroundColor: aepPalette.secondary.main,\n color: aepPalette.common.white,\n },\n },\n },\n ],\n },\n MuiFormControl: {\n styleOverrides: {\n root: {\n marginBottom: \"0px !important\",\n },\n },\n },\n MuiInput: {\n defaultProps: {\n color: \"secondary\",\n },\n styleOverrides: {\n root: {\n color: aepPalette.common.black,\n },\n },\n },\n MuiInputLabel: {\n styleOverrides: {\n root: {\n color: aepPalette.base.light,\n \"&.Mui-focused\": {\n color: `${aepPalette.secondary.dark} !important`,\n },\n },\n },\n },\n MuiMenuItem: {\n styleOverrides: {\n root: {\n \"&.Mui-selected\": {\n backgroundColor: `${aepPalette.other.transparentBlue2} !important`,\n },\n },\n },\n },\n MuiMobileStepper: {\n styleOverrides: {\n root: {\n backgroundColor: \"transparent\",\n color: aepPalette.font.main,\n },\n dotActive: {\n backgroundColor: aepPalette.secondary.main,\n },\n },\n },\n MuiModal: {\n styleOverrides: {\n root: {\n backgroundColor: aepPalette.other.transparentBlue,\n },\n },\n },\n MuiPickersDay: {\n styleOverrides: {\n root: {\n fontSize: \"1.2rem\",\n margin: \"2px !important\",\n },\n },\n },\n MuiPopover: {\n styleOverrides: {\n paper: {\n marginTop: \"8px\",\n },\n },\n },\n MuiSelect: {\n defaultProps: {\n inputProps: {\n style: {\n transform: \"translateX(50px)\",\n },\n },\n },\n styleOverrides: {\n standard: {\n backgroundColor: \"transparent\",\n },\n },\n },\n MuiSnackbar: {\n styleOverrides: {\n root: {\n alignItems: \"center\",\n color: aepPalette.common.white,\n display: \"flex\",\n flexDirection: \"column\",\n whiteSpace: \"pre-wrap\",\n width: \"100vw\",\n },\n },\n defaultProps: {\n autoHideDuration: 3000,\n },\n },\n MuiTab: {\n styleOverrides: {\n root: {\n maxWidth: \"100%\",\n },\n },\n },\n MuiTable: {\n styleOverrides: {\n root: {\n borderCollapse: \"separate\",\n },\n },\n },\n MuiTableRow: {\n defaultProps: {\n hover: true,\n },\n styleOverrides: {\n root: {\n position: \"relative\",\n \"&:hover\": {\n // important to overcome tr hover complications\n backgroundColor: `${aepPalette.secondary.light} !important`,\n },\n },\n hover: {},\n },\n },\n MuiTableCell: {\n defaultProps: {\n padding: \"none\",\n },\n styleOverrides: {\n root: {\n borderBottom: `1px solid ${aepPalette.secondary.light}`,\n color: \"inherit\",\n fontSize: \"1.3rem\",\n fontWeight: \"300\",\n position: \"relative\",\n },\n head: {\n paddingTop: \"16px\",\n paddingBottom: \"16px\",\n },\n },\n },\n MuiTableHead: {\n styleOverrides: {\n root: {\n \"tr > th\": {\n borderBottom: `1px solid ${aepPalette.secondary.light}`,\n fontWeight: \"600\",\n color: aepPalette.font.light,\n },\n },\n },\n },\n MuiTextField: {\n defaultProps: {\n color: \"secondary\",\n variant: \"standard\",\n },\n styleOverrides: {\n root: {\n // ensure consistent display w helper text\n minHeight: \"6.4rem\",\n color: aepPalette.font.dark,\n \"& label\": {\n fontSize: \"1.3rem\",\n color: aepPalette.base.light,\n },\n input: {\n color: aepPalette.font.dark,\n },\n },\n },\n },\n MuiTooltip: {\n styleOverrides: {\n arrow: {\n color: aepPalette.secondary.main,\n },\n tooltip: {\n backgroundColor: aepPalette.secondary.main,\n color: aepPalette.common.white,\n fontSize: \"1.3rem\",\n lineHeight: \"2rem\",\n padding: \"1rem 2.5rem\",\n whiteSpace: \"pre-wrap\",\n },\n },\n },\n MuiTypography: {\n styleOverrides: {\n root: {\n color: aepPalette.font.main,\n margin: \"0px\",\n },\n // ignore, TS seems to not be aware of buttonText class\n // @ts-ignore\n buttonText: {\n color: aepPalette.common.white,\n },\n caption: {\n fontSize: \"1rem\",\n },\n },\n },\n MuiYearPicker: {\n styleOverrides: {\n root: {\n \"& > div > button\": {\n fontSize: \"1.2rem\",\n },\n },\n },\n },\n },\n },\n deDE\n);\n\ninterface AepThemeProps {\n children: JSX.Element;\n}\n\nconst AepTheme = (props: AepThemeProps): JSX.Element => {\n const { children } = props;\n return (\n \n \n {children}\n \n );\n};\n\nexport default AepTheme;\n","import { SxProps, Theme } from \"@mui/material/styles\";\nimport { aepPalette } from \"../../../styles/aepPalette\";\nimport { theme } from \"../../../styles/AepThemeProvider\";\n\nexport const rootBoxStyles: SxProps = {\n display: \"flex\",\n flexDirection: \"column\",\n height: \"calc(100vh - 140px)\",\n position: \"relative\",\n};\n\nexport const labelStyles: SxProps = {\n color: aepPalette.font.light,\n fontSize: \"1.2rem\",\n fontWeight: \"300\",\n lineHeight: \"1.9rem\",\n margin: \"9px 12px 4px 12px\",\n padding: \"7px 8%\",\n textTransform: \"uppercase\",\n maxHeight: \"33px\",\n};\n\nexport const toggleStyles: SxProps = {\n borderRadius: \"5px\",\n cursor: \"pointer\",\n fontSize: \"1.4rem\",\n lineHeight: \"19px\",\n margin: \"4px 12px 4px -12px\",\n padding: \"8px 19px\",\n \"&:hover, &:active\": {\n backgroundColor: aepPalette.base.lighter,\n },\n};\n\nexport const greyPanelStyles: SxProps = {\n backgroundColor: aepPalette.base.light,\n position: \"fixed\",\n height: \"100%\",\n width: \"100vw\",\n top: 0,\n left: 0,\n zIndex: 2,\n};\n\nexport const logoStyles: SxProps = {\n position: \"fixed\",\n [theme.breakpoints.down(\"lg\")]: {\n minWidth: \"100px\",\n top: 20,\n left: 20,\n },\n [theme.breakpoints.up(\"lg\")]: {\n minWidth: \"133px\",\n top: 40,\n left: 40,\n },\n zIndex: 5,\n};\n\nexport const employeeStyles: SxProps = {\n position: \"absolute\",\n bottom: 34,\n width: \"100%\",\n};\n","import { SvgIconProps } from \"@mui/material/SvgIcon/SvgIcon\";\nimport IconWrapper from \"./IconWrapper\";\n\nconst HomeIcon = (props: SvgIconProps) => (\n \n \n \n);\n\nexport default HomeIcon;\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * AEP Portal Backend\n * AEP Portal Backend\n *\n * The version of the OpenAPI document: v0.0.1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport { Configuration } from \"./configuration\";\n// Some imports not used depending on template conditions\n// @ts-ignore\nimport globalAxios, { AxiosPromise, AxiosInstance, AxiosRequestConfig } from 'axios';\n\nexport const BASE_PATH = \"http://localhost:8080\".replace(/\\/+$/, \"\");\n\n/**\n *\n * @export\n */\nexport const COLLECTION_FORMATS = {\n csv: \",\",\n ssv: \" \",\n tsv: \"\\t\",\n pipes: \"|\",\n};\n\n/**\n *\n * @export\n * @interface RequestArgs\n */\nexport interface RequestArgs {\n url: string;\n options: AxiosRequestConfig;\n}\n\n/**\n *\n * @export\n * @class BaseAPI\n */\nexport class BaseAPI {\n protected configuration: Configuration | undefined;\n\n constructor(configuration?: Configuration, protected basePath: string = BASE_PATH, protected axios: AxiosInstance = globalAxios) {\n if (configuration) {\n this.configuration = configuration;\n this.basePath = configuration.basePath || this.basePath;\n }\n }\n};\n\n/**\n *\n * @export\n * @class RequiredError\n * @extends {Error}\n */\nexport class RequiredError extends Error {\n name: \"RequiredError\" = \"RequiredError\";\n constructor(public field: string, msg?: string) {\n super(msg);\n }\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * AEP Portal Backend\n * AEP Portal Backend\n *\n * The version of the OpenAPI document: v0.0.1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport { Configuration } from \"./configuration\";\nimport { RequiredError, RequestArgs } from \"./base\";\nimport { AxiosInstance, AxiosResponse } from 'axios';\n\n/**\n *\n * @export\n */\nexport const DUMMY_BASE_URL = 'https://example.com'\n\n/**\n *\n * @throws {RequiredError}\n * @export\n */\nexport const assertParamExists = function (functionName: string, paramName: string, paramValue: unknown) {\n if (paramValue === null || paramValue === undefined) {\n throw new RequiredError(paramName, `Required parameter ${paramName} was null or undefined when calling ${functionName}.`);\n }\n}\n\n/**\n *\n * @export\n */\nexport const setApiKeyToObject = async function (object: any, keyParamName: string, configuration?: Configuration) {\n if (configuration && configuration.apiKey) {\n const localVarApiKeyValue = typeof configuration.apiKey === 'function'\n ? await configuration.apiKey(keyParamName)\n : await configuration.apiKey;\n object[keyParamName] = localVarApiKeyValue;\n }\n}\n\n/**\n *\n * @export\n */\nexport const setBasicAuthToObject = function (object: any, configuration?: Configuration) {\n if (configuration && (configuration.username || configuration.password)) {\n object[\"auth\"] = { username: configuration.username, password: configuration.password };\n }\n}\n\n/**\n *\n * @export\n */\nexport const setBearerAuthToObject = async function (object: any, configuration?: Configuration) {\n if (configuration && configuration.accessToken) {\n const accessToken = typeof configuration.accessToken === 'function'\n ? await configuration.accessToken()\n : await configuration.accessToken;\n object[\"Authorization\"] = \"Bearer \" + accessToken;\n }\n}\n\n/**\n *\n * @export\n */\nexport const setOAuthToObject = async function (object: any, name: string, scopes: string[], configuration?: Configuration) {\n if (configuration && configuration.accessToken) {\n const localVarAccessTokenValue = typeof configuration.accessToken === 'function'\n ? await configuration.accessToken(name, scopes)\n : await configuration.accessToken;\n object[\"Authorization\"] = \"Bearer \" + localVarAccessTokenValue;\n }\n}\n\n/**\n *\n * @export\n */\nexport const setSearchParams = function (url: URL, ...objects: any[]) {\n const searchParams = new URLSearchParams(url.search);\n for (const object of objects) {\n for (const key in object) {\n if (Array.isArray(object[key])) {\n searchParams.delete(key);\n for (const item of object[key]) {\n searchParams.append(key, item);\n }\n } else {\n searchParams.set(key, object[key]);\n }\n }\n }\n url.search = searchParams.toString();\n}\n\n/**\n *\n * @export\n */\nexport const serializeDataIfNeeded = function (value: any, requestOptions: any, configuration?: Configuration) {\n const nonString = typeof value !== 'string';\n const needsSerialization = nonString && configuration && configuration.isJsonMime\n ? configuration.isJsonMime(requestOptions.headers['Content-Type'])\n : nonString;\n return needsSerialization\n ? JSON.stringify(value !== undefined ? value : {})\n : (value || \"\");\n}\n\n/**\n *\n * @export\n */\nexport const toPathString = function (url: URL) {\n return url.pathname + url.search + url.hash\n}\n\n/**\n *\n * @export\n */\nexport const createRequestFunction = function (axiosArgs: RequestArgs, globalAxios: AxiosInstance, BASE_PATH: string, configuration?: Configuration) {\n return >(axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {\n const axiosRequestArgs = {...axiosArgs.options, url: (configuration?.basePath || basePath) + axiosArgs.url};\n return axios.request(axiosRequestArgs);\n };\n}\n","import DashboardCard from \"../../pages/dashboard/cards/DashboardCard\";\nimport GraphsIcon from \"../icons/GraphsIcon\";\nimport { CardProps } from \"@mui/material\";\nimport { useContext, useRef, useState } from \"react\";\nimport PopulatedBarChart from \"../chart/charts/PopulatedBarChart\";\nimport PopulatedSwarmPlot from \"../chart/charts/PopulatedSwarmPlot\";\nimport Carousel from \"../carousel/Carousel\";\nimport UserContext from \"../../contexts/UserContext\";\nimport { UserDtoPermissionsEnum } from \"../../../api\";\n\nexport enum AnalysisData {\n PACKMON = \"PACKMON\",\n UMSMON = \"UMSMON\",\n BESTZEIT = \"BESTZEIT\",\n}\ninterface AnalysesCardProps extends CardProps {\n // optional prop to limit data displayed\n dataSet?: AnalysisData[];\n}\n\nconst AnalysesCard = (props: AnalysesCardProps): JSX.Element => {\n const { dataSet } = props;\n const cardRef = useRef(null);\n const { checkUserRole } = useContext(UserContext);\n\n const [loadingPACKMON, setLoadingPACKMON] = useState(false);\n const [loadingUMSMON, setLoadingUMSMON] = useState(false);\n const [loadingBESTZEIT, setLoadingBESTZEIT] = useState(false);\n\n let loadingCondition = loadingPACKMON && loadingUMSMON && loadingBESTZEIT;\n\n if (dataSet?.length === 1) {\n switch (dataSet[0]) {\n case AnalysisData.PACKMON:\n loadingCondition = loadingPACKMON;\n break;\n case AnalysisData.UMSMON:\n loadingCondition = loadingUMSMON;\n break;\n case AnalysisData.BESTZEIT:\n loadingCondition = loadingBESTZEIT;\n break;\n default:\n break;\n }\n }\n\n return checkUserRole([UserDtoPermissionsEnum.Analysen]) ? (\n }\n sx={{ maxHeight: \"75vh\" }}\n {...props}\n >\n \n {!dataSet || dataSet.includes(AnalysisData.PACKMON) ? (\n \n ) : (\n <>\n )}\n {!dataSet || dataSet.includes(AnalysisData.UMSMON) ? (\n \n ) : (\n <>\n )}\n {!dataSet || dataSet.includes(AnalysisData.BESTZEIT) ? (\n \n ) : (\n <>\n )}\n \n \n ) : (\n <>\n );\n};\n\nexport default AnalysesCard;\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * AEP Portal Backend\n * AEP Portal Backend\n *\n * The version of the OpenAPI document: v0.0.1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ConfigurationParameters {\n apiKey?: string | Promise | ((name: string) => string) | ((name: string) => Promise);\n username?: string;\n password?: string;\n accessToken?: string | Promise | ((name?: string, scopes?: string[]) => string) | ((name?: string, scopes?: string[]) => Promise);\n basePath?: string;\n baseOptions?: any;\n formDataCtor?: new () => any;\n}\n\nexport class Configuration {\n /**\n * parameter for apiKey security\n * @param name security name\n * @memberof Configuration\n */\n apiKey?: string | Promise | ((name: string) => string) | ((name: string) => Promise);\n /**\n * parameter for basic security\n *\n * @type {string}\n * @memberof Configuration\n */\n username?: string;\n /**\n * parameter for basic security\n *\n * @type {string}\n * @memberof Configuration\n */\n password?: string;\n /**\n * parameter for oauth2 security\n * @param name security name\n * @param scopes oauth2 scope\n * @memberof Configuration\n */\n accessToken?: string | Promise | ((name?: string, scopes?: string[]) => string) | ((name?: string, scopes?: string[]) => Promise);\n /**\n * override base path\n *\n * @type {string}\n * @memberof Configuration\n */\n basePath?: string;\n /**\n * base options for axios calls\n *\n * @type {any}\n * @memberof Configuration\n */\n baseOptions?: any;\n /**\n * The FormData constructor that will be used to create multipart form data\n * requests. You can inject this here so that execution environments that\n * do not support the FormData class can still run the generated client.\n *\n * @type {new () => FormData}\n */\n formDataCtor?: new () => any;\n\n constructor(param: ConfigurationParameters = {}) {\n this.apiKey = param.apiKey;\n this.username = param.username;\n this.password = param.password;\n this.accessToken = param.accessToken;\n this.basePath = param.basePath;\n this.baseOptions = param.baseOptions;\n this.formDataCtor = param.formDataCtor;\n }\n\n /**\n * Check if the given MIME is a JSON MIME.\n * JSON MIME examples:\n * application/json\n * application/json; charset=UTF8\n * APPLICATION/JSON\n * application/vnd.company+json\n * @param mime - MIME (Multipurpose Internet Mail Extensions)\n * @return True if the given MIME is JSON, false otherwise.\n */\n public isJsonMime(mime: string): boolean {\n const jsonMime: RegExp = new RegExp('^(application\\/json|[^;/ \\t]+\\/[^;/ \\t]+[+]json)[ \\t]*(;.*)?$', 'i');\n return mime !== null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json');\n }\n}\n","import React, { useState } from \"react\";\nimport { UserDtoPermissionsEnum } from \"../../api\";\n\nexport interface UserContextType {\n checkUserRole: (user: UserDtoPermissionsEnum[]) => boolean;\n userRoles: UserDtoPermissionsEnum[];\n updateUserRoles: (roles: UserDtoPermissionsEnum[]) => void;\n userFullName: string;\n updateUserFullName: (userid: string) => void;\n userName: string;\n updateUserName: (userid: string) => void;\n}\n\nexport const UserContext = React.createContext({\n checkUserRole: () => false,\n userRoles: [],\n updateUserRoles: () => null,\n userFullName: \"\",\n updateUserFullName: () => null,\n userName: \"\",\n updateUserName: () => null,\n});\n\nexport const UserContextProvider: React.FunctionComponent<{\n children?: JSX.Element;\n}> = (props) => {\n const { children } = props;\n const [userRoles, setUserRoles] = useState([]);\n const [userFullName, setuserFullName] = useState(\"\");\n const [userName, setUserName] = useState(\"\");\n\n const checkUserRole = (roles: UserDtoPermissionsEnum[]): boolean =>\n userRoles.includes(UserDtoPermissionsEnum.Admin) ||\n roles.some((current) => userRoles.includes(current));\n\n const updateUserRoles = (roles: UserDtoPermissionsEnum[]): void => {\n setUserRoles(roles);\n };\n\n const updateUserFullName = (userFullName: string): void => {\n setuserFullName(userFullName);\n };\n\n const updateUserName = (userName: string): void => {\n setUserName(userName);\n };\n\n return (\n \n {children}\n \n );\n};\n\nexport default UserContext;\n","import { Box, CircularProgress, SxProps, Theme } from \"@mui/material\";\nimport { SvgIconProps } from \"@mui/material/SvgIcon/SvgIcon\";\nimport IconWrapper from \"./IconWrapper\";\n\ninterface DownloadIconProps extends SvgIconProps {\n bg?: boolean;\n downloading?: boolean;\n}\n\nconst DownloadIcon = (props: DownloadIconProps) => {\n const { bg, downloading } = props;\n\n const dlIconSx: SxProps = {\n alignItems: \"center\",\n justifyContent: \"center\",\n backgroundColor: bg ? \"rgba(197, 217, 232, 0.5)\" : \"\",\n border: bg ? \"1px solid #C5D9E8\" : \"\",\n borderRadius: \"5px\",\n boxSizing: \"border-box\",\n color: \"base\",\n cursor: \"pointer\",\n display: \"flex\",\n width: \"3rem\",\n height: \"3rem\",\n };\n\n if (!bg) {\n delete dlIconSx.height;\n delete dlIconSx.width;\n }\n\n return (\n \n {downloading ? (\n \n ) : (\n \n \n \n \n )}\n \n );\n};\n\nexport default DownloadIcon;\n","import React, { useState } from \"react\";\n\nexport interface CustomerContextType {\n customerNumber: string;\n updateCustomerNumber: (customerNumber: string) => void;\n unreadMessageCount: number;\n updateUnreadMessageCount: (count: number) => void;\n}\n\nexport const CustomerContext = React.createContext({\n customerNumber: \"\",\n updateCustomerNumber: () => null,\n unreadMessageCount: 0,\n updateUnreadMessageCount: (count: number) => null,\n});\n\nexport const CustomerContextProvider: React.FunctionComponent<{\n children?: JSX.Element;\n}> = (props) => {\n const { children } = props;\n const [customerNumber, setCustomerNumber] = useState(\"\");\n const [unreadMessageCount, setUnreadMessageCount] = useState(0);\n\n const updateCustomerNumber = (customerNumber: string) => {\n setCustomerNumber(customerNumber);\n };\n\n const updateUnreadMessageCount = (count: number) => {\n setUnreadMessageCount(count);\n };\n\n return (\n \n {children}\n \n );\n};\n\nexport default CustomerContext;\n","import React from \"react\";\nimport {\n Alert,\n Snackbar as MuiSnackbar,\n SnackbarProps as MuiSnackbarProps,\n AlertProps,\n Stack,\n Typography,\n} from \"@mui/material\";\nimport { multilineSeparator } from \"../../contexts/SnackbarContext\";\n\ninterface SnackbarProps extends MuiSnackbarProps {\n alertprops?: AlertProps;\n}\n\nconst Snackbar = (props: SnackbarProps) => {\n const { alertprops, message, ...snackbarProps } = props;\n\n const formatText = () => {\n return (message as string)\n .split(multilineSeparator)\n .map((messageFragment, i) => (\n 0 ? 1 : 0 }} key={`error-message-${i}`}>\n {messageFragment}\n \n ));\n };\n\n return (\n \n \n \n {formatText()}\n \n \n \n );\n};\n\nexport default Snackbar;\n","import { AlertColor } from \"@mui/material\";\nimport React, { useState } from \"react\";\nimport { CancelDto, CancelErrorDto } from \"../../api\";\nimport Snackbar from \"../components/snackbar/Snackbar\";\n\nexport interface SnackbarContextType {\n showSnackbar: (newSeverity: AlertColor, newMessage: string) => void;\n handleHttpError: (e: Error) => void;\n handleError: (errorMessage: string) => void;\n handleCancelOrderPositions: (\n positions: CancelDto[],\n failedPositionErrors: CancelErrorDto[],\n onCancelSuccess: () => void\n ) => void;\n}\n\nexport const SnackbarContext = React.createContext({\n showSnackbar: () => null,\n handleHttpError: () => null,\n handleError: () => null,\n handleCancelOrderPositions: () => null,\n});\n// ADJUST separator character here for splitting up mulitline message text\nexport const multilineSeparator = \"&\";\n\nexport const SnackbarContextProvider: React.FunctionComponent<{\n children?: JSX.Element;\n}> = (props) => {\n const { children } = props;\n const [open, setOpen] = useState(false);\n const [severity, setSeverity] = useState(\"info\");\n const [message, setMessage] = useState(\"\");\n const [autoHideDuration, setAutoHideDuration] = useState(3000);\n\n const showSnackbar = (\n newSeverity: AlertColor,\n newMessage: string,\n autoHideDuration?: number\n ) => {\n setSeverity(newSeverity);\n setMessage(newMessage);\n if (autoHideDuration) {\n setAutoHideDuration(autoHideDuration);\n }\n setOpen(true);\n };\n\n const handleError = (errorMessage: string) => {\n showSnackbar(\"error\", errorMessage);\n };\n\n const handleHttpError = (e: Error) => {\n console.error(e);\n console.log(\"Error\")\n console.log(e)\n showSnackbar(\n \"error\",\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n e.response?.data?.message || \"Es ist ein Systemfehler aufgetreten\" +\n \". \\n Bitte kontaktieren Sie das Service Center.\" || \"HTTP-Fehler\"\n );\n };\n\n const handleCancelOrderPositions = (\n positions: CancelDto[],\n failedPositionErrors: CancelErrorDto[],\n onCancelSuccess: () => void\n ) => {\n let severity: AlertColor = \"error\";\n\n const failedPositions = failedPositionErrors.map(\n (errorObj) => errorObj.orderObject\n );\n const succesfulPositions = positions.filter(\n (position) =>\n !failedPositions\n .map((failedPosition) => failedPosition?.orderPosition)\n .includes(position.orderPosition)\n );\n\n if (failedPositions.length > 0 && succesfulPositions.length > 0) {\n severity = \"warning\";\n } else if (failedPositionErrors.length < 1) {\n severity = \"success\";\n }\n\n // if at least some of the positions are cancelled\n if (severity !== \"error\") {\n onCancelSuccess();\n }\n\n let errArr: string[] = [];\n let successArr: string[] = [];\n\n if (failedPositionErrors.length > 0) {\n errArr = failedPositionErrors.map(\n (position) =>\n `Position ${position.orderObject?.orderPosition}: ${position.errorMessage}`\n );\n }\n\n if (succesfulPositions.length > 0) {\n successArr = positions.map((position) => {\n return `Bestellung ${position.orderPosition}: Wurde erfolgreich storniert.`;\n });\n }\n const message = errArr.concat(successArr).join(\"\\n\");\n\n showSnackbar(severity, message);\n };\n\n return (\n \n {children}\n setOpen(false)}\n open={open}\n message={message}\n alertprops={{ severity: severity }}\n />\n \n );\n};\n\nexport default SnackbarContext;\n","import {\n CancellationsControllerApi,\n CounterControllerApi,\n DeliveriesControllerApi,\n DispensationsControllerApi,\n DocumentsControllerApi,\n OrdersControllerApi,\n UserControllerApi,\n InvoicesControllerApi,\n MessageControllerApi,\n SpecialOrdersControllerApi,\n ArticleAdmissionControllerApi,\n AnalysisControllerApi,\n ReceiptsControllerApi,\n FurtherReceiptsControllerApi,\n ReturnsControllerApi,\n} from \"../../api\";\nimport { Configuration } from \"../../api/configuration\";\nimport { useKeycloak } from \"@react-keycloak/web\";\n\nclass ApiWrapper {\n public accessToken = () => {\n const { keycloak } = useKeycloak();\n return keycloak.token || \"\";\n };\n\n private configuration = () => {\n return new Configuration({\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n basePath: window._env_.REACT_APP_API_URL,\n baseOptions: {\n headers: { authorization: `Bearer ${this.accessToken()}` },\n },\n });\n };\n\n public deliveriesControllerApi = () => {\n return new DeliveriesControllerApi(this.configuration());\n };\n\n public ordersControllerApi = () => {\n return new OrdersControllerApi(this.configuration());\n };\n\n public dispensationsControllerApi = () => {\n return new DispensationsControllerApi(this.configuration());\n };\n\n public cancellationsControllerApi = () => {\n return new CancellationsControllerApi(this.configuration());\n };\n\n public userControllerApi = () => {\n return new UserControllerApi(this.configuration());\n };\n\n public documentsControllerApi = () => {\n return new DocumentsControllerApi(this.configuration());\n };\n\n public invoicesControllerApi = () => {\n return new InvoicesControllerApi(this.configuration());\n };\n\n public messageControllerApi = () => {\n return new MessageControllerApi(this.configuration());\n };\n\n public counterControllerApi = () => {\n return new CounterControllerApi(this.configuration());\n };\n\n public specialOrdersControllerApi = () => {\n return new SpecialOrdersControllerApi(this.configuration());\n };\n\n public articleAdmissionControllerApi = () => {\n return new ArticleAdmissionControllerApi(this.configuration());\n };\n\n public analysisControllerApi = () => {\n return new AnalysisControllerApi(this.configuration());\n };\n\n public receiptsControllerApi = () => {\n return new ReceiptsControllerApi(this.configuration());\n };\n\n public furtherReceiptsControllerApi = () => {\n return new FurtherReceiptsControllerApi(this.configuration());\n };\n\n public returnsControllerApi = () => {\n return new ReturnsControllerApi(this.configuration());\n };\n}\n\nexport default ApiWrapper;\n","import {\n createContext,\n useContext,\n useEffect,\n useState,\n FunctionComponent,\n Dispatch,\n SetStateAction\n} from \"react\";\nimport { SpecialOrderRequest, SpecialOrderResponse, UserDtoPermissionsEnum } from \"../../api\";\nimport CustomerContext from \"./CustomerContext\";\nimport SnackbarContext from \"./SnackbarContext\";\nimport ApiWrapper from \"../wrappers/ApiWrapper\";\nimport UserContext from \"./UserContext\";\n\nexport interface SpecialOrdersContextType {\n specialOrderRequests: SpecialOrderRequest[];\n updateSpecialOrderRequests: (\n specialOrder: SpecialOrderRequest,\n remove?: boolean\n ) => void;\n specialOrderResponses: SpecialOrderResponse[];\n containsSpecialOrderRequest: (orderId: number) => boolean;\n loading: boolean;\n loadSpecialOrders: () => void;\n postOrders: (orderRequests: SpecialOrderRequest[]) => void;\n setSelectedOrderIds: Dispatch>;\n}\n\nexport const SpecialOrdersContext = createContext({\n specialOrderResponses: [],\n specialOrderRequests: [],\n updateSpecialOrderRequests: () => null,\n containsSpecialOrderRequest: () => false,\n loading: false,\n loadSpecialOrders: () => null,\n postOrders: () => null,\n setSelectedOrderIds: () => null\n});\n\nexport const SpecialOrdersContextProvider: FunctionComponent<{\n children?: JSX.Element;\n}> = (props) => {\n const { children } = props;\n const api = new ApiWrapper().specialOrdersControllerApi();\n\n const { handleHttpError, showSnackbar } = useContext(SnackbarContext);\n const { customerNumber } = useContext(CustomerContext);\n const { checkUserRole } = useContext(UserContext);\n\n const [loading, setLoading] = useState(false);\n const [specialOrderRequests, setSpecialOrderRequests] = useState<\n SpecialOrderRequest[]\n >([]);\n const [specialOrderResponses, setSpecialOrderResponses] = useState<\n SpecialOrderResponse[]\n >([]);\n const [selectedOrderIds, setSelectedOrderIds] = useState([]);\n const [showSpecialOrdersInNavigation, setShowSpecialOrdersInNavigation] =\n useState(false);\n\n const updateSpecialOrderRequests = (\n alteredSpecialOrderRequest: SpecialOrderRequest,\n remove?: boolean\n ) => {\n const stateSlice = specialOrderRequests.slice();\n\n const indexToAlter = stateSlice.findIndex(\n (orderRequest) => orderRequest.id === alteredSpecialOrderRequest.id\n );\n\n if (indexToAlter !== -1) {\n if (remove) {\n stateSlice.splice(indexToAlter, 1);\n } else {\n stateSlice.splice(indexToAlter, 1, alteredSpecialOrderRequest);\n }\n } else {\n stateSlice.push(alteredSpecialOrderRequest);\n }\n\n setSpecialOrderRequests(stateSlice);\n };\n\n const resetSpecialOrders = () => {\n setSpecialOrderRequests([]);\n setSpecialOrderResponses([]);\n };\n\n const containsSpecialOrderRequest = (orderRequestId: number): boolean => {\n return (\n specialOrderRequests.findIndex(\n (orderRequest) => orderRequest.id === orderRequestId\n ) !== -1\n );\n };\n\n const loadSpecialOrders = (): void => {\n if (customerNumber && !loading) {\n setLoading(true);\n resetSpecialOrders();\n\n api\n .getSpecialOrders(customerNumber)\n .then((res) => {\n setSpecialOrderResponses(res.data);\n })\n .catch(handleHttpError)\n .finally(() => setLoading(false));\n }\n };\n\n const postOrders = (orderRequests: SpecialOrderRequest[]): void => {\n if (customerNumber && !loading) {\n setLoading(true);\n\n api\n .postSpecialOrder(customerNumber, orderRequests)\n .then((res) => {\n const { failedOrders, successfulOrders } = res.data;\n\n const successArr = successfulOrders?.map(\n (order) => order.articleName\n );\n const errArr = failedOrders?.map((order) => order.articleName);\n\n const wasSuccess = successArr && successArr.length > 0;\n const wasFailure = errArr && errArr.length > 0;\n\n if (successArr && wasSuccess && errArr && wasFailure) {\n successArr.unshift(\n \"Die folgenden Sonderbestellungen wurden erfolgreich übertragen und werden nach Ablauf der Bestellfrist verarbeitet:\"\n );\n errArr.unshift(\n \"Die folgenden Sonderbestellungen wurden nicht übertragen:\"\n );\n const message = successArr.concat(errArr).join(\"\\n\");\n\n showSnackbar(\"warning\", message);\n } else if (wasSuccess) {\n showSnackbar(\n \"success\",\n \"Sonderbestellungen wurden erfolgreich übertragen und werden nach Ablauf der Bestellfrist verarbeitet.\"\n );\n } else if (wasFailure) {\n showSnackbar(\n \"error\",\n \"Übermittlung von Sonderbestellungen fehlgeschlagen.\"\n );\n }\n })\n .catch(handleHttpError)\n .finally(() => setLoading(false));\n }\n };\n\n useEffect(() => {\n setSelectedOrderIds([]);\n if (checkUserRole([UserDtoPermissionsEnum.Bestellungen])) {\n loadSpecialOrders(); // loadSpecialOrders once initially to determine if we should show \"Sonderbestellungen\" in application navigation menu\n }\n }, [customerNumber]);\n\n return (\n \n {children}\n \n );\n};\n\nexport default SpecialOrdersContext;\n","import { useContext, useEffect, useState } from \"react\";\nimport { Box, Collapse, Typography } from \"@mui/material\";\nimport Toggle from \"../toggle/Toggle\";\nimport NavItem from \"../navitem/NavItem\";\nimport SearchIcon from \"../icons/SearchIcon\";\nimport ZackUndDaIcon from \"../icons/ZackUndDaIcon\";\nimport InvoiceIcon from \"../icons/InvoiceIcon\";\nimport DeliveryIcon from \"../icons/DeliveryIcon\";\nimport SpecialOrdersIcon from \"../icons/SpecialOrdersIcon\";\nimport ArticleIcon from \"../icons/ArticleIcon\";\nimport DiscoverIcon from \"../icons/DiscoverIcon\";\nimport NewsIcon from \"../icons/NewsIcon\";\nimport CollaborationIcon from \"../icons/CollaborationIcon\";\nimport {\n rootBoxStyles,\n labelStyles,\n toggleStyles,\n employeeStyles,\n} from \"./navbarStyles\";\nimport HomeIcon from \"../icons/HomeIcon\";\nimport { theme } from \"../../../styles/AepThemeProvider\";\nimport UserContext from \"../../contexts/UserContext\";\nimport { UserDtoPermissionsEnum } from \"../../../api\";\nimport { useTablet } from \"../../hooks/useTablet\";\nimport DownloadIcon from \"../icons/DownloadIcon\";\nimport SpecialOrdersContext from \"../../contexts/SpecialOrdersContext\";\n\ninterface NavbarProps {\n timeout: number;\n}\n\nconst BelegePermissions = [\n UserDtoPermissionsEnum.Lieferscheine,\n UserDtoPermissionsEnum.Monatsberichte,\n UserDtoPermissionsEnum.Nachbelastungen,\n UserDtoPermissionsEnum.Gutschriften,\n UserDtoPermissionsEnum.Sammelrechnungen,\n];\n\nconst Navbar = (props: NavbarProps) => {\n const { timeout } = props;\n const [submenuExpanded, setSubmenuExpanded] = useState(false);\n const [sidebarExpanded, setSidebarExpanded] = useState(!useTablet());\n const [userExpansionSetting, setUserExpansionSetting] = useState(false);\n\n const { checkUserRole } = useContext(UserContext);\n const { specialOrderResponses } = useContext(SpecialOrdersContext);\n\n useEffect(() => {\n sidebarExpanded\n ? setSubmenuExpanded(userExpansionSetting)\n : setSubmenuExpanded(true);\n }, [sidebarExpanded]);\n\n return (\n \n {\n setSidebarExpanded(!sidebarExpanded);\n }}\n iconType=\"arrowHorizontal\"\n sx={{\n transition: `margin-left ${timeout / 1000}s`,\n mt: 0.5,\n ml: sidebarExpanded ? \"195px\" : \"55px\",\n [theme.breakpoints.down(\"md\")]: { mt: 2 },\n }}\n />\n }\n />\n \n Ihre Apotheke\n \n {checkUserRole([UserDtoPermissionsEnum.Bestellungen]) && (\n <>\n \n }\n sx={{ maxWidth: sidebarExpanded ? \"209px\" : \"86px\" }}\n />\n \n {\n setUserExpansionSetting(!userExpansionSetting);\n setSubmenuExpanded(!submenuExpanded);\n }}\n />\n \n \n \n }\n />\n {specialOrderResponses.length > 0 && (\n }\n />\n )}\n\n }\n />\n \n \n )}\n {checkUserRole([\n ...BelegePermissions,\n UserDtoPermissionsEnum.Statistiken,\n ]) && (\n }\n />\n )}\n {checkUserRole([UserDtoPermissionsEnum.AepImBlick]) && (\n <>\n \n AEP Im Blick\n \n }\n />\n }\n />\n }\n />\n \n )}\n \n \n AEP Marketing Services\n \n \n }\n />\n {checkUserRole([UserDtoPermissionsEnum.Admin]) && (\n }\n sx={{\n ...employeeStyles,\n maxWidth: sidebarExpanded ? \"209px\" : \"86px\",\n }}\n />\n )}\n \n );\n};\n\nexport default Navbar;\n","import { theme } from \"../../styles/AepThemeProvider\";\n\n// returns true if the client device is a tablet\nexport const useTablet = (): boolean => {\n return window.innerWidth <= theme.breakpoints.values.md;\n};\n","import { useKeycloak } from \"@react-keycloak/web\";\n\ninterface PrivateWrapperProps {\n children: JSX.Element | JSX.Element[];\n}\n\nconst PrivateWrapper = (props: PrivateWrapperProps): JSX.Element => {\n const { children } = props;\n const { keycloak, initialized } = useKeycloak();\n\n const isLoggedIn = keycloak.authenticated;\n\n if (isLoggedIn) {\n return <>{children};\n } else {\n if (initialized) {\n keycloak.login();\n }\n return <>;\n }\n};\n\nexport default PrivateWrapper;\n","import { SxProps, Theme } from \"@mui/material\";\n\nexport const gridBoxStyles: SxProps = {\n display: \"grid\",\n flexGrow: 1,\n gap: 3,\n gridTemplateColumns: \"repeat(12, 1fr)\",\n gridTemplateRows: \"repeat(12, 1fr)\",\n minHeight: \"620px\",\n overflow: \"auto\",\n position: \"relative\",\n width: \"100%\",\n};\n","import { createElement, FunctionComponent, useEffect, useState } from \"react\";\nimport { Box, SxProps, Theme } from \"@mui/material\";\nimport { gridBoxStyles } from \"./dynamicGridStyles\";\n\ntype GridRow = [\n number,\n number,\n number,\n number,\n number,\n number,\n number,\n number,\n number,\n number,\n number,\n number\n];\n\nexport type Grid = [\n GridRow,\n GridRow,\n GridRow,\n GridRow,\n GridRow,\n GridRow,\n GridRow,\n GridRow,\n GridRow,\n GridRow,\n GridRow,\n GridRow\n];\n\ninterface CardRenderObject {\n component: FunctionComponent<{ sx: SxProps }>;\n id: number;\n}\n\ninterface DynamicGridProps {\n shownCardIds: number[];\n cardRenderObjects: CardRenderObject[];\n xlInitialGrid: Grid;\n xsInitialGrid: Grid;\n}\n\nconst DynamicGrid = (props: DynamicGridProps) => {\n const { shownCardIds, cardRenderObjects, xlInitialGrid, xsInitialGrid } =\n props;\n const [xlGrid, setXlGrid] = useState(xlInitialGrid);\n const [xsGrid, setXsGrid] = useState(xsInitialGrid);\n\n const limitGridSize = shownCardIds.length < 3;\n\n const stretchArr = (arr: Array) => {\n // process row if there is empty space\n if (arr.includes(null)) {\n // analyze arr for repeats\n const uniqueCells: number[] = [];\n const stretchArr: number[] = [];\n\n arr.map((cell) => {\n if (cell !== null && !uniqueCells.includes(cell)) {\n uniqueCells.push(cell);\n }\n });\n\n if (uniqueCells.length > 0) {\n while (stretchArr.length < 12) {\n // distribution function, spaces evenly\n uniqueCells.forEach((cell) => stretchArr.push(cell));\n }\n return stretchArr.sort();\n }\n }\n // return arr if no processing is needed\n return arr;\n };\n\n const resizeGrid = (grid: Grid) => {\n // replace restricted card ids w null\n const nullifiedGrid = grid.map((row) =>\n row.map((dashboardCardId) =>\n shownCardIds.includes(dashboardCardId) ? dashboardCardId : null\n )\n );\n\n const horizStretchedGrid = nullifiedGrid.map((row) => stretchArr(row));\n\n const columns = [\n horizStretchedGrid.map((row) => row[0]),\n horizStretchedGrid.map((row) => row[1]),\n horizStretchedGrid.map((row) => row[2]),\n horizStretchedGrid.map((row) => row[3]),\n horizStretchedGrid.map((row) => row[4]),\n horizStretchedGrid.map((row) => row[5]),\n horizStretchedGrid.map((row) => row[6]),\n horizStretchedGrid.map((row) => row[7]),\n horizStretchedGrid.map((row) => row[8]),\n horizStretchedGrid.map((row) => row[9]),\n horizStretchedGrid.map((row) => row[10]),\n horizStretchedGrid.map((row) => row[11]),\n ];\n\n const processedColumns = columns.map((column) => stretchArr(column));\n\n const finalRows = [\n processedColumns.map((column) => column[0]),\n processedColumns.map((column) => column[1]),\n processedColumns.map((column) => column[2]),\n processedColumns.map((column) => column[3]),\n processedColumns.map((column) => column[4]),\n processedColumns.map((column) => column[5]),\n processedColumns.map((column) => column[6]),\n processedColumns.map((column) => column[7]),\n processedColumns.map((column) => column[8]),\n processedColumns.map((column) => column[9]),\n processedColumns.map((column) => column[10]),\n processedColumns.map((column) => column[11]),\n ];\n\n if (shownCardIds.length > 0) {\n return finalRows as Grid;\n } else {\n return grid;\n }\n };\n\n const parseGridColumn = (cardId: number, gridSize: \"xs\" | \"xl\"): string => {\n const grid = gridSize === \"xs\" ? xsGrid : xlGrid;\n let startCol = 0;\n let endCol = 0;\n\n grid.forEach((row) => {\n row.forEach((cell, j) => {\n if (cell === cardId) {\n if (startCol === 0) {\n startCol = j + 1;\n } else {\n endCol = j + 2;\n }\n }\n });\n });\n\n return `${startCol} / ${endCol}`;\n };\n\n const parseGridRow = (cardId: number, gridSize: string): string => {\n const grid = gridSize === \"xs\" ? xsGrid : xlGrid;\n let startRow = 0;\n let endRow = 0;\n\n grid.forEach((row, i) => {\n if (row.includes(cardId)) {\n if (startRow === 0) {\n startRow = i + 1;\n } else {\n endRow = i + 2;\n }\n }\n });\n\n return `${startRow} / ${endRow}`;\n };\n\n useEffect(() => {\n const newXlGrid = resizeGrid(xlGrid);\n const newXsGrid = resizeGrid(xsGrid);\n\n if (newXlGrid && newXsGrid) {\n setXlGrid(newXlGrid);\n setXsGrid(newXsGrid);\n }\n }, [shownCardIds]);\n\n const renderCard = (\n FC: FunctionComponent<{ sx: SxProps }>,\n cardId: number\n ): JSX.Element | void => {\n if (shownCardIds.includes(cardId)) {\n return createElement(FC, {\n sx: {\n gridColumn: {\n xs: parseGridColumn(cardId, \"xs\"),\n xl: parseGridColumn(cardId, limitGridSize ? \"xs\" : \"xl\"),\n },\n gridRow: {\n xs: parseGridRow(cardId, \"xs\"),\n xl: parseGridRow(cardId, limitGridSize ? \"xs\" : \"xl\"),\n },\n },\n key: `dynamic-grid-card-${cardId}`,\n });\n }\n };\n\n return (\n \n {cardRenderObjects.map((cardObj) =>\n renderCard(cardObj.component, cardObj.id)\n )}\n \n );\n};\n\nexport default DynamicGrid;\n","import {\n Box,\n Card as MuiCard,\n CardProps as MuiCardProps,\n Fade,\n LinearProgress,\n SxProps,\n Theme,\n Grow,\n} from \"@mui/material\";\nimport { RefObject } from \"react\";\nimport { aepPalette } from \"../../../styles/aepPalette\";\nimport { fadeTimeout, growTimeout } from \"../../App\";\n\nexport interface CardProps extends MuiCardProps {\n shrink?: boolean;\n image?: string;\n initialLoadingComplete?: boolean;\n innerBoxStyles?: SxProps;\n innerRef?: RefObject;\n loading?: boolean;\n // indicates whether card is the smaller variant, does not correspond to theme.palette.secondary\n secondary?: boolean;\n sx?: SxProps;\n to?: string;\n}\n\nconst Card = (props: CardProps): JSX.Element => {\n const {\n children,\n shrink,\n image,\n initialLoadingComplete,\n innerBoxStyles,\n secondary,\n sx,\n id,\n innerRef,\n loading,\n } = props;\n\n return (\n \n }\n id={id}\n sx={{\n bgcolor: secondary ? aepPalette.common.white : \"secondary.lighter\",\n minHeight: secondary ? \"53px\" : \"0px\",\n height: shrink ? \"auto\" : \"100%\",\n \"& > div\": {\n border: \"none\",\n position: \"relative\",\n width: \"100%\",\n },\n display: \"flex\",\n ...sx,\n }}\n >\n \n \n \n {image ? (\n \n ) : (\n <>\n )}\n \n {children}\n \n \n \n );\n};\n\nexport default Card;\n","import { Box, SxProps, Theme } from \"@mui/material\";\nimport { aepPalette } from \"../../../styles/aepPalette\";\n\ninterface TextDividerProps {\n sx?: SxProps;\n}\n\nexport const TextDivider = (props: TextDividerProps): JSX.Element => {\n const { sx } = props;\n\n return (\n \n );\n};\n","import { Box, SxProps, Theme } from \"@mui/material\";\n\ninterface TextButtonProps {\n children: JSX.Element | JSX.Element[];\n onClick?: () => void;\n sx?: SxProps;\n}\n\nconst TextButton = (props: TextButtonProps): JSX.Element => {\n const { children, onClick, sx } = props;\n\n return (\n \n {children}\n \n );\n};\n\nexport default TextButton;\n","import ArrowForwardIcon from \"@mui/icons-material/ArrowForward\";\nimport ArrowBackIcon from \"@mui/icons-material/ArrowBack\";\nimport { SxProps, Theme, Typography } from \"@mui/material\";\nimport { Link } from \"react-router-dom\";\nimport TextButton from \"./TextButton\";\nimport { aepPalette } from \"../../../styles/aepPalette\";\n\ninterface NavButtonProps {\n back?: boolean;\n buttonText: string;\n onClick?: () => void;\n to?: string;\n small?: boolean;\n sx?: SxProps;\n}\n\nconst NavButton = (props: NavButtonProps) => {\n const { back, buttonText, to, small, sx, onClick } = props;\n\n return (\n \n \n {back ? (\n \n ) : (\n <>\n )}\n {buttonText}\n {!back ? (\n \n ) : (\n <>\n )}\n \n \n );\n};\n\nexport default NavButton;\n","import React, { RefObject } from \"react\";\nimport { Box, SxProps, Theme, Typography } from \"@mui/material\";\nimport Card, { CardProps } from \"../../../components/card/Card\";\nimport { TextDivider } from \"../../../components/other/TextDivider\";\nimport NavButton from \"../../../components/button/NavButton\";\n\nexport interface DashboardCardProps extends CardProps {\n buttonText?: string;\n header?: string;\n loading?: boolean;\n icon?: JSX.Element;\n image?: string;\n innerBoxStyles?: SxProps;\n innerRef?: RefObject;\n to?: string;\n}\n\nconst DashboardCard = (props: DashboardCardProps): JSX.Element => {\n const {\n buttonText,\n children,\n header,\n icon,\n image,\n innerBoxStyles,\n loading,\n innerRef,\n sx,\n to,\n } = props;\n\n return (\n }\n >\n \n {header && (\n \n {icon}\n \n \n {header}\n \n \n )}\n {children}\n {buttonText && (\n \n )}\n \n \n );\n};\n\nexport default DashboardCard;\n","import { SvgIconProps } from \"@mui/material/SvgIcon/SvgIcon\";\nimport IconWrapper from \"./IconWrapper\";\n\nconst GraphsIcon = (props: SvgIconProps) => (\n \n \n \n);\n\nexport default GraphsIcon;\n","import { SxProps, Theme } from \"@mui/material/styles\";\nimport { aepPalette } from \"../../../styles/aepPalette\";\n\nexport const rootBoxStyles: SxProps = {\n width: \"100%\",\n \"& > div > div > svg > g > g > text\": {\n // important to reach into inaccessible Nivo styles\n fontFamily: \"Museo Sans !important\",\n },\n};\n\nexport const modalBoxStyles: SxProps = {\n position: \"absolute\",\n top: \"50%\",\n left: \"50%\",\n transform: \"translate(-50%, -50%)\",\n width: \"90vw\",\n height: \"90vh\",\n backgroundColor: aepPalette.secondary.lighter,\n borderRadius: \"10px\",\n padding: 4,\n};\n\nexport const iconStyles: SxProps = {\n position: \"absolute\",\n top: \"16px\",\n right: \"16px\",\n fontSize: \"2rem\",\n};\n\nexport const headerStyles: SxProps = {\n textAlign: \"center\",\n mt: 3,\n position: \"absolute\",\n top: \"16px\",\n width: \"100%\",\n};\n\nexport const chartTheme = {\n textColor: aepPalette.font.main,\n};\n","/* eslint-disable @typescript-eslint/ban-ts-comment */\nimport { ResponsiveBar } from \"@nivo/bar\";\nimport { useState, useEffect } from \"react\";\nimport { BarDatum } from \"@nivo/bar/dist/types\";\nimport { chartTheme } from \"../chartStyles\";\nimport { ChartData, sortBySortPosition } from \"../Chart\";\nimport { chartPalette } from \"../../../../styles/aepPalette\";\n\nexport interface BarChartData {\n data: BarDatum[];\n headline?: string;\n unit?: string;\n xlabel: string;\n ylabel: string;\n}\ninterface ColumnData extends ChartData {\n ySegments: BarDatum[];\n}\n\ninterface FlattenedColumnData {\n sortPosition: string;\n x: string;\n [key: string]: number | string;\n}\n\nexport interface BarChartProps {\n mini?: boolean;\n chartData: BarChartData;\n}\n\nconst BarChart = (props: BarChartProps) => {\n const { chartData, mini } = props;\n const { xlabel, ylabel, data, unit } = chartData;\n const [columnData, setColumnData] = useState([]);\n const [keys, setKeys] = useState([]);\n\n const parseData = (): {\n columnKeys: string[];\n sortPositions: string[];\n barSegmentKeys: string[];\n } => {\n const barSegmentKeys: string[] = [];\n const columnKeys: string[] = [];\n const sortPositions: string[] = [];\n\n data?.forEach((dataPoint) => {\n if (!barSegmentKeys.includes(dataPoint.label as string)) {\n barSegmentKeys.push(dataPoint.label as string);\n }\n if (!sortPositions.includes(dataPoint.sortPosition as string)) {\n sortPositions.push(dataPoint.sortPosition as string);\n }\n if (!columnKeys.includes(dataPoint.x as string)) {\n columnKeys.push(dataPoint.x as string);\n }\n });\n\n return { columnKeys, sortPositions, barSegmentKeys };\n };\n\n const generateColumnData = (\n columnKeys: string[],\n sortPositions: string[]\n ): FlattenedColumnData[] => {\n const dataColumns = columnKeys.map((columnKey: string, index) => ({\n sortPosition: sortPositions[index],\n x: columnKey,\n ySegments: data.filter((dataPoint) => dataPoint.x === columnKey),\n }));\n\n return dataColumns.sort(sortBySortPosition).map((column: ColumnData) => {\n const flattenedObject = {\n sortPosition: column.sortPosition || \"\",\n x: column.x,\n };\n\n column.ySegments.forEach((segment: BarDatum) => {\n // @ts-ignore\n flattenedObject[segment.label] = segment.y;\n });\n\n return flattenedObject;\n });\n };\n\n const formatCategoricalData = () => {\n const { columnKeys, sortPositions, barSegmentKeys } = parseData();\n setKeys(barSegmentKeys);\n const columnData = generateColumnData(columnKeys, sortPositions);\n setColumnData(columnData);\n };\n\n const formatValue = (value: number | Date): string => {\n if (typeof value === \"number\" && unit === \"€\") {\n const formatter = new Intl.NumberFormat(\"de-DE\", {\n style: \"currency\",\n currency: \"EUR\",\n });\n\n return formatter.format(value);\n }\n\n return `${value}${unit || \"\"}`;\n };\n\n useEffect(() => {\n formatCategoricalData();\n }, [data]);\n\n if (columnData.length > 0 && keys.length > 0) {\n return (\n \n );\n } else {\n return <>;\n }\n};\n\nexport default BarChart;\n","import { useState, useEffect } from \"react\";\n\nconst getWindowDimensions = (): { height: number; width: number } => {\n const { innerWidth: width, innerHeight: height } = window;\n return {\n width,\n height,\n };\n};\n\nconst useWindowDimensions = () => {\n const [windowDimensions, setWindowDimensions] = useState(\n getWindowDimensions()\n );\n\n useEffect(() => {\n function handleResize() {\n setWindowDimensions(getWindowDimensions());\n }\n\n window.addEventListener(\"resize\", handleResize);\n return () => window.removeEventListener(\"resize\", handleResize);\n }, []);\n\n return windowDimensions;\n};\n\nexport default useWindowDimensions;\n","import { Box, SxProps, Theme } from \"@mui/material\";\nimport { aepPalette } from \"../../../styles/aepPalette\";\n\ninterface IconButtonProps {\n disabled?: boolean;\n icon: JSX.Element;\n onClick?: (e: any) => void;\n sx?: SxProps;\n}\n\nconst IconButton = (props: IconButtonProps) => {\n const { disabled, icon, onClick, sx } = props;\n\n return (\n null : onClick}\n >\n {icon}\n \n );\n};\n\nexport default IconButton;\n","import { Stack, SxProps, Theme, Typography } from \"@mui/material\";\n\nconst CeneteredTextMessage = (props: {\n message: string;\n sx?: SxProps;\n}) => {\n return (\n \n {props.message}\n \n );\n};\n\nexport default CeneteredTextMessage;\n","import { Typography, Box, Stack } from \"@mui/material\";\nimport { aepPalette } from \"../../../../styles/aepPalette\";\n\ninterface ChartTooltipProps {\n color: string;\n keys: string[];\n values: string[];\n}\n\nconst ChartTooltip = (props: ChartTooltipProps) => {\n const { color, keys, values } = props;\n\n return (\n \n {keys.map((key, index) => (\n \n \n \n {key}:\n \n {values[index]}\n \n ))}\n \n );\n};\n\nexport default ChartTooltip;\n","import { Stack, Typography } from \"@mui/material\";\nimport { ResponsiveSwarmPlot } from \"@nivo/swarmplot\";\nimport { useEffect, useState } from \"react\";\nimport CenteredTextMessage from \"../../other/CenteredTextMessage\";\nimport { sortBySortPosition, ChartData } from \"../Chart\";\nimport { chartTheme } from \"../chartStyles\";\nimport ChartTooltip from \"./ChartTooltip\";\n\nexport interface SwarmPlotData {\n data: SwarmPlotDataPoint[];\n headline?: string;\n nodeSizeLabel?: string;\n unit?: string;\n xlabel: string;\n ylabel: string;\n}\n\ninterface SwarmPlotDataPoint extends ChartData {\n size: number;\n y: number;\n}\n\ninterface SwarmPlotProps {\n mini?: boolean;\n chartData: SwarmPlotData;\n}\n\nconst SwarmPlot = (props: SwarmPlotProps) => {\n const { chartData, mini } = props;\n const { data, nodeSizeLabel, unit, xlabel, ylabel } = chartData;\n const [groups, setGroups] = useState([]);\n const [nodeSizeValues, setNodeSizeValues] = useState<[number, number]>([\n 0, 100,\n ]);\n const [yAxisMin, setYAxisMin] = useState(0);\n const [yAxisMax, setYAxisMax] = useState(2000);\n\n const parseData = (): {\n groupsArr: string[];\n minSize: number;\n maxSize: number;\n } => {\n let groupsArr: string[] = [];\n let minSize = 0;\n let maxSize = 100;\n\n const yValues = data\n .map((datapoint) => datapoint.y)\n .sort(function (a, b) {\n return a - b;\n });\n const minY = Math.floor(Math.min(...yValues) / 200) * 200;\n const maxY = Math.ceil(Math.max(...yValues) / 200) * 200;\n\n setYAxisMin(minY);\n setYAxisMax(maxY);\n\n data.sort(sortBySortPosition).forEach((dataPoint) => {\n if (!groupsArr.includes(dataPoint.x)) {\n groupsArr.push(dataPoint.x);\n }\n if (dataPoint.size < minSize) {\n minSize = dataPoint.size;\n }\n if (dataPoint.size > maxSize) {\n maxSize = dataPoint.size;\n }\n });\n\n // ensure x values are integers and fill in missing numbers to create linear horizontal scale\n const groupsArrIntegers = groupsArr.map((item) => {\n if (typeof item === \"string\") {\n return parseInt(item, 10);\n } else {\n return item;\n }\n });\n\n const maxX = Math.max(...groupsArrIntegers);\n const minX = Math.min(...groupsArrIntegers);\n\n if (!!maxX && !!minX && !groupsArrIntegers.includes(NaN)) {\n const fullRangeX: string[] = [];\n\n for (let i = minX; i <= maxX; i++) {\n let xVal = i.toString();\n // add preceding 0\n if (i < 10) {\n xVal = \"0\" + xVal;\n }\n fullRangeX.push(xVal);\n }\n\n groupsArr = fullRangeX;\n }\n\n return { groupsArr, minSize, maxSize };\n };\n\n useEffect(() => {\n const { groupsArr, minSize, maxSize } = parseData();\n setNodeSizeValues([minSize, maxSize]);\n setGroups(groupsArr);\n }, [data]);\n\n return groups.length > 0 && data.length > 0 ? (\n <>\n {\n return (\n \n );\n }}\n data={data}\n groupBy=\"x\"\n groups={groups}\n value=\"y\"\n valueFormat={(value: number | Date) => `${value}${unit || \"\"}`}\n valueScale={{\n type: \"linear\",\n min: yAxisMin,\n max: yAxisMax,\n reverse: false,\n }}\n size={{\n key: \"size\",\n values: nodeSizeValues,\n sizes: mini ? [6, 50] : [10, 90],\n }}\n spacing={1}\n colors={{ scheme: \"red_blue\" }}\n borderColor={{\n from: \"color\",\n modifiers: [[\"darker\", 0.6]],\n }}\n margin={\n mini\n ? { top: 70, right: 20, bottom: 55, left: 70 }\n : { top: 110, right: 60, bottom: 140, left: 80 }\n }\n enableGridY={true}\n axisTop={null}\n axisBottom={{\n tickSize: 5,\n tickPadding: 5,\n tickRotation: 0,\n legend: xlabel,\n legendPosition: \"middle\",\n legendOffset: mini ? 40 : 60,\n }}\n axisLeft={{\n tickSize: 5,\n tickPadding: 5,\n tickRotation: 0,\n legend: ylabel,\n legendPosition: \"middle\",\n legendOffset: mini ? -60 : -70,\n }}\n axisRight={null}\n />\n {nodeSizeLabel && (\n \n \n *Knotengröße zeigt:\n \n \n {nodeSizeLabel}\n \n \n )}\n \n ) : (\n \n );\n};\n\nexport default SwarmPlot;\n","import { SxProps, Theme, Tooltip, Typography } from \"@mui/material\";\n\ninterface OneLineTypographyProps {\n sx?: SxProps;\n text?: string;\n tooltipPlacement?:\n | \"bottom-end\"\n | \"bottom-start\"\n | \"bottom\"\n | \"left-end\"\n | \"left-start\"\n | \"left\"\n | \"right-end\"\n | \"right-start\"\n | \"right\"\n | \"top-end\"\n | \"top-start\"\n | \"top\";\n variant?:\n | \"h1\"\n | \"h2\"\n | \"h3\"\n | \"h4\"\n | \"h5\"\n | \"h6\"\n | \"subtitle1\"\n | \"subtitle2\"\n | \"body1\"\n | \"body2\"\n | \"caption\"\n | \"button\"\n | \"overline\"\n | \"small\"\n | \"inherit\"\n | \"subline\"\n | \"buttonText\"\n | \"bodyBold\";\n}\n\nconst OneLineTypography = (props: OneLineTypographyProps) => {\n const { sx, text, tooltipPlacement, variant } = props;\n\n const renderText = (): JSX.Element => (\n \n {text}\n \n );\n\n return text ? (\n \n {renderText()}\n \n ) : (\n renderText()\n );\n};\n\nexport default OneLineTypography;\n","import { Box, CircularProgress, Modal, Typography } from \"@mui/material\";\nimport BarChart, { BarChartData } from \"./elements/BarChart\";\nimport { RefObject, useEffect, useState } from \"react\";\nimport useWindowDimensions from \"../../hooks/useWindowDimensions\";\nimport CloseFullscreenIcon from \"@mui/icons-material/CloseFullscreen\";\nimport IconButton from \"../button/IconButton\";\nimport {\n headerStyles,\n iconStyles,\n modalBoxStyles,\n rootBoxStyles,\n} from \"./chartStyles\";\nimport SwarmPlot, { SwarmPlotData } from \"./elements/SwarmPlot\";\nimport CenteredTextMessage from \"../other/CenteredTextMessage\";\nimport OneLineTypography from \"../other/OneLineTypography\";\n\nexport interface ChartData {\n sortPosition?: string;\n x: string;\n}\n\nexport const sortBySortPosition = (a: ChartData, b: ChartData) => {\n if (a.sortPosition && b.sortPosition) {\n return a.sortPosition > b.sortPosition ? 1 : -1;\n } else {\n return a.x > b.x ? 1 : -1;\n }\n};\n\ninterface ChartProps {\n containerRef?: RefObject;\n data: BarChartData | SwarmPlotData;\n fullData: BarChartData | SwarmPlotData;\n inCarousel?: boolean;\n loading: boolean;\n type: \"bar\" | \"swarm\";\n upliftMiniState?: React.Dispatch>;\n}\n\nconst Chart = (props: ChartProps) => {\n const {\n containerRef,\n data,\n fullData,\n inCarousel,\n loading,\n type,\n upliftMiniState,\n } = props;\n const defaultHeight = containerRef?.current?.clientHeight || 350;\n const { width } = useWindowDimensions();\n const [mini, setMini] = useState(false);\n // for full screen view\n const [modalOpen, setModalOpen] = useState(false);\n const [height, setHeight] = useState(defaultHeight);\n const containerWidth = containerRef?.current?.clientWidth as number;\n const miniThreshold = 800;\n const hasData = fullData?.data?.length > 0;\n\n const handleClick = () => {\n setModalOpen(!modalOpen);\n };\n\n const renderChart = (full?: boolean) =>\n type === \"bar\" ? (\n \n ) : (\n \n );\n\n useEffect(() => {\n if (containerWidth > miniThreshold) {\n setMini(false);\n } else {\n setMini(true);\n }\n }, [width]);\n\n // effect to prevent background component resizing on modal open\n useEffect(() => {\n if (!modalOpen) {\n setHeight(defaultHeight);\n }\n }, [defaultHeight]);\n\n useEffect(() => {\n if (upliftMiniState) upliftMiniState(mini);\n }, [mini]);\n\n return loading ? (\n \n \n \n ) : (\n <>\n div > div > svg > g > g > rect\": {\n // important to reach into inaccessible Nivo styles\n cursor: hasData ? \"zoom-in !important\" : \"auto\",\n },\n \"& > h3\": {\n textAlign: \"center\",\n },\n ...rootBoxStyles,\n }}\n onClick={handleClick}\n >\n {data?.headline && (\n \n )}\n {hasData ? (\n renderChart(!mini)\n ) : (\n \n )}\n \n {hasData && (\n \n \n }\n sx={iconStyles}\n />\n {fullData?.headline && (\n \n {fullData?.headline}\n \n )}\n {renderChart(true)}\n \n \n )}\n \n );\n};\n\nexport default Chart;\n","/* eslint-disable @typescript-eslint/ban-ts-comment */\nimport { useState, useEffect, useContext, RefObject } from \"react\";\nimport { BarChartData } from \"../elements/BarChart\";\nimport Chart from \"../Chart\";\nimport CustomerContext from \"../../../contexts/CustomerContext\";\nimport ApiWrapper from \"../../../wrappers/ApiWrapper\";\nimport SnackbarContext from \"../../../contexts/SnackbarContext\";\n\ninterface PopulatedBarChartProps {\n containerRef?: RefObject;\n dataSet: \"PACKMON\" | \"UMSMON\";\n inCarousel?: boolean;\n liftLoadingState?: React.Dispatch>;\n}\n\nconst PopulatedBarChart = (props: PopulatedBarChartProps) => {\n const { containerRef, dataSet, inCarousel, liftLoadingState } = props;\n const [loading, setLoading] = useState(false);\n const [barChartData, setBarChartData] = useState();\n const [fullBarChartData, setFullBarChartData] = useState();\n const [mini, setMini] = useState(false);\n\n const { customerNumber } = useContext(CustomerContext);\n const { handleHttpError } = useContext(SnackbarContext);\n\n const api = new ApiWrapper().analysisControllerApi();\n\n useEffect(() => {\n let isApiSubscribed = true;\n if (isApiSubscribed && customerNumber) {\n setLoading(true);\n\n const sixMonthsPromise = api\n .getData(customerNumber, dataSet, 6)\n .then((res) => {\n const response = res.data as unknown;\n setBarChartData(response as BarChartData);\n })\n .catch((err) => {\n setBarChartData({data: []} as unknown as BarChartData)\n handleHttpError(err)\n });\n\n const thirteenMonthsPromise = api\n .getData(customerNumber, dataSet, 13)\n .then((res) => {\n const response = res.data as unknown;\n setFullBarChartData(response as BarChartData);\n })\n .catch((err) => {\n setFullBarChartData({data: []} as unknown as BarChartData)\n handleHttpError(err)\n });\n\n Promise.all([sixMonthsPromise, thirteenMonthsPromise]).finally(() => {\n setLoading(false);\n });\n }\n\n return () => {\n isApiSubscribed = false;\n };\n }, [customerNumber, mini]);\n\n useEffect(() => {\n if (liftLoadingState) {\n liftLoadingState(loading);\n }\n }, [loading]);\n\n return barChartData && fullBarChartData ? (\n \n ) : (\n <>\n );\n};\n\nexport default PopulatedBarChart;\n","import { useState, useEffect, useContext, RefObject } from \"react\";\nimport Chart from \"../Chart\";\nimport CustomerContext from \"../../../contexts/CustomerContext\";\nimport ApiWrapper from \"../../../wrappers/ApiWrapper\";\nimport SnackbarContext from \"../../../contexts/SnackbarContext\";\nimport { SwarmPlotData } from \"../elements/SwarmPlot\";\n\ninterface swarmPlotDataSwarmPlotProps {\n containerRef?: RefObject;\n dataSet: \"BESTZEIT\";\n inCarousel?: boolean;\n liftLoadingState?: React.Dispatch>;\n}\n\nconst swarmPlotDataSwarmPlot = (props: swarmPlotDataSwarmPlotProps) => {\n const { containerRef, dataSet, inCarousel, liftLoadingState } = props;\n const [loading, setLoading] = useState(false);\n const [swarmPlotData, setSwarmPlotData] = useState();\n const [filteredSwarmPlotData, setFilteredSwarmPlotData] =\n useState();\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const [mini, setMini] = useState(false);\n\n const { customerNumber } = useContext(CustomerContext);\n const { handleHttpError } = useContext(SnackbarContext);\n\n const api = new ApiWrapper().analysisControllerApi();\n\n useEffect(() => {\n let isApiSubscribed = true;\n\n if (isApiSubscribed && customerNumber) {\n setLoading(true);\n\n api\n .getData(customerNumber, dataSet, 1)\n .then((res) => {\n const response = res.data as unknown;\n setSwarmPlotData(response as SwarmPlotData);\n const filteredResponse = {} as SwarmPlotData;\n Object.assign(filteredResponse, response);\n filteredResponse.data = (response as SwarmPlotData).data?.filter(\n (dataPoint) => {\n // data from last 5 days for mini view\n const bottomLimit = new Date().getDate() - 5;\n return dataPoint.x > bottomLimit.toString();\n }\n );\n setFilteredSwarmPlotData(filteredResponse);\n })\n .catch((err) => {\n setFilteredSwarmPlotData({data: []} as unknown as SwarmPlotData)\n handleHttpError(err)\n })\n .finally(() => {\n setLoading(false);\n });\n }\n\n return () => {\n isApiSubscribed = false;\n };\n }, [customerNumber]);\n\n useEffect(() => {\n if (liftLoadingState) {\n liftLoadingState(loading);\n }\n }, [loading]);\n\n return swarmPlotData ? (\n \n ) : (\n <>\n );\n};\n\nexport default swarmPlotDataSwarmPlot;\n","import * as React from \"react\";\nimport { SxProps, useTheme, Theme } from \"@mui/material/styles\";\nimport Box from \"@mui/material/Box\";\nimport MobileStepper from \"@mui/material/MobileStepper\";\nimport KeyboardArrowLeft from \"@mui/icons-material/KeyboardArrowLeft\";\nimport KeyboardArrowRight from \"@mui/icons-material/KeyboardArrowRight\";\nimport SwipeableViews from \"react-swipeable-views\";\nimport { useEffect, useState } from \"react\";\n\ninterface CarouselProps {\n children: JSX.Element | JSX.Element[];\n maxSteps: number;\n sx?: SxProps;\n}\n\nconst Carousel = (props: CarouselProps) => {\n const { children, maxSteps, sx } = props;\n const theme = useTheme();\n const [activeStep, setActiveStep] = useState(0);\n const [autoScrollTimer, setAutoScrollTimer] = useState();\n\n const handleNext = (clear?: boolean) => {\n setActiveStep((prevActiveStep) => {\n return prevActiveStep === maxSteps - 1 ? 0 : prevActiveStep + 1;\n });\n if (autoScrollTimer && clear) {\n clearInterval(autoScrollTimer);\n }\n };\n\n const handleBack = (clear?: boolean) => {\n setActiveStep((prevActiveStep) =>\n prevActiveStep === 0 ? maxSteps - 1 : prevActiveStep - 1\n );\n if (autoScrollTimer && clear) {\n clearInterval(autoScrollTimer);\n }\n };\n\n const handleStepChange = (step: number) => {\n setActiveStep(step);\n };\n\n useEffect(() => {\n const interval = setInterval(() => handleNext(), 5000);\n setAutoScrollTimer(interval);\n\n return () => {\n clearInterval(interval);\n };\n }, []);\n\n return (\n \n {maxSteps > 1 ? (\n div:first-of-type\": {\n height: \"91.5%\",\n position: \"relative\",\n overflow: \"hidden\",\n },\n \"& > div > div > div\": {\n overflow: \"hidden !important\",\n },\n }}\n >\n \n {children}\n \n handleNext(true)}\n sx={{ cursor: \"pointer\", fontSize: \"2.3rem\" }}\n />\n }\n backButton={\n handleBack(true)}\n sx={{ cursor: \"pointer\", fontSize: \"2.3rem\" }}\n />\n }\n />\n \n ) : (\n children\n )}\n \n );\n};\n\nexport default Carousel;\n","import * as React from \"react\";\nimport { styled } from \"@mui/material/styles\";\nimport PickersDay, { PickersDayProps } from \"@mui/lab/PickersDay\";\n\ntype CustomPickerDayProps = PickersDayProps & {\n dayIsBetween: boolean;\n isFirstDay: boolean;\n isLastDay: boolean;\n};\n\nconst CustomPickersDay = styled(PickersDay, {\n shouldForwardProp: (prop) =>\n prop !== \"dayIsBetween\" && prop !== \"isFirstDay\" && prop !== \"isLastDay\",\n})(({ theme, dayIsBetween, isFirstDay, isLastDay }) => ({\n ...(dayIsBetween && {\n borderRadius: 0,\n backgroundColor: theme.palette.primary.main,\n color: theme.palette.common.white,\n \"&:hover, &:focus\": {\n backgroundColor: theme.palette.primary.dark,\n },\n }),\n ...(isFirstDay && {\n backgroundColor: theme.palette.primary.dark,\n borderTopLeftRadius: \"50%\",\n borderBottomLeftRadius: \"50%\",\n borderBottomRightRadius: \"0%\",\n borderTopRightRadius: \"0%\",\n color: theme.palette.common.white,\n \"&:hover\": {\n backgroundColor: theme.palette.primary.dark,\n },\n }),\n ...(isLastDay && {\n backgroundColor: theme.palette.primary.dark,\n borderTopRightRadius: \"50%\",\n borderBottomRightRadius: \"50%\",\n }),\n})) as React.ComponentType;\n\nexport default CustomPickersDay;\n","import PickersDay, { PickersDayProps } from \"@mui/lab/PickersDay\";\nimport isSameDay from \"date-fns/isSameDay\";\nimport isWithinInterval from \"date-fns/isWithinInterval\";\nimport CustomPickersDay from \"../components/datepicker/CustomPickersDay\";\nimport { DatePickerDate } from \"../components/datepicker/DateRangePicker\";\nimport { isValid, parse } from \"date-fns\";\nimport { de } from \"date-fns/locale\";\n\nexport const ddmmyyyyFormat = (date: Date | null): string => {\n if (date === null) return \"\";\n\n let day: string | number = date.getDate();\n let month: string | number = date.getMonth() + 1;\n const year = date.getFullYear();\n\n if (day < 10) {\n day = `0${day}`;\n }\n\n if (month < 10) {\n month = `0${month}`;\n }\n\n return `${day}.${month}.${year}`;\n};\n\nexport const deDateStringFormat = (date: Date | null): string => {\n if (date === null) return \"\";\n\n const day: number = date.getDate();\n const month: number = date.getMonth();\n const year = date.getFullYear();\n const monthNames = [\n \"JAN\",\n \"FEB\",\n \"MÄRZ\",\n \"APR\",\n \"MAI\",\n \"JUNI\",\n \"JULI\",\n \"AUG\",\n \"SEPT\",\n \"OKT\",\n \"NOV\",\n \"DEZ\",\n ];\n\n return `${day}.${monthNames[month]} ${year}`;\n};\n\nexport const renderWeekPickerDay = (\n date: Date,\n selectedDates: Array,\n pickersDayProps: PickersDayProps,\n dateRange: DatePickerDate[]\n) => {\n if (!dateRange[0] || !dateRange[1]) {\n return ;\n }\n\n const start = dateRange[0];\n const end = dateRange[1];\n\n const dayIsBetween = isWithinInterval(date, { start, end });\n const isFirstDay = isSameDay(date, start);\n const isLastDay = isSameDay(date, end);\n\n return (\n \n );\n};\n\nexport const isValidDateString = (\n dateString: string,\n minDate?: Date,\n maxDate?: Date\n): boolean => {\n const dateObj = parse(dateString, \"P\", new Date(), { locale: de });\n return (\n /^\\d\\d?\\.\\d\\d?\\.\\d\\d\\d\\d$/.test(dateString) &&\n isValid(dateObj) &&\n (!minDate || minDate.getTime() < dateObj.getTime()) &&\n (!maxDate || maxDate.getTime() > dateObj.getTime())\n );\n};\n\nexport const reformatDateString = (dateString: string): string => {\n return ddmmyyyyFormat(stringToDate(dateString));\n};\n\nexport const stringToYMD = (dateString: string): string => {\n const parts = dateString.split(\".\");\n const day = parts[0].length == 1 ? `0${parts[0]}` : parts[0];\n const month = parts[1].length == 1 ? `0${parts[1]}` : parts[1];\n return `${parts[2]}-${month}-${day}`;\n};\n\nexport const stringToDate = (dateString: string): Date => {\n const parts = dateString.split(\".\");\n const day = parseInt(parts[0], 10);\n const month = parseInt(parts[1], 10);\n const year = parseInt(parts[2], 10);\n return new Date(year, month - 1, day);\n};\n\nexport const extractDatesFromPeriod = (\n period: Date | DatePickerDate[] | undefined\n) => {\n let fromDate = undefined;\n let toDate = undefined;\n if (Array.isArray(period)) {\n if (period[0] !== null) {\n fromDate = ddmmyyyyFormat(period[0]);\n }\n if (period[1] !== null) {\n toDate = ddmmyyyyFormat(period[1]);\n }\n }\n return { fromDate, toDate };\n};\n\nexport const utcToGermanDateString = (\n utcString: string | undefined,\n excludeTimestamp?: boolean\n): string => {\n const date = utcString\n ? new Date(utcString)\n : new Date(\"1970-01-01T00:00:00\");\n\n let returnDate = date.toLocaleString(\"de-DE\");\n\n if (excludeTimestamp) {\n returnDate = returnDate.split(\",\")[0];\n }\n\n return returnDate;\n};\n\nexport const isWithinLastSixMonths = (dateToCompare: Date): boolean => {\n const date = new Date();\n date.setMonth(date.getMonth() - 6);\n return dateToCompare > date;\n};\n","import { CircularProgress } from \"@mui/material\";\nimport React, { useContext, useState } from \"react\";\nimport DownloadIcon from \"../../components/icons/DownloadIcon\";\nimport ApiWrapper from \"../../wrappers/ApiWrapper\";\nimport { stringToYMD } from \"../../service/CustomDateService\";\nimport SnackbarContext from \"../../contexts/SnackbarContext\";\nimport IconButton from \"../button/IconButton\";\n\nexport type DocumentLoaderDocumentType =\n | \"LS\"\n | \"SR\"\n | \"NB\"\n | \"GS\"\n | \"MB\"\n | \"TB\";\n\ntype DocumentLoaderProps = {\n bg?: boolean;\n documentId?: string;\n documentDate?: string;\n customerNumber?: string;\n documentType?: DocumentLoaderDocumentType;\n};\n\nconst DocumentLoader = (props: DocumentLoaderProps) => {\n const [loading, setLoading] = useState(false);\n const api = new ApiWrapper().documentsControllerApi();\n const { bg, documentId, documentDate, customerNumber, documentType } = props;\n const { handleError } = useContext(SnackbarContext);\n\n const isNotNull = (value?: string) => {\n return value && value !== \"0\";\n };\n\n const isDownloadable =\n isNotNull(customerNumber) && isNotNull(documentId) && documentDate;\n\n const executeDownload = (e: any) => {\n // stop click event from bubbling to parent\n e.stopPropagation();\n\n setLoading(true);\n api\n .getDocumentAsBase64(\n customerNumber || \"\",\n documentId || \"\",\n stringToYMD(documentDate || \"\"),\n documentType || \"TB\"\n )\n .then((data) => {\n const element = document.createElement(\"a\");\n element.setAttribute(\n \"href\",\n \"data:application/pdf;base64,\" + encodeURIComponent(data.data)\n );\n element.setAttribute(\n \"download\",\n `apoportal-beleg-${customerNumber}-${documentId}.pdf`\n );\n element.click();\n })\n .catch((e) => {\n if (e?.response?.data?.message != undefined) {\n handleError(e.response.data.message);\n } else {\n handleError(\n \"Der Belegdownload ist aktuell nicht möglich. Bitte kontaktieren Sie das Service Center.\"\n );\n }\n })\n .finally(() => {\n setLoading(false);\n });\n };\n\n return (\n <>\n {isDownloadable && (\n \n ) : (\n \n )\n }\n onClick={executeDownload}\n />\n )}\n \n );\n};\n\nexport default DocumentLoader;\n","import { Box, SxProps, Theme, Typography } from \"@mui/material\";\nimport { useContext } from \"react\";\nimport Card from \"./Card\";\nimport CustomerContext from \"../../contexts/CustomerContext\";\nimport DocumentLoader from \"../documentloader/DocumentLoader\";\nimport { Link } from \"react-router-dom\";\n\ninterface InfoCardProps {\n download?: boolean;\n header: string;\n headerValue?: string;\n key1?: string;\n key1Value?: string;\n key2?: string;\n key2Value?: string;\n // stack header and header value\n multilineHeader?: boolean;\n onClick?: () => void;\n sx?: SxProps;\n documentType?: \"LS\" | \"SR\" | \"NB\" | \"GS\" | \"MB\" | \"TB\";\n}\n\nconst InfoCard = (props: InfoCardProps): JSX.Element => {\n const {\n download,\n header,\n headerValue,\n key1,\n key1Value,\n key2,\n key2Value,\n multilineHeader,\n onClick,\n sx,\n documentType,\n } = props;\n\n const { customerNumber } = useContext(CustomerContext);\n\n return (\n \n \n
\n \n \n {header}:\n \n \n {headerValue}\n \n \n {key1 && (\n \n \n {key1}:\n \n {key1Value}\n \n )}\n {key2 && (\n \n \n {key2}:\n \n {key2Value}\n \n )}\n
\n {download && (\n \n )}\n \n \n );\n};\n\nexport default InfoCard;\n","import InfoCard from \"../../../components/card/InfoCard\";\nimport { SxProps, Theme } from \"@mui/material\";\nimport { useNavigate } from \"react-router-dom\";\n\ninterface DeliveryShipmentInfoCardProps {\n deliveryNo: string;\n deliveryDate: string;\n sx?: SxProps;\n}\n\nconst deliverInfoCardStyles = {\n cursor: \"pointer\",\n mb: 2,\n \"&:hover, &:active\": {\n backgroundColor: \"secondary.light\",\n },\n};\n\nexport const DeliveryShipmentInfoCard = (\n props: DeliveryShipmentInfoCardProps\n): JSX.Element => {\n const { deliveryNo, deliveryDate } = props;\n const navigate = useNavigate();\n\n return (\n \n navigate(\"bestellungen/lieferungen/details\", { state: [deliveryNo] })\n }\n sx={deliverInfoCardStyles}\n documentType=\"LS\"\n />\n );\n};\n","import { useContext, useEffect, useState } from \"react\";\nimport { Box, Stack, Fade } from \"@mui/material\";\nimport { DeliveryShipmentInfoCard } from \"./DeliveryShipmentInfoCard\";\nimport DeliveryIcon from \"../../../components/icons/DeliveryIcon\";\nimport DashboardCard from \"./DashboardCard\";\nimport ApiWrapper from \"../../../wrappers/ApiWrapper\";\nimport { DeliveryDto } from \"../../../../api\";\nimport { CardProps } from \"../../../components/card/Card\";\nimport CustomerContext from \"../../../contexts/CustomerContext\";\nimport { Skeleton } from \"@mui/material\";\nimport { fadeTimeout } from \"../../../App\";\nimport SnackbarContext from \"../../../contexts/SnackbarContext\";\nimport UserContext from \"../../../contexts/UserContext\";\nimport { UserDtoPermissionsEnum } from \"../../../../api\";\n\nconst LastDeliveriesCard = (props: CardProps): JSX.Element => {\n const api = new ApiWrapper().deliveriesControllerApi();\n const [deliveries, setDeliveries] = useState();\n const [loading, setLoading] = useState(true);\n const { customerNumber } = useContext(CustomerContext);\n const { handleError } = useContext(SnackbarContext);\n const { checkUserRole } = useContext(UserContext);\n\n useEffect(() => {\n setDeliveries([]);\n if (customerNumber) {\n setLoading(true);\n api\n .getAllDeliveries(customerNumber)\n .then((res) => {\n setDeliveries(res.data);\n })\n .catch(() =>\n handleError(\n \"Aktuell können keine Daten angezeigt werden. Bitte kontaktieren Sie das Service Center.\"\n )\n )\n .finally(() => setLoading(false));\n }\n }, [customerNumber]);\n\n const renderInfoCards = () => {\n if (loading) {\n return (\n \n \n \n \n \n \n \n );\n }\n return deliveries?.map((delivery, index): JSX.Element | null => {\n return (\n \n
\n \n
\n \n );\n });\n };\n\n return checkUserRole([UserDtoPermissionsEnum.Lieferscheine]) ? (\n }\n buttonText=\"Alle Lieferungen\"\n to=\"/bestellungen/lieferungen\"\n {...props}\n >\n {renderInfoCards()}\n \n ) : (\n <>\n );\n};\n\nexport default LastDeliveriesCard;\n","export const toCurrency = (amount: number | null): string => {\n return new Intl.NumberFormat('de-DE', { style: 'currency', currency: 'EUR' }).format(amount || 0);\n};\n","import InfoCard from \"../../../components/card/InfoCard\";\nimport { SxProps, Theme, Tooltip } from \"@mui/material\";\nimport { InvoiceDto } from \"../../../../api\";\nimport { toCurrency } from \"../../../service/CustomNumberService\";\n\ninterface InvoiceInfoCardProps {\n fadeIn: boolean;\n invoice: InvoiceDto;\n sx?: SxProps;\n}\n\nconst invoiceInfoCardStyles = {\n mb: 2,\n};\n\nexport const InvoiceInfoCard = (props: InvoiceInfoCardProps): JSX.Element => {\n const { invoice } = props;\n const { invoiceId, invoiceDate, billingAmount, invoiceType } = invoice;\n\n const tooltipContent = `Rechnungssumme: ${toCurrency(\n billingAmount || 0\n )}\\nBelegart: ${invoiceType}`;\n\n return (\n \n
\n \n
\n
\n );\n};\n","import { SvgIconProps } from \"@mui/material/SvgIcon/SvgIcon\";\nimport IconWrapper from \"./IconWrapper\";\n\nconst InvoicesIcon = (props: SvgIconProps) => (\n \n \n \n \n \n \n);\n\nexport default InvoicesIcon;\n","import { useContext, useEffect, useState } from \"react\";\nimport { Box, Fade, Stack } from \"@mui/material\";\nimport { InvoiceInfoCard } from \"./InvoiceInfoCard\";\nimport InvoicesIcon from \"../../../components/icons/InvoicesIcon\";\nimport DashboardCard from \"./DashboardCard\";\nimport ApiWrapper from \"../../../wrappers/ApiWrapper\";\nimport { InvoiceDto, UserDtoPermissionsEnum } from \"../../../../api\";\nimport { CardProps } from \"../../../components/card/Card\";\nimport CustomerContext from \"../../../contexts/CustomerContext\";\nimport { Skeleton } from \"@mui/material\";\nimport SnackbarContext from \"../../../contexts/SnackbarContext\";\nimport { fadeTimeout } from \"../../../App\";\nimport UserContext from \"../../../contexts/UserContext\";\n\nconst LastInvoicesCard = (props: CardProps): JSX.Element => {\n const api = new ApiWrapper().invoicesControllerApi();\n const [invoices, setInvoices] = useState([]);\n const [loading, setLoading] = useState(true);\n const { customerNumber } = useContext(CustomerContext);\n const { handleError } = useContext(SnackbarContext);\n const { checkUserRole } = useContext(UserContext);\n\n useEffect(() => {\n setInvoices([]);\n if (customerNumber) {\n setLoading(true);\n api\n .getAllInvoices(customerNumber)\n .then((res) => {\n setInvoices(res.data);\n })\n .catch(() =>\n handleError(\n \"Aktuell können keine Daten angezeigt werden. Bitte kontaktieren Sie das Service Center.\"\n )\n )\n .finally(() => setLoading(false));\n }\n }, [customerNumber]);\n\n const renderInfoCards = () => {\n if (loading) {\n return (\n \n \n \n \n \n \n \n );\n }\n return invoices?.map((invoice, index): JSX.Element | null => {\n return (\n \n
\n \n
\n \n );\n });\n };\n\n return checkUserRole([UserDtoPermissionsEnum.Sammelrechnungen]) ? (\n }\n buttonText=\"Alle Rechnungen\"\n to=\"/belege\"\n {...props}\n >\n {renderInfoCards()}\n \n ) : (\n <>\n );\n};\n\nexport default LastInvoicesCard;\n","import axios, { AxiosResponse, AxiosRequestConfig } from \"axios\";\nimport Contact from \"./models/Contact\";\nimport Article from \"./models/Article\";\nimport Offer from \"./models/Offer\";\nimport StrapiResponse from \"./models/StrapiResponse\";\nimport Banner from \"./models/Banner\";\nimport Download from \"./models/Download\";\nimport SalesContact from \"./models/SalesContact\";\nimport DownloadCategory from \"./models/DownloadCategory\";\n\nclass StrapiApi {\n constructor(private token: string, public customerNumber: string) {}\n\n axiosRequestConfig: AxiosRequestConfig = {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n baseURL: window._env_.REACT_APP_API_URL,\n headers: {\n Authorization: \"Bearer \" + this.token,\n },\n };\n\n public getAllArticles(): Promise>> {\n return axios({\n ...this.axiosRequestConfig,\n method: \"get\",\n url: `/contentmanager/${this.customerNumber}/api/aep-articles?populate=*&sort[0]=gueltigVon%3Adesc`,\n });\n }\n\n public getLatesttArticle(): Promise>> {\n return axios({\n ...this.axiosRequestConfig,\n method: \"get\",\n url: `/contentmanager/${this.customerNumber}/api/aep-articles?populate=*&sort[0]=gueltigVon%3Adesc&pagination[pageSize]=1&pagination[page]=1`,\n });\n }\n\n public getCategorizedOffers(): Promise>> {\n return axios({\n ...this.axiosRequestConfig,\n method: \"get\",\n url: `/contentmanager/${this.customerNumber}/api/aep-offers?populate=*&filters[kategorie][$notNull]=true&sort[0]=kategorie%3Adesc`,\n });\n }\n\n public getUncategorizedOffers(): Promise<\n AxiosResponse>\n > {\n return axios({\n ...this.axiosRequestConfig,\n method: \"get\",\n url: `/contentmanager/${this.customerNumber}/api/aep-offers?populate=*&filters[kategorie][$null]=true&sort[0]=gueltigVon%3Adesc`,\n });\n }\n\n public getDashboardOffers(): Promise>> {\n return axios({\n ...this.axiosRequestConfig,\n method: \"get\",\n url: `/contentmanager/${this.customerNumber}/api/aep-offers?populate=*&filters[dashboard][$eq]=true`,\n });\n }\n\n public getTopOffer(): Promise>> {\n return axios({\n ...this.axiosRequestConfig,\n method: \"get\",\n url: `/contentmanager/${this.customerNumber}/api/aep-offers?populate=*&filters[kategorie][$eq]=Topartikel`,\n });\n }\n\n public getContacts(): Promise>> {\n return axios({\n ...this.axiosRequestConfig,\n method: \"get\",\n url: `/contentmanager/${this.customerNumber}/api/aep-contacts?populate=*`,\n });\n }\n\n public getSalesContacts(): Promise<\n AxiosResponse>\n > {\n return axios({\n ...this.axiosRequestConfig,\n method: \"get\",\n url: `/contentmanager/${this.customerNumber}/api/aep-sales-contacts?populate=*&sort[0]=createdAt%3Adesc`,\n });\n }\n\n public getBanners(): Promise>> {\n return axios({\n ...this.axiosRequestConfig,\n method: \"get\",\n url: `/contentmanager/${this.customerNumber}/api/aep-banners?populate=*&sort[0]=gueltigVon%3Adesc`,\n });\n }\n\n public getDownloads(\n selectedTab: string,\n pzn: string,\n searchTerms: string[]\n ): Promise>> {\n let queryString = \"\";\n if (selectedTab) {\n queryString += `&filters[kategorie][name][$eq]=${selectedTab}`;\n }\n if (pzn) {\n queryString += `&filters[pzn][$eq]=${pzn}`;\n }\n\n if (searchTerms.length > 0) {\n searchTerms.forEach((term: string) => {\n queryString += `&filters[schlagwoerter][$containsi]=${term}`;\n });\n }\n\n return axios({\n ...this.axiosRequestConfig,\n method: \"get\",\n url: `/contentmanager/${this.customerNumber}/api/aep-downloads?populate=*${queryString}`,\n });\n }\n\n public getDownloadCategories(): Promise<\n AxiosResponse>\n > {\n return axios({\n ...this.axiosRequestConfig,\n method: \"get\",\n url: `/contentmanager/${this.customerNumber}/api/aep-download-categories?populate=*`,\n });\n }\n}\n\nexport default StrapiApi;\n","import { Box, BoxTypeMap, Grow, SxProps, Theme } from \"@mui/material\";\nimport { OverridableComponent } from \"@mui/material/OverridableComponent\";\nimport { growTimeout } from \"../App\";\n\n// Image wrapper to allow theme aware passing of props directly without wrapper box in every component\ninterface ImageWrapperProps {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n sx?: any;\n containerSx?: SxProps;\n src?: string;\n alt: string;\n boxProps?: OverridableComponent>;\n objectTagType?: string;\n}\n\nconst ImageWrapper = (props: ImageWrapperProps): JSX.Element => {\n const { src, alt, sx, containerSx, boxProps, objectTagType } = props;\n\n if (src) {\n return (\n object\": sx,\n \"& > img\": sx,\n }}\n {...boxProps}\n >\n \n {objectTagType ? (\n \n ) : (\n \".\"\n )}\n \n \n );\n } else {\n return <>;\n }\n};\n\nexport default ImageWrapper;\n","import { useEffect, useContext, useState } from \"react\";\nimport UserContext from \"../../contexts/UserContext\";\nimport { UserDtoPermissionsEnum } from \"../../../api\";\nimport DynamicGrid from \"../../components/grid/DynamicGrid\";\nimport AnalysesCard from \"../../components/card/AnalysesCard\";\nimport LastDeliveriesCard from \"./cards/LastDeliveriesCard\";\nimport LastInvoicesCard from \"./cards/LastInvoicesCard\";\nimport OffersCard from \"./cards/OffersCard\";\nimport NewsCard from \"./cards/NewsCard\";\n\nexport enum DashboardCardIds {\n DELIVERY = 0,\n ANALYSES = 1,\n LAST_DELIVERIES = 2,\n LAST_INVOICES = 3,\n NEWS = 4,\n OFFERS = 5,\n}\n\nconst Dashboard = () => {\n const { userRoles, checkUserRole } = useContext(UserContext);\n const [cardsToShow, setCardsToShow] = useState([]);\n\n const mapCardsToRoles = (): DashboardCardIds[] => {\n // Possible Configurations\n const adminConfig = [\n DashboardCardIds.DELIVERY,\n DashboardCardIds.LAST_DELIVERIES,\n DashboardCardIds.LAST_INVOICES,\n DashboardCardIds.OFFERS,\n DashboardCardIds.ANALYSES,\n DashboardCardIds.NEWS,\n ];\n const bestellungenConfig = [DashboardCardIds.DELIVERY];\n const lieferscheineConfig = [DashboardCardIds.LAST_DELIVERIES];\n const sammelrechnungenConfig = [DashboardCardIds.LAST_INVOICES];\n const analysenConfig = [DashboardCardIds.ANALYSES];\n const aepImBlickConfig = [DashboardCardIds.NEWS, DashboardCardIds.OFFERS];\n\n let cards: number[] = [];\n\n if (checkUserRole([UserDtoPermissionsEnum.Admin])) {\n cards = adminConfig;\n } else {\n if (checkUserRole([UserDtoPermissionsEnum.Bestellungen])) {\n cards = cards.concat(bestellungenConfig);\n }\n if (checkUserRole([UserDtoPermissionsEnum.Bestellungen])) {\n cards = cards.concat(lieferscheineConfig);\n }\n if (checkUserRole([UserDtoPermissionsEnum.Sammelrechnungen])) {\n cards = cards.concat(sammelrechnungenConfig);\n }\n if (checkUserRole([UserDtoPermissionsEnum.Analysen])) {\n cards = cards.concat(analysenConfig);\n }\n if (checkUserRole([UserDtoPermissionsEnum.AepImBlick])) {\n cards = cards.concat(aepImBlickConfig);\n }\n }\n\n return cards;\n };\n\n useEffect(() => {\n setCardsToShow(mapCardsToRoles());\n }, [userRoles]);\n\n return (\n \n );\n};\n\nexport default Dashboard;\n","import { Box, SxProps, Theme, Typography } from \"@mui/material\";\nimport Offer from \"../../../../strapi/models/Offer\";\nimport { aepPalette } from \"../../../../styles/aepPalette\";\nimport Card from \"../../../components/card/Card\";\nimport ImageWrapper from \"../../../wrappers/ImageWrapper\";\n\ninterface OfferCardProps {\n baseUrl: string;\n dashboard?: boolean;\n offerAttributes: Offer;\n sx?: SxProps;\n}\n\nconst typographyInfoStyles: SxProps = {\n fontSize: {\n xs: \"1.3rem\",\n xl: \"1rem\",\n },\n lineHeight: {\n xs: \"2rem\",\n xl: \"1.2rem\",\n },\n color: aepPalette.base.main,\n};\n\nconst OfferDashboardCard = (props: OfferCardProps) => {\n const { offerAttributes, baseUrl } = props;\n const {\n artikelName,\n bild,\n mindestmenge,\n packungsgroesse,\n preis,\n pzn,\n rabatt,\n } = offerAttributes;\n const { url } = bild.data.attributes;\n\n return (\n \n \n \n \n \n {`${rabatt} % Rabatt*`}\n \n \n {`${preis} € pro Stück`}\n \n\n {`Ab einer Menge von ${mindestmenge} Stück`}\n \n\n \n {artikelName}\n {packungsgroesse}\n PZN {pzn}\n \n \n \n );\n};\n\nexport default OfferDashboardCard;\n","import { CardProps } from \"@mui/material\";\nimport { useKeycloak } from \"@react-keycloak/web\";\nimport { useContext, useEffect, useState } from \"react\";\nimport Offer from \"../../../../strapi/models/Offer\";\nimport StrapiData from \"../../../../strapi/models/StrapiData\";\nimport StrapiApi from \"../../../../strapi/StrapiApi\";\nimport DiscoverIcon from \"../../../components/icons/DiscoverIcon\";\nimport SnackbarContext from \"../../../contexts/SnackbarContext\";\nimport DashboardCard from \"./DashboardCard\";\nimport { shuffleArr } from \"../../../service/CustomArrayService\";\nimport OfferDashboardCard from \"./OfferDashboardCard\";\nimport CustomerContext from \"../../../contexts/CustomerContext\";\nimport CenteredTextMessage from \"../../../components/other/CenteredTextMessage\";\n\ntype StrapiOfferData = StrapiData;\n\nconst OffersCard = (props: CardProps): JSX.Element => {\n const { keycloak } = useKeycloak();\n const { customerNumber } = useContext(CustomerContext);\n const strapiApi = new StrapiApi(keycloak.token || \"\", customerNumber);\n const { handleError } = useContext(SnackbarContext);\n const [offers, setOffers] = useState>([]);\n const [loading, setLoading] = useState(false);\n\n useEffect(() => {\n let isApiSubscribed = true;\n\n if (isApiSubscribed && customerNumber) {\n setLoading(true);\n strapiApi\n .getDashboardOffers()\n .then((res) => {\n const shuffledOffers = shuffleArr(res.data.data);\n\n if (shuffledOffers.length > 0) {\n setOffers(shuffledOffers);\n } else {\n strapiApi.getTopOffer().then((res) => {\n const topOffers = res.data.data;\n if (topOffers.length > 0) {\n setOffers(topOffers);\n } else {\n setOffers([]);\n }\n });\n }\n })\n .catch(() =>\n handleError(\n \"Aktuell können keine Daten angezeigt werden. Bitte kontaktieren Sie das Service Center.\"\n )\n )\n .finally(() => setLoading(false));\n }\n\n return () => {\n isApiSubscribed = false;\n };\n }, [customerNumber]);\n\n return (\n }\n {...props}\n >\n {!loading && offers.length > 0 ? (\n \n ) : (\n \n )}\n \n );\n};\n\nexport default OffersCard;\n","export function shuffleArr(array: Array) {\n let currentIndex = array.length,\n randomIndex;\n\n // While there remain elements to shuffle...\n while (currentIndex != 0) {\n // Pick a remaining element...\n randomIndex = Math.floor(Math.random() * currentIndex);\n currentIndex--;\n\n // And swap it with the current element.\n [array[currentIndex], array[randomIndex]] = [\n array[randomIndex],\n array[currentIndex],\n ];\n }\n\n return array;\n}\n","import DashboardCard from \"./DashboardCard\";\nimport NewsIcon from \"../../../components/icons/NewsIcon\";\nimport { CardProps, Typography } from \"@mui/material\";\nimport { useContext, useEffect, useState } from \"react\";\nimport Article from \"../../../../strapi/models/Article\";\nimport { useKeycloak } from \"@react-keycloak/web\";\nimport StrapiApi from \"../../../../strapi/StrapiApi\";\nimport SnackbarContext from \"../../../contexts/SnackbarContext\";\nimport CustomerContext from \"../../../contexts/CustomerContext\";\nimport CenteredTextMessage from \"../../../components/other/CenteredTextMessage\";\n\nconst NewsCard = (props: CardProps): JSX.Element => {\n const { keycloak } = useKeycloak();\n const { customerNumber } = useContext(CustomerContext);\n const strapiApi = new StrapiApi(keycloak.token || \"\", customerNumber);\n const { handleError } = useContext(SnackbarContext);\n const [article, setArticle] = useState
(null);\n const [loading, setLoading] = useState(true);\n\n useEffect(() => {\n let isApiSubscribed = true;\n\n if (isApiSubscribed && customerNumber) {\n setLoading(true);\n\n strapiApi\n .getLatesttArticle()\n .then((res) => {\n const articleArr = res.data.data;\n\n if (articleArr.length > 0) {\n setArticle(articleArr[0].attributes);\n } else {\n setArticle(null);\n }\n })\n .catch(() =>\n handleError(\n \"Aktuell können keine Daten angezeigt werden. Bitte kontaktieren Sie das Service Center.\"\n )\n )\n .finally(() => {\n setLoading(false);\n });\n }\n\n return () => {\n isApiSubscribed = false;\n };\n }, [customerNumber]);\n\n return (\n }\n image={\n article?.heroBild?.data?.attributes?.url\n ? `${strapiApi.axiosRequestConfig.baseURL}/contentmanager${article?.heroBild?.data?.attributes?.url}`\n : \"\"\n }\n to=\"news\"\n {...props}\n >\n {article ? (\n <>\n \n {article?.titel}\n \n \n {article?.teaserText}\n \n \n ) : (\n \n )}\n \n );\n};\n\nexport default NewsCard;\n","import { FormikValues } from \"formik\";\n\nexport enum TableFilterType {\n textfield = \"textfield\",\n dateRange = \"dateRange\",\n dropdown = \"dropdown\",\n tabs = \"tabs\",\n chips = \"chips\",\n}\n\nexport interface TableFilterMenuItem {\n label: string;\n value: string;\n}\n\nexport interface TableFilterSearchField {\n type: TableFilterType;\n name: string;\n label: string;\n menuItems?: TableFilterMenuItem[];\n validate?: (value: string) => boolean;\n errorMessage?: string;\n disabled?: boolean;\n}\n\nexport interface TableFilterProps {\n handleResetFilter: () => void;\n handleResetRows?: () => void;\n initialValues: FormikValues;\n onSubmit: (loadMore: boolean, searchParams?: FormikValues) => void;\n resetSearchParameters?: boolean;\n searchFields: TableFilterSearchField[];\n triggerSubmit?: boolean;\n}\n","import { useEffect, useState } from \"react\";\nimport { Box, Tabs, Tab, useTheme } from \"@mui/material\";\nimport Card, { CardProps } from \"./Card\";\n\ninterface CardTabProps extends CardProps {\n name: string;\n state: number;\n}\n\ninterface TabableCardProps extends CardProps {\n children: React.ReactElement[];\n}\n\ntype CardTab = {\n id: string;\n name: string;\n element: React.ReactElement;\n};\n\nexport const TabableCard = ({\n sx = [],\n children,\n}: TabableCardProps): JSX.Element => {\n const [tabs, setTabs] = useState([]);\n const [currentTabIndex, setCurrentTabIndex] = useState(0);\n const theme = useTheme();\n\n const handleChange = (_event: React.SyntheticEvent, newValue: number) => {\n setCurrentTabIndex(newValue);\n };\n\n const parseTabsFromChildren = (): CardTab[] => {\n const tabsFromChildren: CardTab[] = [];\n\n if (typeof children !== \"undefined\") {\n children.forEach((element) => {\n if (element.props.id && element.props.name) {\n tabsFromChildren.push({\n id: element.props.id,\n name: element.props.name,\n element,\n });\n }\n });\n }\n\n return tabsFromChildren;\n };\n\n useEffect(() => {\n const tabsFromChildren = parseTabsFromChildren();\n setTabs(tabsFromChildren);\n }, [children]);\n\n return (\n \n \n {tabs.map((tab) => (\n \n ))}\n \n {tabs[currentTabIndex]?.element}\n \n );\n};\n\nexport const CardTabContent = ({ children }: CardTabProps): JSX.Element => {\n return {children};\n};\n","import { SxProps, Theme } from \"@mui/material\";\nimport { theme } from \"../../../styles/AepThemeProvider\";\n\nexport const rootBoxStyles: SxProps = {\n display: \"grid\",\n gap: 3,\n gridTemplateColumns: \"repeat(3, 1fr)\",\n gridTemplateRows: \"100%\",\n};\n\nexport const orderButtonStyles: SxProps = {\n position: \"absolute\",\n bottom: \"15px\",\n right: \"15px\",\n width: \"200px\",\n fontSize: \"1.3rem\",\n marginTop: \"12px\",\n pl: \"0px\",\n pr: \"0px\",\n};\n\nexport const textfieldStyles: SxProps = {\n fontSize: \"1.3rem\",\n width: \"22.35%\",\n lineHeight: \"1.35rem\",\n margin: \"0 16px\",\n};\n\nexport const orderSearchButtonStyles: SxProps = {\n width: \"18.2%\",\n margin: \"12px 16px 0\",\n fontSize: \"1.3rem\",\n};\n\nexport const ordersCardStyles: SxProps = {\n marginBottom: \"24px\",\n py: 2,\n paddingLeft: \"4.8%\",\n paddingRight: \"4.8%\",\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"center\",\n};\n\nexport const dailyOrderTableRowSeparatorStyles: SxProps = {\n \"td:nth-of-type(3)::after\": {\n content: `\"\"`,\n display: \"block\",\n margin: \"15px 0\",\n position: \"absolute\",\n right: 0,\n top: 0,\n bottom: 0,\n borderLeft: `1px solid ${theme.palette.secondary.light}`,\n },\n \":hover td:nth-of-type(3)::after\": {\n content: `\"\"`,\n display: \"block\",\n margin: \"15px 0\",\n position: \"absolute\",\n right: 0,\n top: 0,\n bottom: 0,\n borderLeft: `1px solid ${theme.palette.secondary.main}`,\n },\n};\n","import { Box, TextField as MuiTextField, TextFieldProps } from \"@mui/material\";\n\nconst Textfield = (props: TextFieldProps): JSX.Element => {\n const { children } = props;\n const element = ;\n\n if (children) {\n return (\n \n {element}\n {children}\n \n );\n }\n\n return element;\n};\n\nexport default Textfield;\n","import TextField from \"../textfield/TextField\";\n\ninterface CounterFieldProps {\n loading: boolean;\n changeCount: (newCount?: number) => void;\n count: number;\n label: string;\n}\n\nconst CounterField = (props: CounterFieldProps) => {\n const { loading, changeCount, count, label } = props;\n\n return (\n {\n changeCount(parseInt(e.target.value, 10));\n }}\n type=\"number\"\n onBlur={(e) => {\n if (e.target.value == \"\") {\n changeCount(0);\n }\n }}\n />\n );\n};\n\nexport default CounterField;\n","import { SxProps, Theme } from \"@mui/material\";\n\nexport const rootBoxStyles: SxProps = {\n display: \"flex\",\n alignItems: \"flex-end\",\n minWidth: \"190px\",\n minHeight: \"61px\",\n \"& > div\": { minWidth: \"inherit\", minHeight: \"inherit\" },\n};\n","import { useState, BaseSyntheticEvent, useEffect } from \"react\";\nimport { PickersDayProps } from \"@mui/lab/PickersDay\";\nimport DatePicker from \"@mui/lab/DatePicker\";\nimport DateRangeIcon from \"@mui/icons-material/DateRange\";\nimport TextField from \"../textfield/TextField\";\nimport { Dispatch, SetStateAction } from \"react\";\nimport { Box } from \"@mui/material\";\nimport { aepPalette } from \"../../../styles/aepPalette\";\nimport { rootBoxStyles } from \"./dateRangePickerStyles\";\nimport {\n renderWeekPickerDay,\n isValidDateString,\n reformatDateString,\n stringToDate,\n ddmmyyyyFormat,\n} from \"../../service/CustomDateService\";\n\nexport type DatePickerDate = Date | null;\ninterface DateRangePickerProps {\n dateRange: DatePickerDate[];\n setDateRange: Dispatch>;\n label: string;\n open: boolean;\n toggleDatePicker: () => void;\n}\n\nconst DateRangePicker = (props: DateRangePickerProps): JSX.Element => {\n const { dateRange, setDateRange, open, toggleDatePicker, label } = props;\n const [dateRangeString, setDateRangeString] = useState(\"\");\n const [errMsg, setErrMsg] = useState(\"\");\n\n const minDate = new Date(1900, 0, 1);\n const maxDate = new Date(2100, 0, 1);\n\n const isValidDateStringInRange = (dateString: string) =>\n isValidDateString(dateString, minDate, maxDate);\n\n useEffect(() => {\n if (dateRange.filter((val) => val).length === 0) {\n setDateRangeString(\"\");\n }\n }, [dateRange]);\n\n const validateInput = (e: BaseSyntheticEvent) => {\n const input = e.target?.value;\n if (input) {\n if (!/\\d\\d?\\.\\d\\d?\\.\\d\\d\\d\\d\\s?-\\s?\\d\\d?\\.\\d\\d?\\.\\d\\d\\d\\d/.test(input)) {\n setErrMsg(\"ungültiger Zeitraum\");\n } else {\n let startDateString = input.split(\"-\")[0].trim();\n let endDateString = input.split(\"-\")[1]?.trim();\n if (!isValidDateStringInRange(startDateString)) {\n setErrMsg(\"ungültiges Startdatum\");\n } else if (!isValidDateStringInRange(endDateString)) {\n setErrMsg(\"ungültiges Enddatum\");\n } else if (\n stringToDate(startDateString) > stringToDate(endDateString)\n ) {\n setErrMsg(\"das Enddatum muss nach dem Startdatum liegen\");\n } else {\n startDateString = reformatDateString(startDateString);\n endDateString = reformatDateString(endDateString);\n setDateRangeString(`${startDateString} - ${endDateString}`);\n setDateRange([\n stringToDate(startDateString),\n stringToDate(endDateString),\n ]);\n }\n }\n }\n };\n\n const handleStringChange = (e: BaseSyntheticEvent) => {\n let input = e.target?.value;\n let startDate: Date | null = null;\n let endDate: Date | null = null;\n\n let startDateString = input.trim();\n let endDateString = \"\";\n\n // if no input\n if (!input) {\n setDateRange([null, null]);\n }\n\n setErrMsg(\"\");\n if (/[^\\d\\s.-]/.test(input)) {\n setErrMsg(\"nur Zahlen, Punkte und Bindestrich sind erlaubt\");\n setDateRangeString(input.replaceAll(/[^\\d\\s.-]/gi, \"\"));\n return;\n }\n\n if (input.length > dateRangeString.length) {\n if (input.indexOf(\"-\") !== -1) {\n startDateString = input.split(\"-\")[0].trim();\n if (isValidDateStringInRange(startDateString)) {\n startDateString = reformatDateString(startDateString) + \" - \";\n startDate = stringToDate(startDateString);\n\n endDateString = input.split(\"-\")[1].trim();\n if (endDateString.length === 10) {\n if (isValidDateStringInRange(endDateString)) {\n endDateString = reformatDateString(endDateString);\n endDate = stringToDate(endDateString);\n } else {\n setErrMsg(\"ungültiges Enddatum\");\n }\n }\n } else {\n setErrMsg(\"ungültiges Startdatum\");\n }\n } else {\n if (\n startDateString.length === 10 ||\n input.endsWith(\"-\") ||\n input.endsWith(\" \")\n ) {\n if (isValidDateStringInRange(startDateString)) {\n startDateString = reformatDateString(startDateString) + \" - \";\n startDate = stringToDate(startDateString);\n } else {\n setErrMsg(\"ungültiges Startdatum\");\n }\n }\n }\n\n if (errMsg.length === 0) {\n setDateRangeString(startDateString + endDateString);\n if (startDate && endDate) {\n if (startDate?.getTime() > endDate?.getTime()) {\n setDateRange([startDate, null]);\n setErrMsg(\"das Enddatum muss nach dem Startdatum liegen\");\n } else {\n setDateRange([startDate, endDate]);\n }\n } else if (startDate) {\n setDateRange([startDate, null]);\n }\n }\n } else {\n if (/\\s*-\\s*$/.test(input)) {\n input = input.replaceAll(/[\\s-]/gi, \"\");\n }\n setDateRangeString(input);\n }\n };\n\n const handleDateChange = (selectedDate: Date | null): void => {\n setErrMsg(\"\");\n if (dateRange[0] && !dateRange[1] && selectedDate instanceof Date) {\n if (dateRange[0].getDay() === selectedDate.getDay()) {\n // if range is one day\n setDateRange([dateRange[0], selectedDate]);\n setDateRangeString(\n `${ddmmyyyyFormat(dateRange[0])} - ${ddmmyyyyFormat(selectedDate)}`\n );\n } else if (dateRange[0].getTime() < selectedDate.getTime()) {\n // if selected end date falls after start date, set new start date\n setDateRange([dateRange[0], selectedDate]);\n setDateRangeString(\n `${ddmmyyyyFormat(dateRange[0])} - ${ddmmyyyyFormat(selectedDate)}`\n );\n open && toggleDatePicker();\n } else {\n // set new start date\n setDateRange([selectedDate, null]);\n setDateRangeString(`${ddmmyyyyFormat(selectedDate)} - `);\n }\n } else {\n // reject invalid end date selection\n setDateRange([selectedDate, null]);\n setDateRangeString(`${ddmmyyyyFormat(selectedDate)} - `);\n }\n };\n\n return (\n \n \n \n \n ,\n pickersDayProps: PickersDayProps\n ) =>\n renderWeekPickerDay(date, selectedDates, pickersDayProps, dateRange)\n }\n renderInput={() => <>}\n showTodayButton\n clearable\n value={dateRange[0] === null ? \"\" : dateRange[0]}\n />\n \n );\n};\n\nexport default DateRangePicker;\n","import { useEffect, useState } from \"react\";\nimport { DatePicker as MuiDatePicker } from \"@mui/lab\";\nimport DateRangePicker, { DatePickerDate } from \"./DateRangePicker\";\nimport TextField from \"../textfield/TextField\";\nimport { Box } from \"@mui/material\";\n// HINT: set up parent component with following state, and pass setVal to DatePicker\n// const [val, setVal] = useState();\n\ninterface DatePickerProps {\n range?: boolean;\n setValue: React.Dispatch<\n React.SetStateAction\n >;\n label: string;\n reset?: boolean;\n}\n\nconst DatePicker = (props: DatePickerProps) => {\n const { range, setValue, label, reset } = props;\n const [dateRange, setDateRange] = useState([null, null]);\n const [date, setDate] = useState(null);\n const [isDatePickerOpen, setIsDatePickerOpen] = useState(false);\n\n const toggleDatePicker = (): void => setIsDatePickerOpen(!isDatePickerOpen);\n\n useEffect(() => {\n range ? setValue(dateRange) : setValue(date as Date);\n }, [dateRange, date]);\n\n useEffect(() => {\n if (reset) {\n setDateRange([null, null]);\n }\n }, [reset]);\n\n return (\n \n {range ? (\n \n ) : (\n {\n setDate(newValue);\n toggleDatePicker();\n }}\n InputAdornmentProps={{\n onClick: toggleDatePicker,\n }}\n open={isDatePickerOpen}\n renderInput={(params) => }\n value={date}\n />\n )}\n \n );\n};\n\nexport default DatePicker;\n","import { Chip } from \"@mui/material\";\nimport React, { useState } from \"react\";\nimport TextField from \"./TextField\";\n\ninterface ChipsFieldProps {\n searchTerms: string[];\n setValues: React.Dispatch>;\n setCurrentValue: React.Dispatch>;\n currentValue: string;\n label: string;\n submitForm: (() => Promise) & (() => Promise);\n}\n\nconst ChipsField = (props: ChipsFieldProps): JSX.Element => {\n const { searchTerms, setValues, setCurrentValue, currentValue, label } = props;\n\n const handleChange = (event: React.ChangeEvent) => {\n setCurrentValue(event.target.value)\n };\n\n const handleDelete = (event: any) => {\n const valueToRemove =\n event?.target?.parentElement?.innerText ||\n event?.target?.parentElement?.parentElement?.innerText ||\n \"\";\n\n setValues((prevState) => [\n ...prevState.filter((val) => val !== valueToRemove),\n ]);\n };\n\n const handleDeleteLastTerm = () => {\n setValues((prevState) => [\n ...prevState.filter((val, index) => index !== searchTerms.length - 1),\n ]);\n };\n\n const handleAdd = (newValue: string) => {\n if (newValue) {\n setValues((prevState) => [...prevState, newValue]);\n setCurrentValue(\"\");\n }\n };\n\n return (\n {\n if (e.key === \"Enter\") {\n e.preventDefault();\n handleAdd(currentValue);\n }\n if (e.key === \"Backspace\" && currentValue === \"\") {\n e.preventDefault();\n handleDeleteLastTerm();\n }\n }}\n label={label}\n inputProps={{ style: { width: \"auto\" } }}\n InputProps={{\n sx: {\n position: \"relative\",\n flexFlow: \"row wrap\",\n },\n startAdornment:\n searchTerms.length > 0\n ? searchTerms?.map((term, index) => (\n \n ))\n : null,\n }}\n onChange={handleChange}\n value={currentValue}\n sx={{ width: \"100%\", mb: 1 }}\n />\n );\n};\n\nexport default ChipsField;\n","import { SxProps, Theme } from \"@mui/material/styles\";\nimport { aepPalette } from \"../../../../styles/aepPalette\";\n\nexport const searchFieldStyles: SxProps = {\n maxWidth: \"190px\",\n};\n\nexport const textFieldStyles: SxProps = {\n fontSize: \"1.3rem\",\n lineHeight: \"1.35rem\",\n ...searchFieldStyles,\n};\n\nexport const dropDownStyles: SxProps = {\n ...searchFieldStyles,\n};\n\nexport const cardStyles: SxProps = {\n paddingLeft: \"4.8%\",\n paddingRight: \"4.8%\",\n py: 3,\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"center\",\n};\n\nexport const cardInnerBoxStyles: SxProps = {\n width: \"inherit\",\n display: \"flex\",\n position: \"relative\",\n};\n\nexport const searchIconStyles: SxProps = {\n color: \"secondary.lighter\",\n fontSize: \"2rem\",\n paddingRight: \"0.5rem\",\n};\n\nexport const clearIconStyles: SxProps = {\n color: \"secondary.lighter\",\n fontSize: \"2rem\",\n paddingRight: \"0.5rem\",\n};\n\nexport const buttonStyles: SxProps = {\n mt: 1.5,\n ml: 2,\n right: 0,\n};\n\nexport const buttonSecondaryStyles: SxProps = {\n backgroundColor: aepPalette.base.main,\n border: `1px solid ${aepPalette.base.main}`,\n mt: 1.5,\n ml: 1,\n pl: 3.2,\n pr: 3.2,\n};\n\nexport const searchFieldBoxStyles = (\n numberOfSearchFields: number,\n overrides?: SxProps\n): SxProps => ({\n width: \"100%\",\n display: \"grid\",\n gridTemplateColumns: `repeat(${\n numberOfSearchFields > 4 ? 4 : numberOfSearchFields\n }, 1fr)`,\n gridTemplateRows: numberOfSearchFields > 4 ? \"50% 50%\" : \"100%\",\n columnGap: 2,\n ...overrides,\n});\n","import { Box } from \"@mui/material\";\nimport { aepPalette } from \"../../../../styles/aepPalette\";\n\ninterface FilterTabProps {\n setValue: React.Dispatch>;\n label: string;\n value: string;\n selected?: boolean;\n}\n\nconst FilterTab = (props: FilterTabProps) => {\n const { label, setValue, selected, value } = props;\n\n return (\n {\n setValue(value);\n }}\n sx={{\n px: 1.5,\n py: 1,\n mx: 1,\n border: `1px solid ${aepPalette.secondary.main}`,\n borderRadius: \"8px\",\n color: selected ? aepPalette.common.white : aepPalette.secondary.main,\n backgroundColor: selected ? aepPalette.secondary.main : \"\",\n cursor: \"pointer\",\n }}\n >\n {label}\n \n );\n};\n\nexport default FilterTab;\n","import { Box } from \"@mui/material\";\nimport FilterTab from \"./FilterTab\";\nimport { TableFilterMenuItem } from \"./models\";\n\ninterface FilterTabsFieldProps {\n setValue: React.Dispatch>;\n label: string;\n menuItems?: TableFilterMenuItem[];\n selectedTab: string;\n}\n\nconst FilterTabsField = (props: FilterTabsFieldProps) => {\n const { setValue, menuItems, selectedTab } = props;\n\n return (\n \n {menuItems?.map((item, index) => (\n \n ))}\n \n );\n};\n\nexport default FilterTabsField;\n","import {\n Box,\n Button,\n FormControl,\n InputLabel,\n MenuItem,\n Select,\n TextField,\n Typography,\n} from \"@mui/material\";\nimport { Formik, FormikErrors, FormikValues } from \"formik\";\nimport { useState, useEffect, useContext } from \"react\";\nimport { aepPalette } from \"../../../../styles/aepPalette\";\nimport CustomerContext from \"../../../contexts/CustomerContext\";\nimport { extractDatesFromPeriod } from \"../../../service/CustomDateService\";\nimport Card from \"../../card/Card\";\nimport DatePicker from \"../../datepicker/DatePicker\";\nimport { DatePickerDate } from \"../../datepicker/DateRangePicker\";\nimport SearchIcon from \"../../icons/SearchIcon\";\nimport ClearIcon from \"@mui/icons-material/Clear\";\nimport ChipsField from \"../../textfield/ChipsField\";\nimport {\n searchIconStyles,\n buttonStyles,\n cardStyles,\n cardInnerBoxStyles,\n textFieldStyles,\n dropDownStyles,\n searchFieldBoxStyles,\n buttonSecondaryStyles,\n clearIconStyles,\n} from \"./filterStyles\";\nimport FilterTabsField from \"./FilterTabsField\";\nimport {\n TableFilterProps,\n TableFilterType,\n TableFilterSearchField,\n TableFilterMenuItem,\n} from \"./models\";\n\nconst TableFilter = (props: TableFilterProps) => {\n const {\n initialValues,\n onSubmit,\n resetSearchParameters,\n searchFields,\n handleResetRows,\n triggerSubmit,\n handleResetFilter,\n } = props;\n const { customerNumber } = useContext(CustomerContext);\n\n const [dateRange, setDateRange] = useState<\n Date | DatePickerDate[] | undefined\n >();\n const [resetChildren, setResetChildren] = useState(false);\n const [selectedTab, setSelectedTab] = useState(\"\");\n const [searchTerms, setSearchTerms] = useState([]);\n const [currentsearchTerm, setCurrentSearchTerm] = useState(\"\");\n const [initialLoadComplete, setInitialLoadComplete] =\n useState(false);\n\n const hasChips =\n searchFields.filter((item) => item.type === TableFilterType.chips).length >\n 0;\n const hasDateRange =\n searchFields.filter((item) => item.type === TableFilterType.dateRange)\n .length > 0;\n const hasTabs =\n searchFields.filter((item) => item.type === TableFilterType.tabs).length >\n 0;\n\n const triggerResetChildren = () => {\n if (!resetChildren) {\n setResetChildren(true);\n setTimeout(() => setResetChildren(false), 1000);\n }\n };\n\n const submitPageSearch = (\n values: FormikValues,\n setSubmitting: (isSubmitting: boolean) => void,\n loadMore = false\n ) => {\n if (hasDateRange) {\n values.fromDate = extractDatesFromPeriod(dateRange).fromDate || \"\";\n values.toDate = extractDatesFromPeriod(dateRange).toDate || \"\";\n }\n if (hasTabs) {\n values.selectedTab = selectedTab;\n }\n if (hasChips) {\n values.searchTerms = searchTerms;\n\n if (currentsearchTerm) {\n values.searchTerms.push(currentsearchTerm);\n setCurrentSearchTerm(\"\");\n }\n }\n\n onSubmit(loadMore, { ...values });\n\n if (handleResetRows) handleResetRows();\n\n setTimeout(() => setSubmitting(false), 300);\n };\n\n useEffect(() => {\n setInitialLoadComplete(true);\n }, []);\n\n return (\n {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const errors: FormikErrors = {};\n\n searchFields.forEach((searchField) => {\n const validationFunction = searchField.validate;\n\n if (validationFunction) {\n if (!validationFunction(values[searchField.name])) {\n errors[searchField.name] = searchField.errorMessage;\n }\n }\n });\n\n return errors;\n }}\n onSubmit={(values, { setSubmitting }) => {\n submitPageSearch(values, setSubmitting);\n }}\n >\n {({\n values,\n errors,\n touched,\n handleChange,\n handleBlur,\n handleReset,\n handleSubmit,\n isSubmitting,\n setSubmitting,\n submitForm,\n }) => {\n const renderSearchField = (item: TableFilterSearchField, i: number) => {\n if (item.type === TableFilterType.chips) {\n return (\n \n );\n }\n\n if (item.type === TableFilterType.textfield) {\n return (\n \n );\n }\n\n if (item.type === TableFilterType.dropdown) {\n return (\n \n \n {item.label}\n \n \n {item.menuItems?.map((menuItem: TableFilterMenuItem) => (\n \n {menuItem.label}\n \n ))}\n \n {errors[item.name] && (\n \n {errors[item.name]}\n \n )}\n \n );\n }\n\n if (item.type === TableFilterType.dateRange) {\n return (\n \n );\n }\n\n if (item.type === TableFilterType.tabs) {\n return (\n \n );\n }\n };\n\n const handleResetAll = () => {\n handleReset();\n setDateRange(undefined);\n setSelectedTab(\"\");\n setCurrentSearchTerm(\"\");\n setSearchTerms([]);\n triggerResetChildren();\n handleResetFilter();\n };\n\n // reset effect, resets controlled and uncontrolled (date range) search parameters\n useEffect(() => {\n handleResetAll();\n }, [customerNumber]);\n\n // submit form on tab change to refresh filters\n useEffect(() => {\n if (hasTabs && initialLoadComplete) submitForm();\n }, [selectedTab]);\n\n // submit form on terms change\n useEffect(() => {\n if (hasChips && initialLoadComplete) submitForm();\n }, [searchTerms]);\n\n // submit form on page change to persist search parameters\n useEffect(() => {\n if (triggerSubmit && initialLoadComplete)\n submitPageSearch(values, setSubmitting, true);\n }, [triggerSubmit]);\n\n const searchFieldsInCardArea = searchFields.filter(\n (item) => item.type !== \"tabs\"\n );\n\n return (\n
\n \n 2\n ? \"center\"\n : \"space-between\",\n }}\n sx={cardStyles}\n >\n \n {searchFields\n .filter((item) => item.type !== \"tabs\")\n .map((item, i) => {\n return renderSearchField(item, i);\n })}\n \n \n }\n sx={buttonStyles}\n >\n Suchen\n \n span:first-of-type\": {\n mr: 0,\n },\n }}\n startIcon={\n \n }\n onClick={handleResetAll}\n >\n Löschen\n \n \n {searchFields\n .filter((item) => item.type === \"tabs\")\n .map((item, i) => {\n return renderSearchField(item, i);\n })}\n \n \n );\n }}\n \n );\n};\n\nexport default TableFilter;\n","import {\n Table,\n TableHead,\n TableBody,\n TableRow,\n TableCell,\n Checkbox,\n} from \"@mui/material\";\nimport { OrderNotePositionDto } from \"../../../../api\";\nimport { CustomTableProps } from \"../../../components/table/TableContainer\";\nimport OrderPositionsTableRow from \"./OrderPositionsTableRow\";\nimport PositionsRowCommonHeader from \"./PositionsRowCommonHeader\";\n\ninterface OrderPositionsTableProps extends CustomTableProps {\n positions?: OrderNotePositionDto[];\n loading?: boolean;\n}\n\nexport enum OrderPositionStatus {\n OPEN = \"Auftrag angenommen\",\n OPEN_NUMBER = 20,\n IN_PRODUCTION = \"In produktion\",\n}\n\nconst OrderPositionsTable = (props: OrderPositionsTableProps) => {\n const {\n positions,\n allSelected,\n isSelected,\n handleSelectRow,\n handleSelectAll,\n } = props;\n\n const positionIds = positions?.map((position) => position.positionId);\n\n const handleSelectAllPositionsInOrder = () => {\n if (handleSelectAll && positionIds) {\n handleSelectAll(positionIds);\n }\n };\n\n const handleCheckedStatus = () => {\n if (allSelected && positionIds) {\n return allSelected(positionIds);\n } else {\n return false;\n }\n };\n\n const openPositions = positions?.filter(\n (position) =>\n position.stateNumber != undefined &&\n position.stateNumber <= OrderPositionStatus.OPEN_NUMBER\n );\n const showSelectAll = openPositions ? openPositions.length > 0 : false;\n\n return (\n \n \n \n \n {showSelectAll && (\n \n )}\n \n \n \n \n \n {positions?.map((positionData, index) => {\n return (\n \n );\n })}\n \n
\n );\n};\n\nexport default OrderPositionsTable;\n","import { Box, CircularProgress } from \"@mui/material\";\nimport RefreshIcon from \"@mui/icons-material/Refresh\";\nimport { aepPalette } from \"../../../styles/aepPalette\";\n\ninterface TableLoadMoreRowProps {\n loading: boolean;\n loadCallback: () => void;\n hide: boolean;\n}\n\nconst TableLoadMoreRow = (props: TableLoadMoreRowProps): JSX.Element => {\n const { loading, loadCallback, hide } = props;\n\n if (hide) {\n return <>;\n }\n\n return (\n \n {loading ? (\n \n ) : (\n \n )}\n \n );\n};\n\nexport default TableLoadMoreRow;\n","import { SxProps, Theme } from \"@mui/material\";\nimport { CSSProperties } from \"react\";\nimport { aepPalette } from \"../../../styles/aepPalette\";\n\nexport const limitedRowStyles: CSSProperties = {\n maxWidth: \"90px\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n};\n\nexport const rootContainerStackStyles: SxProps = {\n flexDirection: \"row\",\n justifyContent: \"flex-end\",\n alignItems: \"center\",\n};\n\nexport const submitButtonStyles: SxProps = {\n justifySelf: \"flex-end\",\n position: \"relative\",\n};\n\nexport const containerCardStyles: SxProps = {\n flexGrow: 1,\n mt: 2,\n overflow: \"auto\",\n position: \"relative\",\n backgroundColor: aepPalette.common.white,\n};\n\nexport const containerCardBoxStyles = (\n fullSizeRows?: boolean,\n hasDetailViewSwitch?: boolean\n): SxProps => ({\n // access nested table rows in accordion tables\n \"& > table > tbody > tr > td > div > div > div > div > div > div > table > tbody > tr > td\":\n {\n height: fullSizeRows && !hasDetailViewSwitch ? 60 : 40,\n transition: \"height 0.3s\",\n },\n // change all table cells density from parent\n \"& > table > tbody > tr > td\": {\n paddingTop: \"5px\",\n paddingBottom: \"5px\",\n transition: \"height 0.3s\",\n \"& > p\": fullSizeRows && hasDetailViewSwitch ? {} : limitedRowStyles,\n },\n // eliminate double border on last row\n \"& > table > tbody > tr\": {\n \"&:last-child > td\": {\n border: \"0px\",\n },\n },\n overflowX: \"auto\",\n});\n\nexport const containerControlStackStyles = (\n selectableRows?: boolean,\n hasDetailViewSwitch?: boolean\n): SxProps => ({\n mt: 2,\n width: \"100%\",\n justifyContent:\n selectableRows && hasDetailViewSwitch\n ? \"space-between\"\n : hasDetailViewSwitch\n ? \"flex-start\"\n : \"flex-end\",\n alignItems: \"center\",\n});\n","import {\n Button,\n Stack,\n TableContainerProps as MuiTableContainerProps,\n Typography,\n FormControlLabel,\n Switch,\n Box,\n} from \"@mui/material\";\nimport { FormikValues } from \"formik\";\nimport { useEffect, useContext, useRef, useState } from \"react\";\nimport CustomerContext from \"../../contexts/CustomerContext\";\nimport Card from \"../card/Card\";\nimport CenteredTextMessage from \"../other/CenteredTextMessage\";\nimport CounterField from \"../textfield/CounterField\";\nimport { TableFilterSearchField } from \"./tableFilter/models\";\nimport TableFilter from \"./tableFilter/TableFilter\";\nimport TableLoadMoreRow from \"./TableLoadMoreRow\";\nimport {\n containerCardStyles,\n rootContainerStackStyles,\n submitButtonStyles,\n containerCardBoxStyles,\n containerControlStackStyles,\n} from \"./tableStyles\";\n\nexport interface CustomTableProps {\n allSelected?: (ids: string[]) => boolean;\n handleSelectAll?: (ids: string[]) => void;\n handleSelectRow: (id: string) => void;\n isSelected: (id: string) => boolean;\n transitionDelay?: number;\n}\n\nexport const tablePageDefaultLength = 16;\n\ninterface TableContainerProps extends MuiTableContainerProps {\n buttonAction?: (stateValue: unknown[]) => void;\n buttonText?: string;\n fullSizeRowsInit?: boolean;\n hasButtonCounter?: boolean;\n hasDetailViewSwitch?: boolean;\n liftStateToParent?: React.Dispatch>;\n loadCallback: (loadMore: boolean, searchParams?: FormikValues) => void;\n loading: boolean;\n noData?: boolean;\n noDataMessage?: string;\n noInitialApiCall?: boolean;\n pageable?: boolean;\n preselectedRows?: string[];\n selectableRows?: boolean;\n Table: (props: CustomTableProps) => JSX.Element;\n tableFilterProps?: {\n initialValues: FormikValues;\n searchFields: TableFilterSearchField[];\n loadCallbackOverride?: any;\n };\n}\n\nconst TableContainer = (props: TableContainerProps) => {\n const {\n buttonAction,\n buttonText,\n fullSizeRowsInit,\n hasButtonCounter,\n hasDetailViewSwitch,\n liftStateToParent,\n loadCallback,\n loading,\n noData,\n noDataMessage,\n noInitialApiCall,\n pageable,\n preselectedRows,\n selectableRows,\n sx,\n Table,\n tableFilterProps,\n } = props;\n const [loadMore, setLoadMore] = useState(false);\n const [loadMoreLocked, setLoadMoreLocked] = useState(false);\n const [fullSizeRows, setfullSizeRows] = useState(\n fullSizeRowsInit || false\n );\n\n const [initialLoadingComplete, setInitialLoadingComplete] =\n useState(false);\n const [resetSearchParameters, setResetSearchParameters] =\n useState(false);\n const [selectedRows, setSelectedRows] = useState(\n preselectedRows || []\n );\n const { customerNumber } = useContext(CustomerContext);\n const tableRef = useRef(null);\n const [count, setCount] = useState(0);\n\n const changeCount = (newCount?: number) => {\n setCount(newCount || 0);\n };\n\n const throttleLoadMore = () => {\n if (loadMore === false) {\n setLoadMore(true);\n }\n };\n\n const preventLoadMore = () => {\n setLoadMoreLocked(true);\n setTimeout(() => setLoadMoreLocked(false), 500);\n };\n\n const handleChangeDense = (event: React.ChangeEvent) => {\n preventLoadMore();\n setfullSizeRows(event.target.checked);\n };\n\n const handleResetFilter = () => {\n setResetSearchParameters(true);\n setTimeout(() => setResetSearchParameters(false), 300);\n };\n\n const handleResetRows = () => {\n setSelectedRows([]);\n };\n\n const handleLoadMore = (e: Event): void => {\n const tableEl: unknown = e.target;\n\n const reachedBottom =\n (tableEl as HTMLElement).scrollTop ===\n (tableEl as HTMLElement).scrollHeight -\n (tableEl as HTMLElement).offsetHeight +\n 2;\n\n if (!loadMoreLocked && !loading && reachedBottom) {\n throttleLoadMore();\n }\n };\n\n const handleSelectRow = (id: string) => {\n const selectedIndex = selectedRows.indexOf(id);\n let newSelected: string[] = [];\n\n if (selectedIndex === -1) {\n newSelected = newSelected.concat(selectedRows, id);\n } else {\n newSelected = selectedRows.filter((data, idx) => idx != selectedIndex);\n }\n\n setSelectedRows(newSelected);\n };\n\n const handleSelectAll = (rowIds: string[]) => {\n const rowsAlreadyInSelection = rowIds?.filter((rowId) =>\n selectedRows.includes(rowId)\n );\n const rowsToAdd: string[] = [];\n\n for (let i = 0; i < rowIds?.length; i++) {\n if (!rowsAlreadyInSelection?.includes(rowIds[i])) {\n rowsToAdd.push(rowIds[i]);\n }\n }\n\n const containsAll = rowsToAdd.every((row) => {\n return selectedRows.includes(row);\n });\n\n if (containsAll) {\n // deselect all rows\n setSelectedRows((prevState) => [\n ...prevState.filter((row) => !rowIds.includes(row)),\n ]);\n } else {\n setSelectedRows((prevState) => [...prevState, ...rowsToAdd]);\n }\n };\n\n const isSelected = (id: string) => selectedRows.includes(id);\n const allSelected = (ids: string[]): boolean =>\n ids.filter((id) => selectedRows.includes(id)).length === ids.length;\n\n useEffect(() => {\n // TODO There needs to be a better way to achieve this\n // but if we only blindly apply setSelectedRows(preselectedRows || [])\n // this part gets into an infinite loop\n let changed = false;\n for (let i = 0; i < selectedRows.length; i++) {\n if (!(preselectedRows || []).some((p) => p === selectedRows[i])) {\n changed = true;\n }\n }\n for (let i = 0; i < (preselectedRows || []).length; i++) {\n if (!(selectedRows || []).some((p) => p === (preselectedRows || [])[i])) {\n changed = true;\n }\n }\n if (changed) {\n setSelectedRows(preselectedRows || []);\n }\n }, [preselectedRows]);\n\n useEffect(() => {\n let isApiSubscribed = true;\n\n setSelectedRows([]);\n // initial load\n !noInitialApiCall && loadCallback(false);\n\n if (isApiSubscribed && customerNumber) {\n if (pageable) {\n tableRef.current?.addEventListener(\"scroll\", handleLoadMore);\n }\n setInitialLoadingComplete(true);\n }\n\n return () => {\n isApiSubscribed = false;\n tableRef.current?.removeEventListener(\"scroll\", handleLoadMore);\n };\n }, [customerNumber]);\n\n useEffect(() => {\n if (loadMore) {\n setLoadMore(false);\n }\n }, [loadMore]);\n\n useEffect(() => {\n if (liftStateToParent) liftStateToParent(selectedRows);\n }, [selectedRows]);\n\n const renderButton = (counter?: boolean) => {\n if (buttonText && buttonAction) {\n return counter && changeCount ? (\n \n \n buttonAction([count])}\n sx={{\n ml: 2,\n ...submitButtonStyles,\n }}\n >\n {buttonText}\n \n \n ) : (\n buttonAction(selectedRows)}\n sx={submitButtonStyles}\n >\n \n {buttonText +\n ` ${selectableRows ? `(${selectedRows.length})` : \"\"}`}\n \n \n );\n }\n };\n\n return (\n \n {tableFilterProps && (\n \n )}\n \n \n {Table({\n allSelected,\n handleSelectAll,\n handleSelectRow,\n isSelected,\n })}\n {noData && !loading ? (\n \n \n \n ) : (\n <>\n )}\n {pageable && !noData ? (\n \n ) : (\n <>\n )}\n \n \n \n {hasDetailViewSwitch && (\n \n }\n label=\"Zeilen erweitern\"\n />\n )}\n {renderButton(hasButtonCounter)}\n \n \n );\n};\n\nexport default TableContainer;\n","import { Table, TableBody, Typography, Box } from \"@mui/material\";\nimport { aepPalette } from \"../../../styles/aepPalette\";\n\nexport interface TableAccordionWrapperProps {\n children: JSX.Element[];\n tableHeader: string;\n}\n\nconst TableAccordionWrapper = (props: TableAccordionWrapperProps) => {\n const { children, tableHeader } = props;\n\n return (\n <>\n \n {tableHeader}\n \n\n \n {children}\n
\n \n );\n};\n\nexport default TableAccordionWrapper;\n","import { SxProps, TableRow, Theme } from \"@mui/material\";\nimport { useEffect, useState } from \"react\";\n\ninterface AnimatedTableRowProps {\n children: JSX.Element | JSX.Element[];\n transitionDelay?: number;\n sx?: SxProps;\n}\n\nconst AnimatedTableRow = (props: AnimatedTableRowProps) => {\n const { children, transitionDelay, sx } = props;\n\n const [render, setRender] = useState(false);\n\n useEffect(() => {\n setTimeout(() => setRender(true), 0);\n }, []);\n\n return (\n \n {children}\n \n );\n};\n\nexport default AnimatedTableRow;\n","import {\n Accordion,\n AccordionDetails,\n AccordionSummary,\n SxProps,\n Typography,\n Theme,\n} from \"@mui/material\";\nimport AnimatedTableRow from \"./AnimatedTableRow\";\n\ninterface TableAccordionRowProps {\n header: string;\n children: JSX.Element;\n expanded?: boolean;\n handleExpansion?: (event: React.SyntheticEvent, expanded: boolean) => void;\n transitionDelay?: number;\n sx?: SxProps;\n}\n\nconst TableAccordionRow = (props: TableAccordionRowProps) => {\n const { children, expanded, handleExpansion, header, transitionDelay, sx } =\n props;\n\n return (\n \n \n \n \n \n {header}\n \n \n \n {children}\n \n \n \n \n );\n};\n\nexport default TableAccordionRow;\n","import { TableRow, TableCell, Checkbox, Typography } from \"@mui/material\";\nimport { OrderNotePositionDto } from \"../../../../api\";\nimport { OrderPositionStatus } from \"./OrderPositionsTable\";\n\ninterface OrderPositionsTableRowProps {\n positionData: OrderNotePositionDto;\n loading?: boolean;\n isSelected: boolean;\n handleSelectRow: (id: string) => void;\n}\n\nconst OrderPositionsTableRow = (props: OrderPositionsTableRowProps) => {\n const { positionData, handleSelectRow, isSelected } = props;\n const positionId = positionData.positionId;\n\n return (\n \n \n {positionData.stateNumber != undefined &&\n positionData.stateNumber <= OrderPositionStatus.OPEN_NUMBER && (\n handleSelectRow(positionId)}\n checked={isSelected}\n />\n )}\n \n \n {positionData.pzn}\n \n \n {positionData.quantity}\n \n \n {positionData.articleName}\n \n \n {positionData.state}\n \n \n );\n};\n\nexport default OrderPositionsTableRow;\n","import { TableCell, Typography } from \"@mui/material\";\n\nconst PositionsRowCommonHeader = () => {\n return (\n <>\n \n PZN\n \n \n Menge\n \n \n Artikelbezeichnung\n \n \n Status\n \n \n );\n};\n\nexport default PositionsRowCommonHeader;\n","import { Table, TableHead, TableBody, TableRow } from \"@mui/material\";\nimport { CancellationPositionDto } from \"../../../../api\";\nimport { CustomTableProps } from \"../../../components/table/TableContainer\";\nimport CancellationPositionsTableRow from \"./CancellationPositionsTableRow\";\nimport PositionsRowCommonHeader from \"./PositionsRowCommonHeader\";\n\ninterface CancellationPositionsTableProps extends CustomTableProps {\n positions?: CancellationPositionDto[];\n}\n\nexport enum CancellationPositionStatus {\n OPEN = \"Auftrag angenommen\",\n IN_PRODUCTION = \"In produktion\",\n}\n\nconst CancellationPositionsTable = (props: CancellationPositionsTableProps) => {\n const { positions } = props;\n\n return (\n \n \n th\": {\n pl: 4,\n },\n }}\n >\n \n \n \n \n {positions?.map((positionData, index) => {\n return (\n \n );\n })}\n \n
\n );\n};\n\nexport default CancellationPositionsTable;\n","import { useContext, useState } from \"react\";\nimport ApiWrapper from \"../../../wrappers/ApiWrapper\";\nimport TableContainer, {\n tablePageDefaultLength,\n} from \"../../../components/table/TableContainer\";\nimport SnackbarContext from \"../../../contexts/SnackbarContext\";\nimport CustomerContext from \"../../../contexts/CustomerContext\";\nimport { CancelDto, OrderDto, OrderNotePositionDto } from \"../../../../api\";\nimport TableAccordionWrapper from \"../../../components/table/TableAccordionWrapper\";\nimport TableAccordionRow from \"../../../components/table/TableAccordionRow\";\nimport OrderPositionsTable from \"../positions/OrderPositionsTable\";\nimport { utcToGermanDateString } from \"../../../service/CustomDateService\";\nimport { TableFilterType } from \"../../../components/table/tableFilter/models\";\n\nconst DailyOrdersSearchContainer = () => {\n const [loading, setLoading] = useState(false);\n const [orders, setOrders] = useState([]);\n const [shownOrders, setShownOrders] = useState([]);\n const [selectedOrderPositions, setSelectedOrderPositions] = useState<\n string[]\n >([]);\n\n const { handleHttpError, handleCancelOrderPositions } =\n useContext(SnackbarContext);\n const { customerNumber } = useContext(CustomerContext);\n\n const api = new ApiWrapper().ordersControllerApi();\n\n interface OrderSearchFormikValues {\n pzn?: string;\n }\n\n const initialValues: OrderSearchFormikValues = {\n pzn: \"\",\n };\n\n const sortByPZN = (\n loadMore: boolean,\n searchParams?: OrderSearchFormikValues\n ) => {\n if (\n typeof searchParams !== \"undefined\" &&\n typeof searchParams.pzn !== \"undefined\" &&\n searchParams.pzn.length > 0\n ) {\n const filterPzn =\n (searchPzn: string) => (orderNotePosition: OrderNotePositionDto) =>\n orderNotePosition.pzn === searchPzn;\n const newShownOrders: OrderDto[] = orders\n .filter((order) =>\n order.orderNotePositions?.some(filterPzn(searchParams.pzn || \"\"))\n )\n .map((order) => ({\n ...order,\n orderNotePositions: order.orderNotePositions?.filter(\n filterPzn(searchParams.pzn || \"\")\n ),\n }));\n setShownOrders(newShownOrders);\n } else {\n setShownOrders(orders);\n }\n };\n\n const loadOrders = (\n // no load more, all orders are loaded on initialization\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _loadMore = false,\n searchParams?: OrderSearchFormikValues\n ): void => {\n if (customerNumber && !loading) {\n setLoading(true);\n\n api\n .getAllOrders(\n customerNumber,\n 0,\n 100,\n true,\n searchParams?.pzn || undefined\n )\n .then((res) => {\n setOrders(res.data);\n setShownOrders(res.data);\n })\n .catch((e) => handleHttpError(e))\n .finally(() => setLoading(false));\n }\n };\n\n const generateCancelDtoObjects = (): CancelDto[] => {\n const orderIds = selectedOrderPositions.map(\n (orderPosition) => orderPosition.split(\"-\")[0]\n );\n\n const selectedOrdersData = orders.filter((order) =>\n orderIds.includes(order.orderNoteId)\n );\n\n const ordersToCancel: CancelDto[] = [];\n\n selectedOrdersData.forEach((orderData) => {\n orderData.orderNotePositions?.forEach((orderPosition) => {\n const cancelDtoObj = {\n orderId: orderPosition.positionId.split(\"-\")[0],\n orderPosition: orderPosition.positionId,\n pzn: orderPosition.pzn,\n };\n\n if (selectedOrderPositions.includes(cancelDtoObj.orderPosition)) {\n ordersToCancel.push(cancelDtoObj);\n }\n });\n });\n\n return ordersToCancel;\n };\n\n const onCancelSuccess = () => {\n setSelectedOrderPositions([]);\n setLoading(false);\n };\n\n const cancelOrderPositions = (): void => {\n if (customerNumber && !loading) {\n setLoading(true);\n const orderCancelDtos = generateCancelDtoObjects();\n\n api\n .cancelOrderPositions(customerNumber, orderCancelDtos)\n .then((res) => {\n // 200 always returned, even for errors\n // if the data array is empty, there are no errors\n handleCancelOrderPositions(\n orderCancelDtos,\n res.data,\n onCancelSuccess\n );\n })\n .catch(handleHttpError)\n .finally(() => {\n loadOrders(false);\n });\n }\n };\n\n return (\n (\n \n {shownOrders.map((order, index) => {\n return (\n \n void}\n positions={order.orderNotePositions}\n />\n \n );\n })}\n \n )}\n selectableRows\n />\n );\n};\n\nexport default DailyOrdersSearchContainer;\n","import { TableRow, TableCell, Typography } from \"@mui/material\";\nimport { CancellationPositionDto } from \"../../../../api\";\n\ninterface CancellationPositionsTableRowProps {\n positionData: CancellationPositionDto;\n loading?: boolean;\n}\n\nconst CancellationPositionsTableRow = (\n props: CancellationPositionsTableRowProps\n) => {\n const { positionData } = props;\n\n return (\n td\": {\n pl: 4,\n },\n }}\n >\n \n {positionData.pzn}\n \n \n {positionData.quantity}\n \n \n {positionData.articleName}\n \n \n {positionData.state}\n \n \n );\n};\n\nexport default CancellationPositionsTableRow;\n","import {\n Table,\n TableHead,\n TableBody,\n TableRow,\n TableCell,\n Checkbox,\n} from \"@mui/material\";\nimport { DispensationPositionDto } from \"../../../../api\";\nimport DispensationPositionsTableRow from \"./DispensationPositionsTableRow\";\nimport { CustomTableProps } from \"../../../components/table/TableContainer\";\nimport PositionsRowCommonHeader from \"./PositionsRowCommonHeader\";\n\ninterface DispensationPositionsTableProps extends CustomTableProps {\n positions?: DispensationPositionDto[];\n}\n\nexport enum OrderPositionStatus {\n OPEN = \"Auftrag angenommen\",\n IN_PRODUCTION = \"In produktion\",\n}\n\nconst DispensationPositionsTable = (props: DispensationPositionsTableProps) => {\n const {\n positions,\n isSelected,\n allSelected,\n handleSelectRow,\n handleSelectAll,\n } = props;\n\n const positionIds = positions?.map((position) => position.positionId);\n\n const handleSelectAllPositionsInDispensation = () => {\n if (handleSelectAll && positionIds) handleSelectAll(positionIds);\n };\n\n const handleCheckedStatus = () => {\n if (allSelected && positionIds) {\n return allSelected(positionIds);\n } else {\n return false;\n }\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n {positions?.map((positionData, index) => {\n return (\n \n );\n })}\n \n
\n );\n};\n\nexport default DispensationPositionsTable;\n","import { useContext, useState } from \"react\";\nimport ApiWrapper from \"../../../wrappers/ApiWrapper\";\nimport TableContainer from \"../../../components/table/TableContainer\";\nimport SnackbarContext from \"../../../contexts/SnackbarContext\";\nimport { TableFilterType } from \"../../../components/table/tableFilter/models\";\nimport CustomerContext from \"../../../contexts/CustomerContext\";\nimport { CancellationDto, CancellationPositionDto } from \"../../../../api\";\nimport TableAccordionWrapper from \"../../../components/table/TableAccordionWrapper\";\nimport TableAccordionRow from \"../../../components/table/TableAccordionRow\";\nimport CancellationPositionsTable from \"../positions/CancellationPositionsTable\";\nimport { utcToGermanDateString } from \"../../../service/CustomDateService\";\n\nconst CancellationsSearchContainer = () => {\n const [loading, setLoading] = useState(false);\n const [cancellations, setCancellations] = useState([]);\n const [shownCancellations, setShownCancellations] = useState<\n CancellationDto[]\n >([]);\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const [selectedCancellationPositions, setSelectedCancellationPositions] =\n useState([]);\n\n const { handleHttpError } = useContext(SnackbarContext);\n const { customerNumber } = useContext(CustomerContext);\n\n const api = new ApiWrapper().cancellationsControllerApi();\n\n interface CancellationSearchFormikValues {\n pzn?: string;\n }\n\n const initialValues: CancellationSearchFormikValues = {\n pzn: \"\",\n };\n\n const sortByPZN = (\n loadMore: boolean,\n searchParams?: CancellationSearchFormikValues\n ) => {\n if (\n typeof searchParams !== \"undefined\" &&\n typeof searchParams.pzn !== \"undefined\" &&\n searchParams.pzn.length > 0\n ) {\n const filterPzn =\n (searchPzn: string) =>\n (cancellationPosition: CancellationPositionDto) =>\n cancellationPosition.pzn === searchPzn;\n const newShownCancellations: CancellationDto[] = cancellations\n .filter((cancellation) =>\n cancellation.cancellationPositions?.some(\n filterPzn(searchParams.pzn as string)\n )\n )\n .map((cancellation) => ({\n ...cancellation,\n cancellationPositions: cancellation.cancellationPositions?.filter(\n filterPzn(searchParams.pzn as string)\n ),\n }));\n setShownCancellations(newShownCancellations);\n } else {\n setShownCancellations(cancellations);\n }\n };\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const loadCancellations = (loadMore: boolean): void => {\n if (customerNumber && !loading) {\n setLoading(true);\n\n api\n .getAllCancellations(customerNumber)\n .then((res) => {\n setCancellations(res.data);\n setShownCancellations(res.data);\n })\n .catch(handleHttpError)\n .finally(() => setLoading(false));\n }\n };\n\n return (\n (\n \n {shownCancellations.map((cancellation, index) => {\n return (\n \n void}\n positions={cancellation.cancellationPositions}\n />\n \n );\n })}\n \n )}\n />\n );\n};\n\nexport default CancellationsSearchContainer;\n","import { TableRow, TableCell, Checkbox, Typography } from \"@mui/material\";\nimport { DispensationPositionDto } from \"../../../../api\";\n\ninterface DispensationPositionsTableRowProps {\n positionData: DispensationPositionDto;\n loading?: boolean;\n isSelected: boolean;\n handleSelectRow: (id: string) => void;\n}\n\nconst DispensationPositionsTableRow = (\n props: DispensationPositionsTableRowProps\n) => {\n const { positionData, handleSelectRow, isSelected } = props;\n\n return (\n \n \n handleSelectRow(positionData.positionId)}\n checked={isSelected}\n />\n \n \n {positionData.pzn}\n \n \n {positionData.quantity}\n \n \n {positionData.articleName}\n \n \n {positionData.state}\n \n \n );\n};\n\nexport default DispensationPositionsTableRow;\n","import { useContext, useState } from \"react\";\nimport ApiWrapper from \"../../../wrappers/ApiWrapper\";\nimport TableContainer, {\n tablePageDefaultLength,\n} from \"../../../components/table/TableContainer\";\nimport SnackbarContext from \"../../../contexts/SnackbarContext\";\nimport { TableFilterType } from \"../../../components/table/tableFilter/models\";\nimport CustomerContext from \"../../../contexts/CustomerContext\";\nimport { ReturnDto } from \"../../../../api\";\nimport TableAccordionWrapper from \"../../../components/table/TableAccordionWrapper\";\nimport TableAccordionRow from \"../../../components/table/TableAccordionRow\";\nimport { utcToGermanDateString } from \"../../../service/CustomDateService\";\nimport ReturnSearchTable from \"./ReturnSearchTable\";\n\nenum ReturnState {\n EMPTY = \"\",\n OPEN = \"1\",\n IN_PROGRESS = \"5\",\n CLOSED = \"9\",\n}\n\ninterface ReturnSearchFormikValues {\n pzn?: string;\n fromDate?: string;\n toDate?: string;\n state?: ReturnState;\n}\n\nconst ReturnSearchContainer = () => {\n const [loading, setLoading] = useState(false);\n const [returns, setReturns] = useState([]);\n const [pageNumber, setPageNumber] = useState(0);\n const pageLength = 16;\n\n const { handleHttpError, showSnackbar } = useContext(SnackbarContext);\n const { customerNumber } = useContext(CustomerContext);\n\n const returnsApi = new ApiWrapper().returnsControllerApi();\n const ordersApi = new ApiWrapper().ordersControllerApi();\n\n const initialValues: ReturnSearchFormikValues = {\n pzn: \"\",\n toDate: \"\",\n fromDate: \"\",\n state: ReturnState.EMPTY,\n };\n\n const loadReturns = (\n loadMore: boolean,\n searchParams?: ReturnSearchFormikValues\n ): void => {\n if (customerNumber && !loading) {\n setLoading(true);\n\n returnsApi\n .getAllReturns(\n customerNumber,\n loadMore ? pageNumber : 0,\n pageLength,\n searchParams?.pzn || undefined,\n searchParams?.state || undefined,\n searchParams?.fromDate || undefined,\n searchParams?.toDate || undefined\n )\n .then((res) => {\n const newReturns = res.data;\n\n if (loadMore) {\n setReturns((existingReturns) => {\n return existingReturns.concat(newReturns);\n });\n setPageNumber((prevPageNumber) => prevPageNumber + 1);\n } else {\n setReturns(res.data);\n setPageNumber(1);\n }\n })\n .catch(handleHttpError)\n .finally(() => setLoading(false));\n }\n };\n\n const triggerReturns = (stateValue: unknown[]): void => {\n let quantity = 0;\n\n if (typeof stateValue[0] === \"number\") {\n quantity = stateValue[0];\n }\n\n if (customerNumber && !loading) {\n setLoading(true);\n\n ordersApi\n .triggerReturn(customerNumber, { quantity: quantity })\n .then(() => {\n showSnackbar(\n \"success\",\n \"Die Abholung der angemeldeten Retouren wird ausgelöst.\"\n );\n })\n .catch(handleHttpError)\n .finally(() => setLoading(false));\n }\n };\n\n return (\n (\n \n {returns?.map((returnData, index) => {\n return (\n \n \n \n );\n })}\n \n )}\n />\n );\n};\n\nexport default ReturnSearchContainer;\n","import { useContext, useState } from \"react\";\nimport ApiWrapper from \"../../../wrappers/ApiWrapper\";\nimport TableContainer from \"../../../components/table/TableContainer\";\nimport SnackbarContext from \"../../../contexts/SnackbarContext\";\nimport TableFilter from \"../../../components/table/tableFilter/TableFilter\";\nimport { TableFilterType } from \"../../../components/table/tableFilter/models\";\nimport CustomerContext from \"../../../contexts/CustomerContext\";\nimport {\n CancelDto,\n DispensationDto,\n DispensationPositionDto,\n} from \"../../../../api\";\nimport TableAccordionWrapper from \"../../../components/table/TableAccordionWrapper\";\nimport TableAccordionRow from \"../../../components/table/TableAccordionRow\";\nimport DispensationPositionsTable from \"../positions/DispensationPositionsTable\";\nimport {\n ddmmyyyyFormat,\n utcToGermanDateString,\n} from \"../../../service/CustomDateService\";\n\nconst DispensationsSearchContainer = () => {\n const [loading, setLoading] = useState(false);\n const [dispensations, setDispensations] = useState([]);\n const [shownDispensations, setShownDispensations] = useState<\n DispensationDto[]\n >([]);\n const [selectedDispensationPositions, setSelectedDispensationPositions] =\n useState([]);\n const { handleHttpError, handleCancelOrderPositions } =\n useContext(SnackbarContext);\n\n const { customerNumber } = useContext(CustomerContext);\n\n const api = new ApiWrapper().dispensationsControllerApi();\n const cancelApi = new ApiWrapper().ordersControllerApi();\n\n interface DispensationSearchFormikValues {\n pzn?: string;\n }\n\n const initialValues: DispensationSearchFormikValues = {\n pzn: \"\",\n };\n\n const sortByPZN = (\n loadMore: boolean,\n searchParams?: DispensationSearchFormikValues\n ) => {\n if (\n typeof searchParams !== \"undefined\" &&\n typeof searchParams.pzn !== \"undefined\" &&\n searchParams.pzn.length > 0\n ) {\n const filterPzn =\n (searchPzn: string) =>\n (dispensationPosition: DispensationPositionDto) =>\n dispensationPosition.pzn === searchPzn;\n const newShownDispensations: DispensationDto[] = dispensations\n .filter((dispensation) =>\n dispensation.dispensationPositions?.some(\n filterPzn(searchParams.pzn as string)\n )\n )\n .map((dispensation) => ({\n ...dispensation,\n dispensationPositions: dispensation.dispensationPositions?.filter(\n filterPzn(searchParams.pzn as string)\n ),\n }));\n setShownDispensations(newShownDispensations);\n } else {\n setShownDispensations(dispensations);\n }\n };\n\n const loadDispensations = (): void => {\n if (customerNumber && !loading) {\n setLoading(true);\n\n api\n .getAllDispensations(customerNumber)\n .then((res) => {\n setDispensations(res.data);\n setShownDispensations(res.data);\n })\n .catch((e) => handleHttpError(e))\n .finally(() => setLoading(false));\n }\n };\n\n const generateCancelDtoObjects = (): CancelDto[] => {\n const dispensationIds = selectedDispensationPositions.map(\n (dispensationPosition) => dispensationPosition.split(\"-\")[0]\n );\n\n const selectedDispensationsData = dispensations.filter((dispensation) =>\n dispensationIds.includes(dispensation.dispensationId)\n );\n\n const dispensationsToCancel: CancelDto[] = [];\n\n selectedDispensationsData.forEach((dispensationData) => {\n dispensationData.dispensationPositions?.forEach(\n (dispensationPosition) => {\n const cancelDtoObj = {\n orderId: dispensationPosition.positionId.split(\"-\")[0],\n orderPosition: dispensationPosition.positionId,\n pzn: dispensationPosition.pzn,\n };\n\n if (\n selectedDispensationPositions.includes(cancelDtoObj.orderPosition)\n ) {\n dispensationsToCancel.push(cancelDtoObj);\n }\n }\n );\n });\n\n return dispensationsToCancel;\n };\n\n const onCancelSuccess = () => {\n setSelectedDispensationPositions([]);\n setLoading(false);\n };\n\n const cancelDispensationPositions = (): void => {\n if (customerNumber && !loading) {\n setLoading(true);\n\n const dispensationCancelDtos = generateCancelDtoObjects();\n cancelApi\n .cancelOrderPositions(customerNumber, dispensationCancelDtos)\n .then((res) => {\n // 200 always returned, even for errors\n // if the data array is empty, there are no errors\n handleCancelOrderPositions(\n dispensationCancelDtos,\n res.data,\n onCancelSuccess\n );\n })\n .catch(handleHttpError)\n .finally(() => {\n loadDispensations();\n });\n }\n };\n\n return (\n (\n \n {shownDispensations.map((dispensation, index) => {\n return (\n \n void}\n positions={dispensation.dispensationPositions}\n />\n \n );\n })}\n \n )}\n selectableRows\n />\n );\n};\n\nexport default DispensationsSearchContainer;\n","import { Box } from \"@mui/material\";\nimport { TabableCard, CardTabContent } from \"../../components/card/TabableCard\";\nimport AnalysesCard, { AnalysisData } from \"../../components/card/AnalysesCard\";\nimport { rootBoxStyles } from \"./ordersStyles\";\nimport DailyOrdersSearchContainer from \"./tabs/DailyOrdersSearchContainer\";\nimport CancellationsSearchContainer from \"./tabs/CancellationsSearchContainer\";\nimport DispensationsSearchContainer from \"./tabs/DispensationsSearchContainer\";\n\nconst Orders = () => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default Orders;\n","import { SxProps, Theme } from \"@mui/material\";\nimport { aepPalette } from \"../../../styles/aepPalette\";\n\nexport const rootBoxStyles: SxProps = {\n display: \"grid\",\n gap: 3,\n gridTemplateColumns: \"repeat(12, 1fr)\",\n gridTemplateRows: \"repeat(12, 1fr)\",\n overflow: \"auto\",\n};\n\nexport const textfieldStyles: SxProps = {\n fontSize: \"1.3rem\",\n width: \"22.35%\",\n lineHeight: \"1.35rem\",\n};\n\nexport const deliverySearchButtonStyles: SxProps = {\n position: \"absolute\",\n bottom: \"15px\",\n right: \"15px\",\n width: \"200px\",\n fontSize: \"1.3rem\",\n marginTop: \"12px\",\n pl: \"0px\",\n pr: \"0px\",\n};\n\nexport const deliverySearchCardStyles: SxProps = {\n marginBottom: \"24px\",\n py: 2,\n paddingLeft: \"4.8%\",\n paddingRight: \"4.8%\",\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"center\",\n};\n\nexport const deliverySearchTableContainerStyles: SxProps = {\n width: \"100%\",\n height: \"calc(100% - 115px)\",\n \"::-webkit-scrollbar\": {\n width: \"3px\",\n },\n \"::-webkit-scrollbar-thumb\": {\n borderRadius: \"10px\",\n backgroundColor: \"#C4C4C4\",\n },\n};\n\nexport const deliveryDetailCardIconStyles: SxProps = {\n position: \"absolute\",\n right: \"53px\",\n top: \"44px\",\n bottom: \"44px\",\n width: \"24px\",\n height: \"24px\",\n cursor: \"pointer\",\n color: aepPalette.base?.main,\n};\n\nexport const deliveryDetailCardTableContainerStyles: SxProps = {\n marginBottom: \"52px\",\n width: \"100%\",\n \"::-webkit-scrollbar\": {\n width: \"3px\",\n },\n \"::-webkit-scrollbar-thumb\": {\n borderRadius: \"10px\",\n backgroundColor: \"#C4C4C4\",\n },\n};\n\nexport const deliveryDetailCardBoxStyles: SxProps = {\n width: \"100%\",\n display: \"flex\",\n height: \"112px\",\n alignContent: \"center\",\n flexWrap: \"wrap\",\n};\n\nexport const deliveryDetailCardTableBodyStyles: SxProps = {\n \"tr:last-child>td:first-of-type\": {\n borderRadius: \"0px\",\n },\n \"tr:last-child>td:last-child\": {\n borderRadius: \"0px\",\n },\n};\n\nexport const textFieldStyles: SxProps = {\n fontSize: \"1.3rem\",\n width: \"22.35%\",\n lineHeight: \"1.35rem\",\n};\n","import { SvgIconProps } from \"@mui/material/SvgIcon/SvgIcon\";\nimport IconWrapper from \"./IconWrapper\";\n\nconst DetialViewIcon = (props: SvgIconProps) => (\n \n \n \n \n \n \n \n \n);\n\nexport default DetialViewIcon;\n","import IconButton from \"../button/IconButton\";\nimport DetialViewIcon from \"../icons/DetailViewIcon\";\n\nconst IconButtonDetailView = (props: { onClick: () => void }) => {\n const { onClick } = props;\n return (\n \n }\n onClick={onClick}\n />\n );\n};\n\nexport default IconButtonDetailView;\n","import { Checkbox, TableCell } from \"@mui/material\";\nimport { DeliveryDto } from \"../../../../api\";\nimport { TextDivider } from \"../../../components/other/TextDivider\";\nimport { useNavigate } from \"react-router-dom\";\nimport { CustomTableProps } from \"../../../components/table/TableContainer\";\nimport DocumentLoader from \"../../../components/documentloader/DocumentLoader\";\nimport CustomerContext from \"../../../contexts/CustomerContext\";\nimport { useContext } from \"react\";\nimport AnimatedTableRow from \"../../../components/table/AnimatedTableRow\";\nimport IconButtonDetailView from \"../../../components/table/IconButtonDetailView\";\n\ninterface DeliverySearchTableRowProps extends CustomTableProps {\n row: DeliveryDto;\n}\n\nconst DeliverySearchTableRow = (props: DeliverySearchTableRowProps) => {\n const { isSelected, row, handleSelectRow, transitionDelay } = props;\n const { customerNumber } = useContext(CustomerContext);\n const navigate = useNavigate();\n\n const labelId = `enhanced-table-checkbox-${row.deliveryNoteId}`;\n\n return (\n \n \n handleSelectRow(row.deliveryNoteId)}\n inputProps={{\n \"aria-labelledby\": labelId,\n }}\n />\n \n {row.deliveryNoteId}\n {row.deliveryDate}\n {row.deliveryState}\n \n \n \n \n {(row.deliveryStateNumber == 45 || row.deliveryStateNumber == 60) && (\n \n )}\n \n \n navigate(\"details\", { state: [row.deliveryNoteId] })}\n />\n \n \n );\n};\n\nexport default DeliverySearchTableRow;\n","import {\n Checkbox,\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableRow,\n Typography,\n} from \"@mui/material\";\nimport { DeliveryDto } from \"../../../../api\";\nimport { CustomTableProps } from \"../../../components/table/TableContainer\";\nimport DeliverySearchTableRow from \"./DeliverySearchTableRow\";\n\ninterface DeliverySearchTableProps extends CustomTableProps {\n deliveries: DeliveryDto[];\n loading: boolean;\n}\n\nconst DeliverySearchTable = (props: DeliverySearchTableProps) => {\n const { deliveries, handleSelectRow, isSelected } = props;\n\n return (\n \n \n \n \n \n \n \n Lieferscheinnummer\n \n \n Belegdatum\n \n \n Status\n \n \n \n \n \n \n \n {deliveries.map((row, index) => (\n \n ))}\n \n
\n );\n};\n\nexport default DeliverySearchTable;\n","import { useContext, useEffect, useState } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport { DeliveryDto } from \"../../../../api\";\nimport CustomerContext from \"../../../contexts/CustomerContext\";\nimport SnackbarContext from \"../../../contexts/SnackbarContext\";\nimport ApiWrapper from \"../../../wrappers/ApiWrapper\";\nimport DeliverySearchTable from \"./DeliverySearchTable\";\nimport { TableFilterType } from \"../../../components/table/tableFilter/models\";\nimport TableContainer from \"../../../components/table/TableContainer\";\n\nconst DeliverySearchContainer = () => {\n const [loading, setLoading] = useState(false);\n const [deliveries, setDeliveries] = useState([]);\n const [pageNumber, setPageNumber] = useState(0);\n\n const { handleHttpError } = useContext(SnackbarContext);\n const { customerNumber } = useContext(CustomerContext);\n\n const api = new ApiWrapper().deliveriesControllerApi();\n const navigate = useNavigate();\n const pageLength = 16;\n\n interface DeliverySearchFormikValues {\n pzn?: string;\n fromDate?: string;\n toDate?: string;\n deliveryNoteId?: string;\n }\n\n useEffect(() => {\n setPageNumber(0);\n setDeliveries([]);\n }, [customerNumber]);\n\n const loadDeliveries = (\n loadMore: boolean,\n searchParams?: DeliverySearchFormikValues\n ): void => {\n // this check guards from firing multiple calls\n if (customerNumber && !loading) {\n setLoading(true);\n\n api\n .getAllDeliveries(\n customerNumber,\n loadMore ? pageNumber : 0,\n pageLength,\n true,\n searchParams?.pzn || undefined,\n searchParams?.fromDate || undefined,\n searchParams?.toDate || undefined,\n searchParams?.deliveryNoteId || undefined\n )\n .then((res) => {\n const newDeliveries = res.data;\n\n if (loadMore) {\n setDeliveries((existingDeliveries) => {\n return existingDeliveries.concat(newDeliveries);\n });\n setPageNumber((prevPageNumber) => prevPageNumber + 1);\n } else {\n setDeliveries(newDeliveries);\n setPageNumber(1);\n }\n })\n .catch((e) => {\n handleHttpError(e);\n setPageNumber(0);\n })\n .finally(() => {\n setLoading(false);\n });\n }\n };\n\n const navigateToDetails = (stateValue: unknown[]) => {\n navigate(\"details\", { state: stateValue });\n };\n\n const initialValues: DeliverySearchFormikValues = {\n pzn: \"\",\n fromDate: \"\",\n toDate: \"\",\n deliveryNoteId: \"\",\n };\n\n return (\n (\n \n )}\n selectableRows\n />\n );\n};\n\nexport default DeliverySearchContainer;\n","import {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableRow,\n Typography,\n} from \"@mui/material\";\nimport { ReturnPositionDto } from \"../../../../api\";\nimport {\n reformatDateString,\n utcToGermanDateString,\n} from \"../../../service/CustomDateService\";\nimport { toCurrency } from \"../../../service/CustomNumberService\";\n\ninterface ReturnSearchTableProps {\n returnPositionsData?: ReturnPositionDto[];\n key: string;\n}\n\nconst ReturnSearchTable = (props: ReturnSearchTableProps) => {\n const { returnPositionsData } = props;\n\n return (\n \n \n th\": {\n pl: 1,\n },\n }}\n >\n \n Lieferscheinnr.\n \n \n Liefer-Datum\n \n \n PZN\n \n \n Menge\n \n \n Artikelbezeichung\n \n \n EK-Preis\n \n \n Beschreibung\n \n \n Lösung\n \n \n \n \n {returnPositionsData?.map((returnPositionData, index) => (\n td\": {\n pl: 1,\n },\n }}\n >\n \n \n {returnPositionData.deliveryNoteId || \"\"}\n \n \n \n \n {utcToGermanDateString(returnPositionData.deliveryDate, true) ||\n \"\"}\n \n \n \n \n {returnPositionData.pzn || \"\"}\n \n \n \n \n {returnPositionData.quantity || \"\"}\n \n \n \n \n {returnPositionData.articleName || \"\"}\n \n \n \n \n {toCurrency(returnPositionData?.price || null) || \"\"}\n \n \n \n \n {returnPositionData.description || \"\"}\n \n \n \n \n {returnPositionData.solution || \"\"}\n \n \n \n ))}\n \n
\n );\n};\n\nexport default ReturnSearchTable;\n","import { useContext, useEffect, useState } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport { ReceiptDto, UserDtoPermissionsEnum } from \"../../../../api\";\nimport TableContainer, {\n tablePageDefaultLength,\n} from \"../../../components/table/TableContainer\";\nimport CustomerContext from \"../../../contexts/CustomerContext\";\nimport SnackbarContext from \"../../../contexts/SnackbarContext\";\nimport ApiWrapper from \"../../../wrappers/ApiWrapper\";\nimport {\n TableFilterMenuItem,\n TableFilterType,\n} from \"../../../components/table/tableFilter/models\";\nimport ReceiptsSearchTable from \"./ReceiptsSearchTable\";\nimport UserContext from \"../../../contexts/UserContext\";\n\nexport enum ReceiptType {\n Gutschrift = \"Gutschrift\",\n Lieferschein = \"Lieferschein\",\n Monatsbericht = \"Monatsbericht\",\n Nachbelastung = \"Nachbelastung\",\n Sammelrechnung = \"Sammelrechnung\",\n}\n\nexport const compressReceiptType = (type?: ReceiptType) => {\n switch (type) {\n case ReceiptType.Gutschrift:\n return \"GS\";\n case ReceiptType.Lieferschein:\n return \"LS\";\n case ReceiptType.Monatsbericht:\n return \"MB\";\n case ReceiptType.Nachbelastung:\n return \"NB\";\n case ReceiptType.Sammelrechnung:\n return \"SR\";\n default:\n return;\n }\n};\n\nconst ReceiptsSearchContainer = () => {\n const { checkUserRole } = useContext(UserContext);\n const [loading, setLoading] = useState(false);\n const [menuItems, setMenuItems] = useState([]);\n const [selectableRows, setSelectableRows] = useState(false);\n const [receipts, setReceipts] = useState([]);\n const [pageNumber, setPageNumber] = useState(0);\n const [noDataMessage, setNoDataMessage] = useState(\n \"Bitte wählen Sie eine Belegart und Zeitraum für die Suche\"\n );\n\n const { handleHttpError } = useContext(SnackbarContext);\n const { customerNumber } = useContext(CustomerContext);\n\n const api = new ApiWrapper().receiptsControllerApi();\n const navigate = useNavigate();\n\n interface ReceiptSearchFormikValues {\n receiptType?: ReceiptType;\n pzn?: string;\n fromDate?: string;\n toDate?: string;\n }\n\n const generateMenuItemsFromPermissions = (): TableFilterMenuItem[] => {\n const BelegePermissions = [\n {\n permission: UserDtoPermissionsEnum.Gutschriften,\n value: ReceiptType.Gutschrift,\n },\n {\n permission: UserDtoPermissionsEnum.Lieferscheine,\n value: ReceiptType.Lieferschein,\n },\n {\n permission: UserDtoPermissionsEnum.Monatsberichte,\n value: ReceiptType.Monatsbericht,\n },\n {\n permission: UserDtoPermissionsEnum.Nachbelastungen,\n value: ReceiptType.Nachbelastung,\n },\n {\n permission: UserDtoPermissionsEnum.Sammelrechnungen,\n value: ReceiptType.Sammelrechnung,\n },\n ];\n const menuItems: TableFilterMenuItem[] = [];\n\n BelegePermissions.forEach(\n (permissionObj: {\n permission: UserDtoPermissionsEnum;\n value: ReceiptType;\n }) => {\n if (checkUserRole([permissionObj.permission])) {\n menuItems.push({\n label: permissionObj.value,\n value: permissionObj.value,\n });\n }\n }\n );\n\n return menuItems;\n };\n\n useEffect(() => {\n setPageNumber(0);\n setReceipts([]);\n const menuItems = generateMenuItemsFromPermissions();\n setMenuItems(menuItems);\n }, [customerNumber]);\n\n const loadReceipts = (\n loadMore: boolean,\n searchParams?: ReceiptSearchFormikValues\n ): void => {\n const receiptType = compressReceiptType(searchParams?.receiptType);\n // this check guards from firing multiple calls\n if (receiptType && customerNumber && !loading) {\n setLoading(true);\n\n if (receiptType === \"LS\") {\n setSelectableRows(true);\n } else {\n setSelectableRows(false);\n }\n\n api\n .getAllReceipts(\n customerNumber,\n receiptType,\n loadMore ? pageNumber : 0,\n tablePageDefaultLength,\n searchParams?.fromDate || undefined,\n searchParams?.toDate || undefined,\n searchParams?.pzn || undefined\n )\n .then((res) => {\n const newReceipts = res.data;\n\n if (loadMore) {\n setReceipts((existingReceipts) => {\n return existingReceipts.concat(newReceipts);\n });\n setPageNumber((prevPageNumber) => prevPageNumber + 1);\n } else {\n setReceipts(newReceipts);\n setPageNumber(1);\n\n if (newReceipts.length === 0) {\n setNoDataMessage(\"Keine Belege verfügbar\");\n } else {\n setNoDataMessage(\n \"Bitte wählen Sie eine Belegart und Zeitraum für die Suche\"\n );\n }\n }\n })\n .catch((e) => {\n handleHttpError(e);\n setPageNumber(0);\n })\n .finally(() => {\n setLoading(false);\n });\n }\n };\n\n const navigateToDetails = (stateValue: unknown[]) => {\n navigate(\"../bestellungen/lieferungen/details\", {\n state: stateValue,\n });\n };\n\n const initialValues: ReceiptSearchFormikValues = {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n receiptType: \"\",\n receiptNumber: \"\",\n fromDate: \"\",\n toDate: \"\",\n };\n const [lastSearchParameters, setLastSearchParameters] =\n useState(initialValues);\n\n return (\n {\n const enumValues = Object.values(ReceiptType);\n return enumValues.includes(value as unknown as ReceiptType);\n },\n errorMessage: \"Erforderlich\",\n },\n {\n type: TableFilterType.textfield,\n name: \"pzn\",\n label: \"PZN\",\n },\n {\n type: TableFilterType.dateRange,\n name: \"\",\n label: \"Zeitraum\",\n },\n ],\n }}\n Table={({ handleSelectRow, isSelected }) => (\n \n )}\n selectableRows={selectableRows}\n />\n );\n};\n\nexport default ReceiptsSearchContainer;\n","import { Box } from \"@mui/material\";\nimport { TabableCard, CardTabContent } from \"../../components/card/TabableCard\";\nimport { rootBoxStyles } from \"./deliveriesStyles\";\nimport DeliverySearchContainer from \"./elements/DeliverySearchContainer\";\nimport AnalysesCard, { AnalysisData } from \"../../components/card/AnalysesCard\";\nimport ReturnSearchContainer from \"./elements/ReturnSearchContainer\";\n\nconst Deliveries = () => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default Deliveries;\n","import { TableRow, TableCell, TableFooter, Typography } from \"@mui/material\";\nimport { toCurrency } from \"../../../service/CustomNumberService\";\n\ntype DeliveryDetailTableFooterProps = {\n sumNetto: number;\n};\n\nconst DeliveryDetailTableFooter = ({\n sumNetto,\n}: DeliveryDetailTableFooterProps) => (\n tr > td\": {\n p: 1,\n },\n }}\n >\n \n \n \n \n \n \n Gesamt (Netto)\n \n \n \n \n td\": { borderBottom: \"0px\" } }}>\n \n \n \n \n \n \n \n {toCurrency(sumNetto)}\n \n \n \n \n \n);\n\nexport default DeliveryDetailTableFooter;\n","import { TableRow, TableCell } from \"@mui/material\";\nimport { DeliveryNotePositionDto } from \"../../../../api\";\nimport { toCurrency } from \"../../../service/CustomNumberService\";\n\ntype DeliveryItemProps = {\n row: DeliveryNotePositionDto;\n};\n\nconst taxTypes: Record = { U19: \"19%\", U7: \"7%\", U07: \"7%\" };\n\nconst DeliveryDetailTableRow = ({ row }: DeliveryItemProps) => {\n return (\n \n {row.orderedQuantity} STK\n {row.articleName}\n {row.pzn}\n {toCurrency(row.price)}\n {toCurrency(row.price * row.orderedQuantity)}\n \n {typeof row.tax !== \"undefined\" ? taxTypes[row.tax.trim()] : \"-\"}\n \n {row.mark}\n \n );\n};\n\nexport default DeliveryDetailTableRow;\n","import {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableRow,\n Typography,\n} from \"@mui/material\";\nimport { DeliveryDto } from \"../../../../api\";\nimport DeliveryDetailTableFooter from \"./DeliveryDetailTableFooter\";\nimport DeliveryDetailTableRow from \"./DeliveryDetailTableRow\";\n\nconst DeliveryDetailTable = (props: { delivery?: DeliveryDto }) => {\n const { delivery } = props;\n return (\n \n \n \n \n Menge\n \n \n Artikelbezeichnung\n \n \n PZN\n \n \n Ek.Preis\n \n \n Zeilenwert\n \n \n MwSt\n \n \n Kz\n \n \n \n tr > td\": {\n py: 1,\n px: 1,\n },\n }}\n >\n {delivery?.deliveryNotePositions?.map((row, index) => (\n \n ))}\n \n \n
\n );\n};\n\nexport default DeliveryDetailTable;\n","import { useEffect, useState, useContext } from \"react\";\nimport {\n Typography,\n Accordion,\n AccordionSummary,\n AccordionDetails,\n Stack,\n} from \"@mui/material\";\nimport Card, { CardProps } from \"../../../components/card/Card\";\nimport ApiWrapper from \"../../../wrappers/ApiWrapper\";\nimport { DeliveryDto } from \"../../../../api\";\nimport CustomerContext from \"../../../contexts/CustomerContext\";\nimport SnackbarContext from \"../../../contexts/SnackbarContext\";\nimport DeliveryDetailTable from \"./DeliveryDetailTable\";\ninterface DeliveryDetailCardProps extends CardProps {\n deliveryId: string;\n index: number;\n}\n\nconst DeliveryDetailCard = ({ deliveryId, index }: DeliveryDetailCardProps) => {\n const api = new ApiWrapper().deliveriesControllerApi();\n const [delivery, setDelivery] = useState();\n const [expanded, setExpanded] = useState(false);\n const [loading, setLoading] = useState(true);\n const { customerNumber } = useContext(CustomerContext);\n const { handleHttpError } = useContext(SnackbarContext);\n\n useEffect(() => {\n setLoading(true);\n api\n .getDeliveryById(customerNumber, deliveryId)\n .then((res) => {\n setDelivery(res.data);\n if (index === 0) {\n setExpanded(true);\n }\n })\n .catch(handleHttpError)\n .finally(() => {\n setLoading(false);\n });\n }, []);\n\n const toggle = () => {\n if (!loading) {\n if (expanded) {\n setExpanded(false);\n } else {\n setExpanded(true);\n }\n }\n };\n\n return (\n \n \n \n \n \n Lieferschein-Nr: \n {deliveryId}\n \n \n Lieferdatum: \n {delivery?.deliveryDate}\n \n \n Status: \n {delivery?.deliveryState}\n \n \n \n \n \n \n \n \n );\n};\n\nexport default DeliveryDetailCard;\n","import { useLocation, useNavigate, Navigate } from \"react-router-dom\";\nimport { Box, Typography } from \"@mui/material\";\nimport NavButton from \"../../../components/button/NavButton\";\nimport DeliveryDetailCard from \"./DeliveryDetailCard\";\nimport { useContext, useEffect, useState } from \"react\";\nimport CustomerContext from \"../../../contexts/CustomerContext\";\n\nexport type DeliveryNoteReturn = {\n id: string;\n reason: string;\n};\n\nconst DeliveriesDetails = () => {\n const { state } = useLocation();\n const navigate = useNavigate();\n const selectedRows = state as string[];\n const { customerNumber } = useContext(CustomerContext);\n const [initialRender, setInitialRender] = useState(true);\n\n useEffect(() => {\n if (!initialRender) {\n navigate(-1);\n } else {\n setInitialRender(false);\n }\n }, [customerNumber]);\n\n return selectedRows ? (\n \n Lieferscheinansicht\n navigate(-1)}\n sx={{ width: \"14rem\", my: 1 }}\n />\n {selectedRows.map((id: string, i) => (\n \n ))}\n \n \n ) : (\n \n );\n};\n\nexport default DeliveriesDetails;\n","import { SxProps, Theme } from \"@mui/material/styles\";\nimport { aepPalette } from \"../../../styles/aepPalette\";\nimport { fadeTimeout } from \"../../App\";\n\nexport const rootStyles: SxProps = {\n backgroundColor: aepPalette.common.white,\n height: {\n xs: \"140px\",\n lg: \"140px\",\n },\n top: 0,\n zIndex: 4,\n pb: {\n xs: 2,\n lg: 3,\n },\n pt: {\n xs: 2,\n lg: 5,\n },\n};\n\nexport const containerStyles: SxProps = {\n flexDirection: {\n xs: \"column\",\n lg: \"row\",\n },\n width: \"100%\",\n};\n\nexport const leftContainerStyles: SxProps = {\n flexDirection: \"row\",\n alignItems: \"center\",\n width: \"100%\",\n justifyContent: \"space-between\",\n};\n\nexport const imageStyles: SxProps = {\n width: { xs: \"170px\", lg: \"200px\" },\n px: 4,\n mr: {\n xs: 0,\n lg: 5,\n },\n};\n\nexport const greetingStyles: SxProps = {\n minWidth: \"250px\",\n ml: 0,\n display: {\n xs: \"none\",\n lg: \"block\",\n },\n};\n\nexport const greetingStylesTablet: SxProps = {\n minWidth: \"250px\",\n mt: 1,\n ml: 5,\n display: {\n xs: \"block\",\n lg: \"none\",\n },\n};\n\nexport const rightContainerStyles: SxProps = {\n alignItems: \"center\",\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"space-between\",\n pr: {\n xs: 2,\n xl: 6,\n },\n};\n\nexport const selectStyles: SxProps = {\n mx: 1,\n mb: \"5px\",\n};\n\nexport const iconStackStyles = (hasCounter: boolean): SxProps => ({\n alignItems: \"center\",\n flexDirection: \"row\",\n justifyContent: \"space-between\",\n width: hasCounter ? \"450px\" : \"420px\",\n ml: 6,\n position: \"relative\",\n});\n\nexport const avatarStyles: SxProps = {\n backgroundColor: \"transparent\",\n border: `1px solid ${aepPalette.primary.main}`,\n color: aepPalette.primary.main,\n \"&:hover\": {\n boxShadow: `0 0 3px ${aepPalette.primary.dark}`,\n cursor: \"pointer\",\n },\n};\n\nexport const textDividerStyles: SxProps = {\n height: \"34px\",\n};\n\nexport const counterStyles: SxProps = {\n position: \"relative\",\n \"& > div:last-of-type\": {\n backgroundColor: \"white\",\n boxShadow: \"0px 4px 20px rgba(0, 0, 0, 0.25)\",\n borderRadius: \"5px\",\n cursor: \"pointer\",\n padding: 3,\n position: \"absolute\",\n right: 0,\n zIndex: 100,\n fontFamily: \"Museo Sans\",\n fontSize: \"1.3rem\",\n fontWeight: 400,\n },\n};","import { SvgIconProps } from \"@mui/material/SvgIcon/SvgIcon\";\nimport IconWrapper from \"./IconWrapper\";\n\nconst MailIcon = (props: SvgIconProps) => (\n \n \n \n \n \n);\n\nexport default MailIcon;\n","import { SvgIconProps } from \"@mui/material/SvgIcon/SvgIcon\";\nimport IconWrapper from \"./IconWrapper\";\n\nconst MailIcon = (props: SvgIconProps) => (\n \n \n \n \n);\n\nexport default MailIcon;\n","import { UserDtoPermissionsEnum } from \"../../api\";\n\ntype KeycloakUserRole =\n | \"apoportal-pharmacy-admin\"\n | \"apoportal-aep-im-blick-user\"\n | \"apoportal-analysen-user\"\n | \"apoportal-belege-ls\"\n | \"apoportal-belege-mb\"\n | \"apoportal-belege-nb\"\n | \"apoportal-belege-gs\"\n | \"apoportal-belege-sr\"\n | \"apoportal-belege-stats\"\n | \"apoportal-bestellungen-user\"\n | \"apoportal-postfach-user\"\n | \"apoportal-stammdaten-user\";\n\nexport const getJwtGroups = (token: string): Array => {\n return getTokenBody(token).groups;\n};\n\nexport const getPharmacies = (token: string): Array => {\n return getJwtGroups(token)\n .filter((e) => e.indexOf(\"/apoportal-pharmacies/\") !== -1)\n .map((e) => e.replace(\"/apoportal-pharmacies/\", \"\").trim());\n};\n\nconst fromKeycloakRoleString = (\n permissionName: KeycloakUserRole\n): UserDtoPermissionsEnum | void => {\n switch (permissionName.toLowerCase()) {\n case \"apoportal-pharmacy-admin\":\n return UserDtoPermissionsEnum.Admin;\n case \"apoportal-aep-im-blick-user\":\n return UserDtoPermissionsEnum.AepImBlick;\n case \"apoportal-analysen-user\":\n return UserDtoPermissionsEnum.Analysen;\n case \"apoportal-belege-ls\":\n return UserDtoPermissionsEnum.Lieferscheine;\n case \"apoportal-belege-mb\":\n return UserDtoPermissionsEnum.Monatsberichte;\n case \"apoportal-belege-nb\":\n return UserDtoPermissionsEnum.Nachbelastungen;\n case \"apoportal-belege-gs\":\n return UserDtoPermissionsEnum.Gutschriften;\n case \"apoportal-belege-sr\":\n return UserDtoPermissionsEnum.Sammelrechnungen;\n case \"apoportal-belege-stats\":\n return UserDtoPermissionsEnum.Statistiken;\n case \"apoportal-bestellungen-user\":\n return UserDtoPermissionsEnum.Bestellungen;\n case \"apoportal-postfach-user\":\n return UserDtoPermissionsEnum.Postfach;\n case \"apoportal-stammdaten-user\":\n return UserDtoPermissionsEnum.Stammdaten;\n default:\n return;\n }\n};\n\nexport const getJwtRoles = (token: string): UserDtoPermissionsEnum[] => {\n const rolesList = getTokenBody(token).realm_access.roles;\n\n return rolesList\n .map((role: KeycloakUserRole) => fromKeycloakRoleString(role))\n .filter((role: UserDtoPermissionsEnum) => role !== undefined);\n};\n\nexport const getUserFullName = (token: string): string => {\n return getTokenBody(token).name;\n};\n\nexport const getUserName = (token: string): string => {\n return getTokenBody(token).preferred_username;\n};\n\nexport const getMainPharmacyId = (token: string): string => {\n return getTokenBody(token).defaultPharmacy.split(\"_\")[1];\n};\n\nconst getTokenBody = (token: string) => {\n const bodyText = atob(\n token.split(\".\")[1].replaceAll(\"_\", \"+\").replaceAll(\"-\", \"/\")\n );\n const bodyTextUTF8 = decodeURIComponent(\n bodyText\n .split(\"\")\n .map(function (c) {\n return \"%\" + (\"00\" + c.charCodeAt(0).toString(16)).slice(-2);\n })\n .map((char) => {\n if (char == \"%83\") {\n return \"%c3\";\n }\n return char;\n })\n .join(\"\")\n );\n return JSON.parse(bodyTextUTF8);\n};\n","import { useEffect, useState, useContext } from \"react\";\nimport { selectStyles } from \"../appBarStyles\";\nimport {\n MenuItem,\n SelectChangeEvent,\n Select,\n Typography,\n Box,\n} from \"@mui/material\";\nimport ApiWrapper from \"../../../wrappers/ApiWrapper\";\nimport { getPharmacies, getMainPharmacyId } from \"../../../service/JwtService\";\nimport CustomerContext from \"../../../contexts/CustomerContext\";\n\nconst PharmacyPicker = () => {\n const accessToken = new ApiWrapper().accessToken();\n const mainPharmacy = getMainPharmacyId(accessToken);\n\n const [pharmacy, setPharmacy] = useState(\"\");\n const { updateCustomerNumber } = useContext(CustomerContext);\n\n const handleApothekeSelect = (event: SelectChangeEvent) => {\n updateSelection(event.target.value);\n };\n\n const updateSelection = (selectedId: string): void => {\n updateCustomerNumber(selectedId);\n setPharmacy(selectedId);\n };\n\n useEffect(() => {\n updateSelection(mainPharmacy);\n }, []);\n\n const getAllPharmacies = () => {\n return getPharmacies(accessToken)\n .map((group) => {\n const id = group.split(\"_\")[1];\n const nameParts = group.split(\"_\")[0].split(\"/\");\n const name = `${nameParts[nameParts.length - 1]} (${id})`;\n return { id, name };\n })\n .sort((a, b) => {\n if (a.id === mainPharmacy) return -1;\n if (b.id === mainPharmacy) return 1;\n return a.name.localeCompare(b.name);\n });\n };\n\n const renderOptions = () => {\n return getAllPharmacies().map((entry) => {\n return (\n \n {entry.name}\n \n );\n });\n };\n\n const pharmacies = getAllPharmacies();\n if (pharmacies.length === 1) {\n return (\n <>\n \n \n {pharmacies[0].name}\n \n \n \n );\n } else {\n return (\n \n {renderOptions()}\n \n );\n }\n};\n\nexport default PharmacyPicker;\n","/* eslint-disable @typescript-eslint/ban-ts-comment */\nimport {\n Box,\n Popover,\n PopoverProps,\n SxProps,\n Theme,\n Typography,\n} from \"@mui/material\";\nimport { useKeycloak } from \"@react-keycloak/web\";\nimport { Link } from \"react-router-dom\";\nimport { aepPalette } from \"../../../../styles/aepPalette\";\n\nconst menuItemStyles: SxProps = {\n cursor: \"pointer\",\n px: 2,\n py: 2,\n \"&:hover\": {\n backgroundColor: aepPalette.base.lighter,\n },\n};\n\nconst UserMenu = (props: PopoverProps) => {\n const { keycloak } = useKeycloak();\n const { anchorEl, onClose, open } = props;\n\n return (\n \n \n {/* @ts-ignore */}\n \n Profil\n \n {!!keycloak.authenticated && (\n keycloak.logout()} sx={menuItemStyles}>\n Logout\n \n )}\n \n \n );\n};\n\nexport default UserMenu;\n","export default __webpack_public_path__ + \"static/media/AEP-Logo-mit-claim-RGB.76bc8ffd.svg\";","import { BadgeProps, Box } from \"@mui/material\";\nimport { aepPalette } from \"../../../styles/aepPalette\";\n\nexport const CustomBadge = (props: BadgeProps) => {\n const { badgeContent, children } = props;\n\n return (\n \n \n {badgeContent}\n \n {children}\n \n );\n};\n","import { SvgIconProps } from \"@mui/material/SvgIcon/SvgIcon\";\nimport IconWrapper from \"./IconWrapper\";\n\ninterface CountdownIconProps extends SvgIconProps {\n flip?: string;\n}\n\nconst CountdownIcon = (props: CountdownIconProps) => (\n \n \n \n \n \n \n \n);\n\nexport default CountdownIcon;\n","import {\n useEffect,\n useContext,\n useState,\n} from \"react\";\nimport { Box, Fade } from \"@mui/material\";\nimport IconButton from \"../../button/IconButton\";\nimport { fadeTimeout } from \"../../../App\";\nimport CountdownIcon from \"../../icons/CountdownIcon\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport CustomerContext from \"../../../contexts/CustomerContext\";\nimport { counterStyles } from \"../appBarStyles\";\n\ninterface CounterProps {\n sanitizedModalHtml: string;\n}\n\nconst Counter = (props: CounterProps) => {\n const { sanitizedModalHtml } = props;\n\n const { customerNumber } = useContext(CustomerContext);\n const [showCounter, setShowCounter] = useState(false);\n\n const createMarkup = () => {\n return { __html: sanitizedModalHtml };\n }\n\n useEffect(() => {\n setShowCounter(false);\n }, [customerNumber]);\n\n return (\n \n }\n onClick={() => {\n setShowCounter(!showCounter);\n }}\n />\n \n
\n setShowCounter(false)}\n sx={{ cursor: \"pointer\", position: \"absolute\", right: 10, top: 10 }}\n />\n
\n
\n
\n
\n );\n};\n\nexport default Counter;\n","import { useState, useEffect, useContext, useRef, RefObject } from \"react\";\nimport {\n AppBar as MuiAppBar,\n Avatar,\n Box,\n Typography,\n Stack,\n} from \"@mui/material\";\nimport { useKeycloak } from \"@react-keycloak/web\";\nimport { useNavigate } from \"react-router-dom\";\nimport {\n avatarStyles,\n containerStyles,\n greetingStyles,\n greetingStylesTablet,\n iconStackStyles,\n imageStyles,\n leftContainerStyles,\n rightContainerStyles,\n rootStyles,\n textDividerStyles,\n} from \"./appBarStyles\";\nimport { TextDivider } from \"../other/TextDivider\";\nimport MailPhoneIcon from \"../icons/MailPhoneIcon\";\nimport MailIcon from \"../icons/MailIcon\";\nimport { aepPalette } from \"../../../styles/aepPalette\";\nimport PharmacyPicker from \"./elements/PharmacyPicker\";\nimport UserContext from \"../../contexts/UserContext\";\nimport CustomerContext from \"../../contexts/CustomerContext\";\nimport { UserDtoPermissionsEnum } from \"../../../api\";\nimport UserMenu from \"./elements/UserMenu\";\nimport AepLogo from \"../../../assets/images/AEP-Logo-mit-claim-RGB.svg\";\nimport ImageWrapper from \"../../wrappers/ImageWrapper\";\nimport IconButton from \"../button/IconButton\";\nimport { CustomBadge } from \"./CustomBadge\";\nimport ApiWrapper from \"../../wrappers/ApiWrapper\";\nimport sanitizeHtml from \"sanitize-html\";\nimport Counter from \"./elements/Counter\";\n\ninterface AppBarProps {\n bodyRef: React.MutableRefObject;\n}\n\nconst AppBar = (props: AppBarProps) => {\n const counterApi = new ApiWrapper().counterControllerApi();\n const messageApi = new ApiWrapper().messageControllerApi();\n\n const { customerNumber, unreadMessageCount, updateUnreadMessageCount } =\n useContext(CustomerContext);\n const { bodyRef } = props;\n const { keycloak } = useKeycloak();\n const { checkUserRole } = useContext(UserContext);\n const [greeting, setGreeting] = useState(\"\");\n const [boxShadow, setBoxShadow] = useState(false);\n const [sanitizedCounterModalHtml, setSanitizedCounterModalHtml] =\n useState(\"\");\n const [userMenuOpen, setUserMenuOpen] = useState(false);\n const avatarRef = useRef();\n\n const navigate = useNavigate();\n\n const formatInitials = () => {\n const initials = [\n keycloak.tokenParsed?.given_name.charAt(0),\n keycloak.tokenParsed?.family_name.charAt(0),\n ];\n\n return initials.join(\"\");\n };\n\n const user = {\n initials: formatInitials(),\n name: keycloak.tokenParsed?.name,\n title: keycloak.tokenParsed?.title,\n };\n\n const renderGreeting = (tablet?: boolean) => {\n return (\n \n \n {greeting} {user.title && `${user.title} `}\n {user.name},\n \n \n was können wir heute für Sie tun?\n \n \n );\n };\n\n const toggleUserMenuOpen = () => {\n setUserMenuOpen(!userMenuOpen);\n };\n\n const generateGreeting = (): string => {\n const localTime = new Date().getHours();\n\n if (localTime <= 10) {\n return \"Guten Morgen\";\n } else if (localTime <= 18) {\n return \"Guten Tag\";\n } else {\n return \"Guten Abend\";\n }\n };\n\n const addScrollEventToBody = (): void => {\n bodyRef.current?.addEventListener(\"scroll\", () => {\n if (bodyRef.current?.scrollTop !== 0) {\n setBoxShadow(true);\n } else {\n setBoxShadow(false);\n }\n });\n };\n\n useEffect(() => {\n setGreeting(generateGreeting());\n addScrollEventToBody();\n }, []);\n\n useEffect(() => {\n updateUnreadMessageCount(0);\n setSanitizedCounterModalHtml(\"\");\n\n if (customerNumber) {\n messageApi.getUnreadMessageCount(customerNumber).then((res) => {\n updateUnreadMessageCount(res.data.count);\n });\n\n counterApi.getCounter(customerNumber).then((res) => {\n const sanitizedHTML = sanitizeHtml(res.data.content || \"\", {\n allowedTags: [\"b\", \"br\"],\n });\n\n setSanitizedCounterModalHtml(sanitizedHTML);\n });\n }\n }, [customerNumber]);\n\n return (\n \n \n \n \n \n {renderGreeting()}\n \n \n \n \n }\n onClick={() => navigate(\"kontakt\")}\n />\n \n {checkUserRole([UserDtoPermissionsEnum.Postfach]) && (\n 0 ? (\n \n \n \n ) : (\n \n )\n }\n onClick={() => navigate(\"postfach\")}\n />\n )}\n {checkUserRole([UserDtoPermissionsEnum.Analysen]) &&\n !!sanitizedCounterModalHtml ? (\n \n ) : (\n <>\n )}\n }\n onClick={toggleUserMenuOpen}\n sx={avatarStyles}\n >\n {user.initials}\n \n setUserMenuOpen(false)}\n open={userMenuOpen}\n />\n \n \n \n {renderGreeting(true)}\n \n \n );\n};\n\nexport default AppBar;\n","import { SxProps, Theme } from \"@mui/material\";\nimport { aepPalette } from \"../../../styles/aepPalette\";\n\nexport const employeesTimeout = 1000;\n\nexport const topBoxStyles: SxProps = {\n borderTopLeftRadius: \"5px\",\n borderTopRightRadius: \"5px\",\n transition: `border ${employeesTimeout / 1000}s`,\n};\n\n// employee accordion\nexport const iconStyles: SxProps = {\n color: aepPalette.base.main,\n \"&:hover\": { color: aepPalette.secondary.main },\n};\n\n// employee form\nexport const rootBoxStyles: SxProps = {\n backgroundColor: aepPalette.secondary.lighter,\n height: \"100%\",\n position: \"relative\",\n pt: 5,\n px: 8,\n};\n\nexport const inputColumnStackStyles: SxProps = {\n flexDirection: \"column\",\n mt: 1,\n width: \"550px\",\n};\n\nexport const inputColumnStyles: SxProps = {\n flexDirection: \"row\",\n justifyContent: \"space-between\",\n};\n\nexport const formTextFieldStyles: SxProps = {\n width: \"220px\",\n mb: 1,\n};\n\n// permission chips\nexport const expandMoreIconStyles: SxProps = {\n width: \"24px\",\n height: \"24px\",\n position: \"absolute\",\n top: 7,\n right: 16,\n cursor: \"pointer\",\n transition: \"transform 0.2s ease-in-out\",\n};\n\nexport const permissionChipDropdownBoxOuterStyles: SxProps = {\n display: \"inline-flex\",\n width: \"fit-content\",\n flexDirection: \"column\",\n};\n\nexport const permissionChipDropdownBoxInnerStyles: SxProps = {\n display: \"inline\",\n position: \"relative\",\n width: \"fit-content\",\n \"&:hover\": {\n \"& > svg\": {\n color: aepPalette.base.lighter,\n },\n },\n};\n","import { Chip, ChipProps, Collapse } from \"@mui/material\";\nimport CheckIcon from \"@mui/icons-material/Check\";\nimport { UserDtoPermissionsEnum } from \"../../../../api\";\n\ninterface PermissionChipProps extends ChipProps {\n checkAccessRights: (pageName: UserDtoPermissionsEnum) => boolean;\n disabled?: boolean;\n label: UserDtoPermissionsEnum;\n}\n\nconst PermissionChip = (props: PermissionChipProps): JSX.Element => {\n const { checkAccessRights, disabled, label, onClick } = props;\n\n return (\n \n \n \n }\n label={label}\n variant={checkAccessRights(label) ? \"checked\" : \"filled\"}\n sx={{ m: 0.5, width: \"fit-content\" }}\n />\n );\n};\n\nexport default PermissionChip;\n","import { Box, Chip, Collapse } from \"@mui/material\";\nimport CheckIcon from \"@mui/icons-material/Check\";\nimport ExpandMoreIcon from \"@mui/icons-material/ExpandMore\";\nimport { UserDtoPermissionsEnum } from \"../../../../api\";\nimport { aepPalette } from \"../../../../styles/aepPalette\";\nimport { useRef, useState } from \"react\";\nimport {\n expandMoreIconStyles,\n permissionChipDropdownBoxOuterStyles,\n permissionChipDropdownBoxInnerStyles,\n} from \"../employeesStyles\";\n\ninterface PermissionChipDropdownProps {\n children: JSX.Element | JSX.Element[];\n checkAccessRights: (\n pageName: UserDtoPermissionsEnum | UserDtoPermissionsEnum[]\n ) => boolean;\n disabled?: boolean;\n label: string;\n childPermissions: UserDtoPermissionsEnum[];\n onClick?: () => void;\n}\n\nconst PermissionChipDropdown = (\n props: PermissionChipDropdownProps\n): JSX.Element => {\n const {\n checkAccessRights,\n children,\n childPermissions,\n disabled,\n label,\n onClick,\n } = props;\n const [open, setOpen] = useState(false);\n const parentRef = useRef(null);\n\n return (\n \n \n \n \n \n }\n label={label}\n variant={checkAccessRights(childPermissions) ? \"checked\" : \"filled\"}\n sx={{\n m: 0.5,\n pr: 4,\n }}\n />\n setOpen(!open)}\n sx={{\n ...expandMoreIconStyles,\n transform: open ? \"rotate(180deg)\" : \"\",\n color: checkAccessRights(childPermissions)\n ? aepPalette.base.lighter\n : aepPalette.secondary.dark,\n }}\n />\n \n *\": {\n maxHeight: open ? \"1000px\" : \"0px\",\n transition: \"max-height linear 0.3s, opacity linear 0.3s\",\n opacity: open ? 1 : 0,\n },\n }}\n >\n {children}\n \n \n );\n};\n\nexport default PermissionChipDropdown;\n","import { Box, Stack, Typography } from \"@mui/material\";\nimport PermissionChip from \"./PermissionChip\";\nimport Checkbox from \"@mui/material/Checkbox\";\nimport { UserDtoPermissionsEnum } from \"../../../../api\";\nimport PermissionChipDropdown from \"./PermissionChipDropdown\";\n\ninterface EmployeePermissionsProps {\n permissions: UserDtoPermissionsEnum[];\n setPermissions: React.Dispatch<\n React.SetStateAction\n >;\n}\n\ntype PagePermission = UserDtoPermissionsEnum | UserDtoPermissionsEnum[];\n\nconst EmployeePermissions = (props: EmployeePermissionsProps) => {\n const { permissions, setPermissions } = props;\n\n const checkAccessRights = (requiredPermissions: PagePermission) => {\n const isAdmin = permissions.includes(UserDtoPermissionsEnum.Admin);\n\n if (isAdmin) {\n return true; // Admin has access to all pages\n }\n\n if (Array.isArray(requiredPermissions)) {\n return requiredPermissions.every((name) => permissions.includes(name));\n } else {\n return permissions.includes(requiredPermissions);\n }\n };\n\n const handleUpdateChip = (pageName: UserDtoPermissionsEnum) => {\n if (permissions.includes(pageName)) {\n setPermissions((prevState) => [\n ...prevState.filter((name) => name !== pageName),\n ]);\n } else {\n setPermissions((prevState) => [...prevState, pageName]);\n }\n };\n\n const handleUpdateMultipleChips = (pageNames: UserDtoPermissionsEnum[]) => {\n const isInPermissions = (pageName: UserDtoPermissionsEnum) =>\n permissions.includes(pageName);\n\n if (pageNames.every(isInPermissions)) {\n setPermissions((prevState) => [\n ...prevState.filter((name) => !pageNames.includes(name)),\n ]);\n } else {\n setPermissions((prevState) => [...prevState, ...pageNames]);\n }\n };\n\n const BelegePermissions = [\n UserDtoPermissionsEnum.Lieferscheine,\n UserDtoPermissionsEnum.Monatsberichte,\n UserDtoPermissionsEnum.Nachbelastungen,\n UserDtoPermissionsEnum.Gutschriften,\n UserDtoPermissionsEnum.Sammelrechnungen,\n ];\n\n return (\n <>\n \n Berechtigungen Ihres Mitarbeiters\n \n \n Berechtigung zum Admin\n \n \n {\n if (permissions.includes(UserDtoPermissionsEnum.Admin)) {\n setPermissions((prevState) => [\n ...prevState.filter(\n (permission) => permission !== UserDtoPermissionsEnum.Admin\n ),\n ]);\n } else {\n setPermissions((prevState) => [\n ...prevState,\n UserDtoPermissionsEnum.Admin,\n ]);\n }\n }}\n inputProps={{\n \"aria-label\": \"Mitarbeiter zum Admin berechtigen\",\n }}\n sx={{ mr: 2 }}\n />\n \n \n Mitarbeiter zum Admin berechtigen\n \n \n Ihr Mitarbeiter hat Zugriff auf alle Ansichten und\n Bearbeitungsfunktionen (Belege, Bestellungen, Analysen, AEP im\n Blick, Postfach und Stammdaten)\n \n \n \n \n Einzelberechtigungen für Ihren Mitarbeiter\n \n \n handleUpdateMultipleChips(BelegePermissions)}\n checkAccessRights={checkAccessRights}\n >\n \n handleUpdateChip(UserDtoPermissionsEnum.Gutschriften)\n }\n checkAccessRights={checkAccessRights}\n />\n \n handleUpdateChip(UserDtoPermissionsEnum.Lieferscheine)\n }\n checkAccessRights={checkAccessRights}\n />\n \n handleUpdateChip(UserDtoPermissionsEnum.Monatsberichte)\n }\n checkAccessRights={checkAccessRights}\n />\n \n handleUpdateChip(UserDtoPermissionsEnum.Nachbelastungen)\n }\n checkAccessRights={checkAccessRights}\n />\n \n handleUpdateChip(UserDtoPermissionsEnum.Sammelrechnungen)\n }\n checkAccessRights={checkAccessRights}\n />\n \n handleUpdateChip(UserDtoPermissionsEnum.Bestellungen)}\n checkAccessRights={checkAccessRights}\n />\n handleUpdateChip(UserDtoPermissionsEnum.Analysen)}\n checkAccessRights={checkAccessRights}\n />\n handleUpdateChip(UserDtoPermissionsEnum.AepImBlick)}\n checkAccessRights={checkAccessRights}\n />\n handleUpdateChip(UserDtoPermissionsEnum.Postfach)}\n checkAccessRights={checkAccessRights}\n />\n handleUpdateChip(UserDtoPermissionsEnum.Stammdaten)}\n checkAccessRights={checkAccessRights}\n />\n handleUpdateChip(UserDtoPermissionsEnum.Statistiken)}\n checkAccessRights={checkAccessRights}\n />\n \n \n );\n};\n\nexport default EmployeePermissions;\n","import { useContext, useEffect, useState } from \"react\";\nimport { Button, Stack, Typography, AccordionDetails } from \"@mui/material\";\nimport TextField from \"../../../components/textfield/TextField\";\nimport { UserDto, UserDtoPermissionsEnum } from \"../../../../api\";\nimport { Formik, FormikErrors } from \"formik\";\nimport ApiWrapper from \"../../../wrappers/ApiWrapper\";\nimport CustomerContext from \"../../../contexts/CustomerContext\";\nimport {\n formTextFieldStyles,\n inputColumnStackStyles,\n inputColumnStyles,\n rootBoxStyles,\n} from \"../employeesStyles\";\nimport SnackbarContext from \"../../../contexts/SnackbarContext\";\nimport EmployeePermissions from \"./EmployeePermissions\";\n\ninterface EmployeeFormProps {\n employeeData: UserDto;\n newEmployee?: boolean;\n shown: boolean;\n userCreated?: (user: UserDto) => void;\n}\n\ninterface LocalFormikValues extends UserDto {\n initialPasswordRepeat?: string;\n}\n\nconst EmployeeForm = (props: EmployeeFormProps) => {\n const api = new ApiWrapper().userControllerApi();\n const { customerNumber } = useContext(CustomerContext);\n const { handleHttpError, showSnackbar, handleError } =\n useContext(SnackbarContext);\n const { shown, employeeData, newEmployee, userCreated } = props;\n const [permissions, setPermissions] = useState([]);\n const pwFillerString = \"******\";\n\n const initialValues: LocalFormikValues = {\n title: employeeData.title || \"\",\n firstName: employeeData.firstName || \"\",\n lastName: employeeData.lastName || \"\",\n initialPassword: !newEmployee ? pwFillerString : \"\",\n initialPasswordRepeat: !newEmployee ? pwFillerString : \"\",\n email: employeeData.email || \"\",\n permissions: employeeData.permissions || [],\n };\n\n const loadUser = () => {\n if (employeeData.userName) {\n return api\n .getUser(customerNumber, employeeData.userName)\n .then((res) => {\n setPermissions(res.data.permissions || []);\n })\n .catch(() => {\n handleEmployeesError();\n });\n }\n };\n\n const handleEmployeesError = () => {\n handleError(\n \"Aktuell ist die Anzeige der Mitarbeiter nicht möglich. Bitte kontaktieren Sie das Service Center.\"\n );\n };\n\n useEffect(() => {\n if (shown && permissions.length === 0) {\n loadUser();\n }\n }, [employeeData, shown]);\n\n return (\n \n {\n const errors: FormikErrors = {};\n const hasValidEmail = values.email\n ? /\\S+@\\S+\\.\\S+/.test(values.email)\n : true;\n\n if (!values.firstName) {\n errors.firstName = \"Erforderlich\";\n }\n if (!values.lastName) {\n errors.lastName = \"Erforderlich\";\n }\n if (!hasValidEmail) {\n errors.email = \"Ungültige E-Mail-Adresse\";\n }\n if (newEmployee && !values.initialPassword) {\n errors.initialPassword = \"Erforderlich\";\n }\n if (values.initialPassword !== values.initialPasswordRepeat) {\n errors.initialPasswordRepeat = \"Passwort stimmt nicht überein\";\n }\n return errors;\n }}\n onSubmit={(values, { setSubmitting }) => {\n values.permissions = permissions;\n\n if (values.initialPassword === pwFillerString) {\n values.initialPassword = \"\";\n }\n const apiValues = Object.assign({}, values);\n delete apiValues.initialPasswordRepeat;\n\n if (newEmployee) {\n api\n .createUser(customerNumber, apiValues)\n .then((res) => {\n showSnackbar(\"success\", \"Benutzer erfolgreich erstellt\");\n if (userCreated) {\n apiValues.userName = res.data.userName;\n apiValues.initialPassword = \"\";\n userCreated(apiValues);\n }\n })\n .catch(handleHttpError)\n .finally(() => {\n setSubmitting(false);\n });\n } else if (employeeData.userName) {\n api\n .updateUser(customerNumber, employeeData.userName, apiValues)\n .then(() => {\n showSnackbar(\"success\", \"Benutzer erfolgreich aktualisiert\");\n if (values.initialPassword === \"\") {\n values.initialPassword = pwFillerString;\n values.initialPasswordRepeat = pwFillerString;\n }\n })\n .catch(handleHttpError)\n .finally(() => {\n setSubmitting(false);\n });\n }\n }}\n >\n {({\n values,\n errors,\n touched,\n handleChange,\n handleBlur,\n handleSubmit,\n isSubmitting,\n }) => (\n
\n \n Profil Ihres Mitarbeiters\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {isSubmitting ? \"In Arbeit...\" : \"Speichern\"}\n \n \n )}\n \n
\n );\n};\n\nexport default EmployeeForm;\n","import {\n Stack,\n Typography,\n Accordion,\n AccordionSummary,\n CircularProgress,\n} from \"@mui/material\";\nimport DeleteForeverIcon from \"@mui/icons-material/DeleteForever\";\nimport EditIcon from \"@mui/icons-material/Edit\";\nimport EmployeeForm from \"./EmployeeForm\";\nimport { iconStyles } from \"../employeesStyles\";\nimport { UserDto } from \"../../../../api\";\nimport ApiWrapper from \"../../../wrappers/ApiWrapper\";\nimport { useContext, useState } from \"react\";\nimport CustomerContext from \"../../../contexts/CustomerContext\";\nimport SnackbarContext from \"../../../contexts/SnackbarContext\";\n\ninterface EmployeeAccordionProps {\n employeeData: UserDto;\n expanded: boolean;\n handleExpansion: () => void;\n loadUsers: () => Promise;\n handleEmployeesError: () => void;\n}\n\nconst EmployeeAccordion = (props: EmployeeAccordionProps) => {\n const {\n employeeData,\n handleExpansion,\n expanded,\n loadUsers,\n handleEmployeesError,\n } = props;\n let rowValue = `${employeeData.firstName} ${employeeData.lastName || \"\"}`;\n if (employeeData.title) {\n rowValue = `${employeeData.title} ${rowValue}`;\n }\n\n const [isDeleting, setIsDeleting] = useState(false);\n\n const { customerNumber } = useContext(CustomerContext);\n const { showSnackbar } = useContext(SnackbarContext);\n const api = new ApiWrapper().userControllerApi();\n\n const deleteUser = () => {\n setIsDeleting(true);\n api\n .deleteUser(customerNumber, employeeData.userName || \"\")\n .then(() => {\n loadUsers()\n .then(() => setIsDeleting(false))\n .finally(() => {\n showSnackbar(\"success\", \"Benutzer erfolgreich gelöscht\");\n });\n })\n .catch(() => {\n setIsDeleting(false);\n handleEmployeesError();\n });\n };\n\n return (\n \n \n \n {rowValue}\n \n \n \n {isDeleting ? (\n \n ) : (\n \n )}\n \n \n \n \n );\n};\n\nexport default EmployeeAccordion;\n","import { useContext, useEffect, useState } from \"react\";\nimport {\n Accordion,\n Box,\n Button,\n Collapse,\n Fade,\n LinearProgress,\n Typography,\n} from \"@mui/material\";\nimport EmployeeAccordion from \"./elements/EmployeeAccordion\";\nimport AddIcon from \"@mui/icons-material/Add\";\nimport { employeesTimeout, topBoxStyles } from \"./employeesStyles\";\nimport CustomerContext from \"../../contexts/CustomerContext\";\nimport ApiWrapper from \"../../wrappers/ApiWrapper\";\nimport { UserDto } from \"../../../api\";\nimport EmployeeForm from \"./elements/EmployeeForm\";\nimport SnackbarContext from \"../../contexts/SnackbarContext\";\n\nconst Employees = () => {\n const api = new ApiWrapper().userControllerApi();\n\n const [loading, setLoading] = useState(true);\n const [isError, setError] = useState(false);\n const [addNewEmployee, setAddNewEmployee] = useState(false);\n const [employees, setEmployees] = useState([]);\n const [expandedIndex, setExpandedIndex] = useState(null);\n\n const { customerNumber } = useContext(CustomerContext);\n const { handleError } = useContext(SnackbarContext);\n\n const verifyEmployeeData = (employeeData: UserDto): boolean => {\n return !!employeeData.firstName;\n };\n\n const handleExpansion = (index: number) => {\n if (expandedIndex === index) {\n setExpandedIndex(null);\n } else {\n setExpandedIndex(index);\n }\n };\n\n const handleAddUser = (user: UserDto) => {\n setEmployees([...employees, user]);\n setAddNewEmployee(false);\n };\n\n const handleEmployeesError = () => {\n handleError(\n \"Aktuell ist die Anzeige der Mitarbeiter nicht möglich. Bitte kontaktieren Sie das Service Center.\"\n );\n setExpandedIndex(null);\n setError(true);\n setLoading(false);\n };\n\n const loadUsers = (): Promise => {\n return api\n .getAllUsers(customerNumber)\n .then((res) => {\n setEmployees(res.data);\n setExpandedIndex(null);\n })\n .catch(() => {\n handleEmployeesError();\n });\n };\n\n useEffect(() => {\n let isApiSubscribed = true;\n setEmployees([]);\n setError(false);\n\n if (isApiSubscribed && customerNumber) {\n setLoading(true);\n\n loadUsers()\n .catch()\n .finally(() => {\n setLoading(false);\n });\n }\n\n return () => {\n isApiSubscribed = false;\n };\n }, [customerNumber]);\n\n return (\n \n \n \n Ihre Mitarbeiter{\" \"}\n \n werden geladen...\n \n \n \n \n \n {!loading && employees.length === 0 ? (\n \n In der aktuell ausgewählten Apotheke sind keine Mitarbeiter\n registriert!\n \n ) : (\n <>\n )}\n {employees.map((employee: UserDto, index) => {\n if (verifyEmployeeData(employee)) {\n return (\n \n
\n handleExpansion(index)}\n loadUsers={loadUsers}\n handleEmployeesError={handleEmployeesError}\n />\n
\n \n );\n }\n })}\n
\n {addNewEmployee && (\n \n \n handleAddUser(data)}\n shown\n />\n \n \n )}\n {!isError && !loading ? (\n {\n setAddNewEmployee(!addNewEmployee);\n }}\n variant=\"primary\"\n startIcon={}\n sx={{ mt: 3, float: \"right\" }}\n >\n Mitarbeiter hinzufügen\n \n ) : (\n <>\n )}\n {/* Box for page bottom margin */}\n \n \n );\n};\n\nexport default Employees;\n","import { SxProps, Theme } from \"@mui/material\";\nimport { aepPalette } from \"../../../styles/aepPalette\";\n\nexport const itemRootStackStyles: SxProps = {\n maxWidth: {\n xs: \"237px\",\n md: \"800px\",\n },\n mb: 10,\n flexDirection: {\n xs: \"column\",\n md: \"row\",\n },\n};\n\nexport const itemImageWrapperStyles: SxProps = {\n objectFit: \"cover\",\n mb: {\n xs: 4,\n md: 0,\n },\n mr: {\n xs: 0,\n md: 3,\n },\n height: {\n xs: \"158px\",\n md: \"200px\",\n },\n width: {\n xs: \"237px\",\n md: \"300px\",\n },\n};\n\nexport const itemDisplayDateStyles: SxProps = {\n color: aepPalette.primary.main,\n fontSize: \"1.1rem\",\n};\n\nexport const itemHeaderStyles: SxProps = { mb: 1, whiteSpace: \"nowrap\" };\n\nexport const itemTeaserTextStyles: SxProps = {\n overflow: \"hidden\",\n fontSize: {\n xs: \"1.3rem\",\n md: \"1.4rem\",\n },\n maxHeight: {\n xs: \"\",\n md: \"90px\",\n },\n};\n\nexport const itemNavButtonStyles: SxProps = {\n bottom: {\n xs: -40,\n md: 0,\n },\n left: {\n xs: -16,\n md: 0,\n },\n color: \"secondary.dark\",\n position: \"absolute\",\n textDecoration: \"none\",\n};\n\nexport const itemDetailsRootStackStyles: SxProps = {\n maxWidth: \"650px\",\n width: \"90%\",\n};\n\nexport const arrowUpwardsStyles: SxProps = {\n backgroundColor: aepPalette.base.light,\n borderRadius: \"50%\",\n bottom: \"100px\",\n cursor: \"pointer\",\n position: \"fixed\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n px: 1,\n py: 1,\n right: \"7%\",\n \"&:hover\": {\n backgroundColor: aepPalette.base.main,\n },\n};\n","import { Box, Stack, Typography } from \"@mui/material\";\nimport { deDateStringFormat } from \"../../service/CustomDateService\";\nimport NavButton from \"../../components/button/NavButton\";\nimport ImageWrapper from \"../../wrappers/ImageWrapper\";\nimport {\n itemDisplayDateStyles,\n itemHeaderStyles,\n itemImageWrapperStyles,\n itemNavButtonStyles,\n itemRootStackStyles,\n itemTeaserTextStyles,\n} from \"./newsStyles\";\nimport StrapiData from \"../../../strapi/models/StrapiData\";\nimport Article from \"../../../strapi/models/Article\";\n\ninterface NewsItemProps {\n article: StrapiData
;\n baseURL: string;\n fadeIn: boolean;\n timeout: number;\n toggleDetailView: () => void;\n}\n\nconst NewsItem = (props: NewsItemProps) => {\n const { article, baseURL, toggleDetailView } = props;\n const { gueltigVon, heroBild, teaserText, titel } = article.attributes;\n const displayDate = new Date(gueltigVon);\n const bildUrl = heroBild.data?.attributes?.url;\n const img = `${baseURL}/contentmanager${bildUrl}`;\n\n return (\n \n {bildUrl ? (\n \n ) : (\n \n )}\n \n \n \n {deDateStringFormat(displayDate)}\n \n \n {titel}\n \n \n {teaserText}\n \n \n \n \n \n );\n};\n\nexport default NewsItem;\n","import { Box, Skeleton, Stack, Typography, Fade } from \"@mui/material\";\nimport {\n itemHeaderStyles,\n itemImageWrapperStyles,\n itemRootStackStyles,\n itemTeaserTextStyles,\n} from \"./newsStyles\";\n\ninterface NewsSkeletonProps {\n fadeIn?: boolean;\n timeout?: number;\n}\n\nconst NewsSkeleton = (props: NewsSkeletonProps) => {\n const { fadeIn, timeout } = props;\n\n return (\n // fade out only\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default NewsSkeleton;\n","import { Box, Stack, Typography } from \"@mui/material\";\nimport showdown from \"showdown\";\nimport { aepPalette } from \"../../../styles/aepPalette\";\nimport { deDateStringFormat } from \"../../service/CustomDateService\";\nimport ImageWrapper from \"../../wrappers/ImageWrapper\";\nimport {\n itemDetailsRootStackStyles,\n itemDisplayDateStyles,\n itemHeaderStyles,\n itemTeaserTextStyles,\n} from \"./newsStyles\";\nimport { aepTypography } from \"../../../styles/aepTypography\";\nimport StrapiData from \"../../../strapi/models/StrapiData\";\nimport Article from \"../../../strapi/models/Article\";\n\ninterface NewsItemDetailsProps {\n article: StrapiData
;\n baseURL: string;\n fadeIn: boolean;\n id: string;\n timeout: number;\n lastInList?: boolean;\n}\n\nconst NewsItemDetails = (props: NewsItemDetailsProps) => {\n const markdownConverter = new showdown.Converter();\n\n const { article, baseURL, id, lastInList } = props;\n const { bodyText, gueltigVon, heroBild, teaserText, titel } =\n article.attributes;\n\n const bodyTextHtml = markdownConverter.makeHtml(bodyText);\n const displayDate = new Date(gueltigVon);\n const bildUrl = heroBild.data?.attributes?.url;\n const img = `${baseURL}/contentmanager${bildUrl}`;\n\n const renderBodyText = (htmlString: string): JSX.Element => (\n \n );\n\n return (\n \n \n \n \n {deDateStringFormat(displayDate)}\n \n \n {titel}\n \n \n {teaserText}\n \n \n \n {renderBodyText(bodyTextHtml)}\n {!lastInList && (\n \n )}\n \n \n );\n};\n\nexport default NewsItemDetails;\n","/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { useContext, useEffect, useRef, useState } from \"react\";\nimport { Box, Typography } from \"@mui/material\";\nimport { useKeycloak } from \"@react-keycloak/web\";\nimport StrapiData from \"../../../strapi/models/StrapiData\";\nimport StrapiApi from \"../../../strapi/StrapiApi\";\nimport NewsItem from \"./NewsItem\";\nimport Article from \"../../../strapi/models/Article\";\nimport SnackbarContext from \"../../contexts/SnackbarContext\";\nimport NewsItemSkeleton from \"./NewsItemSkeleton\";\nimport NavButton from \"../../components/button/NavButton\";\nimport NewsItemDetails from \"./NewsItemDetails\";\nimport ArrowUpwardIcon from \"@mui/icons-material/ArrowUpward\";\nimport { aepPalette } from \"../../../styles/aepPalette\";\nimport { fadeTimeout } from \"../../App\";\nimport { arrowUpwardsStyles } from \"./newsStyles\";\nimport CustomerContext from \"../../contexts/CustomerContext\";\nimport CenteredTextMessage from \"../../components/other/CenteredTextMessage\";\n\nconst News = () => {\n const { keycloak } = useKeycloak();\n const { customerNumber } = useContext(CustomerContext);\n const strapiApi = new StrapiApi(keycloak.token || \"\", customerNumber);\n const { handleHttpError } = useContext(SnackbarContext);\n const [articles, setArticles] = useState>>([]);\n const [loading, setLoading] = useState(true);\n const [detailView, setDetailView] = useState(false);\n\n const renderOverviewSkeleton = (): JSX.Element => (\n \n \n \n \n \n );\n\n const toggleDetailView = (open: boolean, id?: string): void => {\n setDetailView(open);\n\n if (open && id) {\n setTimeout(() => {\n document.getElementById(id)?.scrollIntoView();\n }, 0);\n }\n };\n const scrollToTop = (): void => {\n document.getElementById(`artikel-${articles[0].id}`)?.scrollIntoView();\n };\n\n useEffect(() => {\n let isApiSubscribed = true;\n\n if (isApiSubscribed && customerNumber) {\n strapiApi\n .getAllArticles()\n .then((res) => {\n setArticles(res.data.data);\n })\n .catch(handleHttpError)\n .finally(() => setLoading(false));\n }\n\n return () => {\n isApiSubscribed = false;\n };\n }, [customerNumber]);\n\n if (articles.length == 0) {\n return (\n \n );\n }\n\n return detailView ? (\n // DETAIL VIEW\n \n toggleDetailView(false)}\n />\n {articles.map((article, index) => {\n return (\n \n );\n })}\n \n \n \n \n ) : (\n // OVERVIEW\n \n \n Neuigkeiten und Aktionen von AEP\n \n {renderOverviewSkeleton()}\n {articles?.map((article) => {\n return (\n \n toggleDetailView(true, `artikel-${article.id}`)\n }\n />\n );\n })}\n \n \n );\n};\n\nexport default News;\n","import { SxProps, Theme } from \"@mui/material\";\n\nexport const gridContainerStyles: SxProps = {\n \"& > div\": {\n maxWidth: {\n xs: \"472px\",\n lg: \"100%\",\n },\n height: \"fit-content\",\n },\n};\n\nexport const formTextFieldStyles: SxProps = {\n mb: 1,\n};\n\nexport const buttonStyles: SxProps = {\n float: \"right\",\n position: \"absolute\",\n right: \"24px\",\n bottom: \"24px\",\n margin: \"0\",\n};\n\nexport const contactCardTypographyStyles: SxProps = { pb: 3 };\n","import { useContext } from \"react\";\nimport { Formik, FormikErrors } from \"formik\";\nimport { Box, Typography, TextField, Button, Stack } from \"@mui/material\";\nimport Card, { CardProps } from \"../../../components/card/Card\";\nimport ApiWrapper from \"../../../wrappers/ApiWrapper\";\nimport { formTextFieldStyles, buttonStyles } from \"../contactStyles\";\nimport CustomerContext from \"../../../contexts/CustomerContext\";\nimport UserContext from \"../../../contexts/UserContext\";\nimport SnackbarContext from \"../../../contexts/SnackbarContext\";\n\nexport interface ContactMessageCardProps extends CardProps {\n buttonText?: string;\n}\n\ninterface LocalFormikValues {\n subject: string;\n message: string;\n}\n\nconst initialValues: LocalFormikValues = {\n subject: \"\",\n message: \"\",\n};\n\nconst ContactMessageCard = (props: ContactMessageCardProps): JSX.Element => {\n const api = new ApiWrapper().messageControllerApi();\n const { customerNumber } = useContext(CustomerContext);\n const { userFullName } = useContext(UserContext);\n const { showSnackbar, handleError } = useContext(SnackbarContext);\n const { sx } = props;\n\n return (\n \n \n \n {\n const errors: FormikErrors = {};\n if (!values.subject) {\n errors.subject = \"Erforderlich\";\n }\n if (!values.message) {\n errors.message = \"Erforderlich\";\n }\n return errors;\n }}\n onSubmit={async (values, { setSubmitting, resetForm }) => {\n try {\n const { status } = await api.postMessage(customerNumber, {\n subject: values.subject,\n message: values.message,\n userid: userFullName,\n });\n if (status === 201) {\n showSnackbar(\n \"success\",\n \"Nachricht wurde erfolgreich versendet\"\n );\n }\n } catch (error) {\n handleError(\"Nachricht konnte nicht versendet werden\");\n }\n setSubmitting(false);\n resetForm();\n }}\n >\n {({\n values,\n errors,\n touched,\n handleChange,\n handleBlur,\n handleSubmit,\n isSubmitting,\n }) => (\n
\n \n Kontakt\n \n \n \n \n \n \n
\n )}\n \n
\n
\n \n );\n};\n\nexport default ContactMessageCard;\n","import Card from \"./Card\";\nimport { Typography } from \"@mui/material\";\nimport Contact from \"../../../strapi/models/Contact\";\nimport { contactCardTypographyStyles } from \"../../pages/contact/contactStyles\";\nimport { Link } from \"react-router-dom\";\n\ninterface ContactCardProps {\n contactInfo?: Contact;\n isArticleAdmission?: boolean;\n}\n\nconst ContactCard = (props: ContactCardProps): JSX.Element => {\n const { isArticleAdmission, contactInfo } = props;\n\n return (\n \n \n {isArticleAdmission\n ? \"Haben Sie Fragen zur Artikelneuaufnahme?\"\n : \"Weitere Kontaktmöglichkeiten\"}\n \n {isArticleAdmission && (\n \n \n Kontaktformular\n \n \n )}\n \n {contactInfo?.emailaddresse}\n \n \n T: {contactInfo?.telefonnummer}\n \n \n {contactInfo?.erreichbarkeit}\n \n \n F: {contactInfo?.faxnummer}\n \n \n );\n};\n\nexport default ContactCard;\n","import Card from \"./Card\";\nimport { Typography, Theme, SxProps } from \"@mui/material\";\nimport SalesContact from \"../../../strapi/models/SalesContact\";\nimport ImageWrapper from \"../../wrappers/ImageWrapper\";\nimport {} from \"@mui/system\";\n\ninterface ContactCardProps {\n baseUrl: string;\n contactInfo: SalesContact;\n sx?: SxProps;\n}\n\nconst SalesContactCard = (props: ContactCardProps): JSX.Element => {\n const { baseUrl, contactInfo, sx } = props;\n const bildUrl = contactInfo.bild.data?.attributes?.url;\n const img = `${baseUrl}/contentmanager${bildUrl}`;\n\n return (\n \n \n Ihr Ansprechpartner direkt vor Ort\n \n {bildUrl ? (\n \n ) : (\n <>\n )}\n \n {contactInfo?.vorname.toUpperCase() +\n \" \" +\n contactInfo?.nachname.toUpperCase()}\n \n Außendienstmitarbeiter\n {contactInfo?.telefonnummer}\n \n {contactInfo?.emailaddresse}\n \n \n );\n};\n\nexport default SalesContactCard;\n","import { useContext, useEffect, useState } from \"react\";\nimport { useKeycloak } from \"@react-keycloak/web\";\nimport { Grid } from \"@mui/material\";\nimport ContactMessageCard from \"./cards/ContactMessageCard\";\nimport ContactCard from \"../../components/card/ContactCard\";\nimport StrapiApi from \"../../../strapi/StrapiApi\";\nimport StrapiData from \"../../../strapi/models/StrapiData\";\nimport ContactType from \"../../../strapi/models/Contact\";\nimport SalesContactType from \"../../../strapi/models/SalesContact\";\nimport CustomerContext from \"../../contexts/CustomerContext\";\nimport SalesContactCard from \"../../components/card/SalesContactCard\";\nimport { gridContainerStyles } from \"./contactStyles\";\n\nconst Contact = () => {\n const { keycloak } = useKeycloak();\n const { customerNumber } = useContext(CustomerContext);\n const strapiApi = new StrapiApi(keycloak.token || \"\", customerNumber);\n const [contacts, setContacts] = useState[]>();\n const [salesContacts, setSalesContacts] =\n useState[]>();\n\n useEffect(() => {\n let isApiSubscribed = true;\n\n if (isApiSubscribed && customerNumber) {\n strapiApi.getContacts().then((res) => {\n setContacts(res.data.data);\n });\n strapiApi.getSalesContacts().then((res) => {\n setSalesContacts(res.data.data);\n });\n }\n\n return () => {\n isApiSubscribed = false;\n };\n }, [customerNumber]);\n\n return (\n \n \n \n \n {salesContacts && salesContacts[0] && (\n \n \n \n )}\n {contacts && contacts[0] && (\n \n \n \n )}\n \n );\n};\n\nexport default Contact;\n","import { SxProps, Theme } from \"@mui/material\";\nimport Card from \"../../components/card/Card\";\n\ninterface OfferCardProps {\n children: JSX.Element | JSX.Element[];\n highlight?: boolean;\n loading: boolean;\n sx?: SxProps;\n}\n\nconst OfferCard = (props: OfferCardProps) => {\n const { children, highlight, sx, loading } = props;\n\n return (\n \n {children}\n \n );\n};\n\nexport default OfferCard;\n","import { SxProps, Theme } from \"@mui/material\";\nimport { aepPalette } from \"../../../styles/aepPalette\";\n\nexport const rootBoxStyles: SxProps = {\n display: \"grid\",\n columnGap: \"2.5%\",\n rowGap: 3,\n gridTemplateColumns: {\n md: \"repeat(2, 48.75%)\",\n xs: \"100%\",\n },\n};\n\nexport const typographyInfoStyles: SxProps = {\n fontSize: \"1.3rem\",\n lineHeight: \"2rem\",\n color: aepPalette.base.main,\n whiteSpace: \"nowrap\",\n};\n\nexport const gridContainerStyles: SxProps = {\n display: \"grid\",\n flexGrow: 1,\n overflow: \"auto\",\n px: \"5%\",\n width: \"100%\",\n};\n\nexport const imageWrapperContainerStyles: SxProps = {\n textAlign: \"center\",\n gridColumn: \"1 / 2\",\n overflow: \"hidden\",\n maxHeight: {\n xs: \"245px\",\n lg: \"350px\",\n },\n pr: 3,\n};\n\nexport const imageStyles: SxProps = {\n height: \"100%\",\n objectFit: \"scale-down\",\n};\n\nexport const teaserTextBoxStyles: SxProps = {\n gridColumn: {\n xs: \"2 / 3\",\n lg: \"2 / 4\",\n },\n gridRow: \"1 / 2\",\n};\n\nexport const teaserTextStyles: SxProps = {\n fontSize: \"1.3rem\",\n fontWeight: 300,\n lineHeight: \"2rem\",\n color: aepPalette.font.dark,\n whiteSpace: \"pre-wrap\",\n};\n\nexport const infoBoxOneStyles: SxProps = {\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n gridColumn: \"2 / 3\",\n};\n\nexport const infoBoxTwoStyles: SxProps = {\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n};\n","import { Box, Typography } from \"@mui/material\";\nimport Offer from \"../../../strapi/models/Offer\";\nimport ImageWrapper from \"../../wrappers/ImageWrapper\";\nimport {\n gridContainerStyles,\n typographyInfoStyles,\n imageWrapperContainerStyles,\n imageStyles,\n infoBoxOneStyles,\n infoBoxTwoStyles,\n teaserTextBoxStyles,\n teaserTextStyles,\n} from \"./offersStyles\";\n\ninterface OfferCardContentProps {\n baseUrl: string;\n halfWidth?: boolean;\n highlight?: boolean;\n offerAttributes: Offer;\n}\n\nconst OfferCardContent = (props: OfferCardContentProps) => {\n const { offerAttributes, baseUrl, halfWidth, highlight } = props;\n const {\n artikelName,\n bild,\n mindestmenge,\n packungsgroesse,\n preis,\n pzn,\n rabatt,\n teasertext,\n titel,\n } = offerAttributes;\n const { url } = bild.data.attributes;\n const teaserTextShown = teasertext && highlight;\n\n return (\n <>\n \n {titel}\n \n \n \n {teaserTextShown ? (\n \n {teasertext}\n \n ) : (\n <>\n )}\n \n \n {`${rabatt} % Rabatt*`}\n \n \n {`${preis} € pro Stück`}\n \n\n {`Ab einer Menge von ${mindestmenge} Stück`}\n \n \n {artikelName}\n {packungsgroesse}\n PZN {pzn}\n \n \n \n );\n};\n\nexport default OfferCardContent;\n","import { Box, SxProps, Theme } from \"@mui/material\";\nimport Banner from \"../../../strapi/models/Banner\";\nimport Carousel from \"../../components/carousel/Carousel\";\nimport ImageWrapper from \"../../wrappers/ImageWrapper\";\n\ninterface BannerProps {\n baseUrl: string;\n banners: Array;\n loading: boolean;\n sx?: SxProps;\n}\n\nconst BannerCarousel = (props: BannerProps) => {\n const { baseUrl, banners, sx, loading } = props;\n\n if (banners.length > 0 && window.innerHeight > 770 && !loading) {\n return (\n \n \n {banners?.map((banner, index) => (\n \n \n \n ))}\n \n \n );\n }\n return <>;\n};\n\nexport default BannerCarousel;\n","import { Box, Fade, Typography } from \"@mui/material\";\nimport { useContext, useEffect, useState } from \"react\";\nimport OfferCard from \"./OfferCard\";\nimport StrapiApi from \"../../../strapi/StrapiApi\";\nimport { useKeycloak } from \"@react-keycloak/web\";\nimport SnackbarContext from \"../../contexts/SnackbarContext\";\nimport StrapiData from \"../../../strapi/models/StrapiData\";\nimport Offer from \"../../../strapi/models/Offer\";\nimport { rootBoxStyles } from \"./offersStyles\";\nimport { aepPalette } from \"../../../styles/aepPalette\";\nimport { fadeTimeout } from \"../../App\";\nimport Carousel from \"../../components/carousel/Carousel\";\nimport OfferCardContent from \"./OfferCardContent\";\nimport Banner from \"../../../strapi/models/Banner\";\nimport BannerCarousel from \"./BannerCarousel\";\nimport CustomerContext from \"../../contexts/CustomerContext\";\nimport CeneteredTextMessage from \"../../components/other/CenteredTextMessage\";\n\ntype StrapiOfferData = StrapiData;\n\nconst Offers = () => {\n const { keycloak } = useKeycloak();\n const { customerNumber } = useContext(CustomerContext);\n const strapiApi = new StrapiApi(keycloak.token || \"\", customerNumber);\n const { handleHttpError } = useContext(SnackbarContext);\n const [highlightOffers, setHighlightOffers] = useState<\n Array\n >([]);\n const [priceHitOffers, setPriceHitOffers] = useState>(\n []\n );\n const [offers, setOffers] = useState>([]);\n const [banners, setBanners] = useState>([]);\n const [loading, setLoading] = useState(true);\n\n const filterHighlightOffers = (offers: Array) => {\n let filteredOffers: StrapiOfferData[] = [];\n\n const dailyOffer = offers.filter(\n (offer) => offer.attributes.kategorie === \"Tagesknueller\"\n ).slice(0, 1);\n const topOffers = offers.filter(\n (offer) => offer.attributes.kategorie === \"Topartikel\"\n );\n\n if (dailyOffer.length > 0) {\n filteredOffers = dailyOffer;\n } else {\n filteredOffers = topOffers; //At this point we don't care how many there are (even 0), as deciding is done in render logic\n }\n\n return filteredOffers;\n };\n\n const filterPriceHitOffers = (offers: Array) =>\n offers.filter((offer) => offer.attributes.kategorie === \"Preishit\");\n\n useEffect(() => {\n let isApiSubscribed = true;\n\n if (isApiSubscribed && customerNumber) {\n setLoading(true);\n strapiApi\n .getCategorizedOffers()\n .then((res) => {\n const resHighLightOffers = filterHighlightOffers(res.data.data);\n const resPriceHitOffers = filterPriceHitOffers(res.data.data);\n setHighlightOffers(resHighLightOffers);\n setPriceHitOffers(resPriceHitOffers);\n })\n .then(() =>\n strapiApi.getUncategorizedOffers().then((res) => {\n setOffers(res.data.data);\n })\n )\n .then(() => {\n strapiApi.getBanners().then((res) => {\n setBanners(\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n res.data.data.filter(\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n (banner) => banner.attributes?.bild?.data?.attributes?.url\n )\n );\n });\n })\n .catch(handleHttpError)\n .finally(() => setLoading(false));\n }\n\n return () => {\n isApiSubscribed = false;\n };\n }, [customerNumber]);\n\n return (\n \n \n {highlightOffers.length > 1 ? (\n \n \n {highlightOffers.map((offer) => (\n \n ))}\n \n \n ) : highlightOffers.length > 0 ? (\n highlightOffers.map(\n (offer, index) =>\n index < 2 && (\n \n \n \n )\n )\n ) : (\n <>\n )}\n {priceHitOffers.length > 0 ? (\n \n \n {priceHitOffers.map((offer) => (\n \n ))}\n \n \n ) : (\n <>\n )}\n \n {offers.map((offer) => (\n \n \n \n ))}\n \n {highlightOffers.length == 0 &&\n priceHitOffers.length == 0 &&\n offers.length == 0 ? (\n \n ) : (\n <>\n )}\n 0} timeout={fadeTimeout}>\n \n *Rabatt auf den AEP gem. AMPreisV. Solange der Vorrat reicht.\n \n \n \n \n );\n};\n\nexport default Offers;\n","import { SxProps, Theme } from \"@mui/material\";\nimport { aepPalette } from \"../../../styles/aepPalette\";\n\nexport const rootCardStyles: SxProps = {\n minHeight: {\n xs: \"440px\",\n lg: \"487px\",\n },\n pb: 3,\n px: 3,\n pt: 2,\n};\n\nexport const formTextFieldStyles: SxProps = {\n minWidth: \"180px\",\n width: \"60%\",\n};\n\nexport const buttonStyles: SxProps = {\n width: \"200px\",\n position: \"absolute\",\n bottom: 0,\n right: 0,\n};\n\nexport const inputLabelStyles: SxProps = {\n color: aepPalette.base.light,\n left: \"-14px\",\n top: \"4px\",\n \"&.Mui-focused\": {\n color: aepPalette.secondary.main,\n },\n};\n","import { useContext, useState } from \"react\";\nimport { Formik, FormikErrors } from \"formik\";\nimport {\n Typography,\n TextField,\n Button,\n Stack,\n Select,\n MenuItem,\n InputLabel,\n FormControl,\n} from \"@mui/material\";\nimport Card from \"../../components/card/Card\";\nimport ApiWrapper from \"../../wrappers/ApiWrapper\";\nimport CustomerContext from \"../../contexts/CustomerContext\";\nimport SnackbarContext from \"../../contexts/SnackbarContext\";\nimport {\n ArticleAdmissionRequest,\n ArticleAdmissionRequestFrequencyEnum,\n} from \"../../../api\";\nimport {\n buttonStyles,\n formTextFieldStyles,\n inputLabelStyles,\n rootCardStyles,\n} from \"./articleAdmissionsStyles\";\n\ninterface LocalFormikValues {\n pzn: string;\n frequency: string;\n amount: string;\n}\n\nconst initialValues: LocalFormikValues = {\n pzn: \"\",\n frequency: \"\",\n amount: \"\",\n};\n\nconst ArticleAdmissionsCard = (): JSX.Element => {\n const api = new ApiWrapper().articleAdmissionControllerApi();\n const { customerNumber } = useContext(CustomerContext);\n const { showSnackbar, handleHttpError } = useContext(SnackbarContext);\n const [frequency, setFrequency] = useState(\"\");\n\n return (\n \n {\n const errors: FormikErrors = {};\n if (!values.pzn) {\n errors.pzn = \"Erforderlich\";\n }\n if (values.pzn.match(/\\D/g)) {\n errors.pzn = \"Nur Zahlen erlaubt\";\n }\n if (!(frequency in ArticleAdmissionRequestFrequencyEnum)) {\n errors.frequency = \"Erforderlich\";\n }\n if (!values.amount) {\n errors.amount = \"Erforderlich\";\n }\n if (values.amount.match(/\\D/g)) {\n errors.amount = \"Nur Zahlen sind erlaubt\";\n }\n return errors;\n }}\n onSubmit={(values, { setSubmitting, resetForm }) => {\n const apiValues: ArticleAdmissionRequest = {\n pzn: values.pzn,\n frequency: frequency as ArticleAdmissionRequestFrequencyEnum,\n amount: parseInt(values.amount, 10),\n };\n\n api\n .postArticleAdmission(customerNumber, apiValues)\n .then(() => {\n showSnackbar(\"success\", \"Artikel erfolgreich erstellt\");\n resetForm();\n setFrequency(\"\");\n })\n .catch(handleHttpError)\n .finally(() => {\n setSubmitting(false);\n });\n }}\n >\n {({\n values,\n errors,\n touched,\n handleChange,\n handleBlur,\n handleSubmit,\n isSubmitting,\n }) => (\n \n \n Formular für Artikelneuaufnahme\n \n \n \n \n \n Bestellfrequenz *\n \n {\n setFrequency(e.target.value);\n }}\n value={frequency}\n variant=\"standard\"\n >\n \n Täglich\n \n \n Wöchentlich\n \n \n Monatlich\n \n \n \n \n \n \n \n )}\n \n \n );\n};\n\nexport default ArticleAdmissionsCard;\n","import { useContext, useEffect, useState } from \"react\";\nimport { useKeycloak } from \"@react-keycloak/web\";\nimport { Grid } from \"@mui/material\";\nimport StrapiApi from \"../../../strapi/StrapiApi\";\nimport StrapiData from \"../../../strapi/models/StrapiData\";\nimport ArticleAdmissionsCard from \"./ArticleAdmissionsCard\";\nimport ContactType from \"../../../strapi/models/Contact\";\nimport SalesContactType from \"../../../strapi/models/SalesContact\";\nimport ContactCard from \"../../components/card/ContactCard\";\nimport CustomerContext from \"../../contexts/CustomerContext\";\nimport SalesContactCard from \"../../components/card/SalesContactCard\";\nimport { gridContainerStyles } from \"../contact/contactStyles\";\n\nconst ArticleAdmissions = () => {\n const { keycloak } = useKeycloak();\n const { customerNumber } = useContext(CustomerContext);\n const strapiApi = new StrapiApi(keycloak.token || \"\", customerNumber);\n const [contacts, setContacts] = useState[]>();\n const [salesContacts, setSalesContacts] =\n useState[]>();\n\n useEffect(() => {\n let isApiSubscribed = true;\n\n if (isApiSubscribed && customerNumber) {\n strapiApi.getContacts().then((res) => {\n setContacts(res.data.data);\n });\n strapiApi.getSalesContacts().then((res) => {\n setSalesContacts(res.data.data);\n });\n }\n\n return () => {\n isApiSubscribed = false;\n };\n }, [customerNumber]);\n\n return (\n \n \n \n \n {salesContacts && salesContacts[0] && (\n \n \n \n )}\n {contacts && contacts[0] && (\n \n \n \n )}\n \n );\n};\n\nexport default ArticleAdmissions;\n","import { SxProps, Theme } from \"@mui/material\";\nimport { CSSProperties } from \"react\";\nimport { aepPalette } from \"../../../styles/aepPalette\";\n\nexport const rootBoxStyles: SxProps = {\n px: 2,\n pb: 3,\n backgroundColor: aepPalette.secondary.lighter,\n border: `1px solid ${aepPalette.secondary.light}`,\n borderRadius: \"10px\",\n position: \"relative\",\n};\n\nexport const tableCellStyles: SxProps = {\n paddingBottom: \"16px !important\",\n paddingTop: \"16px !important\",\n};\n\nexport const tableCellInputStyles: CSSProperties = {\n width: \"100px\",\n backgroundColor: aepPalette.secondary.lighter,\n borderRadius: \"5px\",\n border: `1px solid ${aepPalette.secondary.light}`,\n color: aepPalette.font.light,\n fontSize: \"1.2rem\",\n lineHeight: \"2rem\",\n textAlign: \"center\",\n padding: \"5px auto\",\n outline: \"none\",\n};\n","import { Box, Typography } from \"@mui/material\";\nimport { aepPalette } from \"../../../../styles/aepPalette\";\n\nconst ErrorMessageOverlay = () => {\n return (\n \n \n \n Eine Menge muss zwischen 0 und 9999 liegen\n \n \n );\n};\n\nexport default ErrorMessageOverlay;\n","/* eslint-disable @typescript-eslint/ban-ts-comment */\nimport { TableCell, Checkbox, Typography } from \"@mui/material\";\nimport { useContext, useEffect, useState } from \"react\";\nimport { SpecialOrderResponse } from \"../../../../api\";\nimport AnimatedTableRow from \"../../../components/table/AnimatedTableRow\";\nimport { ddmmyyyyFormat } from \"../../../service/CustomDateService\";\nimport { toCurrency } from \"../../../service/CustomNumberService\";\nimport SpecialOrdersContext from \"../../../contexts/SpecialOrdersContext\";\nimport { tableCellInputStyles, tableCellStyles } from \"../specialOrdersStyles\";\nimport ErrorMessageOverlay from \"./ErrorMessageOverlay\";\n\ninterface SpecialOrdersTableRowProps {\n orderData: SpecialOrderResponse;\n transitionDelay?: number;\n}\n\nconst SpecialOrdersTableRow = (props: SpecialOrdersTableRowProps) => {\n const { orderData, transitionDelay } = props;\n const orderId = orderData.id.toString();\n const { updateSpecialOrderRequests, containsSpecialOrderRequest } =\n useContext(SpecialOrdersContext);\n const [quantity, setQuantity] = useState(orderData.amount);\n const [inputTouched, setInputTouched] = useState(false);\n const [initialized, setInitialized] = useState(false);\n\n const handleClick = () => {\n updateSpecialOrderRequests(\n {\n id: parseInt(orderId, 10),\n amount: quantity,\n },\n containsSpecialOrderRequest(orderData.id)\n );\n };\n\n const handleChange = (e: React.ChangeEvent) => {\n let newQuantity = e.target.valueAsNumber;\n if (isNaN(newQuantity)) {\n newQuantity = 0;\n }\n setQuantity(newQuantity);\n };\n\n useEffect(() => {\n if (initialized) {\n updateSpecialOrderRequests(\n {\n id: parseInt(orderId, 10),\n amount: quantity,\n },\n false\n );\n }\n }, [quantity]);\n\n useEffect(() => {\n setQuantity(orderData.amount);\n setInitialized(true);\n }, [orderData]);\n\n return (\n \n \n \n \n \n {orderData.pzn}\n \n \n {orderData.articleName}\n \n \n {orderData.packageSize}\n \n \n {toCurrency(orderData.aek)}\n \n \n !inputTouched && setInputTouched(true)}\n style={tableCellInputStyles}\n min=\"0\"\n max=\"9999\"\n type=\"number\"\n value={quantity}\n />\n {inputTouched && (quantity < 0 || quantity > 9999) ? (\n \n ) : (\n <>\n )}\n \n \n \n {ddmmyyyyFormat(new Date(orderData.validUntil))}\n \n \n \n );\n};\n\nexport default SpecialOrdersTableRow;\n","import {\n Table,\n TableHead,\n TableBody,\n TableRow,\n TableCell,\n Checkbox,\n Typography,\n} from \"@mui/material\";\nimport { SpecialOrderResponse } from \"../../../../api\";\nimport {\n CustomTableProps,\n tablePageDefaultLength,\n} from \"../../../components/table/TableContainer\";\nimport SpecialOrdersTableRow from \"./SpecialOrdersTableRow\";\n\ninterface SpecialOrdersTableProps extends CustomTableProps {\n orders?: SpecialOrderResponse[];\n}\n\nconst SpecialOrdersTable = (props: SpecialOrdersTableProps) => {\n const { orders } = props;\n\n return (\n \n \n \n \n \n \n \n PZN\n \n \n Artikelbezeichnung\n \n \n Packungsgröße\n \n \n AEK\n \n \n Anzahl Packungen\n \n \n Bestellbar bis\n \n \n \n \n {orders?.map((orderData, index) => {\n return (\n \n );\n })}\n \n
\n );\n};\n\nexport default SpecialOrdersTable;\n","import { Box, Typography } from \"@mui/material\";\nimport { useContext } from \"react\";\nimport TableAccordionRow from \"../../components/table/TableAccordionRow\";\nimport TableAccordionWrapper from \"../../components/table/TableAccordionWrapper\";\nimport TableContainer, {\n CustomTableProps\n} from \"../../components/table/TableContainer\";\nimport SpecialOrdersTable from \"./elements/SpecialOrdersTable\";\nimport SpecialOrdersContext from \"../../contexts/SpecialOrdersContext\";\nimport { rootBoxStyles } from \"./specialOrdersStyles\";\n\nconst SpecialOrders = () => {\n const {\n specialOrderRequests,\n specialOrderResponses,\n postOrders,\n loadSpecialOrders,\n setSelectedOrderIds,\n loading\n } = useContext(SpecialOrdersContext);\n\n const categorizeOrders = (props: CustomTableProps) => {\n const allCategories = specialOrderResponses.map((order) => order.category);\n const uniqueCategories = Array.from(new Set(allCategories));\n\n return uniqueCategories.sort().map((category: string, index: number) => {\n const ordersInCategory = specialOrderResponses.filter(\n (order) => order.category === category\n );\n\n return (\n \n \n \n );\n });\n };\n\n return (\n \n \n Bestellformulare\n \n {\n postOrders(specialOrderRequests);\n }}\n buttonText=\"Bestellung vormerken\"\n liftStateToParent={setSelectedOrderIds}\n loadCallback={loadSpecialOrders}\n loading={loading}\n Table={(props: CustomTableProps) => (\n \n {categorizeOrders(props)}\n \n )}\n selectableRows\n sx={{ height: \"87%\" }}\n preselectedRows={specialOrderRequests.map((s) => s.id + \"\")}\n />\n \n );\n};\n\nexport default SpecialOrders;\n","import { SxProps, Theme } from \"@mui/material\";\nimport { aepPalette } from \"../../../styles/aepPalette\";\n\nexport const employeesTimeout = 1000;\n\nexport const topBoxStyles: SxProps = {\n borderTopLeftRadius: \"5px\",\n borderTopRightRadius: \"5px\",\n transition: `border ${employeesTimeout / 1000}s`,\n};\n\n// employee accordion\nexport const iconStyles: SxProps = {\n color: aepPalette.base.main,\n \"&:hover\": { color: aepPalette.secondary.main },\n};\n\n// employee form\nexport const rootBoxStyles: SxProps = {\n backgroundColor: aepPalette.secondary.lighter,\n height: \"100%\",\n position: \"relative\",\n py: 3,\n px: 4,\n border: `1px solid ${aepPalette.secondary.light}`,\n borderRadius: \"10px\",\n display: \"flex\",\n flexGrow: 1,\n flexDirection: {\n xs: \"column\",\n md: \"row\",\n },\n maxHeight: \"470px\",\n maxWidth: \"650px\",\n width: \"100%\",\n};\n\nexport const inputColumnStackStyles: SxProps = {\n flexDirection: \"column\",\n mt: 1,\n width: \"80%\",\n};\n\nexport const inputColumnStyles: SxProps = {\n flexDirection: \"row\",\n justifyContent: \"space-between\",\n};\n\nexport const formTextFieldStyles: SxProps = {\n width: \"200px\",\n mb: 1,\n};\n","import { useContext } from \"react\";\nimport { Button, Stack, TextField, Typography } from \"@mui/material\";\nimport { UserProfileDto } from \"../../../api\";\nimport { Formik, FormikErrors } from \"formik\";\nimport ApiWrapper from \"../../wrappers/ApiWrapper\";\nimport CustomerContext from \"../../contexts/CustomerContext\";\nimport SnackbarContext from \"../../contexts/SnackbarContext\";\nimport {\n formTextFieldStyles,\n inputColumnStackStyles,\n inputColumnStyles,\n} from \"./userProfileStyles\";\nimport UserContext from \"../../contexts/UserContext\";\n\nexport interface LocalFormikValues {\n title: string;\n firstName: string;\n lastName: string;\n userName: string;\n email: string;\n password: string;\n passwordRepeat: string;\n}\n\ninterface UserProfileFormProps {\n userData: UserProfileDto;\n}\n\nconst UserProfileForm = (props: UserProfileFormProps) => {\n const api = new ApiWrapper().userControllerApi();\n const { userData } = props;\n const { customerNumber } = useContext(CustomerContext);\n const { userName } = useContext(UserContext);\n const { handleHttpError, showSnackbar } = useContext(SnackbarContext);\n\n const passwordInputProps = { type: \"password\", autoComplete: \"new-password\" };\n\n const initialValues: LocalFormikValues = {\n title: userData?.title || \"\",\n firstName: userData?.firstName || \"\",\n lastName: userData?.lastName || \"\",\n userName: userData?.userName || \"\",\n email: userData?.email || \"\",\n password: \"\",\n passwordRepeat: \"\",\n };\n\n return (\n {\n const errors: FormikErrors = {};\n const hasValidEmail = values.email\n ? /\\S+@\\S+\\.\\S+/.test(values.email)\n : true;\n\n if (!values.firstName) {\n errors.firstName = \"Erforderlich\";\n }\n if (!values.lastName) {\n errors.lastName = \"Erforderlich\";\n }\n if (!hasValidEmail) {\n errors.email = \"Ungültige E-Mail-Adresse\";\n }\n if (values.password !== values.passwordRepeat) {\n errors.passwordRepeat = \"Passwort stimmt nicht überein\";\n }\n\n return errors;\n }}\n onSubmit={(values, { setSubmitting }) => {\n const apiValues: UserProfileDto = {\n title: values.title,\n firstName: values.firstName,\n lastName: values.lastName,\n email: values.email,\n password: values.password,\n };\n if (values.password === \"\") {\n delete apiValues.password;\n }\n api\n .updateUserProfile(customerNumber, userName, apiValues)\n .then(() => {\n showSnackbar(\"success\", \"Benutzerprofil erfolgreich aktualisiert\");\n })\n .catch(handleHttpError)\n .finally(() => {\n setSubmitting(false);\n });\n }}\n >\n {({\n values,\n errors,\n touched,\n handleChange,\n handleBlur,\n handleSubmit,\n isSubmitting,\n }) => (\n \n \n Mein Profil\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {isSubmitting ? \"In Arbeit...\" : \"Speichern\"}\n \n \n )}\n \n );\n};\n\nexport default UserProfileForm;\n","import { useContext, useEffect, useState } from \"react\";\nimport { UserProfileDto } from \"../../../api\";\nimport ApiWrapper from \"../../wrappers/ApiWrapper\";\nimport CustomerContext from \"../../contexts/CustomerContext\";\nimport SnackbarContext from \"../../contexts/SnackbarContext\";\nimport { rootBoxStyles } from \"./userProfileStyles\";\nimport UserContext from \"../../contexts/UserContext\";\nimport UserProfileForm from \"./UserProfileForm\";\nimport Card from \"../../components/card/Card\";\n\nconst UserProfile = () => {\n const api = new ApiWrapper().userControllerApi();\n const [loading, setLoading] = useState(false);\n const [userData, setUserData] = useState();\n const { customerNumber } = useContext(CustomerContext);\n const { userName } = useContext(UserContext);\n const { handleHttpError } = useContext(SnackbarContext);\n\n const getUserProfile = () => {\n if (userName && customerNumber) {\n setLoading(true);\n api\n .getUserProfile(customerNumber, userName)\n .then((res) => {\n setUserData(res.data);\n })\n .catch(handleHttpError)\n .finally(() => {\n setLoading(false);\n });\n }\n };\n\n useEffect(() => {\n let isApiSubscribed = true;\n\n if (isApiSubscribed) {\n getUserProfile();\n }\n\n return () => {\n isApiSubscribed = false;\n };\n }, [userName, customerNumber]);\n\n return (\n \n {userData && }\n \n );\n};\n\nexport default UserProfile;\n","import { SxProps, Theme } from \"@mui/material\";\nimport { aepPalette } from \"../../../styles/aepPalette\";\n\nexport const overviewCardStyles: SxProps = {\n backgroundColor: aepPalette.common.white,\n minWidth: \"280px\",\n mb: 4,\n mr: 3,\n overflow: \"auto\",\n position: \"relative\",\n width: \"25%\",\n};\n\nexport const verticalDividerStyles: SxProps = {\n width: \"100%\",\n borderBottom: `1px solid ${aepPalette.secondary.light}`,\n};\n\nexport const overviewStackStyles: SxProps = {\n cursor: \"pointer\",\n mx: 2,\n my: 1,\n pb: 1,\n px: 1,\n borderTopLeftRadius: \"5px\",\n borderTopRightRadius: \"5px\",\n \"&:not(:last-child)\": {\n borderBottom: `1px solid ${aepPalette.secondary.light}`,\n },\n \"&:hover\": {\n backgroundColor: aepPalette.base.lightest,\n },\n};\n\nexport const overviewInnerStackStyles: SxProps = {\n width: \"100%\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n py: 1,\n};\n\nexport const overviewStatusBoxStyles: SxProps = {\n height: \"10px\",\n width: \"10px\",\n borderRadius: \"50%\",\n zIndex: 1,\n};\n\nexport const detailCardStyles: SxProps = {\n mb: 4,\n width: \"75%\",\n position: \"relative\",\n height: \"100%\",\n};\n\nexport const detailStackStyles: SxProps = {\n height: \"78px\",\n width: \"100%\",\n borderBottom: `1px solid ${aepPalette.secondary.light}`,\n justifyContent: \"space-between\",\n py: 1.5,\n px: 4,\n};\n\nexport const inlineText: SxProps = { display: \"inline\" };\n\nexport const messageBodyStyles: SxProps = {\n backgroundColor: aepPalette.common.white,\n height: \"100%\",\n width: \"100%\",\n};\n\nexport const messageBodyTextStyles: SxProps = {\n py: 2,\n px: 4,\n lineHeight: \"2rem\",\n whiteSpace: \"pre-wrap\",\n};\n","import { Box, Stack, Typography } from \"@mui/material\";\nimport sanitizeHtml from \"sanitize-html\";\nimport { useEffect, useRef } from \"react\";\nimport { MessageResponse } from \"../../../../api\";\nimport Card, { CardProps } from \"../../../components/card/Card\";\nimport { ddmmyyyyFormat } from \"../../../service/CustomDateService\";\nimport {\n detailCardStyles,\n detailStackStyles,\n inlineText,\n messageBodyStyles,\n messageBodyTextStyles,\n} from \"../postBoxStyles\";\n\ninterface MessageDetailCardProps extends CardProps {\n loading: boolean;\n selectedMessage?: MessageResponse;\n}\n\nconst MessageDetailCard = (props: MessageDetailCardProps) => {\n const { loading, selectedMessage } = props;\n\n const messageEl = useRef(null);\n const sanitizedHTML = sanitizeHtml(selectedMessage?.message || \"\", {\n allowedTags: [\"b\", \"br\"],\n });\n\n useEffect(() => {\n if (messageEl.current !== null) messageEl.current.innerHTML = sanitizedHTML;\n }, [selectedMessage]);\n\n return (\n \n \n \n {selectedMessage?.userid}\n \n {ddmmyyyyFormat(new Date(selectedMessage?.creationDate || \"\"))}\n \n \n \n \n Betreff:{\" \"}\n \n \n {selectedMessage?.subject}\n \n \n \n \n \n
\n \n \n \n );\n};\n\nexport default MessageDetailCard;\n","import { Box, Stack, Tooltip, Typography } from \"@mui/material\";\nimport { useState } from \"react\";\nimport { MessageResponse } from \"../../../../api\";\nimport { aepPalette } from \"../../../../styles/aepPalette\";\nimport { ddmmyyyyFormat } from \"../../../service/CustomDateService\";\nimport {\n overviewInnerStackStyles,\n overviewStackStyles,\n overviewStatusBoxStyles,\n} from \"../postBoxStyles\";\n\ninterface MessageOverviewProps {\n index: number;\n message: MessageResponse;\n onClick: () => void;\n selectedMessage: number;\n unread?: boolean;\n}\n\nconst MessageOverview = (props: MessageOverviewProps) => {\n const { message, onClick, selectedMessage, index, unread } = props;\n const [messageUnread, setMessageUnread] = useState(unread);\n\n const handleClick = () => {\n setMessageUnread(false);\n\n onClick();\n };\n\n const computeMessageStateColor = (state: number) => {\n switch (state) {\n case 0:\n return aepPalette.error.main;\n case 1:\n return aepPalette.warning.main;\n case 2:\n return aepPalette.success.main;\n default:\n return aepPalette.common.white;\n }\n };\n\n const computeMessageStateText = (state: number) => {\n switch (state) {\n case 0:\n return \"Offen\";\n case 1:\n return \"In Bearbeitung\";\n case 2:\n return \"Abgeschlossen\";\n default:\n return \"Unbekannt\";\n }\n };\n\n return (\n \n \n \n {message.userid}\n \n {message.origin !== \"AEP\" && (\n \n \n \n )}\n \n \n \n {message.subject}\n \n \n \n {ddmmyyyyFormat(new Date(message.creationDate))}\n \n \n );\n};\n\nexport default MessageOverview;\n","import { Box, Typography } from \"@mui/material\";\nimport { useContext } from \"react\";\nimport { MessageResponse } from \"../../../../api\";\nimport { aepPalette } from \"../../../../styles/aepPalette\";\nimport Card, { CardProps } from \"../../../components/card/Card\";\nimport CustomerContext from \"../../../contexts/CustomerContext\";\nimport SnackbarContext from \"../../../contexts/SnackbarContext\";\nimport ApiWrapper from \"../../../wrappers/ApiWrapper\";\nimport { overviewCardStyles, verticalDividerStyles } from \"../postBoxStyles\";\nimport MessageOverview from \"./MessageOverview\";\n\ninterface MessagesOverviewCardProps extends CardProps {\n loading: boolean;\n messages?: MessageResponse[];\n selectedMessage: number;\n setSelectedMessage: React.Dispatch>;\n}\n\nconst MessagesOverviewCard = (props: MessagesOverviewCardProps) => {\n const { loading, messages, setSelectedMessage, selectedMessage } = props;\n const api = new ApiWrapper().messageControllerApi();\n const { customerNumber, updateUnreadMessageCount } =\n useContext(CustomerContext);\n const { handleHttpError } = useContext(SnackbarContext);\n\n const handleClick = (index: number): void => {\n // mark as read if unread\n if (messages) {\n api\n .patchMessage(customerNumber, messages[index].id, {\n readByPortal: true,\n })\n // update unread message count\n .then(() => {\n api.getUnreadMessageCount(customerNumber).then((res) => {\n updateUnreadMessageCount(res.data.count);\n });\n })\n .catch(handleHttpError);\n }\n setSelectedMessage(index);\n };\n\n return (\n \n \n \n Ihre Nachrichten\n \n \n \n {(messages?.length || 0) > 0 ? (\n messages?.map((message, index) => (\n handleClick(index)}\n />\n ))\n ) : (\n Keine Nachrichten\n )}\n \n );\n};\n\nexport default MessagesOverviewCard;\n","import { Stack } from \"@mui/material\";\nimport { useContext, useEffect, useState } from \"react\";\nimport { MessageResponse } from \"../../../api\";\nimport CustomerContext from \"../../contexts/CustomerContext\";\nimport SnackbarContext from \"../../contexts/SnackbarContext\";\nimport ApiWrapper from \"../../wrappers/ApiWrapper\";\nimport MessageDetailCard from \"./elements/MessageDetailCard\";\nimport MessagesOverviewCard from \"./elements/MessagesOverviewCard\";\n\nconst PostBox = () => {\n const api = new ApiWrapper().messageControllerApi();\n const { customerNumber } = useContext(CustomerContext);\n const { handleHttpError } = useContext(SnackbarContext);\n const [loading, setLoading] = useState(false);\n const [messages, setMessages] = useState();\n const [selectedMessage, setSelectedMessage] = useState(-1);\n\n useEffect(() => {\n let isApiSubscribed = true;\n\n if (isApiSubscribed && customerNumber) {\n setLoading(true);\n\n api\n .getAllMessages(customerNumber)\n .then((res) => {\n setMessages(res.data);\n })\n .catch(handleHttpError)\n .finally(() => setLoading(false));\n }\n\n return () => {\n isApiSubscribed = false;\n };\n }, [customerNumber]);\n\n return (\n \n \n {messages && messages[selectedMessage] && (\n \n )}\n \n );\n};\n\nexport default PostBox;\n","import { Box } from \"@mui/material\";\n\ninterface PageWrapperProps {\n element: JSX.Element;\n scrollable?: boolean;\n}\n\nconst fullPageHeight = \"calc(100vh - 140px)\";\n\nconst PageWrapper = (props: PageWrapperProps) => {\n const { element, scrollable } = props;\n return (\n div\": {\n height: \"100%\",\n },\n }}\n >\n {element}\n \n );\n};\n\nexport default PageWrapper;\n","import { Checkbox, TableCell } from \"@mui/material\";\nimport { TextDivider } from \"../../../components/other/TextDivider\";\nimport { useNavigate } from \"react-router-dom\";\nimport { CustomTableProps } from \"../../../components/table/TableContainer\";\nimport DocumentLoader, {\n DocumentLoaderDocumentType,\n} from \"../../../components/documentloader/DocumentLoader\";\nimport CustomerContext from \"../../../contexts/CustomerContext\";\nimport { useContext } from \"react\";\nimport { ReceiptDto } from \"../../../../api\";\nimport { compressReceiptType, ReceiptType } from \"./ReceiptsSearchContainer\";\nimport AnimatedTableRow from \"../../../components/table/AnimatedTableRow\";\nimport IconButtonDetailView from \"../../../components/table/IconButtonDetailView\";\n\ninterface ReceiptsSearchTableRowProps extends CustomTableProps {\n row: ReceiptDto;\n transitionDelay: number;\n selectableRows: boolean;\n}\n\nconst ReceiptsSearchTableRow = (props: ReceiptsSearchTableRowProps) => {\n const { isSelected, row, handleSelectRow, transitionDelay, selectableRows } =\n props;\n const { customerNumber } = useContext(CustomerContext);\n const navigate = useNavigate();\n\n const labelId = `enhanced-table-checkbox-${row.receiptId}`;\n\n let documentType = compressReceiptType(row.receiptName as ReceiptType);\n // Adjust document types for document loader\n if (documentType === \"LS\" || documentType === \"GS\") {\n documentType = \"TB\";\n }\n\n return (\n \n \n {selectableRows && (\n handleSelectRow(row.receiptId)}\n inputProps={{\n \"aria-labelledby\": labelId,\n }}\n />\n )}\n \n {row.receiptName}\n {row.receiptId}\n {row.receiptDate}\n \n \n \n \n \n \n \n {row.receiptName === ReceiptType.Lieferschein ? (\n \n navigate(\"../bestellungen/lieferungen/details\", {\n state: [row.receiptId],\n })\n }\n />\n ) : (\n <>\n )}\n \n \n );\n};\n\nexport default ReceiptsSearchTableRow;\n","import {\n Checkbox,\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableRow,\n Typography,\n} from \"@mui/material\";\nimport { ReceiptDto } from \"../../../../api\";\nimport {\n CustomTableProps,\n tablePageDefaultLength,\n} from \"../../../components/table/TableContainer\";\nimport ReceiptsSearchTableRow from \"./ReceiptsSearchTableRow\";\n\ninterface ReceiptsSearchTableProps extends CustomTableProps {\n receipts: ReceiptDto[];\n loading: boolean;\n selectableRows: boolean;\n}\n\nconst ReceiptsSearchTable = (props: ReceiptsSearchTableProps) => {\n const { receipts, handleSelectRow, isSelected, selectableRows } = props;\n\n return (\n \n \n \n \n \n \n \n Belegart\n \n \n Belegnummer\n \n \n Belegdatum\n \n \n \n \n \n \n \n {receipts.map((row, index) => (\n \n ))}\n \n
\n );\n};\n\nexport default ReceiptsSearchTable;\n","import { useContext, useEffect, useState } from \"react\";\nimport { FurtherReceiptDto, FurtherReceiptTypeEnum } from \"../../../../api\";\nimport TableContainer, {\n tablePageDefaultLength,\n} from \"../../../components/table/TableContainer\";\nimport CustomerContext from \"../../../contexts/CustomerContext\";\nimport SnackbarContext from \"../../../contexts/SnackbarContext\";\nimport ApiWrapper from \"../../../wrappers/ApiWrapper\";\nimport { TableFilterType } from \"../../../components/table/tableFilter/models\";\nimport FurtherReceiptsSearchTable from \"./FurtherReceiptsSearchTable\";\nimport IconButton from \"../../../components/button/IconButton\";\nimport DownloadIcon from \"../../../components/icons/DownloadIcon\";\nimport { Stack, Typography } from \"@mui/material\";\nimport { aepPalette } from \"../../../../styles/aepPalette\";\n\nexport enum ReceiptType {\n Gutschrift = \"Gutschrift\",\n Lieferschein = \"Lieferschein\",\n Monatsbericht = \"Monatsbericht\",\n Nachbelastung = \"Nachbelastung\",\n Sammelrechnung = \"Sammelrechnung\",\n}\n\nexport const compressReceiptType = (type?: ReceiptType) => {\n switch (type) {\n case ReceiptType.Gutschrift:\n return \"GS\";\n case ReceiptType.Lieferschein:\n return \"LS\";\n case ReceiptType.Monatsbericht:\n return \"MB\";\n case ReceiptType.Nachbelastung:\n return \"NB\";\n case ReceiptType.Sammelrechnung:\n return \"SR\";\n default:\n return;\n }\n};\n\nconst FurtherReceiptSearchContainer = () => {\n const [loading, setLoading] = useState(false);\n const [downloading, setDownloading] = useState(false);\n const [receipts, setReceipts] = useState([]);\n const [pageNumber, setPageNumber] = useState(0);\n\n const { handleHttpError, handleError } = useContext(SnackbarContext);\n const { customerNumber } = useContext(CustomerContext);\n\n const api = new ApiWrapper().furtherReceiptsControllerApi();\n\n interface FurtherReceiptSearchFormikValues {\n docType?: FurtherReceiptTypeEnum;\n deliveryNoteId?: number;\n pzn?: string;\n fromDate?: string;\n toDate?: string;\n articleName?: string;\n supplierName?: string;\n batchNumber?: string;\n }\n\n const [searchParamsState, setSearchParamsState] =\n useState();\n const [noDataMessage, setNoDataMessage] = useState(\n \"Bitte wählen Sie eine Belegart und Zeitraum für die Suche\"\n );\n\n useEffect(() => {\n setPageNumber(0);\n setReceipts([]);\n }, [customerNumber]);\n\n const downloadReceipts = () => {\n if (customerNumber && !loading) {\n setDownloading(true);\n\n api\n .getFurtherReceiptsAsCSV(\n customerNumber,\n searchParamsState?.docType || FurtherReceiptTypeEnum.Charge,\n searchParamsState?.fromDate || undefined,\n searchParamsState?.toDate || undefined,\n searchParamsState?.pzn,\n searchParamsState?.articleName,\n searchParamsState?.deliveryNoteId,\n searchParamsState?.supplierName,\n searchParamsState?.batchNumber\n )\n .then((data) => {\n const element = document.createElement(\"a\");\n element.setAttribute(\n \"href\",\n \"data:application/text/csv;base64,\" + encodeURIComponent(data.data)\n );\n element.setAttribute(\n \"download\",\n `apoportal-weitere-belege-${customerNumber}.csv`\n );\n element.click();\n })\n .catch((e) => {\n if (e?.response?.data?.message != undefined) {\n handleError(e.response.data.message);\n } else {\n handleError(\n \"Der Belegdownload ist aktuell nicht möglich. Bitte kontaktieren Sie das Service Center.\"\n );\n }\n })\n .finally(() => {\n setDownloading(false);\n });\n }\n };\n\n const loadReceipts = (\n loadMore: boolean,\n searchParams?: FurtherReceiptSearchFormikValues\n ): void => {\n if (!searchParams) {\n setSearchParamsState({});\n } else {\n setSearchParamsState(searchParams);\n }\n // this check guards from firing multiple calls\n if (customerNumber && !loading) {\n setLoading(true);\n\n api\n .getFurtherReceipts(\n customerNumber,\n (searchParams?.docType as FurtherReceiptTypeEnum) || undefined,\n loadMore ? pageNumber : 0,\n tablePageDefaultLength,\n searchParams?.fromDate || undefined,\n searchParams?.toDate || undefined,\n searchParams?.pzn,\n searchParams?.articleName,\n searchParams?.deliveryNoteId,\n searchParams?.supplierName,\n searchParams?.batchNumber\n )\n .then((res) => {\n const newReceipts = res.data;\n\n if (loadMore) {\n setReceipts((existingReceipts) => {\n return existingReceipts.concat(newReceipts);\n });\n setPageNumber((prevPageNumber) => prevPageNumber + 1);\n } else {\n setReceipts(newReceipts);\n setPageNumber(1);\n\n if (newReceipts.length === 0) {\n setNoDataMessage(\"Keine Belege verfügbar\");\n } else {\n setNoDataMessage(\n \"Bitte wählen Sie eine Belegart und Zeitraum für die Suche\"\n );\n }\n }\n })\n .catch((e) => {\n handleHttpError(e);\n setPageNumber(0);\n })\n .finally(() => {\n setLoading(false);\n });\n }\n };\n\n const initialValues: FurtherReceiptSearchFormikValues = {\n docType: \"\" as unknown as FurtherReceiptTypeEnum,\n deliveryNoteId: undefined,\n pzn: \"\",\n fromDate: \"\",\n toDate: \"\",\n articleName: \"\",\n supplierName: \"\",\n batchNumber: \"\",\n };\n\n return (\n <>\n {\n const enumValues = Object.values(FurtherReceiptTypeEnum);\n return enumValues.includes(\n value as unknown as FurtherReceiptTypeEnum\n );\n },\n errorMessage: \"Erforderlich\",\n },\n {\n type: TableFilterType.textfield,\n name: \"deliveryNoteId\",\n label: \"Belegnummer\",\n },\n {\n type: TableFilterType.textfield,\n name: \"pzn\",\n label: \"PZN\",\n },\n {\n type: TableFilterType.dateRange,\n name: \"\",\n label: \"Zeitraum\",\n },\n {\n type: TableFilterType.textfield,\n name: \"articleName\",\n label: \"Artikelbezeichnung\",\n },\n {\n type: TableFilterType.textfield,\n name: \"supplierName\",\n label: \"Lieferant\",\n },\n {\n type: TableFilterType.textfield,\n name: \"batchNumber\",\n label: \"ChargenNummer\",\n },\n ],\n }}\n Table={() => (\n \n )}\n />\n\n {receipts.length > 0 && (\n \n \n CSV-Datei exportieren\n \n }\n onClick={downloadReceipts}\n />\n \n )}\n \n );\n};\n\nexport default FurtherReceiptSearchContainer;\n","import { TableCell, Typography } from \"@mui/material\";\nimport { FurtherReceiptDto } from \"../../../../api\";\nimport AnimatedTableRow from \"../../../components/table/AnimatedTableRow\";\nimport { ddmmyyyyFormat } from \"../../../service/CustomDateService\";\nimport { toCurrency } from \"../../../service/CustomNumberService\";\n\ninterface ReceiptsSearchTableRowProps {\n row: FurtherReceiptDto;\n transitionDelay: number;\n}\n\nconst ReceiptsSearchTableRow = (props: ReceiptsSearchTableRowProps) => {\n const { row, transitionDelay } = props;\n\n return (\n td\": {\n px: 1,\n },\n \"& > td:first-of-type\": {\n pl: 4,\n },\n \"& > td:last-of-type\": {\n pr: 4,\n },\n }}\n >\n \n {row.docType}\n \n \n {row.deliveryNoteId}\n \n \n \n {row.deliveryDate ? ddmmyyyyFormat(new Date(row.deliveryDate)) : \"\"}\n \n \n \n {row.pzn}\n \n \n {row.articleName}\n \n \n {row.supplierName}\n \n \n {row.amount}\n \n \n \n {toCurrency(row.price as number)}\n \n \n \n {row.boxNumber}\n \n \n {row.batchNumber}\n \n \n );\n};\n\nexport default ReceiptsSearchTableRow;\n","import {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableRow,\n Typography,\n} from \"@mui/material\";\nimport { FurtherReceiptDto } from \"../../../../api\";\nimport { tablePageDefaultLength } from \"../../../components/table/TableContainer\";\nimport FurtherReceiptsSearchTableRow from \"./FurtherReceiptsSearchTableRow\";\n\ninterface FurtherReceiptsSearchTableProps {\n receipts: FurtherReceiptDto[];\n loading: boolean;\n}\n\nconst ReceiptsSearchTable = (props: FurtherReceiptsSearchTableProps) => {\n const { receipts } = props;\n\n return (\n \n \n th\": {\n px: 1,\n },\n \"& > th:first-of-type\": {\n pl: 4,\n },\n \"& > th:last-of-type\": {\n pr: 4,\n },\n position: \"relative\",\n }}\n >\n \n Belegart\n \n \n Belegnummer\n \n \n Lieferdatum\n \n \n PZN\n \n \n Artikelbezeichnung\n \n \n Lieferant\n \n \n Menge\n \n \n Preis\n \n \n BoxNr.\n \n \n ChargenNr.\n \n \n \n \n {receipts.map((row, index) => (\n \n ))}\n \n
\n );\n};\n\nexport default ReceiptsSearchTable;\n","import { useContext } from \"react\";\nimport { TabableCard, CardTabContent } from \"../../components/card/TabableCard\";\nimport ReceiptsSearchContainer from \"./mainTab/ReceiptsSearchContainer\";\nimport FurtherReceiptSearchContainer from \"./statisticTab/FurtherReceiptSearchContainer\";\nimport UserContext from \"../../contexts/UserContext\";\nimport { UserDtoPermissionsEnum } from \"../../../api\";\n\nconst BelegePermissions = [\n UserDtoPermissionsEnum.Lieferscheine,\n UserDtoPermissionsEnum.Monatsberichte,\n UserDtoPermissionsEnum.Nachbelastungen,\n UserDtoPermissionsEnum.Gutschriften,\n UserDtoPermissionsEnum.Sammelrechnungen,\n];\n\nconst Receipts = () => {\n const { checkUserRole } = useContext(UserContext);\n\n return (\n \n {checkUserRole(BelegePermissions) ? (\n \n \n \n ) : (\n <>\n )}\n {checkUserRole([UserDtoPermissionsEnum.Statistiken]) ? (\n \n \n \n ) : (\n <>\n )}\n \n );\n};\n\nexport default Receipts;\n","import { TableRow, TableCell, Typography } from \"@mui/material\";\nimport IconButton from \"../../components/button/IconButton\";\nimport DownloadIcon from \"../../components/icons/DownloadIcon\";\nimport { TextDivider } from \"../../components/other/TextDivider\";\nimport { ddmmyyyyFormat } from \"../../service/CustomDateService\";\nimport { StrapiDownloadData } from \"./DownloadSearchContainer\";\n\ninterface DownloadsTableRowProps {\n downloadData: StrapiDownloadData;\n loading?: boolean;\n}\n\nconst DownloadsTableRow = (props: DownloadsTableRowProps) => {\n const { downloadData } = props;\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const baseUrl = window._env_.REACT_APP_API_URL.replace(\"/api\", \"/cms\");\n const downloadUrl =\n downloadData?.attributes?.datei?.data[0]?.attributes?.url || \"\";\n\n return (\n \n \n \n {downloadData?.attributes?.kategorie.data[0]?.attributes?.name}\n \n \n \n \n {downloadData?.attributes?.datei.data[0]?.attributes?.name}\n \n \n \n \n {downloadData?.attributes?.infotext}\n \n \n \n \n {ddmmyyyyFormat(new Date(downloadData?.attributes?.createdAt))}\n \n \n \n \n \n \n \n }\n />\n \n \n \n );\n};\n\nexport default DownloadsTableRow;\n","import {\n Table,\n TableHead,\n TableBody,\n TableRow,\n TableCell,\n Typography,\n} from \"@mui/material\";\nimport { StrapiDownloadData } from \"./DownloadSearchContainer\";\nimport DownloadsTableRow from \"./DownloadsTableRow\";\n\ninterface DownloadsTableProps {\n downloads?: StrapiDownloadData[];\n loading?: boolean;\n}\n\nconst DownloadsTable = (props: DownloadsTableProps) => {\n const { downloads } = props;\n\n return (\n thead > tr > th\": {\n px: 1,\n \"&:first-of-type\": {\n pl: 5,\n },\n },\n \"& > tbody > tr > td\": {\n position: \"relative\",\n px: 1,\n \"&:first-of-type\": {\n pl: 5,\n },\n },\n }}\n >\n \n \n \n Kategorie\n \n \n \n Dokument\n \n \n \n Info\n \n \n Datum\n \n \n \n \n \n \n {downloads?.map((downloadData) => {\n return (\n \n );\n })}\n \n \n );\n};\n\nexport default DownloadsTable;\n","import { useContext, useState } from \"react\";\nimport TableContainer from \"../../components/table/TableContainer\";\nimport { TableFilterType } from \"../../components/table/tableFilter/models\";\nimport { useKeycloak } from \"@react-keycloak/web\";\nimport { CustomerContext } from \"../../contexts/CustomerContext\";\nimport StrapiApi from \"../../../strapi/StrapiApi\";\nimport Download from \"../../../strapi/models/Download\";\nimport StrapiData from \"../../../strapi/models/StrapiData\";\nimport DownloadsTable from \"./DownloadsTable\";\nimport SnackbarContext from \"../../contexts/SnackbarContext\";\nimport DownloadCategory from \"../../../strapi/models/DownloadCategory\";\n\nexport type StrapiDownloadData = StrapiData;\n\ninterface DownloadSearchFormikValues {\n searchTerms?: string[];\n pzn?: string;\n selectedTab?: string;\n}\n\nconst DownloadSearchContainer = () => {\n const { keycloak } = useKeycloak();\n const { customerNumber } = useContext(CustomerContext);\n const { handleHttpError } = useContext(SnackbarContext);\n const strapiApi = new StrapiApi(keycloak.token || \"\", customerNumber);\n\n const [loading, setLoading] = useState(false);\n const [downloads, setDownloads] = useState>([]);\n const [downloadCategories, setDownloadCategories] = useState>(\n []\n );\n\n const initialValues: DownloadSearchFormikValues = {\n searchTerms: [],\n pzn: \"\",\n selectedTab: \"\",\n };\n\n const extractCategoreis = (data: StrapiData[]) => {\n const categories = data.map((dlCategory) => {\n return dlCategory.attributes.name;\n });\n\n return categories.filter((v, i, a) => a.indexOf(v) === i);\n };\n\n const loadDownloads = (\n loadMore = false,\n searchParams?: DownloadSearchFormikValues\n ) => {\n if (customerNumber) {\n strapiApi.getDownloadCategories().then((res) => {\n const categories = extractCategoreis(res.data.data);\n\n setDownloadCategories(categories);\n });\n\n strapiApi\n .getDownloads(\n searchParams?.selectedTab || \"\",\n searchParams?.pzn || \"\",\n searchParams?.searchTerms || []\n )\n .then((res) => {\n setDownloads(res.data.data);\n })\n .catch(handleHttpError);\n }\n };\n\n return (\n a.localeCompare(b))\n .map((category) => ({\n value: category,\n label: category,\n })),\n ],\n },\n ],\n }}\n Table={({\n handleSelectRow,\n isSelected,\n handleSelectAll,\n allSelected,\n }) => }\n />\n );\n};\n\nexport default DownloadSearchContainer;\n","import { Typography } from \"@mui/material\";\nimport Card from \"../../components/card/Card\";\nimport DownloadSearchContainer from \"./DownloadSearchContainer\";\n\nconst Downloads = () => {\n return (\n \n \n Downloadbereich\n \n \n \n );\n};\n\nexport default Downloads;\n","import { Route, Routes } from \"react-router-dom\";\nimport { Box } from \"@mui/material\";\nimport Navbar from \"./components/navbar/Navbar\";\nimport { useKeycloak } from \"@react-keycloak/web\";\nimport PrivateWrapper from \"./wrappers/PrivateWrapper\";\nimport Dashboard from \"./pages/dashboard/Dashboard\";\nimport Orders from \"./pages/orders/Orders\";\nimport Deliveries from \"./pages/deliveries/Deliveries\";\nimport DeliveriesDetails from \"./pages/deliveries/deliveriesDetails/DeliveriesDetails\";\nimport AppBar from \"./components/appbar/AppBar\";\nimport { useContext, useEffect, useRef } from \"react\";\nimport Employees from \"./pages/employees/Employees\";\nimport {\n getJwtRoles,\n getUserFullName,\n getUserName,\n} from \"./service/JwtService\";\nimport UserContext from \"./contexts/UserContext\";\nimport News from \"./pages/news/News\";\nimport Contact from \"./pages/contact/Contact\";\nimport Offers from \"./pages/offers/Offers\";\nimport ArticleAdmissions from \"./pages/articleAdmissions/ArticleAdmissions\";\nimport SpecialOrders from \"./pages/specialOrders/SpecialOrders\";\nimport UserProfile from \"./pages/userProfile/UserProfile\";\nimport PostBox from \"./pages/postbox/PostBox\";\nimport PageWrapper from \"./wrappers/PageWrapper\";\nimport Receipts from \"./pages/receipts/Receipts\";\nimport Downloads from \"./pages/downloads/Downloads\";\n\n// synchronized timeout value in ms for sidebar related animations\nexport const timeout = 400;\n// timeout for Fade and Grow components\nexport const fadeTimeout = 750;\nexport const growTimeout = 750;\n\nconst App = (): JSX.Element => {\n const { keycloak } = useKeycloak();\n const bodyRef = useRef();\n const { updateUserRoles, updateUserFullName, updateUserName } =\n useContext(UserContext);\n\n useEffect(() => {\n if (keycloak.token) {\n const userRoles = getJwtRoles(keycloak.token);\n const userFullName = getUserFullName(keycloak.token);\n const userName = getUserName(keycloak.token);\n\n updateUserRoles(userRoles);\n updateUserFullName(userFullName);\n updateUserName(userName);\n }\n }, [keycloak.token]);\n\n return (\n
\n \n \n \n \n \n \n } />}\n />\n } />}\n />\n } />}\n />\n\n } />}\n />\n } />}\n />\n } />}\n />\n } />}\n />\n } />}\n />\n } />}\n />\n } />}\n />\n } />}\n />\n } />}\n />\n } />}\n />\n } />}\n />\n \n \n \n \n
\n );\n};\n\nexport default App;\n","/* eslint-disable @typescript-eslint/ban-ts-comment */\n// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === \"localhost\" ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === \"[::1]\" ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\ntype Config = {\n onSuccess?: (registration: ServiceWorkerRegistration) => void;\n onUpdate?: (registration: ServiceWorkerRegistration) => void;\n};\n\nexport function register(config?: Config) {\n // @ts-ignore\n if (window._env_.NODE_ENV === \"production\" && \"serviceWorker\" in navigator) {\n // The URL constructor is available in all browsers that support SW.\n // @ts-ignore\n const publicUrl = new URL(window._env_.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener(\"load\", () => {\n // @ts-ignore\n const swUrl = `${window._env_.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n \"This web app is being served cache-first by a service \" +\n \"worker. To learn more, visit https://bit.ly/CRA-PWA\"\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl: string, config?: Config) {\n navigator.serviceWorker\n .register(swUrl)\n .then((registration) => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === \"installed\") {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n \"New content is available and will be used when all \" +\n \"tabs for this page are closed. See https://bit.ly/CRA-PWA.\"\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log(\"Content is cached for offline use.\");\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch((error) => {\n console.error(\"Error during service worker registration:\", error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl: string, config?: Config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { \"Service-Worker\": \"script\" },\n })\n .then((response) => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get(\"content-type\");\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf(\"javascript\") === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then((registration) => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n \"No internet connection found. App is running in offline mode.\"\n );\n });\n}\n\nexport function unregister() {\n if (\"serviceWorker\" in navigator) {\n navigator.serviceWorker.ready\n .then((registration) => {\n registration.unregister();\n })\n .catch((error) => {\n console.error(error.message);\n });\n }\n}\n","/* eslint-disable @typescript-eslint/ban-ts-comment */\nimport Keycloak, { KeycloakConfig } from \"keycloak-js\";\nimport {\n AuthClientInitOptions,\n AuthClientEvent,\n AuthClientError,\n} from \"@react-keycloak/core/lib/types\";\n\nconst keycloakConfig: KeycloakConfig = {\n // @ts-ignore\n url: window._env_.REACT_APP_KEYCLOAK_URL,\n realm: \"apoportal-realm\",\n // @ts-ignore\n clientId: window._env_.REACT_APP_KEYCLOAK_CLIENT_ID as string,\n};\n\nexport const keycloakInitOptions: AuthClientInitOptions | undefined = {};\n\nexport const keycloak = Keycloak(keycloakConfig);\n\nexport const keycloakOnEvent = (\n event: AuthClientEvent,\n error?: AuthClientError\n) => {\n switch (event) {\n case \"onAuthSuccess\":\n break;\n case \"onTokenExpired\":\n keycloak.updateToken(30).catch(() => {\n console.error(\"TOKEN REFRESH FAILED\" + error);\n });\n break;\n default:\n break;\n }\n};\n","import React from \"react\";\nimport { CustomerContextProvider } from \"./CustomerContext\";\nimport { SnackbarContextProvider } from \"./SnackbarContext\";\nimport { UserContextProvider } from \"./UserContext\";\nimport { SpecialOrdersContextProvider } from \"./SpecialOrdersContext\";\n\nexport const ContextsProvider: React.FunctionComponent<{\n children?: JSX.Element;\n}> = (props): JSX.Element => {\n const { children } = props;\n return (\n \n \n \n \n {children}\n \n \n \n \n );\n};\n\nexport default ContextsProvider;\n","import React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { BrowserRouter } from \"react-router-dom\";\nimport App from \"./app/App\";\nimport * as serviceWorker from \"./serviceWorker\";\nimport AepThemeProvider from \"./styles/AepThemeProvider\";\nimport { ReactKeycloakProvider } from \"@react-keycloak/web\";\nimport { keycloak, keycloakInitOptions, keycloakOnEvent } from \"./keycloak\";\nimport ContextsProvider from \"./app/contexts/ContextsProvider\";\nimport { LocalizationProvider } from \"@mui/lab\";\nimport AdapterDateFns from \"@mui/lab/AdapterDateFns\";\nimport de from \"date-fns/locale/de\";\n\n//React Render\nReactDOM.render(\n \n \n \n \n \n \n \n \n \n \n \n \n ,\n document.getElementById(\"root\")\n);\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.unregister();\n"],"sourceRoot":""}