From 824d9a3edda23d7ff65aaf5cb30bd951365defeb Mon Sep 17 00:00:00 2001 From: MuslemRahimi Date: Mon, 14 Apr 2025 13:37:24 +0200 Subject: [PATCH] remove component --- src/routes/stock-screener/+page.svelte | 140 ++++++++++++++++++++++++- 1 file changed, 136 insertions(+), 4 deletions(-) diff --git a/src/routes/stock-screener/+page.svelte b/src/routes/stock-screener/+page.svelte index 4ee28be4..e64fff9b 100644 --- a/src/routes/stock-screener/+page.svelte +++ b/src/routes/stock-screener/+page.svelte @@ -485,7 +485,7 @@ step: ["50%", "20%", "10%", "5%", "3%", "2%", "1%", "0%"], defaultCondition: "over", defaultValue: "any", - varType: "percentSign", + varType: "percent", category: "Dividends", }, eps: { @@ -1571,7 +1571,12 @@ }; const loadWorker = async () => { - if (["performance", "analysts"]?.includes(displayTableTab) || hoverStatus) { + if ( + ["performance", "analysts", "dividends", "financials"]?.includes( + displayTableTab, + ) || + hoverStatus + ) { syncWorker.postMessage({ stockScreenerData, ruleOfList: [...ruleOfList, ...otherTabRules], @@ -1585,7 +1590,12 @@ }; const updateStockScreenerData = async () => { - if (["performance", "analysts"]?.includes(displayTableTab) || hoverStatus) { + if ( + ["performance", "analysts", "dividends", "financials"]?.includes( + displayTableTab, + ) || + hoverStatus + ) { downloadWorker.postMessage({ ruleOfList: [...ruleOfList, ...otherTabRules], }); @@ -2303,6 +2313,16 @@ const handleKeyDown = (event) => { { key: "name", label: "Name", align: "left" }, { key: "marketCap", label: "Market Cap", align: "right" }, ], + dividends: [ + { key: "symbol", label: "Symbol", align: "left" }, + { key: "name", label: "Name", align: "left" }, + { key: "marketCap", label: "Market Cap", align: "right" }, + ], + financials: [ + { key: "symbol", label: "Symbol", align: "left" }, + { key: "name", label: "Name", align: "left" }, + { key: "marketCap", label: "Market Cap", align: "right" }, + ], }; const baseSortOrdersMap = { @@ -2316,6 +2336,16 @@ const handleKeyDown = (event) => { name: { order: "none", type: "string" }, marketCap: { order: "none", type: "number" }, }, + dividends: { + symbol: { order: "none", type: "string" }, + name: { order: "none", type: "string" }, + marketCap: { order: "none", type: "number" }, + }, + financials: { + symbol: { order: "none", type: "string" }, + name: { order: "none", type: "string" }, + marketCap: { order: "none", type: "number" }, + }, filters: { symbol: { order: "none", type: "string" }, name: { order: "none", type: "string" }, @@ -2330,7 +2360,12 @@ const handleKeyDown = (event) => { columns = [...(baseColumnsMap[displayTableTab] || [])]; sortOrders = { ...(baseSortOrdersMap[displayTableTab] || {}) }; - const rulesList = ["performance", "analysts"]?.includes(displayTableTab) + const rulesList = [ + "performance", + "analysts", + "dividends", + "financials", + ]?.includes(displayTableTab) ? tabRuleList : displayRules; rulesList?.forEach((rule) => { @@ -2379,6 +2414,35 @@ const handleKeyDown = (event) => { ?.map((rule) => allRows?.find((row) => row?.rule === rule?.name)) ?.filter(Boolean); + await updateStockScreenerData(); + } else if (displayTableTab === "dividends") { + hoverStatus = false; + otherTabRules = [ + { name: "marketCap", value: "any" }, + { name: "annualDividend", value: "any" }, + { name: "dividendYield", value: "any" }, + { name: "payoutRatio", value: "any" }, + { name: "dividendGrowth", value: "any" }, + ]; + tabRuleList = otherTabRules + ?.map((rule) => allRows?.find((row) => row?.rule === rule?.name)) + ?.filter(Boolean); + + await updateStockScreenerData(); + } else if (displayTableTab === "financials") { + hoverStatus = false; + otherTabRules = [ + { name: "marketCap", value: "any" }, + { name: "revenue", value: "any" }, + { name: "operatingIncome", value: "any" }, + { name: "netIncome", value: "any" }, + { name: "freeCashFlow", value: "any" }, + { name: "eps", value: "any" }, + ]; + tabRuleList = otherTabRules + ?.map((rule) => allRows?.find((row) => row?.rule === rule?.name)) + ?.filter(Boolean); + await updateStockScreenerData(); } } @@ -3213,6 +3277,28 @@ const handleKeyDown = (event) => { Analysts +
  • + +
  • +
  • + +
  • + {:else if ["dividends", "financials"]?.includes(displayTableTab)} +
    + + + + + + {#each displayResults as item (item?.symbol)} + + + + + {#each tabRuleList as row (row?.rule)} + + {/each} + + {/each} + +
    + {item?.symbol} + + {item?.name?.length > charNumber + ? item?.name?.slice(0, charNumber) + "..." + : item?.name} + + {#if row?.rule === "marketCap"} + {abbreviateNumber(item[row?.rule])} + {:else if row?.varType && row?.varType === "percent"} + {abbreviateNumber(item[row?.rule])}% + {:else} + {item[row?.rule] + ? abbreviateNumber(item[row?.rule]) + : "n/a"} + {/if} +
    +
    {/if} {:else}