{"version":3,"sources":["model/Claim.tsx","stores/AuthenticationStore.tsx","config.js","utils/Variables.ts","utils/ApiHandlers.ts","services/apis/AuthenticationApi.tsx","model/Time.tsx","utils/Date.tsx","stores/GeneralStore.tsx","services/apis/GeneralApi.tsx","stores/IntegrationStore.tsx","services/apis/IntegrationApi.tsx","model/Navigation.tsx","stores/NavigationStore.tsx","stores/UsageStore.tsx","services/apis/UsageApi.tsx","stores/ApplicationStore.tsx","services/apis/ApplicationApi.tsx","stores/ItOperationStore.tsx","services/apis/ItOperationApi.tsx","utils/Report.tsx","stores/ReportStore.tsx","services/apis/ReportApi.tsx","stores/SettingStore.tsx","services/apis/SettingApi.tsx","stores/CustomerManagementStore.tsx","services/apis/CustomerManagementApi.tsx","stores/LoaderStore.tsx","stores/ExecutionStore.tsx","services/apis/ExecutionApi.tsx","model/Icon.tsx","stores/AllStores.tsx","assets/icons/doublearrow.svg","styles/common.tsx","assets/icons/arrowdown.svg","assets/icons/bell.svg","assets/icons/cart.svg","assets/icons/user.svg","assets/icons/gear.svg","assets/icons/cross.svg","assets/icons/circle.svg","assets/icons/group.svg","assets/icons/list.svg","assets/icons/arrowleft.svg","assets/icons/arrowright.svg","assets/icons/doublearrowleft.svg","assets/icons/doublearrowright.svg","assets/icons/calendarstart.svg","assets/icons/calendarend.svg","assets/icons/save.svg","assets/icons/reset.svg","assets/icons/plus.svg","assets/icons/minus.svg","assets/icons/history.svg","assets/icons/refresh.svg","assets/icons/location.svg","assets/icons/application.svg","assets/icons/info.svg","assets/icons/dispute.svg","assets/icons/check.svg","assets/icons/delete.svg","assets/icons/mail.svg","assets/icons/locked.svg","assets/icons/unlocked.svg","assets/icons/unchecked.svg","assets/icons/edit.svg","assets/icons/portal.svg","assets/icons/loader.svg","assets/icons/search.svg","assets/icons/lock.svg","assets/icons/block.svg","assets/icons/unassigned.svg","components/common/Modal/index.tsx","assets/icons/index.tsx","components/common/Icon/index.tsx","components/common/Loader/index.tsx","components/common/NavigationTabs/index.tsx","components/common/Page/styles.tsx","components/common/Card/index.tsx","model/Status.tsx","components/common/Page/index.tsx","components/common/Legend/index.tsx","components/Integrations/CalendarHeatMap/index.tsx","components/common/Pagination/index.tsx","components/Integrations/IntegrationsHeatMap/index.tsx","components/common/SearchInput/index.tsx","components/Integrations/IntegrationsHeatMap/BreadCrumbs/index.tsx","components/common/List/common.tsx","components/common/List/index.tsx","utils/Integration.tsx","utils/Status.tsx","components/Integrations/IntegrationsHeatMap/ListItems/index.tsx","components/Integrations/IntegrationsHeatMap/Tiles/index.tsx","components/common/Pills/index.tsx","utils/common.tsx","components/Applications/ApplicationsRuntime/index.tsx","components/Integrations/TotalExecutionsChart/index.tsx","screens/General.tsx","assets/platformcomponenttypeicons/azure-api-management.svg","assets/platformcomponenttypeicons/azure-logic-app.svg","assets/platformcomponenttypeicons/azure-function.svg","assets/platformcomponenttypeicons/azure-vpn-gateway.svg","assets/platformcomponenttypeicons/azure-esb.svg","assets/platformcomponenttypeicons/application.svg","assets/platformcomponenttypeicons/application-endpoint.svg","assets/platformcomponenttypeicons/vpn-gateway.svg","assets/platformcomponenttypeicons/boomi-agent.png","assets/platformcomponenttypeicons/boomi-molecule.png","assets/platformcomponenttypeicons/boomi-process.svg","assets/platformcomponenttypeicons/other-infrastructure-component.svg","assets/platformcomponenttypeicons/other-developer-component.svg","assets/platformcomponenttypeicons/unknown.svg","components/Integrations/PlatformComponentTypeIcon/index.tsx","utils/Application.tsx","components/Integrations/CustomNode/index.tsx","components/Integrations/CustomEdge/index.tsx","components/Integrations/FlowDiagram/index.tsx","model/Report.tsx","components/common/Switch/index.tsx","components/Integrations/IntegrationsFirstLevelDiagram/ExecutionsDoughnutChart/index.tsx","components/Integrations/IntegrationsFirstLevelDiagram/index.tsx","utils/Node.ts","utils/Edge.ts","screens/Integrations.tsx","components/Integrations/ItOperationsList/index.tsx","screens/ItOperations.tsx","components/Applications/ApplicationsList/index.tsx","screens/Applications.tsx","components/Usage/UsageLineChart/index.tsx","components/Usage/UsagePerMonth/MonthsList/index.tsx","components/Usage/UsageTree/index.tsx","components/Usage/UsagePerMonth/MonthDetail/index.tsx","components/Usage/UsagePerMonth/index.tsx","screens/Usage.tsx","components/Reports/ReportDoughnutChart/index.tsx","components/Integrations/Executions/index.tsx","components/Reports/ReportIncidentsList/index.tsx","utils/Array.ts","components/Reports/ReportPieChart/index.tsx","components/Reports/ReportChangeRequestsList/index.tsx","components/Reports/ReportProActiveWorkList/index.tsx","screens/Reports.tsx","screens/settings/common.tsx","components/common/CrudModal/index.tsx","model/Phone.tsx","components/common/PhoneInput/index.tsx","utils/Validation.tsx","components/common/TextInput/index.tsx","components/Settings/SettingContactModal/index.tsx","components/Settings/ContactsList/index.tsx","screens/settings/ContactDetails.tsx","components/common/TableCheckbox/index.tsx","components/Settings/SettingSupportWindowsList/index.tsx","components/common/Checkbox/index.tsx","components/Settings/SettingApplicationGroupContactModal/index.tsx","components/Settings/SettingApplicationGroupContactsList/index.tsx","components/Settings/SettingChangeRequestContactModal/index.tsx","components/Settings/SettingChangeRequestContactsList/index.tsx","screens/settings/ContactSchedule.tsx","components/Settings/SettingLogicalGroupModal/index.tsx","components/Settings/SettingLogicalGroupRenameModal/index.tsx","components/Settings/SettingGroupWorkflowTree/SettingGroupWorkflowTreeItem/index.tsx","components/Settings/SettingGroupWorkflowTree/index.tsx","components/Settings/SettingTechnicalComponents/index.tsx","screens/settings/GroupWorkflow.tsx","components/Customers/CustomersList/index.tsx","components/common/RadioButtonGroup/index.tsx","components/Customers/CustomerCrud/CustomerEnvironmentDeploymentAreaModal/index.tsx","components/Customers/CustomerCrud/CustomerEnvironmentModal/index.tsx","components/Customers/CustomerCrud/CustomerEnvironments/index.tsx","components/Customers/CustomerCrud/CustomerOptions/index.tsx","components/Customers/CustomerCrud/CustomerPriceTiersModal/index.tsx","components/Customers/CustomerCrud/CustomerPriceTiering/index.tsx","components/Customers/CustomerCrud/CustomerWorkOrderModal/index.tsx","components/Customers/CustomerCrud/CustomerSupport/index.tsx","components/Customers/CustomerCrud/index.tsx","screens/CustomerManagement.tsx","model/ExecutionSearch.tsx","components/Integrations/Executions/ListItems/index.tsx","screens/Executions.tsx","Routes.tsx","App.tsx","msalConfig.tsx","configLoader.js","index.tsx"],"names":["Claim","PermissionArea","PermissionType","AuthenticationStore","api","loaderStore","generalStore","userHasRouteOptionAccess","accessOptions","access","forEach","accessOption","userPermissionsInfo","options","userHasPermission","permissionArea","permissionType","permissions","permission","userHasRoutePermission","routePermissions","routePermission","View","getDefaultSubscription","sub","undefined","subscriptions","subscription","isDefault","switchToCustomer","subscriptionId","a","setLoading","success","stopLoading","getUserPermissionsInfo","getEnvironments","console","log","makeObservable","this","observable","action","response","data","currentSubscription","config","BaseConfig","baseUrl","apiUrl","auth","ApiHandlers","msalInstance","getJsonResponse","rawResponse","json","getFileResponse","blob","getResponse","method","url","init","file","fetch","encodeURI","getFileHeaders","getHeaders","headers","ok","status","errorData","fetchFile","stringifyIfObject","obj","JSON","stringify","getResponseHeaders","headerObj","keys","header","next","value","get","body","FormData","append","activeAccount","getActiveAccount","accounts","getAllAccounts","length","request","scopes","getAuth","scopeUrl","account","acquireTokenSilent","authResult","Accept","Authorization","accessToken","fresh","instance","getInstance","AuthenticationApi","getBaseApiUrl","put","GlobalTimeFrame","TimeJump","UsageTimeFrame","ExecutionsTimeUnit","globalTimeFrames","id","Hours","timeJump","name","ThreeDays","Days","Week","Month","Quarter","Months","usageTimeFrames","TwoMonths","executionsTimeUnits","Second","Minute","Hour","Day","Year","weekDays","months","getLastHoursLabels","hours","date","hour","getHours","Date","hoursList","i","push","reverse","getDaysAgo","numberOfDaysAgo","days","getMonthsAgo","numberOfMonthsAgo","getLastDaysLabels","day","getDay","daysList","getLastWeekLabels","getLastMonthLabels","getDate","setDate","getLastQuarterLabels","month","monthsList","getMonth","setMonth","getFlowTimeDate","format","getFlowTimeHours","getUsageStartDate","timeFrame","isLastDayOfMonth","testDate","getTime","formatAPIDate","GeneralStore","getCountryPhoneCode","country","countryPhoneCodes","find","countryPhoneCode","getCurrentEnvironmentName","environments","env","currentEnvironment","codes","environmentId","end","start","getGlobalStartDate","globalTimeFrame","frame","getTimeJump","getCalendarSuccessRateData","calendarSuccessRate","years","Map","Object","entries","GeneralApi","IntegrationStore","saveFlowDiagramLayouting","parentLogicalGroupId","layout","getTotalExecutionsData","totalExecutions","getIntegrationData","integrationsData","levelData","currentIntegrationLevel","locationGroups","breadCrumbs","logicalGroup","openedLogicalGroup","logicalGroupLevel","openedLogicalGroupId","set","index","findIndex","group","logicalGroups","findAndSetOpenedLogicalGroupInLevel","flowDiagramMode","logicalGroupId","getFlowDiagramData","currentFlowDiagramData","currentLogicalGroup","component","currentPlatformComponent","show","showSidePanel","showTraffic","resetCurrentFlowDiagramData","IntegrationApi","RouteID","Route","horizonUrl","horizonRoutes","route","navigationItems","CustomerManagement","permissionAreas","Customer","General","Application","Integration","Integrations","Executions","Execution","ItOperations","Applications","Usage","Reports","Report","Settings","Contact","subNavigation","ContactDetails","ContactSchedule","GroupWorkflow","NavigationStore","getNavigationItem","navItem","navigationTabs","item","subItem","checkOptionAccess","filteredHorizonRoutes","filter","horizonNavigation","checkPermissonAccess","filteredNavigationItems","filteredSubNavigationItems","setRedirectionRoute","setCurrentRoute","redirectionRoute","currentRoute","UsageStore","startDate","endDate","getUnitConsumptionData","unitConsumptionData","getUsagePerMonthData","usagePerMonthData","getSelectedMonthData","selectedMonthUsage","UsageApi","ApplicationStore","getApplicationsRuntime","applicationsRuntime","getApplicationData","applicationEnvironments","ApplicationApi","ItOperationStore","getItOperationData","itOperationLocations","ItOperationApi","generateReportMonths","today","getFullYear","ReportStore","authenticationStore","getReportStartDate","customerId","getReportOfMonth","currentMonthData","ReportApi","SettingStore","getUsers","users","userId","deleteUser","resetPassword","toggleEnable","toggleAdminRole","sendInvitation","user","addUser","getContacts","contacts","contactId","deleteContact","contact","addContact","editContact","getScheduleContacts","scheduleContacts","getIncidentsContactSchedule","incidentsContactSchedule","schedule","editIncidentsContactSchedule","getChangeRequestsContactSchedule","changeRequestsContactSchedule","editChangeRequestsContactSchedule","getAllLogicalGroups","allLogicalGroups","getAllTechnicalComponents","allTechnicalComponents","editGroupWorkflow","SettingApi","delete","post","CustomerManagementStore","getCustomers","customers","getCustomerDetailMetaData","getCustomerDetail","customer","addCustomer","editCustomer","deleteCustomer","CustomerManagementApi","LoaderStore","loading","ExecutionStore","executionsData","pagedExecutions","executionDetailsData","searchFilter","getExecutionData","setRawExecutionsData","executions","transactionId","getExecutionDetails","ExecutionApi","Icon","allStores","navigationStore","integrationStore","executionStore","itOperationStore","applicationStore","usageStore","reportStore","settingStore","customerManagementStore","_g","$grey","$lightRed","$blue5","$blue4","$blue2","$blue1","$statusFail","$statusFailTransparent","$statusSuccess","$statusSuccessTransparent","$statusSuccessSlow","$statusProblematic","$statusProblematicCalendar","$statusNoValue","$statusNoValueTransparent","$statusUnknownOrNoStatus","chartColorPalette","reportTicketStatusColorPalette","$textLight","$textDark","largeText","css","mediumText","smallText","regularText","semiBoldText","boldText","darkText","lightText","textStyling","props","small","large","semibold","bold","dark","uppercase","color","extraStyling","Text","styled","p","Span","span","Link","inputStyling","Select","input","select","highlight","fullWidth","Button","white","disabled","simple","textColor","hoverColor","Filter","div","StatusCircle","size","StyledReactTooltip","ReactTooltip","attrs","className","TooltipText","InfoIconWrapper","iconButtonStyling","IconButton","HeaderWithAdd","_excluded","_extends","assign","target","arguments","source","key","prototype","hasOwnProperty","call","apply","_objectWithoutProperties","excluded","sourceKeys","indexOf","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","SvgDoublearrow","_ref","svgRef","title","titleId","xmlns","viewBox","ref","fill","d","_path","ForwardRef","SvgArrowdown","xmlnsXlink","role","SvgBell","SvgCart","_path2","SvgUser","_defs","SvgGear","SvgCross","SvgCircle","cx","cy","r","SvgGroup","SvgList","width","height","rx","y","SvgArrowleft","SvgArrowright","SvgDoublearrowleft","SvgDoublearrowright","SvgCalendarstart","x1","y1","x2","y2","SvgCalendarend","SvgSave","SvgReset","SvgPlus","SvgMinus","x","SvgHistory","SvgRefresh","SvgLocation","SvgApplication","SvgInfo","SvgDispute","SvgCheck","SvgDelete","SvgMail","SvgLocked","SvgUnlocked","SvgUnchecked","SvgEdit","SvgPortal","_g2","_g3","_g4","_g5","_g6","_g7","_g8","_g9","_g10","SvgLoader","style","margin","background","display","shapeRendering","preserveAspectRatio","transform","fillOpacity","attributeName","type","begin","values","keyTimes","dur","repeatCount","SvgSearch","SvgLock","SvgBlock","SvgUnassigned","ModalType","ModalColorType","icons","doublearrow","Doublearrow","arrowdown","Arrowdown","bell","Bell","cart","Cart","User","gear","Gear","cross","Cross","circle","Circle","Group","list","List","arrowleft","ArrowLeft","arrowright","ArrowRight","doublearrowleft","DoubleArrowLeft","doublearrowright","DoubleArrowRight","calendarstart","CalendarStart","calendarend","CalendarEnd","save","Save","reset","Reset","plus","Plus","minus","Minus","history","History","refresh","Refresh","location","Location","application","info","Info","dispute","Dispute","check","Check","Delete","mail","Mail","locked","Locked","unlocked","Unlocked","unchecked","Unchecked","edit","Edit","portal","Portal","loader","Loader","search","Search","lock","Lock","block","Block","unassigned","Unassigned","Container","onClick","IconComponent","stroke","IconName","Content","LoadingText","customText","TabWrapper","TabContainer","active","TabText","ActiveLineContainer","ActiveLine","SubNavigationContainer","SubNavigationItem","Tab","tab","useState","openSubNav","setOpenSubNav","handleMouseUp","useCallback","e","tabComponent","document","getElementById","parentNode","useEffect","addEventListener","removeEventListener","handleTabClick","navigate","subNavItem","onMouseUp","map","NavigationTabs","PageTop","HeaderBackground","HeaderBackgroundBig","HeaderBackgroundSmall","Header","LogoContainer","Logo","img","Navigation","NavigationItem","HeaderActions","UserButton","button","UserName","PageTitle","Footer","footer","FooterTop","FooterBottom","FooterBottomContent","seperatorStyling","FooterBottomText","seperator","FooterBottomLink","noClaimsCardStyling","FilterHeader","space","CardRowContainer","darkBorder","collapsable","CollapseIcon","collapsed","hasHeader","extraContentStyling","CardSpacer","Error","Card","error","errorText","children","setCollapsed","ExecutionSpeedStatus","Background","fixed","ModalText","actions","Modal","Message","colorType","customButtonText","cancel","NoAccess","Warning","DataLoadFailed","Action","NoAccessModal","inject","observer","useHistory","useMsal","useAccount","setName","src","alt","href","window","open","hasBacklogUrl","developmentBacklogUrl","allowTicketManagement","rel","ExecutionSuccessStatusHeatMap","ExecutionSuccessStatus","executionSpeedStatuses","SuccessOnTime","explanation","transparentColor","SuccessSlow","Fail","getExecutionSpeedStatus","statusId","executionSuccessStatuses","Success","Problematic","NoValue","InProgress","executionCalendarSuccessStatuses","vertical","Item","LegendBadge","LegendText","Legend","items","legendItem","disclaimer","boldValue","fontWeight","marginLeft","cellSize","countDay","formatDay","timeWeek","d3","formatMonth","pathMonth","t","Math","max","min","getUTCDay","w","count","n","Calendar","TooltipColor","HeightContainer","dataLoad","setDataLoad","legendItems","setLegendItems","finally","newLegend","legend","calendar","innerHTML","year","attr","selectAll","join","text","datum","fullDate","setHours","enter","on","transition","__data__","tooltipLabel","currentStatus","tooltipValue","tooltipColor","backgroundColor","ceil","rebuild","then","effect","place","border","arrowColor","PaginationContainer","PageNumberContainer","PageNumber","PaginationButtonContainer","textLeft","PaginationButtonText","PaginationButton","icon","PageNumberButton","pageNumber","ViewType","Pagination","currentPage","goToPage","pagesCount","maxPageNumbersVisible","minimumBoundary","maximumBoundary","boundaries","minimum","maximum","virtualMinimum","floor","virtualMaximum","minimumDelta","maximumDelta","getBoundaries","Array","toString","iconStyling","SearchInput","onValueChange","placeholder","onChange","BreadCrumbsContainer","BreadCrumb","last","BreadCrumbs","goToHighestLevel","breadCrumb","NoSearchResults","noSearchResultsText","ListHeaderText","CenteredCellContainer","DeleteButton","stopPropagation","EditButton","ListContainer","headerBackground","HeaderItem","flex","Rows","Row","noBackground","reverseBackground","selected","hover","clickable","cellStyling","paddingLeft","textAlign","TextCell","Cell","ColorIndicatorContainer","ColorIndicator","EmptyCell","customColumnWidths","colorIndicator","selectedRow","blockClicking","noDataText","smallEmpty","searchMode","hasDetails","onRowClick","retryDataLoading","alignments","cellPadding","renderNoDataRows","row","rowIndex","cell","cellIndex","includes","paddingRight","details","cells","round","number","decimals","multiplier","Number","EPSILON","convertExecutions","string","getExecutionsString","executionsPerTimeUnit","executionsTimeUnit","unitId","unit","getSuccessStatusColor","Percentage","headersWithSlow","headersWithoutSlow","ListItems","itemsToRender","onItemClick","successesSlow","failPercentage","total","fails","roundedFailPercentage","successPercentage","successes","roundedSuccessPercentage","successSlowPercentage","roundedSuccessSlowPercentage","flat","TilesContainer","tileWidth","baseTileHeight","tileHeight","barWidth","basicTileStyling","Tile","EmptyTile","Title","ExecutionsPerUnit","Total","TotalLabel","TotalAmount","BarAndCardContainer","BarContainer","Bar","BarCardContainer","BarCard","barMiddle","Tiles","totalItemsOnLevel","widget","isTopLevel","goLevelUp","onLeaveWidget","renderEmptyTiles","maxWidgetTiles","maxTilesPerPage","tile","renderLoader","renderEmptyData","renderNoDataLoaded","flexDirection","failBarHeight","successBarHeight","successSlowBarHeight","position","top","opacity","emptyItem","marginBottom","TopBar","ViewFilter","viewFilterBasicStyling","viewFilterStyling","viewFilterActiveStyling","TimeFrameDates","seperateIntoPages","viewType","maxItems","newLevelData","slice","loaded","setViewType","setItemsToRender","setCurrentPage","searchList","setSearchList","setCurrentLogicalGroup","setCurrentPlatformComponent","setOpenedLogicalGroupAfterDataReload","setCurrentIntegrationLevel","getItemsToRender","setFlowDiagramMode","setBreadCrumbs","goToLevelData","newBreadCrumbs","splice","setOpenedLogicalGroup","handleDataReload","renderBreadCrumbs","renderSearch","filteredGroups","toLowerCase","getSearchItems","renderViewFilter","renderTopBar","renderPagination","renderListItems","renderTiles","Pill","Pills","pills","setActive","pill","splitArray","array","parts","result","ApplicationsContainer","ApplicationsColumn","Runtime","columns","columnIndex","itemIndex","empty","up","ChartContainer","hasSlowStatus","translate","labels","datasets","dataSet","addExplanation","totalExecutionData","label","borderColor","maintainAspectRatio","interaction","intersect","mode","scales","grid","stacked","elements","line","tension","plugins","tooltip","enabled","external","context","tooltipEl","createElement","appendChild","tooltipModel","classList","remove","yAlign","add","bodyLines","bodyItem","lines","innerHtml","htmlValueLines","colors","labelColors","split","parseInt","replace","toLocaleString","maximumFractionDigits","tableRoot","querySelector","chart","canvas","getBoundingClientRect","left","pageXOffset","caretX","pageYOffset","caretY","padding","borderRadius","boxShadow","pointerEvents","AreaChartContainer","ApplicationsHeader","ApplicationsHeaderTitle","accessViewApplication","accessViewIntegration","message","pathname","startsWith","resetApplicationsRuntime","resetTotalExecutions","resetCalendarSuccessRate","defaultValue","setCurrentEnvironment","environment","setTimeFrame","Image","PlatformComponentTypeIconComponent","iconName","highlightApplicationRelations","applicationId","platformComponents","getElementsByClassName","platformComponent","parentElement","getElementsByTagName","highlightRelatedApplications","applicationIds","applicationComponents","applicationComponent","tileSize","TitleContainer","PlatformComponentsContainer","showTiles","PlatformComponentContainer","TileContainer","TooltipTitle","PlatformComponent","showTooltip","setShowTooltip","setSelected","onMouseOver","applications","onMouseLeave","PlatformComponentTile","PlatformComponentTypeIcon","PlatformComponentBar","Position","Top","onConnect","Bottom","LabelContainer","Label","basicValues","sourceX","sourceY","targetX","targetY","sourcePosition","targetPosition","arrowHeadType","markerEndId","linkData","edgePath","getBezierPath","markerEnd","getMarkerEnd","getEdgeCenter","edgeCenterX","edgeCenterY","path","duration","getTotalLength","latency","traffic","amountOfCalls","highestTraffic","xlinkHref","renderTraffic","foreignObjectSize","requiredExtensions","FlowDiagramContainer","interactive","DiagramContainer","SaveActions","SaveButton","disable","ModalActions","dagreGraph","dagre","graphlib","Graph","setDefaultEdgeLabel","ReportIncidentStatus","nodeTypes","customNode","CustomNode","edgeTypes","customEdge","CustomEdge","nodeHasDimension","node","__rf","Diagram","nodes","edges","connectionHovering","onNodeMove","onInteractivity","onSave","nodesWithData","useStoreState","store","setNodesData","useStoreActions","setElements","layoutIsSet","setLayoutIsSet","elementsLayout","setElementsLayout","originalNodesWithData","setOriginalNodesWithData","showSaveModal","setShowSaveModal","showResetModal","setShowResetModal","enableSaveButtons","setEnableSaveButtons","graphHeight","setGraphHeight","graphWidth","setGraphWidth","handleMouseOver","zIndex","handleMouseLeave","every","nodesWithSize","direction","isHorizontal","setGraph","rankdir","edgesep","nodesep","ranksep","marginx","marginy","element","isNode","nodeWithSize","setNode","setEdge","graph","Left","Right","nodeWithData","nodeWithPosition","random","getLayoutedElements","connections","connection","SaveModal","handleLayoutSave","ResetModal","handleLayoutReset","originalPosition","onElementsRemove","nodesDraggable","nodesConnectable","zoomOnScroll","zoomOnPinch","zoomOnDoubleClick","selectNodesOnDrag","paneMoveable","onNodeDrag","showInteractive","onZoomIn","onZoomOut","onFitView","FlowDiagram","Checkbox","checked","Switch","setChecked","DoughnutContainer","MiddleContent","LegendContainer","ExecutionsDoughnutChart","animated","failLegend","successLegend","weight","animation","cutout","borderWidth","fontSize","durationSidePanelOpenClose","diagramMinHeight","SidePanel","SidePanelContent","LogicalGroupInfo","ItemInfo","ItemName","InfoContainer","InfoLabel","InfoText","NoInfo","SidePanelActions","LogicalGroupContainer","setNodes","setEdges","applicationsArray","setApplicationsArray","convertData","locationGroup","locationGroupData","area","appId","links","lowestTraffic","link","from","to","ArrowHeadType","ArrowClosed","convertLogicalGroupLinksToDiagramEdges","handleApplicationMouseOver","handleApplicationMouseLeave","setShowTraffic","setShowSidePanel","borderTop","paddingTop","applicationsColumn","applIndex","PlatformComponentTypeContainer","PlatformComponentTypeHeader","PlatformComponentTypeName","PlatformComponentTypeContent","PlatformComponentTypeHeaderTitle","NoData","PlatformComponentType","platformComponentType","ItOperationsList","platformComponentTypes","breakpointCols","columnClassName","LocationHeader","NoLocations","renderLocations","itOperationLocation","Status","ButtonContainer","extraButtonStyling","extraRefreshButtonStyling","ApplicationsList","handleRefresh","handleHistoryClick","EnvironmentHeader","EnvironmentName","NoEnvironments","renderEnvironments","applicationEnvironment","UsageLineChart","units","setUnits","setLabels","lastDays","setLastDays","unitsArray","labelsArray","lastDaysArray","pointBackgroundColor","drawBorder","lineWidth","borderDash","tick","ticks","autoSkip","maxRotation","minRotation","callback","val","align","MonthsList","selectedMonth","onMonthSelect","monthData","Units","rowId","Environments","ItemContainer","firstLevel","Hook","ItemBar","ItemNameContainer","SubItemsContainer","opened","TreeItem","subItems","openState","setOpened","itemCount","listHeaders","UsageTree","renderPlatformComponentsList","sla","renderPlatformComponentTypes","deploymentArea","pctIndex","renderDeploymentAreas","deploymentAreas","daIndex","MonthContainer","MonthInformation","MonthInfoLeft","MonthStatus","IntegrationUnitsContainer","MonthDetail","uptime","UsagePerMonth","selectedMonthData","setSelectedMonth","handleMonthSelection","monthIndex","dataLoaded","setDataLoaded","accessViewUsage","setStartDate","useMemo","setUsageStartDate","NoDataImage","ReportDoughnutChart","renderDoughnutChart","hoverBackgroundColor","reduce","b","renderNoData","reportIncidentStatuses","Open","Closed","Resolved","ReportIncidentsList","incidents","incident","ticket","priority","description","createdBy","created","isValid","started","resolved","incidentStatus","movePlaceInArray","oldIndex","newIndex","k","moveUpInArray","currentIndex","moveDownInArray","sumOfNumbers","accumulator","PieContainer","NoDataContainer","FailedContainer","emptyPieSize","EmptyPie","ReportPieChart","inProgress","closed","dataValues","dataIsEmpty","renderPieChart","ReportChangeRequestsList","changeRequests","disputeEmail","requestedBy","workOrder","canDispute","ReportProActiveWorkList","proActiveWorkItems","task","ResolvedHeader","Line","extraSummaryCardContentStyling","OpenedAndClosed","MonthNote","ChangeRequestNote","NoMonths","accessViewReport","lastReportMonthIndex","proActiveWork","renderPieChartIncidents","renderPieChartProActiveWork","renderPieChartChangeRequests","openedTickets","closedTickets","resolvedList","openList","HeaderTitle","HeaderExplanation","CardHeader","Actions","CrudModal","content","disableAction","defaultCountryPhoneCode","InputContainer","Input","mandatory","phoneNumber","setPhoneNumber","phoneUtil","PhoneNumberUtil","countryCodes","getSupportedRegions","setCountryPhoneCodes","calCode","getCountryCodeForRegion","code","newPhoneNumber","test","extraLabelStyling","RelativeContainer","RowContainer","TextArea","textarea","hasPrefix","Prefix","InputActions","TextInput","prefix","inputActions","multiline","viewMode","numeric","dataList","dataListName","infoTooltip","infoTooltipContent","onBlur","setValue","handleChange","decimalNumber","isNaN","handleBlur","AddUserContentContainer","numberErrorText","SettingContactModal","setShow","phone","mobile","email","deletable","setContact","numberError","setNumberError","emailError","setEmailError","addButtonStyling","baseHeaders","ContactsList","viewAccess","editAccess","deleteAccess","showDeleteContactModal","setShowDeleteContactModal","showDeleteContactFailModal","setShowDeleteContactFailModal","showEditContactModal","setShowEditContactModal","showEditContactFailModal","setShowEditContactFailModal","showAddContactModal","setShowAddContactModal","showAddContactFailModal","setShowAddContactFailModal","actionContact","setActionContact","handleDeleteContact","handleContactAdd","handleContactEdit","renderDeleteContactModal","renderFailModal","contactDataCells","editButton","handleEditContactClick","deleteButton","handleDeleteContactClick","accessViewContact","accessEditContact","accessDeleteContact","resetContacts","allowEscalationManagement","TableCheckbox","SettingSupportWindowsList","editData","supportWindow","technicalContact","escalation","ignoreValue","selectedContact","chase","ignoreText","functionalContact","htmlFor","AddContactContentContainer","SettingApplicationGroupContactModal","contactAreas","supportWindows","originalContact","close","nameError","setNameError","contactsError","setContactsError","renderContactsError","sw","c","emptyName","notOneOfTwoContacts","SettingApplicationGroupContactsList","applicationOrGroupContacts","editApplicationOrGroupContacts","showEditOrAddApplicationGroupContact","setShowEditOrAddApplicationGroupContact","selectedApplicationGroupContact","setSelectedApplicationGroupContact","baseColumns","editColumns","applicationOrGroupContact","baseCells","editButtons","newContact","editedContact","SettingChangeRequestContactModal","roles","comments","SettingChangeRequestContactsList","changeRequestContacts","editChangeRequestContacts","showEditOrAddContactModal","setShowEditOrAddContactModal","selectedChangeRequestContact","setSelectedChangeRequestContact","changeRequestContact","CardHeaderSave","IncidentsContactScheduleContainer","GreyCard","setIncidentsContactSchedule","changeRequestContactSchedule","setChangeRequestContactSchedule","editedIncidentContactSchedule","setEditedIncidentContactSchedule","editedChangeRequestSchedule","setEditedChangeRequestContactSchedule","incidentsSchedule","changeRequestsSchedule","handleIncidentContactsDataReload","handleIncidentContactScheduleEdit","resetContactSchedule","defaultContacts","specificContacts","SelectedLocation","SettingLogicalGroupModal","selectedParent","parent","setParent","locationPaths","l","systemGroup","getOptionsFromLevel","option","groupId","subGroups","technicalComponents","SettingLogicalGroupRenameModal","ItemActionsContainer","DeleteButtonContainer","SettingGroupWorkflowTreeItem","levelCount","levelIndex","selectedLogicalGroup","setSelectedLogicalGroup","deleteLogicalGroup","moveUpLogicalGroup","moveDownLogicalGroup","renameLogicalGroup","lastLevel","notLastLevelWithParent","childCount","disableMoveUp","disableMoveDown","EmptyOrFailed","deleteLogicalGroupFromLevel","deleted","moveLogicalGroupRankInLevel","moved","rank","addLogicalGroupToParentInLevel","parentId","addID","added","parentIndex","SettingGroupWorkflowTree","editLogicalGroups","setAddID","showAddLogicalGroupModal","setShowAddLogicalGroupModal","logicalGroupToRename","setLogicalGroupToRename","handleDeleteLogicalGroup","handleMoveUpLogicalGroup","handleMoveDownLogicalGroup","handleRenameLogicalGroup","handleAddLogicalGroup","newLogicalGroup","SelectedLogicalGroup","SelectedLogicalGroupParent","NoSelectedLogicalGroup","HeaderContainer","ActionsContainer","baseColumnWidths","SettingTechnicalComponents","resetSelectedLogicalGroup","editSelectedLogicalGroupTechnicalComponent","sortedAndFilteredTechnicalComponents","setSortedAndFilteredTechnicalComponents","selectedEnvironment","setSelectedEnvironment","searchString","setSearchString","sortAndFilter","components","comp","sort","includesA","includesB","technicalComponent","usage","SaveButtonsContainer","accessEditIntegration","setLogicalGroups","setTechnicalComponents","editedLogicalGroups","setEditedLogicalGroups","groups","handleLogicalGroupsDataReload","editLogicalGroupLevel","edited","resetGroupWorkflow","newComponent","wasUnassigned","newLogicalGroupTechnicalComponents","compId","newSelectedLogicalGroup","newTechnicalComponents","CustomersList","defaultSubscription","onAdd","onEdit","onCustomerSwitch","filteredList","getCustomerCells","switchButton","s","RadiosContainer","RadioContainer","RadioLabel","extraRadioLabelStyling","RadioButtonGroup","groupName","radios","radio","AreaTypeContainer","FilterContainer","CustomerEnvironmentDeploymentAreaModal","originalDeploymentArea","areaTypes","existingLocations","locationId","areaType","parentAccount","guid","componentPattern","filterBy","filtersBy","setDeploymentArea","currentAreaType","setCurrentAreaType","locationError","setLocationError","parentAccountError","setParentAccountError","guidError","setGuidError","selectedAreaType","at","parentAccountIdName","guidName","hasComponentPattern","nameIsEmpty","locationIsEmpty","parentAccountExistsAndIsEmpty","guidExistsAndIsEmpty","CustomerEnvironmentModal","originalEnvironment","slas","abbreviation","areas","setEnvironment","abbreviationError","setAbbreviationError","DeploymentAreasContainer","ListLabel","environmentsHeaders","deploymentAreasHeaders","getCustomerEnvironmentCells","editEnvironment","deleteEnvironment","getCustomerEnvironmentDeploymentAreaCells","editDeploymentArea","deleteDeploymentArea","emptyFilter","portalUrl","CustomerEnvironments","environmentsError","setEnvironmentsError","editEnvironments","showEnvironmentModal","setShowEnvironmentModal","openedEnvironment","setOpenedEnvironment","selectedEnvironmentListIndex","setSelectedEnvironmentListIndex","showDeploymentAreaModal","setShowDeploymentAreaModal","openedDeploymentArea","setOpenedDeploymentArea","newDeploymentAreas","newEnvironments","renderCustomerEnvironmentModal","renderDeploymentAreaModal","addNewLocation","loc","deleteIndex","newSelectedEnvironmentIndex","urlPrefixes","noMargin","DevelopmentBacklogUrl","UrlPrefixSelect","removePrefixFromUrl","urlPrefix","CustomerOptions","optionsError","setOptionsError","editOptions","getPrefixFromUrl","developmentBacklogUrlPrefix","setDevelopmentBacklogUrlPrefix","toUpperCase","navigator","clipboard","writeText","urlValue","showReports","showUsage","TierContainer","TierTitle","FromContainer","UntilContainer","PriceTier","priceTier","isFirstTier","changePriceTier","calculatePriceTierValues","emptyError","setEmptyError","newPriceTier","until","CustomerPriceTiersModal","priceTiers","editedPriceTiers","setEditedPriceTiers","mainError","setMainError","tier","editedTier","tierIndex","newUntilValue","filledIn","isFirst","isLast","checkFilledIn","validRanges","checkValidRanges","SwitchContainer","priceTieringHeaders","getCustomerPriceTierCells","CustomerPriceTiering","defaultPriceTiers","editPriceTiers","showPriceTiersModal","setShowPriceTiersModal","renderPriceTiersModal","tiers","CustomerWorkOrderModal","setWorkOrder","workOrderError","setWorkOrderError","infoError","setInfoError","emptyWorkOrder","emptyInfo","WorkOrdersTitle","getCustomerWorkOrderCells","workOrders","deleteWorkOrder","CustomerSupport","allowContactChasing","workOrdersError","editSupport","setWorkOrdersError","showWorkOrderModal","setShowWorkOrderModal","renderWorkOrderModal","workOrderIndex","wo","HeaderGroup","CustomerCrud","customerDetailMetaData","originalCustomer","setEdited","locations","setCustomer","editedCustomer","setEditedCustomer","showDeleteModal","setShowDeleteModal","renderCustomerDeleteModal","renderCustomerHeader","emptyEnvironments","emptyDevelopmentBacklogUrl","emptyWorkOrders","editedLocations","accessViewCustomer","accessEditCustomer","accessDeleteCustomer","selectedCustomerId","setSelectedCustomerId","selectedCustomerDetail","setSelectedCustomerDetail","setCustomerDetailMetaData","handleOpenCustomerCrud","metaData","resetCrud","ExecutionSearchFilter","filterString","successStatusFilter","executionDetailsHeaders","retryExecutionDetailsDataLoading","renderExecutionDetailsListCells","resourceId","parse","executionTimestamp","executionDuration","successStatus","firstTimestamp","logicalGroupName","executionData","newExecutionData","getExecutionsData","setExecutionsData","force","resetPages","hasFilterValues","allLevelExecutions","execution","getExecutionDetailsData","renderStatusDropdown","event","newStatus","setSearchFilter","setHorizonNavigation","setNavigationTabs","PrivateRoute","render","navigationItem","redirect","NavigationRoute","AuthenticationError","AuthenticationLoading","App","dataLoadInProgress","setDataLoadInProgress","setActiveAccount","addEventCallback","eventType","EventType","LOGIN_SUCCESS","payload","setMsalInstance","stores","interactionType","InteractionType","Redirect","authenticationRequest","errorComponent","loadingComponent","ua","userAgent","msie","msie11","msedge","firefox","isIE","isEdge","isFirefox","msalConfiguration","cache","storeAuthStateInCookie","system","loggerOptions","loggerCallback","level","containsPii","msalLogLevel","LogLevel","Verbose","debug","warn","ConfigLoader","state","isLoaded","newconfig","prop","setState","ready","Component","process","TEST","REACT_APP_TEST","AppProvider","PublicClientApplication","getMsalConfig","ReactDOM"],"mappings":"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","file":"static/js/main.13277b8f.chunk.js","sourcesContent":["export enum Claim {\n Name = \"name\",\n Role = \"role\",\n Permission = \"permission\",\n Subscription = \"subscription\",\n}\n\nexport enum PermissionArea {\n Customer = \"customer\",\n Integration = \"integration\",\n Execution = \"execution\",\n Application = \"application\",\n Usage = \"usage\",\n Report = \"report\",\n Contact = \"contact\",\n}\n\nexport enum PermissionType {\n View = \"view\",\n Edit = \"edit\",\n Delete = \"delete\",\n}\n","import { action, makeObservable, observable } from \"mobx\";\nimport { PermissionArea, PermissionType } from \"model/Claim\";\nimport { Subscription, UserPermissionsInfo } from \"model/User\";\nimport { AuthenticationApi } from \"services/apis/AuthenticationApi\";\nimport GeneralStore from \"./GeneralStore\";\nimport LoaderStore from \"./LoaderStore\";\n\nclass AuthenticationStore {\n @observable\n userPermissionsInfo: UserPermissionsInfo | undefined = undefined;\n\n @observable\n currentSubscription: Subscription | undefined = undefined;\n\n constructor(public api: AuthenticationApi, private loaderStore: LoaderStore, private generalStore: GeneralStore) {\n makeObservable(this);\n }\n\n @action\n getUserPermissionsInfo = async () => {\n // this.userPermissionsInfo = userPermissionsInfoMockData;\n // this.currentSubscription = this.getDefaultSubscription();\n\n this.loaderStore.setLoading();\n\n const response = await this.api.getUserPermissionsInfo();\n\n if (response.success) {\n const { data } = response;\n this.userPermissionsInfo = data;\n this.currentSubscription = this.getDefaultSubscription();\n } else {\n //const { errorData } = response;\n console.log(\"Something went wrong when trying to fetch user claims\");\n }\n\n this.loaderStore.stopLoading();\n };\n\n @action\n setCurrentSubscriptions = (subscription: Subscription) => {\n this.currentSubscription = subscription;\n };\n\n //TODO: Improve code\n userHasRouteOptionAccess = (accessOptions: string[] | undefined) => {\n let access = true;\n\n accessOptions &&\n accessOptions.forEach((accessOption: string) => {\n if (this.userPermissionsInfo) {\n const options = this.userPermissionsInfo.options as unknown as {\n [key: string]: any;\n }[];\n if (!options[accessOption as any]) {\n access = false;\n }\n }\n });\n\n return access;\n };\n\n userHasPermission = (\n permissionArea: PermissionArea,\n permissionType: PermissionType\n ) => {\n let access = false;\n\n this.userPermissionsInfo?.permissions.forEach((permission) => {\n if (permission === `${permissionArea}.${permissionType}`) {\n access = true;\n }\n });\n\n return access;\n };\n\n userHasRoutePermission = (routePermissions: PermissionArea[]) => {\n let access = false;\n\n routePermissions.forEach((routePermission: PermissionArea) => {\n if (this.userHasPermission(routePermission, PermissionType.View)) {\n access = true;\n return;\n }\n });\n\n return access;\n };\n\n getDefaultSubscription = () => {\n let sub: Subscription | undefined = undefined;\n\n if (this.userPermissionsInfo) {\n this.userPermissionsInfo.subscriptions.forEach((subscription) => {\n if (subscription.isDefault) {\n sub = subscription;\n return;\n }\n });\n }\n\n return sub;\n };\n\n switchToCustomer = async (subscriptionId: number) => {\n this.loaderStore.setLoading();\n\n const response = await this.api.switchToCustomer(subscriptionId);\n\n if (response.success) {\n this.loaderStore.stopLoading();\n this.getUserPermissionsInfo();\n this.generalStore.getEnvironments();\n return true;\n } else {\n //const { errorData } = response;\n console.log(\"Something went wrong when trying to switch customer\");\n this.loaderStore.stopLoading();\n return false;\n }\n };\n\n @action\n reset = () => {\n this.userPermissionsInfo = undefined;\n this.currentSubscription = undefined;\n };\n}\n\nexport default AuthenticationStore;\n","const config = {};\r\nexport default config;\r\n\r\nfunction load() {\r\n return fetch('config.json')\r\n .then(result => result.json())\r\n .then((newconfig) => {\r\n for(let prop in config) {\r\n delete config[prop]\r\n }\r\n for(let prop in newconfig) {\r\n config[prop] = newconfig[prop]\r\n }\r\n return config;\r\n });\r\n}\r\nexport {load}","import { LogLevel } from \"@azure/msal-browser\";\nimport config from \"../config\";\n\nexport class BaseConfig {\n static getBaseUrl(): string {\n //@ts-ignore\n return config.baseUrl;\n }\n\n static getBaseApiUrl(): string {\n //@ts-ignore\n return config.apiUrl;\n }\n\n static getAuth() : AuthConfig {\n //@ts-ignore\n return config.auth;\n }\n}\n\nexport interface RunConfig {\n baseUrl: string;\n apiUrl: string;\n auth: AuthConfig;\n msalLogLevel: LogLevel\n}\n\nexport interface AuthConfig {\n clientId: string;\n authority: string;\n redirectUrl: string;\n postLogoutRedirectUri: string;\n scopeUrl: string;\n}\n","/* eslint-disable camelcase */\n\nimport { IPublicClientApplication } from \"@azure/msal-browser\";\nimport { BaseConfig } from \"./Variables\";\n\ninterface ErrorData {\n status: number;\n title?: string;\n detail?: string;\n traceId?: string;\n type?: string;\n}\n\nexport interface ApiResponseSuccess {\n success: true;\n data: T;\n}\n\nexport interface ApiResponseFailed {\n success: false;\n errorData: ErrorData;\n}\n\nexport type ApiResponse = ApiResponseSuccess | ApiResponseFailed;\n\nexport class ApiHandlers {\n private static instance: ApiHandlers;\n private msalInstance: IPublicClientApplication | undefined;\n\n private constructor() {\n }\n\n static getInstance(fresh = false) {\n if (!ApiHandlers.instance || fresh) {\n ApiHandlers.instance = new ApiHandlers();\n }\n return ApiHandlers.instance;\n }\n\n public setMsalInstance(msalInstance: IPublicClientApplication)\n {\n this.msalInstance = msalInstance;\n }\n\n private getJsonResponse = async (rawResponse: Response) => {\n try {\n const response = !rawResponse ? null : await rawResponse.json();\n return !response ? null : response;\n } catch (error) {\n return rawResponse;\n }\n };\n\n private getFileResponse = async (rawResponse: Response) => {\n try {\n const response = !rawResponse ? null : await rawResponse.blob();\n return !response ? null : response;\n } catch (error) {\n return rawResponse;\n }\n };\n\n private getResponse = async (\n method: string,\n url: string,\n init: RequestInit = {},\n file: boolean = false\n ): Promise => {\n return await fetch(encodeURI(url), {\n ...init,\n method,\n headers: file ? await this.getFileHeaders() : await this.getHeaders(),\n });\n };\n\n fetch = async (\n method: string,\n url: string,\n init: RequestInit = {}\n ): Promise> => {\n try {\n const rawResponse = await this.getResponse(method, url, init);\n const response = await this.getJsonResponse(rawResponse);\n const { ok, status } = rawResponse;\n\n return ok\n ? { success: true, data: response }\n : { success: false, errorData: { status } };\n } catch (error: any) {\n return { success: false, errorData: error };\n }\n };\n\n fetchFile = async (\n method: string,\n url: string,\n init: RequestInit = {}\n ): Promise> => {\n try {\n const rawResponse = await this.getResponse(method, url, init, true);\n const response = await this.getFileResponse(rawResponse);\n const { ok, status } = rawResponse;\n\n return ok && status === 200\n ? { success: true, data: response }\n : { success: false, errorData: { status } };\n } catch (error: any) {\n return { success: false, errorData: error };\n }\n };\n\n async get(url: string): Promise> {\n return this.fetch(\"GET\", url, undefined);\n }\n\n async getFile(url: string): Promise> {\n return this.fetchFile(\"GET\", url, undefined);\n }\n\n private stringifyIfObject = (obj: string | any) =>\n typeof obj === \"object\" ? JSON.stringify(obj) : obj;\n\n async post(url: string, body?: any): Promise> {\n return this.fetch(\"POST\", url, { body: this.stringifyIfObject(body) });\n }\n\n async uploadFile(url: string, file: File): Promise> {\n const data = new FormData();\n data.append(\"file\", file);\n\n return this.fetchFile(\"PUT\", url, {\n body: data,\n });\n }\n\n async put(url: string, body: string | any): Promise> {\n return this.fetch(\"PUT\", url, {\n body: this.stringifyIfObject(body),\n });\n }\n\n async delete(url: string): Promise> {\n return this.fetch(\"DELETE\", url, undefined);\n }\n\n async getHeaders(): Promise {\n if (this.msalInstance) {\n const activeAccount = this.msalInstance.getActiveAccount();\n const accounts = this.msalInstance.getAllAccounts();\n \n if (!activeAccount && accounts.length === 0) {\n console.log(\"Error: There is no signed in user\");\n }\n const request = {\n scopes: [BaseConfig.getAuth().scopeUrl],\n account: activeAccount || accounts[0],\n };\n \n const authResult = await this.msalInstance.acquireTokenSilent(request);\n\n return {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${authResult.accessToken}`,\n } as HeadersInit;\n }\n\n return {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n } as HeadersInit;\n }\n\n getResponseHeaders = (headers: Headers) => {\n let headerObj: any = {};\n const keys = headers.keys();\n let header = keys.next();\n while (header.value) {\n headerObj[header.value] = headers.get(header.value);\n header = keys.next();\n }\n return headerObj;\n };\n\n async getFileHeaders(): Promise {\n if (this.msalInstance) {\n const activeAccount = this.msalInstance.getActiveAccount();\n const accounts = this.msalInstance.getAllAccounts();\n \n if (!activeAccount && accounts.length === 0) {\n console.log(\"Error: There is no signed in user\");\n }\n const request = {\n scopes: [BaseConfig.getAuth().scopeUrl],\n account: activeAccount || accounts[0],\n };\n \n const authResult = await this.msalInstance.acquireTokenSilent(request);\n \n return {\n Accept: \"application/json, text/plain, */*\",\n Authorization: `Bearer ${authResult.accessToken}`,\n } as HeadersInit;\n }\n\n return {\n Accept: \"application/json, text/plain, */*\",\n } as HeadersInit;\n }\n}\n\nexport default ApiHandlers.getInstance();\n","import { UserPermissionsInfo } from \"model/User\";\nimport request, { ApiResponse } from \"../../utils/ApiHandlers\";\nimport { BaseConfig } from \"../../utils/Variables\";\n\nexport class AuthenticationApi {\n private static instance: AuthenticationApi;\n\n private constructor() {}\n\n static getInstance(fresh?: boolean) {\n if (!AuthenticationApi.instance || fresh) {\n AuthenticationApi.instance = new AuthenticationApi();\n }\n return AuthenticationApi.instance;\n }\n\n getUserPermissionsInfo = async (): Promise<\n ApiResponse\n > => request.get(`${BaseConfig.getBaseApiUrl()}permissions/full`);\n\n switchToCustomer = async (\n subscriptionId: number\n ): Promise> =>\n request.put(\n `${BaseConfig.getBaseApiUrl()}users/current/subscription-default?subscriptionId=${subscriptionId}`,\n JSON.stringify({})\n );\n}\n\nexport default AuthenticationApi.getInstance();\n","export enum GlobalTimeFrame {\n Hours = 0,\n ThreeDays = 1,\n Week = 2,\n Month = 3,\n Quarter = 4,\n}\n\nexport enum TimeJump {\n Hours = 0,\n Days = 1,\n Months = 2,\n}\n\nexport enum UsageTimeFrame {\n Month = 0,\n TwoMonths = 1,\n Quarter = 2,\n}\n\nexport interface GlobalTimeFrameType {\n id: GlobalTimeFrame;\n timeJump: TimeJump;\n name: string;\n}\n\nexport interface UsageTimeFrameType {\n id: UsageTimeFrame;\n name: string;\n}\n\nexport const globalTimeFrames: GlobalTimeFrameType[] = [\n {\n id: GlobalTimeFrame.Hours,\n timeJump: TimeJump.Hours,\n name: \"Last 24 hours\",\n },\n {\n id: GlobalTimeFrame.ThreeDays,\n timeJump: TimeJump.Days,\n name: \"Last 3 days\",\n },\n { id: GlobalTimeFrame.Week, timeJump: TimeJump.Days, name: \"Last week\" },\n { id: GlobalTimeFrame.Month, timeJump: TimeJump.Days, name: \"Last month\" },\n {\n id: GlobalTimeFrame.Quarter,\n timeJump: TimeJump.Months,\n name: \"Last quarter\",\n },\n];\n\nexport const usageTimeFrames = [\n { id: UsageTimeFrame.Month, name: \"1 month\" },\n { id: UsageTimeFrame.TwoMonths, name: \"2 months\" },\n { id: UsageTimeFrame.Quarter, name: \"3 months\" },\n];\n\nexport interface GeneralTimeFrame {\n id: GlobalTimeFrame;\n timeJump: TimeJump;\n start: Date;\n end: Date;\n}\n\nexport const getTimeJump = (globalTimeFrame: GlobalTimeFrame) =>\n globalTimeFrames.find((frame) => frame.id === globalTimeFrame)?.timeJump ||\n globalTimeFrames[0].timeJump;\n\nexport enum ExecutionsTimeUnit {\n Second = 0,\n Minute = 1,\n Hour = 2,\n Day = 3,\n Week = 4,\n Month = 5,\n Year = 6,\n}\n\nexport interface ExecutionsTimeUnitType {\n id: ExecutionsTimeUnit;\n name: string;\n}\n\nexport const executionsTimeUnits = [\n {\n id: ExecutionsTimeUnit.Second,\n name: \"/sec\",\n },\n {\n id: ExecutionsTimeUnit.Minute,\n name: \"/minute\",\n },\n { id: ExecutionsTimeUnit.Hour, name: \"/hour\" },\n {\n id: ExecutionsTimeUnit.Day,\n name: \"/day\",\n },\n {\n id: ExecutionsTimeUnit.Week,\n name: \"/week\",\n },\n {\n id: ExecutionsTimeUnit.Month,\n name: \"/month\",\n },\n {\n id: ExecutionsTimeUnit.Year,\n name: \"/year\",\n },\n];\n","import { format, sub } from \"date-fns\";\nimport { GlobalTimeFrame, UsageTimeFrame } from \"model/Time\";\n\nexport const weekDays = [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n];\n\nexport const months = [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n];\n\nexport const getLastHoursLabels = (hours: number, date?: Date) => {\n let hour = date ? date.getHours() : new Date().getHours();\n let hoursList = [];\n\n for (let i = 0; i < hours; i++) {\n hoursList.push(`${hour < 10 ? \"0\" : \"\"}${hour}:00`);\n if (hour > 0) {\n hour--;\n } else {\n hour = 23;\n }\n }\n\n return hoursList.reverse();\n};\n\nexport const getDaysAgo = (date: Date, numberOfDaysAgo: number) =>\n sub(date, {\n days: numberOfDaysAgo,\n });\n\nexport const getMonthsAgo = (date: Date, numberOfMonthsAgo: number) =>\n sub(date, {\n months: numberOfMonthsAgo,\n });\n\nexport const getLastDaysLabels = (days: number, date?: Date) => {\n let day = date ? date.getDay() : new Date().getDay();\n let daysList = [];\n\n for (let i = 0; i < days; i++) {\n daysList.push(weekDays[day]);\n if (day > 0) {\n day--;\n } else {\n day = 6;\n }\n }\n\n return daysList.reverse();\n};\n\nexport const getLastWeekLabels = (date?: Date) => {\n let day = date ? date.getDay() : new Date().getDay();\n let daysList = [];\n\n for (let i = 0; i < 7; i++) {\n daysList.push(weekDays[day]);\n if (day > 0) {\n day--;\n } else {\n day = 6;\n }\n }\n\n return daysList.reverse();\n};\n\nexport const getLastMonthLabels = (date?: Date) => {\n let day = date ? date : new Date();\n let daysList = [];\n\n for (let i = 0; i < 30; i++) {\n daysList.push(`${day.getDate()}`);\n day.setDate(day.getDate() - 1);\n }\n\n return daysList.reverse();\n};\n\nexport const getLastQuarterLabels = (date?: Date) => {\n let month = date ? date : new Date();\n let monthsList = [];\n\n for (let i = 0; i < 4; i++) {\n monthsList.push(`${months[month.getMonth()]}`);\n month.setMonth(month.getMonth() - 1);\n }\n\n return monthsList.reverse();\n};\n\nexport const getFlowTimeDate = (date: Date) => format(date, \"dd/MM/yyyy\");\n\nexport const getFlowTimeHours = (date: Date) => format(date, \"hh:mm:ss\");\n\nexport const getGlobalStartDate = (\n date: Date,\n timeFrame: GlobalTimeFrame\n): Date => {\n switch (timeFrame) {\n case GlobalTimeFrame.ThreeDays:\n return getDaysAgo(date, 3);\n case GlobalTimeFrame.Week:\n return getDaysAgo(date, 7);\n case GlobalTimeFrame.Month:\n return getMonthsAgo(date, 1);\n case GlobalTimeFrame.Quarter:\n return getMonthsAgo(date, 3);\n default:\n return getDaysAgo(date, 1); // Hours\n }\n};\n\nexport const getUsageStartDate = (\n date: Date,\n timeFrame: UsageTimeFrame\n): Date => {\n switch (timeFrame) {\n case UsageTimeFrame.TwoMonths:\n return getMonthsAgo(date, 2);\n case UsageTimeFrame.Quarter:\n return getMonthsAgo(date, 3);\n default:\n return getMonthsAgo(date, 1); // Month\n }\n};\n\nexport const isFirstDayOfMonth = (date: Date) => {\n var testDate = new Date(date.getTime()),\n month = testDate.getMonth();\n\n testDate.setDate(testDate.getDate() - 1);\n return testDate.getMonth() !== month;\n};\n\nexport const isLastDayOfMonth = (date: Date) => {\n var testDate = new Date(date.getTime()),\n month = testDate.getMonth();\n\n testDate.setDate(testDate.getDate() + 1);\n return testDate.getMonth() !== month;\n};\n\nexport const formatAPIDate = (date: Date): string =>\n format(date, \"yyyy-MM-dd HH:mm:ss\");\n","import { action, makeObservable, observable } from \"mobx\";\nimport { Environment } from \"model/Environment\";\nimport { CalendarSuccessRateData } from \"model/Integration\";\nimport { CountryPhoneCode } from \"model/Phone\";\nimport { GeneralTimeFrame, getTimeJump, GlobalTimeFrame } from \"model/Time\";\nimport { GeneralApi } from \"services/apis/GeneralApi\";\nimport { getGlobalStartDate } from \"utils/Date\";\nimport LoaderStore from \"./LoaderStore\";\n\nclass GeneralStore {\n @observable\n countryPhoneCodes: CountryPhoneCode[] | undefined = undefined;\n\n @observable\n environments: Environment[] | undefined = undefined;\n\n @observable\n currentEnvironment: number | undefined = undefined;\n\n @observable\n timeFrame: GeneralTimeFrame | undefined = undefined;\n\n @observable\n calendarSuccessRate: CalendarSuccessRateData | undefined = undefined;\n\n constructor(public api: GeneralApi, private loaderStore: LoaderStore) {\n makeObservable(this);\n }\n\n @action\n setCountryPhoneCodes = async (codes: CountryPhoneCode[]) => {\n this.countryPhoneCodes = codes;\n };\n\n getCountryPhoneCode = (country: string) =>\n this.countryPhoneCodes &&\n this.countryPhoneCodes.find(\n (countryPhoneCode) => countryPhoneCode.country === country\n );\n\n @action\n getEnvironments = async () => {\n this.loaderStore.setLoading();\n\n const response = await this.api.getEnvironments();\n\n if (response.success) {\n const { data } = response;\n if (data.length > 0) {\n this.environments = data;\n this.currentEnvironment = data[0].id;\n }\n } else {\n //const { errorData } = response;\n console.log(\"Something went wrong when trying to fetch environments\");\n }\n\n this.loaderStore.stopLoading();\n };\n\n @action\n setCurrentEnvironment = (environmentId: number) => {\n this.currentEnvironment = environmentId;\n };\n\n getCurrentEnvironmentName = () => {\n return (\n this.environments?.find((env) => env.id === this.currentEnvironment)\n ?.name || \"\"\n );\n };\n\n @action\n setTimeFrame = (timeFrame: GlobalTimeFrame) => {\n let end = new Date();\n let start = getGlobalStartDate(end, timeFrame);\n let timeJump = getTimeJump(timeFrame);\n this.timeFrame = {\n id: timeFrame,\n timeJump: timeJump,\n start: start,\n end: end,\n };\n };\n\n @action\n getCalendarSuccessRateData = async () => {\n if (this.currentEnvironment !== undefined) {\n this.loaderStore.setLoading();\n\n const response = await this.api.getCalendarSuccessRateData(\n this.currentEnvironment\n );\n if (response.success) {\n const { data } = response;\n this.calendarSuccessRate = {\n ...data,\n years: data.years ? new Map(Object.entries(data.years)) : new Map([]),\n };\n } else {\n //const { errorData } = response;\n console.log(\n \"Something went wrong when trying to fetch calendar success rates\"\n );\n }\n\n this.loaderStore.stopLoading();\n }\n };\n\n @action\n resetCalendarSuccessRate = () => {\n this.calendarSuccessRate = undefined;\n };\n}\n\nexport default GeneralStore;\n","import { Environment } from \"model/Environment\";\nimport { CalendarSuccessRateData } from \"model/Integration\";\nimport request, { ApiResponse } from \"../../utils/ApiHandlers\";\nimport { BaseConfig } from \"../../utils/Variables\";\n\nexport class GeneralApi {\n private static instance: GeneralApi;\n\n private constructor() {}\n\n static getInstance(fresh?: boolean) {\n if (!GeneralApi.instance || fresh) {\n GeneralApi.instance = new GeneralApi();\n }\n return GeneralApi.instance;\n }\n\n getEnvironments = async (): Promise> =>\n request.get(`${BaseConfig.getBaseApiUrl()}dashboard/environments`);\n\n getCalendarSuccessRateData = async (\n environmentId: number\n ): Promise> =>\n request.get(\n `${BaseConfig.getBaseApiUrl()}dashboard/success-rates/${environmentId}`\n );\n}\n\nexport default GeneralApi.getInstance();\n","import { action, makeObservable, observable } from \"mobx\";\nimport { TotalExecutions } from \"model/Integration\";\nimport { LocationGroupNodePlatformData } from \"model/Node\";\nimport { IntegrationApi } from \"services/apis/IntegrationApi\";\nimport LoaderStore from \"./LoaderStore\";\nimport GeneralStore from \"./GeneralStore\";\nimport {\n IntegrationLogicalGroup,\n IntegrationLogicalGroupBase,\n IntegrationLogicalGroupLevelOneData,\n LogicalGroupLayoutPosition,\n BaseLogicalGroup,\n LogicalGroupLayoutPositionSave,\n} from \"model/LogicalGroup\";\n\nclass IntegrationStore {\n @observable\n totalExecutions: TotalExecutions[] | undefined = undefined;\n\n @observable\n integrationsData: IntegrationLogicalGroup[] | undefined = undefined;\n\n @observable\n currentIntegrationLevel: Array | undefined =\n undefined;\n\n @observable\n breadCrumbs: IntegrationLogicalGroup[] = [];\n\n @observable\n openedLogicalGroup: IntegrationLogicalGroupBase | undefined = undefined;\n\n @observable\n flowDiagramMode: boolean = false;\n\n @observable\n currentFlowDiagramData: IntegrationLogicalGroupLevelOneData | undefined =\n undefined;\n\n @observable\n flowDiagramLayout: LogicalGroupLayoutPosition[] | undefined = undefined;\n\n @observable currentLogicalGroup: BaseLogicalGroup | undefined = undefined;\n\n @observable currentPlatformComponent:\n | LocationGroupNodePlatformData\n | undefined = undefined;\n\n @observable showSidePanel: boolean = true;\n\n @observable showTraffic: boolean = false;\n\n constructor(\n public api: IntegrationApi,\n private generalStore: GeneralStore,\n private loaderStore: LoaderStore\n ) {\n makeObservable(this);\n }\n\n @action\n getTotalExecutionsData = async () => {\n if (\n this.generalStore.currentEnvironment !== undefined &&\n this.generalStore.timeFrame\n ) {\n this.loaderStore.setLoading();\n\n const response = await this.api.getTotalExecutionsData(\n this.generalStore.currentEnvironment,\n this.generalStore.timeFrame\n );\n\n if (response.success) {\n const { data } = response;\n this.totalExecutions = data;\n } else {\n //const { errorData } = response;\n console.log(\n \"Something went wrong when trying to fetch total executions\"\n );\n }\n\n this.loaderStore.stopLoading();\n }\n };\n\n @action\n getIntegrationData = async () => {\n if (\n this.generalStore.currentEnvironment !== undefined &&\n this.generalStore.timeFrame\n ) {\n this.loaderStore.setLoading();\n\n const response = await this.api.getIntegrationData(\n this.generalStore.currentEnvironment,\n this.generalStore.timeFrame\n );\n if (response.success) {\n const { data } = response;\n this.integrationsData = data;\n } else {\n //const { errorData } = response;\n console.log(\"Something went wrong when trying to fetch integrations\");\n }\n\n this.loaderStore.stopLoading();\n }\n };\n\n @action\n setCurrentIntegrationLevel = (\n levelData: Array | undefined\n ) => {\n this.currentIntegrationLevel = levelData;\n };\n\n @action\n setBreadCrumbs = (locationGroups: IntegrationLogicalGroup[]) => {\n this.breadCrumbs = locationGroups;\n };\n\n @action\n setOpenedLogicalGroup = (logicalGroup: IntegrationLogicalGroupBase) => {\n this.openedLogicalGroup = logicalGroup;\n };\n\n @action\n findAndSetOpenedLogicalGroupInLevel = (\n logicalGroupLevel: IntegrationLogicalGroup[],\n openedLogicalGroupId: number\n ): boolean => {\n let set = false;\n\n const index = logicalGroupLevel.findIndex(\n (group) => group.id === openedLogicalGroupId\n );\n\n if (index !== -1) {\n // Found on this level\n set = true;\n this.openedLogicalGroup = logicalGroupLevel[index];\n } else {\n // Not found on this level; search child-levels\n let i = 0;\n\n while (!set && i < logicalGroupLevel.length) {\n const group = logicalGroupLevel[i];\n if (group.logicalGroups) {\n set = this.findAndSetOpenedLogicalGroupInLevel(\n group.logicalGroups,\n openedLogicalGroupId\n );\n }\n i++;\n }\n }\n\n return set;\n };\n\n @action\n setOpenedLogicalGroupAfterDataReload = () => {\n this.integrationsData &&\n this.openedLogicalGroup &&\n this.findAndSetOpenedLogicalGroupInLevel(\n this.integrationsData,\n this.openedLogicalGroup.id\n );\n };\n\n @action\n setFlowDiagramMode = (set: boolean) => {\n this.flowDiagramMode = set;\n };\n\n @action\n getFlowDiagramData = async (logicalGroupId: number) => {\n if (\n this.generalStore.currentEnvironment !== undefined &&\n this.generalStore.timeFrame\n ) {\n this.loaderStore.setLoading();\n\n const response = await this.api.getFlowDiagramData(\n logicalGroupId,\n this.generalStore.currentEnvironment,\n this.generalStore.timeFrame\n );\n if (response.success) {\n const { data } = response;\n this.currentFlowDiagramData = data;\n } else {\n //const { errorData } = response;\n console.log(\n \"Something went wrong when trying to fetch logical group workflow\"\n );\n }\n\n this.loaderStore.stopLoading();\n }\n };\n\n @action\n setCurrentLogicalGroup = (group: BaseLogicalGroup | undefined) => {\n this.currentLogicalGroup = group;\n };\n\n @action\n setCurrentPlatformComponent = (\n component: LocationGroupNodePlatformData | undefined\n ) => {\n this.currentPlatformComponent = component;\n };\n\n @action\n setShowSidePanel = (show: boolean) => {\n this.showSidePanel = show;\n };\n\n @action\n setShowTraffic = (show: boolean) => {\n this.showTraffic = show;\n };\n\n saveFlowDiagramLayouting = async (\n parentLogicalGroupId: number,\n layout: LogicalGroupLayoutPositionSave[]\n ) => {\n this.loaderStore.setLoading();\n\n const response = await this.api.saveFlowDiagramLayouting(\n parentLogicalGroupId,\n layout\n );\n if (response.success) {\n this.loaderStore.stopLoading();\n return true;\n } else {\n //const { errorData } = response;\n this.loaderStore.stopLoading();\n return false;\n }\n };\n\n @action\n resetTotalExecutions = () => {\n this.totalExecutions = undefined;\n };\n\n @action\n resetCurrentFlowDiagramData = () => {\n this.currentFlowDiagramData = undefined;\n this.openedLogicalGroup = undefined;\n this.currentLogicalGroup = undefined;\n this.currentPlatformComponent = undefined;\n };\n\n @action\n reset = () => {\n this.integrationsData = undefined;\n this.currentIntegrationLevel = undefined;\n this.flowDiagramMode = false;\n this.resetCurrentFlowDiagramData();\n this.breadCrumbs = [];\n };\n}\n\nexport default IntegrationStore;\n","import { TotalExecutions } from \"model/Integration\";\nimport {\n IntegrationLogicalGroup,\n IntegrationLogicalGroupLevelOneData,\n LogicalGroupLayoutPositionSave,\n} from \"model/LogicalGroup\";\nimport { GeneralTimeFrame } from \"model/Time\";\nimport { formatAPIDate } from \"utils/Date\";\nimport request, { ApiResponse } from \"../../utils/ApiHandlers\";\nimport { BaseConfig } from \"../../utils/Variables\";\n\nexport class IntegrationApi {\n private static instance: IntegrationApi;\n\n private constructor() {}\n\n static getInstance(fresh?: boolean) {\n if (!IntegrationApi.instance || fresh) {\n IntegrationApi.instance = new IntegrationApi();\n }\n return IntegrationApi.instance;\n }\n\n getTotalExecutionsData = async (\n environmentId: number,\n timeFrame: GeneralTimeFrame\n ): Promise> =>\n request.get(\n `${BaseConfig.getBaseApiUrl()}dashboard/executions/${environmentId}?timeScale=${\n timeFrame.timeJump\n }&startDate=${formatAPIDate(timeFrame.start)}&endDate=${formatAPIDate(\n timeFrame.end\n )}`\n );\n\n getIntegrationData = async (\n environmentId: number,\n timeFrame: GeneralTimeFrame\n ): Promise> =>\n request.get(\n `${BaseConfig.getBaseApiUrl()}integrations/overview/${environmentId}?startDate=${formatAPIDate(\n timeFrame.start\n )}&endDate=${formatAPIDate(timeFrame.end)}`\n );\n\n getFlowDiagramData = async (\n logicalGroupId: number,\n environmentId: number,\n timeFrame: GeneralTimeFrame\n ): Promise> =>\n request.get(\n `${BaseConfig.getBaseApiUrl()}integrations/workflow/${logicalGroupId}?deploymentEnvironmentId=${environmentId}&startDate=${formatAPIDate(\n timeFrame.start\n )}&endDate=${formatAPIDate(timeFrame.end)}`\n );\n\n saveFlowDiagramLayouting = async (\n parentLogicalGroupId: number,\n layout: LogicalGroupLayoutPositionSave[]\n ): Promise> =>\n request.put(\n `${BaseConfig.getBaseApiUrl()}integrations/position/${parentLogicalGroupId}`,\n JSON.stringify(layout)\n );\n}\n\nexport default IntegrationApi.getInstance();\n","import { PermissionArea } from \"./Claim\";\n\nexport const horizonUrl = \"https://horizon.cegeka.com\";\n\nexport interface HorizonRoute {\n name: string;\n route: string;\n accessOptions?: string[];\n}\n\nexport const horizonRoutes = [\n // {\n // name: \"Health\",\n // route: \"/health\",\n // },\n // { name: \"Inventory\", route: \"/inventory\" },\n // { name: \"Security\", route: \"/security\" },\n { name: \"Integration\", route: \"\" },\n // { name: \"Cost control\", route: \"/cost-control\" },\n // {\n // name: \"Service & portfolio management\",\n // route: \"/service-portfolio-management\",\n // },\n {\n name: \"My tickets\",\n route: \"/tickets\",\n accessOptions: [\"allowTicketManagement\"],\n },\n];\n\nexport enum RouteID {\n General = 0,\n Integrations = 1,\n ItOperations = 2,\n Applications = 3,\n Usage = 4,\n Reports = 5,\n Settings = 6,\n UserManagement = 7,\n ContactDetails = 8,\n ContactSchedule = 9,\n GroupWorkflow = 10,\n CustomerManagement = 11,\n Executions = 12\n}\n\nexport enum Route {\n General = \"/\",\n Integrations = \"/integrations\",\n Executions = \"/executions\",\n ItOperations = \"/it-operations\",\n Applications = \"/applications\",\n Usage = \"/usage\",\n Reports = \"/reports\",\n Settings = \"/settings\",\n UserManagement = \"/settings/user-management\",\n ContactDetails = \"/settings/contact-details\",\n ContactSchedule = \"/settings/contact-schedule\",\n GroupWorkflow = \"/settings/group-workflow\",\n CustomerManagement = \"/customer-management\",\n}\n\nexport interface NavigationItem {\n id: RouteID;\n name: string;\n route: Route;\n permissionAreas: PermissionArea[];\n accessOptions?: string[];\n subNavigation?: NavigationItem[];\n}\n\nexport const navigationItems: NavigationItem[] = [\n {\n id: RouteID.CustomerManagement,\n name: \"Customer Management\",\n route: Route.CustomerManagement,\n permissionAreas: [PermissionArea.Customer],\n },\n {\n id: RouteID.General,\n name: \"General\",\n route: Route.General,\n permissionAreas: [PermissionArea.Application, PermissionArea.Integration],\n },\n {\n id: RouteID.Integrations,\n name: \"Integrations\",\n route: Route.Integrations,\n permissionAreas: [PermissionArea.Integration],\n },\n {\n id: RouteID.Executions,\n name: \"Executions\",\n route: Route.Executions,\n permissionAreas: [PermissionArea.Execution],\n },\n {\n id: RouteID.ItOperations,\n name: \"IT Operations\",\n route: Route.ItOperations,\n permissionAreas: [PermissionArea.Integration],\n },\n {\n id: RouteID.Applications,\n name: \"Applications\",\n route: Route.Applications,\n permissionAreas: [PermissionArea.Application],\n },\n {\n id: RouteID.Usage,\n name: \"Usage\",\n route: Route.Usage,\n permissionAreas: [PermissionArea.Usage],\n accessOptions: [\"showUsage\"],\n },\n {\n id: RouteID.Reports,\n name: \"Reports\",\n route: Route.Reports,\n permissionAreas: [PermissionArea.Report],\n accessOptions: [\"showReports\"],\n },\n {\n id: RouteID.Settings,\n name: \"Settings\",\n route: Route.Settings,\n permissionAreas: [PermissionArea.Contact, PermissionArea.Integration],\n subNavigation: [\n // {\n // id: RouteID.UserManagement,\n // name: \"User Management\",\n // route: Route.UserManagement,\n // permissionAreas: [],\n // },\n {\n id: RouteID.ContactDetails,\n name: \"Provide contact details\",\n route: Route.ContactDetails,\n permissionAreas: [PermissionArea.Contact],\n },\n {\n id: RouteID.ContactSchedule,\n name: \"Define contact schedule\",\n route: Route.ContactSchedule,\n permissionAreas: [PermissionArea.Contact],\n accessOptions: [\"allowEscalationManagement\"],\n },\n {\n id: RouteID.GroupWorkflow,\n name: \"Group Workflow\",\n route: Route.GroupWorkflow,\n permissionAreas: [PermissionArea.Integration],\n },\n ],\n },\n];\n","import { action, makeObservable, observable } from \"mobx\";\nimport { PermissionArea } from \"model/Claim\";\nimport {\n HorizonRoute,\n horizonRoutes,\n NavigationItem,\n navigationItems,\n Route,\n} from \"model/Navigation\";\n\nclass NavigationStore {\n @observable currentRoute: NavigationItem | undefined = undefined;\n\n @observable redirectionRoute: NavigationItem | undefined = undefined;\n\n @observable horizonNavigation: HorizonRoute[] | undefined = undefined;\n\n @observable navigationTabs: NavigationItem[] | undefined = undefined;\n\n constructor() {\n makeObservable(this);\n }\n\n @action\n setHorizonNavigation = (\n checkOptionAccess: (accessOptions: string[] | undefined) => boolean\n ) => {\n const filteredHorizonRoutes = [...horizonRoutes].filter(\n (item: HorizonRoute) => {\n return checkOptionAccess(item.accessOptions);\n }\n );\n\n this.horizonNavigation = filteredHorizonRoutes;\n };\n\n @action\n setNavigationTabs = (\n checkPermissonAccess: (permissionAreas: PermissionArea[]) => boolean,\n checkOptionAccess: (accessOptions: string[] | undefined) => boolean\n ) => {\n const filteredNavigationItems = [...navigationItems].filter(\n (item: NavigationItem) => {\n if (item.subNavigation) {\n const filteredSubNavigationItems = [...item.subNavigation].filter(\n (subItem: NavigationItem) =>\n checkPermissonAccess(subItem.permissionAreas) &&\n checkOptionAccess(subItem.accessOptions)\n );\n\n item.subNavigation = filteredSubNavigationItems;\n }\n\n return (\n checkPermissonAccess(item.permissionAreas) &&\n checkOptionAccess(item.accessOptions)\n );\n }\n );\n\n // Set first route\n if (filteredNavigationItems.length > 0) {\n this.setRedirectionRoute(filteredNavigationItems[0]);\n this.setCurrentRoute(filteredNavigationItems[0]);\n }\n\n this.navigationTabs = filteredNavigationItems;\n };\n\n @action\n setRedirectionRoute = (item: NavigationItem) => {\n if (item.subNavigation && item.subNavigation.length > 0) {\n this.redirectionRoute = item.subNavigation[0];\n } else {\n this.redirectionRoute = item;\n }\n };\n\n @action\n setCurrentRoute = (item: NavigationItem) => {\n if (item.subNavigation && item.subNavigation.length > 0) {\n this.currentRoute = item.subNavigation[0];\n } else {\n this.currentRoute = item;\n }\n };\n\n getNavigationItem = (route: Route): NavigationItem | undefined => {\n let navItem: NavigationItem | undefined = undefined;\n\n if (this.navigationTabs) {\n this.navigationTabs.forEach((item) => {\n if (item.route === route) {\n navItem = item;\n return;\n }\n if (item.subNavigation) {\n item.subNavigation.forEach((subItem) => {\n if (subItem.route === route) {\n navItem = subItem;\n return;\n }\n });\n }\n });\n }\n\n return navItem;\n };\n\n @action\n navigate = (route: Route) => {\n if (this.navigationTabs) {\n this.currentRoute = this.getNavigationItem(route);\n }\n };\n}\n\nexport default NavigationStore;\n","import { action, makeObservable, observable } from \"mobx\";\nimport { UsageOfDate, UsageOfMonth } from \"model/Usage\";\nimport { UsageApi } from \"services/apis/UsageApi\";\nimport LoaderStore from \"./LoaderStore\";\n\nclass UsageStore {\n @observable\n unitConsumptionData: UsageOfDate[] | undefined = undefined;\n\n @observable\n usagePerMonthData: UsageOfDate[] | undefined = undefined;\n\n @observable\n selectedMonthUsage: UsageOfMonth | undefined = undefined;\n\n constructor(public api: UsageApi, private loaderStore: LoaderStore) {\n makeObservable(this);\n }\n\n @action\n getUnitConsumptionData = async (startDate: Date, endDate: Date) => {\n this.loaderStore.setLoading();\n const response = await this.api.getUnitConsumptionData(startDate, endDate);\n if (response.success) {\n const { data } = response;\n this.unitConsumptionData = data;\n } else {\n //const { errorData } = response;\n console.log(\n \"Something went wrong when trying to fetch unit consumption data\"\n );\n }\n this.loaderStore.stopLoading();\n };\n\n @action\n getUsagePerMonthData = async () => {\n this.loaderStore.setLoading();\n const response = await this.api.getUsagePerMonthData();\n if (response.success) {\n const { data } = response;\n this.usagePerMonthData = data;\n } else {\n //const { errorData } = response;\n console.log(\n \"Something went wrong when trying to fetch usage per month data\"\n );\n }\n this.loaderStore.stopLoading();\n };\n\n @action\n getSelectedMonthData = async (date: Date) => {\n this.loaderStore.setLoading();\n const response = await this.api.getSelectedMonthData(date);\n if (response.success) {\n const { data } = response;\n this.selectedMonthUsage = data;\n } else {\n //const { errorData } = response;\n console.log(\n \"Something went wrong when trying to fetch usage of month data\"\n );\n }\n this.loaderStore.stopLoading();\n };\n\n @action\n reset = () => {\n this.unitConsumptionData = undefined;\n this.usagePerMonthData = undefined;\n this.selectedMonthUsage = undefined;\n };\n}\n\nexport default UsageStore;\n","import { UsageOfDate, UsageOfMonth } from \"model/Usage\";\nimport { formatAPIDate } from \"utils/Date\";\nimport request, { ApiResponse } from \"../../utils/ApiHandlers\";\nimport { BaseConfig } from \"../../utils/Variables\";\n\nexport class UsageApi {\n private static instance: UsageApi;\n\n private constructor() {}\n\n static getInstance(fresh?: boolean) {\n if (!UsageApi.instance || fresh) {\n UsageApi.instance = new UsageApi();\n }\n return UsageApi.instance;\n }\n\n getUnitConsumptionData = async (\n startDate: Date,\n endDate: Date\n ): Promise> =>\n request.get(\n `${BaseConfig.getBaseApiUrl()}usage/consumption?startDate=${formatAPIDate(\n startDate\n )}&endDate=${formatAPIDate(endDate)}`\n );\n\n getUsagePerMonthData = async (): Promise> =>\n request.get(`${BaseConfig.getBaseApiUrl()}usage/months`);\n\n getSelectedMonthData = async (\n date: Date\n ): Promise> =>\n request.get(\n `${BaseConfig.getBaseApiUrl()}usage/months/detail?date=${formatAPIDate(\n date\n )}`\n );\n}\n\nexport default UsageApi.getInstance();\n","import { action, makeObservable, observable } from \"mobx\";\nimport { BasicApplicationDatum } from \"model/Application\";\nimport { ApplicationApi } from \"services/apis/ApplicationApi\";\nimport LoaderStore from \"./LoaderStore\";\nimport GeneralStore from \"./GeneralStore\";\nimport { ApplicationEnvironment } from \"model/Environment\";\n\nclass ApplicationStore {\n @observable\n applicationsRuntime: BasicApplicationDatum[] | undefined = undefined;\n\n @observable\n applicationEnvironments: ApplicationEnvironment[] | undefined = undefined;\n\n constructor(\n public api: ApplicationApi,\n private generalStore: GeneralStore,\n private loaderStore: LoaderStore\n ) {\n makeObservable(this);\n }\n\n @action\n getApplicationsRuntime = async () => {\n if (this.generalStore.currentEnvironment !== undefined) {\n this.loaderStore.setLoading();\n\n const response = await this.api.getApplicationsRuntime(\n this.generalStore.currentEnvironment\n );\n\n if (response.success) {\n const { data } = response;\n this.applicationsRuntime = data;\n } else {\n //const { errorData } = response;\n console.log(\"Something went wrong when trying to applications runtime\");\n }\n\n this.loaderStore.stopLoading();\n }\n };\n\n @action\n getApplicationData = async () => {\n this.loaderStore.setLoading();\n\n const response = await this.api.getApplicationData();\n\n if (response.success) {\n const { data } = response;\n this.applicationEnvironments = data;\n } else {\n //const { errorData } = response;\n console.log(\"Something went wrong when trying to fetch applications\");\n }\n\n this.loaderStore.stopLoading();\n };\n\n @action\n reset = () => {\n this.applicationEnvironments = undefined;\n };\n\n // General page\n @action\n resetApplicationsRuntime = () => {\n this.applicationsRuntime = undefined;\n };\n}\n\nexport default ApplicationStore;\n","import { BasicApplicationDatum } from \"model/Application\";\nimport { ApplicationEnvironment } from \"model/Environment\";\nimport request, { ApiResponse } from \"../../utils/ApiHandlers\";\nimport { BaseConfig } from \"../../utils/Variables\";\n\nexport class ApplicationApi {\n private static instance: ApplicationApi;\n\n private constructor() {}\n\n static getInstance(fresh?: boolean) {\n if (!ApplicationApi.instance || fresh) {\n ApplicationApi.instance = new ApplicationApi();\n }\n return ApplicationApi.instance;\n }\n\n getApplicationData = async (): Promise<\n ApiResponse\n > => request.get(`${BaseConfig.getBaseApiUrl()}application`);\n\n getApplicationsRuntime = async (\n environmentId: number\n ): Promise> =>\n request.get(\n `${BaseConfig.getBaseApiUrl()}dashboard/applications/${environmentId}`\n );\n}\n\nexport default ApplicationApi.getInstance();\n","import { action, makeObservable, observable } from \"mobx\";\nimport { ItOperationLocation } from \"model/ItOperation\";\nimport { ItOperationApi } from \"services/apis/ItOperationApi\";\nimport GeneralStore from \"./GeneralStore\";\nimport LoaderStore from \"./LoaderStore\";\n\nclass ItOperationStore {\n @observable\n itOperationLocations: ItOperationLocation[] | undefined = undefined;\n\n constructor(\n public api: ItOperationApi,\n private generalStore: GeneralStore,\n private loaderStore: LoaderStore\n ) {\n makeObservable(this);\n }\n\n @action\n getItOperationData = async () => {\n if (\n this.generalStore.currentEnvironment !== undefined &&\n this.generalStore.timeFrame\n ) {\n this.loaderStore.setLoading();\n\n const response = await this.api.getItOperationData(\n this.generalStore.currentEnvironment,\n this.generalStore.timeFrame\n );\n\n if (response.success) {\n const { data } = response;\n this.itOperationLocations = data;\n } else {\n //const { errorData } = response;\n console.log(\"Something went wrong when trying to fetch IT operations\");\n }\n\n this.loaderStore.stopLoading();\n }\n };\n\n @action\n reset = () => {\n this.itOperationLocations = undefined;\n };\n}\n\nexport default ItOperationStore;\n","import { ItOperationLocation } from \"model/ItOperation\";\nimport { GeneralTimeFrame } from \"model/Time\";\nimport { formatAPIDate } from \"utils/Date\";\nimport request, { ApiResponse } from \"../../utils/ApiHandlers\";\nimport { BaseConfig } from \"../../utils/Variables\";\n\nexport class ItOperationApi {\n private static instance: ItOperationApi;\n\n private constructor() {}\n\n static getInstance(fresh?: boolean) {\n if (!ItOperationApi.instance || fresh) {\n ItOperationApi.instance = new ItOperationApi();\n }\n return ItOperationApi.instance;\n }\n\n getItOperationData = async (\n environmentId: number,\n timeFrame: GeneralTimeFrame\n ): Promise> =>\n request.get(\n `${BaseConfig.getBaseApiUrl()}itoperations/${environmentId}?startDate=${formatAPIDate(\n timeFrame.start\n )}&endDate=${formatAPIDate(timeFrame.end)}`\n );\n}\n\nexport default ItOperationApi.getInstance();\n","export const generateReportMonths = (startDate: string): Date[] => {\n let months = [];\n let date = new Date(startDate);\n let today = new Date();\n\n while (\n !(\n date.getMonth() === today.getMonth() &&\n date.getFullYear() === today.getFullYear()\n )\n ) {\n months.push(new Date(date));\n date.setMonth(date.getMonth() + 1);\n }\n months.push(new Date(date));\n return months.reverse();\n};\n","import { action, makeObservable, observable } from \"mobx\";\nimport { ReportMonth } from \"model/Report\";\nimport { generateReportMonths } from \"utils/Report\";\nimport { ReportApi } from \"../services/apis/ReportApi\";\nimport AuthenticationStore from \"./AuthenticationStore\";\nimport LoaderStore from \"./LoaderStore\";\n\nclass ReportStore {\n @observable\n monthsList: Date[] | undefined = undefined;\n\n @observable\n currentMonthData: ReportMonth | undefined = undefined;\n\n constructor(\n public api: ReportApi,\n private authenticationStore: AuthenticationStore,\n private loaderStore: LoaderStore\n ) {\n makeObservable(this);\n }\n\n @action\n getReportStartDate = async () => {\n // this.monthsList = generateReportMonths(\"2021-08-02T12:45:07.193Z\");\n\n if (this.authenticationStore.currentSubscription !== undefined) {\n this.loaderStore.setLoading();\n const response = await this.api.getReportStartDate(\n this.authenticationStore.currentSubscription.customerId\n );\n if (response.success) {\n const { data } = response;\n this.monthsList = generateReportMonths(data);\n } else {\n //const { errorData } = response;\n console.log(\"Something went wrong when trying to fetch report months\");\n }\n this.loaderStore.stopLoading();\n }\n };\n\n @action\n getReportOfMonth = async (month: Date) => {\n // this.currentMonthData = reportCurrentMonthDataMockData;\n\n if (this.authenticationStore.currentSubscription !== undefined) {\n this.loaderStore.setLoading();\n const response = await this.api.getReportOfMonth(\n this.authenticationStore.currentSubscription.customerId,\n month\n );\n if (response.success) {\n const { data } = response;\n this.currentMonthData = data;\n } else {\n //const { errorData } = response;\n console.log(\n \"Something went wrong when trying to fetch report month data\"\n );\n }\n this.loaderStore.stopLoading();\n }\n };\n\n @action\n reset = () => {\n this.monthsList = undefined;\n this.currentMonthData = undefined;\n };\n}\n\nexport default ReportStore;\n","import { ReportMonth } from \"model/Report\";\nimport { formatAPIDate } from \"utils/Date\";\nimport request, { ApiResponse } from \"../../utils/ApiHandlers\";\nimport { BaseConfig } from \"../../utils/Variables\";\n\nexport class ReportApi {\n private static instance: ReportApi;\n\n private constructor() {}\n\n static getInstance(fresh?: boolean) {\n if (!ReportApi.instance || fresh) {\n ReportApi.instance = new ReportApi();\n }\n return ReportApi.instance;\n }\n\n getReportStartDate = async (\n customerId: number\n ): Promise> =>\n request.get(\n `${BaseConfig.getBaseApiUrl()}report/start-date?customerId=${customerId}`\n );\n\n getReportOfMonth = async (\n customerId: number,\n month: Date\n ): Promise> =>\n request.get(\n `${BaseConfig.getBaseApiUrl()}report?customerId=${customerId}&date=${formatAPIDate(\n month\n )}`\n );\n}\n\nexport default ReportApi.getInstance();\n","import { action, makeObservable, observable } from \"mobx\";\nimport {\n NewSettingsContact,\n SettingsIncidentsContactSchedule,\n SettingsContact,\n SimpleSettingsContact,\n SettingsChangeRequestContactSchedule,\n} from \"model/Contact\";\nimport { SettingsLogicalGroup } from \"model/LogicalGroup\";\nimport { SettingsTechnicalComponent } from \"model/PlatformComponent\";\nimport { NewUser, SettingsUser } from \"model/User\";\nimport { SettingApi } from \"services/apis/SettingApi\";\nimport {\n logicalGroupsMockData,\n technicalComponentsMockData,\n} from \"mockData/settings\";\nimport LoaderStore from \"./LoaderStore\";\n\nclass SettingStore {\n @observable\n users: SettingsUser[] | undefined = undefined;\n\n @observable\n contacts: SettingsContact[] | undefined = undefined;\n\n @observable\n scheduleContacts: SimpleSettingsContact[] | undefined = undefined;\n\n @observable\n incidentsContactSchedule: SettingsIncidentsContactSchedule | undefined =\n undefined;\n\n @observable\n changeRequestsContactSchedule:\n | SettingsChangeRequestContactSchedule\n | undefined = undefined;\n\n @observable\n allLogicalGroups: SettingsLogicalGroup[] | undefined = undefined;\n\n @observable\n allTechnicalComponents: SettingsTechnicalComponent[] | undefined = undefined;\n\n constructor(public api: SettingApi, private loaderStore: LoaderStore) {\n makeObservable(this);\n }\n\n // USER MANAGEMENT\n\n @action\n getUsers = async () => {\n // this.users = usersMockData;\n\n this.loaderStore.setLoading();\n const response = await this.api.getUsers();\n if (response.success) {\n const { data } = response;\n this.users = data;\n } else {\n //const { errorData } = response;\n console.log(\"Something went wrong when trying to fetch users\");\n }\n this.loaderStore.stopLoading();\n };\n\n @action\n deleteUser = async (userId: number): Promise => {\n this.loaderStore.setLoading();\n const response = await this.api.deleteUser(userId);\n if (response.success) {\n this.loaderStore.stopLoading();\n return true;\n } else {\n //const { errorData } = response;\n console.log(\"Something went wrong when trying to delete user\");\n this.loaderStore.stopLoading();\n return false;\n }\n };\n\n @action\n resetPassword = async (userId: number): Promise => {\n this.loaderStore.setLoading();\n const response = await this.api.resetPassword(userId);\n if (response.success) {\n this.loaderStore.stopLoading();\n return true;\n } else {\n //const { errorData } = response;\n console.log(\n \"Something went wrong when trying to send reset password e-mail\"\n );\n this.loaderStore.stopLoading();\n return false;\n }\n };\n\n @action\n toggleEnable = async (userId: number): Promise => {\n this.loaderStore.setLoading();\n const response = await this.api.toggleEnable(userId);\n if (response.success) {\n this.loaderStore.stopLoading();\n return true;\n } else {\n //const { errorData } = response;\n console.log(\n \"Something went wrong when trying to toggle user's enabled status\"\n );\n this.loaderStore.stopLoading();\n return false;\n }\n };\n\n @action\n toggleAdminRole = async (userId: number): Promise => {\n this.loaderStore.setLoading();\n const response = await this.api.toggleAdminRole(userId);\n if (response.success) {\n this.loaderStore.stopLoading();\n return true;\n } else {\n //const { errorData } = response;\n console.log(\n \"Something went wrong when trying to toggle user's admin status\"\n );\n this.loaderStore.stopLoading();\n return false;\n }\n };\n\n @action\n sendInvitation = async (userId: number): Promise => {\n this.loaderStore.setLoading();\n const response = await this.api.sendInvitation(userId);\n if (response.success) {\n this.loaderStore.stopLoading();\n return true;\n } else {\n //const { errorData } = response;\n console.log(\"Something went wrong when trying to send invitation\");\n this.loaderStore.stopLoading();\n return false;\n }\n };\n\n @action\n addUser = async (user: NewUser): Promise => {\n this.loaderStore.setLoading();\n const response = await this.api.addUser(user);\n if (response.success) {\n this.getUsers();\n return true;\n } else {\n //const { errorData } = response;\n console.log(\"Something went wrong when trying to add user\");\n this.loaderStore.stopLoading();\n return false;\n }\n };\n\n // CONTACT DETAILS\n\n @action\n getContacts = async () => {\n // this.contacts = contactsMockData;\n\n this.loaderStore.setLoading();\n const response = await this.api.getContacts();\n if (response.success) {\n const { data } = response;\n this.contacts = data;\n } else {\n //const { errorData } = response;\n console.log(\"Something went wrong when trying to fetch contacts\");\n }\n this.loaderStore.stopLoading();\n };\n\n @action\n deleteContact = async (contactId: number): Promise => {\n this.loaderStore.setLoading();\n const response = await this.api.deleteContact(contactId);\n if (response.success) {\n this.loaderStore.stopLoading();\n this.getContacts();\n return true;\n } else {\n //const { errorData } = response;\n console.log(\"Something went wrong when trying to delete contact\");\n this.loaderStore.stopLoading();\n return false;\n }\n };\n\n @action\n addContact = async (contact: NewSettingsContact): Promise => {\n this.loaderStore.setLoading();\n const response = await this.api.addContact(contact);\n if (response.success) {\n this.getContacts();\n this.loaderStore.stopLoading();\n this.getContacts();\n return true;\n } else {\n //const { errorData } = response;\n console.log(\"Something went wrong when trying to add contact\");\n this.loaderStore.stopLoading();\n return false;\n }\n };\n\n @action\n editContact = async (contact: SettingsContact): Promise => {\n this.loaderStore.setLoading();\n const response = await this.api.editContact(contact);\n if (response.success) {\n this.loaderStore.stopLoading();\n this.getContacts();\n return true;\n } else {\n //const { errorData } = response;\n console.log(\"Something went wrong when trying to edit the contact\");\n this.loaderStore.stopLoading();\n return false;\n }\n };\n\n // CONTACT SCHEDULE\n\n @action\n getScheduleContacts = async () => {\n // this.scheduleContacts = scheduleContactsMockData;\n\n this.loaderStore.setLoading();\n const response = await this.api.getScheduleContacts();\n if (response.success) {\n const { data } = response;\n this.scheduleContacts = data;\n } else {\n //const { errorData } = response;\n console.log(\"Something went wrong when trying to fetch the contacts\");\n }\n this.loaderStore.stopLoading();\n };\n\n @action\n getIncidentsContactSchedule = async (): Promise<\n SettingsIncidentsContactSchedule | false\n > => {\n // this.incidentsContactSchedule = incidentsContactScheduleMockData;\n // return incidentsContactScheduleMockData;\n\n this.loaderStore.setLoading();\n const response = await this.api.getIncidentsContactSchedule();\n if (response.success) {\n const { data } = response;\n this.loaderStore.stopLoading();\n this.incidentsContactSchedule = data;\n return data;\n } else {\n //const { errorData } = response;\n this.loaderStore.stopLoading();\n console.log(\n \"Something went wrong when trying to fetch the incidents contact schedule\"\n );\n return false;\n }\n };\n\n @action\n editIncidentsContactSchedule = async (\n schedule: SettingsIncidentsContactSchedule\n ) => {\n this.loaderStore.setLoading();\n const response = await this.api.editIncidentsContactSchedule(schedule);\n if (response.success) {\n this.loaderStore.stopLoading();\n return true;\n } else {\n //const { errorData } = response;\n this.loaderStore.stopLoading();\n return false;\n }\n };\n\n @action\n getChangeRequestsContactSchedule = async (): Promise<\n SettingsChangeRequestContactSchedule | false\n > => {\n // this.changeRequestsContactSchedule = changeRequestsContactScheduleMockData;\n // return changeRequestsContactScheduleMockData;\n\n this.loaderStore.setLoading();\n const response = await this.api.getChangeRequestsContactSchedule();\n if (response.success) {\n const { data } = response;\n this.loaderStore.stopLoading();\n this.changeRequestsContactSchedule = data;\n return data;\n } else {\n //const { errorData } = response;\n this.loaderStore.stopLoading();\n console.log(\n \"Something went wrong when trying to fetch the change requests contact schedule\"\n );\n return false;\n }\n };\n\n @action\n editChangeRequestsContactSchedule = async (\n schedule: SettingsChangeRequestContactSchedule\n ) => {\n this.loaderStore.setLoading();\n const response = await this.api.editChangeRequestsContactSchedule(schedule);\n if (response.success) {\n this.loaderStore.stopLoading();\n return true;\n } else {\n //const { errorData } = response;\n this.loaderStore.stopLoading();\n return false;\n }\n };\n\n // GROUP WORKFLOW\n\n @action\n getAllLogicalGroups = async (): Promise => {\n this.loaderStore.setLoading();\n const response = await this.api.getAllLogicalGroups();\n if (response.success) {\n const { data } = response;\n this.loaderStore.stopLoading();\n this.allLogicalGroups = data;\n return data;\n } else {\n //const { errorData } = response;\n this.loaderStore.stopLoading();\n console.log(\n \"Something went wrong when trying to fetch the logical groups\"\n );\n return false;\n }\n };\n\n @action\n getAllTechnicalComponents = async (): Promise<\n SettingsTechnicalComponent[] | false\n > => {\n this.loaderStore.setLoading();\n const response = await this.api.getAllTechnicalComponents();\n if (response.success) {\n const { data } = response;\n this.loaderStore.stopLoading();\n this.allTechnicalComponents = data;\n return data;\n } else {\n //const { errorData } = response;\n this.loaderStore.stopLoading();\n console.log(\n \"Something went wrong when trying to fetch the technical components\"\n );\n return false;\n }\n };\n\n @action editGroupWorkflow = async (logicalGroups: SettingsLogicalGroup[]) => {\n this.loaderStore.setLoading();\n\n const response = await this.api.editGroupWorkflow(logicalGroups);\n\n if (response.success) {\n this.loaderStore.stopLoading();\n return true;\n } else {\n //const { errorData } = response;\n this.loaderStore.stopLoading();\n return false;\n }\n };\n\n @action\n resetUsers = () => {\n this.users = undefined;\n };\n\n @action\n resetContacts = () => {\n this.contacts = undefined;\n };\n\n @action\n resetContactSchedule = () => {\n this.scheduleContacts = undefined;\n this.incidentsContactSchedule = undefined;\n this.changeRequestsContactSchedule = undefined;\n };\n\n @action\n resetGroupWorkflow = () => {\n this.allLogicalGroups = undefined;\n this.allTechnicalComponents = undefined;\n };\n\n @action\n reset = () => {\n this.users = undefined;\n this.contacts = undefined;\n this.scheduleContacts = undefined;\n this.incidentsContactSchedule = undefined;\n this.changeRequestsContactSchedule = undefined;\n this.allLogicalGroups = undefined;\n this.allTechnicalComponents = undefined;\n };\n}\n\nexport default SettingStore;\n","import {\n NewSettingsContact,\n SettingsIncidentsContactSchedule,\n SettingsContact,\n SettingsIncidentsContactScheduleBase,\n SimpleSettingsContact,\n SettingsChangeRequestContactSchedule,\n} from \"model/Contact\";\nimport { SettingsLogicalGroup } from \"model/LogicalGroup\";\nimport { SettingsTechnicalComponent } from \"model/PlatformComponent\";\nimport { NewUser, SettingsUser } from \"model/User\";\nimport request, { ApiResponse } from \"../../utils/ApiHandlers\";\nimport { BaseConfig } from \"../../utils/Variables\";\n\nexport class SettingApi {\n private static instance: SettingApi;\n\n private constructor() {}\n\n static getInstance(fresh?: boolean) {\n if (!SettingApi.instance || fresh) {\n SettingApi.instance = new SettingApi();\n }\n return SettingApi.instance;\n }\n\n // USER MANAGEMENT\n\n getUsers = async (): Promise> =>\n request.get(`${BaseConfig.getBaseApiUrl()}settings/users`);\n\n deleteUser = async (userId: number): Promise> =>\n request.delete(\n `${BaseConfig.getBaseApiUrl()}settings/user/delete/${userId}`\n );\n\n resetPassword = async (userId: number): Promise> =>\n request.get(\n `${BaseConfig.getBaseApiUrl()}settings/user/reset-password/${userId}`\n );\n\n toggleEnable = async (userId: number): Promise> =>\n request.get(\n `${BaseConfig.getBaseApiUrl()}settings/user/toggle-enabled/${userId}`\n );\n\n toggleAdminRole = async (userId: number): Promise> =>\n request.get(\n `${BaseConfig.getBaseApiUrl()}settings/user/toggle-admin-role/${userId}`\n );\n\n sendInvitation = async (userId: number): Promise> =>\n request.get(\n `${BaseConfig.getBaseApiUrl()}settings/user/send-invitation/${userId}`\n );\n\n addUser = async (user: NewUser): Promise> =>\n request.put(\n `${BaseConfig.getBaseApiUrl()}settings/user/add`,\n JSON.stringify(user)\n );\n\n // CONTACT DETAILS\n\n getContacts = async (): Promise> =>\n request.get(`${BaseConfig.getBaseApiUrl()}settings/contact`);\n\n deleteContact = async (contactId: number): Promise> =>\n request.delete(\n `${BaseConfig.getBaseApiUrl()}settings/contact?contactId=${contactId}`\n );\n\n addContact = async (\n contact: NewSettingsContact\n ): Promise> =>\n request.post(\n `${BaseConfig.getBaseApiUrl()}settings/contact`,\n JSON.stringify(contact)\n );\n\n editContact = async (contact: SettingsContact): Promise> =>\n request.put(\n `${BaseConfig.getBaseApiUrl()}settings/contact`,\n JSON.stringify(contact)\n );\n\n // CONTACT SCHEDULE\n\n getScheduleContacts = async (): Promise<\n ApiResponse\n > =>\n request.get(\n `${BaseConfig.getBaseApiUrl()}settings/contact-schedule/contacts`\n );\n\n getIncidentsContactSchedule = async (): Promise<\n ApiResponse\n > =>\n request.get(\n `${BaseConfig.getBaseApiUrl()}settings/contact-schedule/incidents`\n );\n\n editIncidentsContactSchedule = async (\n schedule: SettingsIncidentsContactScheduleBase\n ): Promise> =>\n request.put(\n `${BaseConfig.getBaseApiUrl()}settings/contact-schedule/incidents/edit`,\n JSON.stringify(schedule)\n );\n\n getChangeRequestsContactSchedule = async (): Promise<\n ApiResponse\n > =>\n request.get(\n `${BaseConfig.getBaseApiUrl()}settings/contact-schedule/change-requests`\n );\n\n editChangeRequestsContactSchedule = async (\n schedule: SettingsChangeRequestContactSchedule\n ): Promise> =>\n request.put(\n `${BaseConfig.getBaseApiUrl()}settings/contact-schedule/change-requests/edit`,\n JSON.stringify(schedule)\n );\n\n // GROUP WORKFLOW\n\n getAllLogicalGroups = async (): Promise<\n ApiResponse\n > =>\n request.get(\n `${BaseConfig.getBaseApiUrl()}settings/group-workflow/logical-groups`\n );\n\n getAllTechnicalComponents = async (): Promise<\n ApiResponse\n > =>\n request.get(\n `${BaseConfig.getBaseApiUrl()}settings/group-workflow/technical-components`\n );\n\n editGroupWorkflow = async (\n logicalGroups: SettingsLogicalGroup[]\n ): Promise> =>\n request.put(\n `${BaseConfig.getBaseApiUrl()}settings/group-workflow`,\n JSON.stringify(logicalGroups)\n );\n}\n\nexport default SettingApi.getInstance();\n","import { action, makeObservable, observable } from \"mobx\";\nimport { BaseCustomer, Customer } from \"model/Customer\";\nimport { CustomerManagementApi } from \"services/apis/CustomerManagementApi\";\nimport LoaderStore from \"./LoaderStore\";\n\nclass CustomerManagementStore {\n @observable\n customers: BaseCustomer[] | undefined = undefined;\n\n constructor(\n public api: CustomerManagementApi,\n private loaderStore: LoaderStore\n ) {\n makeObservable(this);\n }\n\n @action\n getCustomers = async () => {\n this.loaderStore.setLoading();\n\n const response = await this.api.getCustomers();\n if (response.success) {\n const { data } = response;\n this.customers = data;\n } else {\n //const { errorData } = response;\n console.log(\"Something went wrong when trying to fetch customers\");\n }\n\n this.loaderStore.stopLoading();\n };\n\n @action\n getCustomerDetailMetaData = async () => {\n this.loaderStore.setLoading();\n\n const response = await this.api.getCustomerDetailMetaData();\n if (response.success) {\n const { data } = response;\n this.loaderStore.stopLoading();\n return data;\n } else {\n //const { errorData } = response;\n console.log(\n \"Something went wrong when trying to fetch customers meta data\"\n );\n this.loaderStore.stopLoading();\n return false;\n }\n };\n\n @action\n getCustomerDetail = async (customerId: number) => {\n this.loaderStore.setLoading();\n\n const response = await this.api.getCustomerDetail(customerId);\n if (response.success) {\n const { data } = response;\n this.loaderStore.stopLoading();\n return data;\n } else {\n //const { errorData } = response;\n console.log(\"Something went wrong when trying to fetch customers\");\n this.loaderStore.stopLoading();\n return false;\n }\n };\n\n @action\n addCustomer = async (customer: Customer) => {\n this.loaderStore.setLoading();\n\n const response = await this.api.addCustomer(customer);\n if (response.success) {\n this.loaderStore.stopLoading();\n await this.getCustomers();\n return true;\n } else {\n //const { errorData } = response;\n console.log(\"Something went wrong when trying to add customer\");\n this.loaderStore.stopLoading();\n return false;\n }\n };\n\n @action\n editCustomer = async (customer: Customer) => {\n this.loaderStore.setLoading();\n\n const response = await this.api.editCustomer(customer);\n if (response.success) {\n this.loaderStore.stopLoading();\n await this.getCustomers();\n return true;\n } else {\n //const { errorData } = response;\n console.log(\"Something went wrong when trying to edit customer\");\n this.loaderStore.stopLoading();\n return false;\n }\n };\n\n @action\n deleteCustomer = async (customerId: number) => {\n this.loaderStore.setLoading();\n\n const response = await this.api.deleteCustomer(customerId);\n if (response.success) {\n this.loaderStore.stopLoading();\n await this.getCustomers();\n return true;\n } else {\n //const { errorData } = response;\n console.log(\"Something went wrong when trying to delete customer\");\n this.loaderStore.stopLoading();\n return false;\n }\n };\n\n @action\n reset = () => {\n this.customers = undefined;\n };\n}\n\nexport default CustomerManagementStore;\n","import {\n BaseCustomer,\n Customer,\n CustomerDetailMetaData,\n} from \"../../model/Customer\";\nimport request, { ApiResponse } from \"../../utils/ApiHandlers\";\nimport { BaseConfig } from \"../../utils/Variables\";\n\nexport class CustomerManagementApi {\n private static instance: CustomerManagementApi;\n\n private constructor() {}\n\n static getInstance(fresh?: boolean) {\n if (!CustomerManagementApi.instance || fresh) {\n CustomerManagementApi.instance = new CustomerManagementApi();\n }\n return CustomerManagementApi.instance;\n }\n\n getCustomers = async (): Promise> =>\n request.get(`${BaseConfig.getBaseApiUrl()}customers`);\n\n getCustomerDetailMetaData = async (): Promise<\n ApiResponse\n > => request.get(`${BaseConfig.getBaseApiUrl()}customers/metadata`);\n\n getCustomerDetail = async (\n customerId: number\n ): Promise> =>\n request.get(`${BaseConfig.getBaseApiUrl()}customers/${customerId}`);\n\n addCustomer = async (customer: Customer): Promise> =>\n request.post(\n `${BaseConfig.getBaseApiUrl()}customers`,\n JSON.stringify(customer)\n );\n\n editCustomer = async (customer: Customer): Promise> =>\n request.put(\n `${BaseConfig.getBaseApiUrl()}customers/${customer.id}`,\n JSON.stringify(customer)\n );\n\n deleteCustomer = async (customerId: number): Promise> =>\n request.delete(\n `${BaseConfig.getBaseApiUrl()}customers/delete/${customerId}`\n );\n}\n\nexport default CustomerManagementApi.getInstance();\n","import { action, makeObservable, observable } from \"mobx\";\n\nclass LoaderStore {\n @observable\n loading: boolean = false;\n\n constructor() {\n makeObservable(this);\n }\n\n @action\n setLoading = () => {\n this.loading = true;\n };\n\n @action\n stopLoading = () => {\n this.loading = false;\n };\n}\n\nexport default LoaderStore;\n","import { action, makeObservable, observable } from \"mobx\";\nimport { Execution } from \"model/Execution\";\nimport { ExecutionDetails } from \"model/ExecutionDetails\";\nimport { ExecutionSearchFilter } from \"model/ExecutionSearch\";\nimport { ExecutionApi } from \"services/apis/ExecutionApi\";\nimport GeneralStore from \"./GeneralStore\";\nimport LoaderStore from \"./LoaderStore\";\n\nclass ExecutionStore {\n @observable\n executionsData: Execution[] | undefined = [];\n\n @observable\n pagedExecutions: Execution[][] | undefined = [];\n\n @observable\n executionDetailsData: ExecutionDetails[] | undefined = [];\n \n @observable\n searchFilter: ExecutionSearchFilter | undefined;\n\n constructor(\n public api: ExecutionApi,\n private generalStore: GeneralStore,\n private loaderStore: LoaderStore\n ) {\n makeObservable(this);\n }\n\n @action\n getExecutionsData = async () => {\n if (\n this.generalStore.currentEnvironment !== undefined &&\n this.generalStore.timeFrame\n ) {\n this.loaderStore.setLoading();\n\n const response = await this.api.getExecutionData(\n this.generalStore.currentEnvironment,\n this.generalStore.timeFrame\n );\n if (response.success) {\n const { data } = response;\n this.setRawExecutionsData(data);\n } else {\n console.log(\"Something went wrong when trying to fetch integrations\");\n }\n\n this.loaderStore.stopLoading();\n }\n };\n\n @action\n setRawExecutionsData = (executions: Execution[]) => {\n this.executionsData = executions;\n }\n\n @action\n setExecutionsData = (executions: Execution[][]) => {\n this.pagedExecutions = executions;\n }\n\n @action\n setSearchFilter = (searchFilter: ExecutionSearchFilter) => {\n this.searchFilter = searchFilter;\n }\n\n @action\n getExecutionDetailsData = async (transactionId: number) => {\n this.loaderStore.setLoading();\n\n const response = await this.api.getExecutionDetails(transactionId);\n if (response.success) {\n const { data } = response;\n this.executionDetailsData = data;\n } else {\n console.log(\"Something went wrong when trying to fetch integrations\");\n }\n\n this.loaderStore.stopLoading();\n }\n\n @action\n reset() {\n // this.executionsData?.forEach(e => e.details = undefined);\n this.executionsData = undefined;\n this.pagedExecutions = undefined;\n this.executionDetailsData = undefined;\n this.searchFilter = undefined;\n }\n}\n\n\nexport default ExecutionStore;\n","import { Execution } from \"model/Execution\";\nimport { ExecutionDetails } from \"model/ExecutionDetails\";\nimport { GeneralTimeFrame } from \"model/Time\";\nimport { formatAPIDate } from \"utils/Date\";\nimport request, { ApiResponse } from \"../../utils/ApiHandlers\";\nimport { BaseConfig } from \"../../utils/Variables\";\n\nexport class ExecutionApi {\n private static instance: ExecutionApi;\n\n private constructor() { }\n\n static getInstance(fresh?: boolean) {\n if (!ExecutionApi.instance || fresh) {\n ExecutionApi.instance = new ExecutionApi();\n }\n return ExecutionApi.instance;\n }\n\n getExecutionData = async (\n environmentId: number,\n timeFrame: GeneralTimeFrame\n ): Promise> =>\n request.get(\n `${BaseConfig.getBaseApiUrl()}executions/overview/${environmentId}?startDate=${formatAPIDate(\n timeFrame.start\n )}&endDate=${formatAPIDate(timeFrame.end)}`\n );\n\n getExecutionDetails = async (\n transactionId: number\n ): Promise> =>\n request.get(\n `${BaseConfig.getBaseApiUrl()}executions/detail/${transactionId}`\n )\n}\n\nexport default ExecutionApi.getInstance();\n","export enum Icon {\n doublearrow = \"doublearrow\",\n arrowdown = \"arrowdown\",\n bell = \"bell\",\n cart = \"cart\",\n user = \"user\",\n gear = \"gear\",\n cross = \"cross\",\n circle = \"circle\",\n group = \"group\",\n list = \"list\",\n arrowleft = \"arrowleft\",\n arrowright = \"arrowright\",\n doublearrowleft = \"doublearrowleft\",\n doublearrowright = \"doublearrowright\",\n calendarstart = \"calendarstart\",\n calendarend = \"calendarend\",\n save = \"save\",\n reset = \"reset\",\n plus = \"plus\",\n minus = \"minus\",\n history = \"history\",\n refresh = \"refresh\",\n location = \"location\",\n application = \"application\",\n info = \"info\",\n dispute = \"dispute\",\n check = \"check\",\n delete = \"delete\",\n mail = \"mail\",\n locked = \"locked\",\n unlocked = \"unlocked\",\n unchecked = \"unchecked\",\n edit = \"edit\",\n portal = \"portal\",\n loader = \"loader\",\n search = \"search\",\n lock = \"lock\",\n block = \"block\",\n unassigned = \"unassigned\",\n}\n","import AuthenticationStore from \"./AuthenticationStore\";\nimport AuthenticationApi from \"services/apis/AuthenticationApi\";\nimport GeneralStore from \"./GeneralStore\";\nimport GeneralApi from \"services/apis/GeneralApi\";\nimport IntegrationStore from \"./IntegrationStore\";\nimport IntegrationApi from \"services/apis/IntegrationApi\";\nimport NavigationStore from \"./NavigationStore\";\nimport UsageStore from \"./UsageStore\";\nimport UsageApi from \"services/apis/UsageApi\";\nimport ApplicationStore from \"./ApplicationStore\";\nimport ApplicationApi from \"services/apis/ApplicationApi\";\nimport ItOperationStore from \"./ItOperationStore\";\nimport ItOperationApi from \"services/apis/ItOperationApi\";\nimport ReportStore from \"./ReportStore\";\nimport ReportApi from \"services/apis/ReportApi\";\nimport SettingStore from \"./SettingStore\";\nimport SettingApi from \"services/apis/SettingApi\";\nimport CustomerManagementStore from \"./CustomerManagementStore\";\nimport CustomerManagementApi from \"services/apis/CustomerManagementApi\";\nimport LoaderStore from \"./LoaderStore\";\nimport ExecutionStore from \"./ExecutionStore\";\nimport ExecutionApi from \"services/apis/ExecutionApi\";\n\nexport interface AllStores {\n authenticationStore: AuthenticationStore;\n loaderStore: LoaderStore;\n navigationStore: NavigationStore;\n generalStore: GeneralStore;\n integrationStore: IntegrationStore;\n executionStore : ExecutionStore;\n itOperationStore: ItOperationStore;\n applicationStore: ApplicationStore;\n usageStore: UsageStore;\n reportStore: ReportStore;\n settingStore: SettingStore;\n customerManagementStore: CustomerManagementStore;\n}\n\nexport const allStores = () => {\n const loaderStore = new LoaderStore();\n const navigationStore = new NavigationStore();\n\n const generalStore = new GeneralStore(GeneralApi, loaderStore);\n\n const authenticationStore = new AuthenticationStore(\n AuthenticationApi,\n loaderStore,\n generalStore\n );\n\n const integrationStore = new IntegrationStore(\n IntegrationApi,\n generalStore,\n loaderStore\n );\n const executionStore = new ExecutionStore(\n ExecutionApi,\n generalStore,\n loaderStore\n );\n const itOperationStore = new ItOperationStore(\n ItOperationApi,\n generalStore,\n loaderStore\n );\n const applicationStore = new ApplicationStore(\n ApplicationApi,\n generalStore,\n loaderStore\n );\n const usageStore = new UsageStore(UsageApi, loaderStore);\n const reportStore = new ReportStore(\n ReportApi,\n authenticationStore,\n loaderStore\n );\n const settingStore = new SettingStore(SettingApi, loaderStore);\n const customerManagementStore = new CustomerManagementStore(\n CustomerManagementApi,\n loaderStore\n );\n\n return {\n loaderStore,\n authenticationStore,\n navigationStore,\n generalStore,\n integrationStore,\n executionStore,\n itOperationStore,\n applicationStore,\n usageStore,\n reportStore,\n settingStore,\n customerManagementStore,\n };\n};\n\nexport default allStores();\n","var _g;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgDoublearrow(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 83.1 77.95\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_2\",\n \"data-name\": \"Layer 2\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_1-2\",\n \"data-name\": \"Layer 1\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"current\",\n d: \"M3.47,77,.78,74A3,3,0,0,1,1,69.77l34.1-31L1,8.21A3,3,0,0,1,.79,4L3.46,1A3,3,0,0,1,7.7.77L47.53,36.54a3,3,0,0,1,0,4.45L7.71,77.17A3,3,0,0,1,3.47,77Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"current\",\n d: \"M38,77l-2.69-3a3,3,0,0,1,.2-4.23l34.1-31L35.59,8.21A3,3,0,0,1,35.36,4L38,1A3,3,0,0,1,42.27.77L82.1,36.54a3,3,0,0,1,0,4.45L42.28,77.17A3,3,0,0,1,38,77Z\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgDoublearrow);\nexport default __webpack_public_path__ + \"static/media/doublearrow.2332997b.svg\";\nexport { ForwardRef as ReactComponent };","import styled, { css } from \"styled-components\";\nimport ReactTooltip from \"react-tooltip\";\nimport { ExtraStylingType } from \"model/Styles\";\n\nexport const $grey = \"#cbd7df\";\nexport const $lightRed = \"#e95766\";\nexport const $darkRed = \"#ba4551\";\n\nexport const $blue6 = \"#74b4d9\";\nexport const $blue5 = \"#0d435a\";\nexport const $blue4 = \"#4c9fce\";\nexport const $blue3 = \"#5bc6cb\";\nexport const $blue2 = \"#90d5df\";\nexport const $blue1 = \"#c8e9ef\";\n\nexport const $statusFail = $lightRed;\nexport const $statusFailTransparent = \"rgba(233, 87, 102, 0.4)\";\nexport const $statusInProgress = $grey;\nexport const $statusInProgressTransparent = \"rgba(203, 215, 223, 0.4)\";\nexport const $statusSuccessGreen = \"#b5e680\";\nexport const $statusSuccessGreenTransparent = \"rgba(181, 230, 128, 0.4)\";\n// export const $statusSuccessSlow = \"#e5e380\";\n// export const $statusSuccessSlowTransparent = \"rgba(229, 227, 128, 0.4)\";\nexport const $statusSuccess = \"rgb(125, 205, 210)\";\nexport const $statusSuccessTransparent = \"rgba(125, 205, 210, 0.4)\";\nexport const $statusSuccessSlow = \"rgb(200, 233, 239)\";\nexport const $statusSuccessSlowTransparent = \"rgba(200, 233, 239, 0.4)\";\nexport const $statusProblematic = \"#ffbb4d\";\nexport const $statusProblematicTransparent = \"rgba(255, 187, 77, 0.4)\";\nexport const $statusProblematicCalendar = \"#ffbb4d\";\nexport const $statusProblematicCalendarTransparent = \"rgba(255, 187, 77, 0.4)\";\nexport const $statusTotal = $blue4;\nexport const $statusTotalTransparent = \"rgba(76, 159, 206, 0.4)\";\nexport const $statusNoValue = \"#eee\";\nexport const $statusNoValueTransparent = \"rgba(238,238,238,0.4)\";\nexport const $statusUnknownOrNoStatus = $statusSuccess;\n\nexport const chartColorPalette = [$blue4, $blue5, $blue2];\nexport const reportTicketStatusColorPalette = [\n $blue1,\n $blue4,\n $statusSuccess,\n $statusSuccessGreen,\n];\n\nexport const $textLight = \"#5f7787\";\nexport const $textDark = $blue5;\n\nexport const largeText = css`\n font-size: 1rem;\n`;\n\nexport const mediumText = css`\n font-size: 0.9375rem;\n`;\n\nexport const smallText = css`\n font-size: 0.875rem;\n`;\n\nexport const regularText = css`\n font-weight: 400;\n`;\n\nexport const semiBoldText = css`\n font-weight: 600;\n`;\n\nexport const boldText = css`\n font-weight: 700;\n`;\n\nexport const darkText = css`\n color: ${$textDark};\n`;\n\nexport const lightText = css`\n color: ${$textLight};\n`;\n\ninterface TextProps {\n small?: boolean;\n large?: boolean;\n semibold?: boolean;\n bold?: boolean;\n dark?: boolean;\n uppercase?: boolean;\n color?: string;\n extraStyling?: ExtraStylingType;\n}\n\nexport const textStyling = css`\n ${(props) => (props.small ? smallText : props.large ? largeText : mediumText)}\n\n ${(props) =>\n props.semibold ? semiBoldText : props.bold ? boldText : regularText}\n\n${(props) => (props.dark ? darkText : lightText)}\n\n${(props) =>\n props.uppercase &&\n css`\n text-transform: uppercase;\n `}\n\n ${(props) =>\n props.color &&\n css`\n color: ${props.color};\n `}\n\n ${(props) => (props.extraStyling ? props.extraStyling : css``)}\n`;\n\nexport const Text = styled.p`\n ${textStyling}\n`;\n\nexport const Span = styled.span`\n ${textStyling}\n`;\n\nexport const Link = styled.a<{\n small?: boolean;\n large?: boolean;\n extraStyling?: ExtraStylingType;\n}>`\n ${(props) => (props.small ? smallText : props.large ? largeText : mediumText)}\n color: ${$blue4};\n cursor: pointer;\n\n &:hover {\n color: #2c77a1;\n text-decoration: underline;\n }\n\n ${(props) => (props.extraStyling ? props.extraStyling : css``)}\n`;\n\nexport const inputStyling = css`\n ${mediumText}\n color: #495057;\n display: block;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.875rem;\n line-height: 1.5;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid ${$grey};\n border-radius: 0.25rem;\n box-shadow: none;\n box-sizing: border-box;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n\n &:focus {\n background-color: #fff;\n border-color: ${$blue4};\n outline: 0;\n box-shadow: 0 0 6px 0 rgb(76 159 206 / 30%);\n }\n`;\n\nexport const Search = styled.input`\n ${inputStyling}\n margin: 0 0.75rem;\n`;\n\nexport const Select = styled.select<{\n highlight?: boolean;\n fullWidth?: boolean;\n extraStyling?: ExtraStylingType;\n}>`\n ${inputStyling}\n\n padding-right: 3.25rem;\n font-weight: ${(props) => (props.highlight ? 600 : 400)};\n color: ${(props) => (props.highlight ? $blue4 : $textLight)};\n\n -webkit-appearance: none;\n -moz-appearance: none;\n\n background-image: linear-gradient(45deg, transparent 50%, #aaa 50%),\n linear-gradient(135deg, #aaa 50%, transparent 50%),\n linear-gradient(to right, #ccc, #ccc);\n background-position: calc(100% - 20px) calc(1em + 1px),\n calc(100% - 15px) calc(1em + 1px), calc(100% - 2.5em) 0.4em;\n background-size: 5px 5px, 5px 5px, 1px 1.5em;\n background-repeat: no-repeat;\n\n ${(props) =>\n props.fullWidth\n ? css`\n width: 100%;\n max-width: 100%;\n `\n : css``}\n\n ${(props) => (props.extraStyling ? props.extraStyling : css``)}\n`;\n\nexport const Button = styled.a<{\n small?: boolean;\n simple?: boolean;\n disabled?: boolean;\n textColor?: string;\n color?: string;\n white?: boolean;\n hoverColor?: string;\n extraStyling?: ExtraStylingType;\n}>`\n box-shadow: none;\n display: inline-block;\n text-align: center;\n vertical-align: middle;\n border: 1px solid transparent;\n height: max-content;\n padding: ${(props) => (props.small ? \"0.25rem 0.5rem\" : \"0.375rem 1rem\")};\n font-size: ${(props) => (props.small ? \"0.875rem\" : \"0.9375rem\")};\n line-height: 1.5;\n border-radius: ${(props) => (props.small ? \"0.2rem\" : \"0.25rem\")};\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out,\n border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n user-select: none;\n\n ${(props) =>\n props.small &&\n css`\n width: max-content;\n `}\n\n ${(props) =>\n props.white &&\n css`\n border-color: ${$textLight};\n `}\n\n ${(props) =>\n props.disabled\n ? css`\n pointer-events: none;\n\n ${props.white\n ? css`\n opacity: 0.5;\n `\n : css`\n color: #fff;\n background-color: ${$grey};\n border-color: ${$grey};\n `}\n `\n : css`\n cursor: pointer;\n\n ${props.simple\n ? css`\n color: ${$textDark};\n\n &:hover {\n color: ${$textLight};\n }\n `\n : props.white\n ? css`\n color: ${$textDark};\n background-color: #fff;\n\n &:hover {\n background-color: ${$grey};\n }\n `\n : css`\n color: ${props.textColor ? props.textColor : \"#fff\"};\n background-color: ${props.color ? props.color : $blue4};\n border-color: ${props.color ? props.color : $blue4};\n\n &:hover {\n background-color: ${props.hoverColor\n ? props.hoverColor\n : \"#348dbf\"};\n border-color: ${props.hoverColor\n ? props.hoverColor\n : \"#348dbf\"};\n }\n `}\n `}\n\n ${(props) => props.extraStyling && props.extraStyling}\n`;\n\nexport const Filter = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n margin: 1.75rem 0;\n justify-content: center;\n gap: 1rem;\n`;\n\nexport const StatusCircle = styled.span<{ color: string; size?: string }>`\n width: ${(props) => (props.size ? props.size : \"0.5rem\")};\n min-width: ${(props) => (props.size ? props.size : \"0.5rem\")};\n height: ${(props) => (props.size ? props.size : \"0.5rem\")};\n min-height: ${(props) => (props.size ? props.size : \"0.5rem\")};\n border-radius: 50%;\n margin-right: 0.5rem;\n display: inline-block;\n\n ${(props) =>\n css`\n background-color: ${props.color};\n `}\n`;\n\n// Set class to get higher specificity than standard ReactToolTip styling\nexport const StyledReactTooltip = styled(ReactTooltip).attrs({\n className: \"custom-tooltip\",\n})`\n &.custom-tooltip {\n padding: 0.5rem 0.75rem;\n background-color: #fefefe;\n border-radius: 0.1rem;\n border: none;\n box-shadow: 0px 1px 1px 1px rgba(0, 0, 0, 0.15);\n display: flex;\n flex-direction: row;\n align-items: center;\n width: fit-content;\n\n &.show {\n opacity: 1;\n }\n }\n`;\n\nexport const TooltipText = styled.div`\n display: flex;\n flex-direction: column;\n`;\n\nexport const InfoIconWrapper = styled.div<{ extraStyling?: ExtraStylingType }>`\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 0.75rem;\n\n ${(props) => (props.extraStyling ? props.extraStyling : css``)}\n`;\n\ninterface IconButtonProps {\n disabled?: boolean;\n hoverColor?: string;\n}\n\nexport const iconButtonStyling = css`\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 0.5rem;\n width: max-content;\n user-select: none;\n transition: 0.2s;\n\n ${(props) =>\n props.disabled\n ? css`\n opacity: 0.6;\n `\n : css`\n cursor: pointer;\n\n &:hover {\n p {\n color: ${props.hoverColor ? props.hoverColor : $blue4};\n }\n\n svg {\n fill: ${props.hoverColor ? props.hoverColor : $blue4};\n }\n }\n `}\n`;\n\nexport const IconButton = styled.div`\n ${iconButtonStyling}\n`;\n\nexport const HeaderWithAdd = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 1.5rem;\n`;\n","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgArrowdown(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 1024 1024\",\n className: \"icon icon-mon-chevron-down chevron-down\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n role: \"img\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"current\",\n d: \"M1017.088 250.176c4.608 4.8 6.912 11.136 6.912 19.072s-2.304 14.272-6.912 19.008l-486.72 504.64c-4.608 4.736-10.752 7.104-18.368 7.104-7.68 0-13.824-2.368-18.368-7.104l-486.784-504.64c-4.544-4.736-6.848-11.072-6.848-19.008s2.304-14.272 6.848-19.072l18.368-19.008c4.608-4.736 10.752-7.168 18.368-7.168 7.68 0 14.528 2.432 20.672 7.168l447.744 466.496 447.68-466.496c6.144-4.736 12.992-7.168 20.672-7.168s13.76 2.432 18.368 7.168l18.368 19.008z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgArrowdown);\nexport default __webpack_public_path__ + \"static/media/arrowdown.df821111.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgBell(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 1024 1024\",\n className: \"icon icon-mon-alerts\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n role: \"img\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"current\",\n d: \"M512.023 960c17.344 0 32.32-6.336 44.992-19.008s19.008-27.648 19.008-44.992h64c0 34.688-12.672 64.64-38.016 89.984s-55.36 38.016-89.984 38.016c-34.688 0-64.704-12.672-90.048-38.016-25.28-25.344-37.952-55.296-37.952-89.984h64c0 17.344 6.336 32.32 19.008 44.992 12.608 12.672 27.648 19.008 44.992 19.008zM929.879 670.016c14.656 13.312 24 29.312 28.032 48 3.968 18.624 2.304 36.992-5.056 54.976-7.296 17.984-18.944 32.32-34.944 43.008s-33.984 16-54.016 16h-703.808c-19.968 0-37.952-5.312-53.952-16s-27.712-25.024-35.008-43.008c-7.36-17.984-9.024-36.352-4.992-54.976 3.968-18.688 13.312-34.688 27.968-48 33.344-32 56.64-64.704 70.016-98.048 18.624-48 27.968-114.624 27.968-200 0-51.968 12.672-100.288 38.016-144.96 25.28-44.672 59.968-81.344 103.936-110.016s92.672-44.992 145.984-49.024v-35.968c0-9.344 3.008-17.024 8.96-22.976 6.016-6.016 13.696-9.024 23.040-9.024 9.28 0 16.96 3.008 22.976 9.024 6.016 5.952 9.024 13.632 9.024 22.976v35.968c53.312 4.032 101.952 20.352 145.92 49.024 44.032 28.672 78.656 65.344 104 110.016 25.28 44.672 37.952 92.992 37.952 144.96 0 85.376 9.344 152 28.032 200 13.312 33.344 36.672 66.048 69.952 98.048zM863.383 768c14.656 0 24.64-6.336 29.952-19.008s2.688-23.68-8-32.96c-39.936-38.72-67.84-79.36-83.84-122.048-22.592-54.656-33.92-128.64-33.92-221.952 0-44.032-11.328-84.672-33.984-122.048-22.592-37.312-53.568-67.008-92.8-88.96-39.296-22.016-82.176-33.024-128.768-33.024s-89.536 11.008-128.768 33.024c-39.296 21.952-70.272 51.648-92.864 88.96-22.656 37.376-33.92 78.016-33.92 122.048 0 93.312-11.328 168-33.984 224-15.936 41.28-43.904 81.28-83.84 120-10.624 9.28-13.312 20.288-8 32.96s15.296 19.008 29.952 19.008h702.784z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgBell);\nexport default __webpack_public_path__ + \"static/media/bell.0623f978.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgCart(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 1024 1024\",\n className: \"icon icon-mon-cart-outline\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n role: \"img\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"current\",\n d: \"M981.333 170.667h-751.502l-14.791-78.962c-3.812-20.196-21.447-34.816-41.927-34.816h-151.779c-11.776 0-21.333 9.557-21.333 21.333v14.222c0 11.776 9.557 21.333 21.333 21.333h139.947l124.302 663.039c-18.375 20.196-29.582 47.047-29.582 76.515 0 62.862 50.916 113.778 113.778 113.778s113.778-50.916 113.778-113.778c0-19.968-5.234-39.595-15.246-56.889h258.048c-10.012 17.294-15.246 36.921-15.246 56.889 0 62.862 50.916 113.778 113.778 113.778s113.778-50.916 113.778-113.778c0-31.972-13.198-60.871-34.475-81.522-4.608-18.204-21.049-32.256-41.415-32.256h-526.279l-21.333-113.778h589.141c20.196 0 37.604-14.165 41.756-33.963l77.027-369.777c5.518-26.51-14.734-51.371-41.756-51.371zM426.666 853.333c0 31.346-25.543 56.889-56.889 56.889s-56.889-25.543-56.889-56.889c0-31.346 25.543-56.889 56.889-56.889s56.889 25.543 56.889 56.889zM824.888 910.222c-31.346 0-56.889-25.543-56.889-56.889s25.543-56.889 56.889-56.889c31.346 0 56.889 25.543 56.889 56.889s-25.543 56.889-56.889 56.889zM892.7 568.889h-588.231l-64-341.333h723.342l-71.111 341.333z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCart);\nexport default __webpack_public_path__ + \"static/media/cart.c93efae3.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgUser(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 1024 1024\",\n className: \"icon icon-mon-user-outline\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n role: \"img\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"current\",\n d: \"M518.592 0.064l6.528 0.256 6.464 0.448 6.464 0.576 6.4 0.704 6.336 0.896 6.272 1.088 6.272 1.216 6.208 1.344 6.144 1.536 6.080 1.664 6.016 1.792 5.952 1.984 5.888 2.048 5.888 2.24 5.76 2.368 5.696 2.56 5.632 2.624 5.504 2.752 5.504 2.944 5.376 3.008 5.376 3.2 5.184 3.264 5.184 3.392 5.056 3.52 4.992 3.648 4.864 3.776 4.8 3.84 4.736 3.968 4.608 4.096 4.48 4.224 4.416 4.288 4.288 4.416 4.224 4.48 4.096 4.608 3.968 4.736 3.84 4.8 3.776 4.864 3.648 4.992 3.52 5.056 3.392 5.184 3.264 5.184 3.2 5.376 3.008 5.376 2.944 5.504 2.752 5.504 2.624 5.632 2.56 5.696 2.368 5.76 2.24 5.888 2.048 5.888 1.984 5.952 1.792 6.016 1.664 6.080 1.536 6.144 1.344 6.208 1.216 6.272 1.088 6.272 0.896 6.336 0.704 6.4 0.576 6.464 0.448 6.464 0.256 6.528 0.064 6.592-0.064 6.592-0.256 6.528-0.448 6.464-0.576 6.464-0.704 6.4-0.896 6.336-1.088 6.272-1.216 6.272-1.344 6.208-1.536 6.144-1.664 6.080-1.792 6.016-1.984 5.952-2.048 5.888-2.24 5.888-2.368 5.76-2.56 5.696-2.624 5.632-2.752 5.504-2.944 5.504-3.008 5.376-3.2 5.376-3.264 5.184-3.392 5.184-3.52 5.056-3.648 4.992-3.776 4.864-3.84 4.8-3.968 4.736-4.096 4.608-4.224 4.48-4.288 4.416-4.416 4.288-4.48 4.224-4.608 4.096-4.736 3.968-4.8 3.84-4.864 3.776-4.992 3.648-5.056 3.52-5.184 3.392-5.184 3.264-5.376 3.2-5.376 3.008-5.504 2.944-5.504 2.752-5.632 2.624-5.696 2.56-5.76 2.368-5.888 2.24-5.888 2.048-5.952 1.984-6.016 1.792-6.080 1.664-6.144 1.536-6.208 1.344-6.272 1.216-6.272 1.088-6.336 0.896-6.4 0.704-6.464 0.576-6.464 0.448-6.528 0.256-6.592 0.064-6.592-0.064-6.528-0.256-6.464-0.448-6.464-0.576-6.4-0.704-6.336-0.896-6.272-1.088-6.272-1.216-6.208-1.344-6.144-1.536-6.080-1.664-6.016-1.792-5.952-1.984-5.888-2.048-5.888-2.24-5.76-2.368-5.696-2.56-5.632-2.624-5.504-2.752-5.504-2.944-5.376-3.008-5.376-3.2-5.184-3.264-5.184-3.392-5.056-3.52-4.992-3.648-4.864-3.776-4.8-3.84-4.736-3.968-4.608-4.096-4.48-4.224-4.416-4.288-4.288-4.416-4.224-4.48-4.096-4.608-3.968-4.736-3.84-4.8-3.776-4.864-3.648-4.992-3.52-5.056-3.392-5.184-3.264-5.184-3.2-5.376-3.008-5.376-2.944-5.504-2.752-5.504-2.624-5.632-2.56-5.696-2.368-5.76-2.24-5.888-2.048-5.888-1.984-5.952-1.792-6.016-1.664-6.080-1.536-6.144-1.344-6.208-1.216-6.272-1.088-6.272-0.896-6.336-0.704-6.4-0.576-6.464-0.448-6.464-0.256-6.528-0.064-6.592 0.064-6.592 0.256-6.528 0.448-6.464 0.576-6.464 0.704-6.4 0.896-6.336 1.088-6.272 1.216-6.272 1.344-6.208 1.536-6.144 1.664-6.080 1.792-6.016 1.984-5.952 2.048-5.888 2.24-5.888 2.368-5.76 2.56-5.696 2.624-5.632 2.752-5.504 2.944-5.504 3.008-5.376 3.2-5.376 3.264-5.184 3.392-5.184 3.52-5.056 3.648-4.992 3.776-4.864 3.84-4.8 3.968-4.736 4.096-4.608 4.224-4.48 4.288-4.416 4.416-4.288 4.48-4.224 4.608-4.096 4.736-3.968 4.8-3.84 4.864-3.776 4.992-3.648 5.056-3.52 5.184-3.392 5.184-3.264 5.376-3.2 5.376-3.008 5.504-2.944 5.504-2.752 5.632-2.624 5.696-2.56 5.76-2.368 5.888-2.24 5.888-2.048 5.952-1.984 6.016-1.792 6.080-1.664 6.144-1.536 6.208-1.344 6.272-1.216 6.272-1.088 6.336-0.896 6.4-0.704 6.464-0.576 6.464-0.448 6.528-0.256 6.592-0.064 6.592 0.064zM507.072 64.064l-4.864 0.192-4.864 0.32-4.8 0.448-4.8 0.512-4.736 0.704-4.672 0.768-4.672 0.896-4.672 1.024-4.544 1.152-4.544 1.216-4.544 1.344-4.416 1.472-4.416 1.6-4.352 1.664-4.352 1.728-4.288 1.92-4.16 1.984-4.16 2.048-4.16 2.176-4.032 2.304-4.032 2.368-3.904 2.496-3.904 2.56-3.776 2.624-3.776 2.752-3.712 2.816-3.584 2.944-3.52 3.008-3.52 3.072-3.392 3.2-3.328 3.2-3.2 3.328-3.2 3.392-3.072 3.52-3.008 3.52-2.944 3.584-2.816 3.712-2.752 3.776-2.624 3.776-2.56 3.904-2.496 3.904-2.368 4.032-2.304 4.032-2.176 4.096-2.048 4.224-1.984 4.224-1.856 4.224-1.792 4.352-1.664 4.352-1.6 4.416-1.472 4.416-1.344 4.544-1.216 4.544-1.152 4.544-1.024 4.672-0.896 4.672-0.768 4.672-0.704 4.736-0.512 4.8-0.448 4.8-0.32 4.864-0.192 4.864-0.064 4.928 0.064 4.928 0.192 4.864 0.32 4.864 0.448 4.8 0.512 4.8 0.704 4.736 0.768 4.672 0.896 4.672 1.024 4.672 1.152 4.544 1.216 4.544 1.344 4.544 1.472 4.416 1.6 4.416 1.664 4.352 1.792 4.352 1.856 4.224 1.984 4.224 2.048 4.224 2.176 4.096 2.304 4.032 2.368 4.032 2.496 3.904 2.56 3.904 2.624 3.776 2.752 3.776 2.816 3.712 2.944 3.584 3.008 3.52 3.072 3.52 3.2 3.392 3.2 3.328 3.328 3.2 3.392 3.2 3.52 3.072 3.52 3.008 3.584 2.944 3.712 2.816 3.776 2.752 3.776 2.624 3.904 2.56 3.904 2.496 4.032 2.368 4.032 2.304 4.16 2.176 4.16 2.048 4.16 1.984 4.288 1.92 4.352 1.728 4.352 1.664 4.416 1.6 4.416 1.472 4.544 1.344 4.544 1.216 4.544 1.152 4.672 1.024 4.672 0.896 4.672 0.768 4.736 0.704 4.8 0.512 4.8 0.448 4.864 0.32 4.864 0.192 4.928 0.064 4.928-0.064 4.864-0.192 4.864-0.32 4.8-0.448 4.8-0.512 4.736-0.704 4.672-0.768 4.672-0.896 4.672-1.024 4.544-1.152 4.544-1.216 4.544-1.344 4.416-1.472 4.416-1.6 4.352-1.664 4.352-1.728 4.288-1.92 4.16-1.984 4.16-2.048 4.16-2.176 4.032-2.304 4.032-2.368 3.904-2.496 3.904-2.56 3.776-2.624 3.776-2.752 3.712-2.816 3.584-2.944 3.52-3.008 3.52-3.072 3.392-3.2 3.328-3.2 3.2-3.328 3.2-3.392 3.072-3.52 3.008-3.52 2.944-3.584 2.816-3.712 2.752-3.776 2.624-3.776 2.56-3.904 2.496-3.904 2.368-4.032 2.304-4.032 2.176-4.096 2.048-4.224 1.984-4.224 1.856-4.224 1.792-4.352 1.664-4.352 1.6-4.416 1.472-4.416 1.344-4.544 1.216-4.544 1.152-4.544 1.024-4.672 0.896-4.672 0.768-4.672 0.704-4.736 0.512-4.8 0.448-4.8 0.32-4.864 0.192-4.864 0.064-4.928-0.064-4.928-0.192-4.864-0.32-4.864-0.448-4.8-0.512-4.8-0.704-4.736-0.768-4.672-0.896-4.672-1.024-4.672-1.152-4.544-1.216-4.544-1.344-4.544-1.472-4.416-1.6-4.416-1.664-4.352-1.792-4.352-1.856-4.224-1.984-4.224-2.048-4.224-2.176-4.096-2.304-4.032-2.368-4.032-2.496-3.904-2.56-3.904-2.624-3.776-2.752-3.776-2.816-3.712-2.944-3.584-3.008-3.52-3.072-3.52-3.2-3.392-3.2-3.328-3.328-3.2-3.392-3.2-3.52-3.072-3.52-3.008-3.584-2.944-3.712-2.816-3.776-2.752-3.776-2.624-3.904-2.56-3.904-2.496-4.032-2.368-4.032-2.304-4.16-2.176-4.16-2.048-4.16-1.984-4.288-1.92-4.352-1.728-4.352-1.664-4.416-1.6-4.416-1.472-4.544-1.344-4.544-1.216-4.544-1.152-4.672-1.024-4.672-0.896-4.672-0.768-4.736-0.704-4.8-0.512-4.8-0.448-4.864-0.32-4.864-0.192-4.928-0.064-4.928 0.064z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"current\",\n d: \"M370.56 577.984l4.352 1.92 4.352 1.792 4.416 1.792 4.416 1.728 4.48 1.664 4.416 1.6 4.48 1.536 4.48 1.472 4.544 1.344 4.48 1.344 4.544 1.28 9.088 2.432 4.608 1.088 4.544 1.024 4.608 0.96 4.608 0.896 4.608 0.832 9.216 1.536 4.608 0.64 4.672 0.576 9.28 1.024 4.672 0.384 9.28 0.64 9.344 0.384 9.344 0.128 9.344-0.128 9.344-0.384 9.28-0.64 4.672-0.384 9.28-1.024 4.672-0.576 4.608-0.64 9.216-1.536 4.608-0.832 4.608-0.896 4.608-0.96 4.544-1.024 4.608-1.088 9.088-2.432 4.544-1.28 4.48-1.344 4.544-1.344 4.48-1.472 4.48-1.536 4.416-1.6 4.48-1.664 4.416-1.728 4.416-1.792 4.352-1.792 4.352-1.92 4.352-1.984h33.408l6.912 0.064 6.848 0.32 6.784 0.384 6.784 0.64 6.72 0.768 6.656 0.96 6.592 1.088 6.592 1.28 6.528 1.472 6.4 1.536 6.4 1.792 6.336 1.856 6.272 2.048 6.208 2.24 6.080 2.368 6.080 2.432 6.016 2.688 5.888 2.752 5.824 2.944 5.76 3.008 5.632 3.2 5.632 3.328 5.504 3.456 5.376 3.584 5.312 3.648 5.248 3.84 5.12 3.968 5.056 4.032 4.928 4.224 4.864 4.288 4.672 4.416 4.672 4.48 4.48 4.672 4.416 4.672 4.288 4.864 4.224 4.928 4.032 5.056 3.968 5.12 3.84 5.248 3.648 5.312 3.584 5.376 3.456 5.504 3.328 5.632 3.2 5.632 3.008 5.76 2.944 5.824 2.752 5.888 2.688 6.016 2.432 6.080 2.368 6.080 2.24 6.208 2.048 6.272 1.856 6.336 1.792 6.4 1.536 6.4 1.472 6.528 1.28 6.592 1.088 6.592 0.96 6.656 0.768 6.72 0.64 6.784 0.384 6.784 0.32 6.848 0.064 6.912v85.632l-0.128 2.496-0.128 2.432-0.256 2.368-0.256 2.432-0.32 2.368-0.896 4.736-0.512 2.304-1.152 4.608-1.408 4.48-0.832 2.24-0.832 2.176-0.896 2.176-0.896 2.112-1.024 2.112-1.024 2.048-1.088 2.112-2.304 3.968-1.28 1.984-2.56 3.84-2.816 3.712-1.408 1.792-4.608 5.184-1.6 1.664-1.664 1.6-5.184 4.608-1.792 1.408-3.712 2.816-3.84 2.56-1.984 1.28-3.968 2.304-2.112 1.088-2.048 1.024-2.112 1.024-2.112 0.896-2.176 0.896-2.176 0.832-2.24 0.832-4.48 1.408-4.608 1.152-2.304 0.512-4.736 0.896-2.368 0.32-2.432 0.256-2.368 0.256-4.928 0.256-720.96-1.088-4.736-0.896-2.304-0.512-4.608-1.152-4.48-1.408-2.24-0.832-2.176-0.832-2.176-0.896-2.112-0.896-2.112-1.024-2.048-1.024-2.112-1.088-3.968-2.304-1.984-1.28-3.84-2.56-3.712-2.816-1.792-1.408-5.184-4.608-1.664-1.6-1.6-1.664-4.608-5.184-1.408-1.792-2.816-3.712-2.56-3.84-1.28-1.984-2.304-3.968-1.088-2.112-1.024-2.048-1.024-2.112-0.896-2.112-0.896-2.176-0.832-2.176-0.832-2.24-1.408-4.48-1.152-4.608-0.512-2.304-0.896-4.736-0.32-2.368-0.256-2.432-0.256-2.368-0.128-2.432-0.128-2.496v-85.632l0.064-6.912 0.32-6.848 0.384-6.784 0.64-6.784 0.768-6.72 0.96-6.656 1.088-6.592 1.28-6.592 1.472-6.528 1.536-6.4 1.792-6.4 1.856-6.336 2.048-6.272 2.24-6.208 2.368-6.080 2.432-6.080 2.688-6.016 2.752-5.888 2.944-5.824 3.008-5.76 3.2-5.632 3.328-5.632 3.456-5.504 3.584-5.376 3.648-5.312 3.84-5.248 3.968-5.12 4.032-5.056 4.224-4.928 4.288-4.864 4.416-4.672 4.48-4.672 4.672-4.48 4.672-4.416 4.864-4.288 4.928-4.224 5.056-4.032 5.12-3.968 5.248-3.84 5.312-3.648 5.376-3.584 5.504-3.456 5.632-3.328 5.632-3.2 5.76-3.008 5.824-2.944 5.888-2.752 6.016-2.688 6.080-2.432 6.080-2.368 6.208-2.24 6.272-2.048 6.336-1.856 6.4-1.792 6.4-1.536 6.528-1.472 6.592-1.28 6.592-1.088 6.656-0.96 6.72-0.768 6.784-0.64 6.784-0.384 6.848-0.32 6.912-0.064h33.408l4.352 1.984zM333.248 640l-5.696 0.064-5.184 0.192-5.184 0.384-5.12 0.448-5.12 0.576-5.056 0.704-4.992 0.832-4.992 0.96-4.928 1.088-4.928 1.216-4.8 1.344-4.8 1.472-4.8 1.536-4.672 1.664-4.672 1.792-4.608 1.92-4.544 1.984-4.544 2.112-4.416 2.24-4.352 2.304-4.352 2.432-4.288 2.56-4.16 2.624-4.16 2.688-4.096 2.88-3.968 2.88-7.808 6.144-3.776 3.2-3.712 3.328-3.584 3.328-3.584 3.456-3.456 3.584-3.328 3.584-3.328 3.712-3.2 3.776-6.144 7.808-2.88 3.968-2.88 4.096-2.688 4.16-2.624 4.16-2.56 4.288-2.432 4.352-2.304 4.352-2.24 4.416-2.112 4.544-1.984 4.544-1.92 4.608-1.792 4.672-1.664 4.672-1.536 4.8-1.472 4.8-1.344 4.8-1.216 4.928-1.088 4.928-0.96 4.992-0.832 4.992-0.704 5.056-0.576 5.12-0.448 5.12-0.384 5.184-0.192 5.184-0.064 5.696v83.584l0.064 0.768 0.064 0.832 0.128 1.536 0.384 2.304 0.384 1.536 0.192 0.704 0.192 0.768 0.768 2.112 0.32 0.768 0.64 1.408 0.32 0.64 1.152 2.112 0.448 0.64 0.384 0.64 0.448 0.64 0.512 0.64 0.448 0.64 0.512 0.64 1.024 1.152 2.304 2.304 1.152 1.024 0.64 0.512 0.64 0.448 0.64 0.512 0.64 0.448 0.64 0.384 0.704 0.448 0.64 0.384 0.704 0.384 0.64 0.384 2.112 0.96 0.768 0.32 2.112 0.768 0.768 0.192 0.704 0.192 1.536 0.384 2.304 0.384 1.536 0.128 0.832 0.064 0.768 0.064 714.112-1.408 2.112-0.768 0.768-0.32 2.112-0.96 0.64-0.384 0.704-0.384 0.64-0.384 0.704-0.448 0.64-0.384 0.64-0.448 0.64-0.512 0.64-0.448 0.64-0.512 1.152-1.024 2.304-2.304 1.024-1.152 0.512-0.64 0.448-0.64 0.512-0.64 0.448-0.64 0.384-0.64 0.448-0.704 0.384-0.64 0.768-1.408 0.32-0.64 0.64-1.408 0.32-0.768 0.768-2.112 0.192-0.768 0.192-0.704 0.384-1.536 0.384-2.304 0.128-1.536 0.064-0.832 0.064-0.768v-83.584l-0.064-5.696-0.192-5.184-0.384-5.184-0.448-5.12-0.576-5.12-0.704-5.056-0.832-4.992-0.96-4.992-1.088-4.928-1.216-4.928-1.344-4.8-1.472-4.8-1.536-4.8-1.664-4.672-1.792-4.672-1.92-4.608-1.984-4.544-2.112-4.544-2.24-4.416-2.304-4.352-2.432-4.352-2.56-4.288-2.624-4.16-2.688-4.16-2.88-4.096-2.88-3.968-6.144-7.808-3.2-3.776-3.328-3.712-3.328-3.584-3.456-3.584-3.584-3.456-3.584-3.328-3.712-3.328-3.776-3.2-7.808-6.144-3.968-2.88-4.096-2.88-4.16-2.688-4.16-2.624-4.288-2.56-4.352-2.432-4.352-2.304-4.416-2.24-4.544-2.112-4.544-1.984-4.608-1.92-4.672-1.792-4.672-1.664-4.8-1.536-4.8-1.472-4.8-1.344-4.928-1.216-4.928-1.088-4.992-0.96-4.992-0.832-5.056-0.704-5.12-0.576-5.12-0.448-5.184-0.384-5.184-0.192-5.632-0.064h-19.584l-2.112 0.896-5.248 2.112-5.248 2.048-10.496 3.84-5.312 1.792-5.312 1.728-5.312 1.664-5.376 1.6-5.376 1.536-10.752 2.816-5.376 1.28-5.44 1.216-5.44 1.152-10.88 2.048-5.504 0.96-5.44 0.832-5.504 0.768-5.504 0.704-5.44 0.64-11.072 1.024-5.504 0.384-5.504 0.32-5.504 0.256-5.504 0.192-5.568 0.128-5.504 0.064-5.504-0.064-5.568-0.128-5.504-0.192-5.504-0.256-5.504-0.32-5.504-0.384-11.008-1.024-5.504-0.64-5.504-0.704-5.504-0.768-5.44-0.832-5.504-0.96-10.88-2.048-5.44-1.152-5.44-1.216-5.376-1.28-10.752-2.816-5.376-1.536-5.376-1.6-5.312-1.664-5.312-1.728-5.312-1.792-10.496-3.84-5.248-2.048-5.248-2.112-2.112-0.896h-19.52z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgUser);\nexport default __webpack_public_path__ + \"static/media/user.d2533066.svg\";\nexport { ForwardRef as ReactComponent };","var _defs, _g;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgGear(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 50.08 46.33\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-1{opacity:0.7;}.cls-2{opacity:0.4;}.cls-3{fill:current;}\"))), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"Asset 1\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_2\",\n \"data-name\": \"Layer 2\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_1-2\",\n \"data-name\": \"Layer 1\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-1\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-2\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-3\",\n d: \"M17.23,46.32c-.28,0-.56,0-.83,0a.8.8,0,0,1-.91-.65,4.62,4.62,0,0,1-.29-1.15c-.06-.81-.57-1.06-1.25-1.18s-1.5-.26-2.24-.41a.81.81,0,0,0-.9.32l-.68.9c-.55.79-.93.94-1.78.58a9.32,9.32,0,0,1-3-2.1,1,1,0,0,1-.19-1.28c.25-.47.57-.91.78-1.4a1.06,1.06,0,0,0,0-.82c-.46-.78-1-1.52-1.49-2.28-.36-.54-.86-.6-1.69-.38-1.09.28-1.53.21-1.92-.74a8.4,8.4,0,0,1-.49-1.35A15,15,0,0,1,0,32.5C-.1,31.23.54,31,1.47,30.79a5.23,5.23,0,0,0,1-.26A1,1,0,0,0,3,30c.21-.81.31-1.65.49-2.47A1.29,1.29,0,0,0,2.79,26a9.14,9.14,0,0,1-.93-.71.91.91,0,0,1-.25-1.08,8.51,8.51,0,0,1,2.26-3.43,1.39,1.39,0,0,1,1.44,0c.34.19.67.41,1,.63a1,1,0,0,0,1.18,0c.72-.51,1.45-1,2.19-1.49a.89.89,0,0,0,.41-.93c0-.3-.09-.61-.14-.92-.18-1.19,0-1.52,1.11-1.92a8.46,8.46,0,0,1,3.49-.5,1,1,0,0,1,.92.69,8,8,0,0,1,.3,1.09c.16.84.36,1.07,1.2,1.23s1.45.27,2.17.44a1.06,1.06,0,0,0,1.17-.54c.19-.24.35-.51.52-.76a1.19,1.19,0,0,1,1.7-.51,7.58,7.58,0,0,1,3,2,1.05,1.05,0,0,1,.19,1.44c-.19.35-.4.69-.61,1a1.17,1.17,0,0,0,.07,1.44c.42.58.81,1.18,1.2,1.79a1.49,1.49,0,0,0,1.87.58c1.2-.3,1.75-.05,2.09,1.16a15,15,0,0,1,.47,2.84c.12,1.36-.38,1.34-1.47,1.63a4.2,4.2,0,0,0-1,.28,1.2,1.2,0,0,0-.52.66c-.19.84-.28,1.7-.45,2.54-.14.63.21,1,.65,1.27s.65.43.94.68a1,1,0,0,1,.23,1.31,8.83,8.83,0,0,1-1.8,2.9c-.79.86-1.33.71-2.19.2l-.66-.39a.93.93,0,0,0-1.11,0c-.75.49-1.51,1-2.26,1.47a.91.91,0,0,0-.39,1.08,5,5,0,0,1,.15.86c.09,1.17,0,1.37-1.11,1.78a8.48,8.48,0,0,1-1.46.45,6.74,6.74,0,0,1-1.19,0ZM8.85,31a6.65,6.65,0,1,0,6.59-6.62A6.65,6.65,0,0,0,8.85,31Z\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n className: \"cls-2\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-3\",\n d: \"M28.81,20.85a9.39,9.39,0,0,1,.46-1,1.21,1.21,0,0,0,.07-1.35c-.57-.95-1.12-1.91-1.64-2.88a1.33,1.33,0,0,0-1.3-.73l-.52,0A.83.83,0,0,1,25,14.2a11.58,11.58,0,0,1,0-4.58A.84.84,0,0,1,26,9c1.26.14,1.77-.63,2.24-1.58a12.79,12.79,0,0,1,1-1.71,1.45,1.45,0,0,0,.09-1.63c-.6-1.11-.53-1.44.6-2.13S32.07.71,33.15.15c.54-.28.91-.18,1.15.36a2,2,0,0,0,2.28,1.28,18.65,18.65,0,0,1,2.59,0,1.07,1.07,0,0,0,1.06-.56,5,5,0,0,1,.38-.56C41.1,0,41.36,0,42.05.33c1.12.64,2.25,1.28,3.32,2,.63.43.65.88.29,1.58a2.25,2.25,0,0,0-.33.63,1.43,1.43,0,0,0,.07.9c.55,1,1.18,2,1.76,3.06a1,1,0,0,0,1,.56,2.45,2.45,0,0,1,.77,0,1.58,1.58,0,0,1,.77.55A3.31,3.31,0,0,1,50,11a8,8,0,0,1-.35,3.56.88.88,0,0,1-.78.55,3.38,3.38,0,0,1-.78,0,1.19,1.19,0,0,0-1.1.69c-.54.95-1.1,1.89-1.66,2.82a1.29,1.29,0,0,0,0,1.41c.56,1,.5,1.34-.37,2a10.59,10.59,0,0,1-3.41,1.82,1,1,0,0,1-1.24-.45,2.08,2.08,0,0,0-.41-.58,2,2,0,0,0-.93-.53,34.24,34.24,0,0,0-3.51,0,1.49,1.49,0,0,0-.92.54c-.92,1.22-1,1.27-2.36.67a9.14,9.14,0,0,1-3-1.91A3.73,3.73,0,0,1,28.81,20.85ZM31.67,12a5.76,5.76,0,0,0,5.57,5.72,5.89,5.89,0,0,0,5.93-5.62,5.91,5.91,0,0,0-5.74-5.85A5.8,5.8,0,0,0,31.67,12Z\"\n })))))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgGear);\nexport default __webpack_public_path__ + \"static/media/gear.348cbe40.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgCross(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 1024 1024\",\n className: \"icon icon-mon-error\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n role: \"img\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"current\",\n d: \"M512 0c92.203 0 177.536 23.040 256 69.163s140.715 108.373 186.837 186.837c46.123 78.464 69.163 163.797 69.163 256s-23.040 177.536-69.163 256c-46.123 78.464-108.373 140.715-186.837 186.837s-163.797 69.163-256 69.163c-92.203 0-177.536-23.040-256-69.163s-140.715-108.373-186.837-186.837c-46.123-78.464-69.163-163.797-69.163-256s23.040-177.536 69.163-256c46.123-78.464 108.373-140.715 186.837-186.837s163.797-69.163 256-69.163zM761.856 645.12l-135.168-133.12 135.168-133.12c4.096-5.461 6.144-11.264 6.144-17.408s-2.048-11.947-6.144-17.408l-81.92-81.92c-4.096-4.096-9.557-6.144-16.384-6.144s-12.971 2.048-18.432 6.144l-133.12 135.168-133.12-135.168c-5.461-4.096-11.264-6.144-17.408-6.144s-11.947 2.048-17.408 6.144l-81.92 81.92c-4.096 4.096-6.144 9.557-6.144 16.384s2.048 12.971 6.144 18.432l135.168 133.12-135.168 133.12c-4.096 5.461-6.144 11.264-6.144 17.408s2.048 11.947 6.144 17.408l81.92 81.92c4.096 4.096 9.557 6.144 16.384 6.144s12.971-2.048 18.432-6.144l133.12-135.168 133.12 135.168c5.461 4.096 11.264 6.144 17.408 6.144s11.947-2.048 17.408-6.144l81.92-81.92c4.096-4.096 6.144-9.557 6.144-16.384s-2.048-12.971-6.144-18.432z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCross);\nexport default __webpack_public_path__ + \"static/media/cross.22783ce1.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgCircle(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 83 83\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_2\",\n \"data-name\": \"Layer 2\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_1-2\",\n \"data-name\": \"Layer 1\"\n }, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 41.5,\n cy: 41.5,\n r: 41.5\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCircle);\nexport default __webpack_public_path__ + \"static/media/circle.278dd506.svg\";\nexport { ForwardRef as ReactComponent };","var _defs, _g;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgGroup(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 82 82\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".group-cls-1{fill:current;}\"))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_2\",\n \"data-name\": \"Layer 2\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_1-2\",\n \"data-name\": \"Layer 1\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"group-cls-1\",\n d: \"M32.34,37.34H5a5,5,0,0,1-5-5V5A5,5,0,0,1,5,0H32.34a5,5,0,0,1,5,5V32.34A5,5,0,0,1,32.34,37.34ZM6,31.34H31.34V6H6Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"group--cls-1\",\n d: \"M77,37.34H49.66a5,5,0,0,1-5-5V5a5,5,0,0,1,5-5H77a5,5,0,0,1,5,5V32.34A5,5,0,0,1,77,37.34Zm-26.34-6H76V6H50.66Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"group--cls-1\",\n d: \"M77,82H49.66a5,5,0,0,1-5-5V49.66a5,5,0,0,1,5-5H77a5,5,0,0,1,5,5V77A5,5,0,0,1,77,82ZM50.66,76H76V50.66H50.66Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"group-cls-1\",\n d: \"M32.34,82H5a5,5,0,0,1-5-5V49.66a5,5,0,0,1,5-5H32.34a5,5,0,0,1,5,5V77A5,5,0,0,1,32.34,82ZM6,76H31.34V50.66H6Z\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgGroup);\nexport default __webpack_public_path__ + \"static/media/group.2e922b6f.svg\";\nexport { ForwardRef as ReactComponent };","var _defs, _g;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgList(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 82 81\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".list-cls-1{fill:current;}\"))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_2\",\n \"data-name\": \"Layer 2\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_1-2\",\n \"data-name\": \"Layer 1\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n className: \"list-cls-1\",\n width: 82,\n height: 6,\n rx: 2\n }), /*#__PURE__*/React.createElement(\"rect\", {\n className: \"list-cls-1\",\n y: 18.75,\n width: 82,\n height: 6,\n rx: 2\n }), /*#__PURE__*/React.createElement(\"rect\", {\n className: \"list-cls-1\",\n y: 37.5,\n width: 82,\n height: 6,\n rx: 2\n }), /*#__PURE__*/React.createElement(\"rect\", {\n className: \"list-cls-1\",\n y: 56.25,\n width: 82,\n height: 6,\n rx: 2\n }), /*#__PURE__*/React.createElement(\"rect\", {\n className: \"list-cls-1\",\n y: 75,\n width: 82,\n height: 6,\n rx: 2\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgList);\nexport default __webpack_public_path__ + \"static/media/list.5fc3d0e3.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgArrowleft(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 1024 1024\",\n className: \"icon icon-mon-chevron-left\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n role: \"img\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"current\",\n d: \"M773.824 1017.152c-4.8 4.544-11.136 6.848-19.072 6.848s-14.272-2.304-19.008-6.848l-504.64-486.784c-4.736-4.544-7.104-10.688-7.104-18.368 0-7.616 2.368-13.76 7.104-18.368l504.64-486.72c4.736-4.608 11.072-6.912 19.008-6.912s14.272 2.304 19.072 6.912l19.008 18.368c4.736 4.608 7.168 10.688 7.168 18.368s-2.432 14.528-7.168 20.672l-466.496 447.68 466.496 447.744c4.736 6.144 7.168 12.992 7.168 20.672 0 7.616-2.432 13.76-7.168 18.368l-19.008 18.368z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgArrowleft);\nexport default __webpack_public_path__ + \"static/media/arrowleft.61d472ce.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgArrowright(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 1024 1024\",\n className: \"icon icon-mon-chevron-right\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n role: \"img\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"current\",\n d: \"M250.176 6.912c4.736-4.608 11.072-6.912 19.008-6.912s14.272 2.304 19.072 6.912l504.576 486.72c4.736 4.608 7.168 10.752 7.168 18.368 0 7.68-2.432 13.824-7.168 18.368l-504.576 486.784c-4.8 4.544-11.136 6.848-19.072 6.848s-14.272-2.304-19.008-6.848l-19.072-18.368c-4.736-4.608-7.104-10.752-7.104-18.368 0-7.68 2.368-14.528 7.104-20.672l466.496-447.744-466.496-447.68c-4.736-6.144-7.104-12.992-7.104-20.672s2.368-13.76 7.104-18.368l19.072-18.368z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgArrowright);\nexport default __webpack_public_path__ + \"static/media/arrowright.ec7d7415.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgDoublearrowleft(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 1024 1024\",\n className: \"icon icon-mon-first\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n role: \"img\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"current\",\n d: \"M629.824 1017.088c-4.736 4.608-11.136 6.912-19.072 6.912s-14.272-2.304-19.008-6.912l-504.576-486.72c-4.8-4.608-7.168-10.688-7.168-18.368s2.368-13.76 7.168-18.368l504.576-486.72c4.736-4.608 11.072-6.912 19.008-6.912s14.336 2.304 19.072 6.912l19.008 18.368c4.8 4.544 7.168 10.688 7.168 18.368 0 7.616-2.368 14.528-7.168 20.608l-466.496 447.744 466.496 447.744c4.8 6.080 7.168 12.992 7.168 20.608 0 7.68-2.368 13.824-7.168 18.368l-19.008 18.368z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"current\",\n d: \"M917.824 1017.088c-4.736 4.608-11.136 6.912-19.072 6.912s-14.272-2.304-19.008-6.912l-504.576-486.72c-4.8-4.608-7.168-10.688-7.168-18.368s2.368-13.76 7.168-18.368l504.576-486.72c4.736-4.608 11.072-6.912 19.008-6.912s14.336 2.304 19.072 6.912l19.008 18.368c4.8 4.544 7.168 10.688 7.168 18.368 0 7.616-2.368 14.528-7.168 20.608l-466.496 447.744 466.496 447.744c4.8 6.080 7.168 12.992 7.168 20.608 0 7.68-2.368 13.824-7.168 18.368l-19.008 18.368z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgDoublearrowleft);\nexport default __webpack_public_path__ + \"static/media/doublearrowleft.cfdf31db.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgDoublearrowright(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 1024 1024\",\n className: \"icon icon-mon-last\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n role: \"img\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"current\",\n d: \"M394.176 6.912c4.736-4.608 11.136-6.912 19.072-6.912s14.272 2.304 19.008 6.912l504.576 486.72c4.8 4.608 7.168 10.688 7.168 18.368s-2.368 13.76-7.168 18.368l-504.576 486.72c-4.736 4.608-11.072 6.912-19.008 6.912s-14.336-2.304-19.072-6.912l-19.008-18.368c-4.8-4.544-7.168-10.688-7.168-18.368 0-7.616 2.368-14.528 7.168-20.608l466.496-447.744-466.496-447.744c-4.8-6.080-7.168-12.992-7.168-20.608 0-7.68 2.368-13.824 7.168-18.368l19.008-18.368z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"current\",\n d: \"M106.176 6.912c4.736-4.608 11.136-6.912 19.072-6.912s14.272 2.304 19.008 6.912l504.576 486.72c4.8 4.608 7.168 10.688 7.168 18.368s-2.368 13.76-7.168 18.368l-504.576 486.72c-4.736 4.608-11.072 6.912-19.008 6.912s-14.336-2.304-19.072-6.912l-19.008-18.368c-4.8-4.544-7.168-10.688-7.168-18.368 0-7.616 2.368-14.528 7.168-20.608l466.496-447.744-466.496-447.744c-4.8-6.080-7.168-12.992-7.168-20.608 0-7.68 2.368-13.824 7.168-18.368l19.008-18.368z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgDoublearrowright);\nexport default __webpack_public_path__ + \"static/media/doublearrowright.3aa61bef.svg\";\nexport { ForwardRef as ReactComponent };","var _defs, _g;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgCalendarstart(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 90.04 81\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-calendarstart-1{fill:current;}\"))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_2\",\n \"data-name\": \"Layer 2\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_1-2\",\n \"data-name\": \"Layer 1\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-calendarstart-1\",\n d: \"M67,9H56.5V2a2,2,0,0,0-2-2h-2a2,2,0,0,0-2,2V9h-29V2a2,2,0,0,0-2-2h-2a2,2,0,0,0-2,2V9H5a5,5,0,0,0-5,5V76a5,5,0,0,0,5,5H67a5,5,0,0,0,5-5V14A5,5,0,0,0,67,9ZM66,75H6V27H66\"\n }), /*#__PURE__*/React.createElement(\"line\", {\n className: \"cls-calendarstart-1\",\n x1: 87.04,\n y1: 51.11,\n x2: 49.52,\n y2: 51.11\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-calendarstart-1\",\n d: \"M79.66,41.52,89.27,49a2,2,0,0,1,0,3.17l-9.6,7.36A2,2,0,0,1,76.43,58V43.09A2,2,0,0,1,79.66,41.52Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-calendarstart-1\",\n d: \"M56.5,48h23a0,0,0,0,1,0,0v6a0,0,0,0,1,0,0h-23a2,2,0,0,1-2-2V50A2,2,0,0,1,56.5,48Z\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCalendarstart);\nexport default __webpack_public_path__ + \"static/media/calendarstart.fb4fccd8.svg\";\nexport { ForwardRef as ReactComponent };","var _defs, _g;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgCalendarend(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 82.5 81\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-calendarend-1{fill:current;}\"))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_2\",\n \"data-name\": \"Layer 2\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_1-2\",\n \"data-name\": \"Layer 1\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-calendarend-1\",\n d: \"M77.5,9H67V2a2,2,0,0,0-2-2H63a2,2,0,0,0-2,2V9H32V2a2,2,0,0,0-2-2H28a2,2,0,0,0-2,2V9H15.5a5,5,0,0,0-5,5V76a5,5,0,0,0,5,5h62a5,5,0,0,0,5-5V14A5,5,0,0,0,77.5,9Zm-61,66V27h60V75Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-calendarend-1\",\n d: \"M24.16,41.52,33.77,49a2,2,0,0,1,0,3.17l-9.6,7.36A2,2,0,0,1,20.93,58V43.09A2,2,0,0,1,24.16,41.52Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-calendarend-1\",\n d: \"M2,54H24l1-6H2a2,2,0,0,0-2,2v2A2,2,0,0,0,2,54Z\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCalendarend);\nexport default __webpack_public_path__ + \"static/media/calendarend.b92bff75.svg\";\nexport { ForwardRef as ReactComponent };","var _defs, _g;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgSave(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 77 82\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-save-1{fill:current;}\"))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_2\",\n \"data-name\": \"Layer 2\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_1-2\",\n \"data-name\": \"Layer 1\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-save-1\",\n d: \"M75,13.78,63.66,2.12a7,7,0,0,0-5-2.12H7A7,7,0,0,0,0,7V75a7,7,0,0,0,7,7H70a7,7,0,0,0,7-7V18.66A7,7,0,0,0,75,13.78ZM28.5,6h20v7.5a1,1,0,0,1-1,1h-18a1,1,0,0,1-1-1ZM56,76H21V45.91a1,1,0,0,1,1-1H55a1,1,0,0,1,1,1Zm15-1a1,1,0,0,1-1,1H62V45.91a7,7,0,0,0-7-7H22a7,7,0,0,0-7,7V76H7a1,1,0,0,1-1-1V7A1,1,0,0,1,7,6H22.5v7.5a7,7,0,0,0,7,7h18a7,7,0,0,0,7-7V6h4.15a1,1,0,0,1,.71.3L70.72,18a1,1,0,0,1,.28.69Z\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgSave);\nexport default __webpack_public_path__ + \"static/media/save.559739c5.svg\";\nexport { ForwardRef as ReactComponent };","var _defs, _g;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgReset(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 80.83 81\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-reset-1{fill:current;}\"))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_2\",\n \"data-name\": \"Layer 2\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_1-2\",\n \"data-name\": \"Layer 1\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-reset-1\",\n d: \"M80.73,37.59A40.46,40.46,0,0,0,15,8.94l-5-6A2.82,2.82,0,0,0,5.09,4.07L1.28,20.72a2.82,2.82,0,0,0,2.83,3.45l17.18-.52A2.82,2.82,0,0,0,23.37,19l-4.54-5.48A34.48,34.48,0,1,1,6,43.78,2,2,0,0,0,4,42H2a2,2,0,0,0-2,2.19,40.5,40.5,0,0,0,80.72-6.6Z\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgReset);\nexport default __webpack_public_path__ + \"static/media/reset.852cbcc9.svg\";\nexport { ForwardRef as ReactComponent };","var _defs, _g;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgPlus(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 82 82\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-plus-1{fill:current;}\"))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_2\",\n \"data-name\": \"Layer 2\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_1-2\",\n \"data-name\": \"Layer 1\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-plus-1\",\n d: \"M75.5,82H6.5A6.51,6.51,0,0,1,0,75.5V6.5A6.51,6.51,0,0,1,6.5,0h69A6.51,6.51,0,0,1,82,6.5v69A6.51,6.51,0,0,1,75.5,82ZM6.5,5A1.5,1.5,0,0,0,5,6.5v69A1.5,1.5,0,0,0,6.5,77h69A1.5,1.5,0,0,0,77,75.5V6.5A1.5,1.5,0,0,0,75.5,5Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-plus-1\",\n d: \"M64.5,38.5h-21v-21a2,2,0,0,0-2-2h-1a2,2,0,0,0-2,2v21h-21a2,2,0,0,0-2,2v1a2,2,0,0,0,2,2h21v21a2,2,0,0,0,2,2h1a2,2,0,0,0,2-2v-21h21a2,2,0,0,0,2-2v-1A2,2,0,0,0,64.5,38.5Z\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgPlus);\nexport default __webpack_public_path__ + \"static/media/plus.ad61a618.svg\";\nexport { ForwardRef as ReactComponent };","var _defs, _g;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgMinus(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 82 82\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-minus-1{fill:current;}\"))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_2\",\n \"data-name\": \"Layer 2\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_1-2\",\n \"data-name\": \"Layer 1\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-minus-1\",\n d: \"M75.5,82H6.5A6.51,6.51,0,0,1,0,75.5V6.5A6.51,6.51,0,0,1,6.5,0h69A6.51,6.51,0,0,1,82,6.5v69A6.51,6.51,0,0,1,75.5,82ZM6.5,5A1.5,1.5,0,0,0,5,6.5v69A1.5,1.5,0,0,0,6.5,77h69A1.5,1.5,0,0,0,77,75.5V6.5A1.5,1.5,0,0,0,75.5,5Z\"\n }), /*#__PURE__*/React.createElement(\"rect\", {\n className: \"cls-minus-1\",\n x: 15.5,\n y: 38.5,\n width: 51,\n height: 5,\n rx: 2\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgMinus);\nexport default __webpack_public_path__ + \"static/media/minus.8a2cc114.svg\";\nexport { ForwardRef as ReactComponent };","var _defs, _g;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgHistory(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 80.83 81\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-history-1{fill:current;}\"))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_2\",\n \"data-name\": \"Layer 2\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_1-2\",\n \"data-name\": \"Layer 1\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-history-1\",\n d: \"M80.73,37.59A40.46,40.46,0,0,0,15,8.94l-5-6A2.82,2.82,0,0,0,5.09,4.07L1.28,20.72a2.82,2.82,0,0,0,2.83,3.45l17.18-.52A2.82,2.82,0,0,0,23.37,19l-4.54-5.48A34.48,34.48,0,1,1,6,43.78,2,2,0,0,0,4,42H2a2,2,0,0,0-2,2.19,40.5,40.5,0,0,0,80.72-6.6Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M43.42,37.84V23a2,2,0,0,0-2-2h-1a2,2,0,0,0-2,2V40.75a2,2,0,0,0,1.11,1.8l16,7.84a2,2,0,0,0,2.68-.94l.42-.88a2,2,0,0,0-1-2.67L44.55,39.65A2,2,0,0,1,43.42,37.84Z\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgHistory);\nexport default __webpack_public_path__ + \"static/media/history.5ab9d2d8.svg\";\nexport { ForwardRef as ReactComponent };","var _defs, _g;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgRefresh(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 100.7 81.33\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-refresh-1{fill:current;}\"))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_2\",\n \"data-name\": \"Layer 2\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_1-2\",\n \"data-name\": \"Layer 1\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-history-1\",\n d: \"M100.49,50.6q-3.19-7.92-6.4-15.83a2.81,2.81,0,0,0-4.29-1.21L76,43.8a2.82,2.82,0,0,0,.93,5l6.86,1.9A34.28,34.28,0,0,1,68.55,70.42a34.64,34.64,0,0,1-45.48-9v0a1.73,1.73,0,0,0-2.41-.37l-1.83,1.35a2,2,0,0,0-.43,2.79c.28.38.57.76.88,1.14a40.66,40.66,0,0,0,52.61,9.06A40.21,40.21,0,0,0,89.56,52.28l7.56,2.1A2.82,2.82,0,0,0,100.49,50.6Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-history-1\",\n d: \"M.21,30.73q3.2,7.92,6.4,15.83a2.82,2.82,0,0,0,4.3,1.21L24.7,37.53a2.81,2.81,0,0,0-.93-5l-6.86-1.9A34.47,34.47,0,0,1,77.64,19.86v0a1.72,1.72,0,0,0,2.4.37l1.84-1.35a2,2,0,0,0,.43-2.79L81.44,15a40.46,40.46,0,0,0-70.3,14.08L3.58,27A2.82,2.82,0,0,0,.21,30.73Z\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgRefresh);\nexport default __webpack_public_path__ + \"static/media/refresh.9b2194d1.svg\";\nexport { ForwardRef as ReactComponent };","var _defs, _g;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgLocation(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 66.25 80.52\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-1{fill:#4d9fce;}\"))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_2\",\n \"data-name\": \"Layer 2\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_1-2\",\n \"data-name\": \"Layer 1\"\n }, /*#__PURE__*/React.createElement(\"circle\", {\n className: \"cls-1\",\n cx: 33.13,\n cy: 25.5,\n r: 8\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-1\",\n d: \"M66.09,68c-1.21-5-9.44-6.72-13.68-7.3a2,2,0,1,0-.52,4C56.8,65.35,61.73,67,62.2,69a2.74,2.74,0,0,1,0,1c-.28,1.15-2.41,2.49-5.69,3.58-5.87,2-13.42,2.93-22.43,2.91h0c-.33,0-.63,0-.95,0s-.63,0-1,0h0c-9,0-16.57-1-22.44-2.91C6.47,72.51,4.34,71.17,4.05,70a2.74,2.74,0,0,1,0-1c.48-2,5.41-3.62,10.32-4.27a2,2,0,1,0-.53-4C9.6,61.31,1.37,63,.17,68a6.59,6.59,0,0,0,0,3c.67,2.67,3.39,4.77,8.31,6.41,6.22,2.07,14.1,3.12,23.44,3.12h2.41c9.34,0,17.22-1,23.45-3.12,4.92-1.64,7.64-3.74,8.3-6.41A6.53,6.53,0,0,0,66.09,68Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-1\",\n d: \"M7.73,25.5c.12,1,.26,2,.44,3,.65,3.53,2.12,9.23,7.32,17.83a103.66,103.66,0,0,0,15.88,20l1.89,1.88,1.75-2A182.65,182.65,0,0,0,50.73,45.35c3-4.6,6-9.7,7.35-16.88.19-1,.33-2,.44-3a5.33,5.33,0,0,0,.09-.7.13.13,0,0,1,0-.06h0a25.49,25.49,0,0,0-51,0h0v0A5.31,5.31,0,0,0,7.73,25.5ZM33.13,5A20.52,20.52,0,0,1,53.59,24.7c-.11.94-.24,1.89-.42,2.83-1.2,6.31-3.94,10.92-6.65,15.12A177.59,177.59,0,0,1,33,60.81a97.68,97.68,0,0,1-13.23-17.1c-4.77-7.91-6.1-13-6.69-16.17-.17-.94-.31-1.9-.41-2.85A20.51,20.51,0,0,1,33.13,5Z\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLocation);\nexport default __webpack_public_path__ + \"static/media/location.0e17baea.svg\";\nexport { ForwardRef as ReactComponent };","var _defs, _g;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgApplication(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 88.19 81.5\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-1{fill:#4d9fce;}\"))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_2\",\n \"data-name\": \"Layer 2\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_1-2\",\n \"data-name\": \"Layer 1\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-1\",\n d: \"M81.69,0H6.5A6.51,6.51,0,0,0,0,6.5V75a6.51,6.51,0,0,0,6.5,6.5H81.69a6.51,6.51,0,0,0,6.5-6.5V6.5A6.51,6.51,0,0,0,81.69,0ZM29.21,5.25a3.5,3.5,0,1,1-3.5,3.5A3.5,3.5,0,0,1,29.21,5.25Zm-10.56,0a3.5,3.5,0,1,1-3.5,3.5A3.5,3.5,0,0,1,18.65,5.25ZM8.1,5.25a3.5,3.5,0,1,1-3.5,3.5A3.5,3.5,0,0,1,8.1,5.25ZM83.19,75a1.5,1.5,0,0,1-1.5,1.5H6.5A1.5,1.5,0,0,1,5,75V16.25H83.19Z\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgApplication);\nexport default __webpack_public_path__ + \"static/media/application.cddb4e37.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgInfo(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 1024 1024\",\n className: \"icon icon-mon-info\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n role: \"img\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"current\",\n d: \"M512 66.112c-81.216 0-155.84 19.904-224 59.84s-122.176 93.952-162.048 162.048c-39.936 68.16-59.904 142.848-59.904 224 0 81.216 19.968 155.904 59.904 224 39.872 68.16 93.888 122.176 162.048 162.112 68.16 39.872 142.784 59.84 224 59.84s155.84-19.968 224-59.84c68.16-39.936 122.176-93.952 162.048-162.112 39.936-68.096 59.904-142.784 59.904-224 0-81.152-19.968-155.84-59.904-224-39.872-68.096-94.272-122.112-163.072-162.048s-143.168-59.84-222.976-59.84zM512 0c92.224 0 177.536 23.104 256 69.184s140.736 108.416 186.816 186.816c46.144 78.464 69.184 163.776 69.184 256s-23.040 177.6-69.184 256c-46.080 78.464-108.352 140.736-186.816 186.88-78.464 46.080-163.776 69.12-256 69.12s-177.536-23.040-256-69.12c-78.464-46.144-140.736-108.416-186.816-186.88-46.144-78.4-69.184-163.776-69.184-256s23.040-177.536 69.184-256c46.080-78.4 108.352-140.736 186.816-186.816s163.776-69.184 256-69.184zM462.464 710.208v-247.744h-24.768c-6.912 0-12.736-2.368-17.536-7.232-4.864-4.8-7.232-10.624-7.232-17.536v-16.512c0-6.912 2.368-12.736 7.232-17.536 4.8-4.8 10.624-7.232 17.536-7.232h99.072c6.912 0 12.736 2.432 17.536 7.232 4.864 4.8 7.232 10.624 7.232 17.536v289.024h24.768c6.912 0 12.736 2.432 17.536 7.232 4.864 4.8 7.232 10.688 7.232 17.536v16.512c0 6.912-2.368 12.736-7.232 17.536-4.8 4.864-10.624 7.232-17.536 7.232h-148.608c-6.912 0-12.736-2.368-17.536-7.232-4.864-4.8-7.232-10.624-7.232-17.536v-16.512c0-6.848 2.368-12.736 7.232-17.536 4.8-4.8 10.624-7.232 17.536-7.232h24.768zM512 214.72c17.92 0 33.408 6.528 46.464 19.648 13.056 13.056 19.584 28.544 19.584 46.4 0 17.92-6.528 33.408-19.584 46.464-13.056 13.12-28.544 19.648-46.464 19.648s-33.408-6.528-46.464-19.648c-13.056-13.056-19.584-28.544-19.584-46.464 0-17.856 6.528-33.344 19.584-46.4 13.056-13.12 28.544-19.648 46.464-19.648z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgInfo);\nexport default __webpack_public_path__ + \"static/media/info.bc392865.svg\";\nexport { ForwardRef as ReactComponent };","var _defs, _g;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgDispute(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 86 69.52\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-dispute-1{fill:current;}\"))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_2\",\n \"data-name\": \"Layer 2\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_1-2\",\n \"data-name\": \"Layer 1\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-dispute-1\",\n d: \"M80,0H6A6,6,0,0,0,0,6V53a5.5,5.5,0,0,0,5.5,5.5H32l11,11,11-11H80.5A5.5,5.5,0,0,0,86,53V6A6,6,0,0,0,80,0ZM47.37,10.42l-.3,7.85L45.83,36.32H40.17l-1.24-18-.3-7.85ZM46.75,49.1a5.29,5.29,0,0,1-7.5,0,5.37,5.37,0,0,1-1.5-3.87,5.43,5.43,0,0,1,1.5-3.92,5.29,5.29,0,0,1,7.5,0,5.43,5.43,0,0,1,1.5,3.92A5.37,5.37,0,0,1,46.75,49.1Z\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgDispute);\nexport default __webpack_public_path__ + \"static/media/dispute.e7a71cc3.svg\";\nexport { ForwardRef as ReactComponent };","var _defs, _g;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgCheck(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 82 82\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-check-1{fill:current;}\"))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_2\",\n \"data-name\": \"Layer 2\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_1-2\",\n \"data-name\": \"Layer 1\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-check-1\",\n d: \"M75.5,82H6.5A6.51,6.51,0,0,1,0,75.5V6.5A6.51,6.51,0,0,1,6.5,0h69A6.51,6.51,0,0,1,82,6.5v69A6.51,6.51,0,0,1,75.5,82ZM6.5,5A1.5,1.5,0,0,0,5,6.5v69A1.5,1.5,0,0,0,6.5,77h69A1.5,1.5,0,0,0,77,75.5V6.5A1.5,1.5,0,0,0,75.5,5Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-check-1\",\n d: \"M40,59.34,22.41,40.84A2,2,0,0,1,22.49,38l.72-.69A2,2,0,0,1,26,37.4L40.17,52.29a1,1,0,0,0,1.55-.13L65.66,16.92a2,2,0,0,1,2.77-.54l.83.57a2,2,0,0,1,.53,2.77L43.07,59.08A2,2,0,0,1,40,59.34Z\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCheck);\nexport default __webpack_public_path__ + \"static/media/check.fe52d986.svg\";\nexport { ForwardRef as ReactComponent };","var _defs, _g;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgDelete(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 82.88 82.88\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-delete-1{fill:current;}\"))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_2\",\n \"data-name\": \"Layer 2\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_1-2\",\n \"data-name\": \"Layer 1\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-delete-1\",\n d: \"M82.29,1.29l-.7-.7a2,2,0,0,0-2.83,0L41.44,37.9,4.12.59a2,2,0,0,0-2.83,0l-.7.7a2,2,0,0,0,0,2.83L37.9,41.44.59,78.76a2,2,0,0,0,0,2.83l.7.7a2,2,0,0,0,2.83,0L41.44,45,78.76,82.29a2,2,0,0,0,2.83,0l.7-.7a2,2,0,0,0,0-2.83L45,41.44,82.29,4.12A2,2,0,0,0,82.29,1.29Z\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgDelete);\nexport default __webpack_public_path__ + \"static/media/delete.4df0fca7.svg\";\nexport { ForwardRef as ReactComponent };","var _defs, _g;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgMail(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 89 66\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-mail-1{fill:current;}\"))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_2\",\n \"data-name\": \"Layer 2\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_1-2\",\n \"data-name\": \"Layer 1\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-mail-1\",\n d: \"M83.5,0H5.5A5.51,5.51,0,0,0,0,5.5v55A5.51,5.51,0,0,0,5.5,66h78A5.51,5.51,0,0,0,89,60.5V5.5A5.51,5.51,0,0,0,83.5,0ZM30.79,30.29,5,57.7V7.64ZM9.57,5H79.43L45.49,34.8a1.49,1.49,0,0,1-2,0Zm25,28.59,5.66,5a6.52,6.52,0,0,0,8.58,0l5.66-5L80.19,61H8.76Zm23.66-3.3L84,7.64V57.75Z\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgMail);\nexport default __webpack_public_path__ + \"static/media/mail.d2a90e83.svg\";\nexport { ForwardRef as ReactComponent };","var _defs, _g;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgLocked(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 69 76.54\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-locked-1{fill:current;}\"))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_2\",\n \"data-name\": \"Layer 2\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_1-2\",\n \"data-name\": \"Layer 1\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-locked-1\",\n d: \"M63.5,24H56.9c-.45-6.69-.9-12.48-4.51-17-5-6.3-13.47-7.06-17.9-7C30.05-.07,21.58.69,16.61,7,13,11.56,12.55,17.35,12.1,24H5.5A5.51,5.51,0,0,0,0,29.54V71a5.51,5.51,0,0,0,5.5,5.5h58A5.51,5.51,0,0,0,69,71V29.54A5.51,5.51,0,0,0,63.5,24Zm-43-13.95c3.38-4.28,9.56-5,13-5.09V5c.25,0,.58,0,.94,0s.67,0,.92,0V5c3.48,0,9.66.8,13,5.08,2.61,3.3,3,8,3.42,14H17.11C17.51,18.11,17.92,13.39,20.53,10.09ZM64,71a.5.5,0,0,1-.5.5H5.5A.5.5,0,0,1,5,71V29.54a.5.5,0,0,1,.5-.5h58a.5.5,0,0,1,.5.5Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-locked-1\",\n d: \"M40.48,46A6,6,0,1,0,32,51.49V59a2,2,0,0,0,2,2h1a2,2,0,0,0,2-2V51.49A6,6,0,0,0,40.48,46Z\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLocked);\nexport default __webpack_public_path__ + \"static/media/locked.671179b2.svg\";\nexport { ForwardRef as ReactComponent };","var _defs, _g;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgUnlocked(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 69 83.54\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-unlocked-1{fill:current;}\"))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_2\",\n \"data-name\": \"Layer 2\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_1-2\",\n \"data-name\": \"Layer 1\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-unlocked-1\",\n d: \"M63.5,31H57a61.82,61.82,0,0,0-.08-6.67c-.47-6.83-.87-12.74-4.54-17.38-5-6.3-13.47-7.06-17.9-7C30.05-.07,21.58.69,16.61,7c-3.06,3.87-3.85,8.62-4.29,14.05h5c.39-4.53,1-8.23,3.19-10.95,3.38-4.28,9.56-5,13-5.09V5c.25,0,.58,0,.94,0s.67,0,.92,0V5c3.48,0,9.66.8,13,5.08,2.71,3.43,3,8.37,3.47,14.62A58.1,58.1,0,0,1,52,31H5.5A5.51,5.51,0,0,0,0,36.54V78a5.51,5.51,0,0,0,5.5,5.5h58A5.51,5.51,0,0,0,69,78V36.54A5.51,5.51,0,0,0,63.5,31ZM64,78a.5.5,0,0,1-.5.5H5.5A.5.5,0,0,1,5,78V36.54a.5.5,0,0,1,.5-.5h58a.5.5,0,0,1,.5.5Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-unlocked-1\",\n d: \"M40.48,53A6,6,0,1,0,32,58.49V66a2,2,0,0,0,2,2h1a2,2,0,0,0,2-2V58.49A6,6,0,0,0,40.48,53Z\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgUnlocked);\nexport default __webpack_public_path__ + \"static/media/unlocked.12e4c45e.svg\";\nexport { ForwardRef as ReactComponent };","var _defs, _g;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgUnchecked(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 82 82\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-unchecked-1{fill:current;}\"))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_2\",\n \"data-name\": \"Layer 2\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_1-2\",\n \"data-name\": \"Layer 1\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_2-2\",\n \"data-name\": \"Layer 2\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_1-2-2\",\n \"data-name\": \"Layer 1-2\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-unchecked-1\",\n d: \"M75.5,82H6.5A6.51,6.51,0,0,1,0,75.5V6.5A6.51,6.51,0,0,1,6.5,0h69A6.51,6.51,0,0,1,82,6.5v69A6.51,6.51,0,0,1,75.5,82ZM6.5,5A1.5,1.5,0,0,0,5,6.5v69A1.5,1.5,0,0,0,6.5,77h69A1.5,1.5,0,0,0,77,75.5V6.5A1.5,1.5,0,0,0,75.5,5Z\"\n })))))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgUnchecked);\nexport default __webpack_public_path__ + \"static/media/unchecked.981c7e02.svg\";\nexport { ForwardRef as ReactComponent };","var _defs, _g;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgEdit(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 82.99 83.72\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-edit-1{fill:current;}\"))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_2\",\n \"data-name\": \"Layer 2\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_1-2\",\n \"data-name\": \"Layer 1\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-edit-1\",\n d: \"M72.45,28.6A5.47,5.47,0,0,1,68.56,27L56,14.43a5.5,5.5,0,0,1,0-7.78l5-5a5.49,5.49,0,0,1,7.77,0L81.38,14.17a5.5,5.5,0,0,1,0,7.77l-5,5a5.47,5.47,0,0,1-3.89,1.62ZM64.93,5a.5.5,0,0,0-.35.15l-5,5a.5.5,0,0,0,0,.7L72.1,23.45a.44.44,0,0,0,.71,0l5-5a.5.5,0,0,0,0-.71L65.29,5.15A.5.5,0,0,0,64.93,5Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-edit-1\",\n d: \"M19.65,83.72H.29L.21,81.3c-.09-2.51-.14-5-.18-7.53,0-3.33,0-6.72,0-10.07l0-1L32.89,30c7.18-7.47,12.51-12.85,13.87-14.1h0a5.64,5.64,0,0,1,3.71-1.66A5.28,5.28,0,0,1,54.54,16L67.05,28.5a5.5,5.5,0,0,1,0,7.78Zm-14.52-5H17.57l46-46a.5.5,0,0,0,0-.7L50.84,19.35h0a.88.88,0,0,0-.25-.11,1.7,1.7,0,0,0-.43.33h0c-1.11,1-6.1,6-13.69,13.93L5,64.79c0,3,0,6,0,8.91C5.05,75.36,5.09,77,5.13,78.72Z\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgEdit);\nexport default __webpack_public_path__ + \"static/media/edit.e24e6f6e.svg\";\nexport { ForwardRef as ReactComponent };","var _defs, _g;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgPortal(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 89.41 82\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-portal-1{fill:current;}\"))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_2\",\n \"data-name\": \"Layer 2\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_1-2\",\n \"data-name\": \"Layer 1\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n className: \"cls-portal-1\",\n x: 12.2,\n y: 12.5,\n width: 36,\n height: 57,\n rx: 2\n }), /*#__PURE__*/React.createElement(\"rect\", {\n className: \"cls-portal-1\",\n x: 54.2,\n y: 12.5,\n width: 23,\n height: 32,\n rx: 2\n }), /*#__PURE__*/React.createElement(\"rect\", {\n className: \"cls-portal-1\",\n x: 54.2,\n y: 50.5,\n width: 23,\n height: 19,\n rx: 2\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-portal-1\",\n d: \"M82.91,0H6.5A6.5,6.5,0,0,0,0,6.5v69A6.5,6.5,0,0,0,6.5,82H82.91a6.5,6.5,0,0,0,6.5-6.5V6.5A6.5,6.5,0,0,0,82.91,0Zm-.5,73a2,2,0,0,1-2,2H9a2,2,0,0,1-2-2V9A2,2,0,0,1,9,7H80.41a2,2,0,0,1,2,2Z\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgPortal);\nexport default __webpack_public_path__ + \"static/media/portal.726d67ba.svg\";\nexport { ForwardRef as ReactComponent };","var _g, _g2, _g3, _g4, _g5, _g6, _g7, _g8, _g9, _g10;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgLoader(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n style: {\n margin: \"auto\",\n background: \"none\",\n display: \"block\",\n shapeRendering: \"auto\"\n },\n width: \"214px\",\n height: \"214px\",\n viewBox: \"0 0 100 100\",\n preserveAspectRatio: \"xMidYMid\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(85,50)\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"rotate(0)\"\n }, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 0,\n cy: 0,\n r: 5,\n fill: \"#333333\",\n fillOpacity: 1\n }, /*#__PURE__*/React.createElement(\"animateTransform\", {\n attributeName: \"transform\",\n type: \"scale\",\n begin: \"-1.4285714285714286s\",\n values: \"1.87 1.87;1 1\",\n keyTimes: \"0;1\",\n dur: \"1.5873015873015872s\",\n repeatCount: \"indefinite\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"fill-opacity\",\n keyTimes: \"0;1\",\n dur: \"1.5873015873015872s\",\n repeatCount: \"indefinite\",\n values: \"1;0\",\n begin: \"-1.4285714285714286s\"\n }))))), _g2 || (_g2 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(78.31559480312316,70.57248383023656)\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"rotate(36)\"\n }, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 0,\n cy: 0,\n r: 5,\n fill: \"#333333\",\n fillOpacity: 0.9\n }, /*#__PURE__*/React.createElement(\"animateTransform\", {\n attributeName: \"transform\",\n type: \"scale\",\n begin: \"-1.2698412698412698s\",\n values: \"1.87 1.87;1 1\",\n keyTimes: \"0;1\",\n dur: \"1.5873015873015872s\",\n repeatCount: \"indefinite\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"fill-opacity\",\n keyTimes: \"0;1\",\n dur: \"1.5873015873015872s\",\n repeatCount: \"indefinite\",\n values: \"1;0\",\n begin: \"-1.2698412698412698s\"\n }))))), _g3 || (_g3 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(60.81559480312316,83.28697807033038)\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"rotate(72)\"\n }, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 0,\n cy: 0,\n r: 5,\n fill: \"#333333\",\n fillOpacity: 0.8\n }, /*#__PURE__*/React.createElement(\"animateTransform\", {\n attributeName: \"transform\",\n type: \"scale\",\n begin: \"-1.1111111111111112s\",\n values: \"1.87 1.87;1 1\",\n keyTimes: \"0;1\",\n dur: \"1.5873015873015872s\",\n repeatCount: \"indefinite\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"fill-opacity\",\n keyTimes: \"0;1\",\n dur: \"1.5873015873015872s\",\n repeatCount: \"indefinite\",\n values: \"1;0\",\n begin: \"-1.1111111111111112s\"\n }))))), _g4 || (_g4 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(39.184405196876845,83.28697807033038)\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"rotate(108)\"\n }, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 0,\n cy: 0,\n r: 5,\n fill: \"#333333\",\n fillOpacity: 0.7\n }, /*#__PURE__*/React.createElement(\"animateTransform\", {\n attributeName: \"transform\",\n type: \"scale\",\n begin: \"-0.9523809523809524s\",\n values: \"1.87 1.87;1 1\",\n keyTimes: \"0;1\",\n dur: \"1.5873015873015872s\",\n repeatCount: \"indefinite\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"fill-opacity\",\n keyTimes: \"0;1\",\n dur: \"1.5873015873015872s\",\n repeatCount: \"indefinite\",\n values: \"1;0\",\n begin: \"-0.9523809523809524s\"\n }))))), _g5 || (_g5 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(21.684405196876842,70.57248383023656)\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"rotate(144)\"\n }, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 0,\n cy: 0,\n r: 5,\n fill: \"#333333\",\n fillOpacity: 0.6\n }, /*#__PURE__*/React.createElement(\"animateTransform\", {\n attributeName: \"transform\",\n type: \"scale\",\n begin: \"-0.7936507936507937s\",\n values: \"1.87 1.87;1 1\",\n keyTimes: \"0;1\",\n dur: \"1.5873015873015872s\",\n repeatCount: \"indefinite\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"fill-opacity\",\n keyTimes: \"0;1\",\n dur: \"1.5873015873015872s\",\n repeatCount: \"indefinite\",\n values: \"1;0\",\n begin: \"-0.7936507936507937s\"\n }))))), _g6 || (_g6 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(15,50.00000000000001)\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"rotate(180)\"\n }, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 0,\n cy: 0,\n r: 5,\n fill: \"#333333\",\n fillOpacity: 0.5\n }, /*#__PURE__*/React.createElement(\"animateTransform\", {\n attributeName: \"transform\",\n type: \"scale\",\n begin: \"-0.6349206349206349s\",\n values: \"1.87 1.87;1 1\",\n keyTimes: \"0;1\",\n dur: \"1.5873015873015872s\",\n repeatCount: \"indefinite\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"fill-opacity\",\n keyTimes: \"0;1\",\n dur: \"1.5873015873015872s\",\n repeatCount: \"indefinite\",\n values: \"1;0\",\n begin: \"-0.6349206349206349s\"\n }))))), _g7 || (_g7 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(21.68440519687684,29.427516169763443)\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"rotate(216)\"\n }, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 0,\n cy: 0,\n r: 5,\n fill: \"#333333\",\n fillOpacity: 0.4\n }, /*#__PURE__*/React.createElement(\"animateTransform\", {\n attributeName: \"transform\",\n type: \"scale\",\n begin: \"-0.4761904761904762s\",\n values: \"1.87 1.87;1 1\",\n keyTimes: \"0;1\",\n dur: \"1.5873015873015872s\",\n repeatCount: \"indefinite\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"fill-opacity\",\n keyTimes: \"0;1\",\n dur: \"1.5873015873015872s\",\n repeatCount: \"indefinite\",\n values: \"1;0\",\n begin: \"-0.4761904761904762s\"\n }))))), _g8 || (_g8 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(39.18440519687684,16.71302192966963)\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"rotate(252)\"\n }, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 0,\n cy: 0,\n r: 5,\n fill: \"#333333\",\n fillOpacity: 0.3\n }, /*#__PURE__*/React.createElement(\"animateTransform\", {\n attributeName: \"transform\",\n type: \"scale\",\n begin: \"-0.31746031746031744s\",\n values: \"1.87 1.87;1 1\",\n keyTimes: \"0;1\",\n dur: \"1.5873015873015872s\",\n repeatCount: \"indefinite\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"fill-opacity\",\n keyTimes: \"0;1\",\n dur: \"1.5873015873015872s\",\n repeatCount: \"indefinite\",\n values: \"1;0\",\n begin: \"-0.31746031746031744s\"\n }))))), _g9 || (_g9 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(60.815594803123155,16.713021929669623)\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"rotate(288)\"\n }, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 0,\n cy: 0,\n r: 5,\n fill: \"#333333\",\n fillOpacity: 0.2\n }, /*#__PURE__*/React.createElement(\"animateTransform\", {\n attributeName: \"transform\",\n type: \"scale\",\n begin: \"-0.15873015873015872s\",\n values: \"1.87 1.87;1 1\",\n keyTimes: \"0;1\",\n dur: \"1.5873015873015872s\",\n repeatCount: \"indefinite\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"fill-opacity\",\n keyTimes: \"0;1\",\n dur: \"1.5873015873015872s\",\n repeatCount: \"indefinite\",\n values: \"1;0\",\n begin: \"-0.15873015873015872s\"\n }))))), _g10 || (_g10 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(78.31559480312316,29.427516169763432)\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"rotate(324)\"\n }, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 0,\n cy: 0,\n r: 5,\n fill: \"#333333\",\n fillOpacity: 0.1\n }, /*#__PURE__*/React.createElement(\"animateTransform\", {\n attributeName: \"transform\",\n type: \"scale\",\n begin: \"0s\",\n values: \"1.87 1.87;1 1\",\n keyTimes: \"0;1\",\n dur: \"1.5873015873015872s\",\n repeatCount: \"indefinite\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"fill-opacity\",\n keyTimes: \"0;1\",\n dur: \"1.5873015873015872s\",\n repeatCount: \"indefinite\",\n values: \"1;0\",\n begin: \"0s\"\n }))))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLoader);\nexport default __webpack_public_path__ + \"static/media/loader.b7e79223.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgSearch(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 1024 1024\",\n className: \"icon icon-mon-search icon-search\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n role: \"img\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"current\",\n d: \"M1017.984 963.968c3.968 4.032 6.016 9.344 6.016 16 0 6.72-2.048 12.672-6.016 18.048l-20.032 17.984c-5.312 5.312-11.328 8-17.984 8s-11.968-2.688-16-8l-257.984-257.984c-5.312-4.032-8-9.344-8-16v-20.032c-37.312 34.688-80.32 61.696-129.024 81.024-48.64 19.328-99.648 28.992-152.96 28.992-76.032 0-145.664-18.688-209.024-56s-113.664-87.68-150.976-150.976c-37.376-63.36-56-132.992-56-209.024 0-75.968 18.624-145.664 56-209.024 37.312-63.296 87.616-113.664 150.976-150.976s132.992-56 209.024-56c75.968 0 145.664 18.688 208.96 56 63.36 37.312 113.664 87.68 151.040 150.976 37.312 63.36 56 133.056 56 209.024 0 53.312-9.664 104.32-28.992 153.024-19.392 48.64-46.336 91.648-81.024 128.96h19.968c6.72 0 12.672 2.688 18.048 8l257.984 257.984zM416 768c64 0 123.008-15.68 176.96-46.976 54.016-31.36 96.704-74.048 128-128 31.36-54.016 47.040-113.024 47.040-177.024s-15.68-123.008-47.040-177.024c-31.296-53.952-73.984-96.64-128-128-53.952-31.296-112.96-46.976-176.96-46.976s-123.008 15.68-177.024 46.976c-54.016 31.36-96.64 74.048-128 128-31.36 54.016-46.976 113.024-46.976 177.024s15.616 123.008 46.976 177.024c31.36 53.952 73.984 96.64 128 128 54.016 31.296 113.024 46.976 177.024 46.976z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgSearch);\nexport default __webpack_public_path__ + \"static/media/search.b3eb4607.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgLock(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 1024 1024\",\n className: \"icon icon-mon-lock\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n role: \"img\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"current\",\n d: \"M512 840c-22.016 0-40-17.984-40-40v-128c0-22.016 17.984-40 40-40s40 17.984 40 40v128c0 22.016-17.984 40-40 40zM959.999 544.001v383.999c0 52.992-43.008 96-96 96h-703.999c-52.992 0-96-43.008-96-96v-383.999c0-52.992 43.008-96 96-96h32v-128c0-176.768 144-320.575 321.023-319.999 176.768 0.576 318.975 146.176 318.975 323.007v124.992h32c52.992 0 96 43.008 96 96zM256 448.001h511.999v-128c0-141.184-114.816-256-256-256s-256 114.816-256 256v128zM895.999 928v-383.999c0-17.6-14.4-32-32-32h-703.999c-17.6 0-32 14.4-32 32v383.999c0 17.6 14.4 32 32 32h703.999c17.6 0 32-14.4 32-32z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLock);\nexport default __webpack_public_path__ + \"static/media/lock.ff75000f.svg\";\nexport { ForwardRef as ReactComponent };","var _defs, _g;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgBlock(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 82 82\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-block-1{fill:current;}\"))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_2\",\n \"data-name\": \"Layer 2\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_1-2\",\n \"data-name\": \"Layer 1\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n className: \"cls-current-1\",\n width: 82,\n height: 82,\n rx: 6.5\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgBlock);\nexport default __webpack_public_path__ + \"static/media/block.9a4d2ba6.svg\";\nexport { ForwardRef as ReactComponent };","var _defs, _g;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgUnassigned(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 82 82\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-unassigned-1{fill:current;}\"))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_2\",\n \"data-name\": \"Layer 2\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_1-2\",\n \"data-name\": \"Layer 1\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-unassigned-1\",\n d: \"M75.5,82H6.5A6.51,6.51,0,0,1,0,75.5V6.5A6.51,6.51,0,0,1,6.5,0h69A6.51,6.51,0,0,1,82,6.5v69A6.51,6.51,0,0,1,75.5,82ZM6.5,5A1.5,1.5,0,0,0,5,6.5v69A1.5,1.5,0,0,0,6.5,77h69A1.5,1.5,0,0,0,77,75.5V6.5A1.5,1.5,0,0,0,75.5,5Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-unassigned-1\",\n d: \"M37.36,51.51a12.91,12.91,0,0,1,.19-5.41,18.85,18.85,0,0,1,1.8-4.45A24.5,24.5,0,0,1,42,37.86c1-1.18,1.93-2.34,2.8-3.49A23.59,23.59,0,0,0,47,30.88,8.46,8.46,0,0,0,47.86,27,7.76,7.76,0,0,0,46,21.79a6.91,6.91,0,0,0-5.56-2.18,10.19,10.19,0,0,0-4.79,1.18,13.56,13.56,0,0,0-4,3.26L28,20.76a21.7,21.7,0,0,1,5.72-4.57,15.18,15.18,0,0,1,7.47-1.8,13.12,13.12,0,0,1,9.32,3.26q3.48,3.26,3.49,9a11.25,11.25,0,0,1-.92,4.6,21.72,21.72,0,0,1-2.26,3.91C49.92,36.4,49,37.61,48,38.82a41.92,41.92,0,0,0-2.76,3.71,16.17,16.17,0,0,0-2,4.11,11.56,11.56,0,0,0-.38,4.87Zm2.91,16.1a4.32,4.32,0,0,1-3.22-1.34,4.7,4.7,0,0,1-1.3-3.42,4.88,4.88,0,0,1,1.3-3.56A4.32,4.32,0,0,1,40.27,58a4.44,4.44,0,0,1,3.26,1.34,4.82,4.82,0,0,1,1.34,3.56,4.65,4.65,0,0,1-1.34,3.42A4.44,4.44,0,0,1,40.27,67.61Z\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgUnassigned);\nexport default __webpack_public_path__ + \"static/media/unassigned.1412099c.svg\";\nexport { ForwardRef as ReactComponent };","import IconComponent from \"components/common/Icon\";\nimport { Icon } from \"model/Icon\";\nimport React from \"react\";\nimport styled, { css } from \"styled-components\";\nimport {\n $blue4,\n Text,\n Button,\n $statusFail,\n $statusProblematic,\n} from \"styles/common\";\n\nexport enum ModalType {\n NoAccess = 0,\n DataLoadFailed = 1,\n Action = 2,\n Message = 3,\n}\n\nexport enum ModalColorType {\n NoAccess = 0,\n Message = 1,\n Warning = 2,\n Error = 3,\n}\n\ninterface Props {\n className?: string;\n type?: ModalType;\n colorType?: ModalColorType;\n customText?: string;\n customButtonText?: string;\n fixed?: boolean;\n background?: boolean;\n action?(): void;\n cancel?(): void;\n}\n\nconst Background = styled.div<{ show: boolean; fixed: boolean }>`\n ${(props) =>\n props.show\n ? css`\n content: \"\";\n position: ${props.fixed ? \"fixed\" : \"absolute\"};\n left: 0;\n right: 0;\n bottom: 0;\n top: 0;\n background: hsla(0, 0%, 100%, 0.5);\n z-index: 101;\n `\n : css``}\n`;\n\nconst Container = styled.div<{ color: string }>`\n position: absolute;\n left: 50%;\n top: 50%;\n text-align: center;\n width: auto;\n max-width: 30rem;\n min-width: 230px;\n padding: 1rem 3rem;\n margin-bottom: 1rem;\n border: 1px solid #cbd7df;\n border-left: 0.375rem solid #6c757d;\n border-left-color: ${(props) => props.color};\n background-color: #fff;\n border-radius: 0.25rem;\n transform: translate(-50%, -50%);\n box-sizing: border-box;\n z-index: 101;\n transition: opacity 0.15s linear;\n`;\n\nconst ModalText = styled(Text)<{ actions?: boolean }>`\n padding: 0 1rem;\n\n ${(props) =>\n props.actions &&\n css`\n margin-bottom: 1rem;\n `}\n`;\n\nexport const Modal = ({\n className = \"\",\n type = ModalType.Message,\n colorType = ModalColorType.Message,\n customText = \"\",\n customButtonText = \"\",\n fixed = false,\n background = false,\n action,\n cancel,\n}: Props) => {\n const color =\n colorType === ModalColorType.Error || colorType === ModalColorType.NoAccess\n ? $statusFail\n : colorType === ModalColorType.Warning\n ? $statusProblematic\n : $blue4;\n\n return (\n \n \n \n \n {type === ModalType.DataLoadFailed\n ? \"Failed to load data\"\n : type === ModalType.NoAccess\n ? \"You do not have access to this content\"\n : customText}\n \n {type !== ModalType.NoAccess && type === ModalType.Action && !!cancel && (\n \n Cancel\n \n )}\n {type !== ModalType.NoAccess &&\n type === ModalType.Message &&\n !!action ? (\n \n ) : (\n type !== ModalType.NoAccess &&\n type !== ModalType.Message &&\n !!action && (\n \n )\n )}\n \n \n );\n};\n\nexport const NoAccessModal = () => (\n \n);\n","import { ReactComponent as Doublearrow } from \"./doublearrow.svg\";\nimport { ReactComponent as Arrowdown } from \"./arrowdown.svg\";\nimport { ReactComponent as Bell } from \"./bell.svg\";\nimport { ReactComponent as Cart } from \"./cart.svg\";\nimport { ReactComponent as User } from \"./user.svg\";\nimport { ReactComponent as Gear } from \"./gear.svg\";\nimport { ReactComponent as Cross } from \"./cross.svg\";\nimport { ReactComponent as Circle } from \"./circle.svg\";\nimport { ReactComponent as Group } from \"./group.svg\";\nimport { ReactComponent as List } from \"./list.svg\";\nimport { ReactComponent as ArrowLeft } from \"./arrowleft.svg\";\nimport { ReactComponent as ArrowRight } from \"./arrowright.svg\";\nimport { ReactComponent as DoubleArrowLeft } from \"./doublearrowleft.svg\";\nimport { ReactComponent as DoubleArrowRight } from \"./doublearrowright.svg\";\nimport { ReactComponent as CalendarStart } from \"./calendarstart.svg\";\nimport { ReactComponent as CalendarEnd } from \"./calendarend.svg\";\nimport { ReactComponent as Save } from \"./save.svg\";\nimport { ReactComponent as Reset } from \"./reset.svg\";\nimport { ReactComponent as Plus } from \"./plus.svg\";\nimport { ReactComponent as Minus } from \"./minus.svg\";\nimport { ReactComponent as History } from \"./history.svg\";\nimport { ReactComponent as Refresh } from \"./refresh.svg\";\nimport { ReactComponent as Location } from \"./location.svg\";\nimport { ReactComponent as Application } from \"./application.svg\";\nimport { ReactComponent as Info } from \"./info.svg\";\nimport { ReactComponent as Dispute } from \"./dispute.svg\";\nimport { ReactComponent as Check } from \"./check.svg\";\nimport { ReactComponent as Delete } from \"./delete.svg\";\nimport { ReactComponent as Mail } from \"./mail.svg\";\nimport { ReactComponent as Locked } from \"./locked.svg\";\nimport { ReactComponent as Unlocked } from \"./unlocked.svg\";\nimport { ReactComponent as Unchecked } from \"./unchecked.svg\";\nimport { ReactComponent as Edit } from \"./edit.svg\";\nimport { ReactComponent as Portal } from \"./portal.svg\";\nimport { ReactComponent as Loader } from \"./loader.svg\";\nimport { ReactComponent as Search } from \"./search.svg\";\nimport { ReactComponent as Lock } from \"./lock.svg\";\nimport { ReactComponent as Block } from \"./block.svg\";\nimport { ReactComponent as Unassigned } from \"./unassigned.svg\";\n\nexport const icons = {\n doublearrow: Doublearrow,\n arrowdown: Arrowdown,\n bell: Bell,\n cart: Cart,\n user: User,\n gear: Gear,\n cross: Cross,\n circle: Circle,\n group: Group,\n list: List,\n arrowleft: ArrowLeft,\n arrowright: ArrowRight,\n doublearrowleft: DoubleArrowLeft,\n doublearrowright: DoubleArrowRight,\n calendarstart: CalendarStart,\n calendarend: CalendarEnd,\n save: Save,\n reset: Reset,\n plus: Plus,\n minus: Minus,\n history: History,\n refresh: Refresh,\n location: Location,\n application: Application,\n info: Info,\n dispute: Dispute,\n check: Check,\n delete: Delete,\n mail: Mail,\n locked: Locked,\n unlocked: Unlocked,\n unchecked: Unchecked,\n edit: Edit,\n portal: Portal,\n loader: Loader,\n search: Search,\n lock: Lock,\n block: Block,\n unassigned: Unassigned,\n};\n","import { Icon } from \"model/Icon\";\nimport React, { FunctionComponent } from \"react\";\nimport { icons } from \"assets/icons/index\";\nimport styled, { css } from \"styled-components\";\nimport { ExtraStylingType } from \"model/Styles\";\n\nexport interface IconProps {\n id?: string;\n name: Icon;\n height?: string;\n color?: string;\n stroke?: string;\n extraStyling?: ExtraStylingType;\n className?: string;\n disabled?: boolean;\n onClick?: (e: any) => void;\n}\n\ntype StylingProps = Pick<\n IconProps,\n \"height\" | \"extraStyling\" | \"onClick\" | \"disabled\"\n>;\n\nconst Container = styled.div`\n height: ${(props) => props.height};\n line-height: ${(props) => props.height};\n ${(props) =>\n !!props.onClick &&\n !props.disabled &&\n css`\n cursor: pointer;\n `}\n ${(props) => props.extraStyling};\n`;\n\nconst IconComponent: FunctionComponent = ({\n id = \"\",\n name,\n height = \"1rem\",\n color = \"#000\",\n stroke = \"none\",\n extraStyling = css``,\n className = \"\",\n disabled = false,\n onClick = undefined,\n}) => {\n const IconName = icons[name];\n return (\n \n \n \n );\n};\n\nexport default IconComponent as FunctionComponent;\n","import React, { FunctionComponent } from \"react\";\nimport styled, { css } from \"styled-components\";\nimport { Icon } from \"model/Icon\";\nimport { Text } from \"styles/common\";\nimport IconComponent from \"components/common/Icon\";\n\ninterface Props {\n customText?: string;\n component?: boolean;\n}\n\nconst Container = styled.div<{ component: boolean }>`\n z-index: ${(props) => (props.component ? 104 : 105)};\n display: flex;\n justify-content: center;\n align-items: center;\n\n ${(props) =>\n props.component\n ? css`\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n `\n : css`\n position: fixed;\n left: 0;\n top: 0;\n width: 100vw;\n height: 100vh;\n background-color: rgba(0, 0, 0, 0.1);\n box-shadow: 0px 1px 1px 1px rgba(0, 0, 0, 0.15);\n `}\n`;\n\nconst Content = styled.div<{ component: boolean }>`\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n\n ${(props) =>\n props.component\n ? css``\n : css`\n padding: 1rem;\n background-color: #fff;\n border-radius: 0.2rem;\n `}\n`;\n\nconst LoadingText = styled(Text)`\n margin: 0.5rem 0 0 0;¨\n`;\n\nconst Loader: FunctionComponent = ({\n customText,\n component = false,\n}) => {\n return (\n \n \n \n {!component && (\n {customText ? customText : \"Loading\"}\n )}\n \n \n );\n};\n\nexport default Loader as FunctionComponent;\n","import IconComponent from \"components/common/Icon\";\nimport { Icon } from \"model/Icon\";\nimport { NavigationItem } from \"model/Navigation\";\nimport React, {\n FunctionComponent,\n useState,\n useEffect,\n useCallback,\n} from \"react\";\nimport NavigationStore from \"stores/NavigationStore\";\nimport styled from \"styled-components\";\nimport {\n $blue4,\n $blue5,\n $grey,\n $textLight,\n textStyling,\n Text,\n} from \"styles/common\";\n\ninterface Props {\n navigationStore: NavigationStore;\n}\n\ninterface NavigationTabsProps {\n tab: NavigationItem;\n navigationStore: NavigationStore;\n}\n\nconst Container = styled.div`\n margin: 1rem 0 1.25rem 0;\n border-bottom: 1px solid ${$grey};\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n`;\n\nconst TabWrapper = styled.div`\n position: relative;\n`;\n\nconst TabContainer = styled.div<{ active?: boolean }>`\n padding: 0.57rem 0.94rem;\n background-color: transparent;\n transition: background-color 0.3s ease-in;\n cursor: pointer;\n color: ${(props) => (props.active ? $blue4 : $textLight)};\n\n &:hover {\n background-color: rgba(76, 159, 206, 0.1);\n }\n`;\n\nconst TabText = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 0.5rem;\n`;\n\nconst ActiveLineContainer = styled.span`\n display: flex;\n position: absolute;\n top: 0;\n left: 0;\n -webkit-justify-content: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n pointer-events: none;\n z-index: 1;\n`;\n\nconst ActiveLine = styled.span<{ active?: boolean }>`\n opacity: ${(props) => (props.active ? 1 : 0)};\n transform: scale(${(props) => (props.active ? 1 : 0)});\n width: ${(props) => (props.active ? \"100%\" : 0)};\n transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);\n border-top: 2px solid #4c9fce;\n transform-origin: center;\n display: flex;\n align-self: flex-end;\n`;\n\nconst SubNavigationContainer = styled.div`\n position: absolute;\n inset: 0px auto auto 0px;\n transform: translate3d(0px, 36px, 0px);\n display: block;\n z-index: 1000;\n float: left;\n min-width: 10rem;\n padding: 0.5rem 0;\n margin: 0.125rem 0 0;\n font-size: 0.875rem;\n color: #5f7787;\n text-align: left;\n list-style: none;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #eaeff2;\n border-radius: 0.25rem;\n box-shadow: 0 2px 16px 0 rgb(203 215 223 / 50%);\n box-sizing: border-box;\n`;\n\nconst SubNavigationItem = styled.a`\n ${textStyling}\n cursor: pointer;\n display: block;\n width: 100%;\n padding: 0.25rem 1rem;\n clear: both;\n text-align: inherit;\n white-space: nowrap;\n background-color: transparent;\n border: 0;\n box-sizing: border-box;\n text-transform: none;\n\n &:hover {\n color: ${$blue4};\n background-color: #eef6fb;\n }\n\n &:active {\n color: #fff;\n background-color: ${$blue5};\n }\n`;\n\nconst Tab: FunctionComponent = ({\n tab,\n navigationStore,\n}) => {\n const [openSubNav, setOpenSubNav] = useState(false);\n\n // Close subnavigation when clicking outside of it\n const handleMouseUp = useCallback(\n (e) => {\n const tabComponent = document.getElementById(`tab${tab.name}`);\n\n if (\n openSubNav &&\n e.target !== tabComponent &&\n e.target.parentNode !== tabComponent\n ) {\n setOpenSubNav(false);\n }\n },\n [openSubNav, tab.name]\n );\n\n useEffect(() => {\n document.addEventListener(\"mouseup\", handleMouseUp);\n return () => {\n document.removeEventListener(\"mouseup\", handleMouseUp);\n };\n }, [handleMouseUp]);\n\n const handleTabClick = (item: NavigationItem) => {\n if (item.subNavigation) {\n setOpenSubNav(!openSubNav);\n } else {\n navigationStore.navigate(item.route);\n }\n };\n\n const isParentOfActive =\n (tab.subNavigation &&\n !!tab.subNavigation.find(\n (subNavItem) =>\n navigationStore.currentRoute &&\n subNavItem.id === navigationStore.currentRoute.id\n )) ||\n false;\n\n const active =\n isParentOfActive ||\n (navigationStore.currentRoute &&\n tab.id === navigationStore.currentRoute.id);\n\n return (\n \n handleTabClick(tab)}\n >\n \n \n {tab.name}\n \n {tab.subNavigation && (\n \n )}\n \n \n \n \n \n {openSubNav && tab.subNavigation && (\n \n {tab.subNavigation.map((item, index) => (\n handleTabClick(item)}\n >\n {item.name}\n \n ))}\n \n )}\n \n );\n};\n\nexport const NavigationTabs: FunctionComponent = ({\n navigationStore,\n}) => {\n return (\n \n {navigationStore.navigationTabs &&\n navigationStore.navigationTabs.map(\n (tab: NavigationItem, index: number) => (\n \n )\n )}\n \n );\n};\n\nexport default NavigationTabs;\n","import styled, { css } from \"styled-components\";\nimport { $blue5, $grey, regularText } from \"styles/common\";\n\nexport const Container = styled.div`\n height: 100%;\n display: flex;\n flex-direction: column;\n`;\n\nexport const PageTop = styled.div`\n flex: 1 0 auto;\n`;\n\nexport const HeaderBackground = styled.div`\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n z-index: -1;\n`;\n\nexport const HeaderBackgroundBig = styled.div`\n background-image: url(/static/media/header-bg-large.b1744234.svg);\n height: 130px;\n position: relative;\n overflow: hidden;\n background-size: 100% 150%;\n`;\n\nexport const HeaderBackgroundSmall = styled.div`\n position: absolute;\n top: 10px;\n right: 0;\n width: 458px;\n`;\n\nexport const Header = styled.div`\n background-color: ${$blue5};\n max-height: 60px;\n height: calc(60px - 0.644rem - 0.644rem);\n padding: 0.644rem 1.5rem;\n display: flex;\n flex-direction: row;\n align-items: center;\n\n p {\n font-size: 0.9375rem;\n }\n`;\n\nexport const LogoContainer = styled.a`\n margin-right: 1.5rem;\n`;\n\nexport const Logo = styled.img`\n vertical-align: middle;\n`;\n\nexport const Navigation = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n flex: 1;\n`;\n\nexport const NavigationItem = styled.p<{ active?: boolean }>`\n color: #fff;\n padding: 0.25rem 0px;\n margin-left: 1rem;\n margin-right: 1rem;\n border-bottom: 2px solid transparent;\n color: rgb(249, 251, 252);\n cursor: pointer;\n\n &:hover {\n color: #fff;\n border-bottom: 2px solid #fff;\n }\n\n ${(props) =>\n props.active &&\n css`\n color: #fff;\n border-bottom: 2px solid #fff;\n `}\n`;\n\nexport const HeaderActions = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n height: 2rem;\n`;\n\nexport const UserButton = styled.button`\n border: none;\n padding: 0px 25px 0px 10px;\n overflow: hidden;\n margin-right: 5px;\n border-radius: 32px;\n opacity: 1;\n position: relative;\n min-height: 32px;\n display: flex;\n flex-direction: row;\n align-items: center;\n transition: all 0.2s ease-in;\n\n p,\n svg {\n transition: all 0.2s ease-in;\n }\n\n // &:hover {\n // background-color: rgb(238, 246, 251);\n\n // p,\n // svg {\n // color: rgb(95, 119, 135);\n // fill: rgb(95, 119, 135);\n // }\n // }\n`;\n\nexport const UserName = styled.p`\n flex-wrap: wrap;\n text-align: left;\n vertical-align: middle;\n margin-right: 10px;\n padding-left: 10px;\n color: #fff;\n`;\n\n// export const CartButton = styled.a`\n// padding: 8px 10px;\n// color: rgb(249, 251, 252);\n// overflow: hidden;\n// margin-right: 5px;\n// border-radius: 32px;\n// opacity: 1;\n// position: relative;\n// transition: all 0.2s ease-in;\n\n// svg {\n// transition: all 0.2s ease-in;\n// }\n\n// &:hover {\n// background-color: rgb(238, 246, 251);\n\n// svg {\n// fill: rgb(95, 119, 135);\n// }\n// }\n// `;\n\n// export const NotificationsButton = styled.button`\n// border: none;\n// padding: 0px 25px 0px 10px;\n// overflow: hidden;\n// margin-right: 5px;\n// border-radius: 32px;\n// opacity: 1;\n// position: relative;\n// transition: all 0.2s ease-in;\n\n// svg {\n// transition: all 0.2s ease-in;\n// }\n\n// &:hover {\n// background-color: rgb(238, 246, 251);\n\n// svg {\n// fill: rgb(95, 119, 135);\n// }\n// }\n// `;\n\nexport const PageTitle = styled.div`\n color: #fff;\n font-size: 1.875rem;\n ${regularText}\n padding: calc(35px - 0.9375rem) 0;\n margin: 0;\n overflow: hidden;\n line-height: 1.875rem;\n text-overflow: ellipsis;\n white-space: nowrap;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n text-rendering: optimizeLegibility;\n`;\n\nexport const Content = styled.div`\n max-width: 1440px;\n width: calc(100% - 30px);\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n`;\n\nexport const Footer = styled.footer`\n color: #354a59;\n background-color: #dee7eb;\n margin-top: 2.5rem;\n flex-shrink: 0;\n`;\n\nexport const FooterTop = styled.div`\n max-width: 1140px;\n width: calc(100% - 30px);\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n`;\n\n// export const FooterContact = styled.div`\n// flex: 0 0 66.66667%;\n// max-width: 66.66667%;\n// position: relative;\n// width: calc(100% - 30px);\n// padding-right: 15px;\n// padding-left: 15px;\n// display: flex;\n// flex-direction: row;\n// align-items: center;\n// box-sizing: border-box;\n// `;\n\n// export const ContactImg = styled.img`\n// margin: 1.5rem 1.875rem 1.5rem 0;\n// border-radius: 50%;\n// width: 70px;\n// height: 70px;\n// display: inline-block;\n// vertical-align: middle;\n// align-self: start;\n// border: 4px solid ${$grey};\n// box-sizing: border-box;\n// `;\n\n// export const Contact = styled.div`\n// display: flex;\n// flex-direction: column;\n// flex: 1 1;\n// `;\n\n// export const ContactInfo = styled.div`\n// display: flex;\n// flex-direction: row;\n// `;\n\n// export const ContactInfoLeft = styled.div`\n// width: 100%;\n// `;\n\n// export const ContactTitle = styled.h1`\n// ${semiBoldText}\n// font-size: 1.12rem;\n// text-transform: none;\n// margin-bottom: 0.25rem;\n// `;\n\n// export const ContactName = styled.p`\n// font-size: 1.25rem;\n// ${boldText}\n// margin-right: 1.875rem;\n// `;\n\n// export const ContactFunction = styled.p`\n// font-style: italic;\n// font-size: 0.75rem;\n// margin-bottom: 0.25rem;\n// margin-right: 1.875rem;\n// `;\n\n// export const ContactEmail = styled.div`\n// display: flex;\n// flex-direction: row;\n// width: 100%;\n// `;\n\n// export const EmailIcon = styled.div`\n// width: 16px;\n// `;\n\n// export const Email = styled.a`\n// margin-left: 0.75rem;\n// color: #354a59;\n// font-size: 0.875rem;\n// word-break: break-all;\n// `;\n\nexport const FooterBottom = styled.div`\n font-size: 0.875rem;\n width: 100%;\n display: block;\n padding: 0.625rem 0;\n line-height: 1;\n border-top: 1px solid hsla(0, 0%, 100%, 0.1);\n text-align: center;\n background-color: ${$grey};\n box-sizing: border-box;\n`;\n\nexport const FooterBottomContent = styled.div`\n max-width: 1140px;\n opacity: 0.7;\n display: flex;\n flex-direction: row;\n margin: 0 auto;\n justify-content: center;\n`;\n\nexport const seperatorStyling = css`\n &:after {\n content: \"|\";\n margin: 0 0.75rem;\n }\n`;\n\nexport const FooterBottomText = styled.p<{ seperator?: boolean }>`\n font-size: 0.875rem;\n\n ${(props) => props.seperator && seperatorStyling}\n`;\n\nexport const FooterBottomLink = styled.a<{ seperator?: boolean }>`\n font-size: 0.875rem;\n color: #354a59;\n text-decoration: underline;\n opacity: 0.7;\n\n ${(props) => props.seperator && seperatorStyling}\n`;\n\n// export const renderArrowIcon = (\n// \n// );\n\nexport const noClaimsCardStyling = css`\n margin-top: 2rem;\n height: 15rem;\n`;\n","import IconComponent from \"components/common/Icon\";\nimport { Icon } from \"model/Icon\";\nimport { ExtraStylingType } from \"model/Styles\";\nimport React, { FunctionComponent, useState } from \"react\";\n\nimport styled, { css } from \"styled-components\";\nimport {\n Text,\n semiBoldText,\n darkText,\n $grey,\n $statusFail,\n} from \"styles/common\";\n\nexport interface Props {\n header?: any;\n darkBorder?: boolean;\n collapsable?: boolean;\n error?: boolean;\n errorText?: string;\n extraStyling?: ExtraStylingType;\n extraContentStyling?: ExtraStylingType;\n}\n\nexport const FilterHeader = styled.div<{ space?: boolean }>`\n display: flex;\n flex-direction: row;\n align-items: center;\n width: 100%;\n\n ${(props) =>\n props.space &&\n css`\n justify-content: space-between;\n `}\n`;\n\nexport const CardRowContainer = styled.div`\n display: flex;\n flex-direction: row;\n gap: 1.875rem;\n`;\n\nconst Container = styled.div<{\n darkBorder: boolean;\n extraStyling?: ExtraStylingType;\n}>`\n background-color: hsla(0, 0%, 100%, 0.9);\n margin-bottom: 1.875rem;\n box-shadow: 0 2px 16px 0 rgb(203 215 223 / 29%);\n position: relative;\n display: flex;\n flex-direction: column;\n min-width: 0;\n word-wrap: break-word;\n background-clip: border-box;\n border: 1px solid ${(props) => (props.darkBorder ? $grey : \"#eaeff2\")};\n border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0;\n\n ${(props) => props.extraStyling}\n`;\n\nconst Header = styled.div<{ collapsable: boolean }>`\n padding: 1.5rem 1.5rem 1.5rem 1.5rem;\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n\n ${(props) =>\n props.collapsable &&\n css`\n cursor: pointer;\n `}\n\n p:first-child {\n ${darkText}\n ${semiBoldText}\n font-size: 1rem;\n text-transform: uppercase;\n display: flex;\n flex-direction: row;\n align-items: center;\n }\n`;\n\nconst CollapseIcon = styled(IconComponent)<{ collapsed: boolean }>`\n transform: rotate(${(props) => (props.collapsed ? \"180deg\" : \"0deg\")});\n`;\n\nconst Content = styled.div<{\n hasHeader: boolean;\n collapsed: boolean;\n extraContentStyling?: ExtraStylingType;\n}>`\n flex: 1 1 auto;\n min-height: 1px;\n padding: ${(props) =>\n props.hasHeader ? \"0rem 1.5rem 10px 1.5rem\" : \"1.5rem 1.5rem 10px 1.5rem\"};\n\n ${(props) =>\n props.collapsed\n ? css`\n display: none;\n `\n : css`\n display: block;\n `}\n\n ${(props) => props.extraContentStyling}\n`;\n\nexport const CardSpacer = styled.div`\n width: calc(100% + 3rem);\n position: relative;\n left: -1.5rem;\n height: 1px;\n border-bottom: 1px solid #eaeff2;\n margin-bottom: 1.5rem;\n`;\n\nconst Error = styled(Text)<{ collapsable: boolean }>`\n margin: 0 0 0.4rem 0rem;\n font-size: 0.8rem;\n position: absolute;\n top: ${(props) => (props.collapsable ? \"1.3rem\" : \"1.5rem\")};\n right: ${(props) => (props.collapsable ? \"3.5rem\" : \"1.5rem\")};\n`;\n\nconst Card: FunctionComponent = ({\n header,\n darkBorder = false,\n collapsable = false,\n error = false,\n errorText = \"\",\n extraStyling = css``,\n extraContentStyling = css``,\n children,\n}) => {\n const [collapsed, setCollapsed] = useState(false);\n\n const handleHeaderClick = () => {\n collapsable && setCollapsed(!collapsed);\n };\n\n return (\n \n {header && (\n \n {header}\n {error && (\n \n {errorText}\n \n )}\n {collapsable && (\n \n )}\n \n )}\n \n {children}\n \n \n );\n};\n\nexport default Card as FunctionComponent;\n","import {\n $statusFail,\n $statusFailTransparent,\n $statusInProgress,\n $statusInProgressTransparent,\n $statusNoValue,\n $statusNoValueTransparent,\n $statusProblematic,\n $statusProblematicCalendar,\n $statusProblematicCalendarTransparent,\n $statusProblematicTransparent,\n $statusSuccess,\n $statusSuccessSlow,\n $statusSuccessSlowTransparent,\n $statusSuccessTransparent,\n} from \"styles/common\";\n\nexport enum ExecutionSpeedStatus {\n // Total executions which completed successfully\n SuccessOnTime = 0, // On Time: Successful executions which completed within expected time range\n SuccessSlow = 1, // Too Slow: Successful executions which did not completed too slow and finished outside of the time range\n // Total executions which failed\n Fail = 2,\n}\n\nexport interface ExecutionSpeedStatusType {\n status: ExecutionSpeedStatus;\n name: string;\n explanation?: string;\n color: string;\n transparentColor: string;\n}\n\nexport const executionSpeedStatuses: ExecutionSpeedStatusType[] = [\n {\n status: ExecutionSpeedStatus.SuccessOnTime,\n name: \"Success\",\n explanation: \"on time\",\n color: $statusSuccess,\n transparentColor: $statusSuccessTransparent,\n },\n {\n status: ExecutionSpeedStatus.SuccessSlow,\n name: \"Success\",\n explanation: \"too slow\",\n color: $statusSuccessSlow,\n transparentColor: $statusSuccessSlowTransparent,\n },\n {\n status: ExecutionSpeedStatus.Fail,\n name: \"Fail\",\n explanation: undefined,\n color: $statusFail,\n transparentColor: $statusFailTransparent,\n },\n];\n\nexport const getExecutionSpeedStatus = (statusId: number) =>\n executionSpeedStatuses.find((status) => status.status === statusId) ||\n executionSpeedStatuses[0];\n\nexport const getExecutionSpeedStatusText = (status: number) =>\n `${executionSpeedStatuses[status].name} ${\n executionSpeedStatuses[status].explanation\n ? `(${executionSpeedStatuses[status].explanation})`\n : \"\"\n }`;\n\nexport enum ExecutionSuccessStatusHeatMap {\n // Total executions which completed successfully\n Success = 0,\n Problematic = 1,\n Fail = 2,\n NoValue = 3,\n}\n\nexport enum ExecutionSuccessStatus {\n Success = 0,\n Problematic = 1,\n Fail = 2,\n NoValue = 3,\n InProgress = 4\n}\n\nexport interface ExecutionSuccessStatusType {\n status: ExecutionSuccessStatus;\n color: string;\n transparentColor: string;\n}\n\nexport const executionSuccessStatuses: ExecutionSuccessStatusType[] = [\n {\n status: ExecutionSuccessStatus.Success,\n color: $statusSuccess,\n transparentColor: $statusSuccessTransparent,\n },\n {\n status: ExecutionSuccessStatus.Problematic,\n color: $statusProblematic,\n transparentColor: $statusProblematicTransparent,\n },\n {\n status: ExecutionSuccessStatus.Fail,\n color: $statusFail,\n transparentColor: $statusFailTransparent,\n },\n {\n status: ExecutionSuccessStatus.NoValue,\n color: $statusNoValue,\n transparentColor: $statusNoValueTransparent,\n },\n {\n status: ExecutionSuccessStatus.InProgress,\n color: $statusInProgress,\n transparentColor: $statusInProgressTransparent,\n },\n];\n\nexport interface ExecutionSuccessStatusHeatMapType {\n status: ExecutionSuccessStatusHeatMap;\n name: string;\n color: string;\n transparentColor: string;\n}\n\n// Name is filled in from BE\nexport const executionCalendarSuccessStatuses: ExecutionSuccessStatusHeatMapType[] =\n [\n {\n status: ExecutionSuccessStatusHeatMap.Success,\n name: \"\",\n color: $statusSuccess,\n transparentColor: $statusSuccessTransparent,\n },\n {\n status: ExecutionSuccessStatusHeatMap.Problematic,\n name: \"\",\n color: $statusProblematicCalendar,\n transparentColor: $statusProblematicCalendarTransparent,\n },\n {\n status: ExecutionSuccessStatusHeatMap.Fail,\n name: \"\",\n color: $statusFail,\n transparentColor: $statusFailTransparent,\n },\n {\n status: ExecutionSuccessStatusHeatMap.NoValue,\n name: \"\",\n color: $statusNoValue,\n transparentColor: $statusNoValueTransparent,\n },\n ];\n\nexport const getExecutionSuccessStatus = (statusId: number) =>\n executionSuccessStatuses.find((status) => status.status === statusId) ||\n executionSuccessStatuses[0];\n\nexport const getExecutionSuccessStatusHeatMap = (statusId: number) =>\n executionCalendarSuccessStatuses.find(\n (status) => status.status === statusId\n ) || executionCalendarSuccessStatuses[0];\n","import IconComponent from \"components/common/Icon\";\nimport NavigationTabs from \"components/common/NavigationTabs\";\nimport { inject, observer } from \"mobx-react\";\nimport { Icon } from \"model/Icon\";\nimport { horizonUrl } from \"model/Navigation\";\nimport React, { FunctionComponent, useEffect, useState } from \"react\";\nimport NavigationStore from \"stores/NavigationStore\";\nimport { useMsal, useAccount } from \"@azure/msal-react\";\nimport Loader from \"../Loader\";\nimport LoaderStore from \"stores/LoaderStore\";\nimport AuthenticationStore from \"stores/AuthenticationStore\";\nimport {\n Container,\n Content,\n Footer,\n FooterBottom,\n FooterBottomContent,\n FooterBottomLink,\n FooterBottomText,\n FooterTop,\n Header,\n HeaderActions,\n HeaderBackground,\n HeaderBackgroundBig,\n HeaderBackgroundSmall,\n Logo,\n LogoContainer,\n Navigation,\n NavigationItem,\n noClaimsCardStyling,\n PageTitle,\n PageTop,\n UserButton,\n UserName,\n} from \"./styles\";\nimport Card from \"../Card\";\nimport { Modal } from \"../Modal\";\nimport { useHistory } from \"react-router\";\nimport { $blue1, $blue2, $textDark, Button } from \"styles/common\";\nimport { css } from \"styled-components\";\n\ninterface Props {\n loaderStore: LoaderStore;\n authenticationStore: AuthenticationStore;\n navigationStore: NavigationStore;\n loading: boolean;\n}\n\nconst Page: FunctionComponent = ({\n loaderStore,\n authenticationStore,\n navigationStore,\n loading,\n children,\n}) => {\n const history = useHistory();\n\n // const [activeNavItem, setActiveNavItem] = useState(3);\n const activeNavItem = 3;\n\n const { accounts } = useMsal();\n const account = useAccount(accounts[0] || {});\n const [name, setName] = useState(\"\");\n\n useEffect(() => {\n navigationStore.currentRoute &&\n history.push(navigationStore.currentRoute.route);\n }, [history, navigationStore.currentRoute]);\n\n useEffect(() => {\n if (account && account.name) {\n setName(account.name);\n }\n }, [account]);\n\n const handleClaimsDataReload = () => {\n authenticationStore.getUserPermissionsInfo();\n };\n\n return (\n \n \n \n \n \n \"\"\n \n \n \n\n
\n \n \n \n\n \n {navigationStore.horizonNavigation &&\n navigationStore.horizonNavigation.map((item, index) => (\n {\n item.route !== \"\" &&\n window.open(`${horizonUrl}${item.route}`, \"_blank\");\n }}\n >\n {item.name}\n \n ))}\n \n\n \n {authenticationStore.userPermissionsInfo &&\n authenticationStore.userPermissionsInfo.options.hasBacklogUrl && (\n {\n authenticationStore.userPermissionsInfo &&\n authenticationStore.userPermissionsInfo.options\n .developmentBacklogUrl &&\n window.open(\n authenticationStore.userPermissionsInfo.options\n .developmentBacklogUrl,\n \"_blank\"\n );\n }}\n extraStyling={css`\n margin-right: 1rem;\n `}\n >\n Development backlog\n \n )}\n\n {authenticationStore.userPermissionsInfo &&\n authenticationStore.userPermissionsInfo.options\n .allowTicketManagement && (\n {\n window.open(\n \"https://horizon.cegeka.com/create-ticket\",\n \"_blank\"\n );\n }}\n extraStyling={css`\n margin-right: 1.5rem;\n `}\n >\n Create ticket\n \n )}\n\n \n {name}\n \n {/* {renderArrowIcon} */}\n \n\n {/* \n \n \n \n \n \n {renderArrowIcon}\n */}\n \n
\n\n \n Integration\n\n {authenticationStore.userPermissionsInfo ? (\n <>\n {loaderStore.loading && }\n\n \n\n {children}\n \n ) : loading ? (\n \n ) : (\n \n \n \n )}\n \n
\n\n
\n \n {/* \n \n \n Your contact\n \n \n Naam Achternaam\n Functie titel\n \n \n \n \n \n \n \n \n \n naam.achternaam@cegeka.com\n \n \n \n \n */}\n \n \n \n \n ©2022 Cegeka. All rights reserved\n \n version 1.0.0\n \n Terms of use\n \n \n Decline terms of use\n \n \n \n
\n
\n );\n};\n\nexport default inject(\n \"loaderStore\",\n \"authenticationStore\",\n \"navigationStore\"\n)(\n observer(\n Page as FunctionComponent<\n Omit\n >\n )\n);\n","import { ExtraStylingType } from \"model/Styles\";\nimport React, { FunctionComponent } from \"react\";\nimport styled, { css } from \"styled-components\";\nimport { Text, Span, $statusFail } from \"styles/common\";\n\ninterface Props {\n items: LegendItem[];\n vertical?: boolean;\n small?: boolean;\n extraStyling?: ExtraStylingType;\n}\n\nexport interface LegendItem {\n explanation?: string;\n boldValue?: string;\n disclaimer?: boolean;\n color: string;\n}\n\nconst Container = styled.div<{\n vertical: boolean;\n extraStyling: ExtraStylingType;\n}>`\n display: flex;\n\n ${(props) =>\n props.vertical\n ? css`\n flex-direction: column;\n `\n : css`\n flex-direction: row;\n `}\n\n ${(props) => props.extraStyling}\n`;\n\nconst Item = styled.div<{ vertical: boolean }>`\n display: flex;\n flex-direction: row;\n align-items: center;\n\n ${(props) =>\n !props.vertical &&\n css`\n margin-right: 1rem;\n `}\n`;\n\nconst LegendBadge = styled.div<{ color: string }>`\n width: 12px;\n height: 12px;\n display: inline-block;\n border-radius: 12px;\n margin-right: 0.5rem;\n flex: 0 0 12px;\n background-color: ${(props) => props.color};\n`;\n\nconst LegendText = styled(Text)<{ small: boolean }>`\n line-height: ${(props) => (props.small ? \"1.4rem\" : \"1.5rem\")};\n`;\n\nconst Legend: FunctionComponent = ({\n items,\n vertical = false,\n small = false,\n extraStyling = css``,\n}) => {\n return (\n \n {items.map((legendItem: LegendItem, index: number) => (\n \n \n \n {legendItem.explanation && (\n \n {legendItem.explanation}\n {legendItem.disclaimer && *}\n \n )}\n {legendItem.boldValue && (\n \n {legendItem.boldValue}\n \n )}\n \n \n ))}\n \n );\n};\n\nexport default Legend;\n","import { FunctionComponent, useEffect, useState } from \"react\";\nimport styled, { css } from \"styled-components\";\nimport React from \"react\";\nimport * as d3 from \"d3\";\nimport ReactTooltip from \"react-tooltip\";\nimport {\n $statusSuccess,\n $statusProblematicCalendar,\n $statusFail,\n $textDark,\n $textLight,\n Text,\n $statusNoValue,\n StyledReactTooltip,\n} from \"styles/common\";\nimport {\n ExecutionSuccessStatusHeatMap,\n ExecutionSuccessStatusHeatMapType,\n getExecutionSuccessStatusHeatMap,\n} from \"model/Status\";\nimport {\n CalendarSuccessRateDataLegendItem,\n CalendarSuccessRateDatum,\n} from \"model/Integration\";\nimport Legend from \"components/common/Legend\";\nimport format from \"date-fns/format\";\nimport GeneralStore from \"stores/GeneralStore\";\nimport { inject, observer } from \"mobx-react\";\nimport { Modal, ModalType } from \"components/common/Modal\";\nimport Loader from \"components/common/Loader\";\n\nconst cellSize = 17;\nexport const calendarWidth = cellSize * 53 + 80; // Max weeks in a year + some margin for text and spaces\nconst svgHeight = cellSize * 9;\n\nconst countDay = (i: number) => (i + 6) % 7;\nconst formatDay = (i: number) => \"SMTWTFS\"[i];\nconst timeWeek = d3.utcMonday;\nconst formatMonth = d3.utcFormat(\"%b\");\n\nconst pathMonth = (t: any) => {\n const n = 7;\n const d = Math.max(0, Math.min(n, countDay(t.getUTCDay())));\n const w = timeWeek.count(d3.utcYear(t), t);\n return `${\n d === 0\n ? `M${w * cellSize},0`\n : d === n\n ? `M${(w + 1) * cellSize},0`\n : `M${(w + 1) * cellSize},0V${d * cellSize}H${w * cellSize}`\n }V${n * cellSize}`;\n};\n\ninterface Props {\n generalStore: GeneralStore;\n}\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n`;\n\nconst Calendar = styled.div``;\n\nconst TooltipColor = styled.div<{ color: string }>`\n width: 0.8rem;\n height: 0.8rem;\n background-color: ${(props) => props.color};\n margin-right: 0.5rem;\n`;\n\nconst HeightContainer = styled.div`\n min-height: 10rem;\n position: relative;\n`;\n\nconst CalendarHeatMap: FunctionComponent = ({ generalStore }) => {\n const [dataLoad, setDataLoad] = useState(false);\n const [legendItems, setLegendItems] = useState<\n ExecutionSuccessStatusHeatMapType[] | undefined\n >(undefined);\n\n useEffect(() => {\n generalStore.getCalendarSuccessRateData().finally(() => {\n setDataLoad(true);\n });\n }, [generalStore, generalStore.currentEnvironment]);\n\n const handleDataReload = () => {\n if (!generalStore.currentEnvironment) {\n generalStore.getEnvironments().then(() => {\n generalStore.getCalendarSuccessRateData();\n });\n } else generalStore.getCalendarSuccessRateData();\n };\n\n useEffect(() => {\n if (\n generalStore.calendarSuccessRate &&\n generalStore.calendarSuccessRate.years.size > 0\n ) {\n const newLegend = generalStore.calendarSuccessRate.legend.map(\n (legendItem: CalendarSuccessRateDataLegendItem) => ({\n ...getExecutionSuccessStatusHeatMap(legendItem.status),\n ...legendItem,\n })\n );\n\n setLegendItems(newLegend);\n\n // Clear SVG before redrawing\n const calendar = document.getElementById(\"calendar\");\n if (calendar) {\n calendar.innerHTML = \"\";\n }\n\n // Create svg\n const svg = d3\n .select(\"#calendar\")\n .append(\"svg\")\n .attr(\n \"viewBox\",\n `0 0 ${calendarWidth} ${\n svgHeight * generalStore.calendarSuccessRate.years.size\n }`\n )\n .attr(\"width\", calendarWidth)\n .attr(\"height\", svgHeight * generalStore.calendarSuccessRate.years.size)\n .attr(\"font-family\", \"sans-serif\")\n .attr(\"font-size\", 10);\n\n // Add groups for all years\n const year = svg\n .selectAll(\"g\")\n .data(generalStore.calendarSuccessRate.years)\n .join(\"g\")\n .attr(\n \"transform\",\n (d, i) => `translate(40.5,${svgHeight * i + cellSize * 1.5})`\n );\n\n // Add year labels\n year\n .append(\"text\")\n .attr(\"x\", -5)\n .attr(\"y\", -5)\n .attr(\"font-weight\", \"bold\")\n .attr(\"text-anchor\", \"end\")\n .text(([key]: any) => key)\n .style(\"font-size\", \"0.8rem\")\n .style(\"fill\", $textDark);\n\n // Add day labels\n year\n .append(\"g\")\n .attr(\"text-anchor\", \"end\")\n .selectAll(\"text\")\n .data(d3.range(7))\n .join(\"text\")\n .attr(\"x\", -5)\n .attr(\"y\", (i) => (countDay(i) + 0.5) * cellSize)\n .attr(\"dy\", \"0.31em\")\n .text(formatDay)\n .style(\"font-size\", \"0.7rem\")\n .style(\"fill\", $textLight);\n\n // Add day rectangles\n year\n .append(\"g\")\n .selectAll(\"rect\")\n .data(([, values]: any) => {\n // Conversion is needed for a more extensize date string so D3 to gets the correct date on mouse events\n // (hours can't be 0; otherwise mouseevent gets date plus 1 day)\n return values.map((datum: CalendarSuccessRateDatum) => {\n const fullDate = new Date(new Date(datum.date).setHours(1));\n return {\n ...datum,\n date: fullDate,\n };\n });\n })\n .enter()\n .append(\"rect\")\n .attr(\"width\", cellSize - 1)\n .attr(\"height\", cellSize - 1)\n .attr(\"x\", (d) => {\n const datum = d as CalendarSuccessRateDatum;\n return (\n timeWeek.count(\n d3.utcYear(new Date(datum.date)),\n new Date(datum.date)\n ) *\n cellSize +\n 0.5\n );\n })\n .attr(\"y\", (d) => {\n const datum = d as CalendarSuccessRateDatum;\n return countDay(new Date(datum.date).getUTCDay()) * cellSize + 0.5;\n })\n .attr(\"fill\", (d: any) => {\n if (d.status === ExecutionSuccessStatusHeatMap.Success) {\n return $statusSuccess;\n } else if (d.status === ExecutionSuccessStatusHeatMap.Problematic) {\n return $statusProblematicCalendar;\n } else if (d.status === ExecutionSuccessStatusHeatMap.Fail) {\n return $statusFail;\n } else {\n return $statusNoValue;\n }\n })\n // Add tooltip link to days\n .attr(\"data-tip\", (d: any) => \"\")\n .attr(\"data-for\", \"calendar-tooltip\")\n // Hover effects on days\n .on(\"mouseover\", function (d) {\n d3.select(this).transition().style(\"stroke\", \"black\");\n\n const datum = d.target.__data__ as CalendarSuccessRateDatum;\n\n // Add values to tooltip\n const tooltipLabel = document.getElementById(\n \"calendar-tooltip-label\"\n );\n if (tooltipLabel) {\n tooltipLabel.innerHTML = `${format(\n new Date(datum.date),\n \"yyyy/MM/dd\"\n )} - `;\n }\n\n const currentStatus = newLegend.find(\n (legendItem: CalendarSuccessRateDataLegendItem) =>\n legendItem.status === datum.status\n );\n\n if (currentStatus) {\n const tooltipValue = document.getElementById(\n \"calendar-tooltip-value\"\n );\n if (tooltipValue) {\n tooltipValue.innerHTML = `${currentStatus.name}: ${datum.value}`;\n }\n\n const tooltipColor = document.getElementById(\n \"calendar-tooltip-color\"\n );\n if (tooltipColor) {\n tooltipColor.style.backgroundColor = currentStatus.color;\n }\n }\n })\n .on(\"mouseout\", function (d, i) {\n d3.select(this).transition().style(\"stroke\", \"none\");\n });\n\n // Add group for each month present in that year's data\n const month = year\n .append(\"g\")\n .selectAll(\"g\")\n .data(([, values]: any) =>\n d3.utcMonths(\n d3.utcMonth(new Date(values[0].date)),\n new Date(values[values.length - 1].date)\n )\n )\n .enter()\n .append(\"g\");\n\n // Seperation space between months\n month\n .filter((d, i) => !!i)\n .append(\"path\")\n .attr(\"fill\", \"none\")\n .attr(\"stroke\", \"#fff\")\n .attr(\"stroke-width\", 3)\n .attr(\"d\", pathMonth);\n\n // Add month labels\n month\n .append(\"text\")\n .attr(\n \"x\",\n (d) => timeWeek.count(d3.utcYear(d), timeWeek.ceil(d)) * cellSize + 2\n )\n .attr(\"y\", -5)\n .text(formatMonth)\n .style(\"font-size\", \"0.75rem\")\n .style(\"fill\", $textLight);\n\n // Need to do this for react-tooltip to work with SVG elements\n ReactTooltip.rebuild();\n }\n }, [generalStore.calendarSuccessRate]);\n\n return (\n \n {legendItems && (\n {\n return {\n boldValue: undefined,\n explanation: item.name,\n color: item.color,\n };\n })}\n small\n extraStyling={css`\n padding: 0.5rem 0 0.6rem 0;\n `}\n />\n )}\n\n {generalStore.calendarSuccessRate &&\n generalStore.calendarSuccessRate.years.size > 0 && (\n \n )}\n\n {!dataLoad ? (\n \n ) : generalStore.calendarSuccessRate &&\n generalStore.calendarSuccessRate.years.size === 0 ? (\n \n \n \n ) : (\n !generalStore.calendarSuccessRate && (\n \n \n \n )\n )}\n\n \n \n \n \n \n \n );\n};\n\nexport default inject(\"generalStore\")(\n observer(CalendarHeatMap as FunctionComponent>)\n);\n","import IconComponent from \"components/common/Icon\";\nimport { Icon } from \"model/Icon\";\nimport { ExtraStylingType } from \"model/Styles\";\nimport React, { FunctionComponent } from \"react\";\nimport styled, { css } from \"styled-components\";\nimport { $blue4, $textLight, Text } from \"styles/common\";\n\ninterface Props {\n currentPage: number;\n goToPage(pageNumber: number): void;\n pagesCount: number;\n maxPageNumbersVisible?: number;\n}\n\nconst PaginationContainer = styled.div`\n display: flex;\n flex-direction: row;\n justify-content: center;\n margin: 1.5rem 0;\n`;\n\nconst PageNumberContainer = styled.div<{ active?: boolean }>`\n text-align: center;\n line-height: 1rem;\n display: inline-block;\n min-width: 30px;\n height: 30px;\n padding-left: 0.62rem;\n padding-right: 0.62rem;\n border-radius: 0.25rem;\n position: relative;\n padding: 0.5rem 0.75rem;\n margin: 0 0.1rem;\n text-align: center;\n box-sizing: border-box;\n user-select: none; /* standard syntax */\n -webkit-user-select: none; /* webkit (safari, chrome) browsers */\n -moz-user-select: none; /* mozilla browsers */\n -khtml-user-select: none; /* webkit (konqueror) browsers */\n -ms-user-select: none; /* IE10+ */\n\n ${(props) =>\n props.active\n ? css`\n background-color: ${$blue4};\n `\n : css`\n background-color: transparent;\n cursor: pointer;\n\n &:hover {\n background-color: #eef6fb;\n }\n `}\n`;\n\nconst PageNumber = styled(Text) <{ active?: boolean }>`\n ${(props) =>\n props.active\n ? css`\n color: #dbecf5;\n `\n : css`\n color: ${$blue4};\n\n &:hover {\n color: ${$textLight};\n }\n `}\n`;\n\nconst PaginationButtonContainer = styled.div<{\n textLeft?: boolean;\n disabled?: boolean;\n extraStyling?: ExtraStylingType;\n}>`\n display: flex;\n align-items: center;\n position: relative;\n min-width: 30px;\n height: 30px;\n border: 0;\n text-align: center;\n line-height: 1rem;\n background-color: #eef6fb;\n border-radius: 0.25rem;\n padding: 0.5rem 0.62rem;\n cursor: pointer;\n box-sizing: border-box;\n user-select: none; /* standard syntax */\n -webkit-user-select: none; /* webkit (safari, chrome) browsers */\n -moz-user-select: none; /* mozilla browsers */\n -khtml-user-select: none; /* webkit (konqueror) browsers */\n -ms-user-select: none; /* IE10+ */\n\n &:hover {\n background-color: ${$blue4};\n\n p {\n color: #fff;\n }\n\n svg {\n fill: #fff;\n }\n }\n\n ${(props) =>\n props.textLeft\n ? css`\n flex-direction: row-reverse;\n\n svg {\n margin-left: 0.5rem;\n }\n `\n : css`\n flex-direction: row;\n\n svg {\n margin-right: 0.5rem;\n }\n `}\n\n ${(props) =>\n props.disabled &&\n css`\n background-color: transparent;\n border: 1px solid #5f7787;\n opacity: 0.5;\n pointer-events: none;\n\n svg {\n fill: ${$textLight};\n }\n `}\n\n ${(props) => props.extraStyling && props.extraStyling}\n`;\n\nconst PaginationButtonText = styled(Text) <{ disabled?: boolean }>`\n font-size: 0.88rem;\n color: ${$blue4};\n\n ${(props) =>\n props.disabled &&\n css`\n color: ${$textLight};\n `}\n`;\n\nconst PaginationButton = (props: {\n text: string;\n textLeft?: boolean;\n icon: Icon;\n disabled?: boolean;\n onClick(): void;\n extraStyling?: ExtraStylingType;\n className: string;\n}) => {\n return (\n \n \n \n {props.text}\n \n \n );\n};\n\nconst PageNumberButton = (props: {\n pageNumber: string;\n active?: boolean;\n onClick(): void;\n}) => {\n return (\n \n {props.pageNumber}\n \n );\n};\n\nfunction getBoundaries(minimumBoundary: number, maximumBoundary: number, maxPageNumbersVisible: number, currentPage: number): { minimum: number, maximum: number } {\n if (maximumBoundary == 0) {\n return { minimum: 0, maximum: 0 };\n }\n if (maximumBoundary <= maxPageNumbersVisible) {\n return { minimum: 1, maximum: maximumBoundary };\n }\n\n var virtualMinimum = currentPage - Math.floor(maxPageNumbersVisible / 2) + 1;\n var virtualMaximum = currentPage + Math.floor(maxPageNumbersVisible / 2);\n if (virtualMinimum >= minimumBoundary && virtualMaximum <= maximumBoundary) {\n return { minimum: virtualMinimum, maximum: Math.min(virtualMaximum, maximumBoundary) };\n }\n if (virtualMaximum <= maximumBoundary && virtualMinimum >= minimumBoundary) {\n return { minimum: Math.min(virtualMinimum, minimumBoundary), maximum: virtualMaximum };\n }\n\n if (virtualMinimum < minimumBoundary) {\n var minimumDelta = minimumBoundary - virtualMinimum;\n return { minimum: minimumBoundary, maximum: Math.min(maximumBoundary, virtualMaximum + minimumDelta, maxPageNumbersVisible) };\n }\n\n if (virtualMaximum > maximumBoundary) {\n var maximumDelta = maximumBoundary - virtualMaximum;\n return { minimum: Math.max(minimumBoundary, virtualMinimum + maximumDelta), maximum: virtualMaximum };\n }\n\n return { minimum: 0, maximum: 0 };\n}\n\nexport const Pagination: FunctionComponent = ({\n currentPage,\n goToPage,\n pagesCount,\n maxPageNumbersVisible\n}) => {\n\n var minimumBoundary = 1;\n var maximumBoundary = pagesCount;\n\n if (maxPageNumbersVisible != null && maxPageNumbersVisible != undefined) {\n var boundaries = getBoundaries(minimumBoundary, maximumBoundary, maxPageNumbersVisible, currentPage);\n minimumBoundary = boundaries.minimum;\n maximumBoundary = boundaries.maximum;\n }\n\n const renderPageNumbers = () => {\n return [...Array(pagesCount)].map((x, i) => {\n return (\n goToPage(i)}\n />\n );\n }\n ).filter((x, i) => {\n return i + 1 >= minimumBoundary && i + 1 <= maximumBoundary;\n });\n }\n\n return (\n \n goToPage(0)}\n />\n goToPage(currentPage - 1)}\n extraStyling={css`\n margin: 0 0.75rem 0 0.31rem;\n `}\n />\n
{renderPageNumbers()}
\n goToPage(currentPage + 1)}\n extraStyling={css`\n margin: 0 0.31rem 0 0.75rem;\n `}\n />\n goToPage(pagesCount - 1)}\n />\n
\n );\n};\n","import IconComponent from \"components/common/Icon\";\nimport { Pagination } from \"components/common/Pagination\";\nimport SearchInput from \"components/common/SearchInput\";\nimport { inject, observer } from \"mobx-react\";\nimport { Icon } from \"model/Icon\";\nimport { IntegrationLogicalGroup } from \"model/LogicalGroup\";\nimport React, {\n FunctionComponent,\n useCallback,\n useEffect,\n useState,\n} from \"react\";\nimport GeneralStore from \"stores/GeneralStore\";\nimport IntegrationStore from \"stores/IntegrationStore\";\nimport styled, { css } from \"styled-components\";\nimport { Text, $blue4 } from \"styles/common\";\nimport { getFlowTimeDate, getFlowTimeHours } from \"utils/Date\";\nimport { BreadCrumbs } from \"./BreadCrumbs\";\nimport { ListItems } from \"./ListItems\";\nimport { Tiles } from \"./Tiles\";\n\ninterface Props {\n widget?: boolean;\n access: boolean;\n onLeaveWidget?: () => void;\n generalStore: GeneralStore;\n integrationStore: IntegrationStore;\n loaded?: boolean; // For unit tests\n}\n\nconst Container = styled.div`\n margin-bottom: 0.5rem;\n position: relative;\n`;\n\nconst TopBar = styled.div`\n min-height: 2rem;\n margin-bottom: 2rem;\n position: relative;\n display: flex;\n flex-direction: row;\n align-items: center;\n`;\n\nexport const ViewFilter = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n`;\n\nconst viewFilterBasicStyling = css`\n min-width: 2rem;\n min-height: 2rem;\n width: fit-content;\n border-radius: 50%;\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n cursor: pointer;\n`;\n\nconst viewFilterStyling = css`\n ${viewFilterBasicStyling}\n background-color: transparent;\n\n &:hover {\n svg {\n fill: #2c77a1;\n }\n }\n`;\n\nconst viewFilterActiveStyling = css`\n ${viewFilterBasicStyling}\n background-color: ${$blue4};\n`;\n\nexport enum ViewType {\n Tiles = 0,\n List = 1,\n}\n\nconst TimeFrameDates = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n`;\n\nexport const maxWidgetTiles = 9;\nexport const maxTilesPerPage = 15;\nexport const maxListItemsPerPage = 50;\n\nexport const seperateIntoPages = (\n levelData: IntegrationLogicalGroup[],\n viewType: ViewType\n) => {\n const maxItems =\n viewType === ViewType.Tiles ? maxTilesPerPage : maxListItemsPerPage;\n\n let newLevelData: Array = [];\n for (let i = 0; i < levelData.length; i += maxItems) {\n newLevelData.push(levelData.slice(i, i + maxItems));\n }\n return newLevelData;\n};\n\nconst IntegrationsHeatMap: FunctionComponent = ({\n widget = false,\n access,\n onLeaveWidget = () => {},\n generalStore,\n integrationStore,\n loaded = false,\n}) => {\n const [dataLoad, setDataLoad] = useState(loaded);\n\n const [viewType, setViewType] = useState(ViewType.Tiles);\n\n const [itemsToRender, setItemsToRender] = useState<\n IntegrationLogicalGroup[] | undefined\n >(undefined);\n\n const [currentPage, setCurrentPage] = useState(0);\n\n const [searchList, setSearchList] = useState<\n Array | undefined\n >(undefined);\n\n // Initial data load + get data when environment or timeframe changes\n useEffect(() => {\n access &&\n integrationStore.getIntegrationData().finally(() => {\n if (\n integrationStore.flowDiagramMode &&\n integrationStore.openedLogicalGroup\n ) {\n integrationStore.setCurrentLogicalGroup(undefined);\n integrationStore.setCurrentPlatformComponent(undefined);\n integrationStore.setOpenedLogicalGroupAfterDataReload();\n\n integrationStore\n .getFlowDiagramData(integrationStore.openedLogicalGroup.id)\n .finally(() => {\n setDataLoad(true);\n });\n } else {\n setDataLoad(true);\n }\n });\n }, [\n integrationStore,\n generalStore.currentEnvironment,\n generalStore.timeFrame,\n access,\n ]);\n\n useEffect(() => {\n integrationStore.integrationsData &&\n integrationStore.setCurrentIntegrationLevel(\n seperateIntoPages(integrationStore.integrationsData, viewType)\n );\n }, [integrationStore, integrationStore.integrationsData, viewType]);\n\n const isTopLevel = useCallback(() => {\n return integrationStore.breadCrumbs.length === 0;\n }, [integrationStore.breadCrumbs.length]);\n\n const getItemsToRender = useCallback(() => {\n if (integrationStore.currentIntegrationLevel) {\n if (widget) {\n // Max widget items is smaller than max page count, so there is only one array\n integrationStore.currentIntegrationLevel.length > 0\n ? setItemsToRender(\n integrationStore.currentIntegrationLevel[0].slice(\n 0,\n isTopLevel() ? maxWidgetTiles : maxWidgetTiles - 1\n )\n )\n : setItemsToRender([]);\n } else {\n if (searchList) {\n setItemsToRender(\n searchList.length > 0 ? searchList[currentPage] : []\n );\n } else {\n setItemsToRender(\n integrationStore.currentIntegrationLevel.length > 0\n ? integrationStore.currentIntegrationLevel[currentPage]\n : []\n );\n }\n }\n }\n }, [\n currentPage,\n integrationStore.currentIntegrationLevel,\n searchList,\n isTopLevel,\n widget,\n ]);\n\n useEffect(() => {\n // Get new items when page changes\n integrationStore.currentIntegrationLevel && getItemsToRender();\n }, [integrationStore.currentIntegrationLevel, currentPage, getItemsToRender]);\n\n useEffect(() => {\n // Get new items when search filter changes\n getItemsToRender();\n }, [searchList, getItemsToRender]);\n\n useEffect(() => {\n // Recalculate paging when changing viewType cause they have different max page items\n setCurrentPage(0);\n integrationStore.integrationsData &&\n integrationStore.currentIntegrationLevel &&\n integrationStore.setCurrentIntegrationLevel(\n seperateIntoPages(\n integrationStore.currentIntegrationLevel.flat(),\n viewType\n )\n );\n getItemsToRender();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [integrationStore, viewType]);\n\n const getSearchItems = (filter: string) => {\n if (integrationStore.currentIntegrationLevel) {\n setCurrentPage(0);\n if (filter === \"\") {\n setSearchList(undefined);\n } else {\n const allLevelGroups = [\n ...integrationStore.currentIntegrationLevel,\n ].flat();\n\n const filteredGroups = allLevelGroups.filter((logicalGroup) =>\n logicalGroup.name.toLowerCase().includes(filter.toLowerCase())\n );\n\n if (filteredGroups.length > 0) {\n setSearchList(seperateIntoPages(filteredGroups, viewType));\n } else {\n setSearchList([]);\n }\n }\n }\n };\n\n const goToHighestLevel = () => {\n integrationStore.resetCurrentFlowDiagramData();\n integrationStore.setFlowDiagramMode(false);\n integrationStore.integrationsData &&\n integrationStore.setCurrentIntegrationLevel(\n seperateIntoPages(integrationStore.integrationsData, viewType)\n );\n integrationStore.setBreadCrumbs([]);\n };\n\n const goToLevelData = (logicalGroup: IntegrationLogicalGroup) => {\n // Clicked a breadcrumb or higher-button in widget\n integrationStore.setCurrentIntegrationLevel(\n logicalGroup.logicalGroups\n ? seperateIntoPages(logicalGroup.logicalGroups, viewType)\n : logicalGroup.logicalGroups\n );\n const index = integrationStore.breadCrumbs.indexOf(logicalGroup);\n const newBreadCrumbs = [...integrationStore.breadCrumbs];\n newBreadCrumbs.splice(index + 1);\n integrationStore.setBreadCrumbs(newBreadCrumbs);\n };\n\n const goLevelUp = () => {\n if (integrationStore.breadCrumbs.length === 1) {\n goToHighestLevel();\n } else {\n goToLevelData(\n integrationStore.breadCrumbs[integrationStore.breadCrumbs.length - 2]\n );\n }\n };\n\n const onItemClick = (item: IntegrationLogicalGroup) => {\n if (item.logicalGroups) {\n setCurrentPage(0);\n integrationStore.setCurrentIntegrationLevel(\n seperateIntoPages(item.logicalGroups, viewType)\n );\n } else {\n integrationStore.setCurrentIntegrationLevel(undefined);\n onLeaveWidget();\n integrationStore.getFlowDiagramData(item.id);\n integrationStore.setFlowDiagramMode(true);\n integrationStore.setOpenedLogicalGroup(item);\n }\n integrationStore.setBreadCrumbs([...integrationStore.breadCrumbs, item]);\n };\n\n const handleDataReload = () => {\n if (access) {\n if (!generalStore.currentEnvironment) {\n generalStore.getEnvironments().then(() => {\n integrationStore.getIntegrationData();\n });\n } else integrationStore.getIntegrationData();\n }\n };\n\n const renderBreadCrumbs = (\n {\n integrationStore.resetCurrentFlowDiagramData();\n integrationStore.setFlowDiagramMode(false);\n goToLevelData(breadCrumb);\n }}\n goToHighestLevel={goToHighestLevel}\n />\n );\n\n const renderSearch = (\n {\n getSearchItems(value);\n }}\n />\n );\n\n const renderViewFilter = (\n \n {\n setViewType(0);\n }}\n />\n {\n setViewType(1);\n }}\n />\n \n );\n\n const renderTopBar = (\n \n {/* Level & flow view */}\n {renderBreadCrumbs}\n\n {/* Only level view */}\n {!integrationStore.flowDiagramMode &&\n integrationStore.integrationsData &&\n integrationStore.integrationsData.length > 0 &&\n renderSearch}\n\n {/* Only level view & no/empty data view*/}\n {!integrationStore.flowDiagramMode && renderViewFilter}\n\n {/* Only flow view */}\n {generalStore.timeFrame && integrationStore.flowDiagramMode && (\n \n \n \n {getFlowTimeDate(generalStore.timeFrame.start)} \n \n \n ({getFlowTimeHours(generalStore.timeFrame.start)})\n \n \n -\n \n \n \n {getFlowTimeDate(generalStore.timeFrame.end)} \n \n \n ({getFlowTimeHours(generalStore.timeFrame.end)})\n \n \n )}\n \n );\n\n const renderPagination = integrationStore.currentIntegrationLevel && (\n \n );\n\n const renderListItems = (\n \n );\n\n const renderTiles = (\n \n );\n\n return (\n \n {!widget && renderTopBar}\n\n {!integrationStore.flowDiagramMode &&\n (viewType === ViewType.Tiles ? renderTiles : renderListItems)}\n\n {access &&\n !integrationStore.flowDiagramMode &&\n !widget &&\n itemsToRender &&\n itemsToRender.length > 0 &&\n renderPagination}\n \n );\n};\n\nexport default inject(\n \"integrationStore\",\n \"generalStore\"\n)(\n observer(\n IntegrationsHeatMap as FunctionComponent<\n Omit\n >\n )\n);\n","import { Icon } from \"model/Icon\";\nimport { ExtraStylingType } from \"model/Styles\";\nimport React, { FunctionComponent } from \"react\";\nimport styled, { css } from \"styled-components\";\nimport { $textLight, inputStyling } from \"styles/common\";\nimport IconComponent from \"../Icon\";\n\ninterface Props {\n className?: string;\n onValueChange(value: string): void;\n extraStyling?: ExtraStylingType;\n}\n\nconst Container = styled.div`\n position: relative;\n margin: 0 0.75rem;\n`;\n\nconst Search = styled.input<{ extraStyling: ExtraStylingType }>`\n ${inputStyling}\n padding-right: 2rem;\n`;\n\nconst iconStyling = css`\n position: absolute;\n right: 0.6rem;\n top: 50%;\n transform: translateY(-50%);\n`;\n\nconst SearchInput: FunctionComponent = ({\n className = \"\",\n onValueChange,\n extraStyling = css``,\n}) => {\n return (\n \n {\n onValueChange(e.target.value);\n }}\n extraStyling={extraStyling}\n />\n \n \n );\n};\n\nexport default SearchInput as FunctionComponent;\n","import React from \"react\";\nimport { IntegrationLogicalGroup } from \"model/LogicalGroup\";\nimport styled, { css } from \"styled-components\";\nimport { $blue4, Text } from \"styles/common\";\nimport IconComponent from \"components/common/Icon\";\nimport { Icon } from \"model/Icon\";\n\ninterface Props {\n breadCrumbs: IntegrationLogicalGroup[];\n onClick(breadCrumb: IntegrationLogicalGroup): void;\n goToHighestLevel(): void;\n}\n\nconst BreadCrumbsContainer = styled.div`\n margin: 0 2rem 0 0;\n height: 2rem;\n flex: 1;\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n align-items: center;\n`;\n\nconst BreadCrumb = styled(Text)<{ last: boolean }>`\n padding-left: 0.5rem;\n line-height: 1.5rem;\n display: flex;\n\n &:before {\n content: \"\";\n background: url(/static/media/separator.d2fd30e9.svg) no-repeat 50% 50%;\n padding: 0;\n min-width: 0.5rem;\n height: 1.5rem;\n margin-right: 0.5rem;\n display: inline-block;\n }\n\n ${(props) =>\n !props.last &&\n css`\n cursor: pointer;\n &:hover {\n opacity: 0.8;\n }\n `}\n`;\n\nexport const BreadCrumbs = ({\n breadCrumbs,\n onClick,\n goToHighestLevel,\n}: Props) => (\n \n {breadCrumbs.length > 0 && (\n goToHighestLevel()}\n extraStyling={css`\n cursor: pointer;\n &:hover {\n opacity: 0.8;\n }\n `}\n />\n )}\n {breadCrumbs.map((breadCrumb, index) => (\n {\n if (index < breadCrumbs.length - 1) {\n onClick(breadCrumb);\n }\n }}\n last={index === breadCrumbs.length - 1}\n >\n {breadCrumb.name}\n \n ))}\n \n);\n","import IconComponent from \"components/common/Icon\";\nimport { Icon } from \"model/Icon\";\nimport React from \"react\";\nimport styled, { css } from \"styled-components\";\nimport {\n IconButton,\n Text,\n $statusFail,\n $textLight,\n smallText,\n semiBoldText,\n} from \"styles/common\";\n\ninterface Props {\n className?: string;\n disabled?: boolean;\n onClick(): void;\n}\n\nexport const NoSearchResults = styled(Text)`\n opacity: 0.6;\n margin-left: 1.75rem;\n`;\n\nexport const noSearchResultsText = \"No search results\";\n\nexport const ListHeaderText = styled(Text)`\n ${smallText}\n ${semiBoldText}\n`;\n\nexport const CenteredCellContainer = styled.div<{ space?: boolean }>`\n margin: 0 auto;\n width: max-content;\n\n ${(props) =>\n props.space\n ? css`\n padding-right: 3rem;\n `\n : css``}\n`;\n\nexport const DeleteButton = ({\n className = \"\",\n disabled = false,\n onClick,\n}: Props) => (\n {\n e.stopPropagation();\n onClick();\n }}\n >\n \n Delete\n \n);\n\nexport const EditButton = ({\n className = \"\",\n disabled = false,\n onClick,\n}: Props) => (\n {\n e.stopPropagation();\n onClick();\n }}\n >\n \n Edit\n \n);\n","import Loader from \"components/common/Loader\";\nimport { Modal, ModalType } from \"components/common/Modal\";\nimport { Icon } from \"model/Icon\";\nimport { ExtraStylingType } from \"model/Styles\";\nimport React from \"react\";\nimport styled, { css } from \"styled-components\";\nimport { $blue4, Text } from \"styles/common\";\nimport IconComponent from \"../Icon\";\nimport { ListHeaderText, NoSearchResults, noSearchResultsText } from \"./common\";\n\nexport type ListHeader = JSX.Element | string;\nexport type ListCell = JSX.Element | number | string;\n\nexport interface ListDataRow {\n cells: ListCell[];\n color?: string;\n selected?: boolean;\n details?: any;\n}\n\ninterface Props {\n className?: string;\n headers: ListHeader[];\n data: ListDataRow[] | undefined;\n customColumnWidths?: number[];\n colorIndicator?: boolean;\n hover?: boolean;\n selectedRow?: number;\n reverseBackground?: boolean;\n noBackground?: boolean;\n headerBackground?: boolean;\n blockClicking?: number[];\n noDataText: string;\n smallEmpty?: boolean;\n fullWidth?: boolean;\n access?: boolean;\n loading?: boolean;\n searchMode?: boolean;\n hasDetails?: boolean;\n onRowClick?(item: any): void;\n retryDataLoading(): void;\n extraStyling?: ExtraStylingType;\n alignments?: (string | undefined)[];\n cellPadding?: (string | undefined)[];\n}\n\nconst ListContainer = styled.div<{ extraStyling: ExtraStylingType }>`\n display: flex;\n flex-direction: column;\n width: 100%;\n\n ${(props) => props.extraStyling}\n`;\n\nconst Header = styled.div<{ headerBackground?: boolean; fullWidth: boolean }>`\n min-height: 50px;\n position: relative;\n display: flex;\n flex-wrap: nowrap;\n align-items: center;\n padding: ${(props) => (props.fullWidth ? \"\" : \"0 1.5rem\")};\n\n ${(props) =>\n props.headerBackground &&\n css`\n background-color: #e3eaee;\n padding: 0;\n min-height: auto;\n padding: 0.5rem 1.5rem;\n `}\n`;\n\nconst HeaderItem = styled.div<{ flex?: number }>`\n padding: 0 0.25rem;\n flex: ${(props) => (props.flex ? props.flex : \"1 1\")};\n`;\n\nconst Rows = styled.div`\n position: relative;\n`;\n\nconst Row = styled.div<{\n hover?: boolean;\n selected?: boolean;\n clickable?: boolean;\n reverseBackground: boolean;\n noBackground: boolean;\n fullWidth: boolean;\n}>`\n padding: ${(props) => (props.fullWidth ? \"0.5rem 0\" : \"0.5rem 1.5rem\")};\n min-height: 0;\n position: relative;\n display: flex;\n flex-wrap: nowrap;\n align-items: center;\n\n ${(props) =>\n !props.noBackground\n ? !props.reverseBackground\n ? css`\n &:nth-of-type(odd) {\n background-color: #edf6fb;\n }\n `\n : css`\n &:nth-of-type(even) {\n background-color: #edf6fb;\n }\n `\n : css``}\n\n ${(props) =>\n props.selected\n ? css`\n &&& {\n background-color: ${$blue4};\n }\n\n p,\n span {\n color: #fff !important;\n }\n\n svg {\n fill: #fff !important;\n }\n `\n : css`\n ${props.hover &&\n css`\n &:hover {\n background-color: #d8eaf4;\n }\n `}\n\n ${props.clickable &&\n css`\n cursor: pointer;\n `}\n `}\n`;\n\nconst cellStyling = css<{ flex?: number, textAlign?: string, paddingLeft?: string }>`\n padding: 0 ${(props) => (props.paddingLeft ? props.paddingLeft : \"0.25rem\")};\n position: relative;\n width: \"100%\";\n flex: ${(props) => (props.flex ? props.flex : \"1 1\")};\n text-align: ${(props) => (props.textAlign ? props.textAlign : \"left\")};\n`;\n\nconst TextCell = styled(Text)`\n ${cellStyling}\n`;\n\nconst Cell = styled.div`\n ${cellStyling}\n`;\n\nconst ColorIndicatorContainer = styled.div`\n flex: 0 0 auto;\n width: 4px;\n padding: 0px;\n`;\n\nconst ColorIndicator = styled.div<{ color: string }>`\n top: 0;\n bottom: 0;\n width: 4px;\n position: absolute;\n left: 0;\n\n ${(props) =>\n css`\n background-color: ${props.color};\n `}\n`;\n\nconst EmptyCell = styled.div<{ flex?: number }>`\n background-color: rgb(238, 238, 238);\n background-size: 200px 100%;\n background-repeat: no-repeat;\n border-radius: 4px;\n display: inline-block;\n line-height: 1;\n height: 1rem;\n margin: 0 0.25rem;\n width: 100%;\n box-sizing: border-box;\n\n flex: ${(props) => (props.flex ? props.flex : \"1 1\")};\n`;\n\nexport const List = ({\n className = \"\",\n headers,\n data,\n customColumnWidths,\n colorIndicator,\n hover = false,\n selectedRow,\n reverseBackground = false,\n noBackground = false,\n headerBackground = false,\n blockClicking = [],\n noDataText,\n smallEmpty = false,\n fullWidth = false,\n access = true,\n loading = false,\n searchMode = false,\n hasDetails = false,\n onRowClick,\n retryDataLoading,\n extraStyling = css``,\n alignments = [],\n cellPadding = []\n}: Props) => {\n const renderNoDataRows = (\n <>\n {[...Array(smallEmpty ? 4 : 10)].map((row, rowIndex) => {\n return (\n \n {[...Array(headers.length)].map((cell, cellIndex) => {\n return (\n \n );\n })}\n \n );\n })}\n \n );\n\n return (\n \n
\n {colorIndicator && }\n {hasDetails ? : <>}\n {headers.map((header: ListHeader, index: number) => (\n \n {typeof header === \"string\" ? (\n {header}\n ) : (\n header\n )}\n \n ))}\n
\n \n {access && data ? (\n data.length > 0 ? (\n data.map((row: ListDataRow, index: number) => {\n return (\n <>\n {\n !blockClicking.includes(index) &&\n onRowClick &&\n onRowClick(index);\n }}\n >\n {colorIndicator && row.color && (\n \n \n \n )}\n {hasDetails ?
\n {hasDetails ? : <>}\n
: <>}\n {row.cells.length > 0 &&\n row.cells.map((cell: ListCell, cellIndex: number) => {\n return typeof cell === \"string\" ||\n typeof cell === \"number\" ? (\n \n {cell}\n \n ) : (\n \n {cell}\n \n );\n })}\n \n {row.details ?\n \n {colorIndicator && row.color && (\n \n \n \n )}\n
\n {row.details}\n
\n : <>}\n \n );\n })\n ) : searchMode ? (\n {noSearchResultsText}\n ) : (\n <>\n {renderNoDataRows}\n {loading ? (\n \n ) : (\n \n )}\n \n )\n ) : (\n <>\n {renderNoDataRows}\n {access &&\n (loading ? (\n \n ) : (\n \n ))}\n \n )}\n
\n \n );\n};\n","import { ExecutionsTimeUnit, executionsTimeUnits } from \"model/Time\";\n\nexport const round = (number: number, decimals: number) => {\n // Round to x decimals if applicable (doesn't add zeros after comma if it's not needed)\n let multiplier = 1;\n\n for (let i = 0; i < decimals; i++) {\n multiplier = multiplier * 10;\n }\n\n return Math.round((number + Number.EPSILON) * multiplier) / multiplier;\n};\n\nexport const getExecutionsTimeUnit = (unitId: ExecutionsTimeUnit): string =>\n (\n executionsTimeUnits.find((unit) => unit.id === unitId) ||\n executionsTimeUnits[ExecutionsTimeUnit.Second]\n ).name;\n\nexport const convertExecutions = (number: number) => {\n let string = number.toString();\n\n if (number > 999) {\n // Convert 234654 to 234.65k\n number = number / 1000;\n number = round(number, 1);\n string = number.toString() + \"k\";\n }\n\n return string;\n};\n\nexport const getExecutionsString = (\n executionsPerTimeUnit: number,\n executionsTimeUnit: ExecutionsTimeUnit\n) => `${executionsPerTimeUnit}${getExecutionsTimeUnit(executionsTimeUnit)}`;\n","import { ExecutionSpeedStatus, ExecutionSuccessStatus } from \"model/Status\";\nimport {\n $statusFail,\n $statusProblematic,\n $statusSuccess,\n $statusSuccessSlow,\n $statusUnknownOrNoStatus,\n} from \"styles/common\";\n\nexport const getSuccessStatusColor = (status: ExecutionSuccessStatus) =>\n status === ExecutionSuccessStatus.Fail\n ? $statusFail\n : status === ExecutionSuccessStatus.Success\n ? $statusSuccess\n : status === ExecutionSuccessStatus.Problematic\n ? $statusProblematic\n : $statusUnknownOrNoStatus;\n\nexport const getSpeedStatusColor = (status: ExecutionSpeedStatus) =>\n status === ExecutionSpeedStatus.Fail\n ? $statusFail\n : status === ExecutionSpeedStatus.SuccessOnTime\n ? $statusSuccess\n : status === ExecutionSpeedStatus.SuccessSlow\n ? $statusSuccessSlow\n : $statusUnknownOrNoStatus;\n","import { List } from \"components/common/List\";\nimport { IntegrationLogicalGroup } from \"model/LogicalGroup\";\nimport { ExecutionSpeedStatus, executionSpeedStatuses } from \"model/Status\";\nimport React, { Fragment } from \"react\";\nimport styled from \"styled-components\";\nimport { semiBoldText, StatusCircle, Text } from \"styles/common\";\nimport { getExecutionsString, round } from \"utils/Integration\";\nimport { getSuccessStatusColor } from \"utils/Status\";\n\ninterface Props {\n itemsToRender: IntegrationLogicalGroup[] | undefined;\n access: boolean;\n loading: boolean;\n searchMode: boolean;\n onItemClick(item: IntegrationLogicalGroup): void;\n retryDataLoading(): void;\n}\n\nconst Percentage = styled.span`\n margin-left: 0.5rem;\n ${semiBoldText}\n`;\n\nconst headersWithSlow = [\n \"Name\",\n \"Executions per time\",\n \"Total executions\",\n \"Successful executions\",\n \"Slow executions\",\n \"Failed executions\",\n];\n\nconst headersWithoutSlow = [\n \"Name\",\n \"Executions per time\",\n \"Total executions\",\n \"Successful executions\",\n \"Failed executions\",\n];\n\nexport const ListItems = ({\n itemsToRender,\n searchMode,\n access,\n loading,\n onItemClick,\n retryDataLoading,\n}: Props) => {\n const handleItemClick = (rowIndex: number) => {\n itemsToRender && onItemClick(itemsToRender[rowIndex]);\n };\n\n const renderListCells = (list: IntegrationLogicalGroup[]) =>\n list.map((item: IntegrationLogicalGroup) => {\n const failPercentage =\n item.total === 0 ? 0 : (item.fails / item.total) * 100;\n let roundedFailPercentage: number | string = round(failPercentage, 2);\n const successPercentage =\n item.total === 0 ? 0 : (item.successes / item.total) * 100;\n let roundedSuccessPercentage: number | string = round(\n successPercentage,\n 2\n );\n const successSlowPercentage =\n item.successesSlow !== null\n ? item.total === 0\n ? 0\n : (item.successesSlow / item.total) * 100\n : undefined;\n let roundedSuccessSlowPercentage: number | string | undefined =\n successSlowPercentage ? round(successSlowPercentage, 2) : undefined;\n\n // Rounded percentage is 0%, but count is not actually 0 (fail or success count % is really low relative to the other one, e.g. 0.001%)\n // --> Adjust text so user knows\n if (roundedFailPercentage === 0 && item.fails > 0) {\n roundedFailPercentage = \"> 0\";\n }\n if (roundedSuccessPercentage === 0 && item.successes > 0) {\n roundedSuccessPercentage = \"> 0\";\n }\n if (\n item.successesSlow !== null &&\n roundedSuccessSlowPercentage &&\n roundedSuccessSlowPercentage === 0 &&\n item.successesSlow > 0\n ) {\n roundedSuccessSlowPercentage = \"> 0\";\n }\n\n return {\n cells: [\n [\n item.name,\n getExecutionsString(\n item.executionsPerTimeUnit ? item.executionsPerTimeUnit : 0,\n item.executionsTimeUnit\n ),\n item.total,\n \n \n {item.successes}\n ({roundedSuccessPercentage}%)\n ,\n ],\n item.successesSlow === null\n ? []\n : [\n \n \n {item.successesSlow}\n ({roundedSuccessSlowPercentage}%)\n ,\n ],\n [\n \n \n {item.fails}\n ({roundedFailPercentage}%)\n ,\n ],\n ].flat(),\n color: getSuccessStatusColor(item.status),\n };\n });\n\n return (\n \n 0 &&\n itemsToRender[0].successesSlow !== null\n ? headersWithSlow\n : headersWithoutSlow\n }\n data={itemsToRender ? renderListCells(itemsToRender) : undefined}\n hover\n colorIndicator\n customColumnWidths={[3]}\n noDataText=\"You don't have any integrations for this environment yet.\"\n access={access}\n loading={loading}\n searchMode={searchMode}\n onRowClick={handleItemClick}\n retryDataLoading={retryDataLoading}\n />\n \n );\n};\n","import IconComponent from \"components/common/Icon\";\nimport { Icon } from \"model/Icon\";\nimport { IntegrationLogicalGroup } from \"model/LogicalGroup\";\nimport { ExecutionSpeedStatus, executionSpeedStatuses } from \"model/Status\";\nimport React from \"react\";\nimport styled, { css } from \"styled-components\";\nimport {\n $textDark,\n $textLight,\n darkText,\n StatusCircle,\n Text,\n} from \"styles/common\";\nimport {\n convertExecutions,\n getExecutionsString,\n round,\n} from \"utils/Integration\";\nimport { getSuccessStatusColor } from \"utils/Status\";\nimport { maxTilesPerPage, maxWidgetTiles } from \"..\";\nimport Loader from \"components/common/Loader\";\nimport { Modal, ModalType } from \"components/common/Modal\";\nimport {\n NoSearchResults,\n noSearchResultsText,\n} from \"components/common/List/common\";\n\ninterface Props {\n itemsToRender: IntegrationLogicalGroup[] | undefined;\n currentPage: number;\n totalItemsOnLevel: number;\n widget: boolean;\n access: boolean;\n loading: boolean;\n searchMode: boolean;\n isTopLevel(): boolean | undefined;\n goLevelUp(): void;\n onLeaveWidget(): void;\n onItemClick(item: IntegrationLogicalGroup): void;\n retryDataLoading(): void;\n}\n\nconst TilesContainer = styled.div`\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n position: relative;\n width: 100%;\n height: 100%;\n`;\n\nconst tileWidth = \"262px\";\nconst baseTileHeight = 175;\nconst tileHeight = `${baseTileHeight}px`;\nconst barWidth = \"0.3rem\";\n\nconst basicTileStyling = css`\n min-width: ${tileWidth};\n max-width: ${tileWidth};\n min-height: ${tileHeight};\n max-height: ${tileHeight};\n margin: 0 1rem 1rem 0;\n border-radius: 0.2rem;\n position: relative;\n box-sizing: border-box;\n`;\n\nconst Tile = styled.div<{ status?: number; color?: string }>`\n ${basicTileStyling}\n padding: 0.9rem 1.1rem;\n background-color: #f7fafc;\n cursor: pointer;\n transition: 0.2s;\n\n ${(props) =>\n props.status !== undefined\n ? css`\n box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.1);\n\n &:hover {\n .executionsBar {\n width: 1.5rem;\n }\n\n .totalExecutions {\n right: calc(${barWidth} + 1rem + 1.5rem);\n }\n\n .barCard {\n opacity: 1;\n display: block;\n }\n }\n `\n : css`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n background-color: #f2f7f9;\n &:hover {\n opacity: 0.85;\n }\n `}\n`;\n\nconst EmptyTile = styled.div`\n ${basicTileStyling}\n background-color: #fafbfc;\n`;\n\nconst Title = styled(Text)`\n width: 90%;\n`;\n\nconst ExecutionsPerUnit = styled.div`\n position: absolute;\n left: 1rem;\n bottom: 0.85rem;\n display: flex;\n flex-direction: row;\n`;\n\nconst Executions = styled(Text)<{ color: string }>`\n color: ${(props) => props.color};\n position: absolute;\n left: 2rem;\n bottom: 0;\n`;\n\nconst Total = styled.div`\n position: absolute;\n right: calc(${barWidth} + 1rem);\n bottom: 0.75rem;\n display: flex;\n flex-direction: column;\n align-items: flex-end;\n transition: 0.2s;\n`;\n\nconst TotalLabel = styled(Text)`\n width: 4rem;\n text-align: right;\n line-height: 0.9rem;\n`;\n\nconst TotalAmount = styled(Text)<{ color: string }>`\n color: ${(props) => props.color};\n font-size: 1.8rem;\n line-height: 1.8rem;\n`;\n\nconst BarAndCardContainer = styled.div`\n position: absolute;\n top: 0;\n right: 0;\n`;\n\nconst BarContainer = styled.div`\n width: ${barWidth};\n background-color: grey;\n height: ${tileHeight};\n transition: 0.2s;\n display: flex;\n flex-direction: column;\n border-radius: 0 0.2rem 0.2rem 0;\n overflow: hidden;\n`;\n\nconst Bar = styled.div<{ height: number; color: string }>`\n width: 100%;\n height: ${(props) => `${props.height}px`};\n background-color: ${(props) => props.color};\n position: relative;\n`;\n\nconst BarCardContainer = styled.div`\n position: absolute;\n top: 0;\n`;\n\nconst BarCard = styled(Text)<{ barMiddle: number }>`\n padding: 0.25rem;\n background-color: #fff;\n box-shadow: 2px 2px 5px 1px rgba(0, 0, 0, 0.1);\n border-radius: 0.2rem;\n width: max-content;\n transition: opacity 0.2s;\n opacity: 0;\n display: none;\n position: absolute;\n left: calc(${barWidth});\n top: ${(props) => props.barMiddle}px;\n transform: translateY(-50%);\n z-index: 1000;\n align-items: center;\n\n &:hover {\n z-index: 1001;\n }\n\n span {\n ${darkText}\n }\n`;\n\nexport const Tiles = ({\n itemsToRender,\n currentPage,\n totalItemsOnLevel,\n widget,\n access,\n loading,\n searchMode,\n isTopLevel,\n goLevelUp,\n onLeaveWidget,\n onItemClick,\n retryDataLoading,\n}: Props) => {\n const renderEmptyTiles = [\n ...Array(widget ? maxWidgetTiles + 1 : maxTilesPerPage),\n ].map((tile, index) => );\n\n const renderLoader = ;\n\n const renderEmptyData = (\n <>\n {renderEmptyTiles}\n {loading ? (\n renderLoader\n ) : (\n \n )}\n \n );\n\n const renderNoDataLoaded = (\n <>\n {renderEmptyTiles}\n {access &&\n (loading ? (\n renderLoader\n ) : (\n \n ))}\n \n );\n\n return (\n <>\n \n {access && itemsToRender ? (\n itemsToRender.length > 0 ? (\n <>\n {widget && !isTopLevel() && (\n {\n goLevelUp();\n }}\n >\n \n \n \n )}\n\n {itemsToRender.map(\n (item: IntegrationLogicalGroup, index: number) => {\n const color = getSuccessStatusColor(item.status);\n\n const failPercentage = (item.fails / item.total) * 100;\n let roundedFailPercentage: number | string = round(\n failPercentage,\n 2\n );\n const successPercentage = (item.successes / item.total) * 100;\n let roundedSuccessPercentage: number | string = round(\n successPercentage,\n 2\n );\n const successSlowPercentage =\n item.successesSlow !== null\n ? (item.successesSlow / item.total) * 100\n : undefined;\n let roundedSuccessSlowPercentage:\n | number\n | string\n | undefined = successSlowPercentage\n ? round(successSlowPercentage, 2)\n : undefined;\n\n let failBarHeight =\n item.total === 0\n ? 0\n : baseTileHeight * (item.fails / item.total);\n let successBarHeight =\n item.total === 0\n ? 0\n : baseTileHeight * (item.successes / item.total);\n let successSlowBarHeight =\n item.successesSlow !== null && item.total !== 0\n ? baseTileHeight * (item.successesSlow / item.total)\n : 0;\n\n // Rounded percentage is 0%, but count is not actually 0 (fail or success count % is really low relative to the other one, e.g. 0.001%)\n // --> Adjust text so user knows\n if (roundedFailPercentage === 0 && item.fails > 0) {\n roundedFailPercentage = \"> 0\";\n }\n if (roundedSuccessPercentage === 0 && item.successes > 0) {\n roundedSuccessPercentage = \"> 0\";\n }\n if (\n item.successesSlow !== null &&\n roundedSuccessSlowPercentage &&\n roundedSuccessSlowPercentage === 0 &&\n item.successesSlow > 0\n ) {\n roundedSuccessSlowPercentage = \"> 0\";\n }\n\n // Height of bar is too small to show --> Adjust to 1 pixel\n if (failBarHeight > 0 && failBarHeight < 1) {\n failBarHeight = 1;\n }\n if (successBarHeight > 0 && successBarHeight < 1) {\n successBarHeight = 1;\n }\n if (successSlowBarHeight > 0 && successSlowBarHeight < 1) {\n successSlowBarHeight = 1;\n }\n\n return (\n {\n onItemClick(item);\n }}\n >\n \n <StatusCircle\n color={color}\n size=\"14px\"\n style={{\n position: \"relative\",\n top: \"0.1rem\",\n }}\n />\n {item.name}\n \n \n \n \n {getExecutionsString(\n item.executionsPerTimeUnit\n ? item.executionsPerTimeUnit\n : 0,\n item.executionsTimeUnit\n )}\n \n \n \n \n Total executions\n \n \n {convertExecutions(item.total)}\n \n \n \n \n \n \n \n \n {item.total !== 0 && (\n \n \n Failed: {roundedFailPercentage}%\n \n \n Success{\" \"}\n {item.successesSlow !== null ? \"(on time)\" : \"\"}:{\" \"}\n {roundedSuccessPercentage}%\n \n {item.successesSlow !== null && (\n \n Success (too slow){\" \"}\n {roundedSuccessSlowPercentage}%\n \n )}\n \n )}\n \n \n );\n }\n )}\n\n {currentPage !== 0 &&\n itemsToRender.length < maxTilesPerPage &&\n [...Array(maxTilesPerPage - itemsToRender.length)].map(\n (emptyItem, i) => {\n return ;\n }\n )}\n\n {widget && totalItemsOnLevel > maxWidgetTiles && (\n {\n onLeaveWidget();\n }}\n >\n \n Displaying {maxWidgetTiles} of {totalItemsOnLevel}\n \n \n Show more\n \n \n )}\n \n ) : searchMode ? (\n {noSearchResultsText}\n ) : (\n renderEmptyData\n )\n ) : (\n renderNoDataLoaded\n )}\n \n \n );\n};\n","import IconComponent from \"components/common/Icon\";\nimport { Icon } from \"model/Icon\";\nimport React, { FunctionComponent } from \"react\";\nimport styled, { css } from \"styled-components\";\nimport { $blue4 } from \"styles/common\";\n\nexport interface PillType {\n id: number;\n name: string;\n icon?: Icon;\n}\n\ninterface Props {\n pills: PillType[];\n active: number;\n setActive(index: number): void;\n}\n\nconst Container = styled.div`\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n`;\n\nconst Pill = styled.a<{ active?: boolean }>`\n padding: 0.125rem 1rem;\n font-size: 0.9375rem;\n border-radius: 30px;\n display: block;\n color: ${(props) => (props.active ? \"#fff\" : $blue4)};\n cursor: pointer;\n line-height: 1.5rem;\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n\n &:hover {\n color: #2c77a1;\n\n svg {\n fill: #2c77a1;\n }\n }\n\n ${(props) =>\n props.active &&\n css`\n background-color: ${$blue4};\n\n &:hover {\n color: #fff;\n\n svg {\n fill: #fff;\n }\n }\n `}\n`;\n\nconst Pills: FunctionComponent = ({ pills, active, setActive }) => {\n return (\n \n {pills.map((pill: PillType, index: number) => (\n {\n setActive(pill.id);\n }}\n >\n {pill.icon && (\n \n )}\n {pill.name}\n \n ))}\n \n );\n};\n\nexport default Pills;\n","export const splitArray = (array: any[], parts: number) => {\n let result = [];\n for (let i = parts; i > 0; i--) {\n result.push(array.splice(0, Math.ceil(array.length / i)));\n }\n return result;\n};\n","import IconComponent from \"components/common/Icon\";\nimport { Icon } from \"model/Icon\";\nimport React, { FunctionComponent, useEffect, useState } from \"react\";\nimport styled, { css } from \"styled-components\";\nimport { $statusFail, $statusSuccess, Text } from \"styles/common\";\nimport { splitArray } from \"utils/common\";\nimport { BasicApplicationDatum } from \"model/Application\";\nimport { Modal, ModalType } from \"components/common/Modal\";\nimport ApplicationStore from \"stores/ApplicationStore\";\nimport { inject, observer } from \"mobx-react\";\nimport GeneralStore from \"stores/GeneralStore\";\nimport Loader from \"components/common/Loader\";\n\ninterface Props {\n applicationStore: ApplicationStore;\n generalStore: GeneralStore;\n loaded?: boolean; // For unit tests\n}\n\nconst Container = styled.div`\n margin-bottom: 0.5rem;\n width: 100%;\n`;\n\nconst ApplicationsContainer = styled.div<{ columns?: boolean }>`\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n justify-content: space-between;\n margin: 1rem 0;\n position: relative;\n`;\n\nconst ApplicationsColumn = styled.div`\n width: 24%;\n`;\n\nconst Application = styled.div<{ backgroundColor: string; empty?: boolean }>`\n width: calc(100% - 1.5em);\n padding: 0.6rem 0.75rem;\n transition: 0.2s;\n display: flex;\n flex-direction: row;\n align-items: center;\n background-color: ${(props) => props.backgroundColor};\n\n ${(props) =>\n css`\n height: 1rem;\n `}\n`;\n\nconst EmptyCell = styled.div`\n background-color: rgb(238, 238, 238);\n background-size: 200px 100%;\n background-repeat: no-repeat;\n border-radius: 4px;\n display: inline-block;\n line-height: 1;\n height: 1rem;\n margin: 0 0.25rem;\n width: 100%;\n box-sizing: border-box;\n`;\n\nconst Runtime = styled.div`\n margin-right: 1rem;\n width: 1rem;\n height: 1rem;\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n`;\n\nconst Success = styled.div`\n display: block;\n width: 0.75rem;\n height: 0.75rem;\n box-sizing: border-box;\n background-color: ${$statusSuccess};\n border-radius: 50%;\n`;\n\nconst ApplicationsRuntime: FunctionComponent = ({\n applicationStore,\n generalStore,\n loaded = false,\n}) => {\n const [dataLoad, setDataLoad] = useState(loaded);\n const columns = 4;\n\n useEffect(() => {\n applicationStore.getApplicationsRuntime().finally(() => {\n setDataLoad(true);\n });\n }, [applicationStore, generalStore.currentEnvironment]);\n\n const handleDataReload = () => {\n if (!generalStore.currentEnvironment) {\n generalStore.getEnvironments().then(() => {\n applicationStore.getApplicationsRuntime();\n });\n } else applicationStore.getApplicationsRuntime();\n };\n\n return (\n \n \n {splitArray(\n [\n ...(applicationStore.applicationsRuntime\n ? applicationStore.applicationsRuntime\n : []),\n ],\n columns\n ).map((items, columnIndex) => {\n if (\n (applicationStore.applicationsRuntime &&\n applicationStore.applicationsRuntime.length === 0) ||\n !applicationStore.applicationsRuntime\n ) {\n return (\n \n {[...Array(3)].map((item, itemIndex) => (\n \n \n \n ))}\n \n );\n }\n return (\n \n {items.map((item: BasicApplicationDatum, itemIndex: number) => (\n \n \n {item.up ? (\n \n ) : (\n \n )}\n \n {item.name}\n \n ))}\n \n );\n })}\n\n {!dataLoad ? (\n \n ) : applicationStore.applicationsRuntime &&\n applicationStore.applicationsRuntime.length === 0 ? (\n \n ) : (\n !applicationStore.applicationsRuntime && (\n \n )\n )}\n \n \n );\n};\n\nexport default inject(\n \"generalStore\",\n \"applicationStore\"\n)(\n observer(\n ApplicationsRuntime as FunctionComponent<\n Omit\n >\n )\n);\n","import Legend from \"components/common/Legend\";\nimport Loader from \"components/common/Loader\";\nimport { Modal, ModalType } from \"components/common/Modal\";\nimport { inject, observer } from \"mobx-react\";\nimport { TotalExecutions } from \"model/Integration\";\nimport { ExecutionSpeedStatus, executionSpeedStatuses } from \"model/Status\";\nimport { GlobalTimeFrame } from \"model/Time\";\nimport React, { FunctionComponent, useEffect, useState } from \"react\";\nimport { Line } from \"react-chartjs-2\";\nimport GeneralStore from \"stores/GeneralStore\";\nimport IntegrationStore from \"stores/IntegrationStore\";\nimport styled, { css } from \"styled-components\";\nimport { $textLight } from \"styles/common\";\nimport {\n getLastDaysLabels,\n getLastHoursLabels,\n getLastMonthLabels,\n getLastQuarterLabels,\n getLastWeekLabels,\n} from \"utils/Date\";\n\ninterface Props {\n integrationStore: IntegrationStore;\n generalStore: GeneralStore;\n access: boolean;\n loaded?: boolean; // For unit tests\n}\n\nconst Container = styled.div`\n width: 100%;\n display: flex;\n flex-direction: row;\n`;\n\nconst ChartContainer = styled.div`\n width: 85%;\n height: 13rem;\n position: relative;\n`;\n\nconst TotalExecutionsChart: FunctionComponent = ({\n integrationStore,\n generalStore,\n access,\n loaded,\n}) => {\n const [dataLoad, setDataLoad] = useState(loaded);\n\n const hasSlowStatus =\n integrationStore.totalExecutions &&\n integrationStore.totalExecutions.length > 0 &&\n integrationStore.totalExecutions.find(\n (data) => data.status === ExecutionSpeedStatus.SuccessSlow\n );\n\n useEffect(() => {\n access &&\n integrationStore.getTotalExecutionsData().finally(() => {\n setDataLoad(true);\n });\n }, [\n generalStore.currentEnvironment,\n generalStore.timeFrame,\n integrationStore,\n access,\n ]);\n\n const handleDataReload = () => {\n access && integrationStore.getTotalExecutionsData();\n };\n\n return (\n \n \n {\n const status = executionSpeedStatuses[dataSet.status];\n\n const addExplanation =\n status.status !== ExecutionSpeedStatus.Fail &&\n integrationStore.totalExecutions &&\n !!integrationStore.totalExecutions.find(\n (totalExecutionData) =>\n totalExecutionData.status ===\n ExecutionSpeedStatus.SuccessSlow\n );\n // Label has to be unique! Otherwise a 'visible'-error will occur from the library\n return {\n label: `${status.name}${\n addExplanation ? ` (${status.explanation})` : \"\"\n }`,\n data: dataSet.data,\n borderColor: status.color,\n backgroundColor: status.transparentColor,\n fill: index === 0 ? true : index - 1,\n };\n }\n ),\n ]\n : [],\n }}\n options={{\n maintainAspectRatio: false,\n //@ts-ignore\n interaction: {\n intersect: false,\n mode: \"index\",\n },\n scales: {\n //@ts-ignore\n x: {\n grid: {\n display: false,\n },\n },\n y: {\n stacked: true,\n min: 0,\n },\n },\n elements: {\n line: {\n tension: 0.3,\n },\n },\n plugins: {\n legend: {\n display: false,\n },\n tooltip: {\n enabled: false,\n external: function (context: any) {\n // Tooltip Element\n var tooltipEl = document.getElementById(\n \"chartjs-tooltip-total-executions\"\n );\n\n // Create element on first render\n if (!tooltipEl) {\n tooltipEl = document.createElement(\"div\");\n tooltipEl.id = \"chartjs-tooltip-total-executions\";\n tooltipEl.innerHTML = \"
\";\n document.body.appendChild(tooltipEl);\n }\n\n // Hide if no tooltip\n var tooltipModel = context.tooltip;\n if (tooltipModel.opacity === 0) {\n tooltipEl.style.display = \"none\";\n return;\n }\n\n // Set caret Position\n tooltipEl.classList.remove(\"above\", \"below\", \"no-transform\");\n if (tooltipModel.yAlign) {\n tooltipEl.classList.add(tooltipModel.yAlign);\n } else {\n tooltipEl.classList.add(\"no-transform\");\n }\n\n function getBody(bodyItem: any) {\n return bodyItem.lines;\n }\n\n // Set tooltip content\n if (tooltipModel.body) {\n var bodyLines = tooltipModel.body.map(getBody).reverse();\n\n // Title\n let innerHtml = `

${tooltipModel.title}

`;\n\n // Content\n let total: number = 0;\n let htmlValueLines: string = \"\";\n\n bodyLines.forEach(function (body: any, i: number) {\n const statusColors = [\n ...tooltipModel.labelColors,\n ].reverse();\n var colors = statusColors[i];\n htmlValueLines += `
`;\n htmlValueLines += `
`;\n const label = body[0].split(\":\")[0];\n const value = body[0].split(\":\")[1];\n htmlValueLines += `

${label}: ${value}

`;\n htmlValueLines += `
`;\n total += parseInt(value.replace(',','').replace('.',''));\n });\n\n innerHtml += `

Total: ${total.toLocaleString('en-US', {maximumFractionDigits:0})}

`;\n innerHtml += htmlValueLines;\n\n var tableRoot = tooltipEl.querySelector(\"div\");\n if (tableRoot) {\n tableRoot.innerHTML = innerHtml;\n }\n }\n\n var position = context.chart.canvas.getBoundingClientRect();\n\n // Display, position, and set styles for font\n tooltipEl.style.display = \"flex\";\n tooltipEl.style.position = \"absolute\";\n tooltipEl.style.left =\n position.left +\n window.pageXOffset +\n tooltipModel.caretX +\n \"px\";\n tooltipEl.style.top =\n position.top +\n window.pageYOffset +\n tooltipModel.caretY +\n \"px\";\n tooltipEl.style.padding =\n tooltipModel.padding + \"px \" + tooltipModel.padding + \"px\";\n tooltipEl.style.borderRadius = \"0.1rem\";\n tooltipEl.style.display = \"flex\";\n tooltipEl.style.flexDirection = \"row\";\n tooltipEl.style.boxShadow =\n \"0px 1px 1px 1px rgba(0, 0, 0, 0.15)\";\n tooltipEl.style.backgroundColor = \"#fefefe\";\n tooltipEl.style.padding = \"0.5rem 0.75rem\";\n tooltipEl.style.pointerEvents = \"none\";\n tooltipEl.style.color = $textLight;\n },\n },\n },\n }}\n />\n\n {access &&\n (!dataLoad ? (\n \n ) : integrationStore.totalExecutions &&\n integrationStore.totalExecutions.length === 0 ? (\n \n ) : (\n !integrationStore.totalExecutions && (\n \n )\n ))}\n
\n\n {access && integrationStore.totalExecutions && (\n 0\n ? [\n ...integrationStore.totalExecutions.map(\n (dataSet: TotalExecutions) => {\n const status = executionSpeedStatuses[dataSet.status];\n\n return {\n boldValue: undefined,\n explanation: `${status.name}${\n hasSlowStatus && status.explanation\n ? ` (${status.explanation})`\n : \"\"\n }`,\n color: status.color,\n };\n }\n ),\n ].reverse()\n : []\n }\n vertical\n small\n extraStyling={css`\n min-width: 10rem;\n margin-left: 1.5rem;\n `}\n />\n )}\n
\n );\n};\n\nexport default inject(\n \"generalStore\",\n \"integrationStore\"\n)(\n observer(\n TotalExecutionsChart as FunctionComponent<\n Omit\n >\n )\n);\n","import CalendarHeatMap, {\n calendarWidth,\n} from \"components/Integrations/CalendarHeatMap\";\nimport Card, { CardSpacer, FilterHeader } from \"components/common/Card\";\nimport IntegrationsHeatMap from \"components/Integrations/IntegrationsHeatMap\";\nimport Pills from \"components/common/Pills\";\nimport React, { FunctionComponent } from \"react\";\nimport styled, { css } from \"styled-components\";\nimport {\n $statusFail,\n $statusSuccess,\n Filter,\n Link,\n Select,\n Text,\n} from \"styles/common\";\nimport ApplicationsRuntime from \"components/Applications/ApplicationsRuntime\";\nimport { Prompt } from \"react-router\";\nimport { inject, observer } from \"mobx-react\";\nimport NavigationStore from \"stores/NavigationStore\";\nimport { Route } from \"model/Navigation\";\nimport Legend from \"components/common/Legend\";\nimport { GlobalTimeFrame, globalTimeFrames } from \"model/Time\";\nimport GeneralStore from \"stores/GeneralStore\";\nimport ApplicationStore from \"stores/ApplicationStore\";\nimport IntegrationStore from \"stores/IntegrationStore\";\nimport TotalExecutionsChart from \"components/Integrations/TotalExecutionsChart\";\nimport AuthenticationStore from \"stores/AuthenticationStore\";\nimport { PermissionArea, PermissionType } from \"model/Claim\";\nimport { NoAccessModal } from \"components/common/Modal\";\n\ninterface Props {\n generalStore: GeneralStore;\n applicationStore: ApplicationStore;\n integrationStore: IntegrationStore;\n navigationStore: NavigationStore;\n authenticationStore: AuthenticationStore;\n}\n\nconst AreaChartContainer = styled.div`\n margin-bottom: 1rem;\n`;\n\nconst ApplicationsHeader = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n position: relative;\n width: 100%;\n`;\n\nconst ApplicationsHeaderTitle = styled.p`\n margin-right: 1.5rem;\n`;\n\nconst General: FunctionComponent = ({\n generalStore,\n applicationStore,\n integrationStore,\n navigationStore,\n authenticationStore,\n}) => {\n const accessViewApplication = authenticationStore.userHasPermission(\n PermissionArea.Application,\n PermissionType.View\n );\n\n const accessViewIntegration = authenticationStore.userHasPermission(\n PermissionArea.Integration,\n PermissionType.View\n );\n\n const renderIntegrationsFilter = () => (\n \n \n My integrations on\n \n {\n generalStore.setCurrentEnvironment(parseInt(e.target.value));\n }}\n >\n {generalStore.environments &&\n generalStore.environments.map((environment, index) => (\n \n ))}\n \n \n );\n\n const renderApplicationsRuntimeCard = () => (\n \n Applications\n\n \n\n {\n navigationStore.navigate(Route.Applications);\n }}\n extraStyling={css`\n position: absolute;\n right: 0;\n `}\n >\n Go to details\n \n \n }\n extraStyling={css`\n min-height: 8rem;\n `}\n >\n {accessViewApplication ? : }\n \n );\n\n const renderIntegrationsCard = () =>\n generalStore.timeFrame ? (\n \n

My integrations

\n {\n generalStore.setTimeFrame(id);\n }}\n />\n \n }\n >\n {!accessViewIntegration && }\n \n\n {\n navigationStore.navigate(Route.Integrations);\n }}\n widget={true}\n access={accessViewIntegration}\n />\n\n \n\n \n Total executions\n \n\n \n \n \n \n ) : (\n <>\n );\n\n const renderCalendarCard = () => (\n Overall success rate

}\n extraStyling={css`\n min-width: calc(${calendarWidth}px + 3rem);\n min-height: 8rem;\n `}\n >\n {accessViewIntegration ? : }\n \n );\n\n return (\n <>\n {\n if (!location.pathname.startsWith(Route.General)) {\n // Reset data when leaving page\n applicationStore.resetApplicationsRuntime();\n integrationStore.resetTotalExecutions();\n generalStore.resetCalendarSuccessRate();\n }\n return true;\n }}\n />\n\n {renderIntegrationsFilter()}\n\n {renderApplicationsRuntimeCard()}\n\n {renderIntegrationsCard()}\n\n {renderCalendarCard()}\n \n );\n};\n\nexport default inject(\n \"generalStore\",\n \"applicationStore\",\n \"integrationStore\",\n \"navigationStore\",\n \"authenticationStore\"\n)(\n observer(\n General as FunctionComponent<\n Omit<\n Props,\n | \"generalStore\"\n | \"applicationStore\"\n | \"integrationStore\"\n | \"navigationStore\"\n | \"authenticationStore\"\n >\n >\n )\n);\n","export default __webpack_public_path__ + \"static/media/azure-api-management.cfa04486.svg\";","export default __webpack_public_path__ + \"static/media/azure-logic-app.6384099c.svg\";","export default __webpack_public_path__ + \"static/media/azure-function.4f40b897.svg\";","export default __webpack_public_path__ + \"static/media/azure-vpn-gateway.51a0efae.svg\";","export default __webpack_public_path__ + \"static/media/azure-esb.6022b9bd.svg\";","export default __webpack_public_path__ + \"static/media/application.9c882fc4.svg\";","export default __webpack_public_path__ + \"static/media/application-endpoint.b99c30d8.svg\";","export default __webpack_public_path__ + \"static/media/vpn-gateway.7908d5f8.svg\";","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","export default __webpack_public_path__ + \"static/media/boomi-process.61b482f3.svg\";","export default __webpack_public_path__ + \"static/media/other-infrastructure-component.71217b37.svg\";","export default __webpack_public_path__ + \"static/media/other-developer-component.71217b37.svg\";","export default __webpack_public_path__ + \"static/media/unknown.71217b37.svg\";","import React, { FunctionComponent } from \"react\";\nimport * as icons from \"assets/platformcomponenttypeicons\";\n\nimport styled, { css } from \"styled-components\";\nimport { ExtraStylingType } from \"model/Styles\";\n\nexport interface Props {\n name: string;\n size?: string;\n extraStyling?: ExtraStylingType;\n}\n\nconst Image = styled.img<{\n size: string;\n extraStyling: ExtraStylingType;\n}>`\n height: ${(props) => props.size};\n ${(props) => props.extraStyling};\n`;\n\nconst PlatformComponentTypeIconComponent: FunctionComponent = ({\n name,\n size = \"1.3rem\",\n extraStyling = css``,\n}) => {\n const iconName = name.toString().toLowerCase().replace(/ /g, \"\");\n //@ts-ignore\n const src = icons[iconName] ? icons[iconName] : icons[\"unknown\"];\n\n return (\n \n );\n};\n\nexport default PlatformComponentTypeIconComponent as FunctionComponent;\n","import { $grey, $textDark, $textLight } from \"styles/common\";\n\n// Hover over application --> highlight related platform components\nexport const highlightApplicationRelations = (\n applicationId: string,\n show: boolean\n) => {\n const platformComponents = document.getElementsByClassName(\n `platform-component ${applicationId}`\n ) as HTMLCollectionOf;\n\n if (platformComponents.length > 0) {\n for (let platformComponent of platformComponents) {\n const isTile = platformComponent.parentElement?.className.includes(\n \"platform-component-tile\"\n );\n if (isTile) {\n platformComponent.style.border = show\n ? `1px solid ${$textLight}`\n : \"1px solid transparent\";\n } else {\n platformComponent.style.backgroundColor = show ? $grey : \"transparent\";\n platformComponent.getElementsByTagName(\"p\")[0].style.color = show\n ? $textDark\n : $textLight;\n }\n }\n }\n};\n\n// Hover over platform component --> highlight related applications\nexport const highlightRelatedApplications = (\n applicationIds: string[],\n show: boolean,\n reset?: boolean\n) => {\n if (reset) {\n // Remove previously hightlighted applications (in case an item was clicked)\n const applicationComponents = document.getElementsByClassName(\n \"application\"\n ) as HTMLCollectionOf;\n if (applicationComponents.length > 0) {\n for (let applicationComponent of applicationComponents) {\n applicationComponent.style.backgroundColor = \"transparent\";\n applicationComponent.style.color = $textLight;\n }\n }\n }\n\n // Highlight related applications\n applicationIds.forEach((applicationId) => {\n const applicationComponent = document.getElementsByClassName(\n `application ${applicationId}`\n )[0] as HTMLElement;\n\n if (applicationComponent) {\n applicationComponent.style.backgroundColor = show ? $grey : \"transparent\";\n applicationComponent.style.color = show ? $textDark : $textLight;\n }\n });\n};\n","import PlatformComponentTypeIconComponent from \"components/Integrations/PlatformComponentTypeIcon\";\nimport { inject, observer } from \"mobx-react\";\nimport {\n LocationGroupNodeData,\n LocationGroupNodePlatformData,\n} from \"model/Node\";\nimport { ExecutionSuccessStatus } from \"model/Status\";\nimport React, { useState } from \"react\";\nimport { FunctionComponent } from \"react\";\nimport { Handle, Position } from \"react-flow-renderer\";\nimport IntegrationStore from \"stores/IntegrationStore\";\nimport styled, { css } from \"styled-components\";\nimport {\n $statusSuccess,\n $statusFail,\n Text,\n $statusProblematic,\n StatusCircle,\n $grey,\n $textDark,\n StyledReactTooltip,\n $textLight,\n $statusUnknownOrNoStatus,\n} from \"styles/common\";\nimport { highlightRelatedApplications } from \"utils/Application\";\nimport { getSuccessStatusColor } from \"utils/Status\";\n\ninterface Props {\n data: LocationGroupNodeData;\n integrationStore: IntegrationStore;\n}\n\nconst tileSize = \"14px\";\nconst nodeWidth = \"18rem\";\nexport const maxBarItems = 10;\n\nconst Container = styled.div<{ status: number }>`\n width: ${nodeWidth};\n background-color: #f7fafc;\n border-left: 4px solid\n ${(props) =>\n props.status !== undefined ? getSuccessStatusColor(props.status) : $grey};\n border-radius: 0.2rem;\n box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.1);\n`;\n\nconst TitleContainer = styled.div<{ status: number }>`\n padding: 0.5rem 1rem 0.5rem 1rem;\n border-radius: 0.2rem 0.2rem 0 0;\n display: flex;\n flex-direction: row;\n align-items: center;\n border-bottom: 1px solid #ddd;\n\n &:hover {\n opacity: 0.8;\n }\n`;\n\nconst Title = styled(Text)`\n margin: 0;\n color: rgba(0, 0, 0, 0.7);\n`;\n\nconst Content = styled.div`\n border-top: none;\n padding: 0.5rem 0;\n`;\n\nconst PlatformComponentsContainer = styled.div<{ showTiles: boolean }>`\n display: flex;\n flex-direction: ${(props) => (props.showTiles ? \"row\" : \"column\")};\n\n ${(props) =>\n props.showTiles &&\n css`\n flex-wrap: wrap;\n padding: 0.5rem 1rem;\n `}\n`;\n\nconst PlatformComponentContainer = styled.div`\n position: relative;\n`;\n\nconst TileContainer = styled.div`\n position: relative;\n`;\n\nconst Tile = styled.div<{ status: number }>`\n width: ${tileSize};\n height: ${tileSize};\n min-width: ${tileSize};\n min-height: ${tileSize};\n background-color: ${(props) =>\n props.status === ExecutionSuccessStatus.Fail\n ? $statusFail\n : props.status === ExecutionSuccessStatus.Success\n ? $statusSuccess\n : props.status == ExecutionSuccessStatus.Problematic\n ? $statusProblematic\n : $statusUnknownOrNoStatus}};\n border: 1px solid transparent;\n border-radius: 50%;\n margin: 0.2rem;\n cursor: pointer;\n\n &:hover {\n opacity: 0.8;\n }\n`;\n\nconst TooltipTitle = styled(Text)`\n margin: 0 0 0 0.5rem;\n`;\n\nconst Bar = styled.div`\n padding: 0.4rem 1rem;\n display: flex;\n flex-direction: row;\n justify-content: flex-start;\n align-items: center;\n gap: 0.5rem;\n cursor: pointer;\n box-sizing: border-box;\n transition: 0.2s;\n\n &:hover {\n background-color: ${$grey} !important;\n p {\n color: ${$textDark} !important;\n }\n }\n`;\n\nconst PlatformComponent: FunctionComponent<{\n index: number;\n platformComponent: LocationGroupNodePlatformData;\n showTiles: boolean;\n integrationStore: IntegrationStore;\n}> = ({ index, platformComponent, showTiles, integrationStore }) => {\n const [showTooltip, setShowTooltip] = useState(false);\n const [selected, setSelected] = useState(false);\n\n const onMouseOver = () => {\n integrationStore.setCurrentPlatformComponent(platformComponent);\n if (platformComponent.applications) {\n highlightRelatedApplications(\n platformComponent.applications,\n true,\n !!integrationStore.currentPlatformComponent // Item was clicked -> remove previous highlights first\n );\n }\n };\n\n const onClick = () => {\n setSelected(true);\n };\n\n const onMouseLeave = () => {\n if (integrationStore.currentPlatformComponent && !selected) {\n integrationStore.setCurrentPlatformComponent(undefined);\n if (platformComponent.applications) {\n highlightRelatedApplications(platformComponent.applications, false);\n }\n }\n };\n\n return (\n {\n onMouseOver();\n showTiles && setShowTooltip(true);\n }}\n onClick={() => {\n onClick();\n }}\n onMouseLeave={() => {\n onMouseLeave();\n showTiles && setShowTooltip(false);\n }}\n >\n {showTiles ? (\n \n ) : (\n \n )}\n \n );\n};\n\nconst PlatformComponentTile: FunctionComponent<{\n platformComponent: LocationGroupNodePlatformData;\n showTooltip: boolean;\n}> = ({ platformComponent, showTooltip }) => {\n return (\n \n \n {showTooltip && (\n \n \n {platformComponent.name}\n \n )}\n \n );\n};\n\nconst PlatformComponentBar: FunctionComponent<{\n platformComponent: LocationGroupNodePlatformData;\n}> = ({ platformComponent }) => {\n return (\n \n \n \n {platformComponent.name}\n \n );\n};\n\nconst CustomNode: FunctionComponent = ({ data, integrationStore }) => {\n const showTiles: boolean = data.platformComponents.length > maxBarItems;\n\n const onMouseOver = () => {\n !integrationStore.currentLogicalGroup &&\n integrationStore.setCurrentLogicalGroup(data);\n };\n\n const onMouseLeave = () => {\n integrationStore.currentLogicalGroup &&\n integrationStore.setCurrentLogicalGroup(undefined);\n };\n\n return (\n data && (\n \n {}}\n />\n \n {data.name}\n \n \n \n {data.platformComponents.map(\n (\n platformComponent: LocationGroupNodePlatformData,\n index: number\n ) => {\n return (\n \n );\n }\n )}\n \n \n \n \n )\n );\n};\n\nexport default inject(\"integrationStore\")(\n observer(CustomNode as FunctionComponent>)\n);\n","import { inject, observer } from \"mobx-react\";\nimport { LocationGroupLinkData } from \"model/Edge\";\nimport { getExecutionSpeedStatus } from \"model/Status\";\nimport React, { Fragment, FunctionComponent } from \"react\";\nimport {\n EdgeProps,\n getBezierPath,\n getEdgeCenter,\n getMarkerEnd,\n} from \"react-flow-renderer\";\nimport IntegrationStore from \"stores/IntegrationStore\";\nimport styled from \"styled-components\";\nimport { Text } from \"styles/common\";\n\ninterface Props {\n integrationStore: IntegrationStore;\n}\n\nconst foreignObjectSize = 40;\n\nconst LabelContainer = styled.div`\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n height: 100%;\n width: 100%;\n`;\n\nconst Label = styled(Text)`\n padding: 0.2rem 0.25rem;\n background-color: rgba(255, 255, 255, 0.9);\n border-radius: 0.2rem;\n font-size: 0.7rem;\n`;\n\nconst basicValues = {\n startLength: 10, // pixels\n startDuration: 1, // seconds\n};\n// duration = ((length / startLength) * startDuration) / speed\n\nconst CustomEdge: FunctionComponent = ({\n id,\n sourceX,\n sourceY,\n targetX,\n targetY,\n sourcePosition,\n targetPosition,\n style = {},\n data,\n arrowHeadType,\n markerEndId,\n integrationStore,\n}) => {\n const linkData: LocationGroupLinkData = data;\n\n const edgePath = getBezierPath({\n sourceX,\n sourceY,\n sourcePosition,\n targetX,\n targetY,\n targetPosition,\n });\n const markerEnd = getMarkerEnd(arrowHeadType, markerEndId);\n const [edgeCenterX, edgeCenterY] = getEdgeCenter({\n sourceX,\n sourceY,\n targetX,\n targetY,\n });\n\n const renderTraffic = () => {\n const path = document.querySelector(`path#${id}`) as SVGGeometryElement;\n const pathLength = path && path.getTotalLength();\n\n const duration =\n ((pathLength / basicValues.startLength) * basicValues.startDuration) /\n (linkData.latency * 3);\n\n // Show 1 to 10 animated circles depending on traffic\n let traffic = Math.round(\n (linkData.amountOfCalls / linkData.highestTraffic) * 10\n );\n\n if (linkData.amountOfCalls > 0 && traffic === 0) {\n // Show at least one circle when amount of calls is higher than zero\n traffic = 1;\n } else {\n return <>\n }\n\n return [...Array(traffic)].map((item, index) => {\n return (\n \n \n \n \n \n );\n });\n };\n\n const status = getExecutionSpeedStatus(linkData.status);\n\n return (\n <>\n \n {integrationStore.showTraffic && renderTraffic()}\n\n {data && (\n \n \n \n \n \n \n \n )}\n \n );\n};\n\nexport default inject(\"integrationStore\")(\n observer(CustomEdge as FunctionComponent>)\n);\n","import React, {\n useState,\n useEffect,\n FunctionComponent,\n useCallback,\n} from \"react\";\nimport ReactFlow, {\n ReactFlowProvider,\n isNode,\n Position,\n useStoreState,\n useStoreActions,\n Node,\n Edge,\n Controls,\n FlowElement,\n} from \"react-flow-renderer\";\nimport dagre from \"dagre\";\nimport CustomNode from \"../CustomNode\";\nimport styled, { css } from \"styled-components\";\nimport CustomEdge from \"components/Integrations/CustomEdge\";\nimport IntegrationStore from \"stores/IntegrationStore\";\nimport IconComponent from \"components/common/Icon\";\nimport { Icon } from \"model/Icon\";\nimport { Button, smallText, Text } from \"styles/common\";\nimport { LocationGroupNodeData } from \"model/Node\";\nimport { ExtraStylingType } from \"model/Styles\";\nimport { LogicalGroupLayoutPositionSave } from \"model/LogicalGroup\";\n\ninterface DiagramProps {\n nodes: Node[];\n edges: Edge[];\n connectionHovering?: boolean;\n height?: string;\n onNodeMove?: () => void;\n interactive?: boolean;\n onInteractivity?: () => void;\n onSave(\n layout: LogicalGroupLayoutPositionSave[]\n ): Promise | undefined;\n integrationStore: IntegrationStore;\n}\n\ninterface Props extends DiagramProps {\n width?: string;\n extraStyling?: ExtraStylingType;\n}\n\nconst FlowDiagramContainer = styled.div<{\n width: string;\n interactive: boolean;\n extraStyling?: ExtraStylingType;\n}>`\n border: 1px solid #efefef;\n border-radius: 0.2rem;\n max-width: ${(props) => props.width};\n\n ${(props) =>\n !props.interactive &&\n css`\n overflow: scroll;\n `}\n\n ${(props) => props.extraStyling}\n`;\n\nconst DiagramContainer = styled.div`\n position: relative;\n`;\n\nconst SaveActions = styled.div`\n display: flex;\n flex-direction: column;\n position: absolute;\n top: 0.625rem;\n left: 0.625rem;\n box-shadow: 0 0 2px 1px rgb(0 0 0 / 8%);\n`;\n\nconst SaveButton = styled(IconComponent)<{ disable: boolean }>`\n width: 1rem;\n height: 1rem;\n padding: 0.5rem;\n transition: 0.2s;\n z-index: 100;\n position: relative;\n transition: 0.2s;\n\n &:after {\n color: #333;\n ${smallText}\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n left: 2.5rem;\n width: max-content;\n opacity: 0;\n transition: 0.2s;\n }\n\n ${(props) =>\n props.disable\n ? css`\n svg {\n fill: rgba(0, 0, 0, 0.3);\n }\n\n &:after {\n content: none;\n }\n `\n : css`\n cursor: pointer;\n\n &:hover {\n background-color: #f4f4f4;\n\n &:after {\n opacity: 1;\n }\n }\n `}\n`;\n\nconst Modal = styled.div`\n position: absolute;\n top: 0;\n left: 2.5rem;\n text-align: center;\n z-index: 11;\n width: 230px;\n background-color: #fff;\n color: #5f7787;\n font-size: 0.9375rem;\n padding: 1rem 3rem;\n border-radius: 0.2rem;\n display: flex;\n flex-direction: column;\n box-shadow: 0 0 2px 1px rgb(0 0 0 / 8%);\n z-index: 100;\n`;\n\nconst ModalActions = styled.div``;\n\nconst dagreGraph = new dagre.graphlib.Graph();\ndagreGraph.setDefaultEdgeLabel(() => ({}));\n\nconst nodeTypes = {\n customNode: CustomNode,\n};\n\nconst edgeTypes = {\n customEdge: CustomEdge,\n};\n\nconst getLayoutedElements = (\n elements: FlowElement[],\n nodesWithSize: Node[],\n setGraphHeight: (height: number) => void,\n setGraphWidth: (width: number) => void,\n direction = \"TB\"\n) => {\n const isHorizontal = direction === \"LR\";\n\n // Basic graph layouting settings\n dagreGraph.setGraph({\n rankdir: direction,\n edgesep: 250,\n nodesep: 50,\n ranksep: 50,\n marginx: 64,\n marginy: 32,\n });\n\n // Set all optimal node & edge positions according to dagre\n elements.forEach((element: any) => {\n if (isNode(element)) {\n // Use node size to determine optimal position\n const nodeWithSize = nodesWithSize.find(\n (node: any) => node.id === element.id\n );\n\n nodeWithSize &&\n dagreGraph.setNode(element.id, {\n width: nodeWithSize.__rf.width,\n height: nodeWithSize.__rf.height,\n });\n } else {\n dagreGraph.setEdge(element.source, element.target);\n }\n });\n\n // Create layout\n dagre.layout(dagreGraph);\n\n // Set graph size\n const graph = dagreGraph.graph();\n graph.height && setGraphHeight(graph.height);\n graph.width && setGraphWidth(graph.width);\n\n const positionedElements = elements.map((element: any) => {\n if (isNode(element)) {\n // Set handle positions\n element.targetPosition = isHorizontal ? Position.Left : Position.Top;\n element.sourcePosition = isHorizontal ? Position.Right : Position.Bottom;\n\n // Add positioning to nodes according to dagre if no positions were yet saved\n // React-flow-renderer draws the nodes on these positions\n if (\n (element.position.x === 0 || element.position.x === null) &&\n (element.position.y === 0 || element.position.y === null)\n ) {\n const nodeWithData = nodesWithSize.find(\n (node: any) => node.id === element.id\n );\n\n if (nodeWithData) {\n const nodeWithPosition = dagreGraph.node(element.id);\n\n element.position = {\n x:\n nodeWithPosition.x -\n nodeWithData.__rf.width / 2 +\n Math.random() / 1000,\n y: nodeWithPosition.y - nodeWithData.__rf.height / 2,\n };\n }\n }\n }\n\n return element;\n });\n\n return positionedElements;\n};\n\nconst nodeHasDimension = (node: Node) => {\n return node.__rf && node.__rf.width !== null && node.__rf.height !== null;\n};\n\nconst Diagram: FunctionComponent = ({\n nodes,\n edges,\n height,\n connectionHovering,\n onNodeMove,\n interactive,\n onInteractivity,\n onSave,\n integrationStore,\n}) => {\n // Node states are needed to get the width and height of the custom nodes\n const nodesWithData = useStoreState((store) => store.nodes);\n const setNodesData = useStoreActions((actions) => actions.setElements);\n\n const [layoutIsSet, setLayoutIsSet] = useState(false);\n const [elementsLayout, setElementsLayout] = useState([]);\n\n const [originalNodesWithData, setOriginalNodesWithData] = useState<\n Node[] | undefined\n >(undefined);\n\n const [showSaveModal, setShowSaveModal] = useState(false);\n const [showResetModal, setShowResetModal] = useState(false);\n\n const [enableSaveButtons, setEnableSaveButtons] = useState(false);\n\n const [graphHeight, setGraphHeight] = useState(0);\n const [graphWidth, setGraphWidth] = useState(0);\n\n const handleMouseOver = useCallback(() => {\n const edgesContainer = document.getElementsByClassName(\n \"react-flow__edges\"\n )[0] as HTMLElement;\n\n edgesContainer.style.zIndex = \"100\";\n }, []);\n\n const handleMouseLeave = useCallback(() => {\n const edgesContainer = document.getElementsByClassName(\n \"react-flow__edges\"\n )[0] as HTMLElement;\n\n edgesContainer.style.zIndex = \"2\";\n }, []);\n\n useEffect(() => {\n // Reload diagram after integration filters changed\n setLayoutIsSet(false);\n }, [nodes]);\n\n useEffect(() => {\n if (!layoutIsSet) {\n // Fill in widths and heights of nodes (in nodesWithData)\n setNodesData([...nodes]);\n if (nodesWithData.length > 0 && nodesWithData.every(nodeHasDimension)) {\n // Once nodes' widths and heights are known, create the diagram with automatic layouting using Dagre\n setOriginalNodesWithData([...nodesWithData]);\n\n setElementsLayout(\n getLayoutedElements(\n [...nodes, ...edges],\n nodesWithData,\n (height: number) => setGraphHeight(height),\n (width: number) => setGraphWidth(width)\n )\n );\n setLayoutIsSet(true);\n }\n }\n\n // Show connections between logical groups on top of nodes when hovering over them\n // Used for connections that may be partly hidden behind a node\n if (connectionHovering) {\n const connections = document.getElementsByClassName(\"react-flow__edge\");\n for (let connection of connections) {\n connection.addEventListener(\"mouseover\", handleMouseOver);\n connection.addEventListener(\"mouseleave\", handleMouseLeave);\n }\n\n return () => {\n const connections = document.getElementsByClassName(\"react-flow__edge\");\n for (let connection of connections) {\n connection.removeEventListener(\"mouseover\", handleMouseOver);\n connection.removeEventListener(\"mouseleave\", handleMouseLeave);\n }\n };\n }\n }, [\n nodesWithData,\n connectionHovering,\n handleMouseOver,\n handleMouseLeave,\n nodes,\n edges,\n layoutIsSet,\n setNodesData,\n integrationStore.showSidePanel,\n ]);\n\n const SaveModal = () => (\n \n \n Do you want to save this diagram layout? The saved layout will be\n overwritten.\n \n \n \n \n \n \n );\n\n const ResetModal = () => (\n \n \n Do you want to reset the diagram layout to the saved layout?\n \n \n \n \n \n \n );\n\n const openSaveModal = () => {\n enableSaveButtons && setShowSaveModal(true);\n };\n\n const openResetModal = () => {\n enableSaveButtons && setShowResetModal(true);\n };\n\n const handleLayoutSave = () => {\n onSave(\n elementsLayout\n .filter((element: FlowElement) => isNode(element))\n .map((element) => {\n const nodeWithData = nodesWithData.find(\n (node: any) => node.id === element.id\n );\n\n return {\n logicalGroupId: +element.id,\n x: nodeWithData ? Math.round(nodeWithData.__rf.position.x) : 0,\n y: nodeWithData ? Math.round(nodeWithData.__rf.position.y) : 0,\n };\n })\n )?.then((success) => {\n if (success) {\n setOriginalNodesWithData([...nodesWithData]);\n\n setEnableSaveButtons(false);\n setShowSaveModal(false);\n }\n });\n };\n\n const handleLayoutReset = () => {\n setElementsLayout((elements: (Node | Edge)[]) =>\n // Duplicating the original array that contains the startpositions for x and y does not work;\n // the library blocks this as if it doesn't see that the variable changed\n // Changing any other property does not trigger the re-positioning either; only changing the position values works\n elements.map((element: Node | Edge) => {\n if (isNode(element) && originalNodesWithData) {\n const originalPosition = originalNodesWithData.find(\n (node) => node.id === element.id\n );\n\n if (originalPosition) {\n // The values in the position object need to get a \"new\" value for the library to put the node back in it's original place;\n // use originalPosition for this (linking once is enough to keep resetting)\n if (\n (originalPosition.position.x === 0 ||\n originalPosition.position.x === null) &&\n (originalPosition.position.y === 0 ||\n originalPosition.position.y === null)\n ) {\n originalPosition.position.x = originalPosition.__rf.position.x;\n originalPosition.position.y = originalPosition.__rf.position.y;\n }\n\n return originalPosition;\n }\n }\n\n return { ...element };\n })\n );\n setEnableSaveButtons(false);\n setShowResetModal(false);\n };\n\n const handleNodeMove = () => {\n setEnableSaveButtons(true);\n onNodeMove && onNodeMove();\n };\n\n return (\n \n \n \n \n {showSaveModal ? : showResetModal && }\n \n {}}\n onElementsRemove={() => {}}\n nodesDraggable={interactive}\n nodesConnectable={false}\n zoomOnScroll={interactive}\n zoomOnPinch={false}\n zoomOnDoubleClick={false}\n selectNodesOnDrag={false}\n paneMoveable={interactive}\n nodeTypes={nodeTypes}\n edgeTypes={edgeTypes}\n onNodeDrag={handleNodeMove}\n />\n \n \n );\n};\n\nconst FlowDiagram: FunctionComponent = ({\n nodes,\n edges,\n height,\n width = \"100%\",\n onNodeMove = () => {},\n connectionHovering = false,\n interactive = false,\n onInteractivity = () => {},\n onSave,\n extraStyling = css``,\n integrationStore,\n}) => {\n return (\n \n \n \n \n \n );\n};\n\nexport default FlowDiagram;\n","import { ReportSLA } from \"./Sla\";\n\nexport interface ReportSectionBasicData {\n total: number;\n open: number;\n inProgress: number;\n resolved: number;\n closed: number;\n}\n\nexport enum ReportIncidentStatus {\n Open = 0,\n Closed = 1,\n Resolved = 2,\n}\n\nexport interface ReportIncidentStatusType {\n status: ReportIncidentStatus;\n name: string;\n}\n\nexport const reportIncidentStatuses = [\n {\n status: ReportIncidentStatus.Open,\n name: \"Open\",\n },\n { status: ReportIncidentStatus.Closed, name: \"Closed\" },\n { status: ReportIncidentStatus.Resolved, name: \"Resolved\" },\n];\n\nexport const getReportIncidentStatus = (status: ReportIncidentStatus) =>\n reportIncidentStatuses.find(\n (incidentStatus) => incidentStatus.status === status\n ) || reportIncidentStatuses[0];\n\nexport interface ReportIncident {\n ticket: string;\n priority: string;\n description: string;\n createdBy: string;\n created: Date;\n started: Date | undefined;\n resolved: Date | undefined;\n status: ReportIncidentStatus;\n responseTime: string | undefined;\n resolutionTime: string | undefined;\n responseTimeBreached: boolean;\n resolutionTimeBreached: boolean;\n}\n\nexport interface ReportChangeRequest {\n ticket: string;\n title: string;\n requestedBy: string;\n workOrder: string;\n hours: string;\n canDispute: boolean;\n}\n\nexport interface ReportProActiveWorkItem {\n ticket: string;\n date: Date;\n task: string;\n closed: boolean;\n}\n\nexport interface ReportMonthIncidents extends ReportSectionBasicData {\n resolvedList: ReportIncident[];\n openList: ReportIncident[];\n}\n\nexport interface ReportMonthProActiveWork extends ReportSectionBasicData {\n list: ReportProActiveWorkItem[];\n}\n\nexport interface ReportMonthChangeRequests extends ReportSectionBasicData {\n disputeEmail: string;\n list: ReportChangeRequest[];\n}\n\nexport interface ReportMonth {\n numberOfTickets: number;\n openedTickets: number;\n closedTickets: number;\n incidents: ReportMonthIncidents;\n sla: ReportSLA;\n proActiveWork: ReportMonthProActiveWork;\n changeRequests: ReportMonthChangeRequests;\n}\n","import { ExtraStylingType } from \"model/Styles\";\nimport React, { FunctionComponent, useEffect, useState } from \"react\";\nimport styled, { css } from \"styled-components\";\nimport { $grey, lightText, smallText } from \"styles/common\";\n\ninterface Props {\n className?: string;\n id?: string;\n label: string;\n value: boolean;\n onChange(on: boolean): void;\n extraStyling?: ExtraStylingType;\n}\n\nconst Container = styled.div<{\n extraStyling: ExtraStylingType;\n}>`\n padding-left: 2.6875rem;\n position: relative;\n z-index: 1;\n display: block;\n min-height: 1.5rem;\n box-sizing: border-box;\n width: fit-content;\n\n ${(props) => props.extraStyling}\n`;\n\nconst Checkbox = styled.input`\n box-sizing: border-box;\n padding: 0;\n margin: 0;\n position: absolute;\n left: 0;\n z-index: -1;\n width: 1.25rem;\n height: 1.375rem;\n opacity: 0;\n overflow: visible;\n`;\n\nconst Label = styled.label<{ checked: boolean }>`\n ${smallText}\n ${lightText}\n display: block;\n line-height: 1.4375rem;\n position: relative;\n margin-bottom: 0;\n vertical-align: top;\n\n &:before {\n left: -2.6875rem;\n width: 2.1875rem;\n pointer-events: all;\n border-radius: 0.625rem;\n transition: background-color 0.15s ease-in-out,\n border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n position: absolute;\n top: 0.125rem;\n display: block;\n height: 1.25rem;\n content: \"\";\n background-color: #fff;\n border: 1px solid ${$grey};\n box-shadow: none;\n box-sizing: border-box;\n\n ${(props) =>\n props.checked &&\n css`\n color: #b5e680;\n border-color: #b5e680;\n background-color: #b5e680;\n `}\n }\n\n &:after {\n top: calc(0.125rem + 2px);\n left: calc(-2.6875rem + 2px);\n width: calc(1.25rem - 4px);\n height: calc(1.25rem - 4px);\n background-color: #adb5bd;\n border-radius: 0.625rem;\n transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out,\n border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out,\n -webkit-transform 0.15s ease-in-out;\n background: no-repeat #adb5bd 50%/50% 50%;\n position: absolute;\n display: block;\n content: \"\";\n box-sizing: border-box;\n\n ${(props) =>\n props.checked &&\n css`\n background-color: #fff;\n transform: translateX(0.9375rem);\n `}\n }\n`;\n\nexport const Switch: FunctionComponent = ({\n className = \"\",\n id = \"\",\n label,\n value,\n onChange,\n extraStyling = css``,\n}) => {\n const [checked, setChecked] = useState(value);\n\n useEffect(() => {\n setChecked(value);\n }, [value]);\n\n return (\n {\n onChange(!checked);\n setChecked(!checked);\n }}\n extraStyling={extraStyling}\n >\n \n \n \n );\n};\n","import Legend, { LegendItem } from \"components/common/Legend\";\nimport { ExecutionsTimeUnit } from \"model/Time\";\nimport { ExtraStylingType } from \"model/Styles\";\nimport React, { FunctionComponent, useEffect, useState } from \"react\";\nimport { Doughnut } from \"react-chartjs-2\";\nimport styled, { css } from \"styled-components\";\nimport {\n $statusFail,\n $statusSuccess,\n $statusSuccessSlow,\n Text,\n} from \"styles/common\";\nimport {\n convertExecutions,\n getExecutionsString,\n round,\n} from \"utils/Integration\";\n\ninterface DoughnutData {\n executionsPerTimeUnit?: number;\n executionsTimeUnit?: ExecutionsTimeUnit;\n total: number;\n fails: number;\n successes: number;\n successesSlow?: number | null; // undefined: platform component; null: logical group without slow\n}\n\ninterface Props {\n data: DoughnutData;\n small?: boolean;\n animated?: boolean;\n extraStyling?: ExtraStylingType;\n}\n\nconst Container = styled.div<{\n extraStyling: ExtraStylingType;\n}>`\n display: flex;\n flex-direction: row;\n align-items: center;\n\n ${(props) => props.extraStyling};\n`;\n\nconst DoughnutContainer = styled.div<{ small: boolean }>`\n position: relative;\n min-width: ${(props) => (props.small ? \"5rem\" : \"7rem\")};\n width: ${(props) => (props.small ? \"5rem\" : \"7rem\")};\n max-width: ${(props) => (props.small ? \"5rem\" : \"7rem\")};\n`;\n\nconst MiddleContent = styled.div`\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n display: flex;\n flex-direction: column;\n text-align: center;\n`;\n\nconst LegendContainer = styled.div`\n margin-left: 1rem;\n`;\n\nexport const ExecutionsDoughnutChart: FunctionComponent = ({\n data,\n small = false,\n animated = false,\n extraStyling = css``,\n}) => {\n const [legendItems, setLegendItems] = useState(\n undefined\n );\n\n useEffect(() => {\n const total =\n data.fails +\n data.successes +\n (data.successesSlow !== undefined && data.successesSlow !== null\n ? data.successesSlow\n : 0);\n\n const successPercentage = total === 0 ? 0 : (data.successes / total) * 100;\n let roundedSuccessPercentage: number | string = round(successPercentage, 2);\n const failPercentage = total === 0 ? 0 : (data.fails / total) * 100;\n let roundedFailPercentage: number | string = round(failPercentage, 2);\n\n const failLegend = {\n explanation: \"Fail:\",\n boldValue: `${convertExecutions(data.fails)} (${roundedFailPercentage}%)`,\n color: $statusFail,\n };\n\n const successLegend = {\n explanation: \"On time:\",\n boldValue: `${convertExecutions(\n data.successes\n )} (${roundedSuccessPercentage}%)`,\n color: $statusSuccess,\n };\n\n if (data.successesSlow !== undefined && data.successesSlow !== null) {\n const successSlowPercentage =\n total === 0 ? 0 : (data.successesSlow / total) * 100;\n let roundedSuccessSlowPercentage: number | string = round(\n successSlowPercentage,\n 2\n );\n\n setLegendItems([\n successLegend,\n {\n explanation: \"Too slow:\",\n boldValue: `${convertExecutions(\n data.successesSlow\n )} (${roundedSuccessSlowPercentage}%)`,\n color: $statusSuccessSlow,\n },\n failLegend,\n ]);\n } else {\n successLegend.explanation = \"Success:\";\n setLegendItems([successLegend, failLegend]);\n }\n }, [data.fails, data.successes, data.successesSlow]);\n\n return (\n \n \n \n \n \n {convertExecutions(data.total)}\n \n {data.executionsPerTimeUnit !== undefined &&\n data.executionsTimeUnit !== undefined && (\n \n {getExecutionsString(\n data.executionsPerTimeUnit,\n data.executionsTimeUnit\n )}\n \n )}\n \n \n\n {legendItems && (\n \n \n \n )}\n \n );\n};\n","import { inject, observer } from \"mobx-react\";\nimport React, {\n Fragment,\n FunctionComponent,\n useCallback,\n useEffect,\n useState,\n} from \"react\";\nimport styled, { css } from \"styled-components\";\nimport FlowDiagram from \"components/Integrations/FlowDiagram\";\nimport { $grey, $textDark, Button, Text } from \"styles/common\";\nimport IconComponent from \"components/common/Icon\";\nimport { Icon } from \"model/Icon\";\nimport { Switch } from \"components/common/Switch\";\nimport IntegrationStore from \"stores/IntegrationStore\";\nimport { Node, Edge } from \"react-flow-renderer\";\nimport { highlightApplicationRelations } from \"utils/Application\";\nimport { ExecutionsDoughnutChart } from \"./ExecutionsDoughnutChart\";\nimport { convertLogicalGroupsToDiagramNodes } from \"utils/Node\";\nimport { convertLogicalGroupLinksToDiagramEdges } from \"utils/Edge\";\nimport PlatformComponentTypeIconComponent from \"components/Integrations/PlatformComponentTypeIcon\";\nimport { splitArray } from \"utils/common\";\nimport { Modal, ModalType } from \"components/common/Modal\";\nimport { IntegrationApplication } from \"model/Application\";\nimport { LogicalGroupLayoutPositionSave } from \"model/LogicalGroup\";\nimport GeneralStore from \"stores/GeneralStore\";\n\ninterface Props {\n integrationStore: IntegrationStore;\n generalStore: GeneralStore;\n}\n\nconst durationSidePanelOpenClose = `0.2s`;\n\nconst diagramMinHeight = \"50rem\";\n\nconst Container = styled.div`\n display: flex;\n flex-direction: row;\n position: relative;\n height: 100%;\n min-height: ${diagramMinHeight};\n overflow: hidden;\n border-radius: 0.2rem;\n`;\n\nconst SidePanel = styled.div<{ open: boolean }>`\n width: ${(props) => (props.open ? \"calc(25rem - 3rem)\" : \"0\")};\n height: calc(100% - 3rem - 2px);\n padding: 1.5rem;\n position: absolute;\n top: 0;\n right: 0;\n background-color: #f7fafc;\n box-shadow: -2px 0px 5px 1px rgba(0, 0, 0, 0.1);\n z-index: 99;\n transition: width ${durationSidePanelOpenClose};\n border: 1px solid #efefef;\n border-left: none;\n`;\n\nconst SidePanelContent = styled.div<{ open: boolean }>`\n min-width: calc(25rem - 3rem);\n display: ${(props) => (props.open ? \"flex\" : \"none\")};\n flex-direction: column;\n height: 100%;\n min-height: ${diagramMinHeight};\n`;\n\nconst LogicalGroupInfo = styled.div`\n margin-bottom: 1rem;\n`;\n\nconst ItemInfo = styled.div`\n height: 12rem;\n background-color: #fdfdfd;\n padding: 1rem;\n border-radius: 0.2rem;\n border: 1px solid #f3f3f3;\n`;\n\nconst ItemName = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n margin-bottom: 1rem;\n`;\n\nconst InfoContainer = styled.div`\n display: flex;\n flex-direction: row;\n line-height: 1.25rem;\n`;\n\nconst InfoLabel = styled(Text)`\n width: 6rem;\n`;\n\nconst InfoText = styled(Text)``;\n\nconst Title = styled(Text)`\n margin-bottom: 0.75rem;\n`;\n\nconst NoInfo = styled(Text)`\n opacity: 0.6;\n`;\n\nconst Applications = styled.div`\n display: flex;\n flex-direction: row;\n width: 100%;\n flex: 1;\n justify-content: space-between;\n`;\n\nconst ApplicationsColumn = styled.div`\n display: flex;\n flex-direction: column;\n width: 49%;\n`;\n\nconst Application = styled(Text)`\n width: calc(100% - 1rem);\n padding: 0.3rem 0.4rem;\n cursor: pointer;\n transition: 0.2s;\n\n &:hover {\n background-color: ${$grey} !important;\n color: ${$textDark} !important;\n }\n`;\n\nconst SidePanelActions = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: flex-end;\n margin-bottom: 2rem;\n position: relative;\n`;\n\nconst LogicalGroupContainer = styled.div`\n height: 11rem;\n padding: 1rem;\n border-radius: 0.2rem;\n background-color: #fcfcfc;\n box-shadow: 2px 2px 5px 1px rgba(0, 0, 0, 0.1);\n margin-bottom: 2rem;\n`;\n\nconst applicationColumns = 2;\n\nconst IntegrationsFirstLevelDiagram: FunctionComponent = ({\n integrationStore, generalStore\n}) => {\n const [nodes, setNodes] = useState([]);\n const [edges, setEdges] = useState([]);\n const [applicationsArray, setApplicationsArray] = useState<\n IntegrationApplication[][] | undefined\n >(undefined);\n\n const convertData = useCallback(() => {\n if (integrationStore.currentFlowDiagramData) {\n setNodes(\n convertLogicalGroupsToDiagramNodes(\n integrationStore.currentFlowDiagramData.logicalGroups\n )\n );\n setEdges(\n convertLogicalGroupLinksToDiagramEdges(\n integrationStore.currentFlowDiagramData.links\n )\n );\n setApplicationsArray(\n splitArray(\n [...integrationStore.currentFlowDiagramData?.applications],\n applicationColumns\n )\n );\n }\n }, [integrationStore.currentFlowDiagramData]);\n\n useEffect(() => {\n convertData();\n }, [convertData]);\n\n const renderPlatformComponentInfo = () =>\n integrationStore.currentPlatformComponent && (\n \n \n \n \n {integrationStore.currentPlatformComponent.name}\n \n \n \n \n Type\n \n \n {integrationStore.currentPlatformComponent.type}\n \n \n \n \n Area\n \n \n {integrationStore.currentPlatformComponent.area}\n \n \n \n \n Location\n \n \n {integrationStore.currentPlatformComponent.location}\n \n \n \n \n );\n\n const renderSidePanelButton = () => (\n {\n integrationStore.setShowSidePanel(!integrationStore.showSidePanel);\n }}\n extraStyling={css`\n width: 1rem;\n height: 1rem;\n position: absolute;\n top: 1.5rem;\n left: 1rem;\n padding: 0.5rem;\n border-radius: 50%;\n cursor: pointer;\n transition: transform ${durationSidePanelOpenClose};\n z-index: 100;\n\n &:hover {\n background-color: #eee;\n }\n\n ${!integrationStore.showSidePanel &&\n css`\n transform: rotate(180deg);\n left: 0.5rem;\n `}\n `}\n />\n );\n\n const rederOpenedLogicalGroupInfo = () =>\n integrationStore.openedLogicalGroup && (\n \n \n \n Name\n \n \n {integrationStore.openedLogicalGroup.name}\n \n \n \n \n Environment\n \n {generalStore.getCurrentEnvironmentName()}\n \n\n \n \n );\n\n const renderLogicalGroupInfo = () =>\n integrationStore.currentLogicalGroup && (\n \n \n \n {integrationStore.currentLogicalGroup.name}\n \n \n\n \n \n );\n\n const renderApplications = () => {\n return applicationsArray &&\n integrationStore.currentFlowDiagramData &&\n integrationStore.currentFlowDiagramData.applications.length > 0 ? (\n applicationsArray.map((applicationsColumn, index) => {\n return (\n \n {applicationsColumn.map((application, applIndex) => {\n return (\n handleApplicationMouseOver(application)}\n onMouseLeave={() => handleApplicationMouseLeave(application)}\n >\n {application.name}\n \n );\n })}\n \n );\n })\n ) : (\n There are no applications defined\n );\n };\n\n const handleApplicationMouseOver = (application: IntegrationApplication) => {\n highlightApplicationRelations(`application${application.id}relation`, true);\n };\n\n const handleApplicationMouseLeave = (application: IntegrationApplication) => {\n highlightApplicationRelations(\n `application${application.id}relation`,\n false\n );\n };\n\n const handleInteractivity = () => {\n integrationStore.showSidePanel && integrationStore.setShowSidePanel(false);\n };\n\n const handleNodeMove = () => {\n integrationStore.showTraffic && integrationStore.setShowTraffic(false);\n };\n\n const handleLayoutSave = (\n layout: LogicalGroupLayoutPositionSave[]\n ): Promise | undefined => {\n return (\n integrationStore.openedLogicalGroup &&\n integrationStore.saveFlowDiagramLayouting(\n integrationStore.openedLogicalGroup.id,\n layout\n )\n );\n };\n\n const handleDataReload = () => {\n integrationStore.openedLogicalGroup &&\n integrationStore.getFlowDiagramData(\n integrationStore.openedLogicalGroup.id\n );\n };\n\n return (\n \n {integrationStore.currentFlowDiagramData ? (\n integrationStore.currentFlowDiagramData.logicalGroups.length > 0 ? (\n \n ) : (\n \n )\n ) : (\n \n )}\n \n {renderSidePanelButton()}\n\n \n \n {\n integrationStore.setShowTraffic(show);\n }}\n extraStyling={css`\n margin-right: 2rem;\n `}\n />\n \n \n\n \n {rederOpenedLogicalGroupInfo()}\n\n \n Selected item\n \n \n Information\n \n \n {integrationStore.currentLogicalGroup ? (\n renderLogicalGroupInfo()\n ) : integrationStore.currentPlatformComponent ? (\n renderPlatformComponentInfo()\n ) : (\n \n Hover over an item to see its details\n \n )}\n \n \n\n \n Application calls\n \n {renderApplications()}\n \n \n \n );\n};\n\nexport default inject(\"integrationStore\", \"generalStore\")(\n observer(\n IntegrationsFirstLevelDiagram as FunctionComponent<\n Omit\n >\n )\n);\n","import { IntegrationLogicalGroupLevelOne } from \"model/LogicalGroup\";\nimport { LocationGroupNodeData } from \"model/Node\";\n\nexport const convertLogicalGroupsToDiagramNodes = (\n data: IntegrationLogicalGroupLevelOne[]\n) => {\n return data.map((locationGroup: IntegrationLogicalGroupLevelOne) => {\n const locationGroupData = {\n name: locationGroup.name,\n status: locationGroup.status,\n executionsPerTimeUnit: locationGroup.executionsPerTimeUnit,\n executionsTimeUnit: locationGroup.executionsTimeUnit,\n total: locationGroup.total,\n successes: locationGroup.successes,\n successesSlow: locationGroup.successesSlow,\n fails: locationGroup.fails,\n };\n\n return {\n id: locationGroup.id.toString(),\n type: \"customNode\",\n data: {\n ...locationGroupData,\n platformComponents: locationGroup.platformComponents.map(\n (platformComponent) => {\n return {\n name: platformComponent.name,\n status: platformComponent.status,\n type: platformComponent.type,\n area: platformComponent.area,\n location: platformComponent.location,\n total: platformComponent.total,\n successes: platformComponent.successes,\n fails: platformComponent.fails,\n applications: platformComponent.applications.map(\n (appId) => `application${appId}relation`\n ),\n };\n }\n ),\n } as LocationGroupNodeData,\n position: locationGroup.position\n ? locationGroup.position\n : { x: 0, y: 0 },\n };\n });\n};\n","import { LocationGroupLinkData } from \"model/Edge\";\nimport { IntegrationLogicalGroupLevelOneLink } from \"model/LogicalGroup\";\nimport { getExecutionSpeedStatus } from \"model/Status\";\nimport { ArrowHeadType } from \"react-flow-renderer\";\n\nexport const convertLogicalGroupLinksToDiagramEdges = (\n links: IntegrationLogicalGroupLevelOneLink[]\n) => {\n if (links.length > 0) {\n let lowestTraffic = links[0].amountOfCalls;\n let highestTraffic = 0;\n\n links.forEach((link) => {\n if (link.amountOfCalls < lowestTraffic) {\n lowestTraffic = link.amountOfCalls;\n }\n if (link.amountOfCalls > highestTraffic) {\n highestTraffic = link.amountOfCalls;\n }\n });\n\n return links.map((link: IntegrationLogicalGroupLevelOneLink) => {\n return {\n id: `e${link.from}-${link.to}`,\n source: link.from.toString(),\n target: link.to.toString(),\n type: \"customEdge\",\n data: {\n latency: link.latency,\n amountOfCalls: link.amountOfCalls,\n lowestTraffic: lowestTraffic,\n highestTraffic: highestTraffic,\n status: link.status,\n } as LocationGroupLinkData,\n style: { stroke: getExecutionSpeedStatus(link.status).color },\n arrowHeadType: ArrowHeadType.ArrowClosed,\n };\n });\n } else {\n return [];\n }\n};\n","import Card from \"components/common/Card\";\nimport { NoAccessModal } from \"components/common/Modal\";\nimport IntegrationsFirstLevelDiagram from \"components/Integrations/IntegrationsFirstLevelDiagram\";\nimport IntegrationsHeatMap from \"components/Integrations/IntegrationsHeatMap\";\nimport { inject, observer } from \"mobx-react\";\nimport { PermissionArea, PermissionType } from \"model/Claim\";\nimport { Route } from \"model/Navigation\";\nimport { globalTimeFrames } from \"model/Time\";\nimport React, { FunctionComponent } from \"react\";\nimport { Prompt } from \"react-router\";\nimport AuthenticationStore from \"stores/AuthenticationStore\";\nimport GeneralStore from \"stores/GeneralStore\";\nimport IntegrationStore from \"stores/IntegrationStore\";\nimport { Filter, Select, Text } from \"styles/common\";\n\ninterface Props {\n generalStore: GeneralStore;\n integrationStore: IntegrationStore;\n authenticationStore: AuthenticationStore;\n}\n\nconst Integrations: FunctionComponent = ({\n generalStore,\n integrationStore,\n authenticationStore,\n}) => {\n const accessViewIntegration = authenticationStore.userHasPermission(\n PermissionArea.Integration,\n PermissionType.View\n );\n\n const renderIntegrationsFilter = () => (\n \n \n My integrations on\n \n {\n generalStore.setCurrentEnvironment(parseInt(e.target.value));\n }}\n >\n {generalStore.environments &&\n generalStore.environments.map((environment, index) => (\n \n ))}\n \n \n in the\n \n {generalStore.timeFrame && (\n {\n generalStore.setTimeFrame(parseInt(e.target.value));\n }}\n >\n {globalTimeFrames.map((timeFrame, index) => (\n \n ))}\n \n )}\n \n );\n\n return (\n <>\n {\n if (!location.pathname.startsWith(Route.Integrations))\n // Reset data when leaving page\n integrationStore.reset();\n\n return true;\n }}\n />\n\n {renderIntegrationsFilter()}\n\n \n {!accessViewIntegration && }\n\n \n\n {accessViewIntegration && integrationStore.flowDiagramMode && (\n \n )}\n \n \n );\n};\n\nexport default inject(\n \"integrationStore\",\n \"generalStore\",\n \"authenticationStore\"\n)(\n observer(\n Integrations as FunctionComponent<\n Omit\n >\n )\n);\n","import {\n ItOperationPlatformComponent,\n ItOperationPlatformComponentType,\n} from \"model/PlatformComponent\";\nimport React, { FunctionComponent, useState } from \"react\";\nimport styled, { css } from \"styled-components\";\nimport { $grey, StatusCircle, Text, Span, $blue4 } from \"styles/common\";\nimport Masonry from \"react-masonry-css\";\nimport IconComponent from \"components/common/Icon\";\nimport { Icon } from \"model/Icon\";\nimport PlatformComponentTypeIconComponent from \"components/Integrations/PlatformComponentTypeIcon\";\nimport { getSuccessStatusColor } from \"utils/Status\";\n\ninterface Props {\n platformComponentTypes: ItOperationPlatformComponentType[];\n currentEnvironment: string;\n}\n\nconst Container = styled.div`\n .masonry-grid {\n display: flex;\n margin-left: -1rem; /* gutter size offset */\n width: 100%;\n }\n .masonry-grid-column {\n padding-left: 1rem; /* gutter size */\n background-clip: padding-box;\n }\n`;\n\nconst PlatformComponentTypeContainer = styled.div<{\n status: number | undefined;\n}>`\n margin-bottom 1rem;\n background-color: #f7fafc;\n box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.1);\n border-left 4px solid ${(props) =>\n props.status !== undefined ? getSuccessStatusColor(props.status) : $grey};\n border-radius: 0.2rem;\n\n`;\n\nconst PlatformComponentTypeHeader = styled.div<{\n collapsed: boolean;\n}>`\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n padding: 0.5rem 1rem 0.5rem 1rem;\n border: 1px solid transparent;\n border-radius: 0.2rem 0.2rem 0 0;\n cursor: pointer;\n user-select: none;\n\n ${(props) =>\n !props.collapsed &&\n css`\n border-bottom: 1px solid #ddd;\n `}\n`;\n\nconst PlatformComponentTypeName = styled.div`\n display: flex;\n flex-direction: row;\n gap: 0.75rem;\n`;\n\nconst CollapseIcon = styled(IconComponent)<{ collapsed: boolean }>`\n transform: rotate(${(props) => (props.collapsed ? \"180deg\" : \"0deg\")});\n`;\n\nconst PlatformComponentTypeContent = styled.div<{\n collapsed: boolean;\n}>`\n padding: 0.5rem 0;\n border-radius: 0 0 0.2rem 0.2rem;\n\n ${(props) =>\n props.collapsed\n ? css`\n display: none;\n `\n : css`\n display: block;\n `}\n`;\n\nconst PlatformComponent = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 0.25rem;\n padding: 0.25rem 1rem;\n`;\n\nconst PlatformComponentTypeHeaderTitle = styled(Text)`\n color: rgba(0, 0, 0, 0.7);\n\n span {\n opacity: 0.6;\n }\n`;\n\nconst NoData = styled(Text)`\n margin-bottom: 1rem;\n`;\n\nconst PlatformComponentType: FunctionComponent<{\n platformComponentType: ItOperationPlatformComponentType;\n}> = ({ platformComponentType }) => {\n const [collapsed, setCollapsed] = useState(false);\n\n const handleHeaderClick = () => {\n setCollapsed(!collapsed);\n };\n\n return (\n \n \n \n \n \n {platformComponentType.type} \n ({platformComponentType.platformComponents.length})\n \n \n \n \n \n {platformComponentType.platformComponents.length > 0 ? (\n platformComponentType.platformComponents.map(\n (\n platformComponent: ItOperationPlatformComponent,\n index: number\n ) => (\n \n \n {platformComponent.name}\n \n )\n )\n ) : (\n \n No platform components\n \n )}\n \n \n );\n};\n\nexport const ItOperationsList = ({\n platformComponentTypes,\n currentEnvironment,\n}: Props) => {\n return (\n \n {platformComponentTypes.length > 0 ? (\n \n {platformComponentTypes.map(\n (\n platformComponentType: ItOperationPlatformComponentType,\n index: number\n ) => (\n \n )\n )}\n \n ) : (\n \n Your environment{\" \"}\n \n {currentEnvironment}\n {\" \"}\n does not leverage this location.\n \n )}\n \n );\n};\n","import Card from \"components/common/Card\";\nimport IconComponent from \"components/common/Icon\";\nimport { ItOperationsList } from \"components/Integrations/ItOperationsList\";\nimport { Modal, ModalType, NoAccessModal } from \"components/common/Modal\";\nimport { inject, observer } from \"mobx-react\";\nimport { Icon } from \"model/Icon\";\nimport { ItOperationLocation } from \"model/ItOperation\";\nimport { Route } from \"model/Navigation\";\nimport { globalTimeFrames } from \"model/Time\";\nimport React, { FunctionComponent, useEffect, useState } from \"react\";\nimport { Prompt } from \"react-router\";\nimport GeneralStore from \"stores/GeneralStore\";\nimport ItOperationStore from \"stores/ItOperationStore\";\nimport styled, { css } from \"styled-components\";\nimport { Filter, Text, Select } from \"styles/common\";\nimport Loader from \"components/common/Loader\";\nimport AuthenticationStore from \"stores/AuthenticationStore\";\nimport { PermissionArea, PermissionType } from \"model/Claim\";\n\ninterface Props {\n generalStore: GeneralStore;\n itOperationStore: ItOperationStore;\n authenticationStore: AuthenticationStore;\n}\n\nconst LocationHeader = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 0.8rem;\n`;\n\nconst NoLocations = styled(Text)`\n margin-top: 1rem;\n font-size: 1.125rem;\n`;\n\nconst ItOperations: FunctionComponent = ({\n generalStore,\n itOperationStore,\n authenticationStore,\n}) => {\n const [dataLoad, setDataLoad] = useState(false);\n\n const accessViewIntegration = authenticationStore.userHasPermission(\n PermissionArea.Integration,\n PermissionType.View\n );\n\n useEffect(() => {\n accessViewIntegration &&\n itOperationStore.getItOperationData().finally(() => {\n setDataLoad(true);\n });\n }, [\n accessViewIntegration,\n generalStore.currentEnvironment,\n generalStore.timeFrame,\n itOperationStore,\n ]);\n\n const handleDataReload = () => {\n if (accessViewIntegration) {\n if (!generalStore.currentEnvironment) {\n generalStore.getEnvironments().then(() => {\n itOperationStore.getItOperationData();\n });\n } else itOperationStore.getItOperationData();\n }\n };\n\n const renderIntegrationsFilter = () => (\n \n \n My deployment for\n \n {\n generalStore.setCurrentEnvironment(parseInt(e.target.value));\n }}\n >\n {generalStore.environments &&\n generalStore.environments.map((environment, index) => (\n \n ))}\n \n \n and status in the\n \n {generalStore.timeFrame && (\n {\n generalStore.setTimeFrame(parseInt(e.target.value));\n }}\n >\n {globalTimeFrames.map((timeFrame, index) => (\n \n ))}\n \n )}\n \n );\n\n const renderLocations = itOperationStore.itOperationLocations?.map(\n (itOperationLocation: ItOperationLocation, index: number) => (\n \n \n \n {itOperationLocation.name}\n \n \n }\n collapsable\n >\n \n \n )\n );\n\n const renderEmptyData = (\n \n \"no\n {!dataLoad ? (\n \n ) : (\n \n You have no IT operations for this environment yet\n \n )}\n \n );\n\n const renderNoDataLoaded = (\n \n \"no\n {!accessViewIntegration ? (\n \n ) : !dataLoad ? (\n \n ) : (\n \n )}\n \n );\n\n return (\n <>\n {\n if (!location.pathname.startsWith(Route.Integrations))\n // Reset data when leaving page\n itOperationStore.reset();\n\n return true;\n }}\n />\n\n {renderIntegrationsFilter()}\n\n {accessViewIntegration && itOperationStore.itOperationLocations\n ? itOperationStore.itOperationLocations.length > 0\n ? renderLocations\n : renderEmptyData\n : renderNoDataLoaded}\n \n );\n};\n\nexport default inject(\n \"generalStore\",\n \"itOperationStore\",\n \"authenticationStore\"\n)(\n observer(\n ItOperations as FunctionComponent<\n Omit\n >\n )\n);\n","import IconComponent from \"components/common/Icon\";\nimport { List } from \"components/common/List\";\nimport { ApplicationDatum } from \"model/Application\";\nimport { Icon } from \"model/Icon\";\nimport { ExtraStylingType } from \"model/Styles\";\nimport React from \"react\";\nimport styled, { css } from \"styled-components\";\nimport { $statusFail, $statusSuccess, $textDark, Text } from \"styles/common\";\n\ninterface Props {\n applications: ApplicationDatum[];\n}\n\nconst Container = styled.div`\n margin-bottom: 1rem;\n width: 70rem;\n`;\n\nconst Status = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n`;\n\nconst Runtime = styled.div`\n margin-right: 0.5rem;\n width: 1rem;\n height: 1rem;\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n`;\n\nconst Success = styled.div`\n display: block;\n width: 0.75rem;\n height: 0.75rem;\n box-sizing: border-box;\n background-color: ${$statusSuccess};\n border-radius: 50%;\n`;\n\nconst ButtonContainer = styled.div`\n width: 100%;\n align-items: center;\n display: flex;\n flex-direction: row;\n`;\n\nconst IconButton = styled(IconComponent)<{\n disabled?: boolean;\n extraButtonStyling?: ExtraStylingType;\n}>`\n ${(props) =>\n !props.disabled\n ? css`\n cursor: pointer;\n transition: 0.2s;\n\n &:hover {\n opacity: 0.6;\n }\n\n ${props.extraButtonStyling ? props.extraButtonStyling : css``}\n `\n : css`\n opacity: 0.4;\n `}\n`;\n\nconst extraRefreshButtonStyling = css`\n transition: transform 0.3s ease-in-out;\n\n &:hover {\n transform: rotate(-180deg);\n }\n`;\n\nconst headers = [\"Name\", \"Type\", \"Location\", \"Status\", \"\", \"\"];\n\nexport const ApplicationsList = ({ applications }: Props) => {\n const handleRefresh = () => {};\n\n const handleHistoryClick = () => {};\n\n return (\n \n ({\n cells: [\n application.name,\n application.type,\n application.location,\n \n \n {application.up ? (\n \n ) : (\n \n )}\n \n {application.up ? \"Up\" : \"Down\"}\n ,\n \n \n ,\n \n \n ,\n ],\n }))}\n customColumnWidths={[8, 4, 12, 4, 1, 1]}\n hover\n noDataText=\"You have no applications for this environment yet.\"\n smallEmpty\n retryDataLoading={() => {}}\n />\n \n );\n};\n","import Card from \"components/common/Card\";\nimport { ApplicationsList } from \"components/Applications/ApplicationsList\";\nimport { inject, observer } from \"mobx-react\";\nimport { ApplicationEnvironment } from \"model/Environment\";\nimport React, { FunctionComponent, useEffect, useState } from \"react\";\nimport ApplicationStore from \"stores/ApplicationStore\";\nimport styled, { css } from \"styled-components\";\nimport { $blue4, Text } from \"styles/common\";\nimport { Prompt } from \"react-router\";\nimport { Route } from \"model/Navigation\";\nimport IconComponent from \"components/common/Icon\";\nimport { Icon } from \"model/Icon\";\nimport { Modal, ModalType, NoAccessModal } from \"components/common/Modal\";\nimport Loader from \"components/common/Loader\";\nimport AuthenticationStore from \"stores/AuthenticationStore\";\nimport { PermissionArea, PermissionType } from \"model/Claim\";\n\ninterface Props {\n applicationStore: ApplicationStore;\n authenticationStore: AuthenticationStore;\n}\n\nconst EnvironmentHeader = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 0.8rem;\n`;\n\nconst EnvironmentName = styled.span`\n color: ${$blue4};\n`;\n\nconst NoEnvironments = styled(Text)`\n margin-top: 1rem;\n font-size: 1.125rem;\n`;\n\nconst Applications: FunctionComponent = ({\n applicationStore,\n authenticationStore,\n}) => {\n const [dataLoad, setDataLoad] = useState(false);\n\n const accessViewApplication = authenticationStore.userHasPermission(\n PermissionArea.Application,\n PermissionType.View\n );\n\n useEffect(() => {\n applicationStore.getApplicationData().finally(() => {\n setDataLoad(true);\n });\n }, [applicationStore]);\n\n const handleDataReload = () => {\n applicationStore.getApplicationData();\n };\n\n const renderEnvironments =\n applicationStore.applicationEnvironments &&\n applicationStore.applicationEnvironments.map(\n (applicationEnvironment: ApplicationEnvironment, index: number) => (\n \n \n \n Applications for \n {applicationEnvironment.name}\n \n \n }\n collapsable\n >\n \n \n )\n );\n\n const renderEmptyData = (\n \n \"no\n {!dataLoad ? (\n \n ) : (\n \n You have no environments yet.\n \n )}\n \n );\n\n const renderNoDataLoaded = (\n \n \"no\n {!accessViewApplication ? (\n \n ) : !dataLoad ? (\n \n ) : (\n \n )}\n \n );\n\n return (\n <>\n {\n if (!location.pathname.startsWith(Route.Applications))\n // Reset data when leaving page\n applicationStore.reset();\n\n return true;\n }}\n />\n\n {accessViewApplication && applicationStore.applicationEnvironments\n ? applicationStore.applicationEnvironments.length > 0\n ? renderEnvironments\n : renderEmptyData\n : renderNoDataLoaded}\n \n );\n};\n\nexport default inject(\n \"applicationStore\",\n \"authenticationStore\"\n)(\n observer(\n Applications as FunctionComponent<\n Omit\n >\n )\n);\n","import { Modal, ModalType } from \"components/common/Modal\";\nimport format from \"date-fns/format\";\nimport { ExtraStylingType } from \"model/Styles\";\nimport { UsageOfDate } from \"model/Usage\";\nimport React, { FunctionComponent, useEffect, useState } from \"react\";\nimport { Line } from \"react-chartjs-2\";\nimport styled, { css } from \"styled-components\";\nimport { $blue4, $textLight } from \"styles/common\";\nimport { isLastDayOfMonth } from \"utils/Date\";\n\ninterface Props {\n data: UsageOfDate[] | undefined;\n access: boolean;\n retryDataLoading(): void;\n extraStyling?: ExtraStylingType;\n}\n\nconst Container = styled.div<{\n extraStyling: ExtraStylingType;\n}>`\n display: flex;\n flex-direction: row;\n align-items: center;\n width: 100%;\n height: 15rem;\n position: relative;\n\n ${(props) => props.extraStyling};\n`;\n\nexport const UsageLineChart: FunctionComponent = ({\n data,\n access,\n retryDataLoading,\n extraStyling = css``,\n}) => {\n const [units, setUnits] = useState(undefined);\n const [labels, setLabels] = useState(undefined);\n const [lastDays, setLastDays] = useState([]);\n\n useEffect(() => {\n if (data) {\n let unitsArray: number[] = [];\n let labelsArray: string[] = [];\n let lastDaysArray: number[] = [];\n\n data.forEach((datum: UsageOfDate, index: number) => {\n if (isLastDayOfMonth(new Date(datum.date))) {\n lastDaysArray.push(index);\n }\n\n labelsArray.push(datum.date);\n unitsArray.push(datum.units ? datum.units : 0);\n });\n\n setUnits(unitsArray);\n setLabels(labelsArray);\n setLastDays(lastDaysArray);\n }\n }, [data]);\n\n return (\n \n \";\n document.body.appendChild(tooltipEl);\n }\n\n // Hide if no tooltip\n var tooltipModel = context.tooltip;\n if (tooltipModel.opacity === 0) {\n tooltipEl.style.display = \"none\";\n return;\n }\n\n // Set caret Position\n tooltipEl.classList.remove(\"above\", \"below\", \"no-transform\");\n if (tooltipModel.yAlign) {\n tooltipEl.classList.add(tooltipModel.yAlign);\n } else {\n tooltipEl.classList.add(\"no-transform\");\n }\n\n function getBody(bodyItem: any) {\n return bodyItem.lines;\n }\n\n // Set tooltip content\n if (tooltipModel.body) {\n var bodyLines = tooltipModel.body.map(getBody).reverse();\n\n let innerHtml: string = \"\";\n\n // Invoice tag\n if (isLastDayOfMonth(new Date(tooltipModel.title))) {\n innerHtml += `

Invoice

`;\n }\n\n // Title\n innerHtml += `

${format(\n new Date(tooltipModel.title),\n \"yyyy-MM-dd\"\n )}

`;\n\n // Content\n bodyLines.forEach(function (body: any, i: number) {\n innerHtml += `
`;\n const label = body[0];\n innerHtml += `

${label} units

`;\n innerHtml += `
`;\n });\n\n var tableRoot = tooltipEl.querySelector(\"div\");\n if (tableRoot) {\n tableRoot.innerHTML = innerHtml;\n }\n }\n\n var position = context.chart.canvas.getBoundingClientRect();\n\n // Display, position, and set styles for font\n tooltipEl.style.display = \"flex\";\n tooltipEl.style.position = \"absolute\";\n tooltipEl.style.left =\n position.left +\n window.pageXOffset +\n tooltipModel.caretX +\n \"px\";\n tooltipEl.style.top =\n position.top +\n window.pageYOffset +\n tooltipModel.caretY +\n \"px\";\n tooltipEl.style.padding =\n tooltipModel.padding + \"px \" + tooltipModel.padding + \"px\";\n tooltipEl.style.borderRadius = \"0.1rem\";\n tooltipEl.style.display = \"flex\";\n tooltipEl.style.flexDirection = \"row\";\n tooltipEl.style.boxShadow =\n \"0px 1px 1px 1px rgba(0, 0, 0, 0.15)\";\n tooltipEl.style.backgroundColor = \"#fefefe\";\n tooltipEl.style.padding = \"0.5rem 0.75rem\";\n tooltipEl.style.pointerEvents = \"none\";\n tooltipEl.style.color = $textLight;\n },\n },\n },\n scales: {\n //@ts-ignore\n x: {\n grid: {\n drawBorder: false,\n lineWidth: 1,\n borderDash: [10],\n color: function (context: any) {\n // Has value (index) & label (text)\n if (lastDays.includes(context.tick.value)) {\n return $textLight;\n }\n\n return \"rgba(0,0,0,0)\";\n },\n },\n ticks: {\n color: $textLight,\n autoSkip: false,\n maxRotation: 0,\n minRotation: 0,\n //@ts-ignore\n callback: function (val: number, index: number) {\n return lastDays.includes(index + 1) ||\n lastDays.includes(index - 1)\n ? labels\n ? format(new Date(labels[index]), \"MMM\")\n : \"\"\n : \"\";\n },\n },\n },\n y: {\n title: {\n display: true,\n //@ts-ignore\n align: \"start\",\n text: \"Units\",\n color: $textLight,\n padding: 0,\n },\n ticks: {\n color: $textLight,\n },\n },\n },\n }}\n />\n {access &&\n (data && data.length === 0 ? (\n \n ) : (\n !data && (\n \n )\n ))}\n
\n );\n};\n","import React from \"react\";\nimport { UsageOfDate } from \"model/Usage\";\nimport styled from \"styled-components\";\nimport { List } from \"components/common/List\";\nimport { format } from \"date-fns\";\nimport { Text } from \"styles/common\";\nimport { Units } from \"..\";\n\ninterface Props {\n data: UsageOfDate[] | undefined;\n access: boolean;\n selectedMonth: number | undefined;\n onMonthSelect(rowId: number): void;\n retryDataLoading(): void;\n}\n\nconst Container = styled.div<{ short?: boolean }>`\n display: flex;\n flex-direction: row;\n border-radius: 0.2rem;\n padding-right: 1rem;\n margin-right: 1rem;\n width: 20rem;\n min-width: 20rem;\n border-right: 1px solid #ececec;\n`;\n\nexport const MonthsList = ({\n data,\n access,\n selectedMonth,\n onMonthSelect,\n retryDataLoading,\n}: Props) => (\n \n {\n return {\n cells: [\n \n {format(new Date(monthData.date), \"yyyy-MM\")}\n ,\n monthData.units ? (\n \n {monthData.units} units\n \n ) : (\n -\n ),\n ],\n };\n })\n : undefined\n }\n hover\n access={access}\n noDataText=\"You don't have any previous months yet.\"\n blockClicking={\n data ? data.map((month, i) => (month.units === undefined ? i : -1)) : []\n }\n onRowClick={(rowId: number) => data && onMonthSelect(rowId)}\n retryDataLoading={retryDataLoading}\n />\n \n);\n","import IconComponent from \"components/common/Icon\";\nimport { List } from \"components/common/List\";\nimport { Units } from \"components/Usage/UsagePerMonth\";\nimport { UsageDeploymentArea } from \"model/DeploymentArea\";\nimport { UsageEnvironment } from \"model/Environment\";\nimport { Icon } from \"model/Icon\";\nimport {\n UsagePlatformComponentType,\n UsagePlatformComponent,\n} from \"model/PlatformComponent\";\nimport { BasicUsageTreeItem } from \"model/Usage\";\nimport React, { FunctionComponent, useState } from \"react\";\nimport styled, { css } from \"styled-components\";\nimport { Text } from \"styles/common\";\n\nexport interface Props {\n data: UsageEnvironment[];\n}\n\nexport interface TreeItemProps {\n className?: string;\n openState: boolean;\n item: BasicUsageTreeItem;\n subItems: any;\n firstLevel?: boolean;\n}\n\nconst Container = styled.div`\n margin: 1rem 0 1.5rem 0;\n`;\n\nconst Environments = styled.div``;\n\nconst ItemContainer = styled.div<{ firstLevel?: boolean }>`\n position: relative;\n\n ${(props) =>\n props.firstLevel &&\n css`\n margin-bottom: 0.5rem;\n `}\n`;\n\nconst Hook = styled.div`\n width: 0.75rem;\n margin-right: 0.25rem;\n height: 1px;\n background-color: #d8eaf4;\n`;\n\nconst ItemBar = styled.div<{ firstLevel?: boolean }>`\n padding: 0.3rem 0.75rem 0.3rem 0rem;\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n cursor: pointer;\n transition: 0.2s;\n\n ${(props) =>\n props.firstLevel &&\n css`\n background-color: #edf6fb;\n padding-left: 0.3rem;\n `}\n\n &:hover {\n background-color: #d8eaf4;\n }\n`;\n\nconst ItemNameContainer = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n`;\n\nconst ItemName = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 0.5rem;\n cursor: pointer;\n`;\n\nconst SubItemsContainer = styled.div<{ opened: boolean; firstLevel?: boolean }>`\n transition: 2s;\n margin-left: ${(props) => (props.firstLevel ? `0.8rem` : `1.5rem`)};\n border-left: 1px solid #d8eaf4;\n\n ${(props) =>\n props.opened\n ? css`\n display: block;\n `\n : css`\n display: none;\n `}\n`;\n\nconst NoData = styled(Text)`\n padding: 0.3rem 0.75rem 0.3rem 0.9rem;\n margin-bottom: 0.25rem;\n`;\n\nconst TreeItem: FunctionComponent = ({\n className,\n item,\n subItems,\n openState,\n firstLevel,\n}) => {\n const [opened, setOpened] = useState(openState);\n\n const handleItemClick = () => {\n setOpened(!opened);\n };\n\n return (\n \n \n \n {!firstLevel && }\n \n \n \n {item.name}\n \n ({item.itemCount} items)\n \n \n \n {item.units} units\n \n \n \n {subItems}\n \n \n );\n};\n\nconst listHeaders = [\"Name\", \"Type\", \"SLA\", \"Units\"];\n\nconst UsageTree = ({ data }: Props) => {\n const renderPlatformComponentsList = (\n platformComponentType: UsagePlatformComponentType\n ) =>\n platformComponentType.platformComponents.length === 0 ? (\n No components\n ) : (\n ({\n cells: [\n platformComponent.name,\n platformComponent.type,\n platformComponent.sla,\n {platformComponent.units} units,\n ],\n })\n )}\n customColumnWidths={[5, 2, 3, 1]}\n hover\n noDataText=\"You don't have any environments yet\"\n retryDataLoading={() => {}}\n extraStyling={css`\n padding-left: 1rem;\n margin: 0.5rem 0 1rem 0;\n width: 53rem;\n `}\n />\n );\n\n const renderPlatformComponentTypes = (deploymentArea: UsageDeploymentArea) =>\n deploymentArea.platformComponentTypes.length === 0 ? (\n No component types\n ) : (\n deploymentArea.platformComponentTypes.map(\n (\n platformComponentType: UsagePlatformComponentType,\n pctIndex: number\n ) => (\n \n {renderPlatformComponentsList(platformComponentType)}\n \n }\n />\n )\n )\n );\n\n const renderDeploymentAreas = (environment: UsageEnvironment) =>\n environment.deploymentAreas.length === 0 ? (\n No deployment areas\n ) : (\n environment.deploymentAreas.map(\n (deploymentArea: UsageDeploymentArea, daIndex: number) => (\n \n {renderPlatformComponentTypes(deploymentArea)}\n \n }\n />\n )\n )\n );\n\n return (\n \n \n {data.map((environment: UsageEnvironment, index: number) => (\n \n {renderDeploymentAreas(environment)}\n \n }\n />\n ))}\n \n \n );\n};\n\nexport default UsageTree as FunctionComponent;\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport { format } from \"date-fns\";\nimport { $statusSuccess, StatusCircle, Text } from \"styles/common\";\nimport { Units } from \"..\";\nimport { UsageOfMonth } from \"model/Usage\";\nimport UsageTree from \"components/Usage/UsageTree\";\n\ninterface Props {\n data: UsageOfMonth | undefined;\n}\n\nconst Container = styled.div`\n width: 100%;\n margin-top: 1rem;\n`;\n\nconst MonthContainer = styled.div``;\n\nconst MonthInformation = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n padding-right: 0.5rem;\n margin-bottom: 1.5rem;\n`;\n\nconst MonthInfoLeft = styled.div`\n display: flex;\n flex-direction: row;\n gap: 3rem;\n align-items: center;\n`;\n\nconst MonthStatus = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n`;\n\nconst IntegrationUnitsContainer = styled.div`\n margin-bottom: 1rem;\n width: 100%;\n`;\n\nexport const MonthDetail = ({ data }: Props) => (\n \n {data ? (\n \n \n \n \n Showing details for month{\" \"}\n \n {format(new Date(data.date), \"yyyy-MM\")}\n \n \n \n \n \n Service was active for {data.uptime}% of the time\n \n \n \n \n Total: {data.units} units\n \n \n \n \n \n \n ) : (\n No month is selected\n )}\n \n);\n","import React, {\n FunctionComponent,\n useCallback,\n useEffect,\n useState,\n} from \"react\";\nimport { UsageOfDate, UsageOfMonth } from \"model/Usage\";\nimport styled from \"styled-components\";\nimport { darkText } from \"styles/common\";\nimport { MonthsList } from \"./MonthsList\";\nimport { MonthDetail } from \"./MonthDetail\";\n\ninterface Props {\n data: UsageOfDate[] | undefined;\n access: boolean;\n selectedMonthData: UsageOfMonth | undefined;\n getSelectedMonthData(month: Date): void;\n retryDataLoading(): void;\n}\n\nexport const maxMonthsPerColumn = 3;\nexport const columnsCount = 2;\n\nconst Container = styled.div`\n display: flex;\n flex-direction: row;\n`;\nexport const Units = styled.span`\n ${darkText}\n`;\n\nconst UsagePerMonth: FunctionComponent = ({\n data,\n access,\n selectedMonthData,\n getSelectedMonthData,\n retryDataLoading,\n}) => {\n const [selectedMonth, setSelectedMonth] = useState(\n undefined\n );\n\n const handleMonthSelection = useCallback(\n (monthIndex: number) => {\n if (data && data.length > 0) {\n const monthData = data[monthIndex];\n setSelectedMonth(monthData);\n getSelectedMonthData(new Date(monthData.date));\n }\n },\n [data, getSelectedMonthData]\n );\n\n useEffect(() => {\n handleMonthSelection(0);\n }, [handleMonthSelection, data]);\n\n return (\n \n \n \n \n );\n};\n\nexport default UsagePerMonth;\n","import Card, { FilterHeader } from \"components/common/Card\";\nimport Pills from \"components/common/Pills\";\nimport { UsageLineChart } from \"components/Usage/UsageLineChart\";\nimport { inject, observer } from \"mobx-react\";\nimport { UsageTimeFrame, usageTimeFrames } from \"model/Time\";\nimport React, {\n FunctionComponent,\n useCallback,\n useEffect,\n useMemo,\n useState,\n} from \"react\";\nimport UsageStore from \"stores/UsageStore\";\nimport { getUsageStartDate } from \"utils/Date\";\nimport { css } from \"styled-components\";\nimport UsagePerMonth from \"components/Usage/UsagePerMonth\";\nimport { Prompt } from \"react-router\";\nimport { Route } from \"model/Navigation\";\nimport AuthenticationStore from \"stores/AuthenticationStore\";\nimport { PermissionArea, PermissionType } from \"model/Claim\";\nimport { NoAccessModal } from \"components/common/Modal\";\n\ninterface Props {\n usageStore: UsageStore;\n authenticationStore: AuthenticationStore;\n}\n\nconst Usage: FunctionComponent = ({\n usageStore,\n authenticationStore,\n}) => {\n const [dataLoaded, setDataLoaded] = useState(false);\n\n const accessViewUsage = authenticationStore.userHasPermission(\n PermissionArea.Usage,\n PermissionType.View\n );\n\n const [timeFrame, setTimeFrame] = useState(\n usageTimeFrames[0].id\n );\n\n const [startDate, setStartDate] = useState(undefined);\n const endDate = useMemo(() => new Date(), []);\n\n const setUsageStartDate = useCallback(() => {\n return getUsageStartDate(endDate, timeFrame);\n }, [endDate, timeFrame]);\n\n useEffect(() => {\n // Load data & reload when endDate changes\n\n const start = setUsageStartDate();\n setStartDate(start);\n\n accessViewUsage &&\n usageStore.getUnitConsumptionData(start, endDate).then(() => {\n !usageStore.usagePerMonthData &&\n usageStore.getUsagePerMonthData().then(() => {\n setDataLoaded(true);\n });\n });\n }, [accessViewUsage, endDate, setUsageStartDate, usageStore]);\n\n useEffect(() => {\n setStartDate(getUsageStartDate(endDate, timeFrame));\n }, [endDate, timeFrame]);\n\n const handleDataReloadConsumption = () => {\n accessViewUsage &&\n startDate &&\n usageStore.getUnitConsumptionData(startDate, endDate);\n };\n\n const handleDataReloadMonths = () => {\n accessViewUsage && usageStore.getUsagePerMonthData();\n };\n\n return (\n <>\n {\n if (!location.pathname.startsWith(Route.Usage))\n // Reset data when leaving page\n usageStore.reset();\n\n return true;\n }}\n />\n\n \n

Integration unit consumption

\n {\n setTimeFrame(id);\n }}\n />\n \n }\n >\n {!accessViewUsage && }\n\n {(!accessViewUsage || dataLoaded) && (\n \n )}\n \n\n Usage per month

}\n extraContentStyling={css`\n padding-bottom: 1.5rem;\n `}\n >\n {!accessViewUsage && }\n\n {(!accessViewUsage || dataLoaded) && (\n \n )}\n \n \n );\n};\n\nexport default inject(\n \"usageStore\",\n \"authenticationStore\"\n)(\n observer(\n Usage as FunctionComponent<\n Omit\n >\n )\n);\n","import { ExtraStylingType } from \"model/Styles\";\nimport React, { FunctionComponent } from \"react\";\nimport { Doughnut } from \"react-chartjs-2\";\nimport styled, { css } from \"styled-components\";\nimport { $textLight, chartColorPalette, Text } from \"styles/common\";\n\ninterface Props {\n data: number[] | undefined;\n extraStyling?: ExtraStylingType;\n}\n\nconst Container = styled.div<{\n extraStyling: ExtraStylingType;\n}>`\n display: flex;\n flex-direction: row;\n align-items: center;\n\n ${(props) => props.extraStyling};\n`;\n\nconst size = \"9rem\";\n\nconst DoughnutContainer = styled.div`\n position: relative;\n display: flex;\n min-width: ${size};\n width: ${size};\n max-width: ${size};\n`;\n\nconst MiddleContent = styled.div`\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n display: flex;\n flex-direction: column;\n text-align: center;\n`;\n\nconst NoDataImage = styled.div`\n min-width: ${size};\n width: ${size};\n max-width: ${size};\n height: ${size};\n display: flex;\n align-items: center;\n justify-content: center;\n`;\n\nexport const ReportDoughnutChart: FunctionComponent = ({\n data,\n extraStyling = css``,\n}) => {\n const renderDoughnutChart = data && (\n \n \";\n document.body.appendChild(tooltipEl);\n }\n\n // Hide if no tooltip\n var tooltipModel = context.tooltip;\n if (tooltipModel.opacity === 0) {\n tooltipEl.style.display = \"none\";\n return;\n }\n\n // Set caret Position\n tooltipEl.classList.remove(\"above\", \"below\", \"no-transform\");\n if (tooltipModel.yAlign) {\n tooltipEl.classList.add(tooltipModel.yAlign);\n } else {\n tooltipEl.classList.add(\"no-transform\");\n }\n\n function getBody(bodyItem: any) {\n return bodyItem.lines;\n }\n\n // Set tooltip content\n if (tooltipModel.body) {\n var bodyLines = tooltipModel.body.map(getBody);\n\n let innerHtml = \"\";\n\n // Content\n bodyLines.forEach(function (body: any, i: number) {\n const statusColors = [...tooltipModel.labelColors];\n var colors = statusColors[i];\n innerHtml += `
`;\n innerHtml += `
`;\n const label = body[0].split(\":\")[0];\n const value = body[0].split(\":\")[1];\n innerHtml += `

${label}: ${value}

`;\n innerHtml += `
`;\n });\n\n var tableRoot = tooltipEl.querySelector(\"div\");\n if (tableRoot) {\n tableRoot.innerHTML = innerHtml;\n }\n }\n\n var position = context.chart.canvas.getBoundingClientRect();\n\n // Display, position, and set styles for font\n tooltipEl.style.display = \"flex\";\n tooltipEl.style.position = \"absolute\";\n tooltipEl.style.left =\n position.left +\n window.pageXOffset +\n tooltipModel.caretX +\n \"px\";\n tooltipEl.style.top =\n position.top +\n window.pageYOffset +\n tooltipModel.caretY +\n \"px\";\n tooltipEl.style.padding =\n tooltipModel.padding + \"px \" + tooltipModel.padding + \"px\";\n tooltipEl.style.borderRadius = \"0.1rem\";\n tooltipEl.style.display = \"flex\";\n tooltipEl.style.flexDirection = \"row\";\n tooltipEl.style.boxShadow =\n \"0px 1px 1px 1px rgba(0, 0, 0, 0.15)\";\n tooltipEl.style.backgroundColor = \"#fefefe\";\n tooltipEl.style.padding = \"0.5rem 0.75rem\";\n tooltipEl.style.pointerEvents = \"none\";\n tooltipEl.style.color = $textLight;\n },\n },\n },\n //@ts-ignore\n cutout: 60,\n borderWidth: 0,\n animation: { duration: 0 },\n }}\n />\n\n \n \n {data && data.reduce((a, b) => a + b, 0)}\n \n \n tickets\n \n \n
\n );\n\n const renderNoData = (\n \n \n \n );\n\n return (\n \n {data\n ? data.length > 0\n ? renderDoughnutChart\n : renderNoData\n : renderNoData}\n \n );\n};\n","import { Pagination } from \"components/common/Pagination\";\nimport SearchInput from \"components/common/SearchInput\";\nimport { inject, observer } from \"mobx-react\";\nimport { Execution } from \"model/Execution\";\nimport { ExecutionSearchFilter } from \"model/ExecutionSearch\";\nimport { ExecutionSuccessStatus } from \"model/Status\";\nimport React, {\n FunctionComponent,\n useCallback,\n useEffect,\n useState\n} from \"react\";\nimport ExecutionStore from \"stores/ExecutionStore\";\nimport GeneralStore from \"stores/GeneralStore\";\nimport styled from \"styled-components\";\nimport { Select } from \"styles/common\";\nimport { ListItems } from \"./ListItems\";\n\ninterface Props {\n widget?: boolean;\n access: boolean;\n onLeaveWidget?: () => void;\n generalStore: GeneralStore;\n executionStore: ExecutionStore;\n loaded?: boolean; // For unit tests\n}\n\nconst Container = styled.div`\n margin-bottom: 0.5rem;\n position: relative;\n`;\n\nconst TopBar = styled.div`\n min-height: 2rem;\n margin-bottom: 2rem;\n position: relative;\n display: flex;\n flex-direction: row-reverse;\n align-items: center;\n`;\n\nexport const ViewFilter = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n`;\n\n\n\nexport enum ViewType {\n Tiles = 0,\n List = 1,\n}\n\n\nexport const maxWidgetTiles = 9;\nexport const maxTilesPerPage = 15;\nexport const maxListItemsPerPage = 20;\n\nexport const seperateIntoPages = (\n executionData: Execution[] | undefined\n) => {\n if (executionData === undefined) return [];\n\n const maxItems = maxListItemsPerPage;\n\n let newExecutionData: Array = [];\n for (let i = 0; i < executionData.length; i += maxItems) {\n newExecutionData.push(executionData.slice(i, i + maxItems));\n }\n\n return newExecutionData;\n};\n\nconst Executions: FunctionComponent = ({\n widget = false,\n access,\n onLeaveWidget = () => { },\n generalStore,\n executionStore: executionStore,\n loaded = false,\n}) => {\n const [dataLoad, setDataLoad] = useState(loaded);\n\n const [itemsToRender, setItemsToRender] = useState<\n Execution[] | undefined\n >(undefined);\n\n const [currentPage, setCurrentPage] = useState(0);\n\n const [searchList, setSearchList] = useState<\n Array | undefined\n >(undefined);\n\n // Initial data load + get data when environment or timeframe changes\n useEffect(() => {\n if (access) {\n // executionStore.searchFilter = undefined;\n executionStore.getExecutionsData().finally(() => {\n setDataLoad(true);\n });\n }\n }, [\n executionStore,\n generalStore.currentEnvironment,\n generalStore.timeFrame,\n access,\n ]);\n\n useEffect(() => {\n executionStore.executionsData &&\n executionStore.setExecutionsData(\n seperateIntoPages(executionStore.executionsData)\n );\n setCurrentPage(0);\n }, [executionStore, executionStore.executionsData]);\n\n\n const getItemsToRender = useCallback((force: boolean = false) => {\n if (executionStore.executionsData) {\n if (executionStore.searchFilter || force == true) {\n getSearchItems(force, false);\n }\n if (searchList) {\n setItemsToRender(\n searchList.length > 0 ? searchList[currentPage] : []\n );\n } else {\n setItemsToRender(\n executionStore.pagedExecutions && executionStore.pagedExecutions.length > 0\n ? executionStore.pagedExecutions[currentPage]\n : []\n );\n }\n }\n }, [\n currentPage,\n executionStore.executionsData,\n searchList,\n widget,\n ]);\n\n useEffect(() => {\n // Get new items when page changes\n executionStore.executionsData && getItemsToRender(true);\n }, [executionStore.executionsData, currentPage]);\n\n useEffect(() => {\n // Get new items when search filter changes\n getItemsToRender();\n }, [searchList, getItemsToRender]);\n\n const getSearchItems = (force: boolean = false, resetPages: boolean = true) => {\n if (\n // executionStore.searchFilter === filter &&\n !force) return;\n // executionStore.searchFilter = filter;\n if (executionStore.pagedExecutions) {\n if (resetPages)\n setCurrentPage(0);\n if (!executionStore.searchFilter?.hasFilterValues()) {\n setSearchList(undefined);\n } else {\n const allLevelExecutions = [\n ...executionStore.pagedExecutions,\n ].flat();\n\n const filteredGroups = allLevelExecutions.filter((execution) =>\n (executionStore.searchFilter?.filterString ? execution.logicalGroupName.toLowerCase().includes(executionStore.searchFilter.filterString.toLowerCase()) : true)\n && \n (executionStore.searchFilter?.successStatusFilter !== undefined ? execution.successStatus === executionStore.searchFilter?.successStatusFilter : true)\n );\n\n if (filteredGroups.length > 0) {\n setSearchList(seperateIntoPages(filteredGroups));\n } else {\n setSearchList([]);\n }\n }\n }\n };\n\n const onItemClick = async (item: Execution) => {\n if (item.details) {\n item.details = undefined;\n }\n else {\n executionStore.executionsData?.forEach(e => e.details = undefined);\n await executionStore.getExecutionDetailsData(item.transactionId);\n item.details = executionStore.executionDetailsData;\n }\n\n if (executionStore.searchFilter?.hasFilterValues())\n getSearchItems(false, false);\n else {\n executionStore.setExecutionsData(seperateIntoPages(executionStore.executionsData));\n }\n\n getItemsToRender(true);\n };\n\n const handleDataReload = () => {\n if (access) {\n if (!generalStore.currentEnvironment) {\n generalStore.getEnvironments().then(() => {\n executionStore.getExecutionsData();\n });\n } else executionStore.getExecutionsData();\n }\n };\n\n const handleExecutionDetailsDataReload = (transactionId: number) => {\n if (access) {\n executionStore.getExecutionDetailsData(transactionId);\n }\n }\n\n const renderStatusDropdown = (\n \n )\n\n const renderSearch = (\n {\n executionStore.setSearchFilter(new ExecutionSearchFilter(value, executionStore.searchFilter?.successStatusFilter));\n getSearchItems(true);\n }}\n />\n );\n\n const renderTopBar = (\n \n {executionStore.executionsData &&\n executionStore.executionsData.length > 0 &&\n renderSearch}\n {renderStatusDropdown}\n \n );\n\n const renderPagination = (\n \n );\n\n const renderListItems = (\n \n );\n\n return (\n \n {!widget && executionStore.executionsData && executionStore.executionsData.length > 0 && renderTopBar}\n\n {renderListItems}\n\n {access &&\n !widget &&\n itemsToRender &&\n itemsToRender.length > 0 &&\n renderPagination}\n \n );\n};\n\nexport default inject(\n \"executionStore\",\n \"generalStore\"\n)(\n observer(\n Executions as FunctionComponent<\n Omit\n >\n )\n);\n","import { List } from \"components/common/List\";\nimport { format, isValid } from \"date-fns\";\nimport { getReportIncidentStatus, ReportIncident } from \"model/Report\";\nimport React from \"react\";\nimport styled from \"styled-components\";\n\ninterface Props {\n incidents: ReportIncident[] | undefined;\n access: boolean;\n retryDataLoading(): void;\n}\n\nconst Container = styled.div`\n margin-bottom: 1rem;\n`;\n\n// const BreachText = styled(Text)<{ breached?: boolean }>`\n// ${(props) =>\n// props.breached !== undefined &&\n// css`\n// color: ${props.breached ? $statusFail : \"#91ba67\"};\n// `}\n// `;\n\nconst headers = [\n \"Number\",\n \"Priority\",\n \"Description\",\n \"Created by\",\n \"Created (CET)\",\n \"Started (CET)\",\n \"Resolved (CET)\",\n \"Status\",\n // \"Response Time\",\n // \"Resolution Time\",\n];\n\nexport const ReportIncidentsList = ({\n incidents,\n access,\n retryDataLoading,\n}: Props) => {\n return (\n \n ({\n cells: [\n incident.ticket,\n incident.priority,\n incident.description,\n incident.createdBy,\n incident.created && isValid(incident.created)\n ? format(incident.created, \"yyyy-MM-dd HH:MM\")\n : \"-\",\n incident.started && isValid(incident.started)\n ? format(incident.started, \"yyyy-MM-dd HH:MM\")\n : \"-\",\n incident.resolved && isValid(incident.resolved)\n ? format(incident.resolved, \"yyyy-MM-dd HH:MM\")\n : \"-\",\n getReportIncidentStatus(incident.status).name,\n // \n // {incident.responseTime ? incident.responseTime : \"-\"}\n // ,\n // \n // {incident.resolutionTime ? incident.resolutionTime : \"-\"}\n // ,\n ],\n }))\n : undefined\n }\n customColumnWidths={[1, 1, 5, 2, 3, 3, 3, 2 /*2, 2*/]}\n hover\n access={access}\n noDataText=\"You don't have any incidents for this month.\"\n smallEmpty\n onRowClick={(rowId: number) => {\n incidents &&\n window.open(\n `https://horizon.cegeka.com/collaboration/ticket/${incidents[rowId].ticket}`\n );\n }}\n retryDataLoading={retryDataLoading}\n />\n \n );\n};\n","const movePlaceInArray = (array: any[], oldIndex: number, newIndex: number) => {\n if (newIndex >= array.length) {\n var k = newIndex - array.length + 1;\n while (k--) {\n array.push(undefined);\n }\n }\n array.splice(newIndex, 0, array.splice(oldIndex, 1)[0]);\n return array;\n};\n\nexport const moveUpInArray = (item: any, array: any[]) => {\n const currentIndex = array.indexOf(item);\n return movePlaceInArray(array, currentIndex, currentIndex - 1);\n};\n\nexport const moveDownInArray = (item: any, array: any[]) => {\n const currentIndex = array.indexOf(item);\n return movePlaceInArray(array, currentIndex, currentIndex + 1);\n};\n\nconst sumOfNumbers = (accumulator: number, a: number) => {\n return accumulator + a;\n};\n\nexport const getSumOfNumbersArray = (array: number[]) => {\n return array.reduce(sumOfNumbers, 0);\n};\n","import Legend, { LegendItem } from \"components/common/Legend\";\nimport { ExtraStylingType } from \"model/Styles\";\nimport React, { FunctionComponent, useEffect, useState } from \"react\";\nimport { Pie } from \"react-chartjs-2\";\nimport styled, { css } from \"styled-components\";\nimport {\n $textLight,\n reportTicketStatusColorPalette,\n StatusCircle,\n Text,\n Button,\n $statusFail,\n} from \"styles/common\";\nimport { getSumOfNumbersArray } from \"utils/Array\";\n\ninterface Data {\n open: number;\n inProgress: number;\n resolved: number;\n closed: number;\n}\n\ninterface Props {\n title: string;\n color: string;\n data: Data | undefined;\n access: boolean;\n retryDataLoading(): void;\n extraStyling?: ExtraStylingType;\n}\n\nconst Container = styled.div<{\n extraStyling: ExtraStylingType;\n}>`\n display: flex;\n flex-direction: column;\n justify-content: center;\n gap: 1.5rem;\n\n ${(props) => props.extraStyling};\n`;\n\nconst Content = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n position: relative;\n`;\n\nconst size = \"5rem\";\n\nconst PieContainer = styled.div`\n position: relative;\n min-width: ${size};\n width: ${size};\n max-width: ${size};\n`;\n\nconst LegendContainer = styled.div`\n margin-left: 1rem;\n`;\n\nconst NoDataContainer = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 1rem;\n`;\n\nconst NoDataImage = styled.div`\n min-width: ${size};\n width: ${size};\n max-width: ${size};\n height: ${size};\n display: flex;\n align-items: center;\n justify-content: center;\n`;\n\nconst FailedContainer = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 1rem;\n text-align: center;\n`;\n\nconst emptyPieSize = \"5rem\";\n\nconst EmptyPie = styled.div`\n width: ${emptyPieSize};\n min-width: ${emptyPieSize};\n max-width: ${emptyPieSize};\n height: 5rem;\n min-height: ${emptyPieSize};\n max-height: ${emptyPieSize};\n border-radius: 50%;\n background-color: #f3f3f3;\n position: absolute;\n top: 50%;\n left: 0;\n transform: translateY(-50%);\n`;\n\nexport const ReportPieChart: FunctionComponent = ({\n title,\n color,\n data,\n access,\n retryDataLoading,\n extraStyling = css``,\n}) => {\n const [legendItems, setLegendItems] = useState(\n undefined\n );\n\n useEffect(() => {\n setLegendItems([\n {\n explanation: \"Open:\",\n boldValue: data && data.open.toString(),\n color: reportTicketStatusColorPalette[0],\n },\n {\n explanation: \"In progress:\",\n boldValue: data && data.inProgress.toString(),\n color: reportTicketStatusColorPalette[1],\n },\n {\n explanation: \"Resolved:\",\n boldValue: data && data.resolved.toString(),\n disclaimer: true,\n color: reportTicketStatusColorPalette[2],\n },\n {\n explanation: \"Closed:\",\n boldValue: data && data.closed.toString(),\n disclaimer: true,\n color: reportTicketStatusColorPalette[3],\n },\n ]);\n }, [data]);\n\n const renderPieChart = () => {\n const dataValues = data\n ? [data.open, data.inProgress, data.resolved, data.closed]\n : [];\n\n const dataIsEmpty = getSumOfNumbersArray(dataValues) === 0;\n\n return (\n data && (\n \n {dataIsEmpty && }\n \n \";\n document.body.appendChild(tooltipEl);\n }\n\n // Hide if no tooltip\n var tooltipModel = context.tooltip;\n if (tooltipModel.opacity === 0) {\n tooltipEl.style.display = \"none\";\n return;\n }\n\n // Set caret Position\n tooltipEl.classList.remove(\n \"above\",\n \"below\",\n \"no-transform\"\n );\n if (tooltipModel.yAlign) {\n tooltipEl.classList.add(tooltipModel.yAlign);\n } else {\n tooltipEl.classList.add(\"no-transform\");\n }\n\n function getBody(bodyItem: any) {\n return bodyItem.lines;\n }\n\n // Set tooltip content\n if (tooltipModel.body) {\n var bodyLines = tooltipModel.body.map(getBody);\n\n let innerHtml = \"\";\n\n // Content\n bodyLines.forEach(function (body: any, i: number) {\n const statusColors = [...tooltipModel.labelColors];\n var colors = statusColors[i];\n innerHtml += `
`;\n innerHtml += `
`;\n let label = body[0].split(\":\")[0];\n if (label.includes(\"*\")) {\n label = label.replace(\n \"*\",\n `*`\n );\n }\n const value = body[0].split(\":\")[1];\n innerHtml += `

${label}: ${value}

`;\n innerHtml += `
`;\n });\n\n var tableRoot = tooltipEl.querySelector(\"div\");\n if (tableRoot) {\n tableRoot.innerHTML = innerHtml;\n }\n }\n\n var position =\n context.chart.canvas.getBoundingClientRect();\n\n // Display, position, and set styles for font\n tooltipEl.style.display = \"flex\";\n tooltipEl.style.position = \"absolute\";\n tooltipEl.style.left =\n position.left +\n window.pageXOffset +\n tooltipModel.caretX +\n \"px\";\n tooltipEl.style.top =\n position.top +\n window.pageYOffset +\n tooltipModel.caretY +\n \"px\";\n tooltipEl.style.padding =\n tooltipModel.padding +\n \"px \" +\n tooltipModel.padding +\n \"px\";\n tooltipEl.style.borderRadius = \"0.1rem\";\n tooltipEl.style.display = \"flex\";\n tooltipEl.style.flexDirection = \"row\";\n tooltipEl.style.boxShadow =\n \"0px 1px 1px 1px rgba(0, 0, 0, 0.15)\";\n tooltipEl.style.backgroundColor = \"#fefefe\";\n tooltipEl.style.padding = \"0.5rem 0.75rem\";\n tooltipEl.style.pointerEvents = \"none\";\n tooltipEl.style.color = $textLight;\n },\n },\n },\n //@ts-ignore\n borderWidth: 0,\n animation: { duration: 0 },\n }}\n />\n
\n\n {legendItems && (\n \n \n \n )}\n
\n )\n );\n };\n\n const renderNoData = (\n \n \n \"Pie\n \n {access && (\n \n Failed to load data\n \n \n )}\n \n );\n\n return (\n \n \n {data && }\n {title}\n \n\n {data ? renderPieChart() : renderNoData}\n \n );\n};\n","import IconComponent from \"components/common/Icon\";\nimport React, { FunctionComponent } from \"react\";\nimport { List } from \"components/common/List\";\nimport styled from \"styled-components\";\nimport { ReportChangeRequest } from \"model/Report\";\nimport { $blue4, Text, iconButtonStyling } from \"styles/common\";\nimport { Icon } from \"model/Icon\";\nimport { format } from \"date-fns\";\n\ninterface Props {\n month: Date | undefined;\n changeRequests: ReportChangeRequest[] | undefined;\n disputeEmail: string;\n access: boolean;\n retryDataLoading(): void;\n}\n\nconst Container = styled.div`\n margin-top: 1rem;\n`;\n\nconst ButtonContainer = styled.a`\n ${iconButtonStyling}\n`;\n\nconst ReportChangeRequestsList: FunctionComponent = ({\n month,\n changeRequests,\n disputeEmail,\n access,\n retryDataLoading,\n}) => {\n const handleTicketDispute = (ticketNumber: string) => {};\n\n return (\n \n {\n return {\n cells: [\n request.ticket,\n request.title,\n request.requestedBy,\n request.workOrder,\n //request.hours,\n request.canDispute && month && disputeEmail ? (\n {\n e.stopPropagation();\n handleTicketDispute(request.ticket);\n }}\n >\n \n Contact\n \n ) : (\n \"\"\n ),\n ],\n };\n })\n : undefined\n }\n customColumnWidths={[1, 5, 1, /*2,*/ 1]}\n hover\n access={access}\n noDataText=\"You don't have any change requests for this month.\"\n smallEmpty\n onRowClick={(rowId: number) => {\n changeRequests &&\n window.open(\n `https://horizon.cegeka.com/collaboration/ticket/${changeRequests[rowId].ticket}`\n );\n }}\n retryDataLoading={retryDataLoading}\n />\n \n );\n};\n\nexport default ReportChangeRequestsList;\n","import React, { FunctionComponent } from \"react\";\nimport { List } from \"components/common/List\";\nimport styled from \"styled-components\";\nimport { ReportProActiveWorkItem } from \"model/Report\";\nimport { format } from \"date-fns\";\n\ninterface Props {\n proActiveWorkItems: ReportProActiveWorkItem[] | undefined;\n access: boolean;\n retryDataLoading(): void;\n}\n\nconst Container = styled.div`\n margin-top: 1rem;\n`;\n\nconst ReportProActiveWorkList: FunctionComponent = ({\n proActiveWorkItems,\n access,\n retryDataLoading,\n}) => {\n return (\n \n {\n return {\n cells: [\n item.ticket,\n format(item.date, \"yyyy-MM-dd\"),\n item.task,\n item.closed ? \"Closed\" : \"Open\",\n ],\n };\n })\n : undefined\n }\n customColumnWidths={[1, 1, 6, 1]}\n hover\n access={access}\n noDataText=\"There are no pro active work items for this month.\"\n smallEmpty\n onRowClick={(rowId: number) => {\n proActiveWorkItems &&\n window.open(\n `https://horizon.cegeka.com/collaboration/ticket/${proActiveWorkItems[rowId].ticket}`\n );\n }}\n retryDataLoading={retryDataLoading}\n />\n \n );\n};\n\nexport default ReportProActiveWorkList;\n","import Card from \"components/common/Card\";\nimport { ReportDoughnutChart } from \"components/Reports/ReportDoughnutChart\";\nimport { ReportIncidentsList } from \"components/Reports/ReportIncidentsList\";\nimport { ReportPieChart } from \"components/Reports/ReportPieChart\";\nimport ReportChangeRequestsList from \"components/Reports/ReportChangeRequestsList\";\nimport { inject, observer } from \"mobx-react\";\nimport { Route } from \"model/Navigation\";\nimport React, { Fragment, FunctionComponent, useEffect, useState } from \"react\";\nimport { Prompt } from \"react-router\";\nimport ReportStore from \"stores/ReportStore\";\nimport styled, { css } from \"styled-components\";\nimport {\n $grey,\n $statusFail,\n Button,\n chartColorPalette,\n Filter,\n Select,\n Span,\n StatusCircle,\n Text,\n} from \"styles/common\";\nimport ReportProActiveWorkList from \"components/Reports/ReportProActiveWorkList\";\n// import { ReportSLA } from \"components/Reports/ReportSLA\";\nimport { format } from \"date-fns\";\nimport AuthenticationStore from \"stores/AuthenticationStore\";\nimport { PermissionArea, PermissionType } from \"model/Claim\";\nimport { NoAccessModal } from \"components/common/Modal\";\nimport Loader from \"components/common/Loader\";\n\ninterface Props {\n reportStore: ReportStore;\n authenticationStore: AuthenticationStore;\n}\n\nconst ResolvedHeader = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n`;\n\nconst Line = styled.div<{ access: boolean }>`\n position: absolute;\n top: 4.5rem;\n left: ${(props) => (props.access ? \"23rem\" : \"33rem\")};\n width: calc(100% - ${(props) => (props.access ? \"23rem\" : \"33rem\")});\n border-bottom: 1px solid ${$grey};\n`;\n\nconst extraSummaryCardContentStyling = css`\n padding: 2.5rem 3rem 3.5rem 2.5rem;\n display: flex;\n flex-direction: row;\n justify-content: center;\n gap: 3.5rem;\n`;\n\nconst OpenedAndClosed = styled.div`\n display: flex;\n flex-direction: row;\n gap: 1rem;\n position: absolute;\n bottom: 1rem;\n left: 15rem;\n`;\n\nconst MonthNote = styled(Text)`\n width: 100%;\n text-align: right;\n color: #8e969c;\n position: absolute;\n bottom: 1rem;\n right: 1.25rem;\n`;\n\nconst ChangeRequestNote = styled(Text)`\n margin-top: 2rem;\n padding: 0.6rem 0.85rem;\n background-color: #dee7eb;\n border-radius: 0.2rem;\n width: max-content;\n`;\n\nconst NoMonths = styled(Text)`\n margin-top: 1rem;\n font-size: 1.125rem;\n`;\n\nconst Reports: FunctionComponent = ({\n reportStore,\n authenticationStore,\n}) => {\n const [dataLoaded, setDataLoaded] = useState(false);\n\n const accessViewReport = authenticationStore.userHasPermission(\n PermissionArea.Report,\n PermissionType.View\n );\n\n const [selectedMonth, setSelectedMonth] = useState(\n undefined\n );\n\n useEffect(() => {\n if (accessViewReport && !reportStore.monthsList) {\n reportStore.getReportStartDate().finally(() => {\n if (reportStore.monthsList && reportStore.monthsList.length === 0) {\n setDataLoaded(true);\n }\n });\n }\n }, [accessViewReport, reportStore]);\n\n useEffect(() => {\n if (\n accessViewReport &&\n !reportStore.currentMonthData &&\n reportStore.monthsList &&\n reportStore.monthsList.length > 0\n ) {\n const lastReportMonthIndex = reportStore.monthsList.length - 1;\n setSelectedMonth(reportStore.monthsList[lastReportMonthIndex]);\n reportStore.getReportOfMonth(reportStore.monthsList[lastReportMonthIndex]).finally(() => {\n setDataLoaded(true);\n });\n }\n }, [accessViewReport, reportStore, reportStore.monthsList]);\n\n const handleMonthSelection = () => {\n selectedMonth && reportStore.getReportOfMonth(selectedMonth);\n };\n\n const handleDataReload = () => {\n accessViewReport &&\n (!reportStore.monthsList\n ? reportStore.getReportStartDate()\n : reportStore.getReportOfMonth(reportStore.monthsList[reportStore.monthsList.length - 1]));\n };\n\n const renderDoughnutChart = (\n \n );\n\n const renderPieChartIncidents = (\n \n );\n\n const renderPieChartProActiveWork = (\n \n );\n\n const renderPieChartChangeRequests = (\n \n );\n\n return (\n <>\n {\n if (!location.pathname.startsWith(Route.Reports))\n // Reset data when leaving page\n reportStore.reset();\n\n return true;\n }}\n />\n \n \n Activity Report from\n \n {reportStore.monthsList && reportStore.monthsList.length > 0 && (\n \n {\n setSelectedMonth(new Date(e.target.value));\n }}\n >\n {reportStore.monthsList &&\n reportStore.monthsList.map((month, index) => (\n \n ))}\n \n \n until today\n \n \n \n )}\n \n\n {reportStore.monthsList && reportStore.monthsList.length > 0 ? (\n <>\n \n {!dataLoaded ? (\n \n ) : (\n <>\n \n\n {!accessViewReport && }\n\n {(!accessViewReport || dataLoaded) && (\n <>\n {renderDoughnutChart}\n\n {renderPieChartIncidents}\n {renderPieChartProActiveWork}\n {renderPieChartChangeRequests}\n\n {reportStore.currentMonthData && (\n \n (*) during the selected time range\n \n )}\n\n {reportStore.currentMonthData && (\n \n \n Opened*:{\" \"}\n \n {reportStore.currentMonthData.openedTickets}\n \n \n \n Closed*:{\" \"}\n \n {reportStore.currentMonthData.closedTickets}\n \n \n \n )}\n \n )}\n \n )}\n \n\n \n \n \n Resolved incidents and problems\n \n \n (during the selected time range)\n \n \n }\n collapsable\n >\n {!dataLoaded ? (\n \n ) : (\n <>\n {!accessViewReport && }\n\n \n\n {/* {accessViewReport &&\n selectedMonth &&\n reportStore.currentMonthData && (\n \n )} */}\n \n )}\n \n\n \n \n Open incidents and problems\n

\n }\n collapsable\n >\n {!dataLoaded ? (\n \n ) : (\n <>\n {!accessViewReport && }\n\n \n \n )}\n \n\n \n \n Pro-active work\n

\n }\n collapsable\n extraContentStyling={css`\n padding-bottom: 1.75rem;\n `}\n >\n {!dataLoaded ? (\n \n ) : (\n <>\n {!accessViewReport && }\n\n Work performed as part of the service\n\n \n \n )}\n \n\n \n \n Change requests\n

\n }\n collapsable\n extraContentStyling={css`\n padding-bottom: 1.75rem;\n `}\n >\n {!dataLoaded ? (\n \n ) : (\n <>\n {!accessViewReport && }\n\n \n Additional work Cegeka has performed after your approval\n \n\n \n\n {accessViewReport && (\n \n Note: Change Requests are billable and processed as part of\n the billing cycle. The list of Change Requests will be final\n as soon as you receive your bill.\n \n )}\n \n )}\n \n \n ) : (\n \n \n \n There are no reports available yet.\n \n \n )}\n \n );\n};\n\nexport default inject(\n \"reportStore\",\n \"authenticationStore\"\n)(\n observer(\n Reports as FunctionComponent<\n Omit\n >\n )\n);\n","import styled from \"styled-components\";\nimport { Text } from \"styles/common\";\n\nexport const Header = styled.div`\n margin-bottom: 1.5rem;\n`;\n\nexport const HeaderTitle = styled(Text)`\n font-size: 1.25rem;\n`;\n\nexport const HeaderExplanation = styled(Text)`\n max-width: 50rem;\n`;\n\nexport const CardHeader = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 0.75rem;\n width: 100%;\n position: relative;\n`;\n","import { ExtraStylingType } from \"model/Styles\";\nimport React from \"react\";\nimport styled, { css } from \"styled-components\";\nimport { Text, Button } from \"styles/common\";\n\ninterface Props {\n className?: string;\n title: string;\n content: any;\n disableAction?: boolean;\n action(): void;\n cancel(): void;\n extraStyling?: ExtraStylingType;\n}\n\nconst Background = styled.div`\n content: \"\";\n position: fixed;\n left: 0;\n right: 0;\n bottom: 0;\n top: 0;\n background: hsla(0, 0%, 100%, 0.5);\n z-index: 101;\n`;\n\nconst Container = styled.div<{ extraStyling: ExtraStylingType }>`\n position: absolute;\n left: 50%;\n top: 50%;\n width: auto;\n max-width: 30rem;\n min-width: 230px;\n padding: 1rem 1.25rem 4.5rem 1.25rem;\n border: 1px solid #cbd7df;\n background-color: #fff;\n border-radius: 0.25rem;\n transform: translate(-50%, -50%);\n box-sizing: border-box;\n z-index: 101;\n transition: opacity 0.15s linear;\n\n ${(props) => props.extraStyling}\n`;\n\nconst Title = styled(Text)`\n margin-bottom: 1.5rem;\n`;\n\nconst Actions = styled.div`\n position: absolute;\n bottom: 1rem;\n left: 0;\n width: 100%;\n display: flex;\n flex-direction: row;\n justify-content: center;\n gap: 1rem;\n`;\n\nexport const CrudModal = ({\n className = \"\",\n title,\n content,\n disableAction = false,\n action,\n cancel,\n extraStyling = css``,\n}: Props) => {\n return (\n \n \n \n {title}\n \n
{content}
\n \n \n Cancel\n \n {\n !disableAction && action();\n }}\n >\n Save\n \n \n \n
\n );\n};\n","export interface CountryPhoneCode {\n country: string;\n calCode: string;\n}\n\nexport interface PhoneNumber {\n code: string;\n number: string;\n}\n\nexport const defaultCountryPhoneCode: CountryPhoneCode = {\n country: \"BE\",\n calCode: \"32\",\n};\n","import { ExtraStylingType } from \"model/Styles\";\nimport React, { FunctionComponent, useState, useEffect } from \"react\";\nimport GeneralStore from \"stores/GeneralStore\";\nimport styled, { css } from \"styled-components\";\nimport { Text, Select, Span, inputStyling, $statusFail } from \"styles/common\";\nimport { PhoneNumberUtil } from \"google-libphonenumber\";\nimport { inject, observer } from \"mobx-react\";\nimport { defaultCountryPhoneCode, PhoneNumber } from \"model/Phone\";\nimport { validateNumber } from \"utils/Validation\";\n\ninterface Props {\n label: string;\n defaultValue: PhoneNumber | undefined;\n mandatory?: boolean;\n error?: boolean;\n errorText?: string;\n className?: string;\n onValueChange(phoneNumber: PhoneNumber): void;\n extraStyling?: ExtraStylingType;\n generalStore: GeneralStore;\n}\n\nconst Container = styled.div<{ extraStyling: ExtraStylingType }>`\n ${(props) => props.extraStyling}\n`;\n\nconst Label = styled(Text)`\n margin-bottom: 0.3rem;\n`;\n\nconst InputContainer = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 0.5rem;\n`;\n\nconst Input = styled.input`\n ${inputStyling}\n width: 100%;\n`;\n\nconst Error = styled(Text)`\n margin: 0.15rem 0 0 0rem;\n font-size: 0.8rem;\n`;\n\nconst PhoneInput: FunctionComponent = ({\n label,\n defaultValue,\n mandatory = false,\n error = false,\n errorText = undefined,\n className = \"\",\n onValueChange,\n extraStyling = css``,\n generalStore,\n}) => {\n const [phoneNumber, setPhoneNumber] = useState(\n defaultValue\n );\n\n useEffect(() => {\n if (!generalStore.countryPhoneCodes) {\n const phoneUtil = PhoneNumberUtil.getInstance();\n const countryCodes = phoneUtil.getSupportedRegions();\n\n generalStore.setCountryPhoneCodes(\n countryCodes.map((country: string) => ({\n country: country,\n calCode: phoneUtil.getCountryCodeForRegion(country).toString(),\n }))\n );\n }\n\n if (!phoneNumber) {\n setPhoneNumber({\n code: defaultCountryPhoneCode.calCode,\n number: \"\",\n });\n }\n }, [generalStore, phoneNumber]);\n\n return (\n \n \n {phoneNumber && (\n \n +\n {generalStore.countryPhoneCodes && (\n {\n const countryPhoneCode = generalStore.getCountryPhoneCode(\n e.target.value\n );\n const newPhoneNumber = {\n ...phoneNumber,\n code: countryPhoneCode ? countryPhoneCode.calCode : \"\",\n };\n setPhoneNumber(newPhoneNumber);\n onValueChange(newPhoneNumber);\n }}\n >\n {generalStore.countryPhoneCodes.map((countryPhoneCode, index) => (\n \n ))}\n \n )}\n {\n if (validateNumber(e.target.value)) {\n const newPhoneNumber = {\n ...phoneNumber,\n number: e.target.value,\n };\n setPhoneNumber(newPhoneNumber);\n onValueChange(newPhoneNumber);\n }\n }}\n />\n \n )}\n {error && errorText && (\n \n {errorText}\n \n )}\n \n );\n};\n\nexport default inject(\"generalStore\")(\n observer(PhoneInput as FunctionComponent>)\n);\n","export const validateEmail = (email: string) =>\n /^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$/.test(email);\n\nexport const validateNumber = (number: string) => /^([0-9]*)$/.test(number);\n\nexport const validateDecimalNumber = (decimalNumber: string) =>\n /^([0-9]+\\.?[0-9]*|[0-9]+)$/.test(decimalNumber);\n","import { ExtraStylingType } from \"model/Styles\";\nimport React, { FunctionComponent, useState, useEffect } from \"react\";\nimport styled, { css } from \"styled-components\";\nimport {\n Text,\n inputStyling,\n Span,\n $statusFail,\n $blue4,\n $textLight,\n StyledReactTooltip,\n $grey,\n} from \"styles/common\";\nimport IconComponent from \"components/common/Icon\";\nimport { Icon } from \"model/Icon\";\nimport { validateDecimalNumber } from \"utils/Validation\";\n\ninterface Props {\n label?: string;\n defaultValue: string;\n prefix?: any;\n inputActions?: any;\n mandatory?: boolean;\n multiline?: boolean;\n disabled?: boolean;\n viewMode?: boolean;\n numeric?: boolean;\n dataList?: string[];\n dataListName?: string;\n error?: boolean;\n errorText?: string;\n infoTooltip?: string;\n infoTooltipContent?: any;\n className?: string;\n onValueChange(value: string): void;\n onBlur?: (value: string) => void;\n extraStyling?: ExtraStylingType;\n extraLabelStyling?: ExtraStylingType;\n}\n\nconst Container = styled.div<{ extraStyling: ExtraStylingType }>`\n ${(props) => props.extraStyling}\n`;\n\nconst LabelContainer = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 0.5rem;\n`;\n\nconst Label = styled(Text)<{ extraLabelStyling: ExtraStylingType }>`\n margin-bottom: 0.3rem;\n\n ${(props) => props.extraLabelStyling}\n`;\n\nconst RelativeContainer = styled.div`\n position: relative;\n`;\n\nconst RowContainer = styled.div`\n display: flex;\n flex-direction: row;\n`;\n\nconst TextArea = styled.textarea`\n ${inputStyling}\n font-family: \"Source Sans Pro\", sans-serif;\n height: 5rem;\n width: 100%;\n`;\n\nconst Input = styled.input<{ disabled: boolean; hasPrefix: boolean }>`\n ${inputStyling}\n width: 100%;\n\n ${(props) =>\n props.disabled &&\n css`\n background-color: #eee;\n opacity: 0.8;\n `}\n\n ${(props) =>\n props.hasPrefix &&\n css`\n border-radius: 0 0.25rem 0.25rem 0;\n `}\n`;\n\nconst Prefix = styled.div`\n display: block;\n padding: 0.375rem 0.875rem;\n line-height: 1.5;\n background-color: ${$grey};\n background-clip: padding-box;\n border-radius: 0.25rem 0 0 0.25rem;\n box-shadow: none;\n user-select: none;\n`;\n\nconst InputActions = styled.div`\n margin-left: 1rem;\n`;\n\nconst Error = styled(Text)`\n margin: 0.15rem 0 0 0rem;\n font-size: 0.8rem;\n`;\n\nconst TextInput: FunctionComponent = ({\n label,\n defaultValue,\n prefix,\n inputActions,\n mandatory = false,\n multiline = false,\n disabled = false,\n viewMode = false,\n numeric = false,\n dataList,\n dataListName,\n error = false,\n errorText = undefined,\n infoTooltip,\n infoTooltipContent,\n className = \"\",\n onValueChange,\n onBlur = () => {},\n extraStyling = css``,\n extraLabelStyling = css``,\n}) => {\n const [value, setValue] = useState(defaultValue);\n\n const handleChange = (e: any) => {\n if (\n (numeric &&\n !isNaN(parseInt(e.target.value)) &&\n validateDecimalNumber(e.target.value)) ||\n e.target.value === \"\" ||\n !numeric\n ) {\n setValue(e.target.value);\n onValueChange(e.target.value);\n }\n };\n\n const handleBlur = (e: any) => {\n onBlur(e.target.value);\n };\n\n useEffect(() => {\n viewMode && setValue(defaultValue);\n }, [defaultValue, viewMode]);\n\n return (\n \n \n {label && (\n \n )}\n {infoTooltip && (\n <>\n \n \n \n \n {infoTooltipContent && infoTooltipContent}\n \n \n )}\n \n\n \n {!label && mandatory && (\n \n *\n \n )}\n\n {multiline ? (\n \n ) : (\n \n {prefix && {prefix}}\n \n {dataList && dataListName && (\n \n {dataList.map((item, index) => (\n \n ))}\n \n )}\n {inputActions && {inputActions}}\n \n )}\n \n\n {error && errorText && (\n \n {errorText}\n \n )}\n \n );\n};\n\nexport default TextInput as FunctionComponent;\n","import { CrudModal } from \"components/common/CrudModal\";\nimport PhoneInput from \"components/common/PhoneInput\";\nimport TextInput from \"components/common/TextInput\";\nimport { SettingsContact } from \"model/Contact\";\nimport React, { FunctionComponent, useState } from \"react\";\nimport styled, { css } from \"styled-components\";\nimport { validateEmail } from \"utils/Validation\";\n\ninterface Props {\n editContact?: SettingsContact;\n setShow(show: boolean): void;\n action(contact: SettingsContact): void;\n}\n\nconst AddUserContentContainer = styled.div``;\n\nexport const numberErrorText =\n \"Please fill in either a phone or a mobile number\";\n\nexport const emailErrorText = \"Please fill in a valid e-mail address\";\n\nexport const SettingContactModal: FunctionComponent = ({\n editContact,\n setShow,\n action,\n}) => {\n const [contact, setContact] = useState(\n editContact\n ? editContact\n : {\n id: 0,\n contact: \"\",\n role: \"\",\n phone: undefined,\n mobile: undefined,\n email: \"\",\n deletable: true,\n }\n );\n\n const [numberError, setNumberError] = useState(false);\n const [emailError, setEmailError] = useState(false);\n\n return (\n \n \n setContact({ ...contact, contact: value })\n }\n extraStyling={css`\n margin-bottom: 1rem;\n `}\n />\n setContact({ ...contact, role: value })}\n extraStyling={css`\n margin-bottom: 1rem;\n `}\n />\n {\n setNumberError(false);\n\n setContact({\n ...contact,\n phone: value,\n });\n }}\n extraStyling={css`\n margin-bottom: 1rem;\n `}\n />\n {\n setNumberError(false);\n\n setContact({\n ...contact,\n mobile: value,\n });\n }}\n extraStyling={css`\n margin-bottom: 1rem;\n `}\n />\n {\n setEmailError(false);\n setContact({ ...contact, email: value });\n }}\n extraStyling={css`\n margin-bottom: 1rem;\n `}\n />\n \n }\n cancel={() => {\n setShow(false);\n }}\n disableAction={\n contact.contact === \"\" || contact.role === \"\" || contact.email === \"\"\n }\n action={() => {\n let error = false;\n\n if (\n (!contact.phone || contact.phone.number === \"\") &&\n (!contact.mobile || contact.mobile.number === \"\")\n ) {\n error = true;\n setNumberError(true);\n }\n\n if (!validateEmail(contact.email)) {\n error = true;\n setEmailError(true);\n }\n\n if (!error) {\n action(contact);\n setShow(false);\n }\n }}\n extraStyling={css`\n min-width: 25rem;\n `}\n />\n );\n};\n","import { List } from \"components/common/List\";\nimport { DeleteButton, EditButton } from \"components/common/List/common\";\nimport { Modal, ModalColorType, ModalType } from \"components/common/Modal\";\nimport { SettingContactModal } from \"components/Settings/SettingContactModal\";\nimport { NewSettingsContact, SettingsContact } from \"model/Contact\";\nimport React, { useState } from \"react\";\nimport { css } from \"styled-components\";\nimport { Button } from \"styles/common\";\n\ninterface Props {\n contacts: SettingsContact[] | undefined;\n viewAccess: boolean;\n editAccess: boolean;\n deleteAccess: boolean;\n deleteContact(contactId: number): Promise;\n addContact(contact: NewSettingsContact): Promise;\n editContact(contact: SettingsContact): Promise;\n retryDataLoading(): void;\n}\n\nconst addButtonStyling = css`\n position: absolute;\n right: 1.5rem;\n top: 1rem;\n`;\n\nconst baseHeaders = [\"Contact\", \"Role\", \"Phone\", \"Mobile\", \"E-mail\"];\n\nexport const ContactsList = ({\n contacts,\n viewAccess,\n editAccess,\n deleteAccess,\n deleteContact,\n addContact,\n editContact,\n retryDataLoading,\n}: Props) => {\n const [showDeleteContactModal, setShowDeleteContactModal] = useState(false);\n const [showDeleteContactFailModal, setShowDeleteContactFailModal] =\n useState(false);\n\n const [showEditContactModal, setShowEditContactModal] = useState(false);\n const [showEditContactFailModal, setShowEditContactFailModal] =\n useState(false);\n\n const [showAddContactModal, setShowAddContactModal] = useState(false);\n const [showAddContactFailModal, setShowAddContactFailModal] = useState(false);\n\n const [actionContact, setActionContact] = useState<\n SettingsContact | undefined\n >(undefined);\n\n const handleDeleteContactClick = (contact: SettingsContact) => {\n if (contact.deletable) {\n setActionContact(contact);\n setShowDeleteContactModal(true);\n }\n };\n\n const handleDeleteContact = async (contactId: number) => {\n if (deleteAccess) {\n const deleteSuccess = await deleteContact(contactId);\n if (deleteSuccess) {\n setActionContact(undefined);\n } else {\n setShowDeleteContactFailModal(true);\n }\n }\n };\n\n const handleContactAddClick = () => {\n setShowAddContactModal(true);\n };\n\n const handleContactAdd = async (contact: NewSettingsContact) => {\n if (editAccess) {\n const addSuccess = await addContact(contact);\n !addSuccess && setShowAddContactFailModal(true);\n }\n };\n\n const handleEditContactClick = (contact: SettingsContact) => {\n setActionContact(contact);\n setShowEditContactModal(true);\n };\n\n const handleContactEdit = async (contact: SettingsContact) => {\n if (editAccess) {\n const addSuccess = await editContact(contact);\n !addSuccess && setShowEditContactFailModal(true);\n }\n };\n\n const renderDeleteContactModal = (\n {\n setShowDeleteContactModal(false);\n actionContact && handleDeleteContact(actionContact.id);\n }}\n cancel={() => {\n setActionContact(undefined);\n setShowDeleteContactModal(false);\n }}\n />\n );\n\n const renderFailModal = (\n {\n setActionContact(undefined);\n showDeleteContactFailModal && setShowDeleteContactFailModal(false);\n showAddContactFailModal && setShowAddContactFailModal(false);\n showEditContactFailModal && setShowEditContactFailModal(false);\n }}\n />\n );\n\n const getContactCells = () =>\n contacts\n ? contacts.map((contact) => {\n const contactDataCells = [\n contact.contact,\n contact.role,\n contact.phone\n ? `+${contact.phone.code}${contact.phone.number}`\n : \"\",\n contact.mobile\n ? `+${contact.mobile.code}${contact.mobile.number}`\n : \"\",\n contact.email,\n ];\n\n const editButton = (\n {\n handleEditContactClick(contact);\n }}\n />\n );\n\n const deleteButton = (\n {\n handleDeleteContactClick(contact);\n }}\n />\n );\n\n return {\n cells:\n editAccess && deleteAccess\n ? [...contactDataCells, editButton, deleteButton]\n : editAccess\n ? [...contactDataCells, editButton]\n : deleteAccess\n ? [...contactDataCells, deleteButton]\n : contactDataCells,\n };\n })\n : undefined;\n\n return (\n <>\n \n\n {editAccess && contacts && (\n \n Add contact\n \n )}\n\n {showDeleteContactModal && renderDeleteContactModal}\n {showAddContactModal && (\n \n )}\n {showEditContactModal && (\n \n )}\n\n {(showDeleteContactFailModal ||\n showAddContactFailModal ||\n showEditContactFailModal) &&\n renderFailModal}\n \n );\n};\n","import Card from \"components/common/Card\";\nimport IconComponent from \"components/common/Icon\";\nimport { inject, observer } from \"mobx-react\";\nimport { Icon } from \"model/Icon\";\nimport React, { FunctionComponent, useEffect } from \"react\";\nimport SettingStore from \"stores/SettingStore\";\nimport { css } from \"styled-components\";\nimport {\n $blue4,\n $textLight,\n StyledReactTooltip,\n TooltipText,\n Text,\n Link,\n} from \"styles/common\";\nimport { Header, HeaderTitle, CardHeader, HeaderExplanation } from \"./common\";\nimport { ContactsList } from \"components/Settings/ContactsList\";\nimport { Prompt } from \"react-router\";\nimport { Route } from \"model/Navigation\";\nimport NavigationStore from \"stores/NavigationStore\";\nimport AuthenticationStore from \"stores/AuthenticationStore\";\nimport { PermissionArea, PermissionType } from \"model/Claim\";\nimport { NoAccessModal } from \"components/common/Modal\";\n\ninterface Props {\n settingStore: SettingStore;\n navigationStore: NavigationStore;\n authenticationStore: AuthenticationStore;\n}\n\nconst ContactDetails: FunctionComponent = ({\n settingStore,\n navigationStore,\n authenticationStore,\n}) => {\n const accessViewContact = authenticationStore.userHasPermission(\n PermissionArea.Contact,\n PermissionType.View\n );\n\n const accessEditContact = authenticationStore.userHasPermission(\n PermissionArea.Contact,\n PermissionType.Edit\n );\n\n const accessDeleteContact = authenticationStore.userHasPermission(\n PermissionArea.Contact,\n PermissionType.Delete\n );\n\n useEffect(() => {\n accessViewContact && !settingStore.contacts && settingStore.getContacts();\n }, [accessViewContact, settingStore]);\n\n const handleDataReload = () => {\n accessViewContact && settingStore.getContacts();\n };\n\n return (\n <>\n {\n if (!location.pathname.startsWith(Route.ContactDetails))\n // Reset data when leaving page\n settingStore.resetContacts();\n\n return true;\n }}\n />\n\n
\n \n Contact details\n \n \n {!accessViewContact || accessEditContact || accessDeleteContact\n ? \"Manage the\"\n : \"The\"}{\" \"}\n contacts for my organization\n \n
\n\n \n

Contacts

\n
\n \n
\n \n }\n >\n {!accessViewContact && }\n\n \n\n {authenticationStore.userPermissionsInfo?.options\n .allowEscalationManagement && (\n \n Switch to{\" \"}\n {\n navigationStore.navigate(Route.ContactSchedule);\n }}\n >\n Define contact schedule\n {\" \"}\n to{\" \"}\n {!accessViewContact || accessEditContact || accessDeleteContact\n ? \"define\"\n : \"see\"}{\" \"}\n who we engage in case of incidents or changes.\n \n )}\n \n\n \n \n \n List of relevant contacts and departments for my organisation.\n \n \n Includes all contacts which are relevant for the service and Cegeka\n might have to engage.\n \n \n \n \n );\n};\n\nexport default inject(\n \"settingStore\",\n \"navigationStore\",\n \"authenticationStore\"\n)(\n observer(\n ContactDetails as FunctionComponent<\n Omit\n >\n )\n);\n","import IconComponent from \"components/common/Icon\";\nimport { Icon } from \"model/Icon\";\nimport React from \"react\";\nimport { css } from \"styled-components\";\nimport { $blue4, $grey } from \"styles/common\";\n\ninterface Props {\n checked: boolean;\n disabled?: boolean;\n clickable?: boolean;\n className?: string;\n onClick?: () => void;\n}\n\nexport const TableCheckbox = ({\n checked,\n disabled = false,\n clickable,\n className = \"\",\n onClick,\n}: Props) => {\n return (\n {\n if (!disabled && clickable && !!onClick) {\n e.stopPropagation();\n onClick();\n }\n }}\n extraStyling={css`\n width: max-content;\n cursor: default;\n\n ${disabled\n ? css`\n opacity: 0.8;\n `\n : clickable\n ? css`\n cursor: pointer;\n `\n : css``}\n `}\n />\n );\n};\n","import { List } from \"components/common/List\";\nimport {\n SettingsIncidentsSupportWindow,\n SimpleSettingsContact,\n} from \"model/Contact\";\nimport React from \"react\";\nimport {\n Text,\n Select,\n $blue4,\n StyledReactTooltip,\n $textLight,\n TooltipText,\n} from \"styles/common\";\nimport { TableCheckbox } from \"components/common/TableCheckbox\";\nimport {\n ignoreText,\n ignoreValue,\n InfoIconWrapper,\n} from \"screens/settings/ContactSchedule\";\nimport IconComponent from \"components/common/Icon\";\nimport { Icon } from \"model/Icon\";\nimport {\n CenteredCellContainer,\n ListHeaderText,\n} from \"components/common/List/common\";\n\ninterface Props {\n contacts: SimpleSettingsContact[] | undefined;\n data: SettingsIncidentsSupportWindow[] | undefined;\n viewAccess: boolean;\n editAccess: boolean;\n editData(data: SettingsIncidentsSupportWindow[]): void;\n retryDataLoading(): void;\n}\n\nconst headers = [\n \"Support window\",\n \"Technical contact\",\n \n Chase\n ,\n \"Functional contact\",\n \n Chase\n ,\n];\n\nexport const SettingSupportWindowsList = ({\n contacts,\n data,\n viewAccess,\n editAccess,\n editData,\n retryDataLoading,\n}: Props) => {\n return (\n {\n return {\n cells: [\n supportWindow.technicalContact.escalation ? (\n \n \n {supportWindow.name}\n \n \n \n \n\n \n \n \n This person gets contacted in case of escalations.\n \n \n \n \n ) : (\n \n {supportWindow.name}\n \n ),\n editAccess &&\n (!supportWindow.technicalContact.mandatory ||\n contacts.length > 1) ? (\n <>\n {\n const selectedContact:\n | SimpleSettingsContact\n | undefined = contacts.find(\n (contact) =>\n contact.id.toString() === e.target.value\n );\n\n editData(\n data.map((window) => {\n return window.id === supportWindow.id\n ? {\n ...supportWindow,\n technicalContact: {\n ...supportWindow.technicalContact,\n contact: selectedContact,\n chase:\n selectedContact === undefined\n ? false\n : supportWindow.technicalContact\n .chase,\n },\n }\n : window;\n })\n );\n }}\n >\n {!supportWindow.technicalContact.mandatory && (\n \n )}\n {contacts.map((item, index) => (\n \n ))}\n \n \n ) : (\n \n {supportWindow.technicalContact.contact\n ? `${supportWindow.technicalContact.contact.contact} (\n ${supportWindow.technicalContact.contact.role})`\n : `${ignoreText}`}\n \n ),\n supportWindow.technicalContact.chase === undefined ? (\n \"\"\n ) : (\n \n {\n editData([\n ...data.map((window) => {\n return window.id === supportWindow.id\n ? {\n ...supportWindow,\n technicalContact: {\n ...supportWindow.technicalContact,\n chase:\n !supportWindow.technicalContact.chase,\n },\n }\n : window;\n }),\n ]);\n }}\n />\n \n ),\n supportWindow.functionalContact ? (\n editAccess &&\n (!supportWindow.functionalContact.mandatory ||\n contacts.length > 1) ? (\n <>\n {\n const selectedContact:\n | SimpleSettingsContact\n | undefined = contacts.find(\n (contact) =>\n contact.id.toString() === e.target.value\n );\n\n editData(\n data.map((window) => {\n return window.id === supportWindow.id &&\n supportWindow.functionalContact\n ? {\n ...supportWindow,\n functionalContact: {\n ...supportWindow.functionalContact,\n contact: selectedContact,\n chase:\n selectedContact === undefined\n ? false\n : supportWindow.functionalContact\n .chase,\n },\n }\n : window;\n })\n );\n }}\n >\n {!supportWindow.functionalContact.mandatory && (\n \n )}\n {contacts.map((item, index) => (\n \n ))}\n \n \n ) : (\n \n {supportWindow.functionalContact.contact\n ? `${supportWindow.functionalContact.contact.contact} (\n ${supportWindow.functionalContact.contact.role})`\n : `${ignoreText}`}\n \n )\n ) : (\n \"\"\n ),\n !supportWindow.functionalContact ||\n supportWindow.functionalContact.chase === undefined ? (\n \"\"\n ) : (\n \n {\n editData(\n data.map((window) => {\n return window.id === supportWindow.id &&\n supportWindow.functionalContact\n ? {\n ...supportWindow,\n functionalContact: {\n ...supportWindow.functionalContact,\n chase:\n !supportWindow.functionalContact.chase,\n },\n }\n : window;\n })\n );\n }}\n />\n \n ),\n ],\n };\n })\n : undefined\n }\n noBackground\n fullWidth\n smallEmpty\n customColumnWidths={[2, 3, 1, 3, 1]}\n access={viewAccess}\n noDataText=\"There are no support windows defined yet.\"\n retryDataLoading={retryDataLoading}\n />\n );\n};\n","import { ExtraStylingType } from \"model/Styles\";\nimport React, { FunctionComponent } from \"react\";\nimport styled, { css } from \"styled-components\";\nimport { $blue4, textStyling } from \"styles/common\";\n\ninterface Props {\n label: string;\n value: boolean;\n name: string;\n disabled?: boolean;\n onValueChange(value: boolean): void;\n extraStyling?: ExtraStylingType;\n}\n\nconst Container = styled.div<{ extraStyling: ExtraStylingType }>`\n position: relative;\n z-index: 1;\n display: block;\n min-height: 1.5rem;\n padding-left: 1.75rem;\n -webkit-print-color-adjust: exact;\n box-sizing: border-box;\n margin-bottom: 0.25rem;\n width: max-content;\n`;\n\nconst Label = styled.label<{\n checked: boolean;\n disabled: boolean;\n small?: boolean;\n}>`\n display: block;\n line-height: 1.4375rem;\n position: relative;\n margin-bottom: 0;\n vertical-align: top;\n ${textStyling}\n\n &:before {\n border-radius: 0.25rem;\n transition: background-color 0.15s ease-in-out,\n border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n position: absolute;\n top: 0.125rem;\n left: -1.75rem;\n display: block;\n width: 1.25rem;\n height: 1.25rem;\n pointer-events: none;\n content: \"\";\n background-color: #fff;\n border: 1px solid #adb5bd;\n box-shadow: none;\n box-sizing: border-box;\n }\n\n &:after {\n position: absolute;\n top: 0.125rem;\n left: -1.75rem;\n display: block;\n width: 1.25rem;\n height: 1.25rem;\n content: \"\";\n background: no-repeat 50%/50% 50%;\n box-sizing: border-box;\n }\n\n ${(props) =>\n props.checked &&\n css`\n &:before {\n color: ${$blue4};\n border-color: ${$blue4};\n background-color: ${$blue4};\n }\n\n &:after {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M8.369.08A.196.196 0 018.532 0c.068 0 .122.027.163.08l.244.221A.29.29 0 019 .482c0 .067-.02.121-.061.161L2.83 6.67a.246.246 0 01-.173.08.246.246 0 01-.173-.08L.061 4.279A.215.215 0 010 4.118a.29.29 0 01.061-.181l.244-.22a.194.194 0 01.163-.081c.068 0 .122.027.163.081l2.016 1.988L8.369.08z'/%3E%3C/svg%3E\");\n }\n `}\n\n ${(props) =>\n props.disabled\n ? css`\n opacity: 0.5;\n `\n : css`\n cursor: pointer;\n `}\n`;\n\nconst Input = styled.input`\n box-sizing: border-box;\n padding: 0;\n position: absolute;\n left: 0;\n z-index: -1;\n width: 1.25rem;\n height: 1.375rem;\n opacity: 0;\n overflow: visible;\n`;\n\nconst Checkbox: FunctionComponent = ({\n label,\n value,\n name,\n disabled = false,\n onValueChange,\n extraStyling = css``,\n}) => {\n const handleChange = () => {\n !disabled && onValueChange(!value);\n };\n\n return (\n \n \n \n \n );\n};\n\nexport default Checkbox as FunctionComponent;\n","import Checkbox from \"components/common/Checkbox\";\nimport { CrudModal } from \"components/common/CrudModal\";\nimport TextInput from \"components/common/TextInput\";\nimport {\n SettingsIncidentsApplicationOrGroupContact,\n SimpleSettingsContact,\n} from \"model/Contact\";\nimport React, { FunctionComponent, useState } from \"react\";\nimport { ignoreText, ignoreValue } from \"screens/settings/ContactSchedule\";\nimport styled, { css } from \"styled-components\";\nimport { $statusFail, Select, Text } from \"styles/common\";\n\ninterface Props {\n contacts: SimpleSettingsContact[];\n contactAreas: string[];\n originalContact: SettingsIncidentsApplicationOrGroupContact | undefined;\n supportWindows: string[];\n close(): void;\n add(contact: SettingsIncidentsApplicationOrGroupContact): void;\n edit(contact: SettingsIncidentsApplicationOrGroupContact): void;\n}\n\nconst AddContactContentContainer = styled.div``;\n\nconst InputContainer = styled.div`\n margin-bottom: 1rem;\n`;\n\nconst Error = styled(Text)`\n margin: 0 0 0.4rem 0rem;\n font-size: 0.8rem;\n`;\n\nexport const emptyNameErrorText = \"Please fill in a name.\";\nexport const contactsErrorText =\n \"Please fill in at least either a technical or a functional contact\";\n\nexport const SettingApplicationGroupContactModal: FunctionComponent = ({\n contacts,\n contactAreas,\n supportWindows,\n originalContact,\n close,\n add,\n edit,\n}) => {\n const [contact, setContact] =\n useState({\n id: originalContact ? originalContact.id : 0,\n area: originalContact ? originalContact.area : contactAreas[0],\n name: originalContact ? originalContact.name : \"\",\n supportWindow: originalContact\n ? originalContact.supportWindow\n : supportWindows[0],\n technicalContact: originalContact\n ? originalContact.technicalContact\n : {\n contact: undefined,\n chase: false,\n },\n functionalContact: originalContact\n ? originalContact.functionalContact\n : {\n contact: undefined,\n chase: false,\n },\n });\n\n const [nameError, setNameError] = useState(false);\n const [contactsError, setContactsError] = useState(false);\n\n const renderContactsError = (\n \n {contactsErrorText}\n \n );\n\n return (\n \n \n \n Area\n \n {contactAreas.length > 1 ? (\n {\n setContact({ ...contact, area: e.target.value });\n }}\n >\n {contactAreas.map((a, index) => (\n \n ))}\n \n ) : (\n {contactAreas[0]}\n )}\n \n\n \n {\n setNameError(false);\n setContact({ ...contact, name: value });\n }}\n />\n \n\n \n \n Support window\n \n {supportWindows.length > 1 ? (\n {\n setContact({ ...contact, supportWindow: e.target.value });\n }}\n >\n {supportWindows.map((sw, index) => (\n \n ))}\n \n ) : (\n {supportWindows[0]}\n )}\n \n\n \n \n Technical contact\n \n {\n setContactsError(false);\n const selectedContact = contacts.find(\n (contact: SimpleSettingsContact) =>\n contact.id === parseInt(e.target.value)\n );\n\n setContact({\n ...contact,\n technicalContact: {\n ...contact.technicalContact,\n contact: selectedContact,\n chase:\n selectedContact === undefined\n ? false\n : contact.technicalContact.chase,\n },\n });\n }}\n extraStyling={css`\n margin-bottom: 0.5rem;\n `}\n >\n \n {contacts.map((c: SimpleSettingsContact, index: number) => (\n \n ))}\n \n {contactsError && renderContactsError}\n \n setContact({\n ...contact,\n technicalContact: {\n ...contact.technicalContact,\n chase: !contact.technicalContact.chase,\n },\n })\n }\n />\n \n\n \n \n Functional contact\n \n {\n setContactsError(false);\n const selectedContact = contacts.find(\n (c: SimpleSettingsContact) =>\n c.id === parseInt(e.target.value)\n );\n\n setContact({\n ...contact,\n functionalContact: {\n ...contact.functionalContact,\n contact: selectedContact,\n chase:\n selectedContact === undefined\n ? false\n : contact.functionalContact.chase,\n },\n });\n }}\n extraStyling={css`\n margin-bottom: 0.5rem;\n `}\n >\n \n {contacts.map((c: SimpleSettingsContact, index: number) => (\n \n ))}\n \n {contactsError && renderContactsError}\n \n setContact({\n ...contact,\n functionalContact: {\n ...contact.functionalContact,\n chase: !contact.functionalContact.chase,\n },\n })\n }\n />\n \n \n }\n cancel={() => {\n close();\n }}\n action={() => {\n const emptyName = contact.name === \"\";\n const notOneOfTwoContacts =\n contact.technicalContact.contact === undefined &&\n contact.functionalContact.contact === undefined;\n\n if (emptyName) {\n setNameError(true);\n }\n if (notOneOfTwoContacts) {\n setContactsError(true);\n }\n\n if (!emptyName && !notOneOfTwoContacts) {\n originalContact ? edit(contact) : add(contact);\n close();\n }\n }}\n extraStyling={css`\n min-width: 25rem;\n `}\n />\n );\n};\n","import { List } from \"components/common/List\";\nimport {\n SettingsIncidentsApplicationOrGroupContact,\n SimpleSettingsContact,\n} from \"model/Contact\";\nimport React, { useState } from \"react\";\nimport {\n Text,\n IconButton,\n $textDark,\n $textLight,\n Button,\n $blue4,\n StyledReactTooltip,\n TooltipText,\n InfoIconWrapper,\n} from \"styles/common\";\nimport { TableCheckbox } from \"components/common/TableCheckbox\";\nimport { moveDownInArray, moveUpInArray } from \"utils/Array\";\nimport IconComponent from \"components/common/Icon\";\nimport { Icon } from \"model/Icon\";\nimport { css } from \"styled-components\";\nimport { SettingApplicationGroupContactModal } from \"components/Settings/SettingApplicationGroupContactModal\";\nimport {\n CenteredCellContainer,\n DeleteButton,\n EditButton,\n ListHeaderText,\n} from \"components/common/List/common\";\n\ninterface Props {\n contactAreas: string[] | undefined;\n supportWindows: string[] | undefined;\n contacts: SimpleSettingsContact[] | undefined;\n applicationOrGroupContacts:\n | SettingsIncidentsApplicationOrGroupContact[]\n | undefined;\n viewAccess: boolean;\n editAccess: boolean;\n deleteAccess: boolean;\n editApplicationOrGroupContacts(\n data: SettingsIncidentsApplicationOrGroupContact[]\n ): void;\n retryDataLoading(): void;\n}\n\nconst baseHeaders = [\n \"#\",\n \"Area\",\n \"Name\",\n \"Support window\",\n \"Technical\",\n \n Chase\n ,\n \"Functional\",\n \n Chase\n ,\n];\n\nexport const SettingApplicationGroupContactsList = ({\n contactAreas,\n supportWindows,\n contacts,\n applicationOrGroupContacts,\n viewAccess,\n editAccess,\n deleteAccess,\n editApplicationOrGroupContacts,\n retryDataLoading,\n}: Props) => {\n const [\n showEditOrAddApplicationGroupContact,\n setShowEditOrAddApplicationGroupContact,\n ] = useState(false);\n const [selectedApplicationGroupContact, setSelectedApplicationGroupContact] =\n useState(undefined);\n\n const getApplicationOrGroupContactCells = () =>\n applicationOrGroupContacts\n ? applicationOrGroupContacts.map((applicationOrGroupContact, index) => {\n const baseCells = [\n index + 1,\n applicationOrGroupContact.area,\n applicationOrGroupContact.name,\n applicationOrGroupContact.supportWindow,\n applicationOrGroupContact.technicalContact.contact\n ? applicationOrGroupContact.technicalContact.contact.contact\n : \"(ignore)\",\n \n \n ,\n applicationOrGroupContact.functionalContact.contact\n ? applicationOrGroupContact.functionalContact.contact.contact\n : \"(ignore)\",\n \n \n ,\n ];\n\n const editButtons = [\n {\n e.stopPropagation();\n editApplicationOrGroupContacts(\n moveUpInArray(applicationOrGroupContact, [\n ...applicationOrGroupContacts,\n ])\n );\n }}\n >\n \n ,\n {\n e.stopPropagation();\n editApplicationOrGroupContacts(\n moveDownInArray(applicationOrGroupContact, [\n ...applicationOrGroupContacts,\n ])\n );\n }}\n >\n \n ,\n {\n setSelectedApplicationGroupContact(applicationOrGroupContact);\n setShowEditOrAddApplicationGroupContact(true);\n }}\n />,\n ];\n\n const deleteButton = (\n {\n editApplicationOrGroupContacts([\n ...applicationOrGroupContacts.filter(\n (c) => c !== applicationOrGroupContact\n ),\n ]);\n }}\n />\n );\n\n return {\n cells:\n editAccess && deleteAccess\n ? [...baseCells, ...editButtons, deleteButton]\n : editAccess\n ? [...baseCells, ...editButtons]\n : deleteAccess\n ? [...baseCells, deleteButton]\n : baseCells,\n };\n })\n : undefined;\n\n const baseColumns = [2, 5, 7, 7, 7, 6, 7, 6];\n const editColumns = [1, 2, 3];\n const deleteColumn = 4;\n\n return (\n <>\n {contactAreas && supportWindows && contacts && (\n <>\n \n {editAccess && (\n setShowEditOrAddApplicationGroupContact(true)}\n >\n Add contact\n \n )}\n
\n \n
\n \n \n \n \n {editAccess || deleteAccess ? \"Define contacts \" : \"Contacts\"}{\" \"}\n for a single Application or Workflow group.\n \n Contacts are evaluated in the displayed order.\n \n \n \n )}\n \n\n {contactAreas &&\n supportWindows &&\n contacts &&\n showEditOrAddApplicationGroupContact && (\n {\n setSelectedApplicationGroupContact(undefined);\n setShowEditOrAddApplicationGroupContact(false);\n }}\n add={(newContact: SettingsIncidentsApplicationOrGroupContact) =>\n editApplicationOrGroupContacts([\n ...(applicationOrGroupContacts\n ? applicationOrGroupContacts\n : []),\n newContact,\n ])\n }\n edit={(editedContact: SettingsIncidentsApplicationOrGroupContact) =>\n applicationOrGroupContacts &&\n editApplicationOrGroupContacts(\n applicationOrGroupContacts.map((c) =>\n c.id === editedContact.id ? editedContact : c\n )\n )\n }\n />\n )}\n \n );\n};\n","import { CrudModal } from \"components/common/CrudModal\";\nimport TextInput from \"components/common/TextInput\";\nimport {\n SettingsChangeRequestContact,\n SimpleSettingsContact,\n} from \"model/Contact\";\nimport React, { FunctionComponent, useState } from \"react\";\nimport styled, { css } from \"styled-components\";\nimport { Select, Text } from \"styles/common\";\n\ninterface Props {\n contacts: SimpleSettingsContact[];\n roles: string[];\n originalContact: SettingsChangeRequestContact | undefined;\n close(): void;\n add(contact: SettingsChangeRequestContact): void;\n edit(contact: SettingsChangeRequestContact): void;\n}\n\nconst AddContactContentContainer = styled.div``;\n\nconst InputContainer = styled.div`\n margin-bottom: 1rem;\n`;\n\nexport const SettingChangeRequestContactModal: FunctionComponent = ({\n contacts,\n roles,\n originalContact,\n close,\n add,\n edit,\n}) => {\n const [contact, setContact] = useState({\n id: originalContact ? originalContact.id : 0,\n role: originalContact ? originalContact.role : roles[0],\n contact: originalContact ? originalContact.contact : contacts[0],\n comments: originalContact ? originalContact.comments : undefined,\n });\n\n return (\n \n \n \n Role\n \n {roles.length > 1 ? (\n {\n setContact({ ...contact, role: e.target.value });\n }}\n >\n {roles.map((r, index) => (\n \n ))}\n \n ) : (\n {roles[0]}\n )}\n \n \n \n Contact\n \n {contacts.length > 1 ? (\n {\n const selectedContact = contacts.find(\n (c) => c.id.toString() === e.target.value\n );\n\n selectedContact &&\n setContact({ ...contact, contact: selectedContact });\n }}\n >\n {contacts.map((c, index) => (\n \n ))}\n \n ) : (\n {roles[0]}\n )}\n \n \n \n setContact({ ...contact, comments: value })\n }\n multiline\n />\n \n \n }\n cancel={() => {\n close();\n }}\n action={() => {\n originalContact ? edit(contact) : add(contact);\n close();\n }}\n extraStyling={css`\n min-width: 25rem;\n `}\n />\n );\n};\n","import React, { FunctionComponent, useState } from \"react\";\nimport { List } from \"components/common/List\";\nimport { css } from \"styled-components\";\nimport { Button } from \"styles/common\";\nimport {\n SettingsChangeRequestContact,\n SimpleSettingsContact,\n} from \"model/Contact\";\nimport { SettingChangeRequestContactModal } from \"components/Settings/SettingChangeRequestContactModal\";\nimport { DeleteButton, EditButton } from \"components/common/List/common\";\n\ninterface Props {\n contacts: SimpleSettingsContact[] | undefined;\n roles: string[] | undefined;\n changeRequestContacts: SettingsChangeRequestContact[] | undefined;\n viewAccess: boolean;\n editAccess: boolean;\n deleteAccess: boolean;\n editChangeRequestContacts(\n changeRequestContacts: SettingsChangeRequestContact[]\n ): void;\n retryDataLoading(): void;\n}\n\nconst baseHeaders = [\"Role\", \"Contact\", \"Comments\"];\n\nconst SettingChangeRequestContactsList: FunctionComponent = ({\n contacts,\n roles,\n changeRequestContacts,\n viewAccess,\n editAccess,\n deleteAccess,\n editChangeRequestContacts,\n retryDataLoading,\n}) => {\n const [showEditOrAddContactModal, setShowEditOrAddContactModal] =\n useState(false);\n const [selectedChangeRequestContact, setSelectedChangeRequestContact] =\n useState(undefined);\n\n const getChangeRequestContactCells = () =>\n contacts && roles && changeRequestContacts\n ? changeRequestContacts.map(\n (changeRequestContact: SettingsChangeRequestContact) => {\n const baseCells = [\n changeRequestContact.role,\n changeRequestContact.contact.contact,\n changeRequestContact.comments\n ? changeRequestContact.comments\n : \"-\",\n ];\n\n const editButton = (\n {\n setSelectedChangeRequestContact(changeRequestContact);\n setShowEditOrAddContactModal(true);\n }}\n />\n );\n\n const deleteButton = (\n {\n editChangeRequestContacts([\n ...changeRequestContacts.filter(\n (c) => c !== changeRequestContact\n ),\n ]);\n }}\n />\n );\n\n return {\n cells:\n editAccess && deleteAccess\n ? [...baseCells, editButton, deleteButton]\n : editAccess\n ? [...baseCells, editButton]\n : deleteAccess\n ? [...baseCells, deleteButton]\n : baseCells,\n };\n }\n )\n : undefined;\n\n return (\n <>\n {editAccess && roles && contacts && (\n {\n setShowEditOrAddContactModal(true);\n }}\n >\n Add contact\n \n )}\n \n\n {contacts && roles && showEditOrAddContactModal && (\n {\n setSelectedChangeRequestContact(undefined);\n setShowEditOrAddContactModal(false);\n }}\n add={(newContact: SettingsChangeRequestContact) =>\n editChangeRequestContacts([\n ...(changeRequestContacts ? changeRequestContacts : []),\n newContact,\n ])\n }\n edit={(editedContact: SettingsChangeRequestContact) =>\n changeRequestContacts &&\n editChangeRequestContacts(\n changeRequestContacts.map((c) =>\n c.id === editedContact.id ? editedContact : c\n )\n )\n }\n />\n )}\n \n );\n};\n\nexport default SettingChangeRequestContactsList;\n","import Card, { CardSpacer } from \"components/common/Card\";\nimport { inject, observer } from \"mobx-react\";\nimport React, { FunctionComponent, useEffect, useState } from \"react\";\nimport SettingStore from \"stores/SettingStore\";\nimport styled, { css } from \"styled-components\";\nimport {\n Text,\n Link,\n Button,\n StyledReactTooltip,\n TooltipText,\n $textLight,\n $blue4,\n} from \"styles/common\";\nimport { Header, HeaderExplanation, HeaderTitle } from \"./common\";\nimport { Prompt } from \"react-router\";\nimport { Route } from \"model/Navigation\";\nimport NavigationStore from \"stores/NavigationStore\";\nimport {\n SettingsChangeRequestContact,\n SettingsChangeRequestContactSchedule,\n SettingsIncidentsContactSchedule,\n} from \"model/Contact\";\nimport IconComponent from \"components/common/Icon\";\nimport { Icon } from \"model/Icon\";\nimport { SettingSupportWindowsList } from \"components/Settings/SettingSupportWindowsList\";\nimport { SettingApplicationGroupContactsList } from \"components/Settings/SettingApplicationGroupContactsList\";\nimport SettingChangeRequestContactsList from \"components/Settings/SettingChangeRequestContactsList\";\nimport { PermissionArea, PermissionType } from \"model/Claim\";\nimport AuthenticationStore from \"stores/AuthenticationStore\";\nimport { NoAccessModal } from \"components/common/Modal\";\nimport { ExtraStylingType } from \"model/Styles\";\n\ninterface Props {\n settingStore: SettingStore;\n navigationStore: NavigationStore;\n authenticationStore: AuthenticationStore;\n}\n\nconst CardHeaderSave = styled.div`\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n width: 100%;\n padding-right: 1.5rem;\n margin-right: 1.5rem;\n border-right: 1px solid #eaeff2;\n`;\n\nconst CardHeader = styled.div`\n display: flex;\n flex-direction: column;\n`;\n\nconst IncidentsContactScheduleContainer = styled.div``;\n\nexport const InfoIconWrapper = styled.div<{ extraStyling?: ExtraStylingType }>`\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 0.75rem;\n\n ${(props) => (props.extraStyling ? props.extraStyling : css``)}\n`;\n\nconst GreyCard = styled.div`\n padding: 1rem;\n background-color: #f7fafc;\n border: 1px solid #f7fafc;\n box-shadow: 0 0 2px 1px rgb(0 0 0 / 8%);\n border-radius: 0.25rem;\n margin-bottom: 1rem;\n`;\n\nexport const ignoreValue = \"-1\";\nexport const ignoreText = \"(ignore)\";\n\nconst ContactSchedule: FunctionComponent = ({\n settingStore,\n navigationStore,\n authenticationStore,\n}) => {\n const accessViewContact = authenticationStore.userHasPermission(\n PermissionArea.Contact,\n PermissionType.View\n );\n\n const accessEditContact = authenticationStore.userHasPermission(\n PermissionArea.Contact,\n PermissionType.Edit\n );\n\n const accessDeleteContact = authenticationStore.userHasPermission(\n PermissionArea.Contact,\n PermissionType.Delete\n );\n\n const [incidentsContactSchedule, setIncidentsContactSchedule] = useState<\n SettingsIncidentsContactSchedule | undefined\n >(undefined);\n\n const [changeRequestContactSchedule, setChangeRequestContactSchedule] =\n useState(undefined);\n\n const [editedIncidentContactSchedule, setEditedIncidentContactSchedule] =\n useState(false);\n const [editedChangeRequestSchedule, setEditedChangeRequestContactSchedule] =\n useState(false);\n\n useEffect(() => {\n accessViewContact &&\n !settingStore.scheduleContacts &&\n settingStore.getScheduleContacts().then(() => {\n !settingStore.incidentsContactSchedule &&\n settingStore\n .getIncidentsContactSchedule()\n .then((incidentsSchedule) => {\n incidentsSchedule &&\n setIncidentsContactSchedule(incidentsSchedule);\n })\n .then(() => {\n !settingStore.changeRequestsContactSchedule &&\n settingStore\n .getChangeRequestsContactSchedule()\n .then((changeRequestsSchedule) => {\n changeRequestsSchedule &&\n setChangeRequestContactSchedule(changeRequestsSchedule);\n });\n });\n });\n }, [accessViewContact, settingStore]);\n\n const handleIncidentContactsDataReload = () => {\n accessViewContact &&\n settingStore.getScheduleContacts().then(() => {\n settingStore.getIncidentsContactSchedule();\n });\n };\n\n const handleChangeRequestContactsDataReload = () => {\n accessViewContact &&\n settingStore.getScheduleContacts().then(() => {\n settingStore.getChangeRequestsContactSchedule();\n });\n };\n\n const handleIncidentContactScheduleEdit = (\n schedule: SettingsIncidentsContactSchedule\n ) => {\n accessEditContact &&\n !editedIncidentContactSchedule &&\n setEditedIncidentContactSchedule(true);\n\n setIncidentsContactSchedule(schedule);\n };\n\n const handleChangeRequestContactScheduleEdit = (\n changeRequestContacts: SettingsChangeRequestContact[]\n ) => {\n accessEditContact &&\n !editedChangeRequestSchedule &&\n setEditedChangeRequestContactSchedule(true);\n\n changeRequestContactSchedule &&\n setChangeRequestContactSchedule({\n ...changeRequestContactSchedule,\n changeRequestContacts: changeRequestContacts,\n });\n };\n\n const renderSaveIncidentsButton = () => (\n {\n e.stopPropagation();\n incidentsContactSchedule &&\n settingStore\n .editIncidentsContactSchedule(incidentsContactSchedule)\n .then(() => {\n setEditedIncidentContactSchedule(false);\n });\n }}\n >\n {editedIncidentContactSchedule ? \"Save changes\" : \"No changes\"}\n \n );\n\n const renderSaveChangeRequestContactsButton = () => (\n {\n e.stopPropagation();\n changeRequestContactSchedule &&\n settingStore\n .editChangeRequestsContactSchedule(changeRequestContactSchedule)\n .then(() => {\n setEditedChangeRequestContactSchedule(false);\n });\n }}\n >\n {editedChangeRequestSchedule ? \"Save changes\" : \"No changes\"}\n \n );\n\n return (\n <>\n {\n if (!location.pathname.startsWith(Route.ContactSchedule)) {\n // Reset data when leaving page\n settingStore.resetContactSchedule();\n\n return editedIncidentContactSchedule || editedChangeRequestSchedule\n ? \"Are you sure you want to leave this page? You have unsaved changes.\"\n : true;\n }\n return true;\n }}\n />\n\n
\n \n Contact schedule\n \n \n {!accessViewContact || accessEditContact || accessDeleteContact\n ? \"Define\"\n : \"Definition of\"}{\" \"}\n who Cegeka engages in case of incidents or changes\n \n
\n\n \n \n

Incidents

\n \n How should Cegeka contact my organization in case of incidents?\n \n
\n {(accessEditContact || accessDeleteContact) &&\n incidentsContactSchedule &&\n renderSaveIncidentsButton()}\n \n }\n collapsable\n >\n \n \n\n \n \n Default contacts\n \n
\n \n
\n \n\n \n \n \n {accessEditContact || accessDeleteContact\n ? \"Define who can be contacted for technical and functional issues.\"\n : \"Contacts for technical and functional issues.\"}\n \n \n Contacts for 24x7 are mandatory and will be engaged if no\n specific contact has been provided.\n \n \n \n\n \n {!accessViewContact && }\n\n {\n incidentsContactSchedule &&\n handleIncidentContactScheduleEdit({\n ...incidentsContactSchedule,\n defaultContacts: data,\n });\n }}\n retryDataLoading={handleIncidentContactsDataReload}\n />\n \n\n \n\n \n Specific contacts\n \n\n \n {\n incidentsContactSchedule &&\n handleIncidentContactScheduleEdit({\n ...incidentsContactSchedule,\n specificContacts: data,\n });\n }}\n retryDataLoading={handleIncidentContactsDataReload}\n />\n \n\n \n {\n incidentsContactSchedule &&\n handleIncidentContactScheduleEdit({\n ...incidentsContactSchedule,\n applicationOrGroupContacts: applicationOrGroupContacts,\n });\n }}\n retryDataLoading={handleIncidentContactsDataReload}\n />\n \n
\n \n\n \n \n

Change requests

\n \n How can Cegeka collaborate with my organization to develop and\n deploy integrations?\n \n
\n\n {(accessEditContact || accessDeleteContact) &&\n changeRequestContactSchedule &&\n renderSaveChangeRequestContactsButton()}\n \n }\n collapsable\n >\n {!accessViewContact && }\n\n \n\n \n Switch to{\" \"}\n {\n navigationStore.navigate(Route.ContactDetails);\n }}\n >\n Provide contact details\n {\" \"}\n to{\" \"}\n {!accessViewContact || accessEditContact || accessDeleteContact\n ? \"manage contacts\"\n : \"view contacts\"}\n .\n \n \n \n );\n};\n\nexport default inject(\n \"settingStore\",\n \"navigationStore\",\n \"authenticationStore\"\n)(\n observer(\n ContactSchedule as FunctionComponent<\n Omit\n >\n )\n);\n","import { CrudModal } from \"components/common/CrudModal\";\nimport TextInput from \"components/common/TextInput\";\nimport { SettingsLogicalGroup } from \"model/LogicalGroup\";\nimport React, { FunctionComponent, useState } from \"react\";\nimport styled, { css } from \"styled-components\";\nimport { Select, Text } from \"styles/common\";\n\ninterface Props {\n logicalGroups: SettingsLogicalGroup[];\n selectedParent: SettingsLogicalGroup | undefined;\n add(name: string, parent: number | undefined): void;\n close(): void;\n}\n\nconst AddContactContentContainer = styled.div``;\n\nconst InputContainer = styled.div`\n margin-bottom: 1rem;\n`;\n\nconst SelectedLocation = styled.div`\n background-color: #f6f6f6;\n margin: 0 0.25rem;\n padding: 0.6rem;\n border-radius: 0 0 0.3rem 0.3rem;\n`;\n\nexport const emptyNameErrorText = \"Please fill in a name.\";\n\nexport const SettingLogicalGroupModal: FunctionComponent = ({\n logicalGroups,\n selectedParent,\n add,\n close,\n}) => {\n const [name, setName] = useState(\"\");\n const [parent, setParent] = useState(selectedParent?.id);\n\n let locationPaths: {\n groupId: number;\n path: string;\n }[] = [];\n\n const [nameError, setNameError] = useState(false);\n\n // Recursively get all options for parent group select (only groups without technical components)\n const getOptionsFromLevel = (\n logicalGroupLevel: SettingsLogicalGroup[],\n path?: string\n ): JSX.Element[] => {\n return logicalGroupLevel.map((group) => {\n const option = (\n \n );\n\n locationPaths.push({\n groupId: group.id,\n path: `${path ? path : \"\"}${group.name}`,\n });\n\n if (group.logicalGroups !== undefined && group.logicalGroups !== null) {\n const subGroups = getOptionsFromLevel(\n group.logicalGroups,\n `${path ? path : \"\"}${group.name} / `\n );\n return (\n <>\n {option}\n {subGroups}\n \n );\n } else {\n return group.systemGroup ||\n (group.technicalComponents !== undefined &&\n group.technicalComponents !== null) ? (\n <>\n ) : (\n option\n );\n }\n });\n };\n\n return (\n \n \n setName(value)}\n />\n \n \n \n Parent group\n \n {logicalGroups.filter(l => !l.systemGroup).length > 0 ? (\n {\n setParent(\n e.target.value === undefined\n ? e.target.value\n : parseInt(e.target.value)\n );\n }}\n >\n \n {getOptionsFromLevel(logicalGroups, \"\")}\n \n ) : (\n Root\n )}\n {parent ? (\n \n \n Selected Location:\n \n \n {locationPaths.find((path) => path.groupId === parent)\n ?.path || \"Root\"}\n \n \n ) : (\n <>\n )}\n \n \n }\n cancel={() => {\n close();\n }}\n action={() => {\n const emptyName = name === \"\";\n\n if (emptyName) {\n setNameError(true);\n } else {\n add(name, parent);\n close();\n }\n }}\n extraStyling={css`\n min-width: 25rem;\n `}\n />\n );\n};\n","import { CrudModal } from \"components/common/CrudModal\";\nimport TextInput from \"components/common/TextInput\";\nimport { SettingsLogicalGroup } from \"model/LogicalGroup\";\nimport React, { FunctionComponent, useState } from \"react\";\nimport styled, { css } from \"styled-components\";\n\ninterface Props {\n logicalGroup: SettingsLogicalGroup;\n close(): void;\n}\n\nexport const emptyNameErrorText = \"Please fill in a name.\";\n\nconst InputContainer = styled.div`\n margin-bottom: 1rem;\n`;\n\nexport const SettingLogicalGroupRenameModal: FunctionComponent = ({\n logicalGroup,\n close\n}) => {\n const [name, setName] = useState(logicalGroup.name);\n const [nameError, setNameError] = useState(false);\n const renameLogicalGroup = (value: string) => {\n logicalGroup.name = value;\n close();\n }\n\n return \n \n setName(value)}\n />\n \n \n }\n cancel={() => {\n close();\n }}\n action={() => {\n const emptyName = name === \"\";\n\n if (emptyName) {\n setNameError(true);\n } else {\n renameLogicalGroup(name);\n close();\n }\n }}\n extraStyling={css`\n min-width: 25rem;\n `}\n />\n}","import IconComponent from \"components/common/Icon\";\nimport { DeleteButton, EditButton } from \"components/common/List/common\";\nimport { SettingsLogicalGroup } from \"model/LogicalGroup\";\nimport { Icon } from \"model/Icon\";\nimport React, { FunctionComponent, useState } from \"react\";\nimport styled, { css } from \"styled-components\";\nimport { Text, IconButton, $textDark, $blue4, $lightRed } from \"styles/common\";\n\nexport interface Props {\n item: SettingsLogicalGroup;\n index: number;\n levelCount: number;\n levelIndex: number;\n selectedLogicalGroup: SettingsLogicalGroup | undefined;\n editAccess: boolean;\n deleteAccess: boolean;\n setSelectedLogicalGroup(logicalGroup: SettingsLogicalGroup | undefined): void;\n deleteLogicalGroup(logicalGroup: SettingsLogicalGroup): void;\n moveUpLogicalGroup(logicalGroup: SettingsLogicalGroup): void;\n moveDownLogicalGroup(logicalGroup: SettingsLogicalGroup): void;\n renameLogicalGroup(logicalGroup: SettingsLogicalGroup, name: string): void;\n}\n\nconst ItemContainer = styled.div<{ firstLevel?: boolean }>`\n position: relative;\n\n ${(props) =>\n props.firstLevel &&\n css`\n margin-bottom: 0.5rem;\n `}\n`;\n\nconst Hook = styled.div<{ selected: boolean }>`\n width: 0.75rem;\n margin-right: 0.25rem;\n height: 1px;\n background-color: ${(props) => (props.selected ? $blue4 : \"#d8eaf4\")};\n`;\n\nconst ItemBar = styled.div<{ selected: boolean; firstLevel?: boolean }>`\n padding: 0.3rem 0.75rem 0.3rem 0rem;\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n cursor: pointer;\n transition: 0.2s;\n\n ${(props) =>\n props.selected\n ? css`\n background-color: ${$blue4};\n\n p,\n span {\n color: #fff !important;\n }\n\n svg {\n fill: #fff !important;\n }\n `\n : css`\n &:hover {\n background-color: #d8eaf4;\n }\n `}\n\n ${(props) =>\n props.firstLevel &&\n css`\n padding-left: 0.3rem;\n `}\n`;\n\nconst ItemNameContainer = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n`;\n\nconst ItemName = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 0.5rem;\n cursor: pointer;\n`;\n\nconst ItemActionsContainer = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 0.5rem;\n`;\n\nconst SubItemsContainer = styled.div<{ opened: boolean; firstLevel?: boolean }>`\n transition: 2s;\n margin-left: ${(props) => (props.firstLevel ? `0.8rem` : `1.5rem`)};\n border-left: 1px solid #d8eaf4;\n display: ${(props) => (props.opened ? \"block\" : \"none\")};\n`;\n\nconst NoData = styled(Text)`\n padding: 0.3rem 0.75rem 0.3rem 0.9rem;\n margin-bottom: 0.25rem;\n`;\n\nconst DeleteButtonContainer = styled.div`\n margin-left: 1rem;\n`;\n\nconst SettingGroupWorkflowTreeItem: FunctionComponent = ({\n item,\n index,\n levelCount,\n levelIndex,\n selectedLogicalGroup,\n editAccess,\n deleteAccess,\n setSelectedLogicalGroup,\n deleteLogicalGroup,\n moveUpLogicalGroup,\n moveDownLogicalGroup,\n renameLogicalGroup\n}) => {\n const [opened, setOpened] = useState(false);\n\n const firstLevel = levelIndex === 0;\n const lastLevel =\n item.logicalGroups === null || item.logicalGroups === undefined;\n const notLastLevelWithParent = (lastLevel && firstLevel) || !lastLevel;\n const selected =\n selectedLogicalGroup !== undefined && selectedLogicalGroup.id === item.id;\n const childCount = item.logicalGroups\n ? item.logicalGroups.length\n : item.technicalComponents\n ? item.technicalComponents.length\n : 0;\n\n const disableMoveUp = index === 0;\n const disableMoveDown = index === levelCount - 1;\n\n const handleItemClick = () => {\n if (selectedLogicalGroup === item && opened) {\n setSelectedLogicalGroup(undefined);\n } else {\n if (!opened) {\n setSelectedLogicalGroup(item);\n }\n }\n\n setOpened(!opened);\n };\n\n return (\n \n \n \n {!firstLevel && }\n \n {\n e.stopPropagation();\n setOpened(!opened);\n }}\n />\n \n {item.name}\n \n ({childCount})\n \n \n \n {editAccess && !item.systemGroup && (\n <>\n {\n e.stopPropagation();\n !disableMoveUp && moveUpLogicalGroup(item);\n }}\n >\n \n \n {\n e.stopPropagation();\n !disableMoveDown && moveDownLogicalGroup(item);\n }}\n >\n \n \n \n )}\n {editAccess && !item.systemGroup && ( {\n renameLogicalGroup(item, 'Test');\n }}>)}\n {deleteAccess && !item.systemGroup && (\n \n {\n if (selectedLogicalGroup === item) {\n setSelectedLogicalGroup(undefined);\n }\n deleteLogicalGroup(item);\n }}\n />\n \n )}\n \n \n \n {item.logicalGroups ? (\n item.logicalGroups.map(\n (logicalGroup: SettingsLogicalGroup, index: number) => (\n \n )\n )\n ) : item.technicalComponents ? (\n <>\n ) : notLastLevelWithParent && !item.systemGroup ? (\n There are no children under this logical group.\n ) : (\n <>\n )}\n \n \n );\n};\n\nexport default SettingGroupWorkflowTreeItem as FunctionComponent;\n","import Card from \"components/common/Card\";\nimport Loader from \"components/common/Loader\";\nimport { Modal, ModalType, NoAccessModal } from \"components/common/Modal\";\nimport { SettingsLogicalGroup } from \"model/LogicalGroup\";\nimport React, { FunctionComponent, useState } from \"react\";\nimport styled, { css } from \"styled-components\";\nimport { Text, Button, HeaderWithAdd } from \"styles/common\";\nimport { moveDownInArray, moveUpInArray } from \"utils/Array\";\nimport { SettingLogicalGroupModal } from \"../SettingLogicalGroupModal\";\nimport { SettingLogicalGroupRenameModal } from \"../SettingLogicalGroupRenameModal\";\nimport SettingGroupWorkflowTreeItem from \"./SettingGroupWorkflowTreeItem\";\n\nexport interface Props {\n logicalGroups: SettingsLogicalGroup[] | undefined;\n viewAccess: boolean;\n editAccess: boolean;\n deleteAccess: boolean;\n editLogicalGroups(groups: SettingsLogicalGroup[]): void;\n selectedLogicalGroup: SettingsLogicalGroup | undefined;\n setSelectedLogicalGroup(logicalGroup: SettingsLogicalGroup | undefined): void;\n loading: boolean;\n retryDataLoading(): void;\n}\n\nconst Content = styled.div`\n position: relative;\n padding-bottom: 1rem;\n height: 100%;\n`;\n\nconst EmptyOrFailed = styled.div`\n height: 100%;\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n`;\n\nconst NoData = styled(Text)`\n padding: 0.3rem 0.75rem 0.3rem 0.9rem;\n margin-bottom: 0.25rem;\n`;\n\n// Recursively (per level) find logical group and delete\nconst deleteLogicalGroupFromLevel = (\n logicalGroupLevel: SettingsLogicalGroup[],\n logicalGroup: SettingsLogicalGroup\n): boolean => {\n let deleted = false;\n\n const index = logicalGroupLevel.indexOf(logicalGroup);\n\n if (index !== -1) {\n // Found on this level\n deleted = true;\n logicalGroupLevel.splice(index, 1);\n } else {\n // Not found on this level; search child-levels\n let i = 0;\n\n while (!deleted && i < logicalGroupLevel.length) {\n const group = logicalGroupLevel[i];\n if (group.logicalGroups) {\n deleted = deleteLogicalGroupFromLevel(\n group.logicalGroups,\n logicalGroup\n );\n }\n i++;\n }\n }\n\n return deleted;\n};\n\n// Recursively (per level) find logical group and change ranks\nconst moveLogicalGroupRankInLevel = (\n logicalGroupLevel: SettingsLogicalGroup[],\n logicalGroup: SettingsLogicalGroup,\n up: boolean\n): boolean => {\n let moved = false;\n\n const index = logicalGroupLevel.indexOf(logicalGroup);\n\n if (index !== -1) {\n // Found on this level\n moved = true;\n up\n ? moveUpInArray(logicalGroup, logicalGroupLevel)\n : moveDownInArray(logicalGroup, logicalGroupLevel);\n\n logicalGroupLevel.forEach((group, index) => {\n group.rank = index;\n });\n } else {\n // Not found on this level; search child-levels\n let i = 0;\n\n while (!moved && i < logicalGroupLevel.length) {\n const group = logicalGroupLevel[i];\n if (group.logicalGroups) {\n moved = moveLogicalGroupRankInLevel(\n group.logicalGroups,\n logicalGroup,\n up\n );\n }\n i++;\n }\n }\n\n return moved;\n};\n\n// Recursively (per level) find parent and add as a child to that parent\nconst addLogicalGroupToParentInLevel = (\n logicalGroupLevel: SettingsLogicalGroup[],\n parentId: number,\n name: string,\n addID: number\n): boolean => {\n let added = false;\n\n const parentIndex = logicalGroupLevel.findIndex(\n (group) => group.id === parentId\n );\n\n if (parentIndex !== -1) {\n // Parent found on current level\n added = true;\n const parent = logicalGroupLevel[parentIndex];\n\n parent.logicalGroups =\n parent.logicalGroups === undefined || parent.logicalGroups === null\n ? [\n {\n id: addID,\n rank: 0,\n name: name,\n },\n ]\n : [\n ...parent.logicalGroups,\n {\n id: addID,\n rank:\n parent.logicalGroups.length > 0\n ? parent.logicalGroups[parent.logicalGroups.length - 1].rank +\n 1\n : 0,\n name: name,\n },\n ];\n } else {\n // Parent not found on current level; look at child-levels\n let i = 0;\n while (!added && i < logicalGroupLevel.length) {\n const group = logicalGroupLevel[i];\n if (group.logicalGroups) {\n added = addLogicalGroupToParentInLevel(\n group.logicalGroups,\n parentId,\n name,\n addID\n );\n }\n i++;\n }\n }\n\n return added;\n};\n\nconst SettingGroupWorkflowTree = ({\n logicalGroups,\n viewAccess,\n editAccess,\n deleteAccess,\n editLogicalGroups,\n selectedLogicalGroup,\n setSelectedLogicalGroup,\n loading,\n retryDataLoading,\n}: Props) => {\n // Temporary ID for adding new groups; Makes delete/move/add operations on this new group possible\n // Negative ID's won't exist in the DB so won't collide with existing groups\n const [addID, setAddID] = useState(-1);\n\n const [showAddLogicalGroupModal, setShowAddLogicalGroupModal] =\n useState(false);\n\n const [logicalGroupToRename, setLogicalGroupToRename] = useState();\n\n const handleDeleteLogicalGroup = (logicalGroup: SettingsLogicalGroup) => {\n if (deleteAccess && logicalGroups) {\n deleteLogicalGroupFromLevel(logicalGroups, logicalGroup);\n editLogicalGroups(logicalGroups);\n }\n };\n\n const handleMoveUpLogicalGroup = (logicalGroup: SettingsLogicalGroup) => {\n if (editAccess && logicalGroups) {\n moveLogicalGroupRankInLevel(logicalGroups, logicalGroup, true);\n editLogicalGroups(logicalGroups);\n }\n };\n\n const handleMoveDownLogicalGroup = (logicalGroup: SettingsLogicalGroup) => {\n if (editAccess && logicalGroups) {\n moveLogicalGroupRankInLevel(logicalGroups, logicalGroup, false);\n editLogicalGroups(logicalGroups);\n }\n };\n\n const handleRenameLogicalGroup = (logicalGroup: SettingsLogicalGroup) => {\n if (editAccess && logicalGroups) {\n setLogicalGroupToRename(logicalGroup);\n editLogicalGroups(logicalGroups);\n }\n }\n\n const handleAddLogicalGroupClick = () => {\n setShowAddLogicalGroupModal(true);\n };\n\n const handleAddLogicalGroup = (name: string, parent: number | undefined) => {\n if (editAccess && logicalGroups) {\n if (parent === undefined) {\n // No parent: add new group on top level\n const newLogicalGroup = {\n id: addID,\n rank:\n logicalGroups.length > 0\n ? logicalGroups[logicalGroups.length - 1].rank + 1\n : 0,\n name: name,\n };\n\n logicalGroups.push(newLogicalGroup);\n } else {\n if (selectedLogicalGroup && selectedLogicalGroup.id === parent) {\n // Unselect parent because it will not be possible to add technical components to the parent anymore\n setSelectedLogicalGroup(undefined);\n }\n\n // Add as a child to parent group\n addLogicalGroupToParentInLevel(logicalGroups, parent, name, addID);\n }\n\n setAddID(addID - 1); // Update addID for possible next group add\n editLogicalGroups(logicalGroups);\n }\n setShowAddLogicalGroupModal(false);\n };\n\n const renderEmptyData = (\n \n \"no\n {loading ? (\n \n ) : (\n \n You have not defined any logical groups yet.\n \n )}\n \n );\n\n const renderNoDataLoaded = (\n \n \"no\n {viewAccess &&\n (loading ? (\n \n ) : (\n \n ))}\n \n );\n\n return (\n \n

Dashboard groups

\n\n {editAccess && (\n {\n e.stopPropagation();\n handleAddLogicalGroupClick();\n }}\n >\n New group\n \n )}\n \n }\n extraStyling={css`\n flex: 1;\n `}\n >\n {!viewAccess && }\n\n \n {logicalGroups && logicalGroups.length > 0 ? (\n
\n {logicalGroups.map(\n (logicalGroup: SettingsLogicalGroup, index: number) => (\n \n )\n )}\n
\n ) : logicalGroups && logicalGroups.length === 0 ? (\n renderEmptyData\n ) : (\n renderNoDataLoaded\n )}\n
\n\n {logicalGroupToRename && (\n setLogicalGroupToRename(undefined)}>\n )}\n\n {logicalGroups && showAddLogicalGroupModal && (\n {\n handleAddLogicalGroup(name, parent);\n }}\n close={() => {\n setShowAddLogicalGroupModal(false);\n }}\n selectedParent={selectedLogicalGroup}\n />\n )}\n \n );\n};\n\nexport default SettingGroupWorkflowTree as FunctionComponent;\n","import Card from \"components/common/Card\";\nimport IconComponent from \"components/common/Icon\";\nimport { List } from \"components/common/List\";\nimport { CenteredCellContainer } from \"components/common/List/common\";\nimport { NoAccessModal } from \"components/common/Modal\";\nimport SearchInput from \"components/common/SearchInput\";\nimport { TableCheckbox } from \"components/common/TableCheckbox\";\nimport { Environment } from \"model/Environment\";\nimport { Icon } from \"model/Icon\";\nimport { SettingsLogicalGroup } from \"model/LogicalGroup\";\nimport { SettingsTechnicalComponent } from \"model/PlatformComponent\";\nimport React, { useState, useEffect, useCallback } from \"react\";\nimport styled, { css } from \"styled-components\";\nimport {\n Text,\n Span,\n $statusFail,\n Select,\n $blue4,\n StyledReactTooltip,\n $textLight,\n} from \"styles/common\";\n\ninterface Props {\n environments: Environment[] | undefined;\n technicalComponents: SettingsTechnicalComponent[] | undefined;\n viewAccess: boolean;\n editAccess: boolean;\n selectedLogicalGroup: SettingsLogicalGroup | undefined;\n resetSelectedLogicalGroup(): void;\n editSelectedLogicalGroupTechnicalComponent(\n component: SettingsTechnicalComponent\n ): void;\n loading: boolean;\n retryDataLoading(): void;\n}\n\nconst SelectedLogicalGroup = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 0.5rem;\n margin-bottom: 1.5rem;\n`;\n\nconst SelectedLogicalGroupParent = styled(Span)`\n margin-right: 0.5rem;\n`;\n\nconst NoSelectedLogicalGroup = styled(Span)`\n opacity: 0.7;\n`;\n\nconst HeaderContainer = styled.div`\n width: 100%;\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n`;\n\nconst ActionsContainer = styled.div`\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: flex-end;\n`;\n\nconst baseHeaders = [\"Name\", \"Type\", \"Usage\"];\nconst baseColumnWidths = [5, 3, 1];\n\nconst allEnvironmentsId = -1;\n\nexport const SettingTechnicalComponents = ({\n environments,\n technicalComponents,\n viewAccess,\n editAccess,\n selectedLogicalGroup,\n resetSelectedLogicalGroup,\n editSelectedLogicalGroupTechnicalComponent,\n loading,\n retryDataLoading,\n}: Props) => {\n const [\n sortedAndFilteredTechnicalComponents,\n setSortedAndFilteredTechnicalComponents,\n ] = useState(technicalComponents);\n\n const [selectedEnvironment, setSelectedEnvironment] =\n useState(allEnvironmentsId);\n\n const [searchString, setSearchString] = useState(\n undefined\n );\n\n const sortAndFilter = useCallback(\n (components: SettingsTechnicalComponent[]) => {\n if (selectedLogicalGroup && selectedLogicalGroup.systemGroup) {\n // Only show selected components for group \"Unassigned\"\n components = [\n ...components.filter(\n (comp) =>\n selectedLogicalGroup.technicalComponents &&\n selectedLogicalGroup.technicalComponents.includes(comp.id)\n ),\n ];\n }\n\n // Sort alphabetically\n components = [\n ...components.sort(\n (a: SettingsTechnicalComponent, b: SettingsTechnicalComponent) =>\n a.name < b.name ? -1 : a.name > b.name ? 1 : 0\n ),\n ];\n\n if (searchString !== undefined) {\n components = components.filter((component) =>\n component.name.toLowerCase().includes(searchString)\n );\n }\n\n // Filter on selected environment\n components = components.filter((component) => {\n return selectedEnvironment === allEnvironmentsId\n ? true\n : component.environments.includes(selectedEnvironment);\n });\n\n if (\n !selectedLogicalGroup ||\n (selectedLogicalGroup && !selectedLogicalGroup.systemGroup)\n ) {\n // Sort to put selected components on top\n components = [\n ...components.sort(\n (a: SettingsTechnicalComponent, b: SettingsTechnicalComponent) => {\n if (\n selectedLogicalGroup &&\n selectedLogicalGroup.technicalComponents\n ) {\n const includesA =\n selectedLogicalGroup.technicalComponents.includes(a.id);\n const includesB =\n selectedLogicalGroup.technicalComponents.includes(b.id);\n\n return Number(includesB) - Number(includesA);\n } else {\n return 1;\n }\n }\n ),\n ];\n }\n\n setSortedAndFilteredTechnicalComponents(components);\n },\n [searchString, selectedEnvironment, selectedLogicalGroup]\n );\n\n useEffect(() => {\n if (technicalComponents) {\n sortAndFilter([...technicalComponents]);\n }\n }, [\n selectedLogicalGroup,\n technicalComponents,\n selectedEnvironment,\n sortAndFilter,\n ]);\n\n const renderSearch = (\n {\n setSearchString(value);\n }}\n />\n );\n\n return (\n \n

All Technical Components

\n \n }\n extraStyling={css`\n flex: 1.5;\n `}\n >\n {!viewAccess && }\n\n \n \n \n Selected group:\n \n {selectedLogicalGroup === undefined ? (\n \n Select a group on the left to show\n {!viewAccess || editAccess ? \" and edit\" : \"\"} the technical\n components that belong to that group.\n \n ) : (\n \n {selectedLogicalGroup.name}\n \n )}\n \n {selectedLogicalGroup !== undefined && (\n \n )}\n \n\n \n
\n \n Show components for\n \n {\n setSelectedEnvironment(parseInt(e.target.value));\n }}\n extraStyling={css`\n width: 20rem;\n `}\n >\n \n {environments &&\n environments.map((env, index) => (\n \n ))}\n \n
\n {renderSearch}\n
\n\n \n \n \n \n \n Selected technical components belong to the group that is\n selected on the left.\n \n ,\n ...baseHeaders,\n ]\n : baseHeaders\n }\n data={\n selectedLogicalGroup && selectedLogicalGroup.logicalGroups ? [] :\n sortedAndFilteredTechnicalComponents\n ? sortedAndFilteredTechnicalComponents.map(\n (technicalComponent: SettingsTechnicalComponent) => {\n return {\n cells:\n selectedLogicalGroup && !selectedLogicalGroup.logicalGroups && !selectedLogicalGroup.systemGroup\n ? [\n \n {\n editSelectedLogicalGroupTechnicalComponent(\n technicalComponent\n );\n }}\n />\n ,\n technicalComponent.name,\n technicalComponent.type,\n technicalComponent.usage,\n ]\n : [\n technicalComponent.name,\n technicalComponent.type,\n technicalComponent.usage,\n ],\n };\n }\n )\n : undefined\n }\n access={viewAccess}\n noDataText={selectedLogicalGroup && !selectedLogicalGroup.logicalGroups ? \"There are no technical components yet.\" : \n \"The selected group cannot have technical components.\"}\n retryDataLoading={retryDataLoading}\n customColumnWidths={\n selectedLogicalGroup && !selectedLogicalGroup.logicalGroups && !selectedLogicalGroup.systemGroup\n ? [1, ...baseColumnWidths]\n : baseColumnWidths\n }\n hover\n loading={loading}\n extraStyling={css`\n margin-bottom: 1rem;\n `}\n />\n \n );\n};\n","import { CardRowContainer } from \"components/common/Card\";\nimport { inject, observer } from \"mobx-react\";\nimport React, { FunctionComponent, useEffect, useState } from \"react\";\nimport SettingStore from \"stores/SettingStore\";\nimport styled from \"styled-components\";\nimport { Button } from \"styles/common\";\nimport { Header, HeaderExplanation, HeaderTitle } from \"./common\";\nimport { Prompt } from \"react-router\";\nimport { Route } from \"model/Navigation\";\nimport SettingGroupWorkflowTree from \"components/Settings/SettingGroupWorkflowTree\";\nimport { SettingTechnicalComponents } from \"components/Settings/SettingTechnicalComponents\";\nimport { SettingsLogicalGroup } from \"model/LogicalGroup\";\nimport { SettingsTechnicalComponent } from \"model/PlatformComponent\";\nimport GeneralStore from \"stores/GeneralStore\";\nimport AuthenticationStore from \"stores/AuthenticationStore\";\nimport { PermissionArea, PermissionType } from \"model/Claim\";\nimport NavigationStore from \"stores/NavigationStore\";\n\ninterface Props {\n generalStore: GeneralStore;\n settingStore: SettingStore;\n authenticationStore: AuthenticationStore;\n navigationStore: NavigationStore;\n}\n\nconst SaveButtonsContainer = styled.div`\n position: absolute;\n top: 0;\n right: 0;\n display: flex;\n flex-direction: row;\n gap: 1rem;\n`;\n\nconst GroupWorkflow: FunctionComponent = ({\n generalStore,\n settingStore,\n authenticationStore,\n navigationStore,\n}) => {\n const [dataLoad, setDataLoad] = useState(false);\n\n const accessViewIntegration = authenticationStore.userHasPermission(\n PermissionArea.Integration,\n PermissionType.View\n );\n\n const accessEditIntegration = authenticationStore.userHasPermission(\n PermissionArea.Integration,\n PermissionType.Edit\n );\n\n const [logicalGroups, setLogicalGroups] = useState<\n SettingsLogicalGroup[] | undefined\n >(undefined);\n\n const [technicalComponents, setTechnicalComponents] = useState<\n SettingsTechnicalComponent[] | undefined\n >(undefined);\n\n const [selectedLogicalGroup, setSelectedLogicalGroup] = useState<\n SettingsLogicalGroup | undefined\n >(undefined);\n\n const [editedLogicalGroups, setEditedLogicalGroups] = useState(false);\n\n useEffect(() => {\n accessViewIntegration &&\n !settingStore.allLogicalGroups &&\n settingStore.getAllLogicalGroups().then((groups) => {\n groups && setLogicalGroups(groups);\n settingStore.getAllTechnicalComponents().then((components) => {\n components && setTechnicalComponents(components);\n setDataLoad(true);\n });\n });\n }, [accessViewIntegration, settingStore]);\n\n const handleLogicalGroupsDataReload = () => {\n accessViewIntegration &&\n settingStore.getAllLogicalGroups().then((groups) => {\n groups && setLogicalGroups(groups);\n settingStore.getAllTechnicalComponents().then((components) => {\n components && setTechnicalComponents(components);\n });\n });\n };\n\n // For edit or delete\n const handleLogicalGroupsEdit = (groups: SettingsLogicalGroup[]) => {\n if (accessEditIntegration) {\n !editedLogicalGroups && setEditedLogicalGroups(true);\n setLogicalGroups([...groups]);\n }\n };\n\n const handleResetSelectedLogicalGroup = () => {\n setSelectedLogicalGroup(undefined);\n };\n\n // Recursively (per level) find logical group and edit\n const editLogicalGroupLevel = (\n logicalGroupLevel: SettingsLogicalGroup[],\n newLogicalGroup: SettingsLogicalGroup\n ): boolean => {\n let edited = false;\n\n const index = logicalGroupLevel.findIndex(\n (group) => group.id === newLogicalGroup.id\n );\n\n if (index !== -1) {\n // Found on this level\n edited = true;\n logicalGroupLevel[index] = newLogicalGroup;\n } else {\n // Not found on this level; look at child levels\n let i = 0;\n\n while (!edited && i < logicalGroupLevel.length) {\n const group = logicalGroupLevel[i];\n if (group.logicalGroups) {\n edited = editLogicalGroupLevel(group.logicalGroups, newLogicalGroup);\n }\n i++;\n }\n }\n\n return edited;\n };\n\n // Add or delete technical component from logical group\n const handleEditSelectedLogicalGroupTechnicalComponent = (\n technicalComponent: SettingsTechnicalComponent\n ) => {\n let newComponent = { ...technicalComponent };\n let unassigned = false;\n let wasUnassigned = false;\n\n if (accessEditIntegration && logicalGroups && selectedLogicalGroup) {\n // Get current components\n\n let newLogicalGroupTechnicalComponents =\n selectedLogicalGroup.technicalComponents\n ? [...selectedLogicalGroup.technicalComponents]\n : [];\n\n // Add or delete component from id list\n\n const found = newLogicalGroupTechnicalComponents.find(\n (compId) => compId === technicalComponent.id\n );\n\n if (found !== undefined) {\n // Remove from id list on logical group and update usage on component\n newLogicalGroupTechnicalComponents =\n newLogicalGroupTechnicalComponents.filter(\n (compId) => compId !== technicalComponent.id\n );\n\n newComponent.usage = newComponent.usage - 1;\n\n if (newComponent.usage === 0) {\n unassigned = true;\n }\n } else {\n // Add to id list of logical group and update usage on component\n newLogicalGroupTechnicalComponents.push(technicalComponent.id);\n\n if (newComponent.usage === 0) {\n wasUnassigned = true;\n }\n\n newComponent.usage = newComponent.usage + 1;\n }\n\n const newSelectedLogicalGroup = {\n ...selectedLogicalGroup,\n technicalComponents:\n newLogicalGroupTechnicalComponents.length === 0\n ? null\n : newLogicalGroupTechnicalComponents,\n };\n\n // Edit in states\n\n !editedLogicalGroups && setEditedLogicalGroups(true);\n\n technicalComponents &&\n setTechnicalComponents(\n [...technicalComponents].map((comp) => {\n if (comp.id === newComponent.id) {\n return newComponent;\n } else {\n return comp;\n }\n })\n );\n setSelectedLogicalGroup(newSelectedLogicalGroup);\n editLogicalGroupLevel(logicalGroups, newSelectedLogicalGroup);\n\n if (unassigned || wasUnassigned) {\n setLogicalGroups(\n [...logicalGroups].map((group) => {\n if (group.systemGroup) {\n let newTechnicalComponents = group.technicalComponents\n ? [...group.technicalComponents]\n : [];\n\n if (unassigned) {\n // Add to list of unassigned logical group\n newTechnicalComponents = [\n ...newTechnicalComponents,\n technicalComponent.id,\n ];\n } else {\n // Remove from list of unassigned logical group\n newTechnicalComponents = newTechnicalComponents.filter(\n (comp) => comp !== newComponent.id\n );\n }\n\n return {\n ...group,\n technicalComponents: newTechnicalComponents,\n };\n } else {\n return group;\n }\n })\n );\n } else {\n setLogicalGroups([...logicalGroups]);\n }\n }\n };\n\n const renderSaveButtons = () => (\n \n {\n e.stopPropagation();\n logicalGroups &&\n settingStore.editGroupWorkflow(logicalGroups).then(() => {\n setEditedLogicalGroups(false);\n handleLogicalGroupsDataReload();\n });\n }}\n >\n {editedLogicalGroups ? \"Save changes\" : \"No changes\"}\n \n {editedLogicalGroups && (\n {\n e.stopPropagation();\n logicalGroups &&\n settingStore.editGroupWorkflow(logicalGroups).then(() => {\n setEditedLogicalGroups(false);\n navigationStore.navigate(Route.Integrations);\n });\n }}\n >\n Save changes & view dashboard\n \n )}\n \n );\n\n return (\n <>\n {\n if (!location.pathname.startsWith(Route.ContactSchedule)) {\n // Reset data when leaving page\n settingStore.resetGroupWorkflow();\n\n return editedLogicalGroups\n ? \"Are you sure you want to leave this page? You have unsaved changes.\"\n : true;\n }\n return true;\n }}\n />\n
\n \n Group workflow\n \n \n {!accessViewIntegration ||\n accessEditIntegration\n ? \"This view allows you to group technical components into a functional view. Technical components are part of the actual development and are closely monitored. Grouping components allows you to customize your dashboard.\"\n : \"Technical components are grouped into functional views to determine the layout of your dashboard. Technical components are part of the actual development and are closely monitored.\"}\n \n\n {accessEditIntegration &&\n logicalGroups &&\n renderSaveButtons()}\n
\n\n \n \n\n \n \n \n );\n};\n\nexport default inject(\n \"generalStore\",\n \"settingStore\",\n \"authenticationStore\",\n \"navigationStore\"\n)(\n observer(\n GroupWorkflow as FunctionComponent<\n Omit<\n Props,\n | \"generalStore\"\n | \"settingStore\"\n | \"authenticationStore\"\n | \"navigationStore\"\n >\n >\n )\n);\n","import IconComponent from \"components/common/Icon\";\nimport { List } from \"components/common/List\";\nimport { EditButton } from \"components/common/List/common\";\nimport SearchInput from \"components/common/SearchInput\";\nimport { BaseCustomer } from \"model/Customer\";\nimport { Icon } from \"model/Icon\";\nimport { Subscription } from \"model/User\";\nimport React, { useState } from \"react\";\nimport AuthenticationStore from \"stores/AuthenticationStore\";\nimport styled from \"styled-components\";\nimport { Text, Button, IconButton, $textLight } from \"styles/common\";\n\ninterface Props {\n customers: BaseCustomer[] | undefined;\n defaultSubscription: Subscription | undefined;\n viewAccess: boolean;\n editAccess: boolean;\n loading: boolean;\n authenticationStore: AuthenticationStore,\n onAdd(): void;\n onEdit(customer: BaseCustomer): void;\n onCustomerSwitch(customerId: number): void;\n retryDataLoading(): void;\n}\n\nconst Container = styled.div`\n margin-bottom: 1rem;\n`;\n\nconst HeaderContainer = styled.div`\n display: flex;\n flex-direction: row;\n justify-content: flex-end;\n margin-bottom: 1rem;\n`;\n\nconst headers = [\"Customer\", \"\", \"\"];\n\nexport const CustomersList = ({\n customers,\n defaultSubscription,\n viewAccess,\n editAccess,\n loading,\n authenticationStore,\n onAdd,\n onEdit,\n onCustomerSwitch,\n retryDataLoading,\n}: Props) => {\n const [searchList, setSearchList] = useState(\n undefined\n );\n\n const getSearchItems = (filter: string) => {\n if (customers) {\n if (filter === \"\") {\n setSearchList(undefined);\n } else {\n const filteredList = customers.filter((customer) =>\n customer.name.toLowerCase().includes(filter.toLowerCase())\n );\n if (filteredList.length > 0) {\n setSearchList(filteredList);\n } else {\n setSearchList([]);\n }\n }\n }\n };\n\n const renderSearch = (\n {\n getSearchItems(value);\n }}\n />\n );\n\n const getCustomerCells = (list: BaseCustomer[]) =>\n list.map((customer: BaseCustomer) => {\n const switchButton = (authenticationStore.userPermissionsInfo?.subscriptions.find(s => s.customerId === customer.id) ?\n {\n onCustomerSwitch(customer.id);\n }}\n >\n \n Switch to customer\n \n : <>);\n\n const editButton = (authenticationStore.userPermissionsInfo?.subscriptions.find(s => s.customerId === customer.id) ?\n onEdit(customer)}\n />\n : <>);\n\n const baseCells = [\n customer.name,\n customer.id !== defaultSubscription?.customerId ? switchButton : <>,\n ];\n\n return {\n cells: editAccess ? [...baseCells, editButton] : baseCells,\n };\n });\n\n return (\n \n \n {customers && customers.length > 0 && renderSearch}\n\n {customers && editAccess && (\n {\n onAdd();\n }}\n >\n Create new customer\n \n )}\n \n\n customer.id === defaultSubscription?.customerId\n )}\n customColumnWidths={editAccess ? [20, 3, 1] : [20, 3]}\n hover\n access={viewAccess}\n noDataText=\"There are no customers yet.\"\n smallEmpty\n loading={loading}\n searchMode={searchList !== undefined}\n retryDataLoading={retryDataLoading}\n />\n \n );\n};\n","import { ExtraStylingType } from \"model/Styles\";\nimport React, { FunctionComponent, useState } from \"react\";\nimport styled, { css } from \"styled-components\";\nimport {\n Text,\n Span,\n $statusFail,\n $blue4,\n $textLight,\n StyledReactTooltip,\n textStyling,\n} from \"styles/common\";\nimport IconComponent from \"components/common/Icon\";\nimport { Icon } from \"model/Icon\";\n\ninterface Radio {\n value: string;\n label: string;\n}\n\ninterface Props {\n label?: string;\n groupName: string;\n radios: Radio[];\n defaultValue: string;\n vertical?: boolean;\n mandatory?: boolean;\n infoTooltip?: string;\n infoTooltipContent?: any;\n className?: string;\n onValueChange(value: string): void;\n extraStyling?: ExtraStylingType;\n extraLabelStyling?: ExtraStylingType;\n extraRadioLabelStyling?: ExtraStylingType;\n}\n\nconst Container = styled.div<{ extraStyling: ExtraStylingType }>`\n ${(props) => props.extraStyling}\n`;\n\nconst LabelContainer = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 0.5rem;\n`;\n\nconst Label = styled(Text)<{ extraLabelStyling: ExtraStylingType }>`\n margin-bottom: 0.5rem;\n\n ${(props) => props.extraLabelStyling}\n`;\n\nconst RadiosContainer = styled.div<{ vertical: boolean }>`\n display: flex;\n\n ${(props) =>\n props.vertical\n ? css`\n flex-direction: column;\n `\n : css`\n flex-direction: row;\n flex-wrap: wrap;\n column-gap: 1rem;\n row-gap: 0.3rem;\n `}\n`;\n\nconst RadioContainer = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 0.25rem;\n`;\n\nconst RadioLabel = styled.label<{ extraRadioLabelStyling: ExtraStylingType }>`\n ${textStyling}\n min-width: max-content;\n\n ${(props) => props.extraRadioLabelStyling}\n`;\n\nconst RadioButtonGroup: FunctionComponent = ({\n label,\n groupName,\n radios,\n defaultValue,\n vertical = false,\n mandatory = false,\n infoTooltip,\n infoTooltipContent,\n className = \"\",\n onValueChange,\n extraStyling = css``,\n extraLabelStyling = css``,\n extraRadioLabelStyling = css``,\n}) => {\n const [value, setValue] = useState(defaultValue);\n\n return (\n \n \n {label && (\n \n )}\n\n {infoTooltip && (\n <>\n \n \n \n \n {infoTooltipContent && infoTooltipContent}\n \n \n )}\n \n\n \n {radios.map((radio, index) => {\n return (\n \n {\n setValue(radio.value);\n onValueChange(radio.value);\n }}\n />\n \n {radio.label}\n \n \n );\n })}\n \n \n );\n};\n\nexport default RadioButtonGroup as FunctionComponent;\n","import { CrudModal } from \"components/common/CrudModal\";\nimport RadioButtonGroup from \"components/common/RadioButtonGroup\";\nimport TextInput from \"components/common/TextInput\";\nimport { CustomerLocation } from \"model/Customer\";\nimport {\n CustomerEnvironmentDeploymentArea,\n CustomerEnvironmentDeploymentAreaAreaType,\n} from \"model/DeploymentArea\";\nimport React, { FunctionComponent, useEffect, useState } from \"react\";\nimport styled, { css } from \"styled-components\";\nimport { $grey, Select, Text, TooltipText } from \"styles/common\";\n\ninterface Props {\n originalDeploymentArea: CustomerEnvironmentDeploymentArea | undefined;\n areaTypes: CustomerEnvironmentDeploymentAreaAreaType[];\n existingLocations: CustomerLocation[];\n environment: string;\n close(): void;\n add(environment: CustomerEnvironmentDeploymentArea): void;\n edit(environment: CustomerEnvironmentDeploymentArea): void;\n}\n\nconst Container = styled.div``;\n\nconst InputContainer = styled.div`\n margin-bottom: 1rem;\n`;\n\nconst AreaTypeContainer = styled.div`\n margin-left: 0.3rem;\n padding: 0.75rem 0 0.25rem 1rem;\n border-left: 1px solid ${$grey};\n box-sizing: border-box;\n`;\n\nconst FilterContainer = styled.div`\n display: flex;\n flex-direction: row;\n gap: 1rem;\n`;\n\nexport const emptyNameErrorText = \"Please fill in a name.\";\nexport const emptyParentAccountErrorText =\n \"Please fill in a parent account name.\";\nexport const emptyGuidErrorText = \"Please fill in a guid.\";\nexport const emptyLocationErrorText = \"Please fill in a location.\";\n\nexport const CustomerEnvironmentDeploymentAreaModal: FunctionComponent =\n ({\n originalDeploymentArea,\n areaTypes,\n existingLocations,\n environment,\n close,\n add,\n edit,\n }) => {\n const [deploymentArea, setDeploymentArea] =\n useState(\n originalDeploymentArea\n ? originalDeploymentArea\n : {\n id: 0,\n name: \"\",\n location: \"\",\n locationId: null, // A non-existing location has to be sent to the BE with id null\n areaType: areaTypes[0].id,\n parentAccount: \"\",\n guid: \"\",\n componentPattern: \"\",\n filterBy: areaTypes[0].filtersBy\n ? areaTypes[0].filtersBy[0].id\n : undefined,\n filter: \"\",\n }\n );\n\n const [currentAreaType, setCurrentAreaType] = useState<\n CustomerEnvironmentDeploymentAreaAreaType | undefined\n >(undefined);\n\n const [nameError, setNameError] = useState(false);\n const [locationError, setLocationError] = useState(false);\n const [parentAccountError, setParentAccountError] = useState(false);\n const [guidError, setGuidError] = useState(false);\n\n useEffect(() => {\n setCurrentAreaType(\n areaTypes.find((areaType) => areaType.id === deploymentArea.areaType) ||\n areaTypes[0]\n );\n }, [areaTypes, deploymentArea.areaType]);\n\n return (\n \n \n \n A friendly name for the deployment area\n \n E.g. \"Production on Azure\", \"Acceptance on Boomi\", ...\n \n \n }\n onValueChange={(value) => {\n setNameError(false);\n setDeploymentArea({ ...deploymentArea, name: value });\n }}\n />\n \n\n \n location.name)}\n dataListName=\"existing-locations-list\"\n mandatory\n error={locationError}\n errorText={emptyLocationErrorText}\n infoTooltip=\"location-info-tooltip\"\n infoTooltipContent={\n \n A name for the location of the resources\n \n Location is used to group components in the \"IT\n Operations\" view\n \n \n }\n onValueChange={(value) => {\n setLocationError(false);\n\n const location =\n existingLocations.length > 0 &&\n existingLocations.find(\n (location) =>\n location.name.toLowerCase() === value.toLowerCase()\n );\n setDeploymentArea({\n ...deploymentArea,\n locationId: !!location ? location.id : null,\n location: value,\n });\n }}\n />\n \n\n \n \n Area Type\n \n ({\n value: areaType.id.toString(),\n label: areaType.name,\n }))}\n defaultValue={deploymentArea.areaType.toString()}\n onValueChange={(areaType: string) => {\n const selectedAreaType =\n areaTypes.find((at) => at.id === parseInt(areaType)) ||\n currentAreaType;\n\n setCurrentAreaType(selectedAreaType);\n\n // Reset values that don't exists on new area type\n setDeploymentArea({\n ...deploymentArea,\n areaType: parseInt(areaType),\n parentAccount:\n selectedAreaType && selectedAreaType.parentAccountIdName\n ? deploymentArea.parentAccount\n : \"\",\n guid:\n selectedAreaType && selectedAreaType.guidName\n ? deploymentArea.guid\n : \"\",\n componentPattern:\n selectedAreaType && selectedAreaType.hasComponentPattern\n ? deploymentArea.componentPattern\n : \"\",\n filterBy:\n selectedAreaType && selectedAreaType.filtersBy\n ? selectedAreaType.filtersBy[0].id\n : undefined,\n filter:\n selectedAreaType && !!selectedAreaType.filtersBy\n ? deploymentArea.filter\n : \"\",\n });\n }}\n />\n \n\n \n {currentAreaType && currentAreaType.parentAccountIdName && (\n \n {\n setParentAccountError(false);\n setDeploymentArea({\n ...deploymentArea,\n parentAccount: value,\n });\n }}\n />\n \n )}\n\n {currentAreaType && currentAreaType.guidName && (\n \n {\n setGuidError(false);\n setDeploymentArea({\n ...deploymentArea,\n guid: value,\n });\n }}\n />\n \n )}\n\n {currentAreaType && currentAreaType.hasComponentPattern && (\n \n {\n setDeploymentArea({\n ...deploymentArea,\n componentPattern: value,\n });\n }}\n />\n \n )}\n\n {currentAreaType &&\n currentAreaType.filtersBy &&\n currentAreaType.filtersBy.length > 0 && (\n \n \n \n Filter by\n \n {\n setDeploymentArea({\n ...deploymentArea,\n filterBy: parseInt(e.target.value),\n });\n }}\n extraStyling={css`\n width: 20rem;\n `}\n >\n {currentAreaType.filtersBy.map((filterBy, index) => (\n \n ))}\n \n \n \n {\n setDeploymentArea({\n ...deploymentArea,\n filter: value,\n });\n }}\n />\n \n \n )}\n \n \n }\n cancel={() => {\n close();\n }}\n action={() => {\n const nameIsEmpty = deploymentArea.name === \"\";\n const locationIsEmpty = deploymentArea.location === \"\";\n const parentAccountExistsAndIsEmpty =\n currentAreaType &&\n currentAreaType.parentAccountIdName &&\n (!deploymentArea.parentAccount ||\n deploymentArea.parentAccount === \"\");\n const guidExistsAndIsEmpty =\n currentAreaType &&\n currentAreaType.guidName &&\n (!deploymentArea.guid || deploymentArea.guid === \"\");\n\n if (nameIsEmpty) {\n setNameError(true);\n }\n if (locationIsEmpty) {\n setLocationError(true);\n }\n if (parentAccountExistsAndIsEmpty) {\n setParentAccountError(true);\n }\n if (guidExistsAndIsEmpty) {\n setGuidError(true);\n }\n\n if (\n !nameIsEmpty &&\n !locationIsEmpty &&\n !parentAccountExistsAndIsEmpty &&\n !guidExistsAndIsEmpty\n ) {\n originalDeploymentArea ? edit(deploymentArea) : add(deploymentArea);\n close();\n }\n }}\n extraStyling={css`\n min-width: 50rem;\n min-height: 60vh;\n `}\n />\n );\n };\n","import { CrudModal } from \"components/common/CrudModal\";\nimport TextInput from \"components/common/TextInput\";\nimport { CustomerEnvironmentSla } from \"model/Sla\";\nimport { CustomerEnvironment } from \"model/Environment\";\nimport React, { FunctionComponent, useState } from \"react\";\nimport styled, { css } from \"styled-components\";\nimport { Select, Text } from \"styles/common\";\n\ninterface Props {\n originalEnvironment: CustomerEnvironment | undefined;\n slas: CustomerEnvironmentSla[];\n close(): void;\n add(environment: CustomerEnvironment): void;\n edit(environment: CustomerEnvironment): void;\n}\n\nconst Container = styled.div``;\n\nconst InputContainer = styled.div`\n margin-bottom: 1rem;\n`;\n\nexport const emptyNameErrorText = \"Please fill in a name.\";\nexport const emptyAbbreviationErrorText = \"Please fill in an abbreviation.\";\n\nexport const CustomerEnvironmentModal: FunctionComponent = ({\n originalEnvironment,\n slas,\n close,\n add,\n edit,\n}) => {\n const [environment, setEnvironment] = useState(\n originalEnvironment\n ? originalEnvironment\n : {\n id: 0,\n name: \"\",\n abbreviation: \"\",\n areas: [],\n sla: slas[0].id,\n }\n );\n\n const [nameError, setNameError] = useState(false);\n const [abbreviationError, setAbbreviationError] = useState(false);\n\n return (\n \n \n {\n setNameError(false);\n setEnvironment({ ...environment, name: value });\n }}\n />\n \n\n \n {\n setNameError(false);\n setEnvironment({ ...environment, abbreviation: value });\n }}\n />\n \n\n \n \n SLA\n \n {\n setEnvironment({\n ...environment,\n sla: parseInt(e.target.value),\n });\n }}\n extraStyling={css`\n margin-bottom: 0.5rem;\n `}\n >\n {slas.map((sla: CustomerEnvironmentSla, index: number) => (\n \n ))}\n \n \n \n }\n cancel={() => {\n close();\n }}\n action={() => {\n if (environment.name === \"\") {\n setNameError(true);\n }\n if (environment.abbreviation === \"\") {\n setAbbreviationError(true);\n }\n\n if (environment.name !== \"\" && environment.abbreviation !== \"\") {\n originalEnvironment ? edit(environment) : add(environment);\n close();\n }\n }}\n extraStyling={css`\n min-width: 25rem;\n `}\n />\n );\n};\n","import Card, { CardSpacer } from \"components/common/Card\";\nimport IconComponent from \"components/common/Icon\";\nimport { List } from \"components/common/List\";\nimport { EditButton, DeleteButton } from \"components/common/List/common\";\nimport { CustomerEnvironmentDeploymentAreaModal } from \"components/Customers/CustomerCrud/CustomerEnvironmentDeploymentAreaModal\";\nimport { CustomerEnvironmentModal } from \"components/Customers/CustomerCrud/CustomerEnvironmentModal\";\nimport { CustomerEnvironmentSla } from \"model/Sla\";\nimport { Icon } from \"model/Icon\";\nimport React, { FunctionComponent, useState, useEffect } from \"react\";\nimport styled, { css } from \"styled-components\";\nimport {\n $statusFail,\n Text,\n Span,\n Button,\n IconButton,\n $textLight,\n HeaderWithAdd,\n $lightRed,\n} from \"styles/common\";\nimport {\n CustomerEnvironmentDeploymentAreaAreaType,\n CustomerEnvironmentDeploymentArea,\n} from \"model/DeploymentArea\";\nimport { CustomerEnvironment } from \"model/Environment\";\nimport { CustomerLocation } from \"model/Customer\";\n\ninterface Props {\n environments: CustomerEnvironment[];\n existingLocations: CustomerLocation[];\n areaTypes: CustomerEnvironmentDeploymentAreaAreaType[];\n slas: CustomerEnvironmentSla[];\n environmentsError: boolean;\n setEnvironmentsError: (set: boolean) => void;\n editEnvironments(\n editedEnvironments: CustomerEnvironment[],\n editedLocations?: CustomerLocation[]\n ): void;\n}\n\nconst Container = styled.div``;\n\nconst DeploymentAreasContainer = styled.div`\n position: relative;\n`;\n\nconst ListLabel = styled(Text)`\n opacity: 0.7;\n`;\n\nexport const emptyEnvironmentsErrorText = \"Please add at least one environment\";\n\nexport const noEnvironmentsText = \"You haven't defined any environments yet.\";\nexport const noDeploymentAreasText =\n \"You haven't defined any deployment areas for this environment yet.\";\n\nconst environmentsHeaders = [\n \"Environment\",\n \"Abbreviation\",\n \"Areas\",\n \"SLA\",\n \"\",\n \"\",\n];\n\nconst deploymentAreasHeaders = [\n \"Name + Location\",\n \"Parent Account\",\n \"Area\",\n \"Component pattern\",\n \"Filter\",\n \"\",\n \"\",\n \"\",\n];\n\nconst getCustomerEnvironmentCells = (\n environments: CustomerEnvironment[],\n slas: CustomerEnvironmentSla[],\n editEnvironment: (environment: CustomerEnvironment) => void,\n deleteEnvironment: (environment: CustomerEnvironment) => void\n) =>\n environments.map((environment: CustomerEnvironment) => ({\n cells: [\n environment.name,\n environment.abbreviation,\n \n {environment.areas.length}\n ,\n slas.find((sla) => sla.id === environment.sla)?.name || \"\",\n {\n editEnvironment(environment);\n }}\n />,\n {\n deleteEnvironment(environment);\n }}\n />,\n ],\n }));\n\nconst getAreaTypePortalUrl = (\n url: string,\n parentAccount: string,\n guid: string\n) => url.replace(\"{parentAccount}\", parentAccount).replace(\"{guid}\", guid);\n\nconst getCustomerEnvironmentDeploymentAreaCells = (\n deploymentAreas: CustomerEnvironmentDeploymentArea[],\n areaTypes: CustomerEnvironmentDeploymentAreaAreaType[],\n editDeploymentArea: (\n deploymentArea: CustomerEnvironmentDeploymentArea\n ) => void,\n deleteDeploymentArea: (\n deploymentArea: CustomerEnvironmentDeploymentArea\n ) => void\n) =>\n deploymentAreas.map((deploymentArea: CustomerEnvironmentDeploymentArea) => {\n const currentAreaType = areaTypes.find(\n (areaType) => areaType.id === deploymentArea.areaType\n );\n\n const emptyFilter =\n currentAreaType &&\n currentAreaType.filtersBy &&\n currentAreaType.filtersBy.length > 0 &&\n deploymentArea.filter === \"\";\n\n return {\n cells: [\n <>\n {deploymentArea.name}\n {deploymentArea.location}\n ,\n <>\n \n {currentAreaType && currentAreaType.parentAccountIdName}\n \n {deploymentArea.parentAccount}\n ,\n <>\n {currentAreaType && currentAreaType.name}\n {deploymentArea.guid}\n ,\n \n {deploymentArea.componentPattern\n ? deploymentArea.componentPattern\n : \"-\"}\n ,\n emptyFilter ? (\n -\n ) : (\n <>\n \n {currentAreaType && currentAreaType.filtersBy\n ? currentAreaType.filtersBy.find(\n (filterBy) => filterBy.id === deploymentArea.filterBy\n )?.name\n : \"\"}\n \n {deploymentArea.filter}\n \n ),\n {\n currentAreaType &&\n window.open(\n getAreaTypePortalUrl(\n currentAreaType.portalUrl,\n deploymentArea.parentAccount,\n deploymentArea.guid\n ),\n \"_blank\"\n );\n }}\n >\n \n Open portal\n ,\n {\n editDeploymentArea(deploymentArea);\n }}\n />,\n {\n deleteDeploymentArea(deploymentArea);\n }}\n />,\n ],\n };\n });\n\nexport const CustomerEnvironments: FunctionComponent = ({\n environments,\n existingLocations,\n areaTypes,\n slas,\n environmentsError,\n setEnvironmentsError,\n editEnvironments,\n}) => {\n const [showEnvironmentModal, setShowEnvironmentModal] = useState(false);\n const [openedEnvironment, setOpenedEnvironment] = useState<\n CustomerEnvironment | undefined\n >(undefined);\n const [selectedEnvironment, setSelectedEnvironment] = useState<\n CustomerEnvironment | undefined\n >(undefined);\n const [selectedEnvironmentListIndex, setSelectedEnvironmentListIndex] =\n useState(undefined); // New environments have an id of 0, so we can't use the id when adding deployment areas\n\n const [showDeploymentAreaModal, setShowDeploymentAreaModal] = useState(false);\n const [openedDeploymentArea, setOpenedDeploymentArea] = useState<\n CustomerEnvironmentDeploymentArea | undefined\n >(undefined);\n\n useEffect(() => {\n if (environments.length > 0 && !selectedEnvironment) {\n setSelectedEnvironment(environments[0]);\n setSelectedEnvironmentListIndex(0);\n }\n }, [environments, selectedEnvironment]);\n\n const handleAddEnvironmentClick = () => {\n setShowEnvironmentModal(true);\n };\n\n const handleAddEnvironment = (environment: CustomerEnvironment) => {\n setEnvironmentsError(false);\n const newEnvironments: CustomerEnvironment[] = [...environments];\n newEnvironments.push(environment);\n editEnvironments([...newEnvironments]);\n setSelectedEnvironment(environment);\n setSelectedEnvironmentListIndex(newEnvironments.indexOf(environment));\n };\n\n const handleEditEnvironmentClick = (environment: CustomerEnvironment) => {\n setOpenedEnvironment(environment);\n setShowEnvironmentModal(true);\n };\n\n const handleEditEnvironment = (environment: CustomerEnvironment) => {\n setEnvironmentsError(false);\n const newEnvironments = [\n ...environments.map((env) => {\n return env.id === environment.id ? environment : env;\n }),\n ];\n editEnvironments([...newEnvironments]);\n };\n\n const handleDeleteEnvironment = (environment: CustomerEnvironment) => {\n const deleteIndex = environments.indexOf(environment);\n const newEnvironments = [...environments];\n newEnvironments.splice(deleteIndex, 1);\n\n editEnvironments([...newEnvironments]);\n\n if (selectedEnvironment !== undefined) {\n const newSelectedEnvironmentIndex =\n newEnvironments.indexOf(selectedEnvironment);\n\n if (newSelectedEnvironmentIndex === -1) {\n setSelectedEnvironment(undefined);\n setSelectedEnvironmentListIndex(undefined);\n } else {\n setSelectedEnvironmentListIndex(newSelectedEnvironmentIndex);\n }\n }\n };\n\n const handleSelectEnvironment = (rowIndex: number) => {\n const environment = environments[rowIndex];\n setSelectedEnvironment(environment);\n setSelectedEnvironmentListIndex(rowIndex);\n };\n\n const handleAddDeploymentArea = (\n deploymentArea: CustomerEnvironmentDeploymentArea\n ) => {\n if (\n selectedEnvironment !== undefined &&\n selectedEnvironmentListIndex !== undefined\n ) {\n const newDeploymentAreas: CustomerEnvironmentDeploymentArea[] = [\n ...selectedEnvironment.areas,\n ];\n newDeploymentAreas.push(deploymentArea);\n\n const newEnvironments = [...environments];\n newEnvironments[selectedEnvironmentListIndex] = {\n ...newEnvironments[selectedEnvironmentListIndex],\n areas: newDeploymentAreas,\n };\n\n // Check if location is a new location and is not already added to the existinglocations as a new location\n const addNewLocation: boolean =\n deploymentArea.locationId === null &&\n !!!existingLocations.find(\n (loc) => loc.id === null && loc.name === deploymentArea.location\n );\n\n editEnvironments(\n [...newEnvironments],\n addNewLocation\n ? [\n ...existingLocations,\n { id: deploymentArea.locationId, name: deploymentArea.location },\n ]\n : undefined\n );\n\n setSelectedEnvironment(newEnvironments[selectedEnvironmentListIndex]);\n }\n };\n\n const handleEditDeploymentAreaClick = (\n deploymentArea: CustomerEnvironmentDeploymentArea\n ) => {\n setOpenedDeploymentArea(deploymentArea);\n setShowDeploymentAreaModal(true);\n };\n\n const handleEditDeploymentArea = (\n deploymentArea: CustomerEnvironmentDeploymentArea\n ) => {\n if (\n selectedEnvironment !== undefined &&\n selectedEnvironmentListIndex !== undefined &&\n openedDeploymentArea !== undefined\n ) {\n const newDeploymentAreas: CustomerEnvironmentDeploymentArea[] = [\n ...selectedEnvironment.areas,\n ];\n\n const index = newDeploymentAreas.indexOf(openedDeploymentArea);\n newDeploymentAreas[index] = deploymentArea;\n\n const newEnvironments = [...environments];\n newEnvironments[selectedEnvironmentListIndex] = {\n ...newEnvironments[selectedEnvironmentListIndex],\n areas: newDeploymentAreas,\n };\n\n // Check if location is a new location and is not already added to the existinglocations as a new location\n const addNewLocation: boolean =\n deploymentArea.locationId === null &&\n !!!existingLocations.find(\n (loc) => loc.id === null && loc.name === deploymentArea.location\n );\n\n editEnvironments(\n [...newEnvironments],\n addNewLocation\n ? [\n ...existingLocations,\n { id: deploymentArea.locationId, name: deploymentArea.location },\n ]\n : undefined\n );\n\n setSelectedEnvironment(newEnvironments[selectedEnvironmentListIndex]);\n }\n };\n\n const handleDeleteDeploymentArea = (\n deploymentArea: CustomerEnvironmentDeploymentArea\n ) => {\n if (\n selectedEnvironment !== undefined &&\n selectedEnvironmentListIndex !== undefined\n ) {\n const newDeploymentAreas: CustomerEnvironmentDeploymentArea[] = [\n ...selectedEnvironment.areas,\n ];\n\n const index = newDeploymentAreas.indexOf(deploymentArea);\n newDeploymentAreas.splice(index, 1);\n\n const newEnvironments = [...environments];\n newEnvironments[selectedEnvironmentListIndex] = {\n ...newEnvironments[selectedEnvironmentListIndex],\n areas: newDeploymentAreas,\n };\n\n editEnvironments([...newEnvironments]);\n\n setSelectedEnvironment(newEnvironments[selectedEnvironmentListIndex]);\n }\n };\n\n const renderDeploymentAreas = selectedEnvironment !== undefined && (\n \n \n \n \n Deployment Areas for environment \"{selectedEnvironment.name}\"\n \n setShowDeploymentAreaModal(true)}\n extraStyling={css`\n top: -0.5rem;\n `}\n >\n Add\n \n \n\n {}}\n extraStyling={css`\n margin-bottom: 2.5rem;\n `}\n />\n \n );\n\n const renderCustomerEnvironmentModal = (\n {\n setOpenedEnvironment(undefined);\n setShowEnvironmentModal(false);\n }}\n add={handleAddEnvironment}\n edit={handleEditEnvironment}\n />\n );\n\n const renderDeploymentAreaModal = (\n {\n setOpenedDeploymentArea(undefined);\n setShowDeploymentAreaModal(false);\n }}\n add={handleAddDeploymentArea}\n edit={handleEditDeploymentArea}\n />\n );\n\n return (\n \n \n

\n Environments\n \n *\n \n

\n {\n e.stopPropagation();\n handleAddEnvironmentClick();\n }}\n >\n Add\n \n \n }\n collapsable\n error={environmentsError}\n errorText={emptyEnvironmentsErrorText}\n >\n {}}\n extraStyling={css`\n margin-bottom: 2.5rem;\n `}\n />\n\n {selectedEnvironment !== undefined && renderDeploymentAreas}\n \n\n {showEnvironmentModal && renderCustomerEnvironmentModal}\n {showDeploymentAreaModal && renderDeploymentAreaModal}\n
\n );\n};\n","import Card from \"components/common/Card\";\nimport { Switch } from \"components/common/Switch\";\nimport TextInput from \"components/common/TextInput\";\nimport { CustomerOptions as CustomerOptionsType } from \"model/Customer\";\nimport React, { FunctionComponent, useState } from \"react\";\nimport styled, { css } from \"styled-components\";\nimport { $textLight, Button, smallText } from \"styles/common\";\n\ninterface Props {\n options: CustomerOptionsType;\n optionsError: boolean;\n setOptionsError(set: boolean): void;\n editOptions(options: CustomerOptionsType): void;\n}\n\nconst Row = styled.div`\n display: flex;\n flex-direction: row;\n gap: 1rem;\n align-items: center;\n`;\nconst urlPrefixes: string[] = [\"https\", \"http\"];\n\nconst InputContainer = styled.div<{ noMargin?: boolean }>`\n ${(props) =>\n props.noMargin\n ? css``\n : css`\n margin-bottom: 1rem;\n `}\n`;\n\nconst DevelopmentBacklogUrl = styled.div`\n margin: 0 0 2rem 3rem;\n`;\n\nconst UrlPrefixSelect = styled.select`\n ${smallText}\n display: block;\n height: 1.5rem;\n line-height: 1.5rem;\n background-color: transparent;\n background-clip: padding-box;\n border: none;\n box-shadow: none;\n box-sizing: border-box;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n\n &:focus {\n outline: 0;\n }\n\n padding-right: 1.25rem;\n font-weight: 600;\n color: ${$textLight};\n\n -webkit-appearance: none;\n -moz-appearance: none;\n\n background-image: linear-gradient(45deg, transparent 50%, ${$textLight} 50%),\n linear-gradient(135deg, ${$textLight} 50%, transparent 50%);\n background-position: calc(100% - 5px) calc(0.75em + 1px),\n calc(100%) calc(0.75em + 1px), calc(100% - 2.5em) 0.4em;\n background-size: 5px 5px, 5px 5px, 1px 1.5em;\n background-repeat: no-repeat;\n`;\n\nconst removePrefixFromUrl = (url: string) => {\n if (url) {\n urlPrefixes.forEach((urlPrefix) => {\n url = url.replace(`${urlPrefix}://`, \"\");\n });\n }\n return url;\n};\n\nconst getPrefixFromUrl = (url: string): string | undefined => {\n let prefix: string | undefined = undefined;\n\n if (url) {\n urlPrefixes.forEach((urlPrefix) => {\n if (!prefix && url.includes(urlPrefix)) {\n prefix = urlPrefix;\n return;\n }\n });\n }\n\n return prefix;\n};\n\nexport const emptyDevelopmentBacklogUrlText =\n \"Please fill in a backlog url when this option is enabled\";\n\nexport const CustomerOptions: FunctionComponent = ({\n options,\n optionsError,\n setOptionsError,\n editOptions,\n}) => {\n const [developmentBacklogUrlPrefix, setDevelopmentBacklogUrlPrefix] =\n useState(\n (options.developmentBacklogUrl &&\n getPrefixFromUrl(options.developmentBacklogUrl)) ||\n urlPrefixes[0]\n );\n\n return (\n Options

} collapsable>\n {\n editOptions({ ...options, hasBacklogUrl: !options.hasBacklogUrl });\n }}\n extraStyling={css`\n margin-bottom: 1rem;\n `}\n />\n\n \n \n {\n setDevelopmentBacklogUrlPrefix(e.target.value);\n\n options.developmentBacklogUrl &&\n editOptions({\n ...options,\n developmentBacklogUrl: `${\n e.target.value\n }://${removePrefixFromUrl(\n options.developmentBacklogUrl\n )}`,\n });\n }}\n >\n {urlPrefixes.map((urlPrefix, index) => (\n \n ))}\n \n }\n inputActions={\n \n {\n let input = document.querySelector(\n \"div.development-backlog-url-input input\"\n );\n input && //@ts-ignore\n (await navigator.clipboard.writeText(input.value));\n }}\n >\n Copy\n \n {\n options.developmentBacklogUrl &&\n window.open(options.developmentBacklogUrl, \"_blank\");\n }}\n >\n Test\n \n \n }\n onValueChange={(urlValue) => {\n setOptionsError(false);\n\n editOptions({\n ...options,\n developmentBacklogUrl:\n urlValue === \"\"\n ? null\n : `${developmentBacklogUrlPrefix}://${urlValue}`,\n });\n }}\n />\n \n \n\n {\n editOptions({\n ...options,\n allowEscalationManagement: !options.allowEscalationManagement,\n });\n }}\n extraStyling={css`\n margin-bottom: 1rem;\n `}\n />\n\n {\n editOptions({\n ...options,\n allowTicketManagement: !options.allowTicketManagement,\n });\n }}\n extraStyling={css`\n margin-bottom: 1rem;\n `}\n />\n\n {\n editOptions({ ...options, showReports: !options.showReports });\n }}\n extraStyling={css`\n margin-bottom: 1rem;\n `}\n />\n\n {\n editOptions({ ...options, showUsage: !options.showUsage });\n }}\n extraStyling={css`\n margin-bottom: 1rem;\n `}\n />\n
\n );\n};\n","import { CrudModal } from \"components/common/CrudModal\";\nimport TextInput from \"components/common/TextInput\";\nimport { CustomerPriceTierBase } from \"model/Customer\";\nimport React, { FunctionComponent, useState } from \"react\";\nimport styled, { css } from \"styled-components\";\nimport { $statusFail, Text } from \"styles/common\";\n\ninterface Props {\n priceTiers: CustomerPriceTierBase[];\n close(): void;\n edit(priceTiers: CustomerPriceTierBase[]): void;\n}\n\ninterface PriceTierProps {\n priceTier: CustomerPriceTierBase;\n isFirstTier: boolean;\n changePriceTier(priceTier: CustomerPriceTierBase): void;\n calculatePriceTierValues(): void;\n}\n\nconst Container = styled.div``;\n\nconst Error = styled(Text)`\n font-size: 0.8rem;\n margin: -0.5rem 0 0.75rem 0;\n`;\n\nconst TierContainer = styled.div`\n display: flex;\n flex-dirction: row;\n gap: 1rem;\n align-items: center;\n gap: 1.5rem;\n margin-bottom: 1.5rem;\n`;\n\nconst TierTitle = styled(Text)`\n margin-bottom: 0.5rem;\n width: 10rem;\n`;\n\nconst FromContainer = styled.div`\n width: 8rem;\n`;\n\nconst UntilContainer = styled.div`\n width: 8rem;\n`;\n\nexport const emptyErrorText = \"Please fill in all values\";\nexport const mainErrorText =\n \"The ranges of different tiers may not overlap and have to be ascending\";\n\nconst PriceTier: FunctionComponent = ({\n priceTier,\n isFirstTier,\n changePriceTier,\n calculatePriceTierValues,\n}) => {\n const [emptyError, setEmptyError] = useState(false);\n\n return (\n \n \n {priceTier.name}\n \n\n \n {\n setEmptyError(value === \"\");\n\n const newPriceTier = {\n ...priceTier,\n from: parseInt(value),\n };\n\n changePriceTier(newPriceTier);\n }}\n onBlur={(value) => {\n value !== \"\" && calculatePriceTierValues();\n }}\n extraStyling={css`\n margin: 0;\n `}\n />\n \n\n \n {}}\n onBlur={() => {}}\n extraStyling={css`\n margin: 0;\n `}\n />\n \n \n );\n};\n\nexport const CustomerPriceTiersModal: FunctionComponent = ({\n priceTiers,\n close,\n edit,\n}) => {\n const [editedPriceTiers, setEditedPriceTiers] =\n useState(priceTiers);\n\n const [mainError, setMainError] = useState(false);\n\n const checkFilledIn = () => {\n let empty = false;\n\n editedPriceTiers.forEach((tier, index) => {\n const isFirst = index === 0;\n const isLast = index === editedPriceTiers.length - 1;\n\n if (!isFirst && isNaN(tier.from)) {\n empty = true;\n }\n if (!isLast && tier.until !== null && isNaN(tier.until)) {\n empty = true;\n }\n });\n\n return !empty;\n };\n\n const checkValidRanges = () => {\n let error = false;\n\n editedPriceTiers.forEach((tier, index) => {\n const isFirst = index === 0;\n\n // Check if tier overlaps with previous tier\n if (!isFirst && tier.from <= editedPriceTiers[index - 1].from + 1) {\n error = true;\n }\n });\n\n return !error;\n };\n\n return (\n \n \n \n Tier\n \n \n \n From\n \n \n \n \n Until\n \n \n \n\n {editedPriceTiers.map((tier, index) => {\n return (\n {\n setMainError(false);\n\n editedPriceTiers[index] = editedTier;\n setEditedPriceTiers(editedPriceTiers);\n }}\n calculatePriceTierValues={() => {\n setEditedPriceTiers(\n editedPriceTiers.map((tier, tierIndex) => {\n if (tierIndex === index - 1) {\n let newUntilValue = editedPriceTiers[index].from - 1;\n if (newUntilValue <= tier.from) {\n newUntilValue = newUntilValue + 1;\n }\n\n return {\n ...tier,\n until: newUntilValue,\n };\n } else return tier;\n })\n );\n }}\n />\n );\n })}\n\n {mainError && (\n \n {mainErrorText}\n \n )}\n \n }\n cancel={() => {\n close();\n }}\n action={() => {\n const filledIn = checkFilledIn();\n const validRanges = checkValidRanges();\n\n if (filledIn && validRanges) {\n edit(editedPriceTiers);\n close();\n } else {\n !validRanges && setMainError(true);\n }\n }}\n />\n );\n};\n","import Card from \"components/common/Card\";\nimport { List } from \"components/common/List\";\nimport { Switch } from \"components/common/Switch\";\nimport { CustomerPriceTiersModal } from \"components/Customers/CustomerCrud/CustomerPriceTiersModal\";\nimport { CustomerPriceTier, CustomerPriceTierBase } from \"model/Customer\";\nimport React, { FunctionComponent, useState } from \"react\";\nimport styled, { css } from \"styled-components\";\nimport { Text, Button } from \"styles/common\";\n\ninterface Props {\n priceTiers: CustomerPriceTierBase[] | null;\n defaultPriceTiers: CustomerPriceTier[];\n editPriceTiers(priceTiers: CustomerPriceTierBase[] | null): void;\n}\n\nconst Container = styled.div`\n flex: 1;\n`;\n\nconst SwitchContainer = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n`;\n\nconst priceTieringHeaders = [\"Tier\", \"From\", \"Until\"];\n\nconst getCustomerPriceTierCells = (priceTiers: CustomerPriceTierBase[]) =>\n priceTiers.map((priceTier: CustomerPriceTierBase) => {\n return {\n cells: [\n {priceTier.name},\n {priceTier.from},\n {priceTier.until !== null ? priceTier.until : \"-\"},\n ],\n };\n });\n\nexport const CustomerPriceTiering: FunctionComponent = ({\n priceTiers,\n defaultPriceTiers,\n editPriceTiers,\n}) => {\n const [showPriceTiersModal, setShowPriceTiersModal] = useState(false);\n const handleChangeCustomPriceTierRanges = (value: boolean) => {\n editPriceTiers(\n value\n ? // Remove id from tiers (when added to DB the id's get created there)\n defaultPriceTiers.map((tier) => ({\n name: tier.name,\n from: tier.from,\n until: tier.until,\n }))\n : null\n );\n };\n\n const handleEditPriceTierRangesClick = () => {\n setShowPriceTiersModal(true);\n };\n\n const handleEditPriceTierRanges = (tiers: CustomerPriceTier[]) => {\n editPriceTiers(tiers);\n };\n\n const renderPriceTiersModal = (\n setShowPriceTiersModal(false)}\n edit={handleEditPriceTierRanges}\n />\n );\n\n return (\n \n Price tiering

}\n extraStyling={css`\n height: 100%;\n `}\n >\n \n \n\n {priceTiers !== undefined && (\n \n Edit ranges\n \n )}\n \n\n ({\n name: tier.name,\n from: tier.from,\n until: tier.until,\n }))\n )}\n customColumnWidths={[4, 2, 2, 1]}\n smallEmpty\n hover\n noDataText=\"There are no price tiers defined yet.\"\n retryDataLoading={() => {}}\n extraStyling={css`\n margin-bottom: 1rem;\n `}\n />\n \n\n {showPriceTiersModal && renderPriceTiersModal}\n
\n );\n};\n","import { CrudModal } from \"components/common/CrudModal\";\nimport TextInput from \"components/common/TextInput\";\nimport { CustomerWorkOrder } from \"model/Customer\";\nimport React, { FunctionComponent, useState } from \"react\";\nimport styled, { css } from \"styled-components\";\n\ninterface Props {\n close(): void;\n add(workOrder: CustomerWorkOrder): void;\n}\n\nconst Container = styled.div``;\n\nconst InputContainer = styled.div`\n margin-bottom: 1rem;\n`;\n\nexport const emptyWorkOrderError = \"Please fill in a workorder\";\nexport const emptyInfoError = \"Please fill in info\";\n\nexport const CustomerWorkOrderModal: FunctionComponent = ({\n close,\n add,\n}) => {\n const [workOrder, setWorkOrder] = useState({\n id: 0,\n workOrder: \"\",\n info: \"\",\n });\n\n const [workOrderError, setWorkOrderError] = useState(false);\n const [infoError, setInfoError] = useState(false);\n\n return (\n \n \n {\n setWorkOrderError(false);\n setWorkOrder({ ...workOrder, workOrder: value });\n }}\n />\n \n\n \n {\n setInfoError(false);\n setWorkOrder({ ...workOrder, info: value });\n }}\n />\n \n \n }\n cancel={() => {\n close();\n }}\n action={() => {\n const emptyWorkOrder = workOrder.workOrder === \"\";\n const emptyInfo = workOrder.info === \"\";\n\n if (emptyWorkOrder) {\n setWorkOrderError(true);\n }\n\n if (emptyInfo) {\n setInfoError(true);\n }\n\n if (!emptyWorkOrder && !emptyInfo) {\n add(workOrder);\n close();\n }\n }}\n extraStyling={css`\n min-width: 20rem;\n `}\n />\n );\n};\n","import Card from \"components/common/Card\";\nimport { List } from \"components/common/List\";\nimport { DeleteButton } from \"components/common/List/common\";\nimport { Switch } from \"components/common/Switch\";\nimport { CustomerWorkOrderModal } from \"components/Customers/CustomerCrud/CustomerWorkOrderModal\";\nimport { CustomerWorkOrder } from \"model/Customer\";\nimport React, { FunctionComponent, useState } from \"react\";\nimport styled, { css } from \"styled-components\";\nimport { Text, Button } from \"styles/common\";\n\ninterface Props {\n allowContactChasing: boolean;\n workOrders: CustomerWorkOrder[];\n workOrdersError: boolean;\n editSupport(\n allowContactChasing: boolean,\n workOrders: CustomerWorkOrder[]\n ): void;\n setWorkOrdersError(set: boolean): void;\n}\n\nconst Container = styled.div`\n flex: 1;\n`;\n\nconst WorkOrdersTitle = styled.div`\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 0.5rem;\n`;\n\nexport const emptyWorkOrdersErrorText =\n \"Please add at least one workorder when chasing is enabled\";\n\nconst getCustomerWorkOrderCells = (\n workOrders: CustomerWorkOrder[],\n deleteWorkOrder: (workOrderIndex: number) => void\n) =>\n workOrders.map((workOrder: CustomerWorkOrder, index: number) => {\n return {\n cells: [\n {workOrder.workOrder},\n {workOrder.info},\n {\n deleteWorkOrder(index);\n }}\n />,\n ],\n };\n });\n\nexport const CustomerSupport: FunctionComponent = ({\n allowContactChasing,\n workOrders,\n workOrdersError,\n editSupport,\n setWorkOrdersError,\n}) => {\n const [showWorkOrderModal, setShowWorkOrderModal] = useState(false);\n\n const handleChangeAllowContactChasing = () => {\n setWorkOrdersError(false);\n editSupport(!allowContactChasing, workOrders);\n };\n\n const handleAddWorkOrderClick = () => {\n setShowWorkOrderModal(true);\n };\n\n const handleAddWorkOrder = (workOrder: CustomerWorkOrder) => {\n setWorkOrdersError(false);\n editSupport(allowContactChasing, [...workOrders, workOrder]);\n };\n\n const handleDeleteWorkOrder = (workOrderIndex: number) => {\n editSupport(\n allowContactChasing,\n workOrders.filter((wo, i) => i !== workOrderIndex)\n );\n };\n\n const renderWorkOrderModal = (\n setShowWorkOrderModal(false)}\n add={handleAddWorkOrder}\n />\n );\n\n return (\n \n Support

}\n error={workOrdersError}\n errorText={emptyWorkOrdersErrorText}\n extraStyling={css`\n height: 100%;\n `}\n >\n \n Contact chasing\n \n\n \n\n \n \n Workorders\n \n\n \n Add workorder\n \n \n\n {}}\n extraStyling={css`\n margin-bottom: 1rem;\n `}\n />\n \n\n {showWorkOrderModal && renderWorkOrderModal}\n
\n );\n};\n","import Card, { CardRowContainer } from \"components/common/Card\";\nimport { Modal, ModalColorType, ModalType } from \"components/common/Modal\";\nimport TextInput from \"components/common/TextInput\";\nimport {\n Customer,\n CustomerDetailMetaData,\n CustomerLocation,\n CustomerOptions as CustomerOptionsType,\n CustomerPriceTierBase,\n CustomerWorkOrder,\n} from \"model/Customer\";\nimport { CustomerEnvironment } from \"model/Environment\";\nimport React, { FunctionComponent, useState } from \"react\";\nimport styled, { css } from \"styled-components\";\nimport { $statusFail, Button, $darkRed, $textDark } from \"styles/common\";\nimport { CustomerEnvironments } from \"./CustomerEnvironments\";\nimport { CustomerOptions } from \"./CustomerOptions\";\nimport { CustomerPriceTiering } from \"./CustomerPriceTiering\";\nimport { CustomerSupport } from \"./CustomerSupport\";\n\ninterface Props {\n customerDetailMetaData: CustomerDetailMetaData;\n originalCustomer?: Customer;\n deleteAccess: boolean;\n cancel(): void;\n addCustomer(customer: Customer): void;\n editCustomer(customer: Customer): void;\n deleteCustomer(customerId: number): void;\n setEdited(): void;\n}\n\nconst Container = styled.div``;\n\nconst HeaderGroup = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 1rem;\n`;\n\nconst InputContainer = styled.div<{ noMargin?: boolean }>`\n ${(props) =>\n props.noMargin\n ? css``\n : css`\n margin-bottom: 1rem;\n `}\n`;\n\nexport const emptyNameErrorText = \"Please fill in a name.\";\n\nexport const CustomerCrud: FunctionComponent = ({\n customerDetailMetaData,\n originalCustomer,\n deleteAccess,\n cancel,\n addCustomer,\n editCustomer,\n deleteCustomer,\n setEdited,\n}) => {\n const [customer, setCustomer] = useState(\n originalCustomer === undefined\n ? ({\n id: 0,\n name: \"\",\n environments: [],\n locations: [],\n options: {\n hasBacklogUrl: false,\n developmentBacklogUrl: null,\n allowEscalationManagement: false,\n allowTicketManagement: false,\n showReports: false,\n showUsage: false,\n },\n priceTiers: null,\n allowContactChasing: false,\n workOrders: [],\n } as Customer)\n : originalCustomer\n );\n\n const [editedCustomer, setEditedCustomer] = useState(false);\n\n const [showDeleteModal, setShowDeleteModal] = useState(false);\n\n const [nameError, setNameError] = useState(false);\n const [environmentsError, setEnvironmentsError] = useState(false);\n const [optionsError, setOptionsError] = useState(false);\n const [workOrdersError, setWorkOrdersError] = useState(false);\n\n const handleSaveCustomer = () => {\n const emptyName = customer.name === \"\";\n if (emptyName) {\n setNameError(true);\n }\n\n const emptyEnvironments = customer.environments.length === 0;\n if (emptyEnvironments) {\n setEnvironmentsError(true);\n }\n\n const emptyDevelopmentBacklogUrl =\n customer.options.hasBacklogUrl &&\n customer.options.developmentBacklogUrl === null;\n if (emptyDevelopmentBacklogUrl) {\n setOptionsError(true);\n }\n\n let emptyWorkOrders =\n customer.workOrders.length === 0 && customer.allowContactChasing;\n if (emptyWorkOrders) {\n setWorkOrdersError(true);\n }\n\n if (\n !emptyName &&\n !emptyEnvironments &&\n !emptyDevelopmentBacklogUrl &&\n !emptyWorkOrders\n ) {\n originalCustomer ? editCustomer(customer) : addCustomer(customer);\n }\n };\n\n const handleDeleteCustomerClick = () =>\n deleteAccess && setShowDeleteModal(true);\n\n const handleDeleteCustomer = () => {\n deleteAccess && deleteCustomer(customer.id);\n };\n\n const renderCustomerDeleteModal = (\n {\n setShowDeleteModal(false);\n handleDeleteCustomer();\n // actionUser && handleDelete(actionUser.id);\n }}\n cancel={() => {\n // setActionUser(undefined);\n setShowDeleteModal(false);\n }}\n />\n );\n\n const renderCustomerHeader = (\n \n \n {\n setNameError(false);\n\n if (!editedCustomer) {\n setEditedCustomer(true);\n setEdited();\n }\n\n setCustomer({ ...customer, name: value });\n }}\n extraLabelStyling={css`\n text-transform: uppercase;\n color: ${$textDark};\n `}\n />\n \n\n \n {!!!originalCustomer && (\n {\n cancel();\n }}\n >\n Cancel\n \n )}\n\n \n {originalCustomer ? \"Save changes\" : \"Create customer\"}\n \n\n {!!originalCustomer && (\n {\n cancel();\n }}\n >\n {editedCustomer ? \"Discard changes\" : \"Cancel\"}\n \n )}\n\n {deleteAccess && originalCustomer && (\n \n Delete customer\n \n )}\n \n \n );\n\n return (\n \n {renderCustomerHeader}\n\n {\n if (!editedCustomer) {\n setEditedCustomer(true);\n setEdited();\n }\n\n setCustomer({\n ...customer,\n environments: environments,\n locations: editedLocations ? editedLocations : customer.locations,\n });\n }}\n />\n\n {\n if (!editedCustomer) {\n setEditedCustomer(true);\n setEdited();\n }\n\n setCustomer({ ...customer, options: options });\n }}\n />\n\n \n {\n if (!editedCustomer) {\n setEditedCustomer(true);\n setEdited();\n }\n\n setCustomer({\n ...customer,\n priceTiers: priceTiers,\n });\n }}\n />\n\n {\n if (!editedCustomer) {\n setEditedCustomer(true);\n setEdited();\n }\n\n setCustomer({\n ...customer,\n allowContactChasing: allowContactChasing,\n workOrders: workOrders,\n });\n }}\n workOrdersError={workOrdersError}\n setWorkOrdersError={(set) => setWorkOrdersError(set)}\n />\n \n\n {showDeleteModal && renderCustomerDeleteModal}\n \n );\n};\n","import { inject, observer } from \"mobx-react\";\nimport React, { FunctionComponent, useEffect, useState } from \"react\";\nimport { Prompt } from \"react-router\";\nimport { Route } from \"model/Navigation\";\nimport CustomerManagementStore from \"stores/CustomerManagementStore\";\nimport Card from \"components/common/Card\";\nimport { CustomersList } from \"components/Customers/CustomersList\";\nimport { Customer, CustomerDetailMetaData } from \"model/Customer\";\nimport { CustomerCrud } from \"components/Customers/CustomerCrud\";\nimport AuthenticationStore from \"stores/AuthenticationStore\";\nimport { PermissionArea, PermissionType } from \"model/Claim\";\nimport { NoAccessModal } from \"components/common/Modal\";\n\ninterface Props {\n customerManagementStore: CustomerManagementStore;\n authenticationStore: AuthenticationStore;\n}\n\nconst CustomerManagement: FunctionComponent = ({\n customerManagementStore,\n authenticationStore,\n}) => {\n const [dataLoad, setDataLoad] = useState(false);\n\n const accessViewCustomer = authenticationStore.userHasPermission(\n PermissionArea.Customer,\n PermissionType.View\n );\n\n const accessEditCustomer = authenticationStore.userHasPermission(\n PermissionArea.Customer,\n PermissionType.Edit\n );\n\n const accessDeleteCustomer = authenticationStore.userHasPermission(\n PermissionArea.Customer,\n PermissionType.Delete\n );\n\n const [selectedCustomerId, setSelectedCustomerId] = useState<\n number | undefined\n >(undefined);\n\n const [selectedCustomerDetail, setSelectedCustomerDetail] = useState<\n Customer | undefined\n >(undefined);\n\n const [customerDetailMetaData, setCustomerDetailMetaData] = useState<\n CustomerDetailMetaData | undefined\n >(undefined);\n\n const [editedCustomer, setEditedCustomer] = useState(false);\n\n useEffect(() => {\n accessViewCustomer &&\n customerManagementStore.getCustomers().finally(() => {\n setDataLoad(true);\n });\n }, [accessViewCustomer, customerManagementStore]);\n\n const handleDataReload = () => {\n accessViewCustomer && customerManagementStore.getCustomers();\n };\n\n const handleOpenCustomerCrud = (customerId?: number) => {\n if (accessEditCustomer) {\n customerManagementStore.getCustomerDetailMetaData().then((metaData) => {\n metaData && setCustomerDetailMetaData(metaData);\n\n // Edit mode\n if (customerId) {\n customerManagementStore\n .getCustomerDetail(customerId)\n .then((customer) => {\n customer && setSelectedCustomerDetail(customer);\n });\n }\n });\n }\n };\n\n const resetCrud = () => {\n setCustomerDetailMetaData(undefined);\n setSelectedCustomerDetail(undefined);\n setSelectedCustomerId(undefined);\n };\n\n return (\n <>\n {\n if (!location.pathname.startsWith(Route.CustomerManagement)) {\n if (editedCustomer) {\n return \"Are you sure you want to leave this page? You have unsaved changes.\";\n } else {\n // Reset data when leaving page\n customerManagementStore.reset();\n return true;\n }\n }\n\n return true;\n }}\n />\n {customerDetailMetaData &&\n (selectedCustomerId !== undefined ? !!selectedCustomerDetail : true) &&\n accessViewCustomer &&\n accessEditCustomer ? (\n {\n resetCrud();\n }}\n addCustomer={(customer: Customer) => {\n customerManagementStore.addCustomer(customer).then((success) => {\n if (success) {\n resetCrud();\n }\n });\n }}\n editCustomer={(customer: Customer) => {\n customerManagementStore.editCustomer(customer).then((success) => {\n if (success) {\n resetCrud();\n\n authenticationStore.getUserPermissionsInfo();\n }\n });\n }}\n deleteCustomer={(customerId: number) => {\n customerManagementStore\n .deleteCustomer(customerId)\n .then((success) => {\n if (success) {\n resetCrud();\n }\n });\n }}\n setEdited={() => setEditedCustomer(true)}\n />\n ) : (\n \n {!accessViewCustomer && }\n\n {\n handleOpenCustomerCrud();\n }}\n onEdit={(customer) => {\n setSelectedCustomerId(customer.id);\n handleOpenCustomerCrud(customer.id);\n }}\n onCustomerSwitch={(customerId: number) => {\n if (authenticationStore.userPermissionsInfo) {\n const subscription =\n authenticationStore.userPermissionsInfo.subscriptions.find(\n (sub) => sub.customerId === customerId\n );\n subscription &&\n authenticationStore.switchToCustomer(\n subscription.subscriptionId\n );\n }\n }}\n retryDataLoading={handleDataReload}\n />\n \n )}\n \n );\n};\n\nexport default inject(\n \"customerManagementStore\",\n \"authenticationStore\"\n)(\n observer(\n CustomerManagement as FunctionComponent<\n Omit\n >\n )\n);\n","import { ExecutionSuccessStatus } from \"./Status\";\n\nexport class ExecutionSearchFilter {\n constructor(filterString: string | undefined, successStatusFilter: ExecutionSuccessStatus | undefined) {\n this.filterString = filterString;\n this.successStatusFilter = successStatusFilter;\n }\n\n filterString?: string | undefined;\n successStatusFilter?: ExecutionSuccessStatus | undefined;\n\n hasFilterValues(): boolean {\n return this.filterString !== undefined && this.filterString !== \"\" || this.successStatusFilter !== undefined;\n }\n}","import { List } from \"components/common/List\";\nimport { format } from \"date-fns\";\nimport { Execution } from \"model/Execution\";\nimport { ExecutionDetails } from \"model/ExecutionDetails\";\nimport { executionSuccessStatuses } from \"model/Status\";\nimport React, { Fragment } from \"react\";\nimport styled from \"styled-components\";\nimport { semiBoldText, StatusCircle } from \"styles/common\";\nimport { getSuccessStatusColor } from \"utils/Status\";\n\ninterface Props {\n itemsToRender: Execution[] | undefined;\n access: boolean;\n loading: boolean;\n searchMode: boolean;\n onItemClick(item: Execution): void;\n retryDataLoading(): void;\n retryExecutionDetailsDataLoading?(transactionId: number): void\n}\n\nconst Percentage = styled.span`\n margin-left: 0.5rem;\n ${semiBoldText}\n`;\n\nconst headers = [\n \"Execution date\",\n \"Logical Group\",\n \"Entrypoint\",\n \"Status\",\n];\n\nconst executionDetailsHeaders = [\n \"Name\",\n \"Resource ID\",\n \"Execution date\",\n \"Execution duration\",\n \"Status\",\n]\n\nexport const ListItems = ({\n itemsToRender,\n searchMode,\n access,\n loading,\n onItemClick,\n retryDataLoading,\n retryExecutionDetailsDataLoading\n}: Props) => {\n const handleItemClick = (rowIndex: number) => {\n itemsToRender && onItemClick(itemsToRender[rowIndex]);\n };\n\n const renderListCells = (list: Execution[]) =>\n list.map((item: Execution) => {\n return {\n cells: [\n format(Date.parse(item.firstTimestamp.toString()), \"yyyy-MM-dd HH:mm:ss\"),\n item.logicalGroupName,\n item.name,\n \n ],\n details: item.details ?\n 0) ?\n executionDetailsHeaders : []\n }\n colorIndicator\n customColumnWidths={[12, 12, 4, 4, 1]}\n alignments={[undefined, undefined, undefined, undefined,\"center\"]}\n // cellPadding={[\"0\", \"0\", \"0\", \"0\", \"0\"]}\n noDataText=\"\"\n headerBackground={true}\n access={access}\n retryDataLoading={() => { if (retryExecutionDetailsDataLoading) { retryExecutionDetailsDataLoading(item.transactionId); } }}\n /> : null,\n color: executionSuccessStatuses[item.successStatus].color,\n };\n });\n\n const renderExecutionDetailsListCells = (list: ExecutionDetails[] | undefined) =>\n list?.map((item: ExecutionDetails) => {\n return {\n cells: [\n item.name,\n item.resourceId,\n format(Date.parse(item.executionTimestamp.toString()), \"yyyy-MM-dd HH:mm:ss\"),\n item.executionDuration,\n \n ],\n color: executionSuccessStatuses[item.successStatus].color,\n };\n });\n\n return (\n \n 0) ?\n headers : []\n }\n data={itemsToRender ? renderListCells(itemsToRender) : undefined}\n hover\n colorIndicator\n customColumnWidths={[0.4, 0.8, 1.7, 0.1]}\n alignments={[undefined, undefined, undefined, \"center\"]}\n noDataText=\"You don't have any executions for this environment yet.\"\n access={access}\n loading={loading}\n searchMode={searchMode}\n fullWidth={true}\n onRowClick={handleItemClick}\n retryDataLoading={retryDataLoading}\n hasDetails\n />\n \n );\n};\n","import Card from \"components/common/Card\";\nimport { NoAccessModal } from \"components/common/Modal\";\nimport Executions from \"components/Integrations/Executions\";\nimport IntegrationsFirstLevelDiagram from \"components/Integrations/IntegrationsFirstLevelDiagram\";\nimport IntegrationsHeatMap from \"components/Integrations/IntegrationsHeatMap\";\nimport { inject, observer } from \"mobx-react\";\nimport { PermissionArea, PermissionType } from \"model/Claim\";\nimport { Route } from \"model/Navigation\";\nimport { globalTimeFrames } from \"model/Time\";\nimport React, { FunctionComponent } from \"react\";\nimport { Prompt } from \"react-router\";\nimport AuthenticationStore from \"stores/AuthenticationStore\";\nimport ExecutionStore from \"stores/ExecutionStore\";\nimport GeneralStore from \"stores/GeneralStore\";\nimport { Filter, Select, Text } from \"styles/common\";\n\ninterface Props {\n generalStore: GeneralStore;\n executionStore: ExecutionStore;\n authenticationStore: AuthenticationStore;\n}\n\nconst Integrations: FunctionComponent = ({\n generalStore,\n executionStore,\n authenticationStore,\n}) => {\n const accessViewIntegration = authenticationStore.userHasPermission(\n PermissionArea.Execution,\n PermissionType.View\n );\n\n const renderIntegrationsFilter = () => (\n \n \n My integrations on\n \n {\n generalStore.setCurrentEnvironment(parseInt(e.target.value));\n }}\n >\n {generalStore.environments &&\n generalStore.environments.map((environment, index) => (\n \n ))}\n \n \n in the\n \n {generalStore.timeFrame && (\n {\n generalStore.setTimeFrame(parseInt(e.target.value));\n }}\n >\n {globalTimeFrames.map((timeFrame, index) => (\n \n ))}\n \n )}\n \n );\n\n return (\n <>\n {\n if (!location.pathname.startsWith(Route.Executions))\n // Reset data when leaving page\n executionStore.reset();\n\n return true;\n }}\n />\n\n {renderIntegrationsFilter()}\n\n \n {!accessViewIntegration && }\n\n \n \n \n );\n};\n\nexport default inject(\n \"executionStore\",\n \"generalStore\",\n \"authenticationStore\"\n)(\n observer(\n Integrations as FunctionComponent<\n Omit\n >\n )\n);\n","import Page from \"components/common/Page\";\nimport React, { FunctionComponent, useEffect } from \"react\";\nimport { BrowserRouter, Redirect, Route, Switch } from \"react-router-dom\";\nimport { Route as NavigationRoute } from \"model/Navigation\";\n\nimport General from \"screens/General\";\nimport Integrations from \"./screens/Integrations\";\nimport ItOperations from \"screens/ItOperations\";\nimport Applications from \"screens/Applications\";\nimport Usage from \"screens/Usage\";\nimport Reports from \"screens/Reports\";\nimport ContactDetails from \"screens/settings/ContactDetails\";\nimport ContactSchedule from \"screens/settings/ContactSchedule\";\nimport GroupWorkflow from \"screens/settings/GroupWorkflow\";\nimport CustomerManagement from \"screens/CustomerManagement\";\nimport { inject, observer } from \"mobx-react\";\nimport AuthenticationStore from \"stores/AuthenticationStore\";\nimport NavigationStore from \"stores/NavigationStore\";\nimport Executions from \"screens/Executions\";\n\nexport interface Props {\n authenticationStore: AuthenticationStore;\n navigationStore: NavigationStore;\n dataLoaded: boolean;\n}\n\nconst Routes: FunctionComponent = ({\n authenticationStore,\n navigationStore,\n dataLoaded,\n}) => {\n // Set navigation items based on user roles\n useEffect(() => {\n if (\n authenticationStore.userPermissionsInfo &&\n authenticationStore.userPermissionsInfo.permissions.length > 0\n ) {\n navigationStore.setHorizonNavigation(\n authenticationStore.userHasRouteOptionAccess\n );\n navigationStore.setNavigationTabs(\n authenticationStore.userHasRoutePermission,\n authenticationStore.userHasRouteOptionAccess\n );\n }\n }, [\n authenticationStore.userHasRoutePermission,\n authenticationStore.userHasRouteOptionAccess,\n authenticationStore.userPermissionsInfo,\n navigationStore,\n ]);\n\n const redirect = () => {\n if (navigationStore.navigationTabs && navigationStore.redirectionRoute) {\n return ;\n }\n };\n\n const PrivateRoute = ({ ...props }) => (\n {\n const navigationItem = navigationStore.getNavigationItem(props.path);\n\n return navigationItem\n ? authenticationStore.userHasRoutePermission(\n navigationItem.permissionAreas\n ) &&\n authenticationStore.userHasRouteOptionAccess(\n navigationItem.accessOptions\n )\n ? props.children\n : redirect()\n : false;\n }}\n />\n );\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};\n\nexport default inject(\n \"authenticationStore\",\n \"navigationStore\"\n)(\n observer(\n Routes as FunctionComponent<\n Omit\n >\n )\n);\n","import React, { FunctionComponent, useEffect, useState } from \"react\";\r\nimport { Provider } from \"mobx-react\";\r\nimport { MsalAuthenticationTemplate, useMsal } from \"@azure/msal-react\";\r\nimport {\r\n AuthenticationResult,\r\n EventMessage,\r\n EventType,\r\n InteractionType,\r\n} from \"@azure/msal-browser\";\r\nimport stores from \"stores/AllStores\";\r\nimport { RunConfig } from \"utils/Variables\";\r\nimport { GlobalTimeFrame } from \"model/Time\";\r\nimport Loader from \"components/common/Loader\";\r\nimport ApiHandlers from \"utils/ApiHandlers\";\r\nimport Routes from \"Routes\";\r\n\r\ndeclare global {\r\n interface Window {\r\n runConfig: RunConfig;\r\n }\r\n}\r\n\r\nconst AuthenticationError = ({ error }: any) => {\r\n console.error(error)\r\n return

Something went wrong when trying to authenticate.

;\r\n};\r\n\r\nconst AuthenticationLoading = () => {\r\n return ;\r\n};\r\n\r\nexport const App: FunctionComponent = () => {\r\n const [dataLoadInProgress, setDataLoadInProgress] = useState(false);\r\n const [dataLoaded, setDataLoaded] = useState(false);\r\n\r\n const authRequest = {\r\n scopes: [\"openId\", \"profile\"],\r\n };\r\n\r\n const { instance, accounts } = useMsal();\r\n\r\n useEffect(() => {\r\n if (accounts.length > 0 && instance && !instance.getActiveAccount()) {\r\n // Account selection logic is app dependent. Adjust as needed for different use cases.\r\n const accounts = instance.getAllAccounts();\r\n if (accounts.length > 0) {\r\n instance.setActiveAccount(accounts[0]);\r\n }\r\n\r\n instance.addEventCallback((event: EventMessage) => {\r\n if (event.eventType === EventType.LOGIN_SUCCESS && event.payload) {\r\n const payload = event.payload as AuthenticationResult;\r\n const account = payload.account;\r\n instance.setActiveAccount(account);\r\n }\r\n });\r\n\r\n ApiHandlers.setMsalInstance(instance);\r\n }\r\n }, [instance, accounts]);\r\n\r\n useEffect(() => {\r\n if (instance.getActiveAccount() && !dataLoadInProgress && !dataLoaded) {\r\n setDataLoadInProgress(true);\r\n ApiHandlers.setMsalInstance(instance);\r\n stores.authenticationStore.getUserPermissionsInfo();\r\n stores.generalStore.getEnvironments();\r\n stores.generalStore.setTimeFrame(GlobalTimeFrame.Week);\r\n }\r\n }, [instance, accounts, dataLoaded, dataLoadInProgress]);\r\n\r\n useEffect(() => {\r\n if (!dataLoaded && stores.authenticationStore.userPermissionsInfo) {\r\n setDataLoadInProgress(false);\r\n setDataLoaded(true);\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [stores.authenticationStore.userPermissionsInfo, dataLoaded]);\r\n\r\n return (\r\n <>\r\n \r\n {accounts.length > 0 && (\r\n \r\n \r\n \r\n )}\r\n \r\n\r\n {/* \r\n */}\r\n \r\n );\r\n};\r\n\r\nexport default App;\r\n","import { BrowserAuthOptions, Configuration, LogLevel } from \"@azure/msal-browser\";\r\nimport config from \"./config\";\r\n\r\n// Browser check variables\r\n// If you support IE, our recommendation is that you sign-in using Redirect APIs\r\n// If you as a developer are testing using Edge InPrivate mode, please add \"isEdge\" to the if check\r\nconst ua = window.navigator.userAgent;\r\nconst msie = ua.indexOf(\"MSIE \");\r\nconst msie11 = ua.indexOf(\"Trident/\");\r\nconst msedge = ua.indexOf(\"Edge/\");\r\nconst firefox = ua.indexOf(\"Firefox\");\r\nconst isIE = msie > 0 || msie11 > 0;\r\nconst isEdge = msedge > 0;\r\nconst isFirefox = firefox > 0; // Only needed if you need to support the redirect flow in Firefox incognito\r\n\r\n// MSAL configuration\r\nexport class msalConfiguration {\r\n static getMsalConfig(): Configuration {\r\n return {\r\n //@ts-ignore\r\n auth: config.auth as BrowserAuthOptions,\r\n cache: {\r\n storeAuthStateInCookie: isIE || isEdge || isFirefox,\r\n },\r\n system: {\r\n loggerOptions: {\r\n loggerCallback: (level, message, containsPii) => {\r\n //@ts-ignore\r\n if (containsPii || level > (config.msalLogLevel as LogLevel)) {\r\n return;\r\n }\r\n switch (level) {\r\n case LogLevel.Error:\r\n console.error(message);\r\n return;\r\n case LogLevel.Info:\r\n console.info(message);\r\n return;\r\n case LogLevel.Verbose:\r\n console.debug(message);\r\n return;\r\n case LogLevel.Warning:\r\n console.warn(message);\r\n return;\r\n default:\r\n return;\r\n }\r\n },\r\n },\r\n }\r\n };\r\n }\r\n};\r\n","import { Component } from 'react';\r\nimport {load} from \"./config\";\r\n\r\nexport default class ConfigLoader extends Component {\r\n constructor(props){\r\n super(props);\r\n this.state = {isLoaded: false};\r\n }\r\n\r\n\r\n componentDidMount() {\r\n // Once the configuration is loaded set `isLoaded` to true so we know to render our component\r\n load().then(config => this.setState({isLoaded: true, config}));\r\n }\r\n\r\n render() { \r\n // If we haven't yet loaded the config, show either a \"splash\" component provided via a `loading` props or return nothing.\r\n if(!this.state.isLoaded) {\r\n return this.props.loading ? this.props.loading() : null;\r\n }\r\n\r\n // The config is loaded so show the component set on the `ready()` props\r\n return this.props.ready(this.state.config);\r\n }\r\n}","import * as React from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport { MsalProvider } from \"@azure/msal-react\";\r\nimport { PublicClientApplication } from \"@azure/msal-browser\";\r\nimport App from \"./App\";\r\n// import registerServiceWorker from \"./registerServiceWorker\";\r\nimport \"regenerator-runtime/runtime\";\r\nimport \"./styles.css\";\r\nimport { msalConfiguration } from \"msalConfig\";\r\nimport ConfigLoader from \"./configLoader\";\r\n\r\nconsole.log(\"logging test\");\r\nconsole.log(process.env);\r\nconsole.log(process.env.TEST);\r\nconsole.log(process.env.REACT_APP_TEST);\r\n\r\n// Component\r\nconst AppProvider = () => (\r\n \r\n \r\n \r\n \r\n } />\r\n);\r\n\r\nReactDOM.render(, document.getElementById(\"root\"));\r\n\r\n// registerServiceWorker();\r\n"],"sourceRoot":""}