update stock list

This commit is contained in:
MuslemRahimi 2025-01-18 19:54:37 +01:00
parent 1215ef8ad5
commit 028b5e152d
31 changed files with 778 additions and 79 deletions

View File

@ -176,7 +176,7 @@
<div class="flex items-center justify-between sm:block">
<div class="text-[1rem] font-normal text-white">Listed Funds</div>
<div
class="mt-1 break-words font-semibold leading-8 text-white text-[1rem] sm:text-lg"
class="mt-1 break-words font-semibold leading-8 text-white text-xl sm:text-2xl"
>
{rawData?.length}
</div>
@ -186,7 +186,7 @@
<div class="flex items-center justify-between sm:block">
<div class="text-[1rem] font-normal text-white">Total Assets</div>
<div
class="mt-1 break-words font-semibold leading-8 text-white text-[1rem] sm:text-lg"
class="mt-1 break-words font-semibold leading-8 text-white text-xl sm:text-2xl"
>
{abbreviateNumber(totalAssets)}
</div>
@ -196,7 +196,7 @@
<div class="flex items-center justify-between sm:block">
<div class="text-[1rem] font-normal text-white">Average Cost</div>
<div
class="mt-1 break-words font-semibold leading-8 text-white text-[1rem] sm:text-lg"
class="mt-1 break-words font-semibold leading-8 text-white text-xl sm:text-2xl"
>
{avgExpenseRatio?.toFixed(2)}%
</div>

View File

@ -222,6 +222,34 @@
title: "Highest Option Premium",
link: "/list/highest-option-premium",
},
{
title: "Biggest Artificial Intelligence Stocks",
link: "/list/ai-stocks",
},
{
title: "Biggest Mobile Game Stocks",
link: "/list/mobile-games",
},
{
title: "Biggest Social Media Stocks by Market Cap",
link: "/list/social-media-stocks",
},
{
title: "Biggest Clean Energy Stocks",
link: "/list/clean-energy",
},
{
title: "Biggest E-Sports Stocks",
link: "/list/esports",
},
{
title: "Biggest Car Company Stocks",
link: "/list/car-company-stocks",
},
{
title: "Biggest Electric Vehicle Stocks",
link: "/list/electric-vehicles",
},
];
navigation = [...navigationIndustry, ...navigation];
@ -236,7 +264,7 @@
</script>
<section
class="w-full max-w-3xl sm:max-w-[1400px] overflow-hidden min-h-screen pt-5 px-4 lg:px-3 mb-20"
class="w-full max-w-3xl sm:max-w-[1400px] overflow-hidden pb-40 pt-5 px-4 lg:px-3 mb-20"
>
<div class="text-sm sm:text-[1rem] breadcrumbs">
<ul>

View File

@ -236,6 +236,96 @@
<!--End Other Lists-->
<div class="text-white">
<h2 class="mb-2 text-xl font-bold pt-10">
Category of Stocks Ranked by Market Cap
</h2>
<ul
class="list-outside list-disc space-y-1 p-1 pl-6 text-base md:columns-2 md:gap-x-8 md:text-lg"
>
<li>
<a class="text-blue-400 sm:hover:text-white" href="/list/mobile-games/"
>Mobile Games</a
>
</li>
<li>
<a
class="text-blue-400 sm:hover:text-white"
href="/list/social-media-stocks/">Social Media</a
>
</li>
<li>
<a class="text-blue-400 sm:hover:text-white" href="/list/clean-energy/"
>Clean Energy</a
>
</li>
<li>
<a class="text-blue-400 sm:hover:text-white" href="/list/esports/"
>E-Sports</a
>
</li>
<li>
<a
class="text-blue-400 sm:hover:text-white"
href="/list/car-company-stocks/">Car Companies</a
>
</li>
<li>
<a class="text-blue-400 sm:hover:text-white" href="/list/ai-stocks/"
>Artificial Intelligence</a
>
</li>
<li>
<a
class="text-blue-400 sm:hover:text-white"
href="/list/electric-vehicles/">Electric Vehicles</a
>
</li>
<li>
<a class="text-blue-400 sm:hover:text-white" href="/list/online-gambling/"
>Online Gambling</a
>
</li>
<li>
<a
class="text-blue-400 sm:hover:text-white"
href="/list/augmented-reality/">Augmented Reality</a
>
</li>
<li>
<a class="text-blue-400 sm:hover:text-white" href="/list/gaming-stocks/"
>Gaming</a
>
</li>
<li>
<a
class="text-blue-400 sm:hover:text-white"
href="/list/pharmaceutical-stocks/">Pharmaceuticals</a
>
</li>
<li>
<a class="text-blue-400 sm:hover:text-white" href="/list/online-dating/"
>Online Dating</a
>
</li>
<li>
<a class="text-blue-400 sm:hover:text-white" href="/list/virtual-reality/"
>Virtual Reality</a
>
</li>
<li>
<a class="text-blue-400 sm:hover:text-white" href="/list/sports-betting/"
>Sports Betting</a
>
</li>
<li>
<a class="text-blue-400 sm:hover:text-white" href="/list/metaverse/"
>Metaverse</a
>
</li>
</ul>
</div>
<!--Start Non-US Stocks Listed on US Exchanges-->
<div class="text-white">
<h2 class="mb-2 text-xl font-bold pt-10">

View File

@ -0,0 +1,24 @@
export const load = async ({ locals }) => {
const getData = async () => {
const { apiKey, apiURL } = locals;
const postData = {'filterList': 'ai-stocks'}
// make the POST request to the endpoint
const response = await fetch(apiURL + "/list-category", {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-API-KEY": apiKey,
},
body: JSON.stringify(postData)
});
const output = await response.json();
return output;
};
// Make sure to return a promise
return {
getData: await getData(),
};
};

View File

@ -0,0 +1,59 @@
<script lang="ts">
import { abbreviateNumber } from "$lib/utils";
import Table from "$lib/components/Table/Table.svelte";
import Infobox from "$lib/components/Infobox.svelte";
import SEO from "$lib/components/SEO.svelte";
export let data;
let rawData = data?.getData;
let totalMarketCap =
rawData?.reduce((total, stock) => total + stock?.marketCap, 0) ?? 0;
let totalRevenue =
rawData?.reduce((total, stock) => total + stock?.revenue, 0) ?? 0;
</script>
<SEO title="A List of Artificial Intelligence (AI) Stocks" description="" />
<section class="w-full overflow-hidden m-auto">
<Infobox
text="This is a list of the top stocks that are directly involved with artificial intelligence (AI) and/or have significant exposure to the growth of AI technology."
/>
<div
class="mt-6 mb-4 flex flex-col divide-y divide-gray-600 rounded-md border border-gray-600 sm:grid sm:grid-cols-3 sm:divide-x sm:divide-y-0"
>
<div class="px-4 py-3 sm:px-2 sm:py-5 md:px-3 lg:p-6">
<div class="flex items-center justify-between sm:block">
<div class="text-[1rem] font-semibold text-white">Total Stocks</div>
<div
class="mt-1 break-words font-semibold leading-8 text-white text-xl sm:text-2xl"
>
{new Intl.NumberFormat("en")?.format(rawData?.length)}
</div>
</div>
</div>
<div class="px-4 py-3 sm:px-2 sm:py-5 md:px-3 lg:p-6">
<div class="flex items-center justify-between sm:block">
<div class="text-[1rem] font-semibold text-white">Total Market Cap</div>
<div
class="mt-1 break-words font-semibold leading-8 text-white text-xl sm:text-2xl"
>
{abbreviateNumber(totalMarketCap)}
</div>
</div>
</div>
<div class="px-4 py-3 sm:px-2 sm:py-5 md:px-3 lg:p-6">
<div class="flex items-center justify-between sm:block">
<div class="text-[1rem] font-semibold text-white">Total Revenue</div>
<div
class="mt-1 break-words font-semibold leading-8 text-white text-xl sm:text-2xl"
>
{abbreviateNumber(totalRevenue)}
</div>
</div>
</div>
</div>
<Table {data} rawData={data?.getData} />
</section>

View File

@ -111,9 +111,9 @@
>
<div class="px-4 py-3 sm:px-2 sm:py-5 md:px-3 lg:p-6">
<div class="flex items-center justify-between sm:block">
<div class="text-sm font-semibold text-white">Total ETFs</div>
<div class="text-[1rem] font-semibold text-white">Total ETFs</div>
<div
class="mt-1 break-words font-semibold leading-8 text-white text-[1rem] sm:text-lg"
class="mt-1 break-words font-semibold leading-8 text-white text-xl sm:text-2xl"
>
{new Intl.NumberFormat("en")?.format(rawData?.length)}
</div>
@ -121,9 +121,9 @@
</div>
<div class="px-4 py-3 sm:px-2 sm:py-5 md:px-3 lg:p-6">
<div class="flex items-center justify-between sm:block">
<div class="text-sm font-semibold text-white">Total Assets</div>
<div class="text-[1rem] font-semibold text-white">Total Assets</div>
<div
class="mt-1 break-words font-semibold leading-8 text-white text-[1rem] sm:text-lg"
class="mt-1 break-words font-semibold leading-8 text-white text-xl sm:text-2xl"
>
{abbreviateNumber(totalAssets)}
</div>
@ -131,9 +131,9 @@
</div>
<div class="px-4 py-3 sm:px-2 sm:py-5 md:px-3 lg:p-6">
<div class="flex items-center justify-between sm:block">
<div class="text-sm font-semibold text-white">Avg. Cost</div>
<div class="text-[1rem] font-semibold text-white">Avg. Cost</div>
<div
class="mt-1 break-words font-semibold leading-8 text-white text-[1rem] sm:text-lg"
class="mt-1 break-words font-semibold leading-8 text-white text-xl sm:text-2xl"
>
{avgExpenseRatio?.toFixed(2)}%
</div>

View File

@ -0,0 +1,24 @@
export const load = async ({ locals }) => {
const getData = async () => {
const { apiKey, apiURL } = locals;
const postData = {'filterList': 'car-company-stocks'}
// make the POST request to the endpoint
const response = await fetch(apiURL + "/list-category", {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-API-KEY": apiKey,
},
body: JSON.stringify(postData)
});
const output = await response.json();
return output;
};
// Make sure to return a promise
return {
getData: await getData(),
};
};

View File

@ -0,0 +1,62 @@
<script lang="ts">
import { abbreviateNumber } from "$lib/utils";
import Table from "$lib/components/Table/Table.svelte";
import Infobox from "$lib/components/Infobox.svelte";
import SEO from "$lib/components/SEO.svelte";
export let data;
let rawData = data?.getData || [];
let totalMarketCap =
rawData?.reduce((total, stock) => total + stock?.marketCap, 0) ?? 0;
let totalRevenue =
rawData?.reduce((total, stock) => total + stock?.revenue, 0) ?? 0;
</script>
<SEO
title="A List of Car Company Stocks, Ranked by Market Cap"
description="A list of the biggest car company and automaker stocks, ranked by market capitalization."
/>
<section class="w-full overflow-hidden m-auto">
<Infobox
text="This is a list of the biggest car company and automaker stocks, ranked by market capitalization."
/>
<div
class="mt-6 mb-4 flex flex-col divide-y divide-gray-600 rounded-md border border-gray-600 sm:grid sm:grid-cols-3 sm:divide-x sm:divide-y-0"
>
<div class="px-4 py-3 sm:px-2 sm:py-5 md:px-3 lg:p-6">
<div class="flex items-center justify-between sm:block">
<div class="text-[1rem] font-semibold text-white">Total Stocks</div>
<div
class="mt-1 break-words font-semibold leading-8 text-white text-xl sm:text-2xl"
>
{new Intl.NumberFormat("en")?.format(rawData?.length)}
</div>
</div>
</div>
<div class="px-4 py-3 sm:px-2 sm:py-5 md:px-3 lg:p-6">
<div class="flex items-center justify-between sm:block">
<div class="text-[1rem] font-semibold text-white">Total Market Cap</div>
<div
class="mt-1 break-words font-semibold leading-8 text-white text-xl sm:text-2xl"
>
{abbreviateNumber(totalMarketCap)}
</div>
</div>
</div>
<div class="px-4 py-3 sm:px-2 sm:py-5 md:px-3 lg:p-6">
<div class="flex items-center justify-between sm:block">
<div class="text-[1rem] font-semibold text-white">Total Revenue</div>
<div
class="mt-1 break-words font-semibold leading-8 text-white text-xl sm:text-2xl"
>
{abbreviateNumber(totalRevenue)}
</div>
</div>
</div>
</div>
<Table {data} rawData={data?.getData} />
</section>

View File

@ -0,0 +1,24 @@
export const load = async ({ locals }) => {
const getData = async () => {
const { apiKey, apiURL } = locals;
const postData = {'filterList': 'clean-energy'}
// make the POST request to the endpoint
const response = await fetch(apiURL + "/list-category", {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-API-KEY": apiKey,
},
body: JSON.stringify(postData)
});
const output = await response.json();
return output;
};
// Make sure to return a promise
return {
getData: await getData(),
};
};

View File

@ -0,0 +1,57 @@
<script lang="ts">
import { abbreviateNumber } from "$lib/utils";
import Table from "$lib/components/Table/Table.svelte";
import SEO from "$lib/components/SEO.svelte";
export let data;
let rawData = data?.getData;
let totalMarketCap =
rawData?.reduce((total, stock) => total + stock?.marketCap, 0) ?? 0;
let totalRevenue =
rawData?.reduce((total, stock) => total + stock?.revenue, 0) ?? 0;
</script>
<SEO
title="A List of Clean Energy Stocks, Ranked by Market Cap"
description=""
/>
<section class="w-full overflow-hidden m-auto">
<div
class="mt-6 mb-4 flex flex-col divide-y divide-gray-600 rounded-md border border-gray-600 sm:grid sm:grid-cols-3 sm:divide-x sm:divide-y-0"
>
<div class="px-4 py-3 sm:px-2 sm:py-5 md:px-3 lg:p-6">
<div class="flex items-center justify-between sm:block">
<div class="text-[1rem] font-semibold text-white">Total Stocks</div>
<div
class="mt-1 break-words font-semibold leading-8 text-white text-xl sm:text-2xl"
>
{new Intl.NumberFormat("en")?.format(rawData?.length)}
</div>
</div>
</div>
<div class="px-4 py-3 sm:px-2 sm:py-5 md:px-3 lg:p-6">
<div class="flex items-center justify-between sm:block">
<div class="text-[1rem] font-semibold text-white">Total Market Cap</div>
<div
class="mt-1 break-words font-semibold leading-8 text-white text-xl sm:text-2xl"
>
{abbreviateNumber(totalMarketCap)}
</div>
</div>
</div>
<div class="px-4 py-3 sm:px-2 sm:py-5 md:px-3 lg:p-6">
<div class="flex items-center justify-between sm:block">
<div class="text-[1rem] font-semibold text-white">Total Revenue</div>
<div
class="mt-1 break-words font-semibold leading-8 text-white text-xl sm:text-2xl"
>
{abbreviateNumber(totalRevenue)}
</div>
</div>
</div>
</div>
<Table {data} rawData={data?.getData} />
</section>

View File

@ -38,9 +38,9 @@
>
<div class="px-4 py-3 sm:px-2 sm:py-5 md:px-3 lg:p-6">
<div class="flex items-center justify-between sm:block">
<div class="text-sm font-semibold text-white">Total Stocks</div>
<div class="text-[1rem] font-semibold text-white">Total Stocks</div>
<div
class="mt-1 break-words font-semibold leading-8 text-white text-[1rem] sm:text-lg"
class="mt-1 break-words font-semibold leading-8 text-white text-xl sm:text-2xl"
>
{new Intl.NumberFormat("en")?.format(rawData?.length)}
</div>
@ -48,9 +48,9 @@
</div>
<div class="px-4 py-3 sm:px-2 sm:py-5 md:px-3 lg:p-6">
<div class="flex items-center justify-between sm:block">
<div class="text-sm font-semibold text-white">Total Market Cap</div>
<div class="text-[1rem] font-semibold text-white">Total Market Cap</div>
<div
class="mt-1 break-words font-semibold leading-8 text-white text-[1rem] sm:text-lg"
class="mt-1 break-words font-semibold leading-8 text-white text-xl sm:text-2xl"
>
{abbreviateNumber(totalMarketCap)}
</div>
@ -58,9 +58,9 @@
</div>
<div class="px-4 py-3 sm:px-2 sm:py-5 md:px-3 lg:p-6">
<div class="flex items-center justify-between sm:block">
<div class="text-sm font-semibold text-white">Total Revenue</div>
<div class="text-[1rem] font-semibold text-white">Total Revenue</div>
<div
class="mt-1 break-words font-semibold leading-8 text-white text-[1rem] sm:text-lg"
class="mt-1 break-words font-semibold leading-8 text-white text-xl sm:text-2xl"
>
{abbreviateNumber(totalRevenue)}
</div>

View File

@ -0,0 +1,24 @@
export const load = async ({ locals }) => {
const getData = async () => {
const { apiKey, apiURL } = locals;
const postData = {'filterList': 'electric-vehicles'}
// make the POST request to the endpoint
const response = await fetch(apiURL + "/list-category", {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-API-KEY": apiKey,
},
body: JSON.stringify(postData)
});
const output = await response.json();
return output;
};
// Make sure to return a promise
return {
getData: await getData(),
};
};

View File

@ -0,0 +1,57 @@
<script lang="ts">
import { abbreviateNumber } from "$lib/utils";
import Table from "$lib/components/Table/Table.svelte";
import SEO from "$lib/components/SEO.svelte";
export let data;
let rawData = data?.getData;
let totalMarketCap =
rawData?.reduce((total, stock) => total + stock?.marketCap, 0) ?? 0;
let totalRevenue =
rawData?.reduce((total, stock) => total + stock?.revenue, 0) ?? 0;
</script>
<SEO
title="Biggest Electric Vehicle Stocks, Sorted by Market Cap"
description=""
/>
<section class="w-full overflow-hidden m-auto">
<div
class="mt-6 mb-4 flex flex-col divide-y divide-gray-600 rounded-md border border-gray-600 sm:grid sm:grid-cols-3 sm:divide-x sm:divide-y-0"
>
<div class="px-4 py-3 sm:px-2 sm:py-5 md:px-3 lg:p-6">
<div class="flex items-center justify-between sm:block">
<div class="text-[1rem] font-semibold text-white">Total Stocks</div>
<div
class="mt-1 break-words font-semibold leading-8 text-white text-xl sm:text-2xl"
>
{new Intl.NumberFormat("en")?.format(rawData?.length)}
</div>
</div>
</div>
<div class="px-4 py-3 sm:px-2 sm:py-5 md:px-3 lg:p-6">
<div class="flex items-center justify-between sm:block">
<div class="text-[1rem] font-semibold text-white">Total Market Cap</div>
<div
class="mt-1 break-words font-semibold leading-8 text-white text-xl sm:text-2xl"
>
{abbreviateNumber(totalMarketCap)}
</div>
</div>
</div>
<div class="px-4 py-3 sm:px-2 sm:py-5 md:px-3 lg:p-6">
<div class="flex items-center justify-between sm:block">
<div class="text-[1rem] font-semibold text-white">Total Revenue</div>
<div
class="mt-1 break-words font-semibold leading-8 text-white text-xl sm:text-2xl"
>
{abbreviateNumber(totalRevenue)}
</div>
</div>
</div>
</div>
<Table {data} rawData={data?.getData} />
</section>

View File

@ -0,0 +1,24 @@
export const load = async ({ locals }) => {
const getData = async () => {
const { apiKey, apiURL } = locals;
const postData = {'filterList': 'esports'}
// make the POST request to the endpoint
const response = await fetch(apiURL + "/list-category", {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-API-KEY": apiKey,
},
body: JSON.stringify(postData)
});
const output = await response.json();
return output;
};
// Make sure to return a promise
return {
getData: await getData(),
};
};

View File

@ -0,0 +1,59 @@
<script lang="ts">
import { abbreviateNumber } from "$lib/utils";
import Table from "$lib/components/Table/Table.svelte";
import Infobox from "$lib/components/Infobox.svelte";
import SEO from "$lib/components/SEO.svelte";
export let data;
let rawData = data?.getData;
let totalMarketCap =
rawData?.reduce((total, stock) => total + stock?.marketCap, 0) ?? 0;
let totalRevenue =
rawData?.reduce((total, stock) => total + stock?.revenue, 0) ?? 0;
</script>
<SEO title="A List of E-Sports Stocks" description="" />
<section class="w-full overflow-hidden m-auto">
<Infobox
text="E-Sports stands for Electronic Sports. It is a term for competition in video games, often over the internet but also via in-person events. Below is a list of stocks of companies involved in e-sports."
/>
<div
class="mt-6 mb-4 flex flex-col divide-y divide-gray-600 rounded-md border border-gray-600 sm:grid sm:grid-cols-3 sm:divide-x sm:divide-y-0"
>
<div class="px-4 py-3 sm:px-2 sm:py-5 md:px-3 lg:p-6">
<div class="flex items-center justify-between sm:block">
<div class="text-[1rem] font-semibold text-white">Total Stocks</div>
<div
class="mt-1 break-words font-semibold leading-8 text-white text-xl sm:text-2xl"
>
{new Intl.NumberFormat("en")?.format(rawData?.length)}
</div>
</div>
</div>
<div class="px-4 py-3 sm:px-2 sm:py-5 md:px-3 lg:p-6">
<div class="flex items-center justify-between sm:block">
<div class="text-[1rem] font-semibold text-white">Total Market Cap</div>
<div
class="mt-1 break-words font-semibold leading-8 text-white text-xl sm:text-2xl"
>
{abbreviateNumber(totalMarketCap)}
</div>
</div>
</div>
<div class="px-4 py-3 sm:px-2 sm:py-5 md:px-3 lg:p-6">
<div class="flex items-center justify-between sm:block">
<div class="text-[1rem] font-semibold text-white">Total Revenue</div>
<div
class="mt-1 break-words font-semibold leading-8 text-white text-xl sm:text-2xl"
>
{abbreviateNumber(totalRevenue)}
</div>
</div>
</div>
</div>
<Table {data} rawData={data?.getData} />
</section>

View File

@ -40,9 +40,9 @@
>
<div class="px-4 py-3 sm:px-2 sm:py-5 md:px-3 lg:p-6">
<div class="flex items-center justify-between sm:block">
<div class="text-sm font-semibold text-white">Total Stocks</div>
<div class="text-[1rem] font-semibold text-white">Total Stocks</div>
<div
class="mt-1 break-words font-semibold leading-8 text-white text-[1rem] sm:text-lg"
class="mt-1 break-words font-semibold leading-8 text-white text-xl sm:text-2xl"
>
{new Intl.NumberFormat("en")?.format(rawData?.length)}
</div>
@ -50,9 +50,9 @@
</div>
<div class="px-4 py-3 sm:px-2 sm:py-5 md:px-3 lg:p-6">
<div class="flex items-center justify-between sm:block">
<div class="text-sm font-semibold text-white">Total Market Cap</div>
<div class="text-[1rem] font-semibold text-white">Total Market Cap</div>
<div
class="mt-1 break-words font-semibold leading-8 text-white text-[1rem] sm:text-lg"
class="mt-1 break-words font-semibold leading-8 text-white text-xl sm:text-2xl"
>
{abbreviateNumber(totalMarketCap)}
</div>
@ -60,9 +60,9 @@
</div>
<div class="px-4 py-3 sm:px-2 sm:py-5 md:px-3 lg:p-6">
<div class="flex items-center justify-between sm:block">
<div class="text-sm font-semibold text-white">Total Revenue</div>
<div class="text-[1rem] font-semibold text-white">Total Revenue</div>
<div
class="mt-1 break-words font-semibold leading-8 text-white text-[1rem] sm:text-lg"
class="mt-1 break-words font-semibold leading-8 text-white text-xl sm:text-2xl"
>
{abbreviateNumber(totalRevenue)}
</div>

View File

@ -30,9 +30,9 @@
>
<div class="px-4 py-3 sm:px-2 sm:py-5 md:px-3 lg:p-6">
<div class="flex items-center justify-between sm:block">
<div class="text-sm font-semibold text-white">Total Stocks</div>
<div class="text-[1rem] font-semibold text-white">Total Stocks</div>
<div
class="mt-1 break-words font-semibold leading-8 text-white text-[1rem] sm:text-lg"
class="mt-1 break-words font-semibold leading-8 text-white text-xl sm:text-2xl"
>
{new Intl.NumberFormat("en")?.format(rawData?.length)}
</div>
@ -40,9 +40,9 @@
</div>
<div class="px-4 py-3 sm:px-2 sm:py-5 md:px-3 lg:p-6">
<div class="flex items-center justify-between sm:block">
<div class="text-sm font-semibold text-white">Total Market Cap</div>
<div class="text-[1rem] font-semibold text-white">Total Market Cap</div>
<div
class="mt-1 break-words font-semibold leading-8 text-white text-[1rem] sm:text-lg"
class="mt-1 break-words font-semibold leading-8 text-white text-xl sm:text-2xl"
>
{abbreviateNumber(totalMarketCap)}
</div>
@ -50,9 +50,9 @@
</div>
<div class="px-4 py-3 sm:px-2 sm:py-5 md:px-3 lg:p-6">
<div class="flex items-center justify-between sm:block">
<div class="text-sm font-semibold text-white">Total Revenue</div>
<div class="text-[1rem] font-semibold text-white">Total Revenue</div>
<div
class="mt-1 break-words font-semibold leading-8 text-white text-[1rem] sm:text-lg"
class="mt-1 break-words font-semibold leading-8 text-white text-xl sm:text-2xl"
>
{abbreviateNumber(totalRevenue)}
</div>

View File

@ -46,9 +46,9 @@
>
<div class="px-4 py-3 sm:px-2 sm:py-5 md:px-3 lg:p-6">
<div class="flex items-center justify-between sm:block">
<div class="text-sm font-semibold text-white">Total Stocks</div>
<div class="text-[1rem] font-semibold text-white">Total Stocks</div>
<div
class="mt-1 break-words font-semibold leading-8 text-white text-[1rem] sm:text-lg"
class="mt-1 break-words font-semibold leading-8 text-white text-xl sm:text-2xl"
>
{new Intl.NumberFormat("en")?.format(rawData?.length)}
</div>
@ -56,9 +56,9 @@
</div>
<div class="px-4 py-3 sm:px-2 sm:py-5 md:px-3 lg:p-6">
<div class="flex items-center justify-between sm:block">
<div class="text-sm font-semibold text-white">Total Market Cap</div>
<div class="text-[1rem] font-semibold text-white">Total Market Cap</div>
<div
class="mt-1 break-words font-semibold leading-8 text-white text-[1rem] sm:text-lg"
class="mt-1 break-words font-semibold leading-8 text-white text-xl sm:text-2xl"
>
{abbreviateNumber(totalMarketCap)}
</div>
@ -66,9 +66,9 @@
</div>
<div class="px-4 py-3 sm:px-2 sm:py-5 md:px-3 lg:p-6">
<div class="flex items-center justify-between sm:block">
<div class="text-sm font-semibold text-white">Total Revenue</div>
<div class="text-[1rem] font-semibold text-white">Total Revenue</div>
<div
class="mt-1 break-words font-semibold leading-8 text-white text-[1rem] sm:text-lg"
class="mt-1 break-words font-semibold leading-8 text-white text-xl sm:text-2xl"
>
{abbreviateNumber(totalRevenue)}
</div>

View File

@ -30,9 +30,9 @@
>
<div class="px-4 py-3 sm:px-2 sm:py-5 md:px-3 lg:p-6">
<div class="flex items-center justify-between sm:block">
<div class="text-sm font-semibold text-white">Total Stocks</div>
<div class="text-[1rem] font-semibold text-white">Total Stocks</div>
<div
class="mt-1 break-words font-semibold leading-8 text-white text-[1rem] sm:text-lg"
class="mt-1 break-words font-semibold leading-8 text-white text-xl sm:text-2xl"
>
{new Intl.NumberFormat("en")?.format(rawData?.length)}
</div>
@ -40,9 +40,9 @@
</div>
<div class="px-4 py-3 sm:px-2 sm:py-5 md:px-3 lg:p-6">
<div class="flex items-center justify-between sm:block">
<div class="text-sm font-semibold text-white">Total Market Cap</div>
<div class="text-[1rem] font-semibold text-white">Total Market Cap</div>
<div
class="mt-1 break-words font-semibold leading-8 text-white text-[1rem] sm:text-lg"
class="mt-1 break-words font-semibold leading-8 text-white text-xl sm:text-2xl"
>
{abbreviateNumber(totalMarketCap)}
</div>
@ -50,9 +50,9 @@
</div>
<div class="px-4 py-3 sm:px-2 sm:py-5 md:px-3 lg:p-6">
<div class="flex items-center justify-between sm:block">
<div class="text-sm font-semibold text-white">Total Revenue</div>
<div class="text-[1rem] font-semibold text-white">Total Revenue</div>
<div
class="mt-1 break-words font-semibold leading-8 text-white text-[1rem] sm:text-lg"
class="mt-1 break-words font-semibold leading-8 text-white text-xl sm:text-2xl"
>
{abbreviateNumber(totalRevenue)}
</div>

View File

@ -30,9 +30,9 @@
>
<div class="px-4 py-3 sm:px-2 sm:py-5 md:px-3 lg:p-6">
<div class="flex items-center justify-between sm:block">
<div class="text-sm font-semibold text-white">Total Stocks</div>
<div class="text-[1rem] font-semibold text-white">Total Stocks</div>
<div
class="mt-1 break-words font-semibold leading-8 text-white text-[1rem] sm:text-lg"
class="mt-1 break-words font-semibold leading-8 text-white text-xl sm:text-2xl"
>
{new Intl.NumberFormat("en")?.format(rawData?.length)}
</div>
@ -40,9 +40,9 @@
</div>
<div class="px-4 py-3 sm:px-2 sm:py-5 md:px-3 lg:p-6">
<div class="flex items-center justify-between sm:block">
<div class="text-sm font-semibold text-white">Total Market Cap</div>
<div class="text-[1rem] font-semibold text-white">Total Market Cap</div>
<div
class="mt-1 break-words font-semibold leading-8 text-white text-[1rem] sm:text-lg"
class="mt-1 break-words font-semibold leading-8 text-white text-xl sm:text-2xl"
>
{abbreviateNumber(totalMarketCap)}
</div>
@ -50,9 +50,9 @@
</div>
<div class="px-4 py-3 sm:px-2 sm:py-5 md:px-3 lg:p-6">
<div class="flex items-center justify-between sm:block">
<div class="text-sm font-semibold text-white">Total Revenue</div>
<div class="text-[1rem] font-semibold text-white">Total Revenue</div>
<div
class="mt-1 break-words font-semibold leading-8 text-white text-[1rem] sm:text-lg"
class="mt-1 break-words font-semibold leading-8 text-white text-xl sm:text-2xl"
>
{abbreviateNumber(totalRevenue)}
</div>

View File

@ -126,9 +126,9 @@
>
<div class="px-4 py-3 sm:px-2 sm:py-5 md:px-3 lg:p-6">
<div class="flex items-center justify-between sm:block">
<div class="text-sm font-semibold text-white">Total Stocks</div>
<div class="text-[1rem] font-semibold text-white">Total Stocks</div>
<div
class="mt-1 break-words font-semibold leading-8 text-white text-[1rem] sm:text-lg"
class="mt-1 break-words font-semibold leading-8 text-white text-xl sm:text-2xl"
>
{new Intl.NumberFormat("en")?.format(rawData?.length)}
</div>
@ -136,9 +136,9 @@
</div>
<div class="px-4 py-3 sm:px-2 sm:py-5 md:px-3 lg:p-6">
<div class="flex items-center justify-between sm:block">
<div class="text-sm font-semibold text-white">Total Market Cap</div>
<div class="text-[1rem] font-semibold text-white">Total Market Cap</div>
<div
class="mt-1 break-words font-semibold leading-8 text-white text-[1rem] sm:text-lg"
class="mt-1 break-words font-semibold leading-8 text-white text-xl sm:text-2xl"
>
{abbreviateNumber(totalMarketCap)}
</div>
@ -146,9 +146,9 @@
</div>
<div class="px-4 py-3 sm:px-2 sm:py-5 md:px-3 lg:p-6">
<div class="flex items-center justify-between sm:block">
<div class="text-sm font-semibold text-white">Total Revenue</div>
<div class="text-[1rem] font-semibold text-white">Total Revenue</div>
<div
class="mt-1 break-words font-semibold leading-8 text-white text-[1rem] sm:text-lg"
class="mt-1 break-words font-semibold leading-8 text-white text-xl sm:text-2xl"
>
{abbreviateNumber(totalRevenue)}
</div>

View File

@ -0,0 +1,24 @@
export const load = async ({ locals }) => {
const getData = async () => {
const { apiKey, apiURL } = locals;
const postData = {'filterList': 'mobile-games'}
// make the POST request to the endpoint
const response = await fetch(apiURL + "/list-category", {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-API-KEY": apiKey,
},
body: JSON.stringify(postData)
});
const output = await response.json();
return output;
};
// Make sure to return a promise
return {
getData: await getData(),
};
};

View File

@ -0,0 +1,54 @@
<script lang="ts">
import { abbreviateNumber } from "$lib/utils";
import Table from "$lib/components/Table/Table.svelte";
import SEO from "$lib/components/SEO.svelte";
export let data;
let rawData = data?.getData;
let totalMarketCap =
rawData?.reduce((total, stock) => total + stock?.marketCap, 0) ?? 0;
let totalRevenue =
rawData?.reduce((total, stock) => total + stock?.revenue, 0) ?? 0;
</script>
<SEO title="A List of Mobile Game Stocks" description="" />
<section class="w-full overflow-hidden m-auto">
<div
class="mt-6 mb-4 flex flex-col divide-y divide-gray-600 rounded-md border border-gray-600 sm:grid sm:grid-cols-3 sm:divide-x sm:divide-y-0"
>
<div class="px-4 py-3 sm:px-2 sm:py-5 md:px-3 lg:p-6">
<div class="flex items-center justify-between sm:block">
<div class="text-[1rem] font-semibold text-white">Total Stocks</div>
<div
class="mt-1 break-words font-semibold leading-8 text-white text-xl sm:text-2xl"
>
{new Intl.NumberFormat("en")?.format(rawData?.length)}
</div>
</div>
</div>
<div class="px-4 py-3 sm:px-2 sm:py-5 md:px-3 lg:p-6">
<div class="flex items-center justify-between sm:block">
<div class="text-[1rem] font-semibold text-white">Total Market Cap</div>
<div
class="mt-1 break-words font-semibold leading-8 text-white text-xl sm:text-2xl"
>
{abbreviateNumber(totalMarketCap)}
</div>
</div>
</div>
<div class="px-4 py-3 sm:px-2 sm:py-5 md:px-3 lg:p-6">
<div class="flex items-center justify-between sm:block">
<div class="text-[1rem] font-semibold text-white">Total Revenue</div>
<div
class="mt-1 break-words font-semibold leading-8 text-white text-xl sm:text-2xl"
>
{abbreviateNumber(totalRevenue)}
</div>
</div>
</div>
</div>
<Table {data} rawData={data?.getData} />
</section>

View File

@ -28,9 +28,9 @@
>
<div class="px-4 py-3 sm:px-2 sm:py-5 md:px-3 lg:p-6">
<div class="flex items-center justify-between sm:block">
<div class="text-sm font-semibold text-white">Total Stocks</div>
<div class="text-[1rem] font-semibold text-white">Total Stocks</div>
<div
class="mt-1 break-words font-semibold leading-8 text-white text-[1rem] sm:text-lg"
class="mt-1 break-words font-semibold leading-8 text-white text-xl sm:text-2xl"
>
{new Intl.NumberFormat("en")?.format(rawData?.length)}
</div>
@ -38,9 +38,9 @@
</div>
<div class="px-4 py-3 sm:px-2 sm:py-5 md:px-3 lg:p-6">
<div class="flex items-center justify-between sm:block">
<div class="text-sm font-semibold text-white">Total Market Cap</div>
<div class="text-[1rem] font-semibold text-white">Total Market Cap</div>
<div
class="mt-1 break-words font-semibold leading-8 text-white text-[1rem] sm:text-lg"
class="mt-1 break-words font-semibold leading-8 text-white text-xl sm:text-2xl"
>
{abbreviateNumber(totalMarketCap)}
</div>
@ -48,9 +48,9 @@
</div>
<div class="px-4 py-3 sm:px-2 sm:py-5 md:px-3 lg:p-6">
<div class="flex items-center justify-between sm:block">
<div class="text-sm font-semibold text-white">Total Revenue</div>
<div class="text-[1rem] font-semibold text-white">Total Revenue</div>
<div
class="mt-1 break-words font-semibold leading-8 text-white text-[1rem] sm:text-lg"
class="mt-1 break-words font-semibold leading-8 text-white text-xl sm:text-2xl"
>
{abbreviateNumber(totalRevenue)}
</div>

View File

@ -0,0 +1,24 @@
export const load = async ({ locals }) => {
const getData = async () => {
const { apiKey, apiURL } = locals;
const postData = {'filterList': 'social-media-stocks'}
// make the POST request to the endpoint
const response = await fetch(apiURL + "/list-category", {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-API-KEY": apiKey,
},
body: JSON.stringify(postData)
});
const output = await response.json();
return output;
};
// Make sure to return a promise
return {
getData: await getData(),
};
};

View File

@ -0,0 +1,59 @@
<script lang="ts">
import { abbreviateNumber } from "$lib/utils";
import Table from "$lib/components/Table/Table.svelte";
import Infobox from "$lib/components/Infobox.svelte";
import SEO from "$lib/components/SEO.svelte";
export let data;
let rawData = data?.getData;
let totalMarketCap =
rawData?.reduce((total, stock) => total + stock?.marketCap, 0) ?? 0;
let totalRevenue =
rawData?.reduce((total, stock) => total + stock?.revenue, 0) ?? 0;
</script>
<SEO title="A List of Social Media Company Stocks" description="" />
<section class="w-full overflow-hidden m-auto">
<Infobox
text="This list includes stocks of companies who own social networks or have a significant percentage of their operations involved with social media."
/>
<div
class="mt-6 mb-4 flex flex-col divide-y divide-gray-600 rounded-md border border-gray-600 sm:grid sm:grid-cols-3 sm:divide-x sm:divide-y-0"
>
<div class="px-4 py-3 sm:px-2 sm:py-5 md:px-3 lg:p-6">
<div class="flex items-center justify-between sm:block">
<div class="text-[1rem] font-semibold text-white">Total Stocks</div>
<div
class="mt-1 break-words font-semibold leading-8 text-white text-xl sm:text-2xl"
>
{new Intl.NumberFormat("en")?.format(rawData?.length)}
</div>
</div>
</div>
<div class="px-4 py-3 sm:px-2 sm:py-5 md:px-3 lg:p-6">
<div class="flex items-center justify-between sm:block">
<div class="text-[1rem] font-semibold text-white">Total Market Cap</div>
<div
class="mt-1 break-words font-semibold leading-8 text-white text-xl sm:text-2xl"
>
{abbreviateNumber(totalMarketCap)}
</div>
</div>
</div>
<div class="px-4 py-3 sm:px-2 sm:py-5 md:px-3 lg:p-6">
<div class="flex items-center justify-between sm:block">
<div class="text-[1rem] font-semibold text-white">Total Revenue</div>
<div
class="mt-1 break-words font-semibold leading-8 text-white text-xl sm:text-2xl"
>
{abbreviateNumber(totalRevenue)}
</div>
</div>
</div>
</div>
<Table {data} rawData={data?.getData} />
</section>

View File

@ -580,7 +580,7 @@
>
<div class="px-4 py-3 sm:px-2 sm:py-5 md:px-3 lg:p-6">
<div class="flex items-center justify-between sm:block">
<div class="text-sm font-semibold text-white">Date</div>
<div class="text-[1rem] font-semibold text-white">Date</div>
<div
class="mt-1 break-words font-semibold leading-8 text-white text-sm sm:text-[1rem]"
>
@ -591,7 +591,9 @@
<div class="px-4 py-3 sm:px-2 sm:py-5 md:px-3 lg:p-6">
<div class="flex items-center justify-between sm:block">
<div class="text-sm font-semibold text-white">Volume</div>
<div class="text-[1rem] font-semibold text-white">
Volume
</div>
<div
class="mt-1 break-words font-semibold leading-8 text-white text-sm sm:text-[1rem]"
>
@ -605,7 +607,7 @@
</div>
<div class="px-4 py-3 sm:px-2 sm:py-5 md:px-3 lg:p-6">
<div class="flex items-center justify-between sm:block">
<div class="text-sm font-semibold text-white">
<div class="text-[1rem] font-semibold text-white">
Net Call Premium
</div>
<div
@ -621,7 +623,7 @@
</div>
<div class="px-4 py-3 sm:px-2 sm:py-5 md:px-3 lg:p-6">
<div class="flex items-center justify-between sm:block">
<div class="text-sm font-semibold text-white">
<div class="text-[1rem] font-semibold text-white">
Net Put Premium
</div>
<div

View File

@ -634,7 +634,7 @@
>
<div class="px-4 py-3 sm:px-2 sm:py-5 md:px-3 lg:p-6">
<div class="flex items-center justify-between sm:block">
<div class="text-sm font-semibold text-white">Date</div>
<div class="text-[1rem] font-semibold text-white">Date</div>
<div
class="mt-1 break-words font-semibold leading-8 text-white text-sm sm:text-[1rem]"
>
@ -645,7 +645,9 @@
<div class="px-4 py-3 sm:px-2 sm:py-5 md:px-3 lg:p-6">
<div class="flex items-center justify-between sm:block">
<div class="text-sm font-semibold text-white">Volume</div>
<div class="text-[1rem] font-semibold text-white">
Volume
</div>
<div
class="mt-1 break-words font-semibold leading-8 text-white text-sm sm:text-[1rem]"
>
@ -659,7 +661,7 @@
</div>
<div class="px-4 py-3 sm:px-2 sm:py-5 md:px-3 lg:p-6">
<div class="flex items-center justify-between sm:block">
<div class="text-sm font-semibold text-white">
<div class="text-[1rem] font-semibold text-white">
Net Call Premium
</div>
<div
@ -675,7 +677,7 @@
</div>
<div class="px-4 py-3 sm:px-2 sm:py-5 md:px-3 lg:p-6">
<div class="flex items-center justify-between sm:block">
<div class="text-sm font-semibold text-white">
<div class="text-[1rem] font-semibold text-white">
Net Put Premium
</div>
<div

View File

@ -316,7 +316,7 @@
<div class="text-[1rem] font-normal text-white">Total Analysts</div>
<div
class="mt-1 break-words font-semibold leading-8 text-white text-[1rem] sm:text-lg"
class="mt-1 break-words font-semibold leading-8 text-white text-xl sm:text-2xl"
>
{numOfAnalyst}
</div>
@ -326,7 +326,7 @@
Consensus Rating
</div>
<div
class="mt-1 break-words font-semibold leading-8 text-white text-[1rem] sm:text-lg"
class="mt-1 break-words font-semibold leading-8 text-white text-xl sm:text-2xl"
>
{consensusRating}
</div>
@ -334,7 +334,7 @@
<div class="p-4 bp:p-5 sm:p-6 border-t border-gray-600 md:border-0">
<div class="text-[1rem] font-normal text-white">Price Target</div>
<div
class="mt-1 break-words font-semibold leading-8 text-white text-[1rem] sm:text-lg"
class="mt-1 break-words font-semibold leading-8 text-white text-xl sm:text-2xl"
>
{priceTarget !== null && priceTarget !== undefined
? priceTarget

View File

@ -113,11 +113,11 @@
>
<div class="px-4 py-3 sm:px-2 sm:py-5 md:px-3 lg:p-6">
<div class="flex items-center justify-between sm:block">
<div class="text-sm font-semibold text-white">
<div class="text-[1rem] font-semibold text-white">
FTD Shares
</div>
<div
class="mt-1 break-words font-semibold leading-8 text-white text-[1rem] sm:text-lg"
class="mt-1 break-words font-semibold leading-8 text-white text-xl sm:text-2xl"
>
{abbreviateNumber(
rawData?.slice(-1)?.at(0)?.failToDeliver,
@ -128,11 +128,11 @@
</div>
<div class="px-4 py-3 sm:px-2 sm:py-5 md:px-3 lg:p-6">
<div class="flex items-center justify-between sm:block">
<div class="text-sm font-semibold text-white">
<div class="text-[1rem] font-semibold text-white">
FTD / Avg Volume
</div>
<div
class="mt-1 break-words font-semibold leading-8 text-white text-[1rem] sm:text-lg"
class="mt-1 break-words font-semibold leading-8 text-white text-xl sm:text-2xl"
>
{relativeFTD > 0.01
? relativeFTD + "%"
@ -144,7 +144,7 @@
</div>
<div class="px-4 py-3 sm:px-2 sm:py-5 md:px-3 lg:p-6">
<div class="flex items-center justify-between sm:block">
<div class="text-sm font-semibold text-white">
<div class="text-[1rem] font-semibold text-white">
1-Year Change
</div>
<div

View File

@ -460,11 +460,11 @@
>
<div class="px-4 py-3 sm:px-2 sm:py-5 md:px-3 lg:p-6">
<div class="flex items-center justify-between sm:block">
<div class="text-sm font-semibold text-white">
<div class="text-[1rem] font-semibold text-white">
Market Cap
</div>
<div
class="mt-1 break-words font-semibold leading-8 text-white text-[1rem] sm:text-lg"
class="mt-1 break-words font-semibold leading-8 text-white text-xl sm:text-2xl"
>
{@html abbreviateNumber(
data?.getStockQuote?.marketCap,
@ -476,9 +476,11 @@
</div>
<div class="px-4 py-3 sm:px-2 sm:py-5 md:px-3 lg:p-6">
<div class="flex items-center justify-between sm:block">
<div class="text-sm font-semibold text-white">Category</div>
<div class="text-[1rem] font-semibold text-white">
Category
</div>
<div
class="mt-1 break-words font-semibold leading-8 text-white text-[1rem] sm:text-lg"
class="mt-1 break-words font-semibold leading-8 text-white text-xl sm:text-2xl"
>
{#if capCategory}
<a
@ -495,7 +497,7 @@
</div>
<div class="px-4 py-3 sm:px-2 sm:py-5 md:px-3 lg:p-6">
<div class="flex items-center justify-between sm:block">
<div class="text-sm font-semibold text-white">
<div class="text-[1rem] font-semibold text-white">
1-Year Change
</div>
<div