table fix of financials page

This commit is contained in:
MuslemRahimi 2024-10-25 19:43:06 +02:00
parent 7f878a12e4
commit c3ee0843e3
4 changed files with 229 additions and 299 deletions

View File

@ -28,7 +28,7 @@
let filterRule = "annual";
let displayStatement = "revenue";
let mode = true;
let mode = false;
let timeFrame = "10Y";
onMount(async () => {
@ -716,23 +716,23 @@
<div
class="w-full rounded-none sm:rounded-lg m-auto overflow-x-auto"
>
<table class="table w-full">
<table class="table table-sm table-compact w-full">
<thead>
<tr class="text-white">
<td
class="text-start border-r border-[#191E24] bg-[#09090B] text-white text-sm font-semibold pr-10"
class="text-start bg-[#09090B] text-white text-sm font-semibold pr-10"
>Year</td
>
{#each income as cash}
{#if filterRule === "annual"}
<td
class="bg-[#09090B] font-semibold pr-5 sm:pr-14 text-sm"
class="bg-[#09090B] font-semibold text-sm text-end"
>
{"FY" + cash?.calendarYear?.slice(-2)}
</td>
{:else}
<td
class="bg-[#09090B] font-semibold pr-5 sm:pr-14 text-sm"
class="bg-[#09090B] font-semibold text-sm text-end"
>
{"FY" +
cash?.calendarYear?.slice(-2) +
@ -747,144 +747,139 @@
<!-- row -->
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-white text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-white text-sm sm:text-[1rem]"
>Revenue</td
>
{#each income as cash}
<td class=" text-xs sm:text-sm">
{abbreviateNumber(cash?.revenue, true)}</td
<td class=" text-sm sm:text-[1rem] text-end">
{abbreviateNumber(cash?.revenue)}</td
>
{/each}
</tr>
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-white text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-white text-sm sm:text-[1rem]"
>Cost of Revenue</td
>
{#each income as cash}
<td class=" text-xs sm:text-sm">
{abbreviateNumber(cash?.costOfRevenue, true)}</td
<td class=" text-sm sm:text-[1rem] text-end">
{abbreviateNumber(cash?.costOfRevenue)}</td
>
{/each}
</tr>
<!-- row -->
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-white text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-white text-sm sm:text-[1rem]"
>Gross Profit</td
>
{#each income as cash}
<td class=" text-xs sm:text-sm">
{abbreviateNumber(cash?.grossProfit, true)}</td
<td class=" text-sm sm:text-[1rem] text-end">
{abbreviateNumber(cash?.grossProfit)}</td
>
{/each}
</tr>
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-white text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-white text-sm sm:text-[1rem]"
>Selling, General & Admin</td
>
{#each income as cash}
<td class=" text-xs sm:text-sm">
<td class=" text-sm sm:text-[1rem] text-end">
{abbreviateNumber(
cash?.sellingGeneralAndAdministrativeExpenses,
true,
)}</td
>
{/each}
</tr>
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-white text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-white text-sm sm:text-[1rem]"
>Research & Development</td
>
{#each income as cash}
<td class=" text-xs sm:text-sm">
<td class=" text-sm sm:text-[1rem] text-end">
{abbreviateNumber(
cash?.researchAndDevelopmentExpenses,
true,
)}</td
>
{/each}
</tr>
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-white text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-white text-sm sm:text-[1rem]"
>Other Expenses</td
>
{#each income as cash}
<td class=" text-xs sm:text-sm">
{abbreviateNumber(cash?.otherExpenses, true)}</td
<td class=" text-sm sm:text-[1rem] text-end">
{abbreviateNumber(cash?.otherExpenses)}</td
>
{/each}
</tr>
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-white text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-white text-sm sm:text-[1rem]"
>Operating Expenses</td
>
{#each income as cash}
<td class=" text-xs sm:text-sm">
{abbreviateNumber(
cash?.operatingExpenses,
true,
)}</td
<td class=" text-sm sm:text-[1rem] text-end">
{abbreviateNumber(cash?.o)}</td
>
{/each}
</tr>
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-white text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-white text-sm sm:text-[1rem]"
>Interest Expense</td
>
{#each income as cash}
<td class=" text-xs sm:text-sm">
{abbreviateNumber(cash?.interestExpense, true)}</td
<td class=" text-sm sm:text-[1rem] text-end">
{abbreviateNumber(cash?.interestExpense)}</td
>
{/each}
</tr>
<!-- row -->
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-white text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-white text-sm sm:text-[1rem]"
>Pretax Income</td
>
{#each income as cash}
<td class=" text-xs sm:text-sm">
{abbreviateNumber(cash?.incomeBeforeTax, true)}</td
<td class=" text-sm sm:text-[1rem] text-end">
{abbreviateNumber(cash?.incomeBeforeTax)}</td
>
{/each}
</tr>
<!-- row -->
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-white text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-white text-sm sm:text-[1rem]"
>Income Tax</td
>
{#each income as cash}
<td class=" text-xs sm:text-sm">
{abbreviateNumber(cash?.incomeTaxExpense, true)}</td
<td class=" text-sm sm:text-[1rem] text-end">
{abbreviateNumber(cash?.incomeTaxExpense)}</td
>
{/each}
</tr>
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-white text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-white text-sm sm:text-[1rem]"
>Net Income</td
>
{#each income as cash}
<td class=" text-xs sm:text-sm">
{abbreviateNumber(cash?.netIncome, true)}</td
<td class=" text-sm sm:text-[1rem] text-end">
{abbreviateNumber(cash?.netIncome)}</td
>
{/each}
</tr>
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-white text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-white text-sm sm:text-[1rem]"
>Shares Outstanding (Basic)</td
>
{#each income as cash}
<td class=" text-xs sm:text-sm">
<td class=" text-sm sm:text-[1rem] text-end">
{abbreviateNumber(cash?.weightedAverageShsOut)}</td
>
{/each}
@ -892,11 +887,11 @@
<!-- row -->
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-white text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-white text-sm sm:text-[1rem]"
>Shares Outstanding (Diluted)</td
>
{#each income as cash}
<td class=" text-xs sm:text-sm">
<td class=" text-sm sm:text-[1rem] text-end">
{abbreviateNumber(
cash?.weightedAverageShsOutDil,
)}</td
@ -905,48 +900,45 @@
</tr>
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-white text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-white text-sm sm:text-[1rem]"
>EPS (Basic)</td
>
{#each income as cash}
<td class=" text-xs sm:text-sm">
<td class=" text-sm sm:text-[1rem] text-end">
{cash?.eps?.toFixed(2)}</td
>
{/each}
</tr>
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-white text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-white text-sm sm:text-[1rem]"
>EPS (Diluted)</td
>
{#each income as cash}
<td class=" text-xs sm:text-sm">
<td class=" text-sm sm:text-[1rem] text-end">
{cash?.epsdiluted?.toFixed(2)}</td
>
{/each}
</tr>
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-white text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-white text-sm sm:text-[1rem]"
>EBITDA</td
>
{#each income as cash}
<td class=" text-xs sm:text-sm">
{abbreviateNumber(cash?.ebitda, true)}</td
<td class=" text-sm sm:text-[1rem] text-end">
{abbreviateNumber(cash?.ebitda)}</td
>
{/each}
</tr>
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-white text-xs sm:text-sm"
class="text-start border-r whitespace-nowrap border-[#191E24] text-white text-sm sm:text-[1rem]"
>Depreciation & Amortization</td
>
{#each income as cash}
<td class=" text-xs sm:text-sm">
{abbreviateNumber(
cash?.depreciationAndAmortization,
true,
)}</td
<td class=" text-sm sm:text-[1rem] text-end">
{abbreviateNumber(cash?.depreciation)}</td
>
{/each}
</tr>

View File

@ -27,7 +27,7 @@
let displayStatement = "cashAndCashEquivalents";
let mode = true;
let mode = false;
let timeFrame = "10Y";
const statementConfig = [
@ -819,23 +819,23 @@
<div
class="w-full rounded-none sm:rounded-lg m-auto overflow-x-auto"
>
<table class="table w-full">
<table class="table table-sm table-compact w-full">
<thead>
<tr class="text-white">
<td
class="text-start border-r border-[#191E24] bg-[#09090B] text-white text-sm sm:text-[1rem] font-bold pr-10"
class="text-start bg-[#09090B] text-white text-sm sm:text-[1rem] font-bold pr-10"
>Year</td
>
{#each balanceSheet as balance}
{#if filterRule === "annual"}
<td
class="bg-[#09090B] font-semibold pr-5 sm:pr-14 text-sm"
class="bg-[#09090B] font-semibold text-sm text-end"
>
{"FY" + balance?.calendarYear?.slice(-2)}
</td>
{:else}
<td
class="bg-[#09090B] font-semibold pr-5 sm:pr-14 text-sm"
class="bg-[#09090B] font-semibold text-sm text-end"
>
{"FY" +
balance?.calendarYear?.slice(-2) +
@ -850,356 +850,320 @@
<!-- row -->
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-sm sm:text-[1rem]"
>Cash & Equivalents</td
>
{#each balanceSheet as balance}
<td class=" text-xs sm:text-sm">
<td class=" text-sm sm:text-[1rem] text-end">
{abbreviateNumber(
balance?.cashAndCashEquivalents,
true,
)}</td
>
{/each}
</tr>
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-sm sm:text-[1rem]"
>Short-Term Investments</td
>
{#each balanceSheet as balance}
<td class=" text-xs sm:text-sm">
{abbreviateNumber(
balance?.shortTermInvestments,
true,
)}</td
<td class=" text-sm sm:text-[1rem] text-end">
{abbreviateNumber(balance?.shortTermInvestments)}</td
>
{/each}
</tr>
<!-- row -->
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-sm sm:text-[1rem]"
>Long-Term Investments</td
>
{#each balanceSheet as balance}
<td class=" text-xs sm:text-sm">
{abbreviateNumber(
balance?.longTermInvestments,
true,
)}</td
<td class=" text-sm sm:text-[1rem] text-end">
{abbreviateNumber(balance?.longTermInvestments)}</td
>
{/each}
</tr>
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-sm sm:text-[1rem]"
>Other Long-Term Assets</td
>
{#each balanceSheet as balance}
<td class=" text-xs sm:text-sm">
{abbreviateNumber(
balance?.otherNonCurrentAssets,
true,
)}</td
<td class=" text-sm sm:text-[1rem] text-end">
{abbreviateNumber(balance?.otherNonCurrentAssets)}</td
>
{/each}
</tr>
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-sm sm:text-[1rem]"
>Receivables</td
>
{#each balanceSheet as balance}
<td class=" text-xs sm:text-sm">
{abbreviateNumber(balance?.netReceivables, true)}</td
<td class=" text-sm sm:text-[1rem] text-end">
{abbreviateNumber(balance?.netReceivables)}</td
>
{/each}
</tr>
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-sm sm:text-[1rem]"
>Inventory</td
>
{#each balanceSheet as balance}
<td class=" text-xs sm:text-sm">
{abbreviateNumber(balance?.inventory, true)}</td
<td class=" text-sm sm:text-[1rem] text-end">
{abbreviateNumber(balance?.inventory)}</td
>
{/each}
</tr>
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-sm sm:text-[1rem]"
>Other Current Assets</td
>
{#each balanceSheet as balance}
<td class=" text-xs sm:text-sm">
{abbreviateNumber(
balance?.otherCurrentAssets,
true,
)}</td
<td class=" text-sm sm:text-[1rem] text-end">
{abbreviateNumber(balance?.otherCurrentAssets)}</td
>
{/each}
</tr>
<!-- row -->
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-sm sm:text-[1rem]"
>Total Current Assets</td
>
{#each balanceSheet as balance}
<td class=" text-xs sm:text-sm">
{abbreviateNumber(
balance?.totalCurrentAssets,
true,
)}</td
<td class=" text-sm sm:text-[1rem] text-end">
{abbreviateNumber(balance?.totalCurrentAssets)}</td
>
{/each}
</tr>
<!-- row -->
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-xs sm:text-sm"
class="text-start whitespace-nowrap border-r border-gray-700 text-sm sm:text-[1rem]"
>Property, Plant & Equipment</td
>
{#each balanceSheet as balance}
<td class=" text-xs sm:text-sm">
<td class=" text-sm sm:text-[1rem] text-end">
{abbreviateNumber(
balance?.propertyPlantEquipmentNet,
true,
)}</td
>
{/each}
</tr>
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-sm sm:text-[1rem]"
>Goodwill & Intangibles</td
>
{#each balanceSheet as balance}
<td class=" text-xs sm:text-sm">
<td class=" text-sm sm:text-[1rem] text-end">
{abbreviateNumber(
balance?.goodwillAndIntangibleAssets,
true,
)}</td
>
{/each}
</tr>
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-sm sm:text-[1rem]"
>Total Long-Term Assets</td
>
{#each balanceSheet as balance}
<td class=" text-xs sm:text-sm">
{abbreviateNumber(
balance?.totalNonCurrentAssets,
true,
)}</td
<td class=" text-sm sm:text-[1rem] text-end">
{abbreviateNumber(balance?.totalNonCurrentAssets)}</td
>
{/each}
</tr>
<!-- row -->
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-sm sm:text-[1rem]"
>Total Assets</td
>
{#each balanceSheet as balance}
<td class=" text-xs sm:text-sm">
{abbreviateNumber(balance?.totalAssets, true)}</td
<td class=" text-sm sm:text-[1rem] text-end">
{abbreviateNumber(balance?.totalAssets)}</td
>
{/each}
</tr>
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-sm sm:text-[1rem]"
>Account Payables</td
>
{#each balanceSheet as balance}
<td class=" text-xs sm:text-sm">
{abbreviateNumber(balance?.accountPayables, true)}</td
<td class=" text-sm sm:text-[1rem] text-end">
{abbreviateNumber(balance?.accountPayables)}</td
>
{/each}
</tr>
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-sm sm:text-[1rem]"
>Deferred Revenue</td
>
{#each balanceSheet as balance}
<td class=" text-xs sm:text-sm">
{abbreviateNumber(balance?.deferredRevenue, true)}</td
<td class=" text-sm sm:text-[1rem] text-end">
{abbreviateNumber(balance?.deferredRevenue)}</td
>
{/each}
</tr>
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-sm sm:text-[1rem]"
>Short-Term Debt</td
>
{#each balanceSheet as balance}
<td class=" text-xs sm:text-sm">
{abbreviateNumber(balance?.shortTermDebt, true)}</td
<td class=" text-sm sm:text-[1rem] text-end">
{abbreviateNumber(balance?.shortTermDebt)}</td
>
{/each}
</tr>
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-sm sm:text-[1rem]"
>Other Current Liabilities</td
>
{#each balanceSheet as balance}
<td class=" text-xs sm:text-sm">
<td class=" text-sm sm:text-[1rem] text-end">
{abbreviateNumber(
balance?.otherCurrentLiabilities,
true,
)}</td
>
{/each}
</tr>
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-sm sm:text-[1rem]"
>Total Current Liabilities</td
>
{#each balanceSheet as balance}
<td class=" text-xs sm:text-sm">
<td class=" text-sm sm:text-[1rem] text-end">
{abbreviateNumber(
balance?.totalCurrentLiabilities,
true,
)}</td
>
{/each}
</tr>
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-sm sm:text-[1rem]"
>Long-Term Debt</td
>
{#each balanceSheet as balance}
<td class=" text-xs sm:text-sm">
{abbreviateNumber(balance?.longTermDebt, true)}</td
<td class=" text-sm sm:text-[1rem] text-end">
{abbreviateNumber(balance?.longTermDebt)}</td
>
{/each}
</tr>
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-sm sm:text-[1rem]"
>Other Long-Term Liabilities</td
>
{#each balanceSheet as balance}
<td class=" text-xs sm:text-sm">
<td class=" text-sm sm:text-[1rem] text-end">
{abbreviateNumber(
balance?.otherNonCurrentLiabilities,
true,
)}</td
>
{/each}
</tr>
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-sm sm:text-[1rem]"
>Total Long-Term Liabilities</td
>
{#each balanceSheet as balance}
<td class=" text-xs sm:text-sm">
<td class=" text-sm sm:text-[1rem] text-end">
{abbreviateNumber(
balance?.totalNonCurrentLiabilities,
true,
)}</td
>
{/each}
</tr>
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-sm sm:text-[1rem]"
>Total Liabilities</td
>
{#each balanceSheet as balance}
<td class=" text-xs sm:text-sm">
{abbreviateNumber(
balance?.totalLiabilities,
true,
)}</td
<td class=" text-sm sm:text-[1rem] text-end">
{abbreviateNumber(balance?.totalLiabilities)}</td
>
{/each}
</tr>
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-sm sm:text-[1rem]"
>Total Debt</td
>
{#each balanceSheet as balance}
<td class=" text-xs sm:text-sm">
{abbreviateNumber(balance?.totalDebt, true)}</td
<td class=" text-sm sm:text-[1rem] text-end">
{abbreviateNumber(balance?.totalDebt)}</td
>
{/each}
</tr>
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-sm sm:text-[1rem]"
>Common Stock</td
>
{#each balanceSheet as balance}
<td class=" text-xs sm:text-sm">
{abbreviateNumber(balance?.commonStock, true)}</td
<td class=" text-sm sm:text-[1rem] text-end">
{abbreviateNumber(balance?.commonStock)}</td
>
{/each}
</tr>
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-sm sm:text-[1rem]"
>Retained Earnings</td
>
{#each balanceSheet as balance}
<td class=" text-xs sm:text-sm">
{abbreviateNumber(
balance?.retainedEarnings,
true,
)}</td
<td class=" text-sm sm:text-[1rem] text-end">
{abbreviateNumber(balance?.retainedEarnings)}</td
>
{/each}
</tr>
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-sm sm:text-[1rem]"
>Comprehensive Income</td
>
{#each balanceSheet as balance}
<td class=" text-xs sm:text-sm">
<td class=" text-sm sm:text-[1rem] text-end">
{abbreviateNumber(
balance?.accumulatedOtherComprehensiveIncomeLoss,
true,
)}</td
>
{/each}
</tr>
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-sm sm:text-[1rem]"
>Shareholders' Equity</td
>
{#each balanceSheet as balance}
<td class=" text-xs sm:text-sm">
<td class=" text-sm sm:text-[1rem] text-end">
{abbreviateNumber(
balance?.totalStockholdersEquity,
true,
)}</td
>
{/each}
</tr>
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-sm sm:text-[1rem]"
>Total Investments</td
>
{#each balanceSheet as balance}
<td class=" text-xs sm:text-sm">
{abbreviateNumber(
balance?.totalInvestments,
true,
)}</td
<td class=" text-sm sm:text-[1rem] text-end">
{abbreviateNumber(balance?.totalInvestments)}</td
>
{/each}
</tr>

View File

@ -25,7 +25,7 @@
let filterRule = "annual";
let displayStatement = "netIncome";
let mode = true;
let mode = false;
let tableList = [];
let timeFrame = "10Y";
@ -754,19 +754,19 @@
<thead>
<tr class="text-white">
<td
class="text-start border-r border-[#191E24] text-white text-sm sm:text-[1rem] font-bold pr-10"
class="text-start text-white text-sm sm:text-[1rem] font-semibold"
>Year</td
>
{#each cashFlow as cash}
{#if filterRule === "annual"}
<td
class="bg-[#09090B] font-semibold pr-5 sm:pr-14 text-sm"
class="bg-[#09090B] font-semibold text-end text-sm"
>
{"FY" + cash?.calendarYear?.slice(-2)}
</td>
{:else}
<td
class="bg-[#09090B] font-semibold pr-5 sm:pr-14 text-sm"
class="bg-[#09090B] font-semibold text-end text-sm"
>
{"FY" +
cash?.calendarYear?.slice(-2) +
@ -781,25 +781,24 @@
<!-- row -->
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-sm sm:text-[1rem]"
>Net Income</td
>
{#each cashFlow as cash}
<td class="text-xs sm:text-sm">
{abbreviateNumber(cash?.netIncome, true)}</td
<td class="text-end text-sm sm:text-[1rem]">
{abbreviateNumber(cash?.netIncome)}</td
>
{/each}
</tr>
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-xs sm:text-sm"
class="text-start whitespace-nowrap border-r border-gray-700 text-sm sm:text-[1rem]"
>Depreciation & Amortization</td
>
{#each cashFlow as cash}
<td class="text-xs sm:text-sm">
<td class="text-end text-sm sm:text-[1rem]">
{abbreviateNumber(
cash?.depreciationAndAmortization,
true,
)}</td
>
{/each}
@ -807,78 +806,68 @@
<!-- row -->
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-sm sm:text-[1rem]"
>Stock-Based Compensation</td
>
{#each cashFlow as cash}
<td class="text-xs sm:text-sm">
{abbreviateNumber(
cash?.stockBasedCompensation,
true,
)}</td
<td class="text-end text-sm sm:text-[1rem]">
{abbreviateNumber(cash?.stockBasedCompensation)}</td
>
{/each}
</tr>
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-sm sm:text-[1rem]"
>Other Working Capital</td
>
{#each cashFlow as cash}
<td class="text-xs sm:text-sm">
{abbreviateNumber(
cash?.otherWorkingCapital,
true,
)}</td
<td class="text-end text-sm sm:text-[1rem]">
{abbreviateNumber(cash?.otherWorkingCapital)}</td
>
{/each}
</tr>
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-sm sm:text-[1rem]"
>Other Non-Cash Items</td
>
{#each cashFlow as cash}
<td class="text-xs sm:text-sm">
{abbreviateNumber(cash?.otherNonCashItems, true)}</td
<td class="text-end text-sm sm:text-[1rem]">
{abbreviateNumber(cash?.otherNonCashItems)}</td
>
{/each}
</tr>
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-sm sm:text-[1rem]"
>Deferred Income Tax</td
>
{#each cashFlow as cash}
<td class="text-xs sm:text-sm">
{abbreviateNumber(cash?.deferredIncomeTax, true)}</td
<td class="text-end text-sm sm:text-[1rem]">
{abbreviateNumber(cash?.deferredIncomeTax)}</td
>
{/each}
</tr>
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-sm sm:text-[1rem]"
>Change in Working Capital</td
>
{#each cashFlow as cash}
<td class="text-xs sm:text-sm">
{abbreviateNumber(
cash?.changeInWorkingCapital,
true,
)}</td
<td class="text-end text-sm sm:text-[1rem]">
{abbreviateNumber(cash?.changeInWorkingCapital)}</td
>
{/each}
</tr>
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-sm sm:text-[1rem]"
>Operating Cash Flow</td
>
{#each cashFlow as cash}
<td class="text-xs sm:text-sm">
<td class="text-end text-sm sm:text-[1rem]">
{abbreviateNumber(
cash?.netCashProvidedByOperatingActivities,
true,
)}</td
>
{/each}
@ -886,51 +875,47 @@
<!-- row -->
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-sm sm:text-[1rem]"
>Capital Expenditures</td
>
{#each cashFlow as cash}
<td class="text-xs sm:text-sm">
{abbreviateNumber(cash?.capitalExpenditure, true)}</td
<td class="text-end text-sm sm:text-[1rem]">
{abbreviateNumber(cash?.capitalExpenditure)}</td
>
{/each}
</tr>
<!-- row -->
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-sm sm:text-[1rem]"
>Acquisitions</td
>
{#each cashFlow as cash}
<td class="text-xs sm:text-sm">
{abbreviateNumber(cash?.acquisitionsNet, true)}</td
<td class="text-end text-sm sm:text-[1rem]">
{abbreviateNumber(cash?.acquisitionsNet)}</td
>
{/each}
</tr>
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-sm sm:text-[1rem]"
>Purchase of Investments</td
>
{#each cashFlow as cash}
<td class="text-xs sm:text-sm">
{abbreviateNumber(
cash?.purchasesOfInvestments,
true,
)}</td
<td class="text-end text-sm sm:text-[1rem]">
{abbreviateNumber(cash?.purchasesOfInvestments)}</td
>
{/each}
</tr>
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-sm sm:text-[1rem]"
>Sales Maturities Of Investments</td
>
{#each cashFlow as cash}
<td class="text-xs sm:text-sm">
<td class="text-end text-sm sm:text-[1rem]">
{abbreviateNumber(
cash?.salesMaturitiesOfInvestments,
true,
)}</td
>
{/each}
@ -938,115 +923,104 @@
<!-- row -->
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-sm sm:text-[1rem]"
>Other Investing Acitivies</td
>
{#each cashFlow as cash}
<td class="text-xs sm:text-sm">
{abbreviateNumber(
cash?.otherInvestingActivites,
true,
)}</td
<td class="text-end text-sm sm:text-[1rem]">
{abbreviateNumber(cash?.otherInvestingActivites)}</td
>
{/each}
</tr>
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-sm sm:text-[1rem]"
>Investing Cash Flow</td
>
{#each cashFlow as cash}
<td class="text-xs sm:text-sm">
<td class="text-end text-sm sm:text-[1rem]">
{abbreviateNumber(
cash?.netCashUsedForInvestingActivites,
true,
)}</td
>
{/each}
</tr>
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-sm sm:text-[1rem]"
>Debt Repayment</td
>
{#each cashFlow as cash}
<td class="text-xs sm:text-sm">
{abbreviateNumber(cash?.debtRepayment, true)}</td
<td class="text-end text-sm sm:text-[1rem]">
{abbreviateNumber(cash?.debtRepayment)}</td
>
{/each}
</tr>
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-xs sm:text-sm"
class="text-start whitespace-nowrap border-r border-gray-700 text-sm sm:text-[1rem]"
>Common Stock Repurchased</td
>
{#each cashFlow as cash}
<td class="text-xs sm:text-sm">
{abbreviateNumber(
cash?.commonStockRepurchased,
true,
)}</td
<td class="text-end text-sm sm:text-[1rem]">
{abbreviateNumber(cash?.commonStockRepurchased)}</td
>
{/each}
</tr>
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-sm sm:text-[1rem]"
>Dividend Paid</td
>
{#each cashFlow as cash}
<td class="text-xs sm:text-sm">
{abbreviateNumber(cash?.dividendsPaid, true)}</td
<td class="text-end text-sm sm:text-[1rem]">
{abbreviateNumber(cash?.dividendsPaid)}</td
>
{/each}
</tr>
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-sm sm:text-[1rem]"
>Other Financial Acitivies</td
>
{#each cashFlow as cash}
<td class="text-xs sm:text-sm">
{abbreviateNumber(
cash?.otherFinancingActivites,
true,
)}</td
<td class="text-end text-sm sm:text-[1rem]">
{abbreviateNumber(cash?.otherFinancingActivites)}</td
>
{/each}
</tr>
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-sm sm:text-[1rem]"
>Financial Cash Flow</td
>
{#each cashFlow as cash}
<td class="text-xs sm:text-sm">
<td class="text-end text-sm sm:text-[1rem]">
{abbreviateNumber(
cash?.netCashUsedProvidedByFinancingActivities,
true,
)}</td
>
{/each}
</tr>
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-sm sm:text-[1rem]"
>Net Cash Flow</td
>
{#each cashFlow as cash}
<td class="text-xs sm:text-sm">
{abbreviateNumber(cash?.netChangeInCash, true)}</td
<td class="text-end text-sm sm:text-[1rem]">
{abbreviateNumber(cash?.netChangeInCash)}</td
>
{/each}
</tr>
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-sm sm:text-[1rem]"
>Free Cash Flow</td
>
{#each cashFlow as cash}
<td class="text-xs sm:text-sm">
{abbreviateNumber(cash?.freeCashFlow, true)}</td
<td class="text-end text-sm sm:text-[1rem]">
{abbreviateNumber(cash?.freeCashFlow)}</td
>
{/each}
</tr>

View File

@ -27,7 +27,7 @@
let displayStatement = "priceEarningsRatio";
let mode = true;
let mode = false;
let timeFrame = "10Y";
const statementConfig = [
@ -702,19 +702,19 @@
<thead>
<tr class="text-white">
<td
class="text-start border-r border-[#191E24] text-sm sm:text-[1rem] font-bold pr-10"
class="text-start text-sm sm:text-[1rem] font-bold pr-10"
>Year</td
>
{#each ratios as item}
{#if filterRule === "annual"}
<td
class="bg-[#09090B] font-semibold pr-5 sm:pr-14 text-sm"
class="bg-[#09090B] font-semibold text-end text-sm"
>
{"FY" + item?.calendarYear?.slice(-2)}
</td>
{:else}
<td
class="bg-[#09090B] font-semibold pr-5 sm:pr-14 text-sm"
class="bg-[#09090B] font-semibold text-end text-sm"
>
{"FY" +
item?.calendarYear?.slice(-2) +
@ -729,11 +729,11 @@
<!-- row -->
<tr class="text-white odd:bg-[#27272A] whitespace-nowrap">
<td
class="text-start border-r border-[#191E24] text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-sm sm:text-[1rem]"
>PE Ratio</td
>
{#each ratios as item}
<td class="text-xs sm:text-sm">
<td class="text-sm sm:text-[1rem] text-end">
{filterRule === "annual"
? (item?.priceEarningsRatio / 4)?.toFixed(2)
: item?.priceEarningsRatio?.toFixed(2)}
@ -742,11 +742,11 @@
</tr>
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-sm sm:text-[1rem]"
>PS Ratio</td
>
{#each ratios as item}
<td class="text-xs sm:text-sm">
<td class="text-sm sm:text-[1rem] text-end">
{filterRule === "annual"
? (item?.priceToSalesRatio / 4)?.toFixed(2)
: item?.priceToSalesRatio?.toFixed(2)}
@ -756,11 +756,11 @@
<!-- row -->
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-sm sm:text-[1rem]"
>PB Ratio</td
>
{#each ratios as item}
<td class="text-xs sm:text-sm">
<td class="text-sm sm:text-[1rem] text-end">
{filterRule === "annual"
? (item?.priceToBookRatio / 4)?.toFixed(2)
: item?.priceToBookRatio?.toFixed(2)}
@ -769,11 +769,11 @@
</tr>
<tr class="text-white odd:bg-[#27272A] whitespace-nowrap">
<td
class="text-start border-r border-[#191E24] text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-sm sm:text-[1rem]"
>P/FCF Ratio</td
>
{#each ratios as item}
<td class="text-xs sm:text-sm">
<td class="text-sm sm:text-[1rem] text-end">
{filterRule === "annual"
? (item?.priceToFreeCashFlowsRatio / 4)?.toFixed(2)
: item?.priceToFreeCashFlowsRatio?.toFixed(2)}
@ -782,11 +782,11 @@
</tr>
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-sm sm:text-[1rem]"
>P/OCF Ratio</td
>
{#each ratios as item}
<td class="text-xs sm:text-sm">
<td class="text-sm sm:text-[1rem] text-end">
{filterRule === "annual"
? (
item?.priceToOperatingCashFlowsRatio / 4
@ -797,11 +797,11 @@
</tr>
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-sm sm:text-[1rem]"
>OCF/S Ratio</td
>
{#each ratios as item}
<td class="text-xs sm:text-sm">
<td class="text-sm sm:text-[1rem] text-end">
{filterRule === "annual"
? (item?.operatingCashFlowSalesRatio / 4)?.toFixed(
2,
@ -812,11 +812,11 @@
</tr>
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-xs sm:text-sm"
class="text-start whitespace-nowrap border-r border-gray-700 text-sm sm:text-[1rem]"
>Debt / Equity Ratio</td
>
{#each ratios as item}
<td class="text-xs sm:text-sm">
<td class="text-sm sm:text-[1rem] text-end">
{filterRule === "annual"
? (item?.debtEquityRatio / 4)?.toFixed(2)
: item?.debtEquityRatio?.toFixed(2)}
@ -826,11 +826,11 @@
<!-- row -->
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-sm sm:text-[1rem]"
>Quick Ratio</td
>
{#each ratios as item}
<td class="text-xs sm:text-sm">
<td class="text-sm sm:text-[1rem] text-end">
{filterRule === "annual"
? (item?.quickRatio / 4)?.toFixed(2)
: item?.quickRatio?.toFixed(2)}
@ -840,11 +840,11 @@
<!-- row -->
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-sm sm:text-[1rem]"
>Current Ratio</td
>
{#each ratios as item}
<td class="text-xs sm:text-sm">
<td class="text-sm sm:text-[1rem] text-end">
{filterRule === "annual"
? (item?.currentRatio / 4)?.toFixed(2)
: item?.currentRatio?.toFixed(2)}
@ -853,22 +853,22 @@
</tr>
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-xs sm:text-sm whitespace-nowrap"
class="text-start border-r border-gray-700 text-sm sm:text-[1rem] whitespace-nowrap"
>Asset Turnover</td
>
{#each ratios as item}
<td class="text-xs sm:text-sm">
<td class="text-sm sm:text-[1rem] text-end">
{item?.assetTurnover?.toFixed(2)}
</td>
{/each}
</tr>
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-sm sm:text-[1rem]"
>Interest Coverage</td
>
{#each ratios as item}
<td class="text-xs sm:text-sm">
<td class="text-sm sm:text-[1rem] text-end">
{filterRule === "annual"
? (item?.interestCoverage / 4)?.toFixed(2)
: item?.interestCoverage?.toFixed(2)}
@ -878,33 +878,33 @@
<!-- row -->
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-sm sm:text-[1rem]"
>Return on Equity (ROE)</td
>
{#each ratios as item}
<td class="text-xs sm:text-sm">
<td class="text-sm sm:text-[1rem] text-end">
{(item?.returnOnEquity * 100)?.toFixed(2)}%
</td>
{/each}
</tr>
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-xs sm:text-sm"
class="text-start whitespace-nowrap border-r border-gray-700 text-sm sm:text-[1rem]"
>Return on Assets (ROA)</td
>
{#each ratios as item}
<td class="text-xs sm:text-sm"
<td class="text-sm sm:text-[1rem]"
>{(item?.returnOnAssets * 100)?.toFixed(2)}%</td
>
{/each}
</tr>
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-sm sm:text-[1rem]"
>Return on Capital (ROIC)</td
>
{#each ratios as item}
<td class="text-xs sm:text-sm">
<td class="text-sm sm:text-[1rem] text-end">
{(item?.returnOnCapitalEmployed * 100)?.toFixed(
2,
)}%</td
@ -913,22 +913,22 @@
</tr>
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-sm sm:text-[1rem]"
>Dividend Yield</td
>
{#each ratios as item}
<td class="text-xs sm:text-sm">
<td class="text-sm sm:text-[1rem] text-end">
{(item?.dividendYield * 100)?.toFixed(2)}%</td
>
{/each}
</tr>
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-sm sm:text-[1rem]"
>Payout Ratio</td
>
{#each ratios as item}
<td class="text-xs sm:text-sm">
<td class="text-sm sm:text-[1rem] text-end">
{filterRule === "annual"
? ((item?.payoutRatio / 4) * 100)?.toFixed(2)
: (item?.payoutRatio * 100)?.toFixed(2)}%
@ -937,11 +937,11 @@
</tr>
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-sm sm:text-[1rem]"
>Gross Profit Margin</td
>
{#each ratios as item}
<td class="text-xs sm:text-sm">
<td class="text-sm sm:text-[1rem] text-end">
{filterRule === "annual"
? ((item?.grossProfitMargin / 4) * 100)?.toFixed(2)
: (item?.grossProfitMargin * 100)?.toFixed(2)}%
@ -950,11 +950,11 @@
</tr>
<tr class="text-white odd:bg-[#27272A]">
<td
class="text-start border-r border-[#191E24] text-xs sm:text-sm"
class="text-start border-r border-gray-700 text-sm sm:text-[1rem]"
>Net Profit Margin</td
>
{#each ratios as item}
<td class="text-xs sm:text-sm">
<td class="text-sm sm:text-[1rem] text-end">
{filterRule === "annual"
? ((item?.netProfitMargin / 4) * 100)?.toFixed(2)
: (item?.netProfitMargin * 100)?.toFixed(2)}%