{"version":3,"sources":["redux/authenticationInfos/authenticationInfoActions.ts","redux/oidc/oidcActions.ts","redux/oidc/oidc.ts","redux/yieldHistory/yieldHistoryActions.ts","redux/allocationHistory/allocationHistoryActions.ts","redux/portfolioInformation/portfolioInformationActions.ts","redux/statements/statementsActions.ts","utility/totalCosts.ts","utility/sums.ts","redux/transactions/transactionsActions.ts","redux/yieldPerTimespan/yieldPerTimespanActions.ts","redux/yieldList/yieldListActions.ts","redux/privateEquityCapitalCall/privateEquityCapitalCallActions.ts","redux/distributions/distributionsActions.ts","redux/assetClassParameters/assetClassParametersActions.ts","redux/user/userActions.ts","redux/user/user.ts","redux/summary/summaryActions.ts","redux/assetClassDistribution/assetClassDistributionActions.ts","redux/profitsAndLosses/profitsAndLossesActions.ts","redux/covenants/covenantsActions.ts","redux/report/reportActions.ts","redux/rootReducer.ts","types/YieldHistory.ts","redux/authenticationInfos/authenticationInfo.ts","redux/yieldHistory/yieldHistory.ts","redux/allocationHistory/allocationHistory.ts","redux/portfolioInformation/portfolioInformation.ts","redux/yieldPerTimespan/yieldPerTimespan.ts","redux/yieldList/yieldList.ts","redux/privateEquityCapitalCall/privateEquityCapitalCall.ts","redux/distributions/distributions.ts","redux/transactions/transactions.ts","redux/assetClassParameters/assetClassParameters.ts","redux/statements/statements.ts","redux/summary/summary.ts","redux/assetClassDistribution/assetClassDistribution.ts","redux/profitsAndLosses/profitsAndLosses.ts","redux/covenants/covenants.ts","redux/report/report.ts","redux/configureStore.ts","components/ReportDatePicker.tsx","utility/date.ts","types/AssetClass.ts","utility/numbers.tsx","components/ChartLoader.tsx","components/LineChart.tsx","redux/oidc/oidcFunctions.ts","utility/request.ts","redux/yieldHistory/yieldHistoryFunctions.ts","views/Error/index.tsx","views/Overview/components/YieldHistory.tsx","utility/graphColors.ts","components/AllocationChart.tsx","redux/allocationHistory/allocationHistoryFunctions.ts","views/Overview/components/AllocationHistory.tsx","components/Table.tsx","redux/yieldList/yieldListFunctions.ts","views/Overview/components/YieldList.tsx","redux/yieldPerTimespan/yieldPerTimespanFunctions.ts","views/Overview/components/YieldPerTimespan.tsx","redux/distributions/distributionsFunctions.ts","components/PieChart.tsx","views/Overview/components/Distributions.tsx","redux/summary/summaryFunctions.ts","views/Overview/components/SummaryList.tsx","redux/assetClassDistribution/assetClassDistributionFunctions.ts","utility/textColor.tsx","views/Overview/components/AssetClassDistributionList.tsx","views/Overview/index.tsx","components/BankLogos/Aktia.tsx","components/BankLogos/Alands.tsx","components/BankLogos/Danske.tsx","components/BankLogos/Handelsbanken.tsx","components/BankLogos/Nordea.tsx","components/BankLogos/OmaSP.tsx","components/BankLogos/OP.tsx","components/BankLogos/POP.tsx","components/BankLogos/SaastoPankki.tsx","components/BankLogos/SPankki.tsx","components/BackIcon.tsx","components/BankList.tsx","img/Background.png","components/HeaderLogo.tsx","components/LoginHeader.tsx","views/Error/components/NoCustomership.tsx","components/ForwardIcon.tsx","views/Error/components/TechError.tsx","views/Login.tsx","redux/authenticationInfos/authenticationInfoFunctions.ts","views/Redirect.tsx","components/DownloadIndicator.tsx","utility/files.ts","components/ExportPdf.tsx","components/Footer.tsx","redux/user/userFunctions.ts","components/NavigationTabs.tsx","redux/assetClassParameters/assetClassParametersFunctions.ts","redux/portfolioInformation/portfolioInformationFunctions.ts","redux/covenants/covenantsFunctions.ts","components/MainHeader.tsx","components/HeaderLogoMobile.tsx","components/MainHeaderMobile.tsx","components/PrivateRoute.tsx","App.tsx","components/AssetClassComponents/YieldHistory.tsx","components/AssetClassComponents/AllocationHistory.tsx","components/AssetClassComponents/YieldList.tsx","components/AssetClassComponents/Distributions.tsx","components/AssetClassComponents/SummaryList.tsx","components/AssetClassComponents/YieldPerTimespan.tsx","components/AssetClassComponents/AssetClassDistributionList.tsx","components/KeyValues.tsx","components/PageContainer.tsx","utility/keyValues.ts","views/Equity.tsx","views/Art.tsx","views/Forest.tsx","views/MixedAllocation.tsx","views/Commodity.tsx","views/Derivatives.tsx","views/RealEstate.tsx","views/FixedIncome.tsx","views/PrivateDebt.tsx","views/PrivateEquity.tsx","views/Structured.tsx","utility/convertCase.ts","components/DateRangeSelector.tsx","components/NoTransactions.tsx","components/PortfolioName.tsx","components/ExportExcel.tsx","views/Logs.tsx","redux/transactions/transactionsFunctions.ts","views/Statements.tsx","redux/statements/statementsFunctions.ts","views/ProfitsAndLosses.tsx","redux/profitsAndLosses/profitsAndLossesFunctions.ts","components/BlobTable.tsx","views/Overview/components/PrivateEquityCapitalCalls.tsx","redux/privateEquityCapitalCall/privateEquityCapitalCallFunctions.ts","views/Covenants.tsx","views/Logout.tsx","views/Currency.tsx","views/DirectInvestments.tsx","views/Specialty.tsx","locales/i18n.ts","index.tsx"],"names":["load","createAction","loadSuccess","createCustomAction","type","data","loadFail","error","empty","initialState","contentType","totalCosts","serviceFee","fee","tax","sumForPrice","portfolio","transactionMainType","filteredTransactions","filter","transaction","TransactionMainType","length","map","CleanAmount","reduce","prev","curr","sumForFee","Fee","sumForTax","Tax","sumForTotalCosts","ServiceFee","sumForDirtyAmount","DirtyAmount","purchasesSum","sums","Transactions","TotalCosts","Object","values","some","x","undefined","sellsSum","depositsSum","withdrawsSum","cashSum","dividendsSum","interestsSum","corporateActionsSum","CorporateActionsTotal","InterestsTotal","CashTotal","SellsTotal","DividendsTotal","SubscriptionsTotal","WithdrawsTotal","DepositsTotal","distribution","loadPermissionsSuccess","selectUserPermission","permission","changeReportDate","reportDate","changeStartDate","startDate","moment","utc","subtract","startOf","toISOString","getReportDateSelector","state","user","loadCount","loadCountSuccess","loadCountFail","SortId","userPersistConfig","key","storage","blacklist","rootReducer","combineReducers","authenticationInfo","action","getType","authenticationInfoActions","loading","oidc","oidcActions","yieldHistory","yieldHistoryActions","allocationHistory","allocationHistoryActions","portfolioInformation","portfolioInformationActions","yieldPerTimespan","yieldPerTimespanActions","yieldList","yieldListActions","privateEquityCapitalCall","privateEquityCapitalCallActions","distributions","distributionsActions","transactions","transactiosnActions","d","Sums","assetClassParameters","assetClassParametersActions","persistReducer","userActions","reportControlIdExists","reportControlId","up","ReportControlId","sort","a","b","Name","localeCompare","isBefore","statements","statementsActions","summary","summaryActions","assetClassDistribution","assetClassDistributionActions","profitsAndLosses","profitsAndLossesActions","covenants","covenantsActions","loadingCount","count","countError","report","reportActions","configureStore","middlewares","thunkMiddleware","middlewareEnhancer","applyMiddleware","composedEnhancers","composeWithDevTools","store","createStore","persistor","persistStore","ReportDatePicker","t","useTranslation","dispatch","useDispatch","value","useSelector","minDateString","SalkkuAloitettu","minDate","DatePicker","mask","label","openTo","views","inputFormat","onChange","inputValue","maxDate","renderInput","params","TextField","variant","helperText","InputLabelProps","shrink","React","memo","AssetClass","dateToString","format","dateToMonthAndYear","getCurrentYear","year","asEur","fractionDigits","tableValue","res","Intl","NumberFormat","style","currency","maximumFractionDigits","minimumFractionDigits","replace","split","color","asPercent","Number","toLocaleString","unitDisplay","seperateThousands","countPercent","value1","value2","ChartLoader","props","loginPage","chartMargin","useMediaQuery","width","height","viewBox","fill","xmlns","marginLeft","id","offset","stopOpacity","stopColor","strokeWidth","stroke","strokeLinecap","from","to","attributeName","repeatCount","dur","CustomTooltip","active","payload","className","fontWeight","background","padding","ValueDate","LineChartComponent","index","legendValues","matchesMediaQuery","customerData","Customer","indexData","Index","indexName","Category","mappedData","i","IndexValue","Value","yValues","Boolean","minY","Math","floor","min","maxY","ceil","max","margin","top","right","left","bottom","onMouseLeave","onMouseMove","chartProps","activePayload","vertical","dataKey","tickFormatter","interval","round","domain","allowDataOverflow","allowDecimals","scale","cursor","strokeDasharray","content","position","y","iconType","legendProps","display","justifyContent","flexDirection","flexWrap","flexFlow","listStyle","entry","verticalAlign","marginRight","paddingTop","x1","y1","x2","y2","reverse","renderLegend","name","dot","activeDot","r","alignItems","postToken","code","request","process","Promise","resolve","reject","removeState","globalHeaders","Map","activeRequests","promiseRequest","method","url","headers","blob","activeRequest","get","abort","delete","XMLHttpRequest","set","errorHandler","event","addEventListener","withHeaders","target","headerStringToObject","getAllResponseHeaders","status","open","toUpperCase","responseType","keys","forEach","setRequestHeader","FormData","send","JSON","stringify","concatHeaders","globalHeadersAsObject","getResponseJson","response","parse","responseText","post","postAndReturnResponseJson","headerString","hdr","object","toLowerCase","returnValue","token","getState","AccessToken","Authorization","headersList","globalHeadersList","handleFetchError","ErrorType","apiUrl","YieldHistory","all","yieldHistoryLoading","showIndex","visibleSections","NaytaTuotto","useEffect","loadYieldHistories","Grid","item","md","sm","marginTop","LineChart","graphColors","hexToRgb","hex","opacity","result","exec","rgb","parseInt","g","opacityValue","Month","AllocationChart","groupedObject","toString","categories","includes","push","flattenedData","k","tickformatterAmount","maxValue","unit","formatter","categoriesLength","c","stackId","fillOpacity","paddingRight","paddingBottom","paddingLeft","gridColumn","gridTemplateColumns","fontSize","summaEur","summaPros","p","border","boxSizing","borderRadius","AllocationHistory","allocationHistoryLoading","loadAllocationHistories","marginBottom","Table","columns","hasFooter","footerStyles","subRows","noData","tableColumns","useMemo","Cell","Footer","tableData","accessor","hasSubRows","plugins","useExpanded","tableColumnsData","row","canExpand","getToggleRowExpandedProps","depth","isExpanded","useTable","getSubRows","getTableProps","getTableBodyProps","headerGroups","footerGroups","rows","prepareRow","headerGroup","getHeaderGroupProps","column","textAlign","whiteSpace","minWidth","hideTitle","getHeaderProps","visibility","separator","render","getRowProps","cells","cell","fontFamily","fontStyleFunction","fontStyleOverride","fontStyle","noDataStyles","classString","shadeNulls","isSubRow","getCellProps","group","getFooterGroupProps","getFooterProps","YieldListTable","yieldListLoading","loadYieldList","yieldListFooterItem","find","Salkku","yieldListColumns","Header","Alusta","original","YTD","Kuukausi","overflowY","loadYieldPerTimespans","YieldPerTimespanTable","yieldPerTimespanColumns","loadDistributions","loadDistributionsByAssetClass","assetClass","assetClassString","RADIAN","PI","PieChartComponent","containerRef","useRef","filteredData","otherLabels","slice","pv","cv","firstHalfLabels","secondHalfLabels","ref","innerRadius","outerRadius","paddingAngle","startAngle","endAngle","pieProps","cx","cy","ol","formattedStartAngle","isStraightLine","cos","midAngle","abs","yPosition","sin","textAnchor","dominantBaseline","dy","renderCustomizedLabel","isAnimationActive","labelLine","centerPoint","current","containerWidth","endPoint","renderCustomizedLabelLine","v","borderLeft","Distributions","distribution1","distribution1Loading","distribution2","distribution2Loading","distribution3","distribution3Loading","borderRight","borderBottom","PieChart","SummaryList","loadSummary","summaryIndex","findIndex","summaryBody","summaryFooter","summaryColumns","s","borderTop","Yhteenveto","Paino","MarkkinaArvo","HankintaArvo","Tuottokassavirta","TuottoEur","Tuotto","getValueColor","valueStr","valueInt","sign","AssetClassDistributionList","assetClassDistributionGrouped","Kategoria","assetClassDistributionColumns","total","acd","Alakategoria","Tuotto1kk","Tuotto3kk","TuottoYTD","loadAssetClassDistribution","acb","useStyles","createUseStyles","container","Overview","classes","xs","alignContent","maxWidth","YieldList","YieldPerTimespan","fillRule","clipRule","BackIcon","makeStyles","overflowX","cardContainer","backgroundColor","card","correctBank","Id","Aktia","Alands","Danske","Handelsbanken","Nordea","OmaSP","OP","POP","SaastoPankki","SPankki","BankList","shallowEqual","authenticationInfoLoading","matchesMediaQueryHeight","mobileHeight","onClick","window","location","assign","Url","textTransform","outline","letterSpacing","HeaderLogo","smallLogo","smallLogoWidth","clipPath","LoginHeader","NoCustomership","history","useHistory","ForwardIcon","TechError","Error","errorType","useParams","getCorrectError","Login","useLocation","pathname","backgroundImage","Background","backgroundPosition","backgroundSize","backgroundRepeat","minHeight","rel","href","textDecoration","Redirect","query","queryString","search","makeRequest","DownloadIndicator","preserveAspectRatio","strokeDashoffset","generateFilename","page","portfolioName","endDate","filename","start","Date","end","CustomButton","withStyles","root","Button","ExportPdf","assetClasses","asset","useState","reportLoading","setReportLoading","SignalRContext","useSignalREffect","file","document","createElement","URL","createObjectURL","download","body","appendChild","click","setTimeout","removeChild","revokeObjectURL","downloadFile","b64Data","byteCharacters","atob","byteArrays","byteNumbers","Array","charCodeAt","byteArray","Uint8Array","Blob","b64toBlob","showSubIndex","showCommitments","showProfitAndLoss","showDiary","showBalance","connection","invoke","catch","err","console","log","finally","startLoadReport","NaytaSijoitukset","NaytaSitoumukset","NaytaVoittoTappio","NaytaPaivakirja","NaytaSaldo","loadUserPermissions","CustomTabs","fixed","indicator","scrollButtons","Tabs","CustomTab","theme","typography","fontWeightRegular","selected","Tab","disableRipple","NavigationTabs","navigation","loadVisibleSections","loadAssetClassParameters","assetClassParamaters","hasAssetClass","ap","showCovenants","_event","newValue","Routes","Art","Commodity","Currency","DirectInvestments","Equity","Forest","MixedAllocation","RealEstate","FixedIncome","Derivatives","PrivateEquity","PrivateDebt","Structured","Specialty","Covenants","ProfitsAndLosses","Logs","Statements","loadPorfolioInformation","headerBar","logo","mainInfo","centerItems","justifyItemsStart","justifyItemsEnd","line","whiteColor","MainHeader","loadCovenantsCount","userPermissions","userPermissionsSorted","xl","Select","icon","disableUnderline","inputProps","MenuItem","TuottoAlusta","NaytaESG","NetImpactRatio","Tooltip","title","aria-label","IconButton","strokeLinejoin","rx","ry","HeaderLogoMobile","mask-type","maskUnits","filterUnits","colorInterpolationFilters","floodOpacity","mode","in","in2","stdDeviation","transform","center","MainHeaderMobile","PrivateRoute","Component","component","path","hasPermission","exact","renderProps","loadYieldHistoriesByAssetClass","loadAllocationHistoriesByAssetClass","loadYieldListByAssetClass","loadSummaryByAssetClass","loadYieldPerTimespansByAssetClass","AlaRivi","ParentRiviNumero","Rivinumero","Maara","MuutosProsentti","impactValue","IndustryAverageEsg","loadAssetClassDistributionByAssetClass","KeyValues","marketValue","pageName","PageContainer","keyValuesData","summaryData","Cash","getKeyValuesData","Derivative","camelToSnakeCase","str","letter","DateRangeSelector","maxDateString","startValue","endValue","DateRangePicker","startText","endText","newDateRange","startProps","endProps","InputProps","endAdornment","Box","sx","mx","NoTransactions","PortfolioName","ExportExcel","fileName","objectMaxLength","idx","wscols","l","book","utils","book_new","sheet_add_aoa","sheet","sheet_add_json","origin","skipHeader","book_append_sheet","writeFile","dataToExcelXlsx","transactionsData","transactionsLoading","loadLogs","isExpandedDefault","footerEntries","entries","PortfolioId","ClearingDate","TransactionDate","excelHeaders","excelData","TransactionNumber","InstrumentName","Count","Price","footer","Accordion","defaultExpanded","boxShadow","AccordionSummary","expandIcon","AccordionDetails","statementsData","statementsLoading","loadStatements","portfolioIndex","startBalance","StartBalance","saldoArray","endSaldo","saldo","TotalAmount","newData","statement","statementIndex","Saldo","Withdraw","Deposit","DateOfPayment","Description","profitsAndLossesData","profitsAndLossesLoading","loadProfitsAndLosses","justifySelf","fifoOpenCostSum","FifoOpenCost","dirtyAmountSum","profitLossSum","ProfitLoss","percentSum","instrumentData","Percent","excelSums","tooltipInitialData","visible","fund","heading","call","called","commitment","locationX","locationY","BlobTooltip","barChartWidth","barChartHeight","almostFull","BlobTable","tooltipData","setTooltipData","lanes","maxCall","lane","columnSums","_","maxSum","headings","colSpan","begin","scope","sum","col","onMouseEnter","ev","clientX","clientY","maxSumBarHeight","PrivateEquityCapitalCallsTable","loadPrivateEquityCapitalCall","footerItem","privateEquityCapitalCallColumns","Alkupvm","Sitoumus","Kutsumaton","Vuosi1","add","Vuosi2","Vuosi3","Vuosi4","Vuosi5","Vuosi6","Vuosi7","Vuosi8","Vuosi9","Vuosi10","Vuosi11","years","reportYear","yearIndices","privateEquityCapitalCallData","Maturiteetti","blobLanes","showTotals","covenantsData","covenantsLoading","loadCovenants","covenantsGrouped","covenantsColumns","covenant","KutsumatonPaaoma","KorotJaTuotto","Voitonjaot","KokonaisTuotto","PaaomanPalautukset","UudelleenKutsuttavaa","DateRange","Loppupvm","PrivateEquityCapitalCalls","Logout","createSignalRContext","shareConnectionBetweenTab","App","timer","clearTimeout","Provider","connectEnabled","accessTokenFactory","dependencies","i18n","use","LanguageDetector","initReactI18next","init","fallbackLng","interpolation","escapeValue","preload","ns","defaultNS","debug","resources","fi","common","sv","languages","ReactDOM","StrictMode","Suspense","fallback","LocalizationProvider","dateAdapter","AdapterMoment","locale","StyledEngineProvider","injectFirst","getElementById"],"mappings":"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","file":"static/js/main.3cb4e84b.chunk.js","sourcesContent":["import { AuthenticationInfo } from \"types/AuthenticationInfo\";\r\nimport { createCustomAction, createAction } from \"typesafe-actions\";\r\n\r\nconst AUTHENTICATIONINFO_DATA_LOAD = \"authenticationinfo/AUTHENTICATIONINFO_DATA_LOAD\";\r\nconst AUTHENTICATIONINFO_DATA_LOAD_SUCCESS =\r\n \"authenticationinfo/AUTHENTICATIONINFO_DATA_LOAD_SUCCESS\";\r\nconst AUTHENTICATIONINFO_DATA_LOAD_FAIL = \"authenticationinfo/AUTHENTICATIONINFO_DATA_LOAD_FAIL\";\r\n\r\nexport const load = createAction(AUTHENTICATIONINFO_DATA_LOAD);\r\n\r\nexport const loadSuccess = createCustomAction(\r\n AUTHENTICATIONINFO_DATA_LOAD_SUCCESS,\r\n (type) => (data?: AuthenticationInfo[]) => ({\r\n type,\r\n data,\r\n })\r\n);\r\n\r\nexport const loadFail = createCustomAction(\r\n AUTHENTICATIONINFO_DATA_LOAD_FAIL,\r\n (type) => (error?: string) => ({\r\n type,\r\n error,\r\n })\r\n);\r\n","import { TokenResponse } from \"types/TokenResponse\";\r\nimport { createCustomAction, createAction } from \"typesafe-actions\";\r\n\r\nconst OIDC_DATA_LOAD = \"OIDC/OIDC_DATA_LOAD\";\r\nconst OIDC_DATA_LOAD_SUCCESS = \"OIDC/OIDC_DATA_LOAD_SUCCESS\";\r\nconst OIDC_DATA_LOAD_FAIL = \"OIDC/OIDC_DATA_LOAD_FAIL\";\r\nconst OIDC_DATA_EMPTY = \"OIDC/OIDC_DATA_EMPTY\";\r\n\r\nexport const load = createAction(OIDC_DATA_LOAD);\r\n\r\nexport const loadSuccess = createCustomAction(\r\n OIDC_DATA_LOAD_SUCCESS,\r\n (type) => (data?: TokenResponse) => ({\r\n type,\r\n data,\r\n })\r\n);\r\n\r\nexport const loadFail = createCustomAction(OIDC_DATA_LOAD_FAIL, (type) => (error?: string) => ({\r\n type,\r\n error,\r\n}));\r\n\r\nexport const empty = createAction(OIDC_DATA_EMPTY);\r\n","import { TokenResponse } from \"types/TokenResponse\";\r\nimport { ActionType, getType } from \"typesafe-actions\";\r\nimport * as oidcActions from \"./oidcActions\";\r\n\r\nexport interface OidcState {\r\n loading?: boolean;\r\n data?: TokenResponse;\r\n error?: string;\r\n}\r\n\r\nexport type OidcActions = ActionType;\r\n\r\nconst initialState: OidcState = {};\r\n\r\nexport default function oidc(state: OidcState = initialState, action: OidcActions) {\r\n switch (action.type) {\r\n case getType(oidcActions.load):\r\n return { ...state, loading: true };\r\n case getType(oidcActions.loadSuccess):\r\n return { ...state, loading: false, data: action.data, error: undefined };\r\n case getType(oidcActions.loadFail):\r\n return { ...state, loading: false, error: action.error };\r\n case getType(oidcActions.empty):\r\n return initialState;\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { AssetClass } from \"types/AssetClass\";\r\nimport { YieldHistory } from \"types/YieldHistory\";\r\nimport { createCustomAction } from \"typesafe-actions\";\r\n\r\nconst YIELDHISTORY_DATA_LOAD = \"YIELDHISTORY/YIELDHISTORY_DATA_LOAD\";\r\nconst YIELDHISTORY_DATA_LOAD_SUCCESS = \"YIELDHISTORY/YIELDHISTORY_DATA_LOAD_SUCCESS\";\r\nconst YIELDHISTORY_DATA_LOAD_FAIL = \"YIELDHISTORY/YIELDHISTORY_DATA_LOAD_FAIL\";\r\n\r\nexport type YieldHistoryContentType = \"all\" | keyof typeof AssetClass;\r\n\r\nexport const load = createCustomAction(\r\n YIELDHISTORY_DATA_LOAD,\r\n (type) => (contentType: YieldHistoryContentType) => ({\r\n type,\r\n contentType,\r\n })\r\n);\r\n\r\nexport const loadSuccess = createCustomAction(\r\n YIELDHISTORY_DATA_LOAD_SUCCESS,\r\n (type) => (contentType: YieldHistoryContentType, data?: YieldHistory[]) => ({\r\n type,\r\n contentType,\r\n data,\r\n })\r\n);\r\n\r\nexport const loadFail = createCustomAction(\r\n YIELDHISTORY_DATA_LOAD_FAIL,\r\n (type) => (contentType: YieldHistoryContentType, error?: string) => ({\r\n type,\r\n contentType,\r\n error,\r\n })\r\n);\r\n","import { AllocationHistory } from \"types/AllocationHistory\";\r\nimport { AssetClass } from \"types/AssetClass\";\r\nimport { createCustomAction } from \"typesafe-actions\";\r\n\r\nconst ALLOCATIONHISTORY_DATA_LOAD = \"ALLOCATIONHISTORY/ALLOCATIONHISTORY_DATA_LOAD\";\r\nconst ALLOCATIONHISTORY_DATA_LOAD_SUCCESS = \"ALLOCATIONHISTORY/ALLOCATIONHISTORY_DATA_LOAD_SUCCESS\";\r\nconst ALLOCATIONHISTORY_DATA_LOAD_FAIL = \"ALLOCATIONHISTORY/ALLOCATIONHISTORY_DATA_LOAD_FAIL\";\r\n\r\nexport type AllocationHistoryContentType = \"all\" | keyof typeof AssetClass;\r\n\r\nexport const load = createCustomAction(\r\n ALLOCATIONHISTORY_DATA_LOAD,\r\n (type) => (contentType: AllocationHistoryContentType) => ({\r\n type,\r\n contentType,\r\n })\r\n);\r\n\r\nexport const loadSuccess = createCustomAction(\r\n ALLOCATIONHISTORY_DATA_LOAD_SUCCESS,\r\n (type) => (contentType: AllocationHistoryContentType, data?: AllocationHistory[]) => ({\r\n type,\r\n contentType,\r\n data,\r\n })\r\n);\r\n\r\nexport const loadFail = createCustomAction(\r\n ALLOCATIONHISTORY_DATA_LOAD_FAIL,\r\n (type) => (contentType: AllocationHistoryContentType, error?: string) => ({\r\n type,\r\n contentType,\r\n error,\r\n })\r\n);\r\n","import { PortfolioInformation } from \"types/PortfolioInformation\";\r\nimport { createCustomAction } from \"typesafe-actions\";\r\n\r\nconst PORTFOLIOINFORMATION_DATA_LOAD = \"PORTFOLIOINFORMATION/PORTFOLIOINFORMATION_DATA_LOAD\";\r\nconst PORTFOLIOINFORMATION_DATA_LOAD_SUCCESS =\r\n \"PORTFOLIOINFORMATION/PORTFOLIOINFORMATION_DATA_LOAD_SUCCESS\";\r\nconst PORTFOLIOINFORMATION_DATA_LOAD_FAIL =\r\n \"PORTFOLIOINFORMATION/PORTFOLIOINFORMATION_DATA_LOAD_FAIL\";\r\n\r\nexport const load = createCustomAction(PORTFOLIOINFORMATION_DATA_LOAD, (type) => () => ({\r\n type,\r\n}));\r\n\r\nexport const loadSuccess = createCustomAction(\r\n PORTFOLIOINFORMATION_DATA_LOAD_SUCCESS,\r\n (type) => (data?: PortfolioInformation) => ({\r\n type,\r\n data,\r\n })\r\n);\r\n\r\nexport const loadFail = createCustomAction(\r\n PORTFOLIOINFORMATION_DATA_LOAD_FAIL,\r\n (type) => (error?: string) => ({\r\n type,\r\n error,\r\n })\r\n);\r\n","import { PortfolioStatements } from \"types/Statements\";\r\nimport { createCustomAction } from \"typesafe-actions\";\r\n\r\nconst STATEMENTS_DATA_LOAD = \"STATEMENTS/STATEMENTS_DATA_LOAD\";\r\nconst STATEMENTS_DATA_LOAD_SUCCESS = \"STATEMENTS/STATEMENTS_DATA_LOAD_SUCCESS\";\r\nconst STATEMENTS_DATA_LOAD_FAIL = \"STATEMENTS/STATEMENTS_DATA_LOAD_FAIL\";\r\n\r\nexport const load = createCustomAction(STATEMENTS_DATA_LOAD, (type) => () => ({\r\n type,\r\n}));\r\n\r\nexport const loadSuccess = createCustomAction(\r\n STATEMENTS_DATA_LOAD_SUCCESS,\r\n (type) => (data?: PortfolioStatements[]) => ({\r\n type,\r\n data,\r\n })\r\n);\r\n\r\nexport const loadFail = createCustomAction(\r\n STATEMENTS_DATA_LOAD_FAIL,\r\n (type) => (error?: string) => ({\r\n type,\r\n error,\r\n })\r\n);\r\n","export const totalCosts = (serviceFee: number, fee: number, tax: number) => {\r\n return serviceFee + fee + tax;\r\n};\r\n","import { Transaction, Portfolio } from \"types/Transactions\";\r\nimport { totalCosts } from \"./totalCosts\";\r\n\r\nconst sumForPrice = (portfolio: Transaction[], transactionMainType: string) => {\r\n const filteredTransactions = portfolio.filter(\r\n (transaction) => transaction.TransactionMainType === transactionMainType\r\n );\r\n if (filteredTransactions.length === 0) {\r\n return undefined;\r\n }\r\n\r\n return filteredTransactions\r\n .map((transaction) => transaction.CleanAmount)\r\n .reduce((prev, curr) => prev + curr, 0);\r\n};\r\n\r\nconst sumForFee = (portfolio: Transaction[], transactionMainType: string) => {\r\n const filteredTransactions = portfolio.filter(\r\n (transaction) => transaction.TransactionMainType === transactionMainType\r\n );\r\n if (filteredTransactions.length === 0) {\r\n return undefined;\r\n }\r\n\r\n return filteredTransactions\r\n .map((transaction) => transaction.Fee)\r\n .reduce((prev, curr) => prev + curr, 0);\r\n};\r\n\r\nconst sumForTax = (portfolio: Transaction[], transactionMainType: string) => {\r\n const filteredTransactions = portfolio.filter(\r\n (transaction) => transaction.TransactionMainType === transactionMainType\r\n );\r\n if (filteredTransactions.length === 0) {\r\n return undefined;\r\n }\r\n\r\n return filteredTransactions\r\n .map((transaction) => transaction.Tax)\r\n .reduce((prev, curr) => prev + curr, 0);\r\n};\r\n\r\nconst sumForTotalCosts = (\r\n portfolio: Transaction[],\r\n transactionMainType: string\r\n) => {\r\n const filteredTransactions = portfolio.filter(\r\n (transaction) => transaction.TransactionMainType === transactionMainType\r\n );\r\n if (filteredTransactions.length === 0) {\r\n return undefined;\r\n }\r\n\r\n return filteredTransactions\r\n .map((transaction) =>\r\n totalCosts(transaction.ServiceFee, transaction.Fee, transaction.Tax)\r\n )\r\n .reduce((prev, curr) => prev + curr, 0);\r\n};\r\n\r\nconst sumForDirtyAmount = (\r\n portfolio: Transaction[],\r\n transactionMainType: string\r\n) => {\r\n const filteredTransactions = portfolio.filter(\r\n (transaction) => transaction.TransactionMainType === transactionMainType\r\n );\r\n\r\n if (filteredTransactions.length === 0) {\r\n return undefined;\r\n }\r\n\r\n return filteredTransactions\r\n .map((transaction) => transaction.DirtyAmount)\r\n .reduce((prev, curr) => prev + curr, 0);\r\n};\r\n\r\nconst purchasesSum = (data: Portfolio) => {\r\n const sums = {\r\n CleanAmount: sumForPrice(data.Transactions, \"Osto\"),\r\n Fee: sumForFee(data.Transactions, \"Osto\"),\r\n Tax: sumForTax(data.Transactions, \"Osto\"),\r\n TotalCosts: sumForTotalCosts(data.Transactions, \"Osto\"),\r\n DirtyAmount: sumForDirtyAmount(data.Transactions, \"Osto\"),\r\n };\r\n return Object.values(sums).some((x) => x !== undefined) ? sums : undefined;\r\n};\r\n\r\nconst sellsSum = (data: Portfolio) => {\r\n const sums = {\r\n CleanAmount: sumForPrice(data.Transactions, \"Myynti\"),\r\n Fee: sumForFee(data.Transactions, \"Myynti\"),\r\n Tax: sumForTax(data.Transactions, \"Myynti\"),\r\n TotalCosts: sumForTotalCosts(data.Transactions, \"Myynti\"),\r\n DirtyAmount: sumForDirtyAmount(data.Transactions, \"Myynti\"),\r\n };\r\n return Object.values(sums).some((x) => x !== undefined) ? sums : undefined;\r\n};\r\n\r\nconst depositsSum = (data: Portfolio) => {\r\n const sums = {\r\n CleanAmount: sumForPrice(data.Transactions, \"Pano\"),\r\n Fee: sumForFee(data.Transactions, \"Pano\"),\r\n Tax: sumForTax(data.Transactions, \"Pano\"),\r\n TotalCosts: sumForTotalCosts(data.Transactions, \"Pano\"),\r\n DirtyAmount: sumForDirtyAmount(data.Transactions, \"Pano\"),\r\n };\r\n return Object.values(sums).some((x) => x !== undefined) ? sums : undefined;\r\n};\r\n\r\nconst withdrawsSum = (data: Portfolio) => {\r\n const sums = {\r\n CleanAmount: sumForPrice(data.Transactions, \"Otto\"),\r\n Fee: sumForFee(data.Transactions, \"Otto\"),\r\n Tax: sumForTax(data.Transactions, \"Otto\"),\r\n TotalCosts: sumForTotalCosts(data.Transactions, \"Otto\"),\r\n DirtyAmount: sumForDirtyAmount(data.Transactions, \"Otto\"),\r\n };\r\n return Object.values(sums).some((x) => x !== undefined) ? sums : undefined;\r\n};\r\n\r\nconst cashSum = (data: Portfolio) => {\r\n const sums = {\r\n CleanAmount: sumForPrice(data.Transactions, \"Käteinen\"),\r\n Fee: sumForFee(data.Transactions, \"Käteinen\"),\r\n Tax: sumForTax(data.Transactions, \"Käteinen\"),\r\n TotalCosts: sumForTotalCosts(data.Transactions, \"Käteinen\"),\r\n DirtyAmount: sumForDirtyAmount(data.Transactions, \"Käteinen\"),\r\n };\r\n return Object.values(sums).some((x) => x !== undefined) ? sums : undefined;\r\n};\r\n\r\nconst dividendsSum = (data: Portfolio) => {\r\n const sums = {\r\n CleanAmount: sumForPrice(data.Transactions, \"Osinko\"),\r\n Fee: sumForFee(data.Transactions, \"Osinko\"),\r\n Tax: sumForTax(data.Transactions, \"Osinko\"),\r\n TotalCosts: sumForTotalCosts(data.Transactions, \"Osinko\"),\r\n DirtyAmount: sumForDirtyAmount(data.Transactions, \"Osinko\"),\r\n };\r\n return Object.values(sums).some((x) => x !== undefined) ? sums : undefined;\r\n};\r\n\r\nconst interestsSum = (data: Portfolio) => {\r\n const sums = {\r\n CleanAmount: sumForPrice(data.Transactions, \"Korko\"),\r\n Fee: sumForFee(data.Transactions, \"Korko\"),\r\n Tax: sumForTax(data.Transactions, \"Korko\"),\r\n TotalCosts: sumForTotalCosts(data.Transactions, \"Korko\"),\r\n DirtyAmount: sumForDirtyAmount(data.Transactions, \"Korko\"),\r\n };\r\n return Object.values(sums).some((x) => x !== undefined) ? sums : undefined;\r\n};\r\n\r\nconst corporateActionsSum = (data: Portfolio) => {\r\n const sums = {\r\n CleanAmount: sumForPrice(data.Transactions, \"Corporate Action\"),\r\n Fee: sumForFee(data.Transactions, \"Corporate Action\"),\r\n Tax: sumForTax(data.Transactions, \"Corporate Action\"),\r\n TotalCosts: sumForTotalCosts(data.Transactions, \"Corporate Action\"),\r\n DirtyAmount: sumForDirtyAmount(data.Transactions, \"Corporate Action\"),\r\n };\r\n return Object.values(sums).some((x) => x !== undefined) ? sums : undefined;\r\n};\r\n\r\nexport const sums = (data: Portfolio) => {\r\n return {\r\n CorporateActionsTotal: corporateActionsSum(data),\r\n InterestsTotal: interestsSum(data),\r\n CashTotal: cashSum(data),\r\n SellsTotal: sellsSum(data),\r\n DividendsTotal: dividendsSum(data),\r\n SubscriptionsTotal: purchasesSum(data),\r\n WithdrawsTotal: withdrawsSum(data),\r\n DepositsTotal: depositsSum(data),\r\n };\r\n};\r\n","import { Portfolio } from \"types/Transactions\";\r\nimport { createCustomAction } from \"typesafe-actions\";\r\n\r\nconst LOGS_DATA_LOAD = \"LOGS/LOGS_DATA_LOAD\";\r\nconst LOGS_DATA_LOAD_SUCCESS = \"LOGS/LOGS_DATA_LOAD_SUCCESS\";\r\nconst LOGS_DATA_LOAD_FAIL = \"LOGS/LOGS_DATA_LOAD_FAIL\";\r\n\r\nexport const load = createCustomAction(LOGS_DATA_LOAD, (type) => () => ({\r\n type,\r\n}));\r\n\r\nexport const loadSuccess = createCustomAction(\r\n LOGS_DATA_LOAD_SUCCESS,\r\n (type) => (data?: Portfolio[]) => ({\r\n type,\r\n data,\r\n })\r\n);\r\n\r\nexport const loadFail = createCustomAction(\r\n LOGS_DATA_LOAD_FAIL,\r\n (type) => (error?: string) => ({\r\n type,\r\n error,\r\n })\r\n);\r\n","import { AssetClass } from \"types/AssetClass\";\r\nimport { YieldPerTimespan } from \"types/YieldPerTimespan\";\r\nimport { createCustomAction } from \"typesafe-actions\";\r\n\r\nconst YIELDPERTIMESPAN_DATA_LOAD = \"YIELDPERTIMESPAN/YIELDPERTIMESPAN_DATA_LOAD\";\r\nconst YIELDPERTIMESPAN_DATA_LOAD_SUCCESS = \"YIELDPERTIMESPAN/YIELDPERTIMESPAN_DATA_LOAD_SUCCESS\";\r\nconst YIELDPERTIMESPAN_DATA_LOAD_FAIL = \"YIELDPERTIMESPAN/YIELDPERTIMESPAN_DATA_LOAD_FAIL\";\r\n\r\nexport type YieldPerTimespanContentType = \"all\" | keyof typeof AssetClass;\r\n\r\nexport const load = createCustomAction(\r\n YIELDPERTIMESPAN_DATA_LOAD,\r\n (type) => (contentType: YieldPerTimespanContentType) => ({\r\n type,\r\n contentType,\r\n })\r\n);\r\n\r\nexport const loadSuccess = createCustomAction(\r\n YIELDPERTIMESPAN_DATA_LOAD_SUCCESS,\r\n (type) => (contentType: YieldPerTimespanContentType, data?: YieldPerTimespan[]) => ({\r\n type,\r\n contentType,\r\n data,\r\n })\r\n);\r\n\r\nexport const loadFail = createCustomAction(\r\n YIELDPERTIMESPAN_DATA_LOAD_FAIL,\r\n (type) => (contentType: YieldPerTimespanContentType, error?: string) => ({\r\n type,\r\n contentType,\r\n error,\r\n })\r\n);\r\n","import { AssetClass } from \"types/AssetClass\";\r\nimport { YieldList } from \"types/YieldList\";\r\nimport { createCustomAction } from \"typesafe-actions\";\r\n\r\nconst YIELDLIST_DATA_LOAD = \"YIELDLIST/YIELDLIST_DATA_LOAD\";\r\nconst YIELDLIST_DATA_LOAD_SUCCESS = \"YIELDLIST/YIELDLIST_DATA_LOAD_SUCCESS\";\r\nconst YIELDLIST_DATA_LOAD_FAIL = \"YIELDLIST/YIELDLIST_DATA_LOAD_FAIL\";\r\n\r\nexport type YieldListContentType = \"all\" | keyof typeof AssetClass;\r\n\r\nexport const load = createCustomAction(\r\n YIELDLIST_DATA_LOAD,\r\n (type) => (contentType: YieldListContentType) => ({\r\n type,\r\n contentType,\r\n })\r\n);\r\n\r\nexport const loadSuccess = createCustomAction(\r\n YIELDLIST_DATA_LOAD_SUCCESS,\r\n (type) => (contentType: YieldListContentType, data?: YieldList[]) => ({\r\n type,\r\n contentType,\r\n data,\r\n })\r\n);\r\n\r\nexport const loadFail = createCustomAction(\r\n YIELDLIST_DATA_LOAD_FAIL,\r\n (type) => (contentType: YieldListContentType, error?: string) => ({\r\n type,\r\n contentType,\r\n error,\r\n })\r\n);\r\n","import { AssetClass } from \"types/AssetClass\";\r\nimport { PrivateEquityCapitalCall } from \"types/PrivateEquityCapitalCall\";\r\nimport { createCustomAction } from \"typesafe-actions\";\r\n\r\nconst PRIVATEEQUITYCAPITALCALL_DATA_LOAD = \"PRIVATEEQUITYCAPITALCALL/PRIVATEEQUITYCAPITALCALL_DATA_LOAD\";\r\nconst PRIVATEEQUITYCAPITALCALL_DATA_LOAD_SUCCESS = \"PRIVATEEQUITYCAPITALCALL/PRIVATEEQUITYCAPITALCALL_DATA_LOAD_SUCCESS\";\r\nconst PRIVATEEQUITYCAPITALCALL_DATA_LOAD_FAIL = \"PRIVATEEQUITYCAPITALCALL/PRIVATEEQUITYCAPITALCALL_DATA_LOAD_FAIL\";\r\n\r\nexport type PrivateEquityCapitalCallContentType = \"all\" | keyof typeof AssetClass;\r\n\r\nexport const load = createCustomAction(\r\n PRIVATEEQUITYCAPITALCALL_DATA_LOAD,\r\n (type) => (contentType: PrivateEquityCapitalCallContentType) => ({\r\n type,\r\n contentType,\r\n })\r\n);\r\n\r\nexport const loadSuccess = createCustomAction(\r\n PRIVATEEQUITYCAPITALCALL_DATA_LOAD_SUCCESS,\r\n (type) => (contentType: PrivateEquityCapitalCallContentType,\r\n data?: PrivateEquityCapitalCall[]) => ({\r\n type,\r\n contentType,\r\n data,\r\n })\r\n);\r\n\r\nexport const loadFail = createCustomAction(\r\n PRIVATEEQUITYCAPITALCALL_DATA_LOAD_FAIL,\r\n (type) => (contentType: PrivateEquityCapitalCallContentType, error?: string) => ({\r\n type,\r\n contentType,\r\n error,\r\n })\r\n);\r\n","import { AssetClass } from \"types/AssetClass\";\r\nimport { Distribution } from \"types/Distribution\";\r\nimport { createCustomAction } from \"typesafe-actions\";\r\n\r\nconst DISTRIBUTIONS_DATA_LOAD = \"DISTRIBUTIONS/DISTRIBUTIONS_DATA_LOAD\";\r\nconst DISTRIBUTIONS_DATA_LOAD_SUCCESS = \"DISTRIBUTIONS/DISTRIBUTIONS_DATA_LOAD_SUCCESS\";\r\nconst DISTRIBUTIONS_DATA_LOAD_FAIL = \"DISTRIBUTIONS/DISTRIBUTIONS_DATA_LOAD_FAIL\";\r\n\r\nexport type DistributionContentType = \"all\" | keyof typeof AssetClass;\r\n\r\nexport const load = createCustomAction(\r\n DISTRIBUTIONS_DATA_LOAD,\r\n (type) => (contentType: DistributionContentType, distribution: 1 | 2 | 3) => ({\r\n type,\r\n contentType,\r\n distribution,\r\n })\r\n);\r\n\r\nexport const loadSuccess = createCustomAction(\r\n DISTRIBUTIONS_DATA_LOAD_SUCCESS,\r\n (type) => (\r\n contentType: DistributionContentType,\r\n distribution: 1 | 2 | 3,\r\n data?: Distribution[]\r\n ) => ({\r\n type,\r\n contentType,\r\n data,\r\n distribution,\r\n })\r\n);\r\n\r\nexport const loadFail = createCustomAction(\r\n DISTRIBUTIONS_DATA_LOAD_FAIL,\r\n (type) => (contentType: DistributionContentType, distribution: 1 | 2 | 3, error?: string) => ({\r\n type,\r\n contentType,\r\n error,\r\n distribution,\r\n })\r\n);\r\n","import { createCustomAction } from \"typesafe-actions\";\r\nimport { AssetClassParameter } from \"types/AssetClassParameter\";\r\n\r\nconst ASSETCLASSPARAMETERS_DATA_LOAD = \"ASSETCLASSPARAMETERS/ASSETCLASSPARAMETERS_DATA_LOAD\";\r\nconst ASSETCLASSPARAMETERS_DATA_LOAD_SUCCESS =\r\n \"ASSETCLASSPARAMETERS/ASSETCLASSPARAMETERS_DATA_LOAD_SUCCESS\";\r\nconst ASSETCLASSPARAMETERS_DATA_LOAD_FAIL =\r\n \"ASSETCLASSPARAMETERS/ASSETCLASSPARAMETERS_DATA_LOAD_FAIL\";\r\n\r\nexport type AssetClassParametersContentType = \"all\";\r\n\r\nexport const load = createCustomAction(ASSETCLASSPARAMETERS_DATA_LOAD, (type) => () => ({\r\n type,\r\n}));\r\n\r\nexport const loadSuccess = createCustomAction(\r\n ASSETCLASSPARAMETERS_DATA_LOAD_SUCCESS,\r\n (type) => (data?: AssetClassParameter[]) => ({\r\n type,\r\n data,\r\n })\r\n);\r\n\r\nexport const loadFail = createCustomAction(\r\n ASSETCLASSPARAMETERS_DATA_LOAD_FAIL,\r\n (type) => (error?: string) => ({\r\n type,\r\n error,\r\n })\r\n);\r\n","import { UserPermission } from \"types/UserPermission\";\r\nimport { VisibleSections } from \"types/VisibleSections\";\r\nimport { createCustomAction } from \"typesafe-actions\";\r\n\r\nconst USER_DATA_LOAD = \"USER/USER_DATA_LOAD\";\r\nconst USER_DATA_LOAD_SUCCESS = \"USER/USER_DATA_LOAD_SUCCESS\";\r\nconst USER_PERMISSIONDATA_LOAD_SUCCESS = \"USER/USER_PERMISSIONDATA_LOAD_SUCCESS\";\r\nconst USER_DATA_LOAD_FAIL = \"USER/USER_DATA_LOAD_FAIL\";\r\nconst USER_SELECT_USERPERMISSION = \"USER/USER_SELECT_USERPERMISSION\";\r\nconst USER_CHANGE_REPORT_DATE = \"USER/USER_CHANGE_REPORT_DATE\";\r\nconst USER_CHANGE_START_DATE = \"USER/USER_CHANGE_START_DATE\";\r\n\r\nexport type UserContentType = \"userPermissions\" | \"visibleSections\";\r\n\r\nexport type UserDataType = VisibleSections;\r\n\r\nexport const load = createCustomAction(\r\n USER_DATA_LOAD,\r\n (type) => (contentType: UserContentType) => ({\r\n type,\r\n contentType,\r\n })\r\n);\r\n\r\nexport const loadSuccess = createCustomAction(\r\n USER_DATA_LOAD_SUCCESS,\r\n (type) => (contentType: UserContentType, data?: UserDataType) => ({\r\n type,\r\n contentType,\r\n data,\r\n })\r\n);\r\n\r\nexport const loadPermissionsSuccess = createCustomAction(\r\n USER_PERMISSIONDATA_LOAD_SUCCESS,\r\n (type) => (contentType: UserContentType, data?: UserPermission[]) => ({\r\n type,\r\n contentType,\r\n data,\r\n })\r\n);\r\n\r\nexport const loadFail = createCustomAction(\r\n USER_DATA_LOAD_FAIL,\r\n (type) => (contentType: UserContentType, error?: string) => ({\r\n type,\r\n contentType,\r\n error,\r\n })\r\n);\r\n\r\nexport const selectUserPermission = createCustomAction(\r\n USER_SELECT_USERPERMISSION,\r\n (type) => (permission: string) => ({\r\n type,\r\n permission,\r\n })\r\n);\r\n\r\nexport const changeReportDate = createCustomAction(\r\n USER_CHANGE_REPORT_DATE,\r\n (type) => (reportDate: string) => ({\r\n type,\r\n reportDate,\r\n })\r\n);\r\n\r\nexport const changeStartDate = createCustomAction(\r\n USER_CHANGE_START_DATE,\r\n (type) => (startDate: string) => ({\r\n type,\r\n startDate,\r\n })\r\n);\r\n","import moment from \"moment\";\r\nimport { RootState } from \"redux/rootReducer\";\r\nimport { UserPermission } from \"types/UserPermission\";\r\nimport { ActionType, getType } from \"typesafe-actions\";\r\nimport * as userActions from \"./userActions\";\r\n\r\nexport type UserState = {\r\n [K in userActions.UserContentType]?: {\r\n loading?: boolean;\r\n data?: userActions.UserDataType | UserPermission[];\r\n error?: string;\r\n };\r\n} & {\r\n reportControlId?: string;\r\n reportDate?: string;\r\n startDate?: string;\r\n};\r\n\r\nexport type UserActions = ActionType;\r\n\r\nconst initialState = {\r\n reportDate: moment.utc().subtract(1, \"day\").startOf(\"day\").toISOString(),\r\n startDate: moment.utc().subtract(1, \"month\").startOf(\"month\").toISOString(),\r\n};\r\n\r\nexport const getReportDateSelector = (state: RootState) => state.user.reportDate;\r\n\r\nexport default function user(state: UserState = initialState, action: UserActions) {\r\n switch (action.type) {\r\n case getType(userActions.load):\r\n return {\r\n ...state,\r\n [action.contentType]: { ...state[action.contentType], loading: true },\r\n };\r\n case getType(userActions.loadSuccess):\r\n return {\r\n ...state,\r\n [action.contentType]: {\r\n ...state[action.contentType],\r\n loading: false,\r\n data: action.data,\r\n error: undefined,\r\n },\r\n };\r\n case getType(userActions.loadPermissionsSuccess):\r\n const reportControlIdExists =\r\n state.reportControlId &&\r\n (action.data as UserPermission[]).some(\r\n (up) => up.ReportControlId === state.reportControlId\r\n );\r\n return {\r\n ...state,\r\n reportControlId: reportControlIdExists\r\n ? state.reportControlId\r\n : ((action.data as UserPermission[]) ?? [])?.sort((a, b) =>\r\n a.Name.localeCompare(b.Name)\r\n )[0]?.ReportControlId,\r\n [action.contentType]: {\r\n ...state[action.contentType],\r\n loading: false,\r\n data: action.data,\r\n error: undefined,\r\n },\r\n };\r\n case getType(userActions.loadFail):\r\n return {\r\n ...state,\r\n [action.contentType]: {\r\n ...state[action.contentType],\r\n loading: false,\r\n error: action.error,\r\n },\r\n };\r\n case getType(userActions.selectUserPermission):\r\n return {\r\n ...state,\r\n reportControlId: action.permission,\r\n };\r\n case getType(userActions.changeReportDate):\r\n return {\r\n ...state,\r\n reportDate: action.reportDate,\r\n };\r\n case getType(userActions.changeStartDate):\r\n if (moment(state.reportDate).isBefore(moment(state.startDate))) {\r\n return {\r\n ...state,\r\n startDate: moment\r\n .utc(state.reportDate)\r\n .subtract(1, \"months\")\r\n .startOf(\"month\")\r\n .toISOString(),\r\n };\r\n }\r\n return {\r\n ...state,\r\n startDate: action.startDate,\r\n };\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { AssetClass } from \"types/AssetClass\";\r\nimport { Summary } from \"types/Summary\";\r\nimport { createCustomAction } from \"typesafe-actions\";\r\n\r\nconst SUMMARY_DATA_LOAD = \"SUMMARY/SUMMARY_DATA_LOAD\";\r\nconst SUMMARY_DATA_LOAD_SUCCESS = \"SUMMARY/SUMMARY_DATA_LOAD_SUCCESS\";\r\nconst SUMMARY_DATA_LOAD_FAIL = \"SUMMARY/SUMMARY_DATA_LOAD_FAIL\";\r\n\r\nexport type SummaryContentType = \"all\" | keyof typeof AssetClass;\r\n\r\nexport const load = createCustomAction(\r\n SUMMARY_DATA_LOAD,\r\n (type) => (contentType: SummaryContentType) => ({\r\n type,\r\n contentType,\r\n })\r\n);\r\n\r\nexport const loadSuccess = createCustomAction(\r\n SUMMARY_DATA_LOAD_SUCCESS,\r\n (type) => (contentType: SummaryContentType, data?: Summary[]) => ({\r\n type,\r\n contentType,\r\n data,\r\n })\r\n);\r\n\r\nexport const loadFail = createCustomAction(\r\n SUMMARY_DATA_LOAD_FAIL,\r\n (type) => (contentType: SummaryContentType, error?: string) => ({\r\n type,\r\n contentType,\r\n error,\r\n })\r\n);\r\n","import { AssetClass } from \"types/AssetClass\";\r\nimport { AssetClassDistribution } from \"types/AssetClassDistribution\";\r\nimport { createCustomAction } from \"typesafe-actions\";\r\n\r\nconst ASSETCLASSDISTRIBUTION_DATA_LOAD = \"ASSETCLASSDISTRIBUTION/ASSETCLASSDISTRIBUTION_DATA_LOAD\";\r\nconst ASSETCLASSDISTRIBUTION_DATA_LOAD_SUCCESS =\r\n \"ASSETCLASSDISTRIBUTION/ASSETCLASSDISTRIBUTION_DATA_LOAD_SUCCESS\";\r\nconst ASSETCLASSDISTRIBUTION_DATA_LOAD_FAIL =\r\n \"ASSETCLASSDISTRIBUTION/ASSETCLASSDISTRIBUTION_DATA_LOAD_FAIL\";\r\n\r\nexport type AssetClassDistributionContentType = \"all\" | keyof typeof AssetClass;\r\n\r\nexport const load = createCustomAction(\r\n ASSETCLASSDISTRIBUTION_DATA_LOAD,\r\n (type) => (contentType: AssetClassDistributionContentType) => ({\r\n type,\r\n contentType,\r\n })\r\n);\r\n\r\nexport const loadSuccess = createCustomAction(\r\n ASSETCLASSDISTRIBUTION_DATA_LOAD_SUCCESS,\r\n (type) => (contentType: AssetClassDistributionContentType, data?: AssetClassDistribution[]) => ({\r\n type,\r\n contentType,\r\n data,\r\n })\r\n);\r\n\r\nexport const loadFail = createCustomAction(\r\n ASSETCLASSDISTRIBUTION_DATA_LOAD_FAIL,\r\n (type) => (contentType: AssetClassDistributionContentType, error?: string) => ({\r\n type,\r\n contentType,\r\n error,\r\n })\r\n);\r\n","import { PortfolioProfitsAndLosses } from \"types/ProfitsAndLosses\";\r\nimport { createCustomAction } from \"typesafe-actions\";\r\n\r\nconst PROFITS_AND_LOSSES_DATA_LOAD =\r\n \"PROFITS_AND_LOSSES/PROFITS_AND_LOSSES_DATA_LOAD\";\r\nconst PROFITS_AND_LOSSES_DATA_LOAD_SUCCESS =\r\n \"PROFITS_AND_LOSSES/PROFITS_AND_LOSSES_DATA_LOAD_SUCCESS\";\r\nconst PROFITS_AND_LOSSES_DATA_LOAD_FAIL =\r\n \"PROFITS_AND_LOSSES/PROFITS_AND_LOSSES_DATA_LOAD_FAIL\";\r\n\r\nexport const load = createCustomAction(\r\n PROFITS_AND_LOSSES_DATA_LOAD,\r\n (type) => () => ({\r\n type,\r\n })\r\n);\r\n\r\nexport const loadSuccess = createCustomAction(\r\n PROFITS_AND_LOSSES_DATA_LOAD_SUCCESS,\r\n (type) => (data?: PortfolioProfitsAndLosses[]) => ({\r\n type,\r\n data,\r\n })\r\n);\r\n\r\nexport const loadFail = createCustomAction(\r\n PROFITS_AND_LOSSES_DATA_LOAD_FAIL,\r\n (type) => (error?: string) => ({\r\n type,\r\n error,\r\n })\r\n);\r\n","import { Covenants } from \"types/Covenants\";\r\nimport { createCustomAction } from \"typesafe-actions\";\r\n\r\nconst COVENANTS_DATA_LOAD = \"COVENANTS/COVENANTS_DATA_LOAD\";\r\nconst COVENANTS_DATA_LOAD_SUCCESS = \"COVENANTS/COVENANTS_DATA_LOAD_SUCCESS\";\r\nconst COVENANTS_DATA_LOAD_FAIL = \"COVENANTS/COVENANTS_DATA_LOAD_FAIL\";\r\nconst COVENANTS_COUNT_DATA_LOAD = \"COVENANTS/COVENANTS_COUNT_DATA_LOAD\";\r\nconst COVENANTS_COUNT_DATA_LOAD_SUCCESS = \"COVENANTS/COVENANTS_COUNT_DATA_LOAD_SUCCESS\";\r\nconst COVENANTS_COUNT_DATA_LOAD_FAIL = \"COVENANTS/COVENANTS_COUNT_DATA_LOAD_FAIL\";\r\n\r\nexport const load = createCustomAction(COVENANTS_DATA_LOAD, (type) => () => ({\r\n type,\r\n}));\r\n\r\nexport const loadSuccess = createCustomAction(\r\n COVENANTS_DATA_LOAD_SUCCESS,\r\n (type) => (data?: Covenants[]) => ({\r\n type,\r\n data,\r\n })\r\n);\r\n\r\nexport const loadFail = createCustomAction(\r\n COVENANTS_DATA_LOAD_FAIL,\r\n (type) => (error?: string) => ({\r\n type,\r\n error,\r\n })\r\n);\r\n\r\nexport const loadCount = createCustomAction(COVENANTS_COUNT_DATA_LOAD, (type) => () => ({\r\n type,\r\n}));\r\n\r\nexport const loadCountSuccess = createCustomAction(\r\n COVENANTS_COUNT_DATA_LOAD_SUCCESS,\r\n (type) => (data?: number) => ({\r\n type,\r\n data,\r\n })\r\n);\r\n\r\nexport const loadCountFail = createCustomAction(\r\n COVENANTS_COUNT_DATA_LOAD_FAIL,\r\n (type) => (error?: string) => ({\r\n type,\r\n error,\r\n })\r\n);\r\n","import { createCustomAction } from \"typesafe-actions\";\r\n\r\nconst REPORT_DATA_LOAD = \"REPORT/REPORT_DATA_LOAD\";\r\nconst REPORT_DATA_LOAD_SUCCESS = \"REPORT/REPORT_DATA_LOAD_SUCCESS\";\r\nconst REPORT_DATA_LOAD_FAIL = \"REPORT/REPORT_DATA_LOAD_FAIL\";\r\n\r\nexport const load = createCustomAction(REPORT_DATA_LOAD, (type) => () => ({\r\n type,\r\n}));\r\n\r\nexport const loadSuccess = createCustomAction(\r\n REPORT_DATA_LOAD_SUCCESS,\r\n (type) => (data?: string) => ({\r\n type,\r\n data,\r\n })\r\n);\r\n\r\nexport const loadFail = createCustomAction(\r\n REPORT_DATA_LOAD_FAIL,\r\n (type) => (error?: string) => ({\r\n type,\r\n error,\r\n })\r\n);\r\n","import { combineReducers } from \"redux\";\r\nimport { ThunkDispatch } from \"redux-thunk\";\r\nimport { persistReducer } from \"redux-persist\";\r\nimport storage from \"redux-persist/lib/storage\";\r\nimport authenticationInfo, {\r\n AuthenticationInfoActions,\r\n} from \"./authenticationInfos/authenticationInfo\";\r\nimport oidc, { OidcActions } from \"./oidc/oidc\";\r\nimport yieldHistory, { YieldHistoryActions } from \"./yieldHistory/yieldHistory\";\r\nimport allocationHistory, { AllocationHistoryActions } from \"./allocationHistory/allocationHistory\";\r\nimport portfolioInformation, {\r\n PortfolioInformationActions,\r\n} from \"./portfolioInformation/portfolioInformation\";\r\nimport statements, { StatementsActions } from \"./statements/statements\";\r\nimport transactions, { TransactionsActions } from \"./transactions/transactions\";\r\nimport yieldPerTimespan, { YieldPerTimespanActions } from \"./yieldPerTimespan/yieldPerTimespan\";\r\nimport yieldList, { YieldListActions } from \"./yieldList/yieldList\";\r\nimport privateEquityCapitalCall, {\r\n PrivateEquityCapitalCallActions,\r\n} from \"./privateEquityCapitalCall/privateEquityCapitalCall\";\r\nimport distributions, { DistributionsActions } from \"./distributions/distributions\";\r\nimport assetClassParameters, {\r\n AssetClassParametersActions,\r\n} from \"./assetClassParameters/assetClassParameters\";\r\nimport user, { UserActions } from \"./user/user\";\r\nimport summary, { SummaryActions } from \"./summary/summary\";\r\nimport assetClassDistribution, {\r\n AssetClassDistributionActions,\r\n} from \"./assetClassDistribution/assetClassDistribution\";\r\nimport profitsAndLosses, { ProfitsAndLossesActions } from \"./profitsAndLosses/profitsAndLosses\";\r\nimport covenants, { CovenantsActions } from \"./covenants/covenants\";\r\nimport report, { ReportActions } from \"./report/report\";\r\n\r\nexport type RootState = ReturnType;\r\nexport type RootAction =\r\n | AuthenticationInfoActions\r\n | OidcActions\r\n | YieldHistoryActions\r\n | AllocationHistoryActions\r\n | PortfolioInformationActions\r\n | YieldPerTimespanActions\r\n | YieldListActions\r\n | DistributionsActions\r\n | TransactionsActions\r\n | AssetClassParametersActions\r\n | UserActions\r\n | StatementsActions\r\n | SummaryActions\r\n | AssetClassDistributionActions\r\n | ProfitsAndLossesActions\r\n | CovenantsActions\r\n | ReportActions\r\n | PrivateEquityCapitalCallActions;\r\n\r\nexport type RootDispatch = ThunkDispatch;\r\n\r\nconst userPersistConfig = {\r\n key: \"user\",\r\n storage,\r\n blacklist: [\"reportDate\", \"startDate\", \"visibleSections\"],\r\n};\r\n\r\nconst rootReducer = combineReducers({\r\n authenticationInfo,\r\n oidc,\r\n yieldHistory,\r\n allocationHistory,\r\n portfolioInformation,\r\n yieldPerTimespan,\r\n yieldList,\r\n privateEquityCapitalCall,\r\n distributions,\r\n transactions,\r\n assetClassParameters,\r\n user: persistReducer(userPersistConfig, user),\r\n statements,\r\n summary,\r\n assetClassDistribution,\r\n profitsAndLosses,\r\n covenants,\r\n report,\r\n});\r\n\r\nexport default rootReducer;\r\n","export interface YieldHistory {\r\n SortId: SortId;\r\n Value: number;\r\n ValueDate: Date;\r\n Category: string;\r\n}\r\n\r\nexport enum SortId {\r\n Index = 1,\r\n Customer,\r\n}\r\n","import { AuthenticationInfo } from \"types/AuthenticationInfo\";\r\nimport { ActionType, getType } from \"typesafe-actions\";\r\nimport * as authenticationInfoActions from \"./authenticationInfoActions\";\r\n\r\nexport interface AuthenticationInfoState {\r\n loading?: boolean;\r\n data?: AuthenticationInfo[];\r\n error?: string;\r\n}\r\n\r\nexport type AuthenticationInfoActions = ActionType;\r\n\r\nexport default function authenticationInfo(\r\n state: AuthenticationInfoState = {},\r\n action: AuthenticationInfoActions\r\n) {\r\n switch (action.type) {\r\n case getType(authenticationInfoActions.load):\r\n return { ...state, loading: true };\r\n case getType(authenticationInfoActions.loadSuccess):\r\n return { ...state, loading: false, data: action.data, error: undefined };\r\n case getType(authenticationInfoActions.loadFail):\r\n return { ...state, loading: false, error: action.error };\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { YieldHistory } from \"types/YieldHistory\";\r\nimport { ActionType, getType } from \"typesafe-actions\";\r\nimport * as yieldHistoryActions from \"./yieldHistoryActions\";\r\n\r\nexport type YieldHistoryState = {\r\n [K in yieldHistoryActions.YieldHistoryContentType]?: {\r\n loading?: boolean;\r\n data?: YieldHistory[];\r\n error?: string;\r\n };\r\n};\r\n\r\nexport type YieldHistoryActions = ActionType;\r\n\r\nexport default function yieldHistory(state: YieldHistoryState = {}, action: YieldHistoryActions) {\r\n switch (action.type) {\r\n case getType(yieldHistoryActions.load):\r\n return { ...state, [action.contentType]: { ...state[action.contentType], loading: true } };\r\n case getType(yieldHistoryActions.loadSuccess):\r\n return {\r\n ...state,\r\n [action.contentType]: { loading: false, data: action.data, error: undefined },\r\n };\r\n case getType(yieldHistoryActions.loadFail):\r\n return { ...state, [action.contentType]: { loading: false, error: action.error } };\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { AllocationHistory } from \"types/AllocationHistory\";\r\nimport { ActionType, getType } from \"typesafe-actions\";\r\nimport * as allocationHistoryActions from \"./allocationHistoryActions\";\r\n\r\nexport type AllocationHistoryState = {\r\n [K in allocationHistoryActions.AllocationHistoryContentType]?: {\r\n loading?: boolean;\r\n data?: AllocationHistory[];\r\n error?: string;\r\n };\r\n};\r\n\r\nexport type AllocationHistoryActions = ActionType;\r\n\r\nexport default function allocationHistory(\r\n state: AllocationHistoryState = {},\r\n action: AllocationHistoryActions\r\n) {\r\n switch (action.type) {\r\n case getType(allocationHistoryActions.load):\r\n return { ...state, [action.contentType]: { ...state[action.contentType], loading: true } };\r\n case getType(allocationHistoryActions.loadSuccess):\r\n return {\r\n ...state,\r\n [action.contentType]: { loading: false, data: action.data, error: undefined },\r\n };\r\n case getType(allocationHistoryActions.loadFail):\r\n return { ...state, [action.contentType]: { loading: false, error: action.error } };\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { PortfolioInformation } from \"types/PortfolioInformation\";\r\nimport { ActionType, getType } from \"typesafe-actions\";\r\nimport * as portfolioInformationActions from \"./portfolioInformationActions\";\r\n\r\nexport interface PortfolioInformationState {\r\n loading?: boolean;\r\n data?: PortfolioInformation;\r\n error?: string;\r\n}\r\n\r\nexport type PortfolioInformationActions = ActionType<\r\n typeof portfolioInformationActions\r\n>;\r\n\r\nexport default function portfolioInformation(\r\n state: PortfolioInformationState = {},\r\n action: PortfolioInformationActions\r\n) {\r\n switch (action.type) {\r\n case getType(portfolioInformationActions.load):\r\n return { ...state, loading: true };\r\n case getType(portfolioInformationActions.loadSuccess):\r\n return {\r\n ...state,\r\n loading: false,\r\n data: action.data,\r\n error: undefined,\r\n };\r\n case getType(portfolioInformationActions.loadFail):\r\n return { ...state, loading: false, error: action.error };\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { YieldPerTimespan } from \"types/YieldPerTimespan\";\r\nimport { ActionType, getType } from \"typesafe-actions\";\r\nimport * as yieldPerTimespanActions from \"./yieldPerTimespanActions\";\r\n\r\nexport type YieldPerTimespanState = {\r\n [K in yieldPerTimespanActions.YieldPerTimespanContentType]?: {\r\n loading?: boolean;\r\n data?: YieldPerTimespan[];\r\n error?: string;\r\n };\r\n};\r\n\r\nexport type YieldPerTimespanActions = ActionType;\r\n\r\nexport default function yieldPerTimespan(\r\n state: YieldPerTimespanState = {},\r\n action: YieldPerTimespanActions\r\n) {\r\n switch (action.type) {\r\n case getType(yieldPerTimespanActions.load):\r\n return { ...state, [action.contentType]: { ...state[action.contentType], loading: true } };\r\n case getType(yieldPerTimespanActions.loadSuccess):\r\n return {\r\n ...state,\r\n [action.contentType]: { loading: false, data: action.data, error: undefined },\r\n };\r\n case getType(yieldPerTimespanActions.loadFail):\r\n return { ...state, [action.contentType]: { loading: false, error: action.error } };\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { YieldList } from \"types/YieldList\";\r\nimport { ActionType, getType } from \"typesafe-actions\";\r\nimport * as yieldListActions from \"./yieldListActions\";\r\n\r\nexport type YieldListState = {\r\n [K in yieldListActions.YieldListContentType]?: {\r\n loading?: boolean;\r\n data?: YieldList[];\r\n error?: string;\r\n };\r\n};\r\n\r\nexport type YieldListActions = ActionType;\r\n\r\nexport default function yieldList(state: YieldListState = {}, action: YieldListActions) {\r\n switch (action.type) {\r\n case getType(yieldListActions.load):\r\n return { ...state, [action.contentType]: { ...state[action.contentType], loading: true } };\r\n case getType(yieldListActions.loadSuccess):\r\n return {\r\n ...state,\r\n [action.contentType]: { loading: false, data: action.data, error: undefined },\r\n };\r\n case getType(yieldListActions.loadFail):\r\n return { ...state, [action.contentType]: { loading: false, error: action.error } };\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { PrivateEquityCapitalCall } from \"types/PrivateEquityCapitalCall\";\r\nimport { ActionType, getType } from \"typesafe-actions\";\r\nimport * as privateEquityCapitalCallActions from \"./privateEquityCapitalCallActions\";\r\n\r\nexport type PrivateEquityCapitalCallState = {\r\n [K in privateEquityCapitalCallActions.PrivateEquityCapitalCallContentType]?: {\r\n loading?: boolean;\r\n data?: PrivateEquityCapitalCall[];\r\n error?: string;\r\n };\r\n};\r\n\r\nexport type PrivateEquityCapitalCallActions = ActionType;\r\n\r\nexport default function privateEquityCapitalCall(state: PrivateEquityCapitalCallState = {},\r\n action: PrivateEquityCapitalCallActions) {\r\n switch (action.type) {\r\n case getType(privateEquityCapitalCallActions.load):\r\n return { ...state, [action.contentType]: { ...state[action.contentType], loading: true } };\r\n case getType(privateEquityCapitalCallActions.loadSuccess):\r\n return {\r\n ...state,\r\n [action.contentType]: { loading: false, data: action.data, error: undefined },\r\n };\r\n case getType(privateEquityCapitalCallActions.loadFail):\r\n return { ...state, [action.contentType]: { loading: false, error: action.error } };\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { Distribution } from \"types/Distribution\";\r\nimport { ActionType, getType } from \"typesafe-actions\";\r\nimport * as distributionsActions from \"./distributionsActions\";\r\n\r\nexport type DistributionsState = {\r\n [distribution in 1 | 2 | 3]?: {\r\n [K in distributionsActions.DistributionContentType]?: {\r\n loading?: boolean;\r\n data?: Distribution[];\r\n error?: string;\r\n };\r\n };\r\n};\r\n\r\nexport type DistributionsActions = ActionType;\r\n\r\nexport default function distributions(\r\n state: DistributionsState = {},\r\n action: DistributionsActions\r\n) {\r\n switch (action.type) {\r\n case getType(distributionsActions.load):\r\n return {\r\n ...state,\r\n [action.distribution]: {\r\n ...state[action.distribution],\r\n [action.contentType]: {\r\n ...(state[action.distribution] ?? {})[action.contentType],\r\n loading: true,\r\n },\r\n },\r\n };\r\n case getType(distributionsActions.loadSuccess):\r\n return {\r\n ...state,\r\n [action.distribution]: {\r\n ...state[action.distribution],\r\n [action.contentType]: { loading: false, data: action.data, error: undefined },\r\n },\r\n };\r\n case getType(distributionsActions.loadFail):\r\n return {\r\n ...state,\r\n [action.distribution]: {\r\n ...state[action.distribution],\r\n [action.contentType]: { loading: false, error: action.error },\r\n },\r\n };\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { Portfolio } from \"types/Transactions\";\r\nimport { ActionType, getType } from \"typesafe-actions\";\r\nimport { sums } from \"utility/sums\";\r\nimport * as transactiosnActions from \"./transactionsActions\";\r\n\r\nexport interface TransactionsState {\r\n loading?: boolean;\r\n data?: Portfolio[];\r\n error?: string;\r\n}\r\n\r\nexport type TransactionsActions = ActionType;\r\n\r\nexport default function transactions(\r\n state: TransactionsState = {},\r\n action: TransactionsActions\r\n) {\r\n switch (action.type) {\r\n case getType(transactiosnActions.load):\r\n return { ...state, loading: true };\r\n case getType(transactiosnActions.loadSuccess):\r\n const data = action.data?.map((d) => ({ ...d, Sums: sums(d) }));\r\n return { ...state, loading: false, data, error: undefined };\r\n case getType(transactiosnActions.loadFail):\r\n return { ...state, loading: false, error: action.error };\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { AssetClassParameter } from \"types/AssetClassParameter\";\r\nimport { ActionType, getType } from \"typesafe-actions\";\r\nimport * as assetClassParametersActions from \"./assetClassParametersActions\";\r\n\r\nexport interface AssetClassParametersState {\r\n loading?: boolean;\r\n data?: AssetClassParameter[];\r\n error?: string;\r\n}\r\n\r\nexport type AssetClassParametersActions = ActionType;\r\n\r\nexport default function assetClassParameters(\r\n state: AssetClassParametersState = {},\r\n action: AssetClassParametersActions\r\n) {\r\n switch (action.type) {\r\n case getType(assetClassParametersActions.load):\r\n return { ...state, loading: true };\r\n case getType(assetClassParametersActions.loadSuccess):\r\n return {\r\n ...state,\r\n loading: false,\r\n data: action.data,\r\n error: undefined,\r\n };\r\n case getType(assetClassParametersActions.loadFail):\r\n return { ...state, loading: false, error: action.error };\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { PortfolioStatements } from \"types/Statements\";\r\nimport { ActionType, getType } from \"typesafe-actions\";\r\nimport * as statementsActions from \"./statementsActions\";\r\n\r\nexport interface StatementsState {\r\n loading?: boolean;\r\n data?: PortfolioStatements[];\r\n error?: string;\r\n}\r\n\r\nexport type StatementsActions = ActionType;\r\n\r\nexport default function statements(\r\n state: StatementsState = {},\r\n action: StatementsActions\r\n) {\r\n switch (action.type) {\r\n case getType(statementsActions.load):\r\n return { ...state, loading: true };\r\n case getType(statementsActions.loadSuccess):\r\n const data = action.data?.map((d) => ({ ...d }));\r\n return { ...state, loading: false, data, error: undefined };\r\n case getType(statementsActions.loadFail):\r\n return { ...state, loading: false, error: action.error };\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { Summary } from \"types/Summary\";\r\nimport { ActionType, getType } from \"typesafe-actions\";\r\nimport * as summaryActions from \"./summaryActions\";\r\n\r\nexport type SummaryState = {\r\n [K in summaryActions.SummaryContentType]?: {\r\n loading?: boolean;\r\n data?: Summary[];\r\n error?: string;\r\n };\r\n};\r\n\r\nexport type SummaryActions = ActionType;\r\n\r\nexport default function summary(state: SummaryState = {}, action: SummaryActions) {\r\n switch (action.type) {\r\n case getType(summaryActions.load):\r\n return { ...state, [action.contentType]: { ...state[action.contentType], loading: true } };\r\n case getType(summaryActions.loadSuccess):\r\n return {\r\n ...state,\r\n [action.contentType]: { loading: false, data: action.data, error: undefined },\r\n };\r\n case getType(summaryActions.loadFail):\r\n return { ...state, [action.contentType]: { loading: false, error: action.error } };\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { AssetClassDistribution } from \"types/AssetClassDistribution\";\r\nimport { ActionType, getType } from \"typesafe-actions\";\r\nimport * as assetClassDistributionActions from \"./assetClassDistributionActions\";\r\n\r\nexport type AssetClassDistributionState = {\r\n [K in assetClassDistributionActions.AssetClassDistributionContentType]?: {\r\n loading?: boolean;\r\n data?: AssetClassDistribution[];\r\n error?: string;\r\n };\r\n};\r\n\r\nexport type AssetClassDistributionActions = ActionType;\r\n\r\nexport default function assetClassDistribution(\r\n state: AssetClassDistributionState = {},\r\n action: AssetClassDistributionActions\r\n) {\r\n switch (action.type) {\r\n case getType(assetClassDistributionActions.load):\r\n return { ...state, [action.contentType]: { ...state[action.contentType], loading: true } };\r\n case getType(assetClassDistributionActions.loadSuccess):\r\n return {\r\n ...state,\r\n [action.contentType]: { loading: false, data: action.data, error: undefined },\r\n };\r\n case getType(assetClassDistributionActions.loadFail):\r\n return { ...state, [action.contentType]: { loading: false, error: action.error } };\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { PortfolioProfitsAndLosses } from \"types/ProfitsAndLosses\";\r\nimport { ActionType, getType } from \"typesafe-actions\";\r\nimport * as profitsAndLossesActions from \"./profitsAndLossesActions\";\r\n\r\nexport interface ProfitsAndLossesState {\r\n loading?: boolean;\r\n data?: PortfolioProfitsAndLosses[];\r\n error?: string;\r\n}\r\n\r\nexport type ProfitsAndLossesActions = ActionType<\r\n typeof profitsAndLossesActions\r\n>;\r\n\r\nexport default function profitsAndLosses(\r\n state: ProfitsAndLossesState = {},\r\n action: ProfitsAndLossesActions\r\n) {\r\n switch (action.type) {\r\n case getType(profitsAndLossesActions.load):\r\n return { ...state, loading: true };\r\n case getType(profitsAndLossesActions.loadSuccess):\r\n const data = action.data?.map((d) => ({ ...d }));\r\n return { ...state, loading: false, data, error: undefined };\r\n case getType(profitsAndLossesActions.loadFail):\r\n return { ...state, loading: false, error: action.error };\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { Covenants } from \"types/Covenants\";\r\nimport { ActionType, getType } from \"typesafe-actions\";\r\nimport * as covenantsActions from \"./covenantsActions\";\r\n\r\nexport interface CovenantsState {\r\n loading?: boolean;\r\n data?: Covenants[];\r\n count?: number;\r\n loadingCount?: boolean;\r\n countError?: string;\r\n error?: string;\r\n}\r\n\r\nexport type CovenantsActions = ActionType;\r\n\r\nexport default function covenants(state: CovenantsState = {}, action: CovenantsActions) {\r\n switch (action.type) {\r\n case getType(covenantsActions.load):\r\n return { ...state, loading: true };\r\n case getType(covenantsActions.loadSuccess):\r\n const data = action.data?.map((d) => ({ ...d }));\r\n return { ...state, loading: false, data, error: undefined };\r\n case getType(covenantsActions.loadFail):\r\n return { ...state, loading: false, error: action.error };\r\n case getType(covenantsActions.loadCount):\r\n return { ...state, loadingCount: true };\r\n case getType(covenantsActions.loadCountSuccess):\r\n return { ...state, loading: false, loadingCount: true, count: action.data, error: undefined };\r\n case getType(covenantsActions.loadCountFail):\r\n return { ...state, loadingCount: false, countError: action.error };\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { ActionType, getType } from \"typesafe-actions\";\r\nimport * as reportActions from \"./reportActions\";\r\n\r\nexport interface ReportState {\r\n loading?: boolean;\r\n data?: string;\r\n error?: string;\r\n}\r\n\r\nexport type ReportActions = ActionType;\r\n\r\nexport default function report(state: ReportState = {}, action: ReportActions) {\r\n switch (action.type) {\r\n case getType(reportActions.load):\r\n return { ...state, loading: true };\r\n case getType(reportActions.loadSuccess):\r\n return {\r\n ...state,\r\n loading: false,\r\n data: action.data,\r\n error: undefined,\r\n };\r\n case getType(reportActions.loadFail):\r\n return { ...state, loading: false, error: action.error };\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { applyMiddleware, createStore } from \"redux\";\r\nimport thunkMiddleware from \"redux-thunk\";\r\nimport { composeWithDevTools } from \"redux-devtools-extension\";\r\nimport { persistStore } from \"redux-persist\";\r\n\r\nimport rootReducer from \"./rootReducer\";\r\n\r\nconst configureStore = () => {\r\n const middlewares = [thunkMiddleware];\r\n const middlewareEnhancer = applyMiddleware(...middlewares);\r\n\r\n const composedEnhancers = composeWithDevTools(middlewareEnhancer);\r\n\r\n const store = createStore(rootReducer, {}, composedEnhancers);\r\n\r\n const persistor = persistStore(store);\r\n\r\n return { store, persistor };\r\n};\r\n\r\nexport default configureStore;\r\n","import React from \"react\";\r\nimport { TextField } from \"@material-ui/core\";\r\nimport { DatePicker } from \"@material-ui/lab\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport moment, { Moment } from \"moment\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { RootState } from \"redux/rootReducer\";\r\nimport { changeReportDate, changeStartDate } from \"redux/user/userActions\";\r\n\r\nconst ReportDatePicker = () => {\r\n const { t } = useTranslation();\r\n\r\n const dispatch = useDispatch();\r\n\r\n const value = useSelector((state: RootState) => state.user.reportDate);\r\n const startDate = useSelector((state: RootState) => state.user.startDate);\r\n const minDateString = useSelector(\r\n (state: RootState) => state.portfolioInformation.data?.SalkkuAloitettu\r\n );\r\n const minDate =\r\n minDateString !== undefined ? moment.utc(minDateString) : undefined;\r\n\r\n return (\r\n {\r\n if (moment(inputValue).isBefore(startDate)) {\r\n dispatch(\r\n changeStartDate(\r\n moment\r\n .utc(inputValue)\r\n .subtract(1, \"months\")\r\n .startOf(\"month\")\r\n .toISOString()\r\n )\r\n );\r\n }\r\n dispatch(changeReportDate((inputValue as Moment).toISOString()));\r\n }}\r\n maxDate={moment().utc().subtract(1, \"day\")}\r\n minDate={minDate}\r\n renderInput={(params) => (\r\n \r\n )}\r\n />\r\n );\r\n};\r\n\r\nexport default React.memo(ReportDatePicker);\r\n","import moment from \"moment\";\r\n\r\nexport const dateToString = (value?: Date, format = \"DD.MM.YYYY\") => {\r\n return value ? moment.utc(value).format(format) : \"\";\r\n};\r\n\r\nexport const dateToMonthAndYear = (value?: Date) => {\r\n return value ? moment.utc(value).format(\"MM/YY\") : \"\";\r\n};\r\n\r\nexport const getCurrentYear = () => {\r\n return moment().year();\r\n};\r\n","export enum AssetClass {\r\n Art,\r\n Cash,\r\n Commodity,\r\n Currency,\r\n Derivative,\r\n DirectInvestments,\r\n Equity,\r\n FixedIncome,\r\n Forest,\r\n MixedAllocation,\r\n PrivateDebt,\r\n PrivateEquity,\r\n RealEstate,\r\n Specialty,\r\n Structured,\r\n}\r\n","import React from \"react\";\r\n\r\nexport const asDecimal = (value?: number, fractionDigits?: number) => {\r\n if (value === undefined) {\r\n return \"-\";\r\n }\r\n\r\n return new Intl.NumberFormat(\"fi-FI\", {\r\n style: \"decimal\",\r\n maximumFractionDigits: fractionDigits ?? 0,\r\n minimumFractionDigits: fractionDigits ?? 0,\r\n })\r\n .format(value)\r\n .replace(\"−\", \"- \")\r\n .replace(\".\", \",\")\r\n .replace(/ /g, \"\\u00a0\");\r\n};\r\n\r\nexport const asEur = (\r\n value?: number,\r\n fractionDigits?: number,\r\n tableValue?: boolean\r\n) => {\r\n if (value) {\r\n const res = new Intl.NumberFormat(\"fi-FI\", {\r\n style: \"currency\",\r\n currency: \"EUR\",\r\n maximumFractionDigits: fractionDigits ?? 0,\r\n minimumFractionDigits: fractionDigits ?? 0,\r\n })\r\n .format(value)\r\n .replace(\"−\", \"- \")\r\n .replace(\".\", \",\")\r\n .replace(/ /g, \"\\u00a0\");\r\n\r\n if (tableValue) {\r\n return (\r\n <>\r\n {res.split(\"€\")[0]}\r\n \r\n \r\n );\r\n }\r\n\r\n return res;\r\n }\r\n return \"-\";\r\n};\r\n\r\nexport const asPercent = (\r\n value?: number,\r\n fractionDigits?: number,\r\n tableValue?: boolean\r\n) => {\r\n if (value) {\r\n const res = Number(value / 100)\r\n .toLocaleString(undefined, {\r\n style: \"percent\",\r\n maximumFractionDigits: fractionDigits ?? 2,\r\n minimumFractionDigits: fractionDigits ?? 2,\r\n unitDisplay: \"short\",\r\n })\r\n .replace(\"-\", \"- \")\r\n .replace(\"%\", \" %\")\r\n .replace(\".\", \",\")\r\n .replace(/ /g, \"\\u00a0\");\r\n\r\n if (tableValue) {\r\n return (\r\n <>\r\n {res.split(\"%\")[0]}\r\n %\r\n \r\n );\r\n }\r\n\r\n return res;\r\n }\r\n return \"-\";\r\n};\r\n\r\nexport const seperateThousands = (value?: number, fractionDigits?: number) => {\r\n if (value) {\r\n return new Intl.NumberFormat(\"fi-FI\", {\r\n maximumFractionDigits: fractionDigits ?? 0,\r\n minimumFractionDigits: fractionDigits ?? 0,\r\n }).format(value);\r\n }\r\n return \"-\";\r\n};\r\n\r\nexport const countPercent = (value1: number, value2: number) => {\r\n return (value1 / value2) * 100;\r\n};\r\n","import { useMediaQuery } from \"@material-ui/core\";\r\nimport React from \"react\";\r\n\r\ninterface Props {\r\n loginPage?: boolean;\r\n}\r\n\r\nconst ChartLoader = (props: Props) => {\r\n const { loginPage } = props;\r\n\r\n const matchesMediaQuery = useMediaQuery(\"(min-width: 600px)\");\r\n\r\n const chartMargin = matchesMediaQuery ? 60 : 35;\r\n\r\n return (\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\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 React.memo(ChartLoader);\r\n","import { useMediaQuery } from \"@material-ui/core\";\r\nimport React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport {\r\n LineChart,\r\n Line,\r\n XAxis,\r\n YAxis,\r\n CartesianGrid,\r\n Tooltip,\r\n Legend,\r\n Coordinate,\r\n TooltipProps,\r\n ResponsiveContainer,\r\n TooltipPayload,\r\n LegendProps,\r\n} from \"recharts\";\r\nimport { SortId, YieldHistory } from \"types/YieldHistory\";\r\nimport { dateToString, dateToMonthAndYear } from \"utility/date\";\r\nimport { asPercent } from \"utility/numbers\";\r\nimport ChartLoader from \"./ChartLoader\";\r\n\r\nconst CustomTooltip = ({ active, payload }: TooltipProps) => {\r\n if (active) {\r\n return (\r\n \r\n {dateToString(\r\n (payload ?? [])[0]?.payload?.ValueDate as Date | undefined\r\n )}\r\n

\r\n );\r\n }\r\n\r\n return <>;\r\n};\r\n\r\nconst renderLegend = (\r\n props: LegendProps,\r\n legendValues: number[],\r\n matchesMediaQuery: boolean\r\n) => {\r\n const { payload } = props;\r\n return (\r\n \r\n {payload\r\n ?.map((entry, index) => {\r\n return (\r\n \r\n \r\n \r\n \r\n {entry.value}\r\n {legendValues.length > 0 && (\r\n \r\n {(asPercent(legendValues[index ?? 0]) as string).replace(\r\n \"%\",\r\n \"\"\r\n )}\r\n \r\n )}\r\n \r\n );\r\n })\r\n .reverse()}\r\n \r\n );\r\n};\r\n\r\ninterface Props {\r\n data: YieldHistory[];\r\n index?: boolean;\r\n loading?: boolean;\r\n}\r\n\r\nconst LineChartComponent = (props: Props) => {\r\n const { data, index, loading } = props;\r\n\r\n let legendValues = [] as number[];\r\n\r\n const { t } = useTranslation();\r\n\r\n const matchesMediaQuery = useMediaQuery(\"(min-width: 600px)\");\r\n\r\n // tslint:disable-next-line: no-object-literal-type-assertion\r\n const tooltipPosition = { y: 0 } as Coordinate;\r\n\r\n const customerData = data.filter((d) => d.SortId === SortId.Customer);\r\n const indexData = data.filter((d) => d.SortId === SortId.Index);\r\n const indexName = indexData[0]?.Category;\r\n const mappedData = customerData.map((d, i) => ({\r\n ...d,\r\n IndexValue: indexData[i]?.Value,\r\n }));\r\n\r\n const yValues = [\r\n ...mappedData.map((d) => d.Value),\r\n ...mappedData.map((d) => d.IndexValue),\r\n ].filter(Boolean);\r\n\r\n const minY = Math.floor(Math.min(...yValues, 90) / 10) * 10;\r\n const maxY = Math.ceil(Math.max(...yValues, 110) / 10) * 10;\r\n\r\n return (\r\n <>\r\n \r\n {\r\n legendValues = [];\r\n }}\r\n onMouseMove={(chartProps: { activePayload?: TooltipPayload[] }) => {\r\n const { activePayload } = chartProps;\r\n\r\n legendValues = activePayload?.map((x) => x.value as number) ?? [];\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n renderLegend(legendProps, legendValues, matchesMediaQuery)\r\n }\r\n />\r\n {index && indexData.length > 0 && (\r\n \r\n )}\r\n (\"profit\")}\r\n type=\"monotone\"\r\n dot={false}\r\n dataKey=\"Value\"\r\n stroke=\"#003366\"\r\n activeDot={{ r: 5 }}\r\n strokeWidth={2}\r\n />\r\n \r\n \r\n {loading && (\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default React.memo(LineChartComponent);\r\n","import { RootDispatch } from \"redux/rootReducer\";\r\nimport { empty, load, loadSuccess } from \"./oidcActions\";\r\nimport * as request from \"utility/request\";\r\n\r\nconst apiUrl = process.env.REACT_APP_API_URL;\r\n\r\nexport const postToken = (code: string, state: string) => {\r\n return async (dispatch: RootDispatch) => {\r\n dispatch(load());\r\n\r\n try {\r\n const res = await request.postAndReturnResponseJson(\r\n `${apiUrl}/api/oidc/token?code=${code}&state=${state}`\r\n );\r\n dispatch(loadSuccess(res));\r\n\r\n return Promise.resolve(res);\r\n } catch (error) {\r\n return Promise.reject(error);\r\n }\r\n };\r\n};\r\n\r\nexport const removeState = empty;\r\n","import { RootAction, RootDispatch } from \"redux/rootReducer\";\r\nimport { store } from \"index\";\r\nimport { removeState } from \"redux/oidc/oidcFunctions\";\r\n\r\ninterface Headers {\r\n [key: string]: string;\r\n}\r\n\r\ninterface XMLHttpRequestWithHeaders extends XMLHttpRequest {\r\n headers: Headers;\r\n}\r\n\r\ninterface SuccessfulProgressEvent\r\n extends ProgressEvent {\r\n target: T;\r\n}\r\n\r\nconst globalHeaders: Map = new Map();\r\nconst activeRequests: Map = new Map();\r\n/**\r\n * Basic Promise wrapper for XMLHttpRequest\r\n * @param {string} method The method of the request, e.g. 'GET' or 'POST'\r\n * @param {string} url The url\r\n * @param {any} [data=null] The data to send with the request\r\n * @param {object} [headers={}] The request header parameters\r\n * @param {string} type Type of request for cancelling if another of same type is already in progress\r\n * @return {Promise} Returns a promise that resolves or rejects based on the request status\r\n */\r\nasync function promiseRequest(\r\n method: string,\r\n url: string,\r\n data?: any,\r\n headers: Headers = {},\r\n type?: string,\r\n blob: boolean = false\r\n): Promise> {\r\n return new Promise>(\r\n (resolve, reject) => {\r\n if (type) {\r\n const activeRequest = activeRequests.get(type);\r\n if (activeRequest) {\r\n activeRequest.abort();\r\n activeRequests.delete(type);\r\n }\r\n }\r\n\r\n const request = new XMLHttpRequest();\r\n\r\n if (type) {\r\n activeRequests.set(type, request);\r\n }\r\n\r\n const errorHandler = (\r\n event: ProgressEvent\r\n ) => {\r\n if (type) {\r\n activeRequests.delete(type);\r\n }\r\n reject(event);\r\n };\r\n\r\n const loadHandler = (event: ProgressEvent) => {\r\n const withHeaders = event as ProgressEvent;\r\n\r\n if (withHeaders.target !== null) {\r\n withHeaders.target.headers = headerStringToObject(\r\n request.getAllResponseHeaders()\r\n );\r\n\r\n if (withHeaders.target.status < 400) {\r\n if (type) {\r\n activeRequests.delete(type);\r\n }\r\n\r\n resolve(\r\n withHeaders as SuccessfulProgressEvent\r\n );\r\n return;\r\n }\r\n }\r\n\r\n errorHandler(withHeaders);\r\n };\r\n\r\n request.addEventListener(\"load\", loadHandler);\r\n request.addEventListener(\"error\", errorHandler);\r\n\r\n request.open(method.toUpperCase(), url);\r\n\r\n if (blob) {\r\n request.responseType = \"arraybuffer\";\r\n }\r\n\r\n if (headers) {\r\n Object.keys(headers).forEach((key) => {\r\n request.setRequestHeader(key, headers[key]);\r\n });\r\n }\r\n\r\n if (data instanceof FormData) {\r\n request.send(data);\r\n } else if (data) {\r\n request.send(JSON.stringify(data));\r\n } else {\r\n request.send();\r\n }\r\n }\r\n );\r\n}\r\n\r\nexport async function getXml(url: string, type?: string) {\r\n return promiseRequest(\r\n \"GET\",\r\n url,\r\n undefined,\r\n concatHeaders({ Accept: \"application/xml\" }, globalHeadersAsObject()),\r\n type\r\n );\r\n}\r\n\r\nexport async function get(url: string, type?: string) {\r\n return promiseRequest(\r\n \"GET\",\r\n url,\r\n undefined,\r\n concatHeaders(undefined, globalHeadersAsObject()),\r\n type\r\n );\r\n}\r\n\r\nexport async function getBlob(url: string, type?: string) {\r\n return promiseRequest(\r\n \"GET\",\r\n url,\r\n undefined,\r\n concatHeaders(undefined, globalHeadersAsObject()),\r\n type,\r\n true\r\n );\r\n}\r\n\r\nexport async function getResponseJson(url: string, type?: string) {\r\n const response = await get(url, type);\r\n try {\r\n return JSON.parse(response.target.responseText) as T;\r\n } catch (error) {\r\n return undefined;\r\n }\r\n}\r\n\r\nexport async function post(\r\n url: string,\r\n data?: any,\r\n type?: string,\r\n headers: object = {}\r\n) {\r\n return promiseRequest(\r\n \"POST\",\r\n url,\r\n data,\r\n concatHeaders(headers, globalHeadersAsObject()),\r\n type\r\n );\r\n}\r\n\r\nexport async function postForm(\r\n url: string,\r\n data: any,\r\n type?: string,\r\n headers: object = {}\r\n) {\r\n return promiseRequest(\r\n \"POST\",\r\n url,\r\n data,\r\n concatHeaders(headers, globalHeadersAsObject()),\r\n type\r\n );\r\n}\r\n\r\nexport async function postAndReturnResponseJson(\r\n url: string,\r\n data?: any,\r\n type?: string\r\n) {\r\n const response = await post(url, data, type, undefined);\r\n return JSON.parse(response.target.responseText) as T;\r\n}\r\n\r\nexport async function put(url: string, data?: any, type?: string) {\r\n return promiseRequest(\r\n \"PUT\",\r\n url,\r\n data,\r\n concatHeaders(\r\n { \"Content-Type\": \"application/json\" },\r\n globalHeadersAsObject()\r\n ),\r\n type\r\n );\r\n}\r\n\r\nexport async function putAndReturnResponseJson(\r\n url: string,\r\n data?: any,\r\n type?: string\r\n) {\r\n const response = await put(url, data, type);\r\n return JSON.parse(response.target.responseText) as T;\r\n}\r\n\r\nexport async function restDelete(\r\n url: string,\r\n data?: any,\r\n type?: string,\r\n apiVersion?: string,\r\n apiPrefix?: string\r\n) {\r\n return promiseRequest(\r\n \"DELETE\",\r\n url,\r\n data,\r\n concatHeaders(undefined, globalHeadersAsObject()),\r\n type\r\n );\r\n}\r\n\r\n/**\r\n * Sets a global header value for all requests\r\n * @param {string} name The header key\r\n * @param {string} value The value\r\n */\r\nexport function setGlobalHeader(name: string, value: string) {\r\n globalHeaders.set(name, value);\r\n}\r\n\r\n/**\r\n * Unsets a global header value\r\n * @param {string} name The header name to remove\r\n */\r\nexport function unsetGlobalHeader(name: string) {\r\n globalHeaders.delete(name);\r\n}\r\n\r\n/**\r\n * Removes all global headers\r\n */\r\nexport function removeAllGlobalHeaders() {\r\n globalHeaders.clear();\r\n}\r\n\r\nfunction headerStringToObject(headerString: string) {\r\n return headerString\r\n .split(\"\\r\\n\")\r\n .map((hdr) => hdr.split(\": \"))\r\n .reduce((object, hdr) => {\r\n return { ...object, [hdr[0].toLowerCase()]: hdr[1] };\r\n }, {});\r\n}\r\n\r\nfunction globalHeadersAsObject() {\r\n const returnValue: Headers = {};\r\n\r\n const token = store.getState().oidc.data?.AccessToken;\r\n\r\n if (token) {\r\n returnValue.Authorization = `Bearer ${token}`;\r\n }\r\n\r\n globalHeaders.forEach((value, key) => (returnValue[key] = value));\r\n\r\n return returnValue;\r\n}\r\n\r\nfunction concatHeaders(headersList?: object, globalHeadersList?: Headers) {\r\n const headersOut: Headers = {\r\n ...globalHeadersList,\r\n ...headersList,\r\n };\r\n\r\n return headersOut;\r\n}\r\n\r\nexport function handleFetchError(\r\n dispatch: RootDispatch,\r\n error: string,\r\n action: RootAction\r\n) {\r\n if (process.env.NODE_ENV === \"development\") {\r\n // tslint:disable-next-line: no-console\r\n console.log(error);\r\n }\r\n\r\n if (\r\n ((error as unknown as ProgressEvent)?.target as XMLHttpRequest).status ===\r\n 401\r\n ) {\r\n store.dispatch(removeState());\r\n }\r\n\r\n return dispatch(action);\r\n}\r\n","import { RootDispatch } from \"redux/rootReducer\";\r\nimport { load, loadFail, loadSuccess } from \"./yieldHistoryActions\";\r\nimport * as request from \"utility/request\";\r\nimport { YieldHistory } from \"types/YieldHistory\";\r\nimport { AssetClass } from \"types/AssetClass\";\r\n\r\nconst apiUrl = process.env.REACT_APP_API_URL;\r\n\r\nexport const loadYieldHistories = (\r\n reportControlId: string,\r\n reportDate: string,\r\n showIndex: boolean\r\n) => {\r\n return async (dispatch: RootDispatch) => {\r\n dispatch(load(\"all\"));\r\n\r\n try {\r\n const res = await request.getResponseJson(\r\n `${apiUrl}/api/yieldhistory?showIndex=${showIndex}&reportControlId=${reportControlId}&reportDate=${reportDate}`\r\n );\r\n dispatch(loadSuccess(\"all\", res));\r\n } catch (error) {\r\n return request.handleFetchError(dispatch, error, loadFail(\"all\", error));\r\n }\r\n };\r\n};\r\n\r\nexport const loadYieldHistoriesByAssetClass = (\r\n assetClass: AssetClass,\r\n reportControlId: string,\r\n reportDate: string,\r\n showIndex: boolean\r\n) => {\r\n const assetClassString = AssetClass[assetClass] as keyof typeof AssetClass;\r\n return async (dispatch: RootDispatch) => {\r\n dispatch(load(assetClassString));\r\n\r\n try {\r\n const res = await request.getResponseJson(\r\n `${apiUrl}/api/yieldhistory/${assetClass}?reportControlId=${reportControlId}&reportDate=${reportDate}&showIndex=${showIndex}`\r\n );\r\n dispatch(loadSuccess(assetClassString, res));\r\n } catch (error) {\r\n return request.handleFetchError(dispatch, error, loadFail(assetClassString, error));\r\n }\r\n };\r\n};\r\n","import { useMediaQuery } from \"@material-ui/core\";\r\nimport React from \"react\";\r\nimport { createUseStyles } from \"react-jss\";\r\nimport { useParams } from \"react-router-dom\";\r\nimport NoCustomership from \"./components/NoCustomership\";\r\nimport TechError from \"./components/TechError\";\r\n\r\nexport enum ErrorType {\r\n NoCustomership = \"nocustomership\",\r\n TechError = \"techerror\",\r\n}\r\n\r\ninterface Params {\r\n errorType: ErrorType;\r\n}\r\n\r\nconst useStyles = createUseStyles({\r\n container: {\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n },\r\n});\r\n\r\nconst Error = () => {\r\n const classes = useStyles();\r\n\r\n const matchesMediaQuery = useMediaQuery(\"(min-width: 600px)\");\r\n\r\n const { errorType } = useParams();\r\n\r\n const getCorrectError = (type: ErrorType) => {\r\n switch (type) {\r\n case ErrorType.NoCustomership:\r\n return ;\r\n case ErrorType.TechError:\r\n return ;\r\n default:\r\n return <>;\r\n }\r\n };\r\n\r\n return (\r\n \r\n {getCorrectError(errorType)}\r\n \r\n );\r\n};\r\n\r\nexport default React.memo(Error);\r\n","import React from \"react\";\r\nimport { Grid } from \"@material-ui/core\";\r\nimport LineChart from \"components/LineChart\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { getReportDateSelector } from \"redux/user/user\";\r\nimport { RootState } from \"redux/rootReducer\";\r\nimport { loadYieldHistories } from \"redux/yieldHistory/yieldHistoryFunctions\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { VisibleSections } from \"types/VisibleSections\";\r\n\r\nconst YieldHistory = () => {\r\n const { t } = useTranslation();\r\n const dispatch = useDispatch();\r\n\r\n const reportControlId = useSelector(\r\n (state: RootState) => state.user.reportControlId\r\n );\r\n const reportDate = useSelector(getReportDateSelector);\r\n\r\n const yieldHistory = useSelector(\r\n (state: RootState) => state.yieldHistory.all?.data ?? []\r\n );\r\n const yieldHistoryLoading = useSelector(\r\n (state: RootState) => state.yieldHistory.all?.loading\r\n );\r\n\r\n const showIndex = useSelector(\r\n (state: RootState) =>\r\n (state.user.visibleSections?.data as VisibleSections | undefined)\r\n ?.NaytaTuotto ?? false\r\n );\r\n\r\n React.useEffect(() => {\r\n if (reportControlId && reportDate) {\r\n dispatch(loadYieldHistories(reportControlId, reportDate, showIndex));\r\n }\r\n }, [dispatch, reportControlId, reportDate, showIndex]);\r\n\r\n return (\r\n \r\n

{t(\"yield_history\")}

\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default React.memo(YieldHistory);\r\n","export const graphColors = [\r\n [\"#003366\"],\r\n [\"#003366\", \"#D3741C\"],\r\n [\"#003366\", \"#4A76A2\", \"#D3741C\"],\r\n [\"#003366\", \"#4A76A2\", \"#D3741C\", \"#EBB078\"],\r\n [\"#000033\", \"#003366\", \"#4A76A2\", \"#D3741C\", \"#EBB078\"],\r\n [\"#000033\", \"#003366\", \"#4A76A2\", \"#AF631C\", \"#D3741C\", \"#EBB078\"],\r\n [\"#000033\", \"#003366\", \"#4A76A2\", \"#95B9DC\", \"#AF631C\", \"#D3741C\", \"#EBB078\"],\r\n [\"#000033\", \"#003366\", \"#4A76A2\", \"#95B9DC\", \"#AF631C\", \"#D3741C\", \"#EBB078\", \"#FFD0A3\"],\r\n];\r\n\r\nexport const hexToRgb = (hex: string, opacity?: number) => {\r\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\r\n\r\n if (result) {\r\n const rgb = {\r\n r: parseInt(result[1], 16),\r\n g: parseInt(result[2], 16),\r\n b: parseInt(result[3], 16),\r\n };\r\n\r\n const opacityValue = opacity !== undefined ? `, ${opacity}` : \"\";\r\n\r\n return `rgb(${rgb.r}, ${rgb.g}, ${rgb.b}${opacityValue})`;\r\n }\r\n\r\n return undefined;\r\n};\r\n","import { useMediaQuery } from \"@material-ui/core\";\r\nimport React from \"react\";\r\nimport Skeleton from \"react-loading-skeleton\";\r\nimport {\r\n Area,\r\n AreaChart,\r\n ResponsiveContainer,\r\n XAxis,\r\n YAxis,\r\n Legend,\r\n CartesianGrid,\r\n Tooltip,\r\n TooltipProps,\r\n Coordinate,\r\n TooltipPayload,\r\n LegendProps,\r\n} from \"recharts\";\r\nimport { AllocationHistory } from \"types/AllocationHistory\";\r\nimport { dateToString, dateToMonthAndYear } from \"utility/date\";\r\nimport { graphColors, hexToRgb } from \"utility/graphColors\";\r\nimport { asEur, asPercent } from \"utility/numbers\";\r\nimport ChartLoader from \"./ChartLoader\";\r\n\r\ninterface Props {\r\n data: AllocationHistory[];\r\n loading?: boolean;\r\n}\r\n\r\nconst CustomTooltip = ({ active, payload }: TooltipProps) => {\r\n if (active) {\r\n return (\r\n \r\n {dateToString((payload ?? [])[0]?.payload?.Month as Date | undefined)}\r\n

\r\n );\r\n }\r\n\r\n return <>;\r\n};\r\n\r\nconst renderLegend = (\r\n props: LegendProps,\r\n legendValues: number[],\r\n matchesMediaQuery: boolean\r\n) => {\r\n const { payload } = props;\r\n\r\n return (\r\n \r\n {payload && payload.length > 0 ? (\r\n payload.map((entry, index) => {\r\n const summaEur = asEur(legendValues[index ?? 0]);\r\n const summaPros =\r\n summaEur !== \"-\"\r\n ? `(${asPercent(\r\n (legendValues[index ?? 0] /\r\n legendValues\r\n .filter((x) => x !== undefined)\r\n .reduce((p, c) => p + c, 0)) *\r\n 100\r\n )})`\r\n : \"\";\r\n\r\n return (\r\n \r\n \r\n
\r\n

\r\n {entry.value}\r\n\r\n

\r\n \r\n {legendValues.length > 0 ? (\r\n `${summaEur} ${summaPros}`\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\n \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\n\r\nconst AllocationChart = (props: Props) => {\r\n const { data, loading } = props;\r\n\r\n const matchesMediaQuery = useMediaQuery(\"(min-width: 600px)\");\r\n\r\n const groupedObject = data.reduce((r, a) => {\r\n r[a.Month.toString()] = [...(r[a.Month.toString()] || []), a];\r\n return r;\r\n }, {} as { [key: string]: AllocationHistory[] });\r\n\r\n const categories = data.reduce((r, a) => {\r\n if (!r.includes(a.Category)) {\r\n r.push(a.Category);\r\n }\r\n return r;\r\n }, [] as string[]);\r\n\r\n const flattenedData = Object.keys(groupedObject).map((k) => {\r\n const item = groupedObject[k];\r\n\r\n const res: { Month: string; [key: string]: string | number } = { Month: k };\r\n\r\n item.forEach((i) => {\r\n res[i.Category] = i.Value;\r\n });\r\n\r\n return res;\r\n });\r\n\r\n let legendValues = [] as number[];\r\n\r\n // tslint:disable-next-line: no-object-literal-type-assertion\r\n const tooltipPosition = { y: 0 } as Coordinate;\r\n\r\n const tickformatterAmount = () => {\r\n const maxValue = Math.max(...data.map((d) => d.Value));\r\n\r\n if (maxValue > 1000000) {\r\n return {\r\n unit: \"M€\",\r\n formatter: 1000000,\r\n };\r\n } else if (maxValue > 1000) {\r\n return {\r\n unit: \"k€\",\r\n formatter: 1000,\r\n };\r\n }\r\n\r\n return {\r\n unit: \"€\",\r\n formatter: 1,\r\n };\r\n };\r\n\r\n const categoriesLength = categories.length > 0 ? categories.length - 1 : 0;\r\n\r\n return (\r\n <>\r\n \r\n {\r\n legendValues = [];\r\n }}\r\n onMouseMove={(chartProps: { activePayload?: TooltipPayload[] }) => {\r\n const { activePayload } = chartProps;\r\n\r\n legendValues = activePayload?.map((x) => x.value as number) ?? [];\r\n }}\r\n height={225}\r\n >\r\n \r\n \r\n \r\n value / tickformatterAmount().formatter\r\n }\r\n label={{\r\n value: tickformatterAmount().unit,\r\n position: matchesMediaQuery ? \"insideTopLeft\" : \"right\",\r\n }}\r\n width={matchesMediaQuery ? 60 : 35}\r\n />\r\n \r\n {categories.map((c, i) => (\r\n \r\n ))}\r\n \r\n renderLegend(legendProps, legendValues, matchesMediaQuery)\r\n }\r\n />\r\n \r\n \r\n {loading && (\r\n \r\n \r\n
\r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default React.memo(AllocationChart);\r\n","import { RootDispatch } from \"redux/rootReducer\";\r\nimport { load, loadFail, loadSuccess } from \"./allocationHistoryActions\";\r\nimport * as request from \"utility/request\";\r\nimport { AllocationHistory } from \"types/AllocationHistory\";\r\nimport { AssetClass } from \"types/AssetClass\";\r\n\r\nconst apiUrl = process.env.REACT_APP_API_URL;\r\n\r\nexport const loadAllocationHistories = (reportControlId: string, reportDate: string) => {\r\n return async (dispatch: RootDispatch) => {\r\n dispatch(load(\"all\"));\r\n\r\n try {\r\n const res = await request.getResponseJson(\r\n `${apiUrl}/api/allocationhistory?reportControlId=${reportControlId}&reportDate=${reportDate}`\r\n );\r\n dispatch(loadSuccess(\"all\", res));\r\n } catch (error) {\r\n return request.handleFetchError(dispatch, error, loadFail(\"all\", error));\r\n }\r\n };\r\n};\r\n\r\nexport const loadAllocationHistoriesByAssetClass = (\r\n assetClass: AssetClass,\r\n reportControlId: string,\r\n reportDate: string\r\n) => {\r\n const assetClassString = AssetClass[assetClass] as keyof typeof AssetClass;\r\n return async (dispatch: RootDispatch) => {\r\n dispatch(load(assetClassString));\r\n\r\n try {\r\n const res = await request.getResponseJson(\r\n `${apiUrl}/api/allocationhistory/${assetClass}?reportControlId=${reportControlId}&reportDate=${reportDate}`\r\n );\r\n dispatch(loadSuccess(assetClassString, res));\r\n } catch (error) {\r\n return request.handleFetchError(dispatch, error, loadFail(assetClassString, error));\r\n }\r\n };\r\n};\r\n","import React from \"react\";\r\nimport { Grid } from \"@material-ui/core\";\r\nimport AllocationChart from \"components/AllocationChart\";\r\nimport { loadAllocationHistories } from \"redux/allocationHistory/allocationHistoryFunctions\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { getReportDateSelector } from \"redux/user/user\";\r\nimport { RootState } from \"redux/rootReducer\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nconst AllocationHistory = () => {\r\n const { t } = useTranslation();\r\n const dispatch = useDispatch();\r\n\r\n const reportControlId = useSelector(\r\n (state: RootState) => state.user.reportControlId\r\n );\r\n const reportDate = useSelector(getReportDateSelector);\r\n\r\n const allocationHistory = useSelector(\r\n (state: RootState) => state.allocationHistory.all?.data ?? []\r\n );\r\n const allocationHistoryLoading = useSelector(\r\n (state: RootState) => state.allocationHistory.all?.loading\r\n );\r\n\r\n React.useEffect(() => {\r\n if (reportControlId && reportDate) {\r\n dispatch(loadAllocationHistories(reportControlId, reportDate));\r\n }\r\n }, [dispatch, reportControlId, reportDate]);\r\n\r\n return (\r\n \r\n

\r\n {t(\"allocation_history\")}\r\n

\r\n \r\n \r\n );\r\n};\r\n\r\nexport default React.memo(AllocationHistory);\r\n","import React from \"react\";\r\nimport { Column, useTable, ColumnInstance, useExpanded, PluginHook, Cell } from \"react-table\";\r\nimport { StandardLonghandProperties } from \"csstype\";\r\nimport Skeleton from \"react-loading-skeleton\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\r\nimport ExpandLessIcon from \"@material-ui/icons/ExpandLess\";\r\n\r\ninterface Props {\r\n columns: Column[];\r\n data: T[];\r\n hasFooter?: boolean;\r\n loading?: boolean;\r\n footerStyles?: React.CSSProperties;\r\n shadeNulls?: boolean;\r\n subRows?: boolean;\r\n}\r\n\r\nexport interface CustomColumnInstance extends ColumnInstance {\r\n hideTitle?: boolean;\r\n textAlign?: StandardLonghandProperties[\"textAlign\"];\r\n whiteSpace?: StandardLonghandProperties[\"whiteSpace\"];\r\n width?: StandardLonghandProperties[\"width\"];\r\n paddingRight?: StandardLonghandProperties[\"paddingRight\"];\r\n fontFamily?: StandardLonghandProperties[\"fontFamily\"];\r\n fontStyleOverride?: (cell: Cell) => StandardLonghandProperties[\"fontStyle\"];\r\n separator?: boolean;\r\n}\r\n\r\nconst Table = (props: Props) => {\r\n const { columns, data, loading, hasFooter, footerStyles = {}, subRows } = props;\r\n\r\n const { t } = useTranslation();\r\n\r\n const noData = !loading && data.length === 0;\r\n\r\n const tableColumns = React.useMemo(\r\n () =>\r\n loading\r\n ? columns.map((c) => ({\r\n ...c,\r\n Cell: ,\r\n Footer: hasFooter ? : undefined,\r\n }))\r\n : columns,\r\n [loading, columns, hasFooter]\r\n );\r\n\r\n const tableData = React.useMemo(() => {\r\n if (loading && data.length < 1) {\r\n return [{}, {}, {}, {}, {}] as T[];\r\n }\r\n if (noData && !hasFooter) {\r\n return [\r\n {\r\n [tableColumns[0].accessor as string]: t(\"no_data\"),\r\n },\r\n ] as T[];\r\n }\r\n return data;\r\n }, [loading, data, noData, t, tableColumns, hasFooter]);\r\n\r\n const hasSubRows = React.useMemo(\r\n () =>\r\n subRows && data.length > 0\r\n ? data.some((d) => (d as any)?.subRows?.length > 0 ?? false)\r\n : false,\r\n [data, subRows]\r\n );\r\n\r\n const plugins = React.useMemo(\r\n () => (subRows ? ([useExpanded] as PluginHook[]) : ([] as PluginHook[])),\r\n [subRows]\r\n );\r\n\r\n const tableColumnsData = React.useMemo(() => {\r\n const data = [] as Column[];\r\n\r\n if (hasSubRows) {\r\n data.push({\r\n id: \"expander\",\r\n width: 20,\r\n Cell: ({ row }: { row: any }) => {\r\n return row.canExpand ? (\r\n \r\n {row.isExpanded ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n ) : null;\r\n },\r\n });\r\n }\r\n return [...data, ...tableColumns];\r\n }, [tableColumns, hasSubRows]);\r\n\r\n const { getTableProps, getTableBodyProps, headerGroups, footerGroups, rows, prepareRow } =\r\n useTable(\r\n {\r\n columns: tableColumnsData,\r\n data: tableData,\r\n getSubRows: subRows ? (row: any) => row.subRows : undefined,\r\n },\r\n ...plugins\r\n );\r\n\r\n return (\r\n \r\n \r\n {headerGroups.map((headerGroup) => (\r\n \r\n {headerGroup.headers.map((column) => {\r\n const textAlign = (column as CustomColumnInstance).textAlign;\r\n const whiteSpace = (column as CustomColumnInstance).whiteSpace;\r\n const width = (column as CustomColumnInstance).width;\r\n const minWidth = column.minWidth;\r\n const paddingRight = (column as CustomColumnInstance).paddingRight;\r\n const hideTitle = (column as CustomColumnInstance).hideTitle;\r\n\r\n return (\r\n ).separator ? \"separator\" : \"\"}\r\n >\r\n {column.render(\"Header\")}\r\n \r\n );\r\n })}\r\n \r\n ))}\r\n \r\n \r\n {rows.map((row) => {\r\n prepareRow(row);\r\n return (\r\n \r\n {row.cells.map((cell, i) => {\r\n const textAlign = (cell.column as CustomColumnInstance).textAlign;\r\n const width = (cell.column as CustomColumnInstance).width;\r\n const minWidth = cell.column.minWidth;\r\n const whiteSpace = (cell.column as CustomColumnInstance).whiteSpace;\r\n const paddingRight = (cell.column as CustomColumnInstance).paddingRight;\r\n const fontFamily = (cell.column as CustomColumnInstance).fontFamily;\r\n const fontStyleFunction = (cell.column as CustomColumnInstance)\r\n .fontStyleOverride;\r\n\r\n const fontStyle = fontStyleFunction?.(cell);\r\n\r\n const noDataStyles =\r\n noData && !hasFooter ? { color: \"#D3741C\", fontStyle: \"italic\" } : {};\r\n\r\n if (noData && i !== 0) {\r\n cell.column.Cell = \"\";\r\n }\r\n let classString = \"\";\r\n if (cell.value === null && props.shadeNulls) {\r\n classString += \"null-cell \";\r\n }\r\n if ((cell.column as CustomColumnInstance).separator) {\r\n classString += \"separator \";\r\n }\r\n\r\n const isSubRow = (cell.row as any).depth > 0;\r\n\r\n return (\r\n \r\n {cell.render(\"Cell\")}\r\n \r\n );\r\n })}\r\n \r\n );\r\n })}\r\n \r\n {hasFooter && (\r\n \r\n {footerGroups.map((group) => {\r\n return (\r\n \r\n {group.headers.map((column) => {\r\n const textAlign = (column as CustomColumnInstance).textAlign;\r\n const width = (column as CustomColumnInstance).width;\r\n const minWidth = column.minWidth;\r\n const whiteSpace = (column as CustomColumnInstance).whiteSpace;\r\n const paddingRight = (column as CustomColumnInstance).paddingRight;\r\n return (\r\n ).separator ? \"separator\" : \"\"}\r\n >\r\n {column.render(\"Footer\")}\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 React.memo(Table);\r\n","import { RootDispatch } from \"redux/rootReducer\";\r\nimport { load, loadFail, loadSuccess } from \"./yieldListActions\";\r\nimport * as request from \"utility/request\";\r\nimport { YieldList } from \"types/YieldList\";\r\nimport { AssetClass } from \"types/AssetClass\";\r\n\r\nconst apiUrl = process.env.REACT_APP_API_URL;\r\n\r\nexport const loadYieldList = (reportControlId: string, reportDate: string) => {\r\n return async (dispatch: RootDispatch) => {\r\n dispatch(load(\"all\"));\r\n\r\n try {\r\n const res = await request.getResponseJson(\r\n `${apiUrl}/api/yieldlist?reportControlId=${reportControlId}&reportDate=${reportDate}`\r\n );\r\n dispatch(loadSuccess(\"all\", res));\r\n } catch (error) {\r\n return request.handleFetchError(dispatch, error, loadFail(\"all\", error));\r\n }\r\n };\r\n};\r\n\r\nexport const loadYieldListByAssetClass = (\r\n assetClass: AssetClass,\r\n reportControlId: string,\r\n reportDate: string\r\n) => {\r\n const assetClassString = AssetClass[assetClass] as keyof typeof AssetClass;\r\n return async (dispatch: RootDispatch) => {\r\n dispatch(load(assetClassString));\r\n\r\n try {\r\n const res = await request.getResponseJson(\r\n `${apiUrl}/api/yieldlist/${assetClass}?reportControlId=${reportControlId}&reportDate=${reportDate}`\r\n );\r\n dispatch(loadSuccess(assetClassString, res));\r\n } catch (error) {\r\n return request.handleFetchError(dispatch, error, loadFail(assetClassString, error));\r\n }\r\n };\r\n};\r\n","import { Grid, useMediaQuery } from \"@material-ui/core\";\r\nimport Table from \"components/Table\";\r\nimport React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { Cell } from \"react-table\";\r\nimport { RootState } from \"redux/rootReducer\";\r\nimport { getReportDateSelector } from \"redux/user/user\";\r\nimport { loadYieldList } from \"redux/yieldList/yieldListFunctions\";\r\nimport { asEur } from \"utility/numbers\";\r\nimport { YieldList } from \"types/YieldList\";\r\n\r\nconst YieldListTable = () => {\r\n const dispatch = useDispatch();\r\n\r\n const { t } = useTranslation();\r\n\r\n const matchesMediaQuery = useMediaQuery(\"(min-width: 960px)\");\r\n\r\n const reportControlId = useSelector(\r\n (state: RootState) => state.user.reportControlId\r\n );\r\n const reportDate = useSelector(getReportDateSelector);\r\n\r\n const yieldList = useSelector(\r\n (state: RootState) => state.yieldList.all?.data ?? []\r\n );\r\n const yieldListLoading = useSelector(\r\n (state: RootState) => state.yieldList.all?.loading\r\n );\r\n\r\n React.useEffect(() => {\r\n if (reportControlId && reportDate) {\r\n dispatch(loadYieldList(reportControlId, reportDate));\r\n }\r\n }, [dispatch, reportControlId, reportDate]);\r\n\r\n const yieldListFooterItem = yieldList.find(\r\n (x) => x.Salkku === \"Kokonaistuotto\"\r\n );\r\n\r\n const yieldListColumns = [\r\n {\r\n Header: \"\",\r\n accessor: \"Salkku\",\r\n paddingRight: \"10px\",\r\n whiteSpace: \"nowrap\",\r\n Footer: yieldListFooterItem?.Salkku ?? \"\",\r\n },\r\n {\r\n Header: t(\"start\"),\r\n accessor: \"Alusta\",\r\n paddingRight: \"10px\",\r\n whiteSpace: \"nowrap\",\r\n Cell: (cell: Cell) =>\r\n asEur(cell.value, undefined, true),\r\n textAlign: \"right\",\r\n fontFamily: \"Lato light\",\r\n Footer: asEur(yieldListFooterItem?.Alusta, undefined, true),\r\n },\r\n {\r\n Header: t(\"ytd\"),\r\n accessor: \"YTD\",\r\n paddingRight: \"10px\",\r\n whiteSpace: \"nowrap\",\r\n Cell: (cell: Cell) =>\r\n cell.row.original.Salkku !== \"Sijoitettu pääoma\"\r\n ? asEur(cell.value, undefined, true)\r\n : \"\",\r\n textAlign: \"right\",\r\n fontFamily: \"Lato light\",\r\n Footer: asEur(yieldListFooterItem?.YTD, undefined, true),\r\n },\r\n {\r\n Header: t(\"month\"),\r\n accessor: \"Kuukausi\",\r\n whiteSpace: \"nowrap\",\r\n Cell: (cell: Cell) =>\r\n cell.row.original.Salkku !== \"Sijoitettu pääoma\"\r\n ? asEur(cell.value, undefined, true)\r\n : \"\",\r\n textAlign: \"right\",\r\n fontFamily: \"Lato light\",\r\n Footer: asEur(yieldListFooterItem?.Kuukausi, undefined, true),\r\n },\r\n ];\r\n\r\n return (\r\n \r\n x.Salkku !== \"Kokonaistuotto\")}\r\n columns={yieldListColumns}\r\n hasFooter\r\n loading={yieldListLoading}\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default React.memo(YieldListTable);\r\n","import { RootDispatch } from \"redux/rootReducer\";\r\nimport { load, loadFail, loadSuccess } from \"./yieldPerTimespanActions\";\r\nimport * as request from \"utility/request\";\r\nimport { YieldPerTimespan } from \"types/YieldPerTimespan\";\r\nimport { AssetClass } from \"types/AssetClass\";\r\n\r\nconst apiUrl = process.env.REACT_APP_API_URL;\r\n\r\nexport const loadYieldPerTimespans = (\r\n reportControlId: string,\r\n reportDate: string,\r\n showIndex: boolean\r\n) => {\r\n return async (dispatch: RootDispatch) => {\r\n dispatch(load(\"all\"));\r\n\r\n try {\r\n const res = await request.getResponseJson(\r\n `${apiUrl}/api/yieldpertimespan?reportControlId=${reportControlId}&reportDate=${reportDate}&showIndex=${showIndex}`\r\n );\r\n dispatch(loadSuccess(\"all\", res));\r\n } catch (error) {\r\n return request.handleFetchError(dispatch, error, loadFail(\"all\", error));\r\n }\r\n };\r\n};\r\n\r\nexport const loadYieldPerTimespansByAssetClass = (\r\n assetClass: AssetClass,\r\n reportControlId: string,\r\n reportDate: string,\r\n showIndex: boolean\r\n) => {\r\n const assetClassString = AssetClass[assetClass] as keyof typeof AssetClass;\r\n return async (dispatch: RootDispatch) => {\r\n dispatch(load(assetClassString));\r\n\r\n try {\r\n const res = await request.getResponseJson(\r\n `${apiUrl}/api/yieldpertimespan/${assetClass}?reportControlId=${reportControlId}&reportDate=${reportDate}&showIndex=${showIndex}`\r\n );\r\n dispatch(loadSuccess(assetClassString, res));\r\n } catch (error) {\r\n return request.handleFetchError(dispatch, error, loadFail(assetClassString, error));\r\n }\r\n };\r\n};\r\n","import { Grid, useMediaQuery } from \"@material-ui/core\";\r\nimport Table from \"components/Table\";\r\nimport React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { Cell } from \"react-table\";\r\nimport { RootState } from \"redux/rootReducer\";\r\nimport { getReportDateSelector } from \"redux/user/user\";\r\nimport { loadYieldPerTimespans } from \"redux/yieldPerTimespan/yieldPerTimespanFunctions\";\r\nimport { VisibleSections } from \"types/VisibleSections\";\r\nimport { YieldPerTimespan } from \"types/YieldPerTimespan\";\r\nimport { asPercent } from \"utility/numbers\";\r\n\r\nconst YieldPerTimespanTable = () => {\r\n const dispatch = useDispatch();\r\n const { t } = useTranslation();\r\n\r\n const matchesMediaQuery = useMediaQuery(\"(min-width: 960px)\");\r\n\r\n const reportControlId = useSelector((state: RootState) => state.user.reportControlId);\r\n const reportDate = useSelector(getReportDateSelector);\r\n\r\n const yieldPerTimespan = useSelector(\r\n (state: RootState) => state.yieldPerTimespan.all?.data ?? []\r\n );\r\n const loading = useSelector((state: RootState) => state.yieldPerTimespan.all?.loading);\r\n\r\n const showIndex = useSelector(\r\n (state: RootState) =>\r\n (state.user.visibleSections?.data as VisibleSections | undefined)?.NaytaTuotto ?? false\r\n );\r\n\r\n React.useEffect(() => {\r\n if (reportControlId && reportDate) {\r\n dispatch(loadYieldPerTimespans(reportControlId, reportDate, showIndex));\r\n }\r\n }, [dispatch, reportControlId, reportDate, showIndex]);\r\n\r\n const yieldPerTimespanColumns = [\r\n {\r\n Header: t(\"period\"),\r\n accessor: \"Jakso\",\r\n whiteSpace: \"nowrap\",\r\n paddingRight: \"10px\",\r\n },\r\n {\r\n Header: t(\"wealth\"),\r\n accessor: \"Salkku\",\r\n whiteSpace: \"nowrap\",\r\n paddingRight: \"10px\",\r\n minWidth: 100,\r\n Cell: (cell: Cell) => asPercent(cell.value, undefined, true),\r\n textAlign: \"right\",\r\n fontFamily: \"Lato light\",\r\n },\r\n {\r\n Header: t(\"index\"),\r\n accessor: \"Indeksi\",\r\n whiteSpace: \"nowrap\",\r\n paddingRight: \"10px\",\r\n minWidth: 100,\r\n Cell: (cell: Cell) => asPercent(cell.value, undefined, true),\r\n textAlign: \"right\",\r\n fontFamily: \"Lato light\",\r\n },\r\n {\r\n Header: t(\"difference\"),\r\n accessor: \"Erotus\",\r\n whiteSpace: \"nowrap\",\r\n minWidth: 100,\r\n Cell: (cell: Cell) => asPercent(cell.value, undefined, true),\r\n textAlign: \"right\",\r\n fontFamily: \"Lato light\",\r\n },\r\n ];\r\n\r\n return (\r\n \r\n x.accessor !== \"Indeksi\" && x.accessor !== \"Erotus\"\r\n )\r\n }\r\n loading={loading}\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default React.memo(YieldPerTimespanTable);\r\n","import { RootDispatch } from \"redux/rootReducer\";\r\nimport { load, loadFail, loadSuccess } from \"./distributionsActions\";\r\nimport * as request from \"utility/request\";\r\nimport { YieldHistory } from \"types/YieldHistory\";\r\nimport { AssetClass } from \"types/AssetClass\";\r\n\r\nconst apiUrl = process.env.REACT_APP_API_URL;\r\n\r\nexport const loadDistributions = (\r\n distribution: 1 | 2 | 3,\r\n reportControlId: string,\r\n reportDate: string\r\n) => {\r\n return async (dispatch: RootDispatch) => {\r\n dispatch(load(\"all\", distribution));\r\n\r\n try {\r\n const res = await request.getResponseJson(\r\n `${apiUrl}/api/distribution/${distribution}?reportControlId=${reportControlId}&reportDate=${reportDate}`\r\n );\r\n dispatch(loadSuccess(\"all\", distribution, res));\r\n } catch (error) {\r\n return request.handleFetchError(dispatch, error, loadFail(\"all\", distribution, error));\r\n }\r\n };\r\n};\r\n\r\nexport const loadDistributionsByAssetClass = (\r\n distribution: 1 | 2 | 3,\r\n assetClass: AssetClass,\r\n reportControlId: string,\r\n reportDate: string\r\n) => {\r\n const assetClassString = AssetClass[assetClass] as keyof typeof AssetClass;\r\n return async (dispatch: RootDispatch) => {\r\n dispatch(load(assetClassString, distribution));\r\n\r\n try {\r\n const res = await request.getResponseJson(\r\n `${apiUrl}/api/distribution/${distribution}/${assetClass}?reportControlId=${reportControlId}&reportDate=${reportDate}`\r\n );\r\n dispatch(loadSuccess(assetClassString, distribution, res));\r\n } catch (error) {\r\n return request.handleFetchError(\r\n dispatch,\r\n error,\r\n loadFail(assetClassString, distribution, error)\r\n );\r\n }\r\n };\r\n};\r\n","import { useMediaQuery } from \"@material-ui/core\";\r\nimport React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport {\r\n PieChart,\r\n Pie,\r\n Cell,\r\n ResponsiveContainer,\r\n Label,\r\n PieProps,\r\n} from \"recharts\";\r\nimport { graphColors } from \"utility/graphColors\";\r\nimport { asPercent } from \"utility/numbers\";\r\n\r\ninterface Props {\r\n data: { name: string; value?: number }[];\r\n label: string;\r\n loading?: boolean;\r\n}\r\n\r\nconst RADIAN = Math.PI / 180;\r\nconst renderCustomizedLabel = (\r\n props: PieProps,\r\n otherLabels: { value?: number; name: string }[]\r\n) => {\r\n const {\r\n cx = 0,\r\n cy = 0,\r\n startAngle = 0,\r\n endAngle = 0,\r\n innerRadius = 0,\r\n outerRadius = 0,\r\n value,\r\n name,\r\n } = props as PieProps & { value: number; name: string };\r\n\r\n if (otherLabels.some((ol) => ol.name === name)) {\r\n // tslint:disable-next-line: no-null-keyword\r\n return null;\r\n }\r\n\r\n const formattedStartAngle = startAngle + 270;\r\n\r\n const isStraightLine =\r\n formattedStartAngle > 360 * 0.95 ||\r\n (formattedStartAngle < 360 * 0.55 && formattedStartAngle > 360 * 0.45);\r\n\r\n const radius =\r\n (innerRadius as number) +\r\n (outerRadius as number) -\r\n (innerRadius as number) * 0.5;\r\n let x: number | string =\r\n (cx as number) + radius * Math.cos(-startAngle * RADIAN);\r\n const midAngle = (startAngle - Math.abs(endAngle)) / 2;\r\n\r\n const position =\r\n startAngle - Math.abs(startAngle - Math.abs(midAngle)) > 45\r\n ? Math.ceil((startAngle + 270) / 90)\r\n : Math.ceil((midAngle + 270) / 90);\r\n x = position === 4 || position === 3 ? \"100%\" : \"0%\";\r\n\r\n const yPosition =\r\n (cy as number) +\r\n ((innerRadius as number) + 30) * Math.sin(-startAngle * RADIAN) +\r\n (position === 3 || position === 4 ? 31 : -27);\r\n const y =\r\n yPosition > 150\r\n ? Math.min(isStraightLine ? 300 : yPosition, 300 - 22 - 31)\r\n : Math.max(isStraightLine ? 0 : yPosition, 22);\r\n\r\n return (\r\n \r\n \r\n {name}\r\n \r\n \r\n {asPercent(value)}\r\n \r\n \r\n );\r\n};\r\n\r\nconst renderCustomizedLabelLine = (\r\n props: PieProps,\r\n otherLabels: { value?: number; name: string }[],\r\n containerRef: React.RefObject | null\r\n) => {\r\n const {\r\n cx = 0,\r\n cy = 0,\r\n innerRadius = 0,\r\n startAngle = 0,\r\n name,\r\n } = props as PieProps & {\r\n points: { x: number; y: number }[];\r\n name: string;\r\n };\r\n\r\n if (otherLabels.some((ol) => ol.name === name)) {\r\n // tslint:disable-next-line: no-null-keyword\r\n return null;\r\n }\r\n\r\n const x =\r\n (cx as number) + (innerRadius as number) * Math.cos(-startAngle * RADIAN);\r\n const y =\r\n (cy as number) + (innerRadius as number) * Math.sin(-startAngle * RADIAN);\r\n\r\n const x2 =\r\n (cx as number) +\r\n ((innerRadius as number) + 30) * Math.cos(-startAngle * RADIAN);\r\n const y2 =\r\n (cy as number) +\r\n ((innerRadius as number) + 30) * Math.sin(-startAngle * RADIAN);\r\n\r\n const formattedStartAngle = startAngle + 270;\r\n\r\n if (\r\n formattedStartAngle > 360 * 0.95 ||\r\n (formattedStartAngle < 360 * 0.55 && formattedStartAngle > 360 * 0.45)\r\n ) {\r\n return ;\r\n }\r\n\r\n const centerPoint = (containerRef?.current?.state.containerWidth ?? 0) / 2;\r\n const endPoint = containerRef?.current?.state.containerWidth ?? 0;\r\n\r\n return (\r\n = centerPoint ? endPoint : 0},${y2}`}\r\n stroke=\"#CCCCCC\"\r\n fill=\"none\"\r\n />\r\n );\r\n};\r\n\r\nconst PieChartComponent = (props: Props) => {\r\n const { data, label, loading } = props;\r\n\r\n const { t } = useTranslation();\r\n\r\n const matchesMediaQuery = useMediaQuery(\"(min-width: 600px)\");\r\n\r\n const containerRef = React.useRef(null);\r\n\r\n const filteredData = data\r\n .filter((d) => d.value)\r\n .sort((a, b) => (b.value ?? 0) - (a.value ?? 0));\r\n\r\n const otherLabels = filteredData\r\n .slice(0)\r\n .reverse()\r\n .reduce((p, c) => {\r\n if (p.reduce((pv, cv) => pv + (cv.value ?? 0), 0) + (c.value ?? 0) <= 8) {\r\n p.push(c);\r\n }\r\n return p;\r\n }, [] as typeof filteredData)\r\n .reverse();\r\n\r\n const firstHalfLabels = [...otherLabels].slice(\r\n 0,\r\n Math.ceil(otherLabels.length / 2)\r\n );\r\n const secondHalfLabels = [...otherLabels].slice(\r\n Math.ceil(otherLabels.length / 2)\r\n );\r\n\r\n return (\r\n <>\r\n \r\n \r\n {!loading && filteredData.length > 0 && (\r\n \r\n renderCustomizedLabel(pieProps, otherLabels)\r\n }\r\n isAnimationActive={false}\r\n labelLine={(pieProps: PieProps) =>\r\n renderCustomizedLabelLine(pieProps, otherLabels, containerRef)\r\n }\r\n >\r\n {filteredData.map((entry, index) => (\r\n ol.name === entry.name)\r\n ? (graphColors[data.length - 1 - otherLabels.length] ??\r\n graphColors[graphColors.length - 1])[index] ??\r\n \"#A4A4A4\"\r\n : \"#A4A4A4\"\r\n }\r\n />\r\n ))}\r\n \r\n \r\n {otherLabels.length > 0 && (\r\n <>\r\n

\r\n {t(\"rest\")}\r\n

\r\n {matchesMediaQuery ? (\r\n \r\n
    \r\n {firstHalfLabels.map((v) => (\r\n
  • \r\n {v.name} {asPercent(v.value)}\r\n
  • \r\n ))}\r\n
\r\n 0\r\n ? \"1px solid #D7D7D7\"\r\n : undefined,\r\n paddingRight: 0,\r\n paddingTop: 0,\r\n paddingBottom: 0,\r\n width: \"50%\",\r\n paddingLeft: 14,\r\n }}\r\n >\r\n {secondHalfLabels.map((v) => (\r\n
  • \r\n {v.name} {asPercent(v.value)}\r\n
  • \r\n ))}\r\n \r\n \r\n ) : (\r\n
    \r\n
      \r\n {otherLabels.map((v) => (\r\n
    • \r\n {v.name} {asPercent(v.value)}\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 React.memo(PieChartComponent);\r\n","import React from \"react\";\r\nimport { Grid, useMediaQuery } from \"@material-ui/core\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { loadDistributions } from \"redux/distributions/distributionsFunctions\";\r\nimport { getReportDateSelector } from \"redux/user/user\";\r\nimport { RootState } from \"redux/rootReducer\";\r\nimport PieChart from \"components/PieChart\";\r\n\r\nconst Distributions = () => {\r\n const { t } = useTranslation();\r\n\r\n const matchesMediaQuery = useMediaQuery(\"(min-width: 960px)\");\r\n\r\n const dispatch = useDispatch();\r\n\r\n const reportControlId = useSelector(\r\n (state: RootState) => state.user.reportControlId\r\n );\r\n const reportDate = useSelector(getReportDateSelector);\r\n\r\n const distribution1 = useSelector(\r\n (state: RootState) => state.distributions[1]?.all?.data ?? []\r\n );\r\n const distribution1Loading = useSelector(\r\n (state: RootState) => state.distributions[1]?.all?.loading\r\n );\r\n const distribution2 = useSelector(\r\n (state: RootState) => state.distributions[2]?.all?.data ?? []\r\n );\r\n const distribution2Loading = useSelector(\r\n (state: RootState) => state.distributions[2]?.all?.loading\r\n );\r\n const distribution3 = useSelector(\r\n (state: RootState) => state.distributions[3]?.all?.data ?? []\r\n );\r\n const distribution3Loading = useSelector(\r\n (state: RootState) => state.distributions[3]?.all?.loading\r\n );\r\n\r\n React.useEffect(() => {\r\n if (reportControlId && reportDate) {\r\n dispatch(loadDistributions(1, reportControlId, reportDate));\r\n dispatch(loadDistributions(2, reportControlId, reportDate));\r\n dispatch(loadDistributions(3, reportControlId, reportDate));\r\n }\r\n }, [dispatch, reportControlId, reportDate]);\r\n\r\n return (\r\n <>\r\n \r\n ({\r\n name: d.Category,\r\n value: d.Value,\r\n }))}\r\n label={t(\"wealth_distribution\")}\r\n loading={distribution1Loading}\r\n />\r\n \r\n \r\n ({\r\n name: d.Category,\r\n value: d.Value,\r\n }))}\r\n label={t(\"location\")}\r\n loading={distribution2Loading}\r\n />\r\n \r\n \r\n ({\r\n name: d.Category,\r\n value: d.Value,\r\n }))}\r\n label={t(\"currency\")}\r\n loading={distribution3Loading}\r\n />\r\n \r\n \r\n );\r\n};\r\n\r\nexport default React.memo(Distributions);\r\n","import { RootDispatch } from \"redux/rootReducer\";\r\nimport { load, loadFail, loadSuccess } from \"./summaryActions\";\r\nimport * as request from \"utility/request\";\r\nimport { AssetClass } from \"types/AssetClass\";\r\nimport { Summary } from \"types/Summary\";\r\n\r\nconst apiUrl = process.env.REACT_APP_API_URL;\r\n\r\nexport const loadSummary = (reportControlId: string, reportDate: string) => {\r\n return async (dispatch: RootDispatch) => {\r\n dispatch(load(\"all\"));\r\n\r\n try {\r\n const res = await request.getResponseJson(\r\n `${apiUrl}/api/summary?reportControlId=${reportControlId}&reportDate=${reportDate}`\r\n );\r\n dispatch(loadSuccess(\"all\", res));\r\n } catch (error) {\r\n return request.handleFetchError(dispatch, error, loadFail(\"all\", error));\r\n }\r\n };\r\n};\r\n\r\nexport const loadSummaryByAssetClass = (\r\n assetClass: AssetClass,\r\n reportControlId: string,\r\n reportDate: string\r\n) => {\r\n const assetClassString = AssetClass[assetClass] as keyof typeof AssetClass;\r\n return async (dispatch: RootDispatch) => {\r\n dispatch(load(assetClassString));\r\n\r\n try {\r\n const res = await request.getResponseJson(\r\n `${apiUrl}/api/summary/${assetClass}?reportControlId=${reportControlId}&reportDate=${reportDate}`\r\n );\r\n dispatch(loadSuccess(assetClassString, res));\r\n } catch (error) {\r\n return request.handleFetchError(dispatch, error, loadFail(assetClassString, error));\r\n }\r\n };\r\n};\r\n","import React from \"react\";\r\nimport { Grid, useMediaQuery } from \"@material-ui/core\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { RootState } from \"redux/rootReducer\";\r\nimport { loadSummary } from \"redux/summary/summaryFunctions\";\r\nimport { getReportDateSelector } from \"redux/user/user\";\r\nimport Table from \"components/Table\";\r\nimport { Cell } from \"react-table\";\r\nimport { asEur, asPercent } from \"utility/numbers\";\r\nimport { Summary } from \"types/Summary\";\r\n\r\nconst SummaryList = () => {\r\n const { t } = useTranslation();\r\n\r\n const dispatch = useDispatch();\r\n\r\n const matchesMediaQuery = useMediaQuery(\"(min-width: 960px)\");\r\n\r\n const reportControlId = useSelector(\r\n (state: RootState) => state.user.reportControlId\r\n );\r\n const reportDate = useSelector(getReportDateSelector);\r\n\r\n const summary = useSelector(\r\n (state: RootState) => state.summary.all?.data ?? []\r\n );\r\n const loading = useSelector((state: RootState) => state.summary.all?.loading);\r\n\r\n React.useEffect(() => {\r\n if (reportControlId && reportDate) {\r\n dispatch(loadSummary(reportControlId, reportDate));\r\n }\r\n }, [dispatch, reportControlId, reportDate]);\r\n\r\n const summaryIndex = summary.findIndex((x) => x.AssetClass === \"Yhteensä\");\r\n\r\n const summaryBody = summary.slice(0, summaryIndex);\r\n const summaryFooter = summary.slice(summaryIndex);\r\n\r\n const summaryColumns = [\r\n {\r\n Header: t(\"current_summary\"),\r\n accessor: \"Yhteenveto\",\r\n paddingRight: \"10px\",\r\n width: 200,\r\n minWidth: 170,\r\n Footer: summaryFooter.map((s, i) => (\r\n \r\n {i === summaryFooter.length - 1 && s.Yhteenveto === \"\"\r\n ? t(\"all_included\")\r\n : s.Yhteenveto === \"\"\r\n ? \" \"\r\n : s.Yhteenveto}\r\n \r\n )),\r\n },\r\n {\r\n Header: t(\"weight\"),\r\n accessor: \"Paino\",\r\n minWidth: 70,\r\n width: 70,\r\n paddingRight: \"10px\",\r\n Cell: (cell: Cell) =>\r\n asPercent(cell.value, undefined, true),\r\n textAlign: \"right\",\r\n fontFamily: \"Lato light\",\r\n Footer: summaryFooter.map((s, i) => (\r\n \r\n {asPercent(s.Paino, undefined, true)}\r\n \r\n )),\r\n },\r\n {\r\n Header: t(\"market_value\"),\r\n accessor: \"MarkkinaArvo\",\r\n paddingRight: \"10px\",\r\n Cell: (cell: Cell) => asEur(cell.value, undefined, true),\r\n textAlign: \"right\",\r\n fontFamily: \"Lato light\",\r\n Footer: summaryFooter.map((s, i) => (\r\n \r\n {asEur(s.MarkkinaArvo, undefined, true)}\r\n \r\n )),\r\n },\r\n {\r\n Header: t(\"acquisition_value\"),\r\n accessor: \"HankintaArvo\",\r\n paddingRight: \"10px\",\r\n Cell: (cell: Cell) => asEur(cell.value, undefined, true),\r\n textAlign: \"right\",\r\n fontFamily: \"Lato light\",\r\n Footer: summaryFooter.map((s, i) => (\r\n \r\n {i === 0 ? asEur(s.HankintaArvo, undefined, true) : \" \"}\r\n \r\n )),\r\n },\r\n {\r\n Header: t(\"dividend_and_other_profits\"),\r\n accessor: \"Tuottokassavirta\",\r\n paddingRight: \"10px\",\r\n Cell: (cell: Cell) => asEur(cell.value, undefined, true),\r\n textAlign: \"right\",\r\n fontFamily: \"Lato light\",\r\n Footer: summaryFooter.map((s, i) => (\r\n \r\n {i === 0 ? asEur(s.Tuottokassavirta, undefined, true) : \" \"}\r\n \r\n )),\r\n },\r\n {\r\n Header: t(\"total_profit\"),\r\n accessor: \"TuottoEur\",\r\n paddingRight: \"10px\",\r\n Cell: (cell: Cell) => asEur(cell.value, undefined, true),\r\n textAlign: \"right\",\r\n fontFamily: \"Lato light\",\r\n Footer: summaryFooter.map((s, i) => (\r\n \r\n {i === 0 ? asEur(s.TuottoEur, undefined, true) : \" \"}\r\n \r\n )),\r\n },\r\n {\r\n Header: t(\"total_profit\"),\r\n accessor: \"Tuotto\",\r\n paddingRight: \"10px\",\r\n Cell: (cell: Cell) =>\r\n asPercent(cell.value, undefined, true),\r\n textAlign: \"right\",\r\n fontFamily: \"Lato light\",\r\n Footer: summaryFooter.map((s, i) => (\r\n \r\n {i === 0 ? asPercent(s.Tuotto, undefined, true) : \" \"}\r\n \r\n )),\r\n },\r\n {\r\n Header: t(\"profit_1m\"),\r\n whiteSpace: \"nowrap\",\r\n paddingRight: \"10px\",\r\n Cell: (cell: Cell) => \" \",\r\n textAlign: \"right\",\r\n fontFamily: \"Lato light\",\r\n Footer: summaryFooter.map((s, i) => (\r\n \r\n {\" \"}\r\n \r\n )),\r\n hideTitle: true,\r\n },\r\n {\r\n Header: t(\"profit_3m\"),\r\n whiteSpace: \"nowrap\",\r\n paddingRight: \"10px\",\r\n Cell: (cell: Cell) => \" \",\r\n textAlign: \"right\",\r\n fontFamily: \"Lato light\",\r\n Footer: summaryFooter.map((s, i) => (\r\n \r\n {\" \"}\r\n \r\n )),\r\n hideTitle: true,\r\n },\r\n {\r\n Header: t(\"profit_ytd\"),\r\n width: 200,\r\n minWidth: 150,\r\n Cell: (cell: Cell) => \" \",\r\n textAlign: \"right\",\r\n fontFamily: \"Lato light\",\r\n Footer: summaryFooter.map((s, i) => (\r\n \r\n {\" \"}\r\n \r\n )),\r\n hideTitle: true,\r\n },\r\n ];\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default React.memo(SummaryList);\r\n","import { RootDispatch } from \"redux/rootReducer\";\r\nimport { load, loadFail, loadSuccess } from \"./assetClassDistributionActions\";\r\nimport * as request from \"utility/request\";\r\nimport { AssetClass } from \"types/AssetClass\";\r\nimport { AssetClassDistribution } from \"types/AssetClassDistribution\";\r\n\r\nconst apiUrl = process.env.REACT_APP_API_URL;\r\n\r\nexport const loadAssetClassDistribution = (reportControlId: string, reportDate: string) => {\r\n return async (dispatch: RootDispatch) => {\r\n dispatch(load(\"all\"));\r\n\r\n try {\r\n const res = await request.getResponseJson(\r\n `${apiUrl}/api/assetClassDistribution?reportControlId=${reportControlId}&reportDate=${reportDate}`\r\n );\r\n dispatch(loadSuccess(\"all\", res));\r\n } catch (error) {\r\n return request.handleFetchError(dispatch, error, loadFail(\"all\", error));\r\n }\r\n };\r\n};\r\n\r\nexport const loadAssetClassDistributionByAssetClass = (\r\n assetClass: AssetClass,\r\n reportControlId: string,\r\n reportDate: string\r\n) => {\r\n const assetClassString = AssetClass[assetClass] as keyof typeof AssetClass;\r\n return async (dispatch: RootDispatch) => {\r\n dispatch(load(assetClassString));\r\n\r\n try {\r\n const res = await request.getResponseJson(\r\n `${apiUrl}/api/assetClassDistribution/${assetClass}?reportControlId=${reportControlId}&reportDate=${reportDate}`\r\n );\r\n dispatch(loadSuccess(assetClassString, res));\r\n } catch (error) {\r\n return request.handleFetchError(dispatch, error, loadFail(assetClassString, error));\r\n }\r\n };\r\n};\r\n","import React from \"react\";\r\n\r\nexport const getValueColor = (\r\n valueStr?: string | JSX.Element,\r\n valueInt?: number\r\n) => {\r\n if (valueInt) {\r\n const color = Math.sign(valueInt) === 1 ? \"#177E22\" : \"#BE0017\";\r\n\r\n return
    {valueStr}
    ;\r\n }\r\n return
    {valueStr}
    ;\r\n};\r\n","import React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { RootState } from \"redux/rootReducer\";\r\nimport { Cell } from \"react-table\";\r\nimport { asEur, asPercent } from \"utility/numbers\";\r\nimport { getReportDateSelector } from \"redux/user/user\";\r\nimport { loadAssetClassDistribution } from \"redux/assetClassDistribution/assetClassDistributionFunctions\";\r\nimport { Grid, useMediaQuery } from \"@material-ui/core\";\r\nimport Table from \"components/Table\";\r\nimport { AssetClassDistribution } from \"types/AssetClassDistribution\";\r\nimport { getValueColor } from \"utility/textColor\";\r\n\r\nconst AssetClassDistributionList = () => {\r\n const { t } = useTranslation();\r\n\r\n const dispatch = useDispatch();\r\n\r\n const matchesMediaQuery = useMediaQuery(\"(min-width: 960px)\");\r\n\r\n const reportControlId = useSelector((state: RootState) => state.user.reportControlId);\r\n const reportDate = useSelector(getReportDateSelector);\r\n const assetClassDistribution = useSelector(\r\n (state: RootState) => state.assetClassDistribution.all?.data ?? []\r\n );\r\n const loading = useSelector((state: RootState) => state.assetClassDistribution.all?.loading);\r\n\r\n const assetClassDistributionGrouped = assetClassDistribution.reduce(\r\n (result, item) => ({\r\n ...result,\r\n [item.Kategoria]: [...(result[item.Kategoria ?? \"\"] ?? []), item],\r\n }),\r\n // tslint:disable-next-line: no-object-literal-type-assertion\r\n {} as { [key: string]: AssetClassDistribution[] }\r\n );\r\n\r\n const assetClassDistributionColumns = Object.keys(assetClassDistributionGrouped).map((a) => {\r\n const total = assetClassDistributionGrouped[a]?.find((acd) => acd.Alakategoria === \"Yhteensä\");\r\n\r\n return [\r\n {\r\n Header: a !== \"SALKUT\" ? a : \"\",\r\n accessor: \"Alakategoria\",\r\n paddingRight: \"10px\",\r\n minWidth: 170,\r\n width: 200,\r\n Footer: total?.Alakategoria ?? \"\",\r\n },\r\n {\r\n Header: t(\"weight\"),\r\n accessor: \"Paino\",\r\n paddingRight: \"10px\",\r\n Cell: (cell: Cell) =>\r\n asPercent(cell.value, undefined, true),\r\n textAlign: \"right\",\r\n minWidth: 70,\r\n width: 70,\r\n fontFamily: \"Lato light\",\r\n Footer: asPercent(total?.Paino, undefined, true),\r\n },\r\n {\r\n Header: t(\"market_value\"),\r\n accessor: \"MarkkinaArvo\",\r\n paddingRight: \"10px\",\r\n Cell: (cell: Cell) => asEur(cell.value, undefined, true),\r\n textAlign: \"right\",\r\n fontFamily: \"Lato light\",\r\n Footer: asEur(total?.MarkkinaArvo, undefined, true),\r\n },\r\n {\r\n Header: t(\"acquisition_value\"),\r\n accessor: \"HankintaArvo\",\r\n paddingRight: \"10px\",\r\n Cell: (cell: Cell) =>\r\n cell.row.original.Kategoria !== \"Kassa\" ? asEur(cell.value, undefined, true) : \"\",\r\n textAlign: \"right\",\r\n fontFamily: \"Lato light\",\r\n Footer: a !== \"Kassa\" ? asEur(total?.HankintaArvo, undefined, true) : \"\",\r\n hideTitle: a === \"Kassa\",\r\n },\r\n {\r\n Header: t(\"dividend_and_other_profits\"),\r\n accessor: \"Tuottokassavirta\",\r\n paddingRight: \"10px\",\r\n Cell: (cell: Cell) =>\r\n cell.row.original.Kategoria !== \"Kassa\"\r\n ? getValueColor(asEur(cell.value, undefined, true), cell.value)\r\n : \"\",\r\n textAlign: \"right\",\r\n fontFamily: \"Lato light\",\r\n Footer:\r\n a !== \"Kassa\"\r\n ? getValueColor(\r\n asEur(total?.Tuottokassavirta, undefined, true),\r\n total?.Tuottokassavirta\r\n )\r\n : \"\",\r\n hideTitle: a === \"Kassa\",\r\n },\r\n {\r\n Header: t(\"total_profit\"),\r\n accessor: \"TuottoEur\",\r\n paddingRight: \"10px\",\r\n Cell: (cell: Cell) =>\r\n cell.row.original.Kategoria !== \"Kassa\"\r\n ? getValueColor(asEur(cell.value, undefined, true), cell.value)\r\n : \"\",\r\n textAlign: \"right\",\r\n fontFamily: \"Lato light\",\r\n Footer:\r\n a !== \"Kassa\"\r\n ? getValueColor(asEur(total?.TuottoEur, undefined, true), total?.TuottoEur)\r\n : \"\",\r\n hideTitle: a === \"Kassa\",\r\n },\r\n {\r\n Header: t(\"total_profit\"),\r\n accessor: \"Tuotto\",\r\n paddingRight: \"10px\",\r\n Cell: (cell: Cell) =>\r\n cell.row.original.Kategoria !== \"Kassa\"\r\n ? getValueColor(asPercent(cell.value, undefined, true), cell.value)\r\n : \"\",\r\n textAlign: \"right\",\r\n fontFamily: \"Lato light\",\r\n Footer:\r\n a !== \"Kassa\"\r\n ? getValueColor(asPercent(total?.Tuotto, undefined, true), total?.Tuotto)\r\n : \"\",\r\n hideTitle: a === \"Kassa\",\r\n },\r\n {\r\n Header: t(\"profit_1m\"),\r\n accessor: \"Tuotto1kk\",\r\n whiteSpace: \"nowrap\",\r\n paddingRight: \"10px\",\r\n Cell: (cell: Cell) =>\r\n cell.row.original.Kategoria !== \"Kassa\"\r\n ? getValueColor(asPercent(cell.value, undefined, true), cell.value)\r\n : \"\",\r\n textAlign: \"right\",\r\n fontFamily: \"Lato light\",\r\n Footer:\r\n a !== \"Kassa\"\r\n ? getValueColor(asPercent(total?.Tuotto1kk, undefined, true), total?.Tuotto1kk)\r\n : \"\",\r\n hideTitle: a === \"Kassa\",\r\n },\r\n {\r\n Header: t(\"profit_3m\"),\r\n accessor: \"Tuotto3kk\",\r\n whiteSpace: \"nowrap\",\r\n paddingRight: \"10px\",\r\n Cell: (cell: Cell) =>\r\n cell.row.original.Kategoria !== \"Kassa\"\r\n ? getValueColor(asPercent(cell.value, undefined, true), cell.value)\r\n : \"\",\r\n textAlign: \"right\",\r\n fontFamily: \"Lato light\",\r\n Footer:\r\n a !== \"Kassa\"\r\n ? getValueColor(asPercent(total?.Tuotto3kk, undefined, true), total?.Tuotto3kk)\r\n : \"\",\r\n hideTitle: a === \"Kassa\",\r\n },\r\n {\r\n Header: t(\"profit_ytd\"),\r\n accessor: \"TuottoYTD\",\r\n width: 200,\r\n minWidth: 150,\r\n Cell: (cell: Cell) =>\r\n cell.row.original.Kategoria !== \"Kassa\"\r\n ? getValueColor(asPercent(cell.value, undefined, true), cell.value)\r\n : \"\",\r\n textAlign: \"right\",\r\n fontFamily: \"Lato light\",\r\n Footer:\r\n a !== \"Kassa\"\r\n ? getValueColor(asPercent(total?.TuottoYTD, undefined, true), total?.TuottoYTD)\r\n : \"\",\r\n hideTitle: a === \"Kassa\",\r\n },\r\n ];\r\n });\r\n\r\n React.useEffect(() => {\r\n if (reportControlId && reportDate) {\r\n dispatch(loadAssetClassDistribution(reportControlId, reportDate));\r\n }\r\n }, [dispatch, reportControlId, reportDate]);\r\n\r\n return (\r\n <>\r\n {Object.keys(assetClassDistributionGrouped).map((a, i) => (\r\n \r\n acb.Alakategoria !== \"Yhteensä\")}\r\n columns={assetClassDistributionColumns[i]}\r\n loading={loading}\r\n hasFooter\r\n />\r\n \r\n ))}\r\n \r\n );\r\n};\r\n\r\nexport default React.memo(AssetClassDistributionList);\r\n","import React from \"react\";\r\nimport { Grid, useMediaQuery } from \"@material-ui/core\";\r\nimport { createUseStyles } from \"react-jss\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport ReportDatePicker from \"components/ReportDatePicker\";\r\nimport YieldHistory from \"./components/YieldHistory\";\r\nimport AllocationHistory from \"./components/AllocationHistory\";\r\nimport YieldList from \"./components/YieldList\";\r\nimport YieldPerTimespan from \"./components/YieldPerTimespan\";\r\nimport Distributions from \"./components/Distributions\";\r\nimport SummaryList from \"./components/SummaryList\";\r\nimport AssetClassDistributionList from \"./components/AssetClassDistributionList\";\r\n\r\nconst useStyles = createUseStyles({\r\n container: {\r\n padding: \"1em 0\",\r\n },\r\n});\r\n\r\nconst Overview = () => {\r\n const classes = useStyles();\r\n\r\n const matchesMediaQuery = useMediaQuery(\"(min-width: 960px)\");\r\n\r\n const { t } = useTranslation();\r\n\r\n return (\r\n \r\n \r\n {matchesMediaQuery ? (\r\n \r\n

    {t(\"overview\")}

    \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\n \r\n

    {t(\"profit\")}

    \r\n \r\n \r\n \r\n \r\n \r\n \r\n

    {t(\"current\")}

    \r\n
    \r\n \r\n \r\n \r\n \r\n

    {t(\"profit\")}

    \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default React.memo(Overview);\r\n","import React from \"react\";\r\n\r\nexport default React.memo(() => {\r\n return (\r\n \r\n \r\n \r\n );\r\n});\r\n","import React from \"react\";\r\n\r\nexport default React.memo(() => {\r\n return (\r\n \r\n \r\n \r\n );\r\n});\r\n","import React from \"react\";\r\n\r\nexport default React.memo(() => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n});\r\n","import React from \"react\";\r\n\r\nexport default React.memo(() => {\r\n return (\r\n \r\n \r\n \r\n );\r\n});\r\n","import React from \"react\";\r\n\r\nexport default React.memo(() => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n});\r\n","import React from \"react\";\r\n\r\nexport default React.memo(() => {\r\n return (\r\n \r\n \r\n \r\n );\r\n});\r\n","import React from \"react\";\r\n\r\nexport default React.memo(() => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n});\r\n","import React from \"react\";\r\n\r\nexport default React.memo(() => {\r\n return (\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\n );\r\n});\r\n","import React from \"react\";\r\n\r\nexport default React.memo(() => {\r\n return (\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\n \r\n \r\n \r\n \r\n );\r\n});\r\n","import React from \"react\";\r\n\r\nexport default React.memo(() => {\r\n return (\r\n \r\n \r\n \r\n );\r\n});\r\n","import React from \"react\";\r\n\r\nexport const BackIcon = () => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default React.memo(BackIcon);\r\n","import React from \"react\";\r\nimport { shallowEqual, useSelector } from \"react-redux\";\r\nimport { makeStyles, useMediaQuery } from \"@material-ui/core\";\r\nimport { RootState } from \"redux/rootReducer\";\r\nimport { AuthenticationInfo } from \"types/AuthenticationInfo\";\r\nimport Aktia from \"./BankLogos/Aktia\";\r\nimport Alands from \"./BankLogos/Alands\";\r\nimport Danske from \"./BankLogos/Danske\";\r\nimport Handelsbanken from \"./BankLogos/Handelsbanken\";\r\nimport Nordea from \"./BankLogos/Nordea\";\r\nimport OmaSP from \"./BankLogos/OmaSP\";\r\nimport OP from \"./BankLogos/OP\";\r\nimport POP from \"./BankLogos/POP\";\r\nimport SaastoPankki from \"./BankLogos/SaastoPankki\";\r\nimport SPankki from \"./BankLogos/SPankki\";\r\nimport ChartLoader from \"./ChartLoader\";\r\nimport BackIcon from \"./BackIcon\";\r\n\r\nconst useStyles = makeStyles({\r\n container: {\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n overflowX: \"hidden\",\r\n },\r\n cardContainer: {\r\n backgroundColor: \"#FFFFFF\",\r\n border: \"1px solid #DCDCDC\",\r\n boxSizing: \"border-box\",\r\n margin: \"25px 0\",\r\n display: \"inline-grid\",\r\n width: \"100%\",\r\n overflowX: \"hidden\",\r\n },\r\n card: {\r\n padding: \"0 20px\",\r\n height: 84,\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n cursor: \"pointer\",\r\n },\r\n});\r\n\r\nconst correctBank = (authenticationInfo: AuthenticationInfo) => {\r\n switch (authenticationInfo.Id) {\r\n case \"oidc.aktia.1\":\r\n return ;\r\n case \"oidc.alandsbanken.1\":\r\n return ;\r\n case \"oidc.danskebank.1\":\r\n return ;\r\n case \"oidc.handelsbanken.1\":\r\n return ;\r\n case \"oidc.nordea.1\":\r\n return ;\r\n case \"oidc.omasp.1\":\r\n return ;\r\n case \"saml.op.fi\":\r\n case \"saml.op.1\":\r\n return ;\r\n case \"oidc.pop.1\":\r\n return ;\r\n case \"oidc.sp.1\":\r\n return ;\r\n case \"oidc.spankki.1\":\r\n return ;\r\n default:\r\n return <>;\r\n }\r\n};\r\n\r\nconst BankList = () => {\r\n const authenticationInfo = useSelector(\r\n (state: RootState) => state.authenticationInfo.data,\r\n shallowEqual\r\n );\r\n\r\n const authenticationInfoLoading = useSelector(\r\n (state: RootState) => state.authenticationInfo.loading\r\n );\r\n\r\n const matchesMediaQuery = useMediaQuery(\"(min-width: 600px)\");\r\n const matchesMediaQueryHeight = useMediaQuery(\"(min-height: 730px)\");\r\n\r\n const classes = useStyles();\r\n\r\n const mobileHeight = authenticationInfoLoading\r\n ? \"calc(100vh - 230px)\"\r\n : matchesMediaQueryHeight\r\n ? \"calc(100vh - 230px)\"\r\n : \"auto\";\r\n\r\n return (\r\n \r\n \r\n {authenticationInfoLoading ? (\r\n
    \r\n \r\n
    \r\n ) : (\r\n <>\r\n \r\n {authenticationInfo?.map((a, i) => (\r\n {\r\n window.location.assign(a.Url);\r\n }}\r\n className={classes.card}\r\n style={{\r\n borderRight:\r\n (i + 1) % 4 === 0 ? undefined : \"1px solid #DCDCDC\",\r\n borderBottom: i + 1 > 8 ? undefined : \"1px solid #DCDCDC\",\r\n }}\r\n >\r\n {correctBank(a)}\r\n \r\n ))}\r\n \r\n \r\n )}\r\n {\r\n window.location.replace(\"https://www.forea.fi\");\r\n }}\r\n style={{\r\n fontSize: \"1.125em\",\r\n background: \"transparent\",\r\n border: \"none\",\r\n textTransform: \"uppercase\",\r\n color: \"#ffffff\",\r\n cursor: \"pointer\",\r\n outline: \"none\",\r\n letterSpacing: \"0.09375em\",\r\n marginTop: 16,\r\n }}\r\n >\r\n \r\n Back\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default React.memo(BankList);\r\n","export default __webpack_public_path__ + \"static/media/Background.bf40d251.png\";","import { useMediaQuery } from \"@material-ui/core\";\r\nimport React from \"react\";\r\n\r\ninterface Props {\r\n smallLogo?: boolean;\r\n}\r\n\r\nconst HeaderLogo = (props: Props) => {\r\n const { smallLogo } = props;\r\n\r\n const matchesMediaQuery = useMediaQuery(\"(min-width: 1920px)\");\r\n\r\n const smallLogoWidth = matchesMediaQuery ? \"initial\" : \"4.5vw\";\r\n\r\n return (\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\n \r\n \r\n );\r\n};\r\n\r\nexport default React.memo(HeaderLogo);\r\n","import { Grid, useMediaQuery } from \"@material-ui/core\";\r\nimport React from \"react\";\r\nimport { createUseStyles } from \"react-jss\";\r\nimport HeaderLogo from \"./HeaderLogo\";\r\n\r\nconst useStyles = createUseStyles({\r\n container: {\r\n flexDirection: \"column\",\r\n alignItems: \"center\",\r\n },\r\n});\r\n\r\nconst LoginHeader = () => {\r\n const classes = useStyles();\r\n\r\n const matchesMediaQuery = useMediaQuery(\"(min-width: 600px)\");\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default React.memo(LoginHeader);\r\n","import { useMediaQuery } from \"@material-ui/core\";\r\nimport BackIcon from \"components/BackIcon\";\r\nimport React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { useHistory } from \"react-router-dom\";\r\n\r\nconst NoCustomership = () => {\r\n const { t } = useTranslation();\r\n\r\n const matchesMediaQuery = useMediaQuery(\"(min-width: 600px)\");\r\n\r\n const history = useHistory();\r\n\r\n return (\r\n \r\n

    {t(\"login\")}

    \r\n

    \r\n {t(\"no_customership\")}\r\n

    \r\n

    \r\n {t(\"only_for_forea_customers\")}\r\n {t(\"please_be_contacted\")}\r\n

    \r\n {\r\n history.push(\"/login\");\r\n }}\r\n style={{\r\n fontSize: \"1.125em\",\r\n background: \"transparent\",\r\n border: \"none\",\r\n textTransform: \"uppercase\",\r\n color: \"#ffffff\",\r\n cursor: \"pointer\",\r\n outline: \"none\",\r\n letterSpacing: \"0.09375em\",\r\n marginTop: 16,\r\n }}\r\n >\r\n \r\n {t(\"back\")}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default React.memo(NoCustomership);\r\n","import React from \"react\";\r\n\r\nexport const ForwardIcon = () => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default React.memo(ForwardIcon);\r\n","import { useMediaQuery } from \"@material-ui/core\";\r\nimport ForwardIcon from \"components/ForwardIcon\";\r\nimport React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { useHistory } from \"react-router-dom\";\r\n\r\nconst TechError = () => {\r\n const { t } = useTranslation();\r\n\r\n const matchesMediaQuery = useMediaQuery(\"(min-width: 600px)\");\r\n\r\n const history = useHistory();\r\n\r\n return (\r\n \r\n

    {t(\"login\")}

    \r\n \r\n {t(\"login_failed\")}\r\n

    \r\n

    \r\n {t(\"try_again_later\")}\r\n

    \r\n {\r\n history.push(\"/login\");\r\n }}\r\n style={{\r\n fontSize: \"1.125em\",\r\n background: \"transparent\",\r\n border: \"none\",\r\n textTransform: \"uppercase\",\r\n color: \"#ffffff\",\r\n cursor: \"pointer\",\r\n outline: \"none\",\r\n letterSpacing: \"0.09375em\",\r\n marginTop: 16,\r\n }}\r\n >\r\n {t(\"try_again\")}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default React.memo(TechError);\r\n","import React from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { loadAuthenticationInfos } from \"redux/authenticationInfos/authenticationInfoFunctions\";\r\nimport { Grid, useMediaQuery } from \"@material-ui/core\";\r\nimport BankList from \"components/BankList\";\r\nimport Background from \"img/Background.png\";\r\nimport LoginHeader from \"components/LoginHeader\";\r\nimport { useLocation } from \"react-router-dom\";\r\nimport Error from \"./Error\";\r\nimport { getCurrentYear } from \"utility/date\";\r\n\r\nconst Login = () => {\r\n const dispatch = useDispatch();\r\n const location = useLocation();\r\n\r\n const matchesMediaQuery = useMediaQuery(\"(min-width: 600px)\");\r\n\r\n React.useEffect(() => {\r\n dispatch(loadAuthenticationInfos());\r\n }, [dispatch]);\r\n\r\n const mobileHeight = location.pathname !== \"/login\" ? \"100%\" : \"fit-content\";\r\n\r\n return (\r\n \r\n \r\n {location.pathname === \"/login\" ? : }\r\n \r\n \r\n \r\n © {getCurrentYear()} Forea Capital Oy. All rights reserved.\r\n {matchesMediaQuery ? \" | \" :
    }\r\n \r\n Best Execution (in Finnish){\" \"}\r\n {\" \"}\r\n |{\" \"}\r\n \r\n Customer Information (in Finnish){\" \"}\r\n \r\n

    \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default React.memo(Login);\r\n","import { RootDispatch } from \"redux/rootReducer\";\r\nimport { load, loadFail, loadSuccess } from \"./authenticationInfoActions\";\r\nimport * as request from \"utility/request\";\r\nimport { AuthenticationInfo } from \"types/AuthenticationInfo\";\r\n\r\nconst apiUrl = process.env.REACT_APP_API_URL;\r\n\r\nexport const loadAuthenticationInfos = () => {\r\n return async (dispatch: RootDispatch) => {\r\n dispatch(load());\r\n\r\n try {\r\n const res = await request.getResponseJson(\r\n `${apiUrl}/api/authenticationInfo`\r\n );\r\n dispatch(loadSuccess(res));\r\n } catch (error) {\r\n return request.handleFetchError(dispatch, error, loadFail(error));\r\n }\r\n };\r\n};\r\n","import React from \"react\";\r\nimport { useHistory, useLocation } from \"react-router-dom\";\r\nimport queryString from \"query-string\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { postToken } from \"redux/oidc/oidcFunctions\";\r\nimport { TokenResponse } from \"types/TokenResponse\";\r\nimport { createUseStyles } from \"react-jss\";\r\nimport LoginHeader from \"components/LoginHeader\";\r\nimport { Grid, useMediaQuery } from \"@material-ui/core\";\r\nimport { getCurrentYear } from \"utility/date\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport Background from \"img/Background.png\";\r\n\r\nconst useStyles = createUseStyles({\r\n container: {\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n },\r\n});\r\n\r\nconst Redirect = () => {\r\n const classes = useStyles();\r\n\r\n const { t } = useTranslation();\r\n\r\n const location = useLocation();\r\n const history = useHistory();\r\n const dispatch = useDispatch();\r\n\r\n const matchesMediaQuery = useMediaQuery(\"(min-width: 600px)\");\r\n\r\n React.useEffect(() => {\r\n const makeRequest = async () => {\r\n const query = queryString.parse(location.search);\r\n\r\n if (query.error) {\r\n history.push(\"/error/techerror\");\r\n }\r\n\r\n if (query.code && query.state) {\r\n try {\r\n // tslint:disable-next-line: await-promise\r\n const res = (await dispatch(\r\n postToken(query.code as string, query.state as string)\r\n )) as TokenResponse;\r\n\r\n if (res.AccessToken) {\r\n history.push(\"/\");\r\n }\r\n } catch (error) {\r\n if (error.target.status === 400) {\r\n history.push(\"/error/nocustomership\");\r\n } else {\r\n history.push(\"/error/techerror\");\r\n }\r\n }\r\n }\r\n };\r\n\r\n // tslint:disable-next-line: no-floating-promises\r\n makeRequest();\r\n }, [location, dispatch, history]);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n

    \r\n {t(\"login_success\")}\r\n

    \r\n

    \r\n {t(\"redirect_to_service\")}\r\n

    \r\n \r\n \r\n \r\n \r\n \r\n © {getCurrentYear()} Forea Capital Oy. All rights reserved.\r\n {matchesMediaQuery ? \" | \" :
    }\r\n \r\n Best Execution (in Finnish){\" \"}\r\n {\" \"}\r\n |{\" \"}\r\n \r\n Customer Information (in Finnish){\" \"}\r\n \r\n

    \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default React.memo(Redirect);\r\n","import React from \"react\";\r\n\r\nconst DownloadIndicator = () => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default React.memo(DownloadIndicator);\r\n","import { utils, writeFile } from \"xlsx\";\r\nimport moment from \"moment\";\r\n\r\ninterface File {\r\n filename: string;\r\n blob: Blob;\r\n}\r\n\r\nexport function downloadFile(file: File) {\r\n const a = document.createElement(\"a\");\r\n const url = URL.createObjectURL(file.blob);\r\n a.href = url;\r\n a.download = file.filename;\r\n document.body.appendChild(a);\r\n a.click();\r\n\r\n setTimeout(() => {\r\n document.body.removeChild(a);\r\n window.URL.revokeObjectURL(url);\r\n }, 0);\r\n}\r\n\r\nexport const b64toBlob = (b64Data: string, contentType: string) => {\r\n contentType = contentType || \"\";\r\n var sliceSize = 512;\r\n b64Data = b64Data.replace(/^[^,]+,/, \"\");\r\n b64Data = b64Data.replace(/\\s/g, \"\");\r\n var byteCharacters = window.atob(b64Data);\r\n var byteArrays = [];\r\n\r\n for (var offset = 0; offset < byteCharacters.length; offset += sliceSize) {\r\n var slice = byteCharacters.slice(offset, offset + sliceSize);\r\n\r\n var byteNumbers = new Array(slice.length);\r\n for (var i = 0; i < slice.length; i++) {\r\n byteNumbers[i] = slice.charCodeAt(i);\r\n }\r\n\r\n var byteArray = new Uint8Array(byteNumbers);\r\n\r\n byteArrays.push(byteArray);\r\n }\r\n\r\n var blob = new Blob(byteArrays, { type: contentType });\r\n return blob;\r\n};\r\n\r\nexport const generateFilename = (\r\n page: string,\r\n portfolioName: string,\r\n startDate: string | undefined,\r\n endDate: string | undefined\r\n) => {\r\n let filename = \"\";\r\n if (startDate && endDate) {\r\n const start = moment(new Date(startDate)).format(\"D.M.YYYY\");\r\n const end = moment(new Date(endDate)).format(\"D.M.YYYY\");\r\n\r\n filename = `${page}_${portfolioName}_${start}-${end}`;\r\n }\r\n return filename;\r\n};\r\n\r\nexport const dataToExcelXlsx = (data: T[], headers: string[][], fileName?: string) => {\r\n const objectMaxLength = [] as number[];\r\n\r\n data.forEach((d, idx) => {\r\n const values = Object.values(d);\r\n const keys = Object.keys(d);\r\n values.forEach((v, i) => {\r\n if (v === 0) {\r\n const obj: { [index: string]: any } = data[idx];\r\n obj[keys[i]] = \"\";\r\n }\r\n // tslint:disable-next-line: prefer-conditional-expression\r\n if (typeof v === \"number\") {\r\n objectMaxLength[i] = 10;\r\n } else {\r\n objectMaxLength[i] = objectMaxLength[i] >= v?.length ? objectMaxLength[i] : v?.length;\r\n }\r\n });\r\n });\r\n const wscols = objectMaxLength.map((l) => {\r\n return {\r\n // tslint:disable-next-line: strict-type-predicates\r\n width: l === undefined || l === 0 ? 15 : l + 1,\r\n };\r\n });\r\n\r\n const book = utils.book_new();\r\n\r\n utils.sheet_add_aoa(book, headers);\r\n const sheet = utils.sheet_add_json(book, data, {\r\n origin: \"A2\",\r\n skipHeader: true,\r\n });\r\n\r\n sheet[\"!cols\"] = wscols;\r\n utils.book_append_sheet(book, sheet);\r\n\r\n writeFile(book, fileName ? `${fileName}.xlsx` : \"output.xlsx\");\r\n};\r\n","import React, { useState } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { RootState } from \"redux/rootReducer\";\r\n//import { loadReport } from \"redux/report/reportFunctions\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Button, withStyles } from \"@material-ui/core\";\r\nimport moment from \"moment\";\r\nimport { VisibleSections } from \"types/VisibleSections\";\r\nimport DownloadIndicator from \"./DownloadIndicator\";\r\nimport { SignalRContext } from \"App\";\r\nimport { b64toBlob, downloadFile } from \"utility/files\";\r\n\r\nconst CustomButton = withStyles({\r\n root: {\r\n minWidth: 28,\r\n height: 24,\r\n padding: 0,\r\n marginLeft: 6,\r\n },\r\n})(Button);\r\n\r\nconst ExportPdf = () => {\r\n const { t } = useTranslation();\r\n\r\n const user = useSelector((state: RootState) => state.user);\r\n\r\n const visibleSections = useSelector(\r\n (state: RootState) => state.user.visibleSections?.data as VisibleSections\r\n );\r\n\r\n const assetClasses = useSelector((state: RootState) =>\r\n state.assetClassParameters.data?.map((asset) => asset.AssetClass)\r\n );\r\n\r\n const [reportLoading, setReportLoading] = useState(false);\r\n\r\n SignalRContext.useSignalREffect(\r\n \"ReceiveMessage\",\r\n (report: any) => {\r\n if (report) {\r\n // tslint:disable-next-line: no-unsafe-any\r\n const blob = b64toBlob(report, \"application/pdf\");\r\n const filename = \"Omaisuusraportti.pdf\";\r\n\r\n downloadFile({ filename, blob });\r\n }\r\n },\r\n []\r\n );\r\n\r\n const startLoadReport = (\r\n reportControlId: string | undefined,\r\n startDate: string | undefined,\r\n endDate: string | undefined,\r\n assetClasses: string[] | undefined,\r\n showIndex: boolean,\r\n showSubIndex: boolean,\r\n showCommitments: boolean,\r\n showProfitAndLoss: boolean,\r\n showDiary: boolean,\r\n showBalance: boolean\r\n ) => {\r\n setReportLoading(true);\r\n SignalRContext.connection\r\n ?.invoke(\r\n \"SendMessage\",\r\n reportControlId,\r\n startDate,\r\n endDate,\r\n assetClasses,\r\n showIndex,\r\n showSubIndex,\r\n showCommitments,\r\n showProfitAndLoss,\r\n showDiary,\r\n showBalance\r\n )\r\n .catch((err) => {\r\n console.log(err);\r\n })\r\n .finally(() => {\r\n setReportLoading(false);\r\n });\r\n };\r\n\r\n return (\r\n {\r\n startLoadReport(\r\n user.reportControlId,\r\n moment(user.startDate).format(\"M/D/YYYY\"),\r\n moment(user.reportDate).format(\"M/D/YYYY\"),\r\n assetClasses,\r\n visibleSections.NaytaTuotto,\r\n visibleSections.NaytaSijoitukset,\r\n visibleSections.NaytaSitoumukset,\r\n visibleSections.NaytaVoittoTappio,\r\n visibleSections.NaytaPaivakirja,\r\n visibleSections.NaytaSaldo\r\n );\r\n }\r\n : undefined\r\n }\r\n >\r\n \r\n \r\n {t(\"load_pdf_report\")}\r\n

    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {reportLoading ? : <>}\r\n \r\n );\r\n};\r\n\r\nexport default React.memo(ExportPdf);\r\n","import React from \"react\";\r\nimport { Grid, useMediaQuery } from \"@material-ui/core\";\r\nimport ExportPdf from \"./ExportPdf\";\r\nimport { getCurrentYear } from \"utility/date\";\r\n\r\nconst Footer = () => {\r\n const matchesMediaQuery = useMediaQuery(\"(min-width: 600px)\");\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n © {getCurrentYear()} Forea Capital Oy. All rights reserved.\r\n {matchesMediaQuery ? \" | \" :
    }\r\n \r\n Best Execution (in Finnish){\" \"}\r\n {\" \"}\r\n |{\" \"}\r\n \r\n Customer Information (in Finnish){\" \"}\r\n \r\n

    \r\n \r\n \r\n );\r\n};\r\n\r\nexport default React.memo(Footer);\r\n","import { RootDispatch } from \"redux/rootReducer\";\r\nimport { load, loadFail, loadPermissionsSuccess, loadSuccess } from \"./userActions\";\r\nimport * as request from \"utility/request\";\r\nimport { UserPermission } from \"types/UserPermission\";\r\nimport { VisibleSections } from \"types/VisibleSections\";\r\n\r\nconst apiUrl = process.env.REACT_APP_API_URL;\r\n\r\nexport const loadUserPermissions = () => {\r\n return async (dispatch: RootDispatch) => {\r\n dispatch(load(\"userPermissions\"));\r\n\r\n try {\r\n const res = await request.getResponseJson(\r\n `${apiUrl}/api/user/reportControls`\r\n );\r\n dispatch(loadPermissionsSuccess(\"userPermissions\", res));\r\n } catch (error) {\r\n return request.handleFetchError(dispatch, error, loadFail(\"userPermissions\", error));\r\n }\r\n };\r\n};\r\n\r\nexport const loadVisibleSections = (reportControlId: string) => {\r\n return async (dispatch: RootDispatch) => {\r\n dispatch(load(\"visibleSections\"));\r\n\r\n try {\r\n const res = await request.getResponseJson(\r\n `${apiUrl}/api/user/visibleParts?reportControlId=${reportControlId}`\r\n );\r\n dispatch(loadSuccess(\"visibleSections\", res));\r\n } catch (error) {\r\n return request.handleFetchError(dispatch, error, loadFail(\"visibleSections\", error));\r\n }\r\n };\r\n};\r\n","import React from \"react\";\r\nimport { Tabs, Tab, withStyles } from \"@material-ui/core\";\r\nimport { useHistory, useLocation } from \"react-router-dom\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Routes } from \"App\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { loadVisibleSections } from \"redux/user/userFunctions\";\r\nimport { RootState } from \"redux/rootReducer\";\r\nimport { VisibleSections } from \"types/VisibleSections\";\r\nimport { loadAssetClassParameters } from \"redux/assetClassParameters/assetClassParametersFunctions\";\r\nimport { getReportDateSelector } from \"redux/user/user\";\r\n\r\nconst CustomTabs = withStyles({\r\n root: {\r\n height: 30,\r\n minHeight: 30,\r\n marginTop: 2,\r\n },\r\n fixed: {\r\n height: 30,\r\n },\r\n indicator: {\r\n backgroundColor: \"#FFFEF1\",\r\n },\r\n scrollButtons: {\r\n color: \"rgb(255, 255, 255)\",\r\n },\r\n})(Tabs);\r\n\r\nconst CustomTab = withStyles((theme) => ({\r\n root: {\r\n fontFamily: \"Lato Regular\",\r\n textTransform: \"none\",\r\n minWidth: 72,\r\n fontWeight: theme.typography.fontWeightRegular,\r\n color: \"#003366\",\r\n background:\r\n \"linear-gradient(0deg, rgba(0, 0, 0, 0.1) 0%, rgba(255, 255, 255, 0) 16.67%), #DADADA\",\r\n height: 27,\r\n minHeight: 27,\r\n opacity: 1,\r\n marginTop: 3,\r\n marginLeft: 0.3,\r\n marginRight: 0.3,\r\n \"&:hover\": {\r\n opacity: 1,\r\n },\r\n \"&$selected\": {\r\n fontWeight: \"bold\",\r\n height: 30,\r\n background: \"#FFFFFF\",\r\n marginTop: 0,\r\n },\r\n \"&:focus\": {},\r\n },\r\n selected: {},\r\n}))((props: StyledTabProps) => );\r\n\r\ninterface StyledTabProps {\r\n label: string;\r\n value?: string;\r\n}\r\n\r\nconst NavigationTabs = () => {\r\n const location = useLocation();\r\n const navigation = useHistory();\r\n const { t } = useTranslation();\r\n const dispatch = useDispatch();\r\n\r\n const handleChange = (_event: React.ChangeEvent<{}>, newValue: string) => {\r\n navigation.push(newValue);\r\n };\r\n\r\n const reportControlId = useSelector((state: RootState) => state.user.reportControlId);\r\n const reportDate = useSelector(getReportDateSelector);\r\n\r\n React.useEffect(() => {\r\n if (reportControlId) {\r\n dispatch(loadVisibleSections(reportControlId));\r\n if (reportDate) {\r\n dispatch(loadAssetClassParameters(reportControlId, reportDate));\r\n }\r\n }\r\n }, [dispatch, reportControlId, reportDate]);\r\n\r\n const visibleSections = useSelector(\r\n (state: RootState) => state.user.visibleSections?.data as VisibleSections | undefined\r\n );\r\n const assetClassParamaters = useSelector((state: RootState) => state.assetClassParameters.data);\r\n\r\n const hasAssetClass = (assetClass: string) =>\r\n assetClassParamaters?.some((ap) => ap.AssetClass === assetClass) ?? false;\r\n\r\n const covenantsCount = useSelector((state: RootState) => state.covenants.count ?? 0);\r\n\r\n const showCovenants = covenantsCount > 1 && (visibleSections?.NaytaSitoumukset ?? false);\r\n\r\n return (\r\n \r\n \r\n {hasAssetClass(\"Art\") && }\r\n {hasAssetClass(\"Commodity\") && (\r\n \r\n )}\r\n {hasAssetClass(\"Currency\") && }\r\n {hasAssetClass(\"Heino - Suorat sijoitukset\") && (\r\n \r\n )}\r\n {hasAssetClass(\"Equity\") && }\r\n {hasAssetClass(\"Forest\") && }\r\n {hasAssetClass(\"Mixed Allocation\") && (\r\n \r\n )}\r\n {hasAssetClass(\"Real Estate\") && (\r\n \r\n )}\r\n {hasAssetClass(\"Fixed Income\") && (\r\n \r\n )}\r\n {hasAssetClass(\"Derivative\") && (\r\n \r\n )}\r\n {hasAssetClass(\"Private Equity\") && (\r\n \r\n )}\r\n {hasAssetClass(\"Private Debt\") && (\r\n \r\n )}\r\n {hasAssetClass(\"Structured\") && (\r\n \r\n )}\r\n {hasAssetClass(\"Specialty\") && }\r\n {showCovenants && }\r\n {visibleSections?.NaytaVoittoTappio && (\r\n \r\n )}\r\n {visibleSections?.NaytaPaivakirja && }\r\n {visibleSections?.NaytaSaldo && (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default React.memo(NavigationTabs);\r\n","import { RootDispatch } from \"redux/rootReducer\";\r\nimport { load, loadFail, loadSuccess } from \"./assetClassParametersActions\";\r\nimport * as request from \"utility/request\";\r\nimport { AssetClassParameter } from \"types/AssetClassParameter\";\r\n\r\nconst apiUrl = process.env.REACT_APP_API_URL;\r\n\r\nexport const loadAssetClassParameters = (reportControlId: string, reportDate: string) => {\r\n return async (dispatch: RootDispatch) => {\r\n dispatch(load());\r\n\r\n try {\r\n const res = await request.getResponseJson(\r\n `${apiUrl}/api/assetclassparameters?reportControlId=${reportControlId}&reportDate=${reportDate}`\r\n );\r\n dispatch(loadSuccess(res));\r\n } catch (error) {\r\n return request.handleFetchError(dispatch, error, loadFail(error));\r\n }\r\n };\r\n};\r\n","import { RootDispatch } from \"redux/rootReducer\";\r\nimport { load, loadFail, loadSuccess } from \"./portfolioInformationActions\";\r\nimport * as request from \"utility/request\";\r\nimport { PortfolioInformation } from \"types/PortfolioInformation\";\r\n\r\nconst apiUrl = process.env.REACT_APP_API_URL;\r\n\r\nexport const loadPorfolioInformation = (reportControlId: string, reportDate: string) => {\r\n return async (dispatch: RootDispatch) => {\r\n dispatch(load());\r\n\r\n try {\r\n const res = await request.getResponseJson(\r\n `${apiUrl}/api/portfolioInformation?reportControlId=${reportControlId}&reportDate=${reportDate}`\r\n );\r\n\r\n dispatch(loadSuccess(res));\r\n } catch (error) {\r\n return request.handleFetchError(dispatch, error, loadFail(error));\r\n }\r\n };\r\n};\r\n","import { RootDispatch } from \"redux/rootReducer\";\r\nimport {\r\n load,\r\n loadSuccess,\r\n loadFail,\r\n loadCount,\r\n loadCountSuccess,\r\n loadCountFail,\r\n} from \"./covenantsActions\";\r\nimport * as request from \"utility/request\";\r\nimport { Covenants } from \"types/Covenants\";\r\n\r\nconst apiUrl = process.env.REACT_APP_API_URL;\r\n\r\nexport const loadCovenants = (reportControlId: string, reportDate: string) => {\r\n return async (dispatch: RootDispatch) => {\r\n dispatch(load());\r\n\r\n try {\r\n const res = await request.getResponseJson(\r\n `${apiUrl}/api/covenants?reportControlId=${reportControlId}&reportDate=${reportDate}`\r\n );\r\n\r\n dispatch(loadSuccess(res));\r\n } catch (error) {\r\n return request.handleFetchError(dispatch, error, loadFail(error));\r\n }\r\n };\r\n};\r\n\r\nexport const loadCovenantsCount = (reportControlId: string, reportDate: string) => {\r\n return async (dispatch: RootDispatch) => {\r\n dispatch(loadCount());\r\n\r\n try {\r\n const res = await request.getResponseJson(\r\n `${apiUrl}/api/covenants/count?reportControlId=${reportControlId}&reportDate=${reportDate}`\r\n );\r\n\r\n dispatch(loadCountSuccess(res));\r\n } catch (error) {\r\n return request.handleFetchError(dispatch, error, loadCountFail(error));\r\n }\r\n };\r\n};\r\n","import React from \"react\";\r\nimport { createUseStyles } from \"react-jss\";\r\nimport { Grid, IconButton, Tooltip, Select, MenuItem } from \"@material-ui/core\";\r\nimport HeaderLogo from \"./HeaderLogo\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport NavigationTabs from \"./NavigationTabs\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { loadPorfolioInformation } from \"redux/portfolioInformation/portfolioInformationFunctions\";\r\nimport { RootState } from \"redux/rootReducer\";\r\nimport { asEur, asPercent } from \"utility/numbers\";\r\nimport { loadYieldPerTimespans } from \"redux/yieldPerTimespan/yieldPerTimespanFunctions\";\r\nimport { loadUserPermissions } from \"redux/user/userFunctions\";\r\nimport { selectUserPermission } from \"redux/user/userActions\";\r\nimport { getReportDateSelector } from \"redux/user/user\";\r\nimport { UserPermission } from \"types/UserPermission\";\r\nimport { removeState } from \"redux/oidc/oidcFunctions\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport Background from \"img/Background.png\";\r\nimport { dateToString } from \"../utility/date\";\r\nimport { VisibleSections } from \"types/VisibleSections\";\r\nimport { loadCovenantsCount } from \"redux/covenants/covenantsFunctions\";\r\n\r\nconst useStyles = createUseStyles({\r\n container: {\r\n minHeight: 90,\r\n width: \"100%\",\r\n position: \"static\",\r\n backgroundImage: `url(${Background})`,\r\n },\r\n headerBar: {\r\n minHeight: 58,\r\n },\r\n logo: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n justifyContent: \"flex-start\",\r\n alignItems: \"center\",\r\n },\r\n mainInfo: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n justifyContent: \"space-between\",\r\n },\r\n centerItems: {\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n },\r\n justifyItemsStart: {\r\n display: \"flex\",\r\n justifyContent: \"flex-start\",\r\n alignItems: \"center\",\r\n },\r\n justifyItemsEnd: {\r\n display: \"flex\",\r\n justifyContent: \"flex-end\",\r\n alignItems: \"center\",\r\n },\r\n line: {\r\n height: \"calc(100% + 10px)\",\r\n paddingLeft: 1,\r\n paddingRight: 1,\r\n marginRight: 40,\r\n background: \"#ffffff\",\r\n },\r\n whiteColor: {\r\n color: \"#FFFFFF !important\",\r\n },\r\n});\r\n\r\nconst MainHeader = () => {\r\n const classes = useStyles();\r\n\r\n const dispatch = useDispatch();\r\n\r\n const { t } = useTranslation();\r\n\r\n const history = useHistory();\r\n\r\n const reportControlId = useSelector((state: RootState) => state.user.reportControlId);\r\n const reportDate = useSelector(getReportDateSelector);\r\n\r\n const showIndex = useSelector(\r\n (state: RootState) =>\r\n (state.user.visibleSections?.data as VisibleSections | undefined)?.NaytaTuotto ?? false\r\n );\r\n\r\n React.useEffect(() => {\r\n dispatch(loadUserPermissions());\r\n if (reportControlId && reportDate) {\r\n dispatch(loadPorfolioInformation(reportControlId, reportDate));\r\n dispatch(loadYieldPerTimespans(reportControlId, reportDate, showIndex));\r\n dispatch(loadCovenantsCount(reportControlId, reportDate));\r\n }\r\n }, [dispatch, reportControlId, reportDate, showIndex]);\r\n\r\n const portfolioInformation = useSelector((state: RootState) => state.portfolioInformation.data);\r\n\r\n const userPermissions = useSelector(\r\n (state: RootState) => state.user.userPermissions?.data as UserPermission[] | undefined\r\n );\r\n\r\n const userPermissionsSorted = React.useMemo(\r\n () => userPermissions?.sort((a, b) => a.Name.localeCompare(b.Name)),\r\n [userPermissions]\r\n );\r\n\r\n const visibleSections = useSelector(\r\n (state: RootState) => state.user.visibleSections?.data as VisibleSections | undefined\r\n );\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n {t(\"property_report\")}\r\n \r\n \r\n \r\n \r\n
    \r\n {\r\n dispatch(selectUserPermission(event.target.value as string));\r\n history.push(\"/\");\r\n }}\r\n >\r\n {userPermissionsSorted?.map((p) => (\r\n \r\n {p.Name}\r\n \r\n ))}\r\n \r\n \r\n \r\n

    \r\n {t(\"portfolio_market_value\")}:

    \r\n \r\n {asEur(portfolioInformation?.MarkkinaArvo)}\r\n \r\n

    \r\n
    \r\n \r\n

    \r\n {t(\"profit_from_start\")}\r\n

    \r\n \r\n {asPercent(portfolioInformation?.TuottoAlusta)}\r\n \r\n

    \r\n
    \r\n {Boolean(visibleSections?.NaytaESG) && (\r\n \r\n

    \r\n {t(\"impact_esg\")}:

    \r\n \r\n {asPercent(portfolioInformation?.NetImpactRatio, 0)}\r\n \r\n

    \r\n
    \r\n )}\r\n \r\n

    \r\n {t(\"portfolio_start\")}:

    \r\n \r\n {portfolioInformation !== undefined\r\n ? dateToString(portfolioInformation?.SalkkuAloitettu, \"D.M.YYYY\")\r\n : \"-\"}\r\n \r\n

    \r\n
    \r\n \r\n (\"logout\")} aria-label={t(\"logout\")}>\r\n {\r\n dispatch(removeState());\r\n history.push(\"/logout\");\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\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default React.memo(MainHeader);\r\n","import React from \"react\";\r\n\r\ninterface Props {\r\n smallLogo?: boolean;\r\n}\r\n\r\nconst HeaderLogoMobile = (props: Props) => {\r\n return (\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\n \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\n \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 React.memo(HeaderLogoMobile);\r\n","import React from \"react\";\r\nimport { createUseStyles } from \"react-jss\";\r\nimport { Grid, IconButton, Tooltip, Select, MenuItem } from \"@material-ui/core\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport NavigationTabs from \"./NavigationTabs\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { loadPorfolioInformation } from \"redux/portfolioInformation/portfolioInformationFunctions\";\r\nimport { RootState } from \"redux/rootReducer\";\r\nimport { loadYieldPerTimespans } from \"redux/yieldPerTimespan/yieldPerTimespanFunctions\";\r\nimport { loadUserPermissions } from \"redux/user/userFunctions\";\r\nimport { selectUserPermission } from \"redux/user/userActions\";\r\nimport { getReportDateSelector } from \"redux/user/user\";\r\nimport { UserPermission } from \"types/UserPermission\";\r\nimport { removeState } from \"redux/oidc/oidcFunctions\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport HeaderLogoMobile from \"./HeaderLogoMobile\";\r\nimport Background from \"img/Background.png\";\r\nimport { VisibleSections } from \"types/VisibleSections\";\r\n\r\nconst useStyles = createUseStyles({\r\n container: {\r\n minHeight: 78,\r\n width: \"100%\",\r\n position: \"static\",\r\n backgroundImage: `url(${Background})`,\r\n backgroundSize: \"cover\",\r\n },\r\n top: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n justifyContent: \"space-around\",\r\n alignItems: \"center\",\r\n marginLeft: 12,\r\n },\r\n center: {\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n },\r\n bottom: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n justifyContent: \"space-between\",\r\n },\r\n line: {\r\n height: \"100%\",\r\n paddingLeft: 1,\r\n paddingRight: 1,\r\n background: \"#FFFFFF\",\r\n },\r\n whiteColor: {\r\n color: \"#FFFFFF !important\",\r\n },\r\n});\r\n\r\nconst MainHeaderMobile = () => {\r\n const classes = useStyles();\r\n\r\n const dispatch = useDispatch();\r\n\r\n const { t } = useTranslation();\r\n\r\n const history = useHistory();\r\n\r\n const reportControlId = useSelector((state: RootState) => state.user.reportControlId);\r\n const reportDate = useSelector(getReportDateSelector);\r\n\r\n const showIndex = useSelector(\r\n (state: RootState) =>\r\n (state.user.visibleSections?.data as VisibleSections | undefined)?.NaytaTuotto ?? false\r\n );\r\n\r\n React.useEffect(() => {\r\n dispatch(loadUserPermissions());\r\n if (reportControlId && reportDate) {\r\n dispatch(loadPorfolioInformation(reportControlId, reportDate));\r\n dispatch(loadYieldPerTimespans(reportControlId, reportDate, showIndex));\r\n }\r\n }, [dispatch, reportControlId, reportDate, showIndex]);\r\n\r\n const userPermissions = useSelector(\r\n (state: RootState) => state.user.userPermissions?.data as UserPermission[] | undefined\r\n );\r\n\r\n const userPermissionsSorted = React.useMemo(\r\n () => userPermissions?.sort((a, b) => a.Name.localeCompare(b.Name)),\r\n [userPermissions]\r\n );\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n {\r\n dispatch(selectUserPermission(event.target.value as string));\r\n }}\r\n >\r\n {userPermissionsSorted?.map((p) => (\r\n \r\n {p.Name}\r\n \r\n ))}\r\n \r\n \r\n \r\n (\"logout\")} aria-label={t(\"logout\")}>\r\n {\r\n dispatch(removeState());\r\n history.push(\"/logout\");\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\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default React.memo(MainHeaderMobile);\r\n","import { useMediaQuery } from \"@material-ui/core\";\r\nimport React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { Route, Redirect, RouteProps } from \"react-router\";\r\nimport { RootState } from \"redux/rootReducer\";\r\nimport Footer from \"./Footer\";\r\nimport MainHeader from \"./MainHeader\";\r\nimport MainHeaderMobile from \"./MainHeaderMobile\";\r\n\r\ninterface Props extends RouteProps {\r\n component:\r\n | React.LazyExoticComponent>\r\n | React.ComponentClass\r\n | React.FunctionComponent;\r\n path: string;\r\n}\r\n\r\nfunction PrivateRoute(props: Props) {\r\n const { component: Component, path } = props;\r\n\r\n const matchesMediaQuery = useMediaQuery(\"(min-width: 1024px)\");\r\n\r\n const hasPermission = useSelector((state: RootState) => state.oidc.data?.AccessToken);\r\n\r\n if (!Boolean(hasPermission)) {\r\n return ;\r\n }\r\n\r\n return (\r\n <>\r\n {matchesMediaQuery ? : }\r\n \r\n }\r\n />\r\n
    \r\n