{"version":3,"file":"UwkEOZ3W.js","sources":["../../../../../../../../node_modules/lucide-svelte/dist/icons/arrow-right.svelte","../../../../../../../../node_modules/lucide-svelte/dist/icons/chart-pie.svelte","../../../../../../src/lib/utils/portfolioUtils.ts"],"sourcesContent":["\n\n\n \n\n","\n\n\n \n\n","/**\n * Utility functions for calculating portfolio values consistently across the application\n */\n\n/**\n * Calculate total portfolio value from token balances and liquidity pools\n * @param balances Object containing token balances with USD values\n * @param pools Array of liquidity pool positions\n * @returns Total portfolio value in USD\n */\nexport function calculatePortfolioValue(\n balances: Record = {},\n pools: any[] = []\n): number {\n // Calculate value from token balances\n const tokensValue = Object.values(balances || {})\n .reduce((acc: number, balance: any) => {\n if (balance && balance.in_usd) {\n // Safely convert to number, handling non-numeric strings\n const numValue = parseFloat(balance.in_usd);\n return acc + (isNaN(numValue) ? 0 : numValue);\n }\n return acc;\n }, 0);\n \n // Calculate value from liquidity pools\n const poolsValue = (pools || []).reduce((acc, pool: any) => {\n // Safely convert usd_balance to number, handling all edge cases\n let usdBalance = 0;\n if (pool && pool.usd_balance) {\n usdBalance = parseFloat(pool.usd_balance);\n if (isNaN(usdBalance)) usdBalance = 0;\n }\n return acc + usdBalance;\n }, 0);\n \n // Return combined value\n return tokensValue + poolsValue;\n}\n\n/**\n * Format currency for display\n * @param value Number to format as currency\n * @param minimumFractionDigits Minimum fraction digits (default: 2)\n * @param maximumFractionDigits Maximum fraction digits (default: 2)\n * @returns Formatted currency string\n */\nexport function formatCurrency(\n value: number,\n minimumFractionDigits = 2,\n maximumFractionDigits = 2\n): string {\n return new Intl.NumberFormat(\"en-US\", {\n style: \"currency\",\n currency: \"USD\",\n minimumFractionDigits,\n maximumFractionDigits\n }).format(value);\n} "],"names":["iconNode","d","calculatePortfolioValue","balances","pools","Object","values","reduce","acc","balance","in_usd","numValue","parseFloat","isNaN","pool","usdBalance","usd_balance","formatCurrency","value","minimumFractionDigits","maximumFractionDigits","Intl","NumberFormat","style","currency","format"],"mappings":"qNAmCgDA,SAdlC,EAAK,OAAM,CAAIC,EAAK,cAAgB,OAAM,CAAIA,EAAK,0NCcnBD,SAdhC,EAAK,QAAUC,EAAK,0GAA4G,OAAU,CAAAA,EAAK,gICXtJ,SAASC,EACdC,EAAgC,GAChCC,EAAe,IAyBf,OAtBoBC,OAAOC,OAAOH,GAAY,CAAE,GAC7CI,QAAO,CAACC,EAAaC,KAChB,GAAAA,GAAWA,EAAQC,OAAQ,CAEvB,MAAAC,EAAWC,WAAWH,EAAQC,QACpC,OAAOF,GAAOK,MAAMF,GAAY,EAAIA,EAAA,CAE/B,OAAAH,CAAA,GACN,IAGeJ,GAAS,IAAIG,QAAO,CAACC,EAAKM,KAE5C,IAAIC,EAAa,EAKjB,OAJID,GAAQA,EAAKE,cACFD,EAAAH,WAAWE,EAAKE,aACzBH,MAAME,KAA0BA,EAAA,IAE/BP,EAAMO,CAAA,GACZ,EAIL,CASO,SAASE,EACdC,EACAC,EAAwB,EACxBC,EAAwB,GAEjB,OAAA,IAAIC,KAAKC,aAAa,QAAS,CACpCC,MAAO,WACPC,SAAU,MACVL,wBACAC,0BACCK,OAAOP,EACZ","x_google_ignoreList":[0,1]}