This commit is contained in:
MuslemRahimi 2024-10-29 14:26:21 +01:00
parent 48c60f408f
commit 234e1dbc02
41 changed files with 3937 additions and 3343 deletions

View File

@ -170,10 +170,10 @@
</p>
</div>
<div class="w-screen sm:w-full m-auto mt-16">
<div class="w-full m-auto mt-16">
{#if isLoaded}
<div
class="w-screen sm:w-full m-auto rounded-none sm:rounded-lg mb-4 overflow-x-scroll sm:overflow-hidden"
class="w-full m-auto rounded-none sm:rounded-lg mb-4 overflow-x-scroll sm:overflow-hidden"
>
<table
class="table table-sm table-compact rounded-none sm:rounded-md w-full bg-[#09090B] border-bg-[#09090B] m-auto"
@ -315,15 +315,17 @@
{/if}
</div>
{#if isLoaded}
<UpgradeToPro
{data}
title="Get stock forecasts from Wall Street's highest rated professionals"
/>
{/if}
</main>
<aside class="hidden lg:block relative fixed w-1/4 ml-4">
{#if data?.user?.tier !== "Pro" || data?.user?.freeTrial}
<div
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<a
href={"/pricing"}
@ -343,7 +345,7 @@
{/if}
<div
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<a
href={"/analysts/top-stocks"}
@ -362,7 +364,7 @@
</div>
<div
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<a
href={"/most-shorted-stocks"}

View File

@ -446,7 +446,7 @@
<aside class="hidden lg:block relative fixed w-1/4 ml-4">
{#if data?.user?.tier !== "Pro" || data?.user?.freeTrial}
<div
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<a
href={"/pricing"}
@ -466,7 +466,7 @@
{/if}
<div
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<a
href={"/analysts"}
@ -485,7 +485,7 @@
</div>
<div
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<a
href={"/analysts/top-stocks"}

View File

@ -176,7 +176,7 @@
</div>
<div
class="w-full sm:flex sm:flex-row sm:items-center m-auto text-gray-100 bg-[#09090B] border border-gray-800 sm:rounded-lg h-auto p-5"
class="w-full sm:flex sm:flex-row sm:items-center m-auto text-gray-100 bg-[#09090B] border border-gray-800 sm:rounded-md h-auto p-5"
>
<svg
class="w-5 h-5 inline-block sm:mr-2 flex-shrink-0"
@ -192,10 +192,10 @@
on the volume of analyst ratings.
</div>
<div class="w-screen sm:w-full m-auto mt-10">
<div class="w-full m-auto mt-10">
{#if isLoaded}
<div
class="w-screen sm:w-full m-auto rounded-none sm:rounded-lg mb-4 overflow-x-scroll sm:overflow-hidden"
class="w-full m-auto rounded-none sm:rounded-md mb-4 overflow-x-scroll sm:overflow-hidden"
>
<table
class="table table-sm table-compact rounded-none sm:rounded-md w-full bg-[#09090B] border-bg-[#09090B] m-auto"
@ -294,16 +294,18 @@
</div>
{/if}
</div>
{#if isLoaded}
<UpgradeToPro
{data}
title="Get stock forecasts from Wall Street's highest rated professionals"
/>
{/if}
</main>
<aside class="hidden lg:block relative fixed w-1/4 ml-4">
{#if data?.user?.tier !== "Pro" || data?.user?.freeTrial}
<div
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<a
href={"/pricing"}
@ -323,7 +325,7 @@
{/if}
<div
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<a
href={"/analysts"}
@ -342,7 +344,7 @@
</div>
<div
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<a
href={"/most-shorted-stocks"}

View File

@ -1,22 +1,17 @@
<script lang="ts">
import { articleId, numberOfUnreadNotification } from '$lib/store';
import { goto } from '$app/navigation';
import {getImageURL} from '$lib/utils';
import { articleId, numberOfUnreadNotification } from "$lib/store";
import { goto } from "$app/navigation";
import { getImageURL } from "$lib/utils";
import ArrowLogo from "lucide-svelte/icons/move-up-right";
export let data;
let cloudFrontUrl = import.meta.env.VITE_IMAGE_URL;
function blogSelector(state:string)
{
function blogSelector(state: string) {
$articleId = state;
goto('/blog/article/'+$articleId)
goto("/blog/article/" + $articleId);
}
/*
let allBlogPosts = [
{
@ -54,36 +49,42 @@ let allBlogPosts = [
]
*/
let allBlogPosts = data?.getAllBlogPost;
</script>
<svelte:head>
<title> {$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ''} Stock Analysis Blog · stocknear</title>
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""} Stock
Analysis Blog · stocknear</title
>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
<meta name="description" content="Get the latest blog post to understand and invest correctly into companies.">
<meta
name="description"
content="Get the latest blog post to understand and invest correctly into companies."
/>
<!-- Other meta tags -->
<meta property="og:title" content="Stock Analysis Blog · stocknear" />
<meta property="og:description" content="Get the latest blog post to understand and invest correctly into companies.">
<meta
property="og:description"
content="Get the latest blog post to understand and invest correctly into companies."
/>
<meta property="og:type" content="website" />
<!-- Add more Open Graph meta tags as needed -->
<!-- Twitter specific meta tags -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="Stock Analysis Blog · stocknear" />
<meta name="twitter:description" content="Get the latest blog post to understand and invest correctly into companies.">
<meta
name="twitter:description"
content="Get the latest blog post to understand and invest correctly into companies."
/>
<!-- Add more Twitter meta tags as needed -->
</svelte:head>
<section class="w-full max-w-3xl sm:max-w-screen-2xl overflow-hidden min-h-screen pt-5 pb-40 lg:px-3">
<section
class="w-full max-w-3xl sm:max-w-screen-2xl overflow-hidden min-h-screen pt-5 pb-40 lg:px-3"
>
<div class="text-sm sm:text-[1rem] breadcrumbs ml-4">
<ul>
<li><a href="/" class="text-gray-300">Home</a></li>
@ -92,25 +93,28 @@ let allBlogPosts = data?.getAllBlogPost;
</div>
<div class="w-full overflow-hidden m-auto mt-5">
<div class="sm:p-0 flex justify-center w-full m-auto overflow-hidden">
<div class="relative flex justify-center items-start overflow-hidden w-full">
<div
class="relative flex justify-center items-start overflow-hidden w-full"
>
<main class="w-full lg:w-3/4 lg:pr-5">
<div class="w-full m-auto sm:bg-[#27272A] sm:rounded-xl h-auto pl-10 pr-10 pt-5 sm:pb-10 sm:pt-10 mt-3 mb-8">
<div
class="w-full m-auto sm:bg-[#27272A] sm:rounded-xl h-auto pl-10 pr-10 pt-5 sm:pb-10 sm:pt-10 mt-3 mb-8"
>
<div class="grid grid-cols-1 sm:grid-cols-2 gap-10">
<!-- Start Column -->
<div>
<div class="flex flex-row justify-center items-center">
<h1 class="text-3xl sm:text-4xl text-white text-center font-bold mb-5">
<h1
class="text-3xl sm:text-4xl text-white text-center font-bold mb-5"
>
Stock Analysis Blog
</h1>
</div>
<span class="w-3/4 m-auto text-white text-md font-medium text-center flex justify-center items-center ">
<span
class="w-3/4 m-auto text-white text-md font-medium text-center flex justify-center items-center"
>
An investment in knowledge pays the best
</span>
<!--
@ -121,13 +125,16 @@ let allBlogPosts = data?.getAllBlogPost;
<svg class="w-6 h-6 inline-block ml-2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" fill="#000000"><g id="SVGRepo_bgCarrier" stroke-width="0"></g><g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g><g id="SVGRepo_iconCarrier"> <title></title> <g id="Complete"> <g id="info-circle"> <g> <circle cx="12" cy="12" data-name="--Circle" fill="none" id="_--Circle" r="10" stroke="#B46266" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"></circle> <line fill="none" stroke="#B46266" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" x1="12" x2="12" y1="12" y2="16"></line> <line fill="none" stroke="#B46266" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" x1="12" x2="12" y1="8" y2="8"></line> </g> </g> </g> </g></svg>
</label>
-->
</div>
<!-- End Column -->
<!-- Start Column -->
<div class="relative m-auto mb-5 mt-5 sm:mb-0 sm:mt-0">
<svg class="w-40 -my-5" viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg">
<svg
class="w-40 -my-5"
viewBox="0 0 200 200"
xmlns="http://www.w3.org/2000/svg"
>
<defs>
<filter id="glow">
<feGaussianBlur stdDeviation="5" result="glow" />
@ -137,37 +144,49 @@ let allBlogPosts = data?.getAllBlogPost;
</feMerge>
</filter>
</defs>
<path fill="#1E40AF" d="M57.6,-58.7C72.7,-42.6,81.5,-21.3,82,0.5C82.5,22.3,74.7,44.6,59.7,60.1C44.6,75.6,22.3,84.3,0,84.3C-22.3,84.2,-44.6,75.5,-61.1,60.1C-77.6,44.6,-88.3,22.3,-87.6,0.7C-86.9,-20.8,-74.7,-41.6,-58.2,-57.7C-41.6,-73.8,-20.8,-85.2,0.2,-85.4C21.3,-85.6,42.6,-74.7,57.6,-58.7Z" transform="translate(100 100)" filter="url(#glow)" />
<path
fill="#1E40AF"
d="M57.6,-58.7C72.7,-42.6,81.5,-21.3,82,0.5C82.5,22.3,74.7,44.6,59.7,60.1C44.6,75.6,22.3,84.3,0,84.3C-22.3,84.2,-44.6,75.5,-61.1,60.1C-77.6,44.6,-88.3,22.3,-87.6,0.7C-86.9,-20.8,-74.7,-41.6,-58.2,-57.7C-41.6,-73.8,-20.8,-85.2,0.2,-85.4C21.3,-85.6,42.6,-74.7,57.6,-58.7Z"
transform="translate(100 100)"
filter="url(#glow)"
/>
</svg>
<div class="z-1 absolute top-3 right-0">
<img class="w-28 mr-6" src={cloudFrontUrl+"/assets/blog_logo.png"} alt="logo" loading="lazy">
<img
class="w-28 mr-6"
src={cloudFrontUrl + "/assets/blog_logo.png"}
alt="logo"
loading="lazy"
/>
</div>
</div>
<!-- End Column -->
</div>
</div>
<div class="mt-10 sm:mt-5 w-full m-auto px-3">
<div class="grid grid-cols-1 sm:grid-cols-2 sm:gap-5">
{#if allBlogPosts?.length !== 0}
{#each allBlogPosts as item}
<div class="flex flex-col w-full min-h-fit mb-5 mt-5 bg-[#fff] bg-opacity-[0.01] sm:bg-opacity-[1.0] sm:bg-[#09090B] border border-slate-700 rounded-xl m-auto">
<label on:click={() => blogSelector(item?.id)} class="cursor-pointer">
<div
class="flex flex-col w-full min-h-fit mb-5 mt-5 bg-[#fff] bg-opacity-[0.01] sm:bg-opacity-[1.0] sm:bg-[#09090B] border border-slate-700 rounded-xl m-auto"
>
<label
on:click={() => blogSelector(item?.id)}
class="cursor-pointer"
>
<div class="flex-shrink-0 m-auto">
<img
class="w-full object-cover h-56 rounded-t-xl"
src={getImageURL(item?.collectionId, item?.id, item?.cover)}
alt="Wallpaper" loading="lazy"/>
src={getImageURL(
item?.collectionId,
item?.id,
item?.cover,
)}
alt="Wallpaper"
loading="lazy"
/>
</div>
<div class="pl-4 pt-3 w-11/12">
@ -175,54 +194,64 @@ let allBlogPosts = data?.getAllBlogPost;
{item?.title}
</h1>
<p class="text-white text-sm mt-4">
{item?.abstract.length > 250 ? item?.abstract?.slice(0,250) + "..." : item?.abstract}
{item?.abstract.length > 250
? item?.abstract?.slice(0, 250) + "..."
: item?.abstract}
</p>
</div>
</label>
<div class="flex flex-row items-center pl-4 pr-3 pt-8 pb-6">
<a href={"/community/user/"+item?.expand?.user?.id} class="cursor-pointer text-sm text-white sm:text-opacity-[0.7] flex flex-row items-center">
<a
href={"/community/user/" + item?.expand?.user?.id}
class="cursor-pointer text-sm text-white sm:text-opacity-[0.7] flex flex-row items-center"
>
<img
class="rounded-full w-10 h-10 mr-2"
src={item?.expand?.user?.avatar
? getImageURL(item?.expand?.user?.collectionId, item?.expand?.user?.id, item?.expand?.user?.avatar)
? getImageURL(
item?.expand?.user?.collectionId,
item?.expand?.user?.id,
item?.expand?.user?.avatar,
)
: `https://avatar.vercel.sh/${item?.expand?.user?.username}`}
alt="User avatar" loading='lazy'/>
alt="User avatar"
loading="lazy"
/>
{item?.expand?.user?.username} &centerdot; {new Date(item?.created)?.toLocaleString('en-US', { month: 'short', day: 'numeric', year: 'numeric', daySuffix: '2-digit' })}
{item?.expand?.user?.username} &centerdot; {new Date(
item?.created,
)?.toLocaleString("en-US", {
month: "short",
day: "numeric",
year: "numeric",
daySuffix: "2-digit",
})}
</a>
<div class="ml-auto">
<span class="text-white sm:text-opacity-[0.7] text-sm ml-1 mr-4">
<span
class="text-white sm:text-opacity-[0.7] text-sm ml-1 mr-4"
>
{item?.readingTime} min read
</span>
</div>
</div>
</div>
{/each}
{/if}
</div>
</div>
</main>
<aside class="hidden lg:block relative fixed w-1/4 ml-4">
{#if data?.user?.tier !== 'Pro' || data?.user?.freeTrial}
<div on:click={() => goto('/pricing')} class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer">
<div class="w-auto lg:w-full p-1 flex flex-col m-auto px-2 sm:px-0">
{#if data?.user?.tier !== "Pro" || data?.user?.freeTrial}
<div
on:click={() => goto("/pricing")}
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<div
class="w-auto lg:w-full p-1 flex flex-col m-auto px-2 sm:px-0"
>
<div class="w-full flex justify-between items-center p-3 mt-3">
<h2 class="text-start text-xl font-semibold text-white ml-3">
Pro Subscription 🔥
@ -236,7 +265,10 @@ let allBlogPosts = data?.getAllBlogPost;
</div>
{/if}
<div on:click={() => goto('/analysts')} class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer">
<div
on:click={() => goto("/analysts")}
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<div class="w-auto lg:w-full p-1 flex flex-col m-auto px-2 sm:px-0">
<div class="w-full flex justify-between items-center p-3 mt-3">
<h2 class="text-start text-xl font-semibold text-white ml-3">
@ -250,7 +282,10 @@ let allBlogPosts = data?.getAllBlogPost;
</div>
</div>
<div on:click={() => goto('/analysts/top-stocks')} class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer">
<div
on:click={() => goto("/analysts/top-stocks")}
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<div class="w-auto lg:w-full p-1 flex flex-col m-auto px-2 sm:px-0">
<div class="w-full flex justify-between items-center p-3 mt-3">
<h2 class="text-start text-xl font-semibold text-white ml-3">
@ -263,18 +298,8 @@ let allBlogPosts = data?.getAllBlogPost;
</span>
</div>
</div>
</aside>
</div>
</div>
</div>
</section>

View File

@ -1,45 +1,47 @@
<script>
import logo from '$lib/images/feedback_logo.png';
import { numberOfUnreadNotification } from '$lib/store';
import { goto } from '$app/navigation';
import logo from "$lib/images/feedback_logo.png";
import { numberOfUnreadNotification } from "$lib/store";
import { goto } from "$app/navigation";
import ArrowLogo from "lucide-svelte/icons/move-up-right";
const emailAddress = 'support@stocknear.com';
const emailAddress = "support@stocknear.com";
</script>
<svelte:head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ''} Contact Us · stocknear
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""} Contact
Us · stocknear
</title>
<meta name="description" content={`Need help, found a bug or you have a feature request. Please contact us to resolve any issues.`} />
<meta
name="description"
content={`Need help, found a bug or you have a feature request. Please contact us to resolve any issues.`}
/>
<!-- Other meta tags -->
<meta property="og:title" content={`Contact Us · stocknear`} />
<meta property="og:description" content={`Need help, found a bug or you have a feature request. Please contact us to resolve any issues.`} />
<meta
property="og:description"
content={`Need help, found a bug or you have a feature request. Please contact us to resolve any issues.`}
/>
<meta property="og:type" content="website" />
<!-- Add more Open Graph meta tags as needed -->
<!-- Twitter specific meta tags -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content={`Contact Us · stocknear`} />
<meta name="twitter:description" content={`Need help, found a bug or you have a feature request. Please contact us to resolve any issues.`} />
<meta
name="twitter:description"
content={`Need help, found a bug or you have a feature request. Please contact us to resolve any issues.`}
/>
<!-- Add more Twitter meta tags as needed -->
</svelte:head>
<section class="w-full max-w-3xl sm:max-w-screen-2xl overflow-hidden min-h-screen pt-5 pb-40">
<section
class="w-full max-w-3xl sm:max-w-screen-2xl overflow-hidden min-h-screen pt-5 pb-40"
>
<div class="text-sm sm:text-[1rem] breadcrumbs">
<ul>
<li><a href="/" class="text-gray-300">Home</a></li>
@ -47,27 +49,29 @@ import ArrowLogo from "lucide-svelte/icons/move-up-right";
</ul>
</div>
<div class="w-full overflow-hidden m-auto mt-5">
<div class="sm:p-0 flex justify-center w-full m-auto overflow-hidden">
<div class="relative flex justify-center items-start overflow-hidden w-full">
<div
class="relative flex justify-center items-start overflow-hidden w-full"
>
<main class="w-full lg:w-3/4 lg:pr-5">
<div class="w-full m-auto sm:bg-[#27272A] sm:rounded-xl h-auto pl-10 pr-10 pt-5 sm:pb-10 sm:pt-10 mt-3 mb-8">
<div
class="w-full m-auto sm:bg-[#27272A] sm:rounded-xl h-auto pl-10 pr-10 pt-5 sm:pb-10 sm:pt-10 mt-3 mb-8"
>
<div class="grid grid-cols-1 sm:grid-cols-2 gap-10">
<!-- Start Column -->
<div>
<div class="flex flex-row justify-center items-center sm:mt-5">
<h1 class="text-3xl sm:text-4xl text-white text-center font-bold mb-5">
<h1
class="text-3xl sm:text-4xl text-white text-center font-bold mb-5"
>
Sharing is Caring
</h1>
</div>
<span class="text-white text-md font-medium text-center flex justify-center items-center ">
<span
class="text-white text-md font-medium text-center flex justify-center items-center"
>
unless it's family
</span>
</div>
@ -75,7 +79,11 @@ import ArrowLogo from "lucide-svelte/icons/move-up-right";
<!-- Start Column -->
<div class="relative m-auto mb-5 sm:mb-0">
<svg class="w-40 -my-5" viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg">
<svg
class="w-40 -my-5"
viewBox="0 0 200 200"
xmlns="http://www.w3.org/2000/svg"
>
<defs>
<filter id="glow">
<feGaussianBlur stdDeviation="5" result="glow" />
@ -85,45 +93,52 @@ import ArrowLogo from "lucide-svelte/icons/move-up-right";
</feMerge>
</filter>
</defs>
<path fill="#1E40AF" d="M57.6,-58.7C72.7,-42.6,81.5,-21.3,82,0.5C82.5,22.3,74.7,44.6,59.7,60.1C44.6,75.6,22.3,84.3,0,84.3C-22.3,84.2,-44.6,75.5,-61.1,60.1C-77.6,44.6,-88.3,22.3,-87.6,0.7C-86.9,-20.8,-74.7,-41.6,-58.2,-57.7C-41.6,-73.8,-20.8,-85.2,0.2,-85.4C21.3,-85.6,42.6,-74.7,57.6,-58.7Z" transform="translate(100 100)" filter="url(#glow)" />
<path
fill="#1E40AF"
d="M57.6,-58.7C72.7,-42.6,81.5,-21.3,82,0.5C82.5,22.3,74.7,44.6,59.7,60.1C44.6,75.6,22.3,84.3,0,84.3C-22.3,84.2,-44.6,75.5,-61.1,60.1C-77.6,44.6,-88.3,22.3,-87.6,0.7C-86.9,-20.8,-74.7,-41.6,-58.2,-57.7C-41.6,-73.8,-20.8,-85.2,0.2,-85.4C21.3,-85.6,42.6,-74.7,57.6,-58.7Z"
transform="translate(100 100)"
filter="url(#glow)"
/>
</svg>
<div class="z-1 absolute top-3">
<img class="w-24 ml-9" src={logo} alt="logo">
<img class="w-24 ml-9" src={logo} alt="logo" />
</div>
</div>
<!-- End Column -->
</div>
</div>
</div>
<div class="card w-full rounded-none sm:rounded-xl border-t border-slate-800 sm:border sm:border-slate-800 m-auto ">
<div
class="card w-full rounded-none sm:rounded-xl border-t border-slate-800 sm:border sm:border-slate-800 m-auto"
>
<div class="card-body">
<h2 class="card-title text-2xl mb-5 text-white">Support</h2>
<p class="text-white">
Please take a moment to share your thoughts on this website with us. We welcome any feedback you may have. If there's a feature you'd like to see implemented, please let us know and we'll work to make the website even better for you. Thank you for your time and input!
Please take a moment to share your thoughts on this website with
us. We welcome any feedback you may have. If there's a feature
you'd like to see implemented, please let us know and we'll work
to make the website even better for you. Thank you for your time
and input!
</p>
<p class="text-white mt-5">
<!-- svelte-ignore a11y-missing-content -->
You can contact us at
<a href={`mailto:${emailAddress}`} class="text-blue-400 hover:text-white hover:underline">{emailAddress}</a>
<a
href={`mailto:${emailAddress}`}
class="text-blue-400 hover:text-white hover:underline"
>{emailAddress}</a
>
</p>
</div>
</div>
</main>
<aside class="hidden lg:block relative fixed w-1/4 ml-4">
<div on:click={() => goto('/pricing')} class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer">
<div
on:click={() => goto("/pricing")}
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<div class="w-auto lg:w-full p-1 flex flex-col m-auto px-2 sm:px-0">
<div class="w-full flex justify-between items-center p-3 mt-3">
<h2 class="text-start text-xl font-semibold text-white ml-3">
@ -137,7 +152,10 @@ import ArrowLogo from "lucide-svelte/icons/move-up-right";
</div>
</div>
<div on:click={() => goto('/donation')} class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer">
<div
on:click={() => goto("/donation")}
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<div class="w-auto lg:w-full p-1 flex flex-col m-auto px-2 sm:px-0">
<div class="w-full flex justify-between items-center p-3 mt-3">
<h2 class="text-start text-xl font-semibold text-white ml-3">
@ -151,7 +169,10 @@ import ArrowLogo from "lucide-svelte/icons/move-up-right";
</div>
</div>
<div on:click={() => goto('/contact')} class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer">
<div
on:click={() => goto("/contact")}
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<div class="w-auto lg:w-full p-1 flex flex-col m-auto px-2 sm:px-0">
<div class="w-full flex justify-between items-center p-3 mt-3">
<h2 class="text-start text-xl font-semibold text-white ml-3">
@ -164,16 +185,8 @@ import ArrowLogo from "lucide-svelte/icons/move-up-right";
</span>
</div>
</div>
</aside>
</div>
</div>
</div>
</section>

View File

@ -311,7 +311,7 @@
<aside class="hidden lg:block relative fixed w-1/4 ml-4">
{#if data?.user?.tier !== "Pro" || data?.user?.freeTrial}
<div
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<a
href={"/pricing"}
@ -331,7 +331,7 @@
{/if}
<div
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<a
href={"/analysts"}
@ -350,7 +350,7 @@
</div>
<div
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<a
href={"/politicians"}

View File

@ -418,7 +418,7 @@
<aside class="hidden lg:block relative fixed w-1/4 ml-4">
{#if data?.user?.tier !== "Pro" || data?.user?.freeTrial}
<div
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<a
href={"/pricing"}
@ -438,7 +438,7 @@
{/if}
<div
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<a
href={"/reddit-tracker"}
@ -457,7 +457,7 @@
</div>
<div
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<a
href={"/sentiment-tracker"}

View File

@ -1,51 +1,58 @@
<script lang='ts'>
import { goto } from '$app/navigation';
import { numberOfUnreadNotification, screenWidth } from '$lib/store';
import { abbreviateNumber } from '$lib/utils';
import logo from '$lib/images/box_logo.png';
<script lang="ts">
import { goto } from "$app/navigation";
import { numberOfUnreadNotification, screenWidth } from "$lib/store";
import { abbreviateNumber } from "$lib/utils";
import logo from "$lib/images/box_logo.png";
import ArrowLogo from "lucide-svelte/icons/move-up-right";
export let data;
let rawData = data?.getCryptoList;
let symbolList = rawData //rawData?.slice(0,30);
let symbolList = rawData; //rawData?.slice(0,30);
$: charNumber = $screenWidth < 640 ? 15 : 40;
</script>
<svelte:head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ''} List of All Crypto Ticker Symbols · stocknear
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""} List
of All Crypto Ticker Symbols · stocknear
</title>
<meta name="description" content={`An overview of all the Crypto symbols listed. Explore the Crypto pages to learn about the circulating supply and price changes.`} />
<meta
name="description"
content={`An overview of all the Crypto symbols listed. Explore the Crypto pages to learn about the circulating supply and price changes.`}
/>
<!-- Other meta tags -->
<meta property="og:title" content={`List of All Crypto Ticker Symbols · stocknear`}/>
<meta property="og:description" content={`An overview of all the Crypto symbols listed. Explore the Crypto pages to learn about the circulating supply and price changes.`} />
<meta
property="og:title"
content={`List of All Crypto Ticker Symbols · stocknear`}
/>
<meta
property="og:description"
content={`An overview of all the Crypto symbols listed. Explore the Crypto pages to learn about the circulating supply and price changes.`}
/>
<meta property="og:type" content="website" />
<!-- Add more Open Graph meta tags as needed -->
<!-- Twitter specific meta tags -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content={`List of All Crypto Ticker Symbols · stocknear`}/>
<meta name="twitter:description" content={`An overview of all the Crypto symbols listed. Explore the Crypto pages to learn about the circulating supply and price changes.`} />
<meta
name="twitter:title"
content={`List of All Crypto Ticker Symbols · stocknear`}
/>
<meta
name="twitter:description"
content={`An overview of all the Crypto symbols listed. Explore the Crypto pages to learn about the circulating supply and price changes.`}
/>
<!-- Add more Twitter meta tags as needed -->
</svelte:head>
<section class="w-full max-w-3xl sm:max-w-screen-2xl overflow-hidden min-h-screen pt-5 pb-40 lg:px-3">
<section
class="w-full max-w-3xl sm:max-w-screen-2xl overflow-hidden min-h-screen pt-5 pb-40 lg:px-3"
>
<div class="text-sm sm:text-[1rem] breadcrumbs ml-4">
<ul>
<li><a href="/" class="text-gray-300">Home</a></li>
@ -54,25 +61,28 @@ $: charNumber = $screenWidth < 640 ? 15 : 40;
</div>
<div class="w-full overflow-hidden m-auto mt-5">
<div class="sm:p-0 flex justify-center w-full m-auto overflow-hidden">
<div class="relative flex justify-center items-start overflow-hidden w-full">
<div
class="relative flex justify-center items-start overflow-hidden w-full"
>
<main class="w-full lg:w-3/4 lg:pr-5">
<div class="w-full m-auto sm:bg-[#27272A] sm:rounded-xl h-auto pl-10 pr-10 pt-5 sm:pb-10 sm:pt-10 mt-3 mb-8">
<div
class="w-full m-auto sm:bg-[#27272A] sm:rounded-xl h-auto pl-10 pr-10 pt-5 sm:pb-10 sm:pt-10 mt-3 mb-8"
>
<div class="grid grid-cols-1 sm:grid-cols-2 gap-10">
<!-- Start Column -->
<div>
<div class="flex flex-row justify-center items-center">
<h1 class="text-3xl sm:text-4xl text-white text-center font-bold mb-5">
<h1
class="text-3xl sm:text-4xl text-white text-center font-bold mb-5"
>
Crypto Symbols
</h1>
</div>
<span class="text-white text-md font-medium text-center flex justify-center items-center ">
<span
class="text-white text-md font-medium text-center flex justify-center items-center"
>
Collection of all Crypto Symbols available
</span>
<!--
@ -83,13 +93,18 @@ $: charNumber = $screenWidth < 640 ? 15 : 40;
<svg class="w-6 h-6 inline-block ml-2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" fill="#000000"><g id="SVGRepo_bgCarrier" stroke-width="0"></g><g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g><g id="SVGRepo_iconCarrier"> <title></title> <g id="Complete"> <g id="info-circle"> <g> <circle cx="12" cy="12" data-name="--Circle" fill="none" id="_--Circle" r="10" stroke="#B46266" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"></circle> <line fill="none" stroke="#B46266" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" x1="12" x2="12" y1="12" y2="16"></line> <line fill="none" stroke="#B46266" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" x1="12" x2="12" y1="8" y2="8"></line> </g> </g> </g> </g></svg>
</label>
-->
</div>
<!-- End Column -->
<!-- Start Column -->
<div class="hidden sm:block relative m-auto mb-5 mt-5 sm:mb-0 sm:mt-0">
<svg class="w-40 -my-5" viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg">
<div
class="hidden sm:block relative m-auto mb-5 mt-5 sm:mb-0 sm:mt-0"
>
<svg
class="w-40 -my-5"
viewBox="0 0 200 200"
xmlns="http://www.w3.org/2000/svg"
>
<defs>
<filter id="glow">
<feGaussianBlur stdDeviation="5" result="glow" />
@ -99,29 +114,27 @@ $: charNumber = $screenWidth < 640 ? 15 : 40;
</feMerge>
</filter>
</defs>
<path fill="#1E40AF" d="M57.6,-58.7C72.7,-42.6,81.5,-21.3,82,0.5C82.5,22.3,74.7,44.6,59.7,60.1C44.6,75.6,22.3,84.3,0,84.3C-22.3,84.2,-44.6,75.5,-61.1,60.1C-77.6,44.6,-88.3,22.3,-87.6,0.7C-86.9,-20.8,-74.7,-41.6,-58.2,-57.7C-41.6,-73.8,-20.8,-85.2,0.2,-85.4C21.3,-85.6,42.6,-74.7,57.6,-58.7Z" transform="translate(100 100)" filter="url(#glow)" />
<path
fill="#1E40AF"
d="M57.6,-58.7C72.7,-42.6,81.5,-21.3,82,0.5C82.5,22.3,74.7,44.6,59.7,60.1C44.6,75.6,22.3,84.3,0,84.3C-22.3,84.2,-44.6,75.5,-61.1,60.1C-77.6,44.6,-88.3,22.3,-87.6,0.7C-86.9,-20.8,-74.7,-41.6,-58.2,-57.7C-41.6,-73.8,-20.8,-85.2,0.2,-85.4C21.3,-85.6,42.6,-74.7,57.6,-58.7Z"
transform="translate(100 100)"
filter="url(#glow)"
/>
</svg>
<div class="z-1 absolute top-0">
<img class="w-24 ml-9" src={logo} alt="logo" loading="lazy">
<img class="w-24 ml-9" src={logo} alt="logo" loading="lazy" />
</div>
</div>
<!-- End Column -->
</div>
</div>
<div class="w-full mt-10 m-auto mb-10 bg-[#09090B] pl-3 pr-3 overflow-hidden">
<div
class="w-full mt-10 m-auto mb-10 bg-[#09090B] pl-3 pr-3 overflow-hidden"
>
<!--Start Top Winners/Losers-->
<div class="flex flex-col justify-center items-center">
<div class="ml-4 text-start w-full text-white mb-2">
<span class="font-bold text-2xl">
{rawData?.length} Cryptos
@ -131,63 +144,92 @@ $: charNumber = $screenWidth < 640 ? 15 : 40;
<div class="border-b mt-2 border-blue-400 w-full mb-4" />
<div class="w-full overflow-x-scroll">
<table class="mt-5 table table-sm table-compact rounded-none sm:rounded-md w-full bg-[#09090B] border-bg-[#09090B] m-auto">
<table
class="mt-5 table table-sm table-compact rounded-none sm:rounded-md w-full bg-[#09090B] border-bg-[#09090B] m-auto"
>
<thead>
<tr>
<th class="text-white font-medium text-sm sm:text-[1rem] text-start">Symbol</th>
<th class="text-white font-medium text-sm sm:text-[1rem] ">Name</th>
<th class="text-white font-medium text-end text-sm sm:text-[1rem] ">MarketCap</th>
<th class="text-white font-medium text-end text-sm sm:text-[1rem] ">Circulating Supply</th>
<th class="text-white font-medium text-end text-sm sm:text-[1rem] ">Max Supply</th>
<th
class="text-white font-medium text-sm sm:text-[1rem] text-start"
>Symbol</th
>
<th class="text-white font-medium text-sm sm:text-[1rem]"
>Name</th
>
<th
class="text-white font-medium text-end text-sm sm:text-[1rem]"
>MarketCap</th
>
<th
class="text-white font-medium text-end text-sm sm:text-[1rem]"
>Circulating Supply</th
>
<th
class="text-white font-medium text-end text-sm sm:text-[1rem]"
>Max Supply</th
>
</tr>
</thead>
<tbody>
{#each symbolList as item, index}
<tr on:click={() => goto("/crypto/"+item?.symbol)} class="sm:hover:bg-[#245073] sm:hover:bg-opacity-[0.2] odd:bg-[#27272A] border-b-[#09090B] shake-ticker cursor-pointer">
<td class="text-blue-400 font-medium text-sm text-start border-b-[#09090B]">
<tr
on:click={() => goto("/crypto/" + item?.symbol)}
class="sm:hover:bg-[#245073] sm:hover:bg-opacity-[0.2] odd:bg-[#27272A] border-b-[#09090B] shake-ticker cursor-pointer"
>
<td
class="text-blue-400 font-medium text-sm text-start border-b-[#09090B]"
>
{item?.symbol}
</td>
<td class="text-white whitespace-nowrap text-sm sm:text-[1rem] border-b-[#09090B]">
{item?.name?.length > charNumber ? item?.name?.slice(0,charNumber) + "..." : item?.name}
<td
class="text-white whitespace-nowrap text-sm sm:text-[1rem] border-b-[#09090B]"
>
{item?.name?.length > charNumber
? item?.name?.slice(0, charNumber) + "..."
: item?.name}
</td>
<td class="text-white text-end text-sm sm:text-[1rem] border-b-[#09090B]">
{item?.marketCap !== null ? abbreviateNumber(item?.marketCap,true) : '-'}
<td
class="text-white text-end text-sm sm:text-[1rem] border-b-[#09090B]"
>
{item?.marketCap !== null
? abbreviateNumber(item?.marketCap, true)
: "-"}
</td>
<td class="text-white border-b-[#09090B] text-end text-sm sm:text-[1rem]">
{item?.circulatingSupply !== null ? abbreviateNumber(item?.circulatingSupply,true) : '-'}
<td
class="text-white border-b-[#09090B] text-end text-sm sm:text-[1rem]"
>
{item?.circulatingSupply !== null
? abbreviateNumber(item?.circulatingSupply, true)
: "-"}
</td>
<td class="text-white border-b-[#09090B] text-end text-sm sm:text-[1rem]">
{item?.maxSupply !== 'Uncapped' ? abbreviateNumber(item?.maxSupply,true) : 'Uncapped'}
<td
class="text-white border-b-[#09090B] text-end text-sm sm:text-[1rem]"
>
{item?.maxSupply !== "Uncapped"
? abbreviateNumber(item?.maxSupply, true)
: "Uncapped"}
</td>
</tr>
{/each}
</tbody>
</table>
</div>
</div>
</div>
</main>
<aside class="hidden lg:block relative fixed w-1/4 ml-4">
{#if data?.user?.tier !== 'Pro' || data?.user?.freeTrial}
<div on:click={() => goto('/pricing')} class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer">
<div class="w-auto lg:w-full p-1 flex flex-col m-auto px-2 sm:px-0">
{#if data?.user?.tier !== "Pro" || data?.user?.freeTrial}
<div
on:click={() => goto("/pricing")}
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<div
class="w-auto lg:w-full p-1 flex flex-col m-auto px-2 sm:px-0"
>
<div class="w-full flex justify-between items-center p-3 mt-3">
<h2 class="text-start text-xl font-semibold text-white ml-3">
Pro Subscription 🔥
@ -201,7 +243,10 @@ $: charNumber = $screenWidth < 640 ? 15 : 40;
</div>
{/if}
<div on:click={() => goto('/analysts')} class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer">
<div
on:click={() => goto("/analysts")}
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<div class="w-auto lg:w-full p-1 flex flex-col m-auto px-2 sm:px-0">
<div class="w-full flex justify-between items-center p-3 mt-3">
<h2 class="text-start text-xl font-semibold text-white ml-3">
@ -215,7 +260,10 @@ $: charNumber = $screenWidth < 640 ? 15 : 40;
</div>
</div>
<div on:click={() => goto('/analysts/top-stocks')} class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer">
<div
on:click={() => goto("/analysts/top-stocks")}
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<div class="w-auto lg:w-full p-1 flex flex-col m-auto px-2 sm:px-0">
<div class="w-full flex justify-between items-center p-3 mt-3">
<h2 class="text-start text-xl font-semibold text-white ml-3">
@ -228,16 +276,8 @@ $: charNumber = $screenWidth < 640 ? 15 : 40;
</span>
</div>
</div>
</aside>
</div>
</div>
</div>
</section>

View File

@ -581,7 +581,7 @@
<aside class="hidden lg:block relative fixed w-1/4 ml-4">
{#if data?.user?.tier !== "Pro" || data?.user?.freeTrial}
<div
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<a
href={"/pricing"}
@ -601,7 +601,7 @@
{/if}
<div
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<a
href={"/earnings-calendar"}
@ -620,7 +620,7 @@
</div>
<div
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<a
href={"/economic-calendar"}

View File

@ -1,40 +1,45 @@
<script>
import { numberOfUnreadNotification } from '$lib/store';
import { numberOfUnreadNotification } from "$lib/store";
import ArrowLogo from "lucide-svelte/icons/move-up-right";
import { goto } from '$app/navigation';
import { goto } from "$app/navigation";
let cloudFrontUrl = import.meta.env.VITE_IMAGE_URL;
</script>
<svelte:head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ''} Become a sponsor to stocknear
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""} Become
a sponsor to stocknear
</title>
<meta name="description" content={`Your donation helps us to become the number 1 stock analysis platform in the world with the best price plans.`} />
<meta
name="description"
content={`Your donation helps us to become the number 1 stock analysis platform in the world with the best price plans.`}
/>
<!-- Other meta tags -->
<meta property="og:title" content={`sponsor · stocknear`} />
<meta property="og:description" content={`Your sponsor helps us to become the number 1 stock analysis platform in the world with the best price plans.`} />
<meta
property="og:description"
content={`Your sponsor helps us to become the number 1 stock analysis platform in the world with the best price plans.`}
/>
<meta property="og:type" content="website" />
<!-- Add more Open Graph meta tags as needed -->
<!-- Twitter specific meta tags -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content={`sponsor · stocknear`} />
<meta name="twitter:description" content={`Your sponsor helps us to become the number 1 stock analysis platform in the world with the best price plans.`} />
<meta
name="twitter:description"
content={`Your sponsor helps us to become the number 1 stock analysis platform in the world with the best price plans.`}
/>
<!-- Add more Twitter meta tags as needed -->
</svelte:head>
<section class="w-full max-w-3xl sm:max-w-screen-2xl overflow-hidden min-h-screen pt-5 pb-40">
<section
class="w-full max-w-3xl sm:max-w-screen-2xl overflow-hidden min-h-screen pt-5 pb-40"
>
<div class="text-sm sm:text-[1rem] breadcrumbs">
<ul>
<li><a href="/" class="text-gray-300">Home</a></li>
@ -43,33 +48,41 @@ let cloudFrontUrl = import.meta.env.VITE_IMAGE_URL;
</div>
<div class="w-full overflow-hidden m-auto mt-5">
<div class="sm:p-0 flex justify-center w-full m-auto overflow-hidden">
<div class="relative flex justify-center items-start overflow-hidden w-full">
<div
class="relative flex justify-center items-start overflow-hidden w-full"
>
<main class="w-full lg:w-3/4 lg:pr-5">
<div class="w-full m-auto sm:bg-[#27272A] sm:rounded-xl h-auto pl-10 pr-10 pt-5 sm:pb-10 sm:pt-10 mt-3 mb-8">
<div
class="w-full m-auto sm:bg-[#27272A] sm:rounded-xl h-auto pl-10 pr-10 pt-5 sm:pb-10 sm:pt-10 mt-3 mb-8"
>
<div class="grid grid-cols-1 sm:grid-cols-2 gap-10">
<!-- Start Column -->
<div>
<div class="flex flex-row justify-center items-center">
<h1 class="text-3xl sm:text-4xl text-white text-center font-bold mb-5">
<h1
class="text-3xl sm:text-4xl text-white text-center font-bold mb-5"
>
Sponsor
</h1>
</div>
<span class="text-white text-[1rem] font-medium text-center flex justify-center items-center ">
Apes together sponsor strong—because when we unite our bananas, we can move mountains!
<span
class="text-white text-[1rem] font-medium text-center flex justify-center items-center"
>
Apes together sponsor strong—because when we unite our
bananas, we can move mountains!
</span>
</div>
<!-- End Column -->
<!-- Start Column -->
<div class="relative m-auto">
<svg class="w-40 -my-5" viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg">
<svg
class="w-40 -my-5"
viewBox="0 0 200 200"
xmlns="http://www.w3.org/2000/svg"
>
<defs>
<filter id="glow">
<feGaussianBlur stdDeviation="5" result="glow" />
@ -79,97 +92,126 @@ let cloudFrontUrl = import.meta.env.VITE_IMAGE_URL;
</feMerge>
</filter>
</defs>
<path fill="#1E40AF" d="M57.6,-58.7C72.7,-42.6,81.5,-21.3,82,0.5C82.5,22.3,74.7,44.6,59.7,60.1C44.6,75.6,22.3,84.3,0,84.3C-22.3,84.2,-44.6,75.5,-61.1,60.1C-77.6,44.6,-88.3,22.3,-87.6,0.7C-86.9,-20.8,-74.7,-41.6,-58.2,-57.7C-41.6,-73.8,-20.8,-85.2,0.2,-85.4C21.3,-85.6,42.6,-74.7,57.6,-58.7Z" transform="translate(100 100)" filter="url(#glow)" />
<path
fill="#1E40AF"
d="M57.6,-58.7C72.7,-42.6,81.5,-21.3,82,0.5C82.5,22.3,74.7,44.6,59.7,60.1C44.6,75.6,22.3,84.3,0,84.3C-22.3,84.2,-44.6,75.5,-61.1,60.1C-77.6,44.6,-88.3,22.3,-87.6,0.7C-86.9,-20.8,-74.7,-41.6,-58.2,-57.7C-41.6,-73.8,-20.8,-85.2,0.2,-85.4C21.3,-85.6,42.6,-74.7,57.6,-58.7Z"
transform="translate(100 100)"
filter="url(#glow)"
/>
</svg>
<div class="z-1 absolute top-5">
<img class="w-32 sm:w-36 ml-3 sm:ml-2" src={cloudFrontUrl+'/assets/donation_logo.png'} alt="logo">
<img
class="w-32 sm:w-36 ml-3 sm:ml-2"
src={cloudFrontUrl + "/assets/donation_logo.png"}
alt="logo"
/>
</div>
</div>
<!-- End Column -->
</div>
</div>
</div>
<div class="card w-full bg-[#09090B] border-t sm:border rounded-none sm:rounded-lg border-gray-600 m-auto ">
<div
class="card w-full bg-[#09090B] border-t sm:border rounded-none sm:rounded-lg border-gray-600 m-auto"
>
<div class="card-body">
<h2 class="text-white text-xl font-semibold">
Hey,
</h2>
<h2 class="text-white text-xl font-semibold">Hey,</h2>
<p class="text-white mb-5 text-[1rem]">
Thank you for considering supporting our mission. As the sole person behind Stocknear—handling everything from backend development to customer service—I'm committed to keeping our platform affordable and accessible to all investors.
<br>
<br>
Our Pro Membership is priced to be less than a cup of coffee, ensuring that high-quality stock data is within reach for retail investors of all backgrounds. This pricing reflects our core mission: <strong class="italic">Apes together strong</strong>.
Thank you for considering supporting our mission. As the sole
person behind Stocknear—handling everything from backend
development to customer service—I'm committed to keeping our
platform affordable and accessible to all investors.
<br />
<br />
Our Pro Membership is priced to be less than a cup of coffee, ensuring
that high-quality stock data is within reach for retail investors
of all backgrounds. This pricing reflects our core mission:
<strong class="italic">Apes together strong</strong>.
</p>
<div class="text-white mb-5 text-[1rem]">
While the Pro Membership is designed to sustain our basic operations, your additional support can help us go even further. By sponsoring, you're not just supporting a platform; you're investing in a vision of open, transparent, and affordable financial analysis.
<br>
<br>
While the Pro Membership is designed to sustain our basic
operations, your additional support can help us go even further.
By sponsoring, you're not just supporting a platform; you're
investing in a vision of open, transparent, and affordable
financial analysis.
<br />
<br />
Here's what makes Stocknear unique:
<ul style="padding-left: 5px; padding-top:10px;">
<li style="margin-left: 15px; line-height: 22px; margin-bottom: 10px; list-style-type: disc;">
<li
style="margin-left: 15px; line-height: 22px; margin-bottom: 10px; list-style-type: disc;"
>
100% open-source culture
</li>
<li style="margin-left: 15px; line-height: 22px; margin-bottom: 10px; list-style-type: disc;">
<li
style="margin-left: 15px; line-height: 22px; margin-bottom: 10px; list-style-type: disc;"
>
No user tracking
</li>
<li style="margin-left: 15px; line-height: 22px; margin-bottom: 10px; list-style-type: disc;">
<li
style="margin-left: 15px; line-height: 22px; margin-bottom: 10px; list-style-type: disc;"
>
No advertisements
</li>
<li style="margin-left: 15px; line-height: 22px; margin-bottom: 30px; list-style-type: disc;">
<li
style="margin-left: 15px; line-height: 22px; margin-bottom: 30px; list-style-type: disc;"
>
No hidden fees or "shady" practices
</li>
</ul>
Your support will directly contribute to:
<ul style="padding-left: 5px; padding-top:10px;">
<li style="margin-left: 15px; line-height: 22px; margin-bottom: 10px; list-style-type: disc;">
<li
style="margin-left: 15px; line-height: 22px; margin-bottom: 10px; list-style-type: disc;"
>
Maintaining our low price point
</li>
<li style="margin-left: 15px; line-height: 22px; margin-bottom: 10px; list-style-type: disc;">
<li
style="margin-left: 15px; line-height: 22px; margin-bottom: 10px; list-style-type: disc;"
>
Better data quality and features
</li>
<li style="margin-left: 15px; line-height: 22px; margin-bottom: 10px; list-style-type: disc;">
Furthering our goal to become the #1 stock analysis platform in the industry
<li
style="margin-left: 15px; line-height: 22px; margin-bottom: 10px; list-style-type: disc;"
>
Furthering our goal to become the #1 stock analysis platform
in the industry
</li>
</ul>
</div>
<h2 class="text-white text-2xl font-semibold">
Become a sponsor to stocknear
</h2>
<p class="text-white mb-5 text-[1rem]">
If you believe in our mission and want to support us beyond your Pro Subscription, please support us via GitHub Sponsors. Every contribution, no matter the size, makes a significant impact on our ability to serve you and the retail investor community.
<br>
<br>
<a href="https://github.com/sponsors/stocknear" rel="noopener noreferrer" target="_blank" class="text-blue-400 sm:hover:text-white">Sponsor us here</a>
<br>
<br>
Your support means the world to me and helps keep Stocknear running smoothly.
If you believe in our mission and want to support us beyond your
Pro Subscription, please support us via GitHub Sponsors. Every
contribution, no matter the size, makes a significant impact on
our ability to serve you and the retail investor community.
<br />
<br />
<a
href="https://github.com/sponsors/stocknear"
rel="noopener noreferrer"
target="_blank"
class="text-blue-400 sm:hover:text-white">Sponsor us here</a
>
<br />
<br />
Your support means the world to me and helps keep Stocknear running
smoothly.
</p>
</div>
</div>
</main>
<aside class="hidden lg:block relative fixed w-1/4 ml-4">
<div on:click={() => goto('/pricing')} class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer">
<div
on:click={() => goto("/pricing")}
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<div class="w-auto lg:w-full p-1 flex flex-col m-auto px-2 sm:px-0">
<div class="w-full flex justify-between items-center p-3 mt-3">
<h2 class="text-start text-xl font-semibold text-white ml-3">
@ -183,7 +225,10 @@ let cloudFrontUrl = import.meta.env.VITE_IMAGE_URL;
</div>
</div>
<div on:click={() => goto('/about')} class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer">
<div
on:click={() => goto("/about")}
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<div class="w-auto lg:w-full p-1 flex flex-col m-auto px-2 sm:px-0">
<div class="w-full flex justify-between items-center p-3 mt-3">
<h2 class="text-start text-xl font-semibold text-white ml-3">
@ -197,7 +242,10 @@ let cloudFrontUrl = import.meta.env.VITE_IMAGE_URL;
</div>
</div>
<div on:click={() => goto('/contact')} class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer">
<div
on:click={() => goto("/contact")}
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<div class="w-auto lg:w-full p-1 flex flex-col m-auto px-2 sm:px-0">
<div class="w-full flex justify-between items-center p-3 mt-3">
<h2 class="text-start text-xl font-semibold text-white ml-3">
@ -210,16 +258,8 @@ let cloudFrontUrl = import.meta.env.VITE_IMAGE_URL;
</span>
</div>
</div>
</aside>
</div>
</div>
</div>
</section>

View File

@ -628,7 +628,7 @@
<aside class="hidden lg:block relative fixed w-1/4 ml-4">
{#if data?.user?.tier !== "Pro" || data?.user?.freeTrial}
<div
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<a
href={"/pricing"}
@ -648,7 +648,7 @@
{/if}
<div
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<a
href={"/dividends-calendar"}
@ -667,7 +667,7 @@
</div>
<div
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<a
href={"/economic-calendar"}

View File

@ -769,7 +769,7 @@
<aside class="hidden lg:block relative fixed w-1/4 ml-4">
{#if data?.user?.tier !== "Pro" || data?.user?.freeTrial}
<div
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<a
href={"/pricing"}
@ -789,7 +789,7 @@
{/if}
<div
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<a
href={"/earnings-calendar"}
@ -808,7 +808,7 @@
</div>
<div
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<a
href={"/dividends-calendar"}

File diff suppressed because it is too large Load Diff

View File

@ -1,20 +1,17 @@
<script lang='ts'>
import { goto } from '$app/navigation';
import { numberOfUnreadNotification, screenWidth } from '$lib/store';
import { abbreviateNumber } from '$lib/utils';
import { page } from '$app/stores';
import logo from '$lib/images/box_logo.png';
<script lang="ts">
import { goto } from "$app/navigation";
import { numberOfUnreadNotification, screenWidth } from "$lib/store";
import { abbreviateNumber } from "$lib/utils";
import { page } from "$app/stores";
import logo from "$lib/images/box_logo.png";
import ArrowLogo from "lucide-svelte/icons/move-up-right";
import { onMount } from 'svelte';
import { onMount } from "svelte";
export let data;
let rawData = data?.getETFList;
let stockList = rawData?.slice(0, 50);
async function handleScroll() {
const scrollThreshold = document.body.offsetHeight * 0.8; // 80% of the website height
const isBottom = window.innerHeight + window.scrollY >= scrollThreshold;
@ -26,44 +23,55 @@ async function handleScroll() {
}
onMount(() => {
window.addEventListener('scroll', handleScroll);
window.addEventListener("scroll", handleScroll);
return () => {
window.removeEventListener('scroll', handleScroll);
window.removeEventListener("scroll", handleScroll);
};
})
});
$: charNumber = $screenWidth < 640 ? 15 : 40;
</script>
<svelte:head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ''} List of All ETF Ticker Symbols · stocknear
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""} List
of All ETF Ticker Symbols · stocknear
</title>
<meta name="description" content={`An overview of all the ETF symbols listed. Explore the ETF pages to learn about the funds price history, holdings, dividends and more.`} />
<meta
name="description"
content={`An overview of all the ETF symbols listed. Explore the ETF pages to learn about the funds price history, holdings, dividends and more.`}
/>
<!-- Other meta tags -->
<meta property="og:title" content={`List of All ETF Ticker Symbols · stocknear`}/>
<meta property="og:description" content={`An overview of all the ETF symbols listed. Explore the ETF pages to learn about the funds price history, holdings, dividends and more.`} />
<meta
property="og:title"
content={`List of All ETF Ticker Symbols · stocknear`}
/>
<meta
property="og:description"
content={`An overview of all the ETF symbols listed. Explore the ETF pages to learn about the funds price history, holdings, dividends and more.`}
/>
<meta property="og:type" content="website" />
<!-- Add more Open Graph meta tags as needed -->
<!-- Twitter specific meta tags -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content={`List of All ETF Ticker Symbols · stocknear`}/>
<meta name="twitter:description" content={`An overview of all the ETF symbols listed. Explore the ETF pages to learn about the funds price history, holdings, dividends and more.`} />
<meta
name="twitter:title"
content={`List of All ETF Ticker Symbols · stocknear`}
/>
<meta
name="twitter:description"
content={`An overview of all the ETF symbols listed. Explore the ETF pages to learn about the funds price history, holdings, dividends and more.`}
/>
<!-- Add more Twitter meta tags as needed -->
</svelte:head>
<section class="w-full max-w-3xl sm:max-w-screen-2xl overflow-hidden min-h-screen pt-5 pb-40 lg:px-3">
<section
class="w-full max-w-3xl sm:max-w-screen-2xl overflow-hidden min-h-screen pt-5 pb-40 lg:px-3"
>
<div class="text-sm sm:text-[1rem] breadcrumbs ml-4">
<ul>
<li><a href="/" class="text-gray-300">Home</a></li>
@ -72,25 +80,28 @@ $: charNumber = $screenWidth < 640 ? 15 : 40;
</div>
<div class="w-full overflow-hidden m-auto mt-5">
<div class="sm:p-0 flex justify-center w-full m-auto overflow-hidden">
<div class="relative flex justify-center items-start overflow-hidden w-full">
<div
class="relative flex justify-center items-start overflow-hidden w-full"
>
<main class="w-full lg:w-3/4 lg:pr-5">
<div class="w-full m-auto sm:bg-[#27272A] sm:rounded-xl h-auto pl-10 pr-10 pt-5 sm:pb-10 sm:pt-10 mt-3 mb-8">
<div
class="w-full m-auto sm:bg-[#27272A] sm:rounded-xl h-auto pl-10 pr-10 pt-5 sm:pb-10 sm:pt-10 mt-3 mb-8"
>
<div class="grid grid-cols-1 sm:grid-cols-2 gap-10">
<!-- Start Column -->
<div>
<div class="flex flex-row justify-center items-center">
<h1 class="text-3xl sm:text-4xl text-white text-center font-bold mb-5">
<h1
class="text-3xl sm:text-4xl text-white text-center font-bold mb-5"
>
ETF Symbols
</h1>
</div>
<span class="text-white text-md font-medium text-center flex justify-center items-center ">
<span
class="text-white text-md font-medium text-center flex justify-center items-center"
>
Collection of all ETF Symbols available
</span>
<!--
@ -101,13 +112,18 @@ $: charNumber = $screenWidth < 640 ? 15 : 40;
<svg class="w-6 h-6 inline-block ml-2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" fill="#000000"><g id="SVGRepo_bgCarrier" stroke-width="0"></g><g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g><g id="SVGRepo_iconCarrier"> <title></title> <g id="Complete"> <g id="info-circle"> <g> <circle cx="12" cy="12" data-name="--Circle" fill="none" id="_--Circle" r="10" stroke="#B46266" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"></circle> <line fill="none" stroke="#B46266" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" x1="12" x2="12" y1="12" y2="16"></line> <line fill="none" stroke="#B46266" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" x1="12" x2="12" y1="8" y2="8"></line> </g> </g> </g> </g></svg>
</label>
-->
</div>
<!-- End Column -->
<!-- Start Column -->
<div class="hidden sm:block relative m-auto mb-5 mt-5 sm:mb-0 sm:mt-0">
<svg class="w-40 -my-5" viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg">
<div
class="hidden sm:block relative m-auto mb-5 mt-5 sm:mb-0 sm:mt-0"
>
<svg
class="w-40 -my-5"
viewBox="0 0 200 200"
xmlns="http://www.w3.org/2000/svg"
>
<defs>
<filter id="glow">
<feGaussianBlur stdDeviation="5" result="glow" />
@ -117,30 +133,25 @@ $: charNumber = $screenWidth < 640 ? 15 : 40;
</feMerge>
</filter>
</defs>
<path fill="#1E40AF" d="M57.6,-58.7C72.7,-42.6,81.5,-21.3,82,0.5C82.5,22.3,74.7,44.6,59.7,60.1C44.6,75.6,22.3,84.3,0,84.3C-22.3,84.2,-44.6,75.5,-61.1,60.1C-77.6,44.6,-88.3,22.3,-87.6,0.7C-86.9,-20.8,-74.7,-41.6,-58.2,-57.7C-41.6,-73.8,-20.8,-85.2,0.2,-85.4C21.3,-85.6,42.6,-74.7,57.6,-58.7Z" transform="translate(100 100)" filter="url(#glow)" />
<path
fill="#1E40AF"
d="M57.6,-58.7C72.7,-42.6,81.5,-21.3,82,0.5C82.5,22.3,74.7,44.6,59.7,60.1C44.6,75.6,22.3,84.3,0,84.3C-22.3,84.2,-44.6,75.5,-61.1,60.1C-77.6,44.6,-88.3,22.3,-87.6,0.7C-86.9,-20.8,-74.7,-41.6,-58.2,-57.7C-41.6,-73.8,-20.8,-85.2,0.2,-85.4C21.3,-85.6,42.6,-74.7,57.6,-58.7Z"
transform="translate(100 100)"
filter="url(#glow)"
/>
</svg>
<div class="z-1 absolute top-0">
<img class="w-24 ml-9" src={logo} alt="logo" loading="lazy">
<img class="w-24 ml-9" src={logo} alt="logo" loading="lazy" />
</div>
</div>
<!-- End Column -->
</div>
</div>
<div class="w-full mt-10 m-auto mb-10 bg-[#09090B] pl-3 pr-3">
<!--Start Top Winners/Losers-->
<div class="flex flex-col justify-center items-center">
<div class="ml-4 text-start w-full text-white mb-2">
<span class="font-bold text-2xl">
{rawData?.length} ETFs
@ -150,59 +161,84 @@ $: charNumber = $screenWidth < 640 ? 15 : 40;
<div class="border-b mt-2 border-blue-400 w-full mb-4" />
<div class="w-full overflow-x-scroll">
<table class="mt-5 table table-sm table-compact rounded-none sm:rounded-md w-full bg-[#09090B] border-bg-[#09090B] m-auto">
<table
class="mt-5 table table-sm table-compact rounded-none sm:rounded-md w-full bg-[#09090B] border-bg-[#09090B] m-auto"
>
<thead>
<tr>
<th class="text-white font-medium text-sm sm:text-[1rem] text-start">Symbol</th>
<th class="text-white font-medium text-sm sm:text-[1rem]">Fund Name</th>
<th class="text-white font-medium text-end text-sm sm:text-[1rem]">Holdings</th>
<th class="text-white font-medium text-end text-sm sm:text-[1rem]">Total Assets</th>
<th
class="text-white font-medium text-sm sm:text-[1rem] text-start"
>Symbol</th
>
<th class="text-white font-medium text-sm sm:text-[1rem]"
>Fund Name</th
>
<th
class="text-white font-medium text-end text-sm sm:text-[1rem]"
>Holdings</th
>
<th
class="text-white font-medium text-end text-sm sm:text-[1rem]"
>Total Assets</th
>
</tr>
</thead>
<tbody>
{#each stockList as item, index}
<tr class="sm:hover:bg-[#245073] sm:hover:bg-opacity-[0.2] odd:bg-[#27272A] border-b-[#09090B]">
<td class="font-medium text-sm sm:text-[1rem] whitespace-nowrap border-b-[#09090B]">
<a href={"/etf/"+item?.symbol} class="sm:hover:text-white text-blue-400">
<tr
class="sm:hover:bg-[#245073] sm:hover:bg-opacity-[0.2] odd:bg-[#27272A] border-b-[#09090B]"
>
<td
class="font-medium text-sm sm:text-[1rem] whitespace-nowrap border-b-[#09090B]"
>
<a
href={"/etf/" + item?.symbol}
class="sm:hover:text-white text-blue-400"
>
{item?.symbol}
</a>
</td>
<td class="text-white whitespace-nowrap text-sm sm:text-[1rem] border-b-[#09090B]">
{item?.name?.length > charNumber ? item?.name?.slice(0,charNumber) + "..." : item?.name}
<td
class="text-white whitespace-nowrap text-sm sm:text-[1rem] border-b-[#09090B]"
>
{item?.name?.length > charNumber
? item?.name?.slice(0, charNumber) + "..."
: item?.name}
</td>
<td class="text-white text-end text-sm sm:text-[1rem] border-b-[#09090B]">
{item?.numberOfHoldings !== null ? abbreviateNumber(item?.numberOfHoldings) : '-'}
<td
class="text-white text-end text-sm sm:text-[1rem] border-b-[#09090B]"
>
{item?.numberOfHoldings !== null
? abbreviateNumber(item?.numberOfHoldings)
: "-"}
</td>
<td class="text-white whitespace-nowrap text-sm sm:text-[1rem] border-b-[#09090B] text-end">
{item?.totalAssets !== null ? abbreviateNumber(item?.totalAssets,true) : '-'}
<td
class="text-white whitespace-nowrap text-sm sm:text-[1rem] border-b-[#09090B] text-end"
>
{item?.totalAssets !== null
? abbreviateNumber(item?.totalAssets, true)
: "-"}
</td>
</tr>
{/each}
</tbody>
</table>
</div>
</div>
</div>
</main>
<aside class="hidden lg:block relative fixed w-1/4 ml-4">
{#if data?.user?.tier !== 'Pro' || data?.user?.freeTrial}
<div on:click={() => goto('/pricing')} class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer">
<div class="w-auto lg:w-full p-1 flex flex-col m-auto px-2 sm:px-0">
{#if data?.user?.tier !== "Pro" || data?.user?.freeTrial}
<div
on:click={() => goto("/pricing")}
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<div
class="w-auto lg:w-full p-1 flex flex-col m-auto px-2 sm:px-0"
>
<div class="w-full flex justify-between items-center p-3 mt-3">
<h2 class="text-start text-xl font-semibold text-white ml-3">
Pro Subscription 🔥
@ -216,7 +252,10 @@ $: charNumber = $screenWidth < 640 ? 15 : 40;
</div>
{/if}
<div on:click={() => goto('/analysts')} class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer">
<div
on:click={() => goto("/analysts")}
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<div class="w-auto lg:w-full p-1 flex flex-col m-auto px-2 sm:px-0">
<div class="w-full flex justify-between items-center p-3 mt-3">
<h2 class="text-start text-xl font-semibold text-white ml-3">
@ -230,7 +269,10 @@ $: charNumber = $screenWidth < 640 ? 15 : 40;
</div>
</div>
<div on:click={() => goto('/analysts/top-stocks')} class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer">
<div
on:click={() => goto("/analysts/top-stocks")}
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<div class="w-auto lg:w-full p-1 flex flex-col m-auto px-2 sm:px-0">
<div class="w-full flex justify-between items-center p-3 mt-3">
<h2 class="text-start text-xl font-semibold text-white ml-3">
@ -243,16 +285,8 @@ $: charNumber = $screenWidth < 640 ? 15 : 40;
</span>
</div>
</div>
</aside>
</div>
</div>
</div>
</section>

View File

@ -146,7 +146,7 @@
<aside class="hidden lg:block relative fixed w-1/4 ml-4">
{#if data?.user?.tier !== "Pro" || data?.user?.freeTrial}
<div
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<a
href={"/pricing"}
@ -166,7 +166,7 @@
{/if}
<div
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<a
href={"/analysts"}
@ -185,7 +185,7 @@
</div>
<div
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<a
href={"/politicians"}

View File

@ -222,7 +222,7 @@
<aside class="hidden lg:block relative fixed w-1/4 ml-4">
{#if data?.user?.tier !== "Pro" || data?.user?.freeTrial}
<div
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<a
href={"/pricing"}
@ -242,7 +242,7 @@
{/if}
<div
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<a
href={"/analysts"}
@ -261,7 +261,7 @@
</div>
<div
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<a
href={"/politicians"}

View File

@ -314,7 +314,7 @@
{#if data?.user?.tier !== "Pro" || data?.user?.freeTrial}
<div
on:click={() => goto("/pricing")}
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<div
class="w-auto lg:w-full p-1 flex flex-col m-auto px-2 sm:px-0"
@ -334,7 +334,7 @@
<div
on:click={() => goto("/analysts")}
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<div class="w-auto lg:w-full p-1 flex flex-col m-auto px-2 sm:px-0">
<div class="w-full flex justify-between items-center p-3 mt-3">
@ -351,7 +351,7 @@
<div
on:click={() => goto("/politicians")}
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<div class="w-auto lg:w-full p-1 flex flex-col m-auto px-2 sm:px-0">
<div class="w-full flex justify-between items-center p-3 mt-3">

View File

@ -1,37 +1,46 @@
<script>
import { numberOfUnreadNotification } from '$lib/store';
import { goto } from '$app/navigation';
import { numberOfUnreadNotification } from "$lib/store";
import { goto } from "$app/navigation";
import ArrowLogo from "lucide-svelte/icons/move-up-right";
const emailAddress = 'support@stocknear.com';
const emailAddress = "support@stocknear.com";
let cloudFrontUrl = import.meta.env.VITE_IMAGE_URL;
</script>
<svelte:head>
<title> {$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ''} Imprint · stocknear</title>
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""} Imprint
· stocknear</title
>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
<meta name="description" content="Imprint of Stocknear. Contact Information if you need help.">
<meta
name="description"
content="Imprint of Stocknear. Contact Information if you need help."
/>
<!-- Other meta tags -->
<meta property="og:title" content="Imprint · stocknear" />
<meta property="og:description" content="Imprint of Stocknear. Contact Information if you need help.">
<meta
property="og:description"
content="Imprint of Stocknear. Contact Information if you need help."
/>
<meta property="og:type" content="website" />
<!-- Add more Open Graph meta tags as needed -->
<!-- Twitter specific meta tags -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="Imprint · stocknear" />
<meta name="twitter:description" content="Imprint of Stocknear. Contact Information if you need help.">
<meta
name="twitter:description"
content="Imprint of Stocknear. Contact Information if you need help."
/>
<!-- Add more Twitter meta tags as needed -->
</svelte:head>
<section class="w-full max-w-3xl sm:max-w-screen-2xl overflow-hidden min-h-screen pt-5 pb-40">
<section
class="w-full max-w-3xl sm:max-w-screen-2xl overflow-hidden min-h-screen pt-5 pb-40"
>
<div class="text-sm sm:text-[1rem] breadcrumbs">
<ul>
<li><a href="/" class="text-gray-300">Home</a></li>
@ -39,27 +48,29 @@ import ArrowLogo from "lucide-svelte/icons/move-up-right";
</ul>
</div>
<div class="w-full overflow-hidden m-auto mt-5">
<div class="sm:p-0 flex justify-center w-full m-auto overflow-hidden">
<div class="relative flex justify-center items-start overflow-hidden w-full">
<div
class="relative flex justify-center items-start overflow-hidden w-full"
>
<main class="w-full lg:w-3/4 lg:pr-5">
<div class="w-full m-auto sm:bg-[#27272A] sm:rounded-xl h-auto pl-10 pr-10 pt-5 sm:pb-10 sm:pt-10 mt-3 mb-8">
<div
class="w-full m-auto sm:bg-[#27272A] sm:rounded-xl h-auto pl-10 pr-10 pt-5 sm:pb-10 sm:pt-10 mt-3 mb-8"
>
<div class="grid grid-cols-1 sm:grid-cols-2 gap-10">
<!-- Start Column -->
<div>
<div class="flex flex-row justify-center items-center">
<h1 class="text-3xl sm:text-4xl text-white text-center font-bold mb-5">
<h1
class="text-3xl sm:text-4xl text-white text-center font-bold mb-5"
>
Imprint
</h1>
</div>
<span class="text-white text-md font-medium text-center flex justify-center items-center ">
<span
class="text-white text-md font-medium text-center flex justify-center items-center"
>
because Germany loves bureaucracy
</span>
</div>
@ -67,7 +78,11 @@ import ArrowLogo from "lucide-svelte/icons/move-up-right";
<!-- Start Column -->
<div class="relative m-auto">
<svg class="w-40 -my-5" viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg">
<svg
class="w-40 -my-5"
viewBox="0 0 200 200"
xmlns="http://www.w3.org/2000/svg"
>
<defs>
<filter id="glow">
<feGaussianBlur stdDeviation="5" result="glow" />
@ -77,22 +92,30 @@ import ArrowLogo from "lucide-svelte/icons/move-up-right";
</feMerge>
</filter>
</defs>
<path fill="#1E40AF" d="M57.6,-58.7C72.7,-42.6,81.5,-21.3,82,0.5C82.5,22.3,74.7,44.6,59.7,60.1C44.6,75.6,22.3,84.3,0,84.3C-22.3,84.2,-44.6,75.5,-61.1,60.1C-77.6,44.6,-88.3,22.3,-87.6,0.7C-86.9,-20.8,-74.7,-41.6,-58.2,-57.7C-41.6,-73.8,-20.8,-85.2,0.2,-85.4C21.3,-85.6,42.6,-74.7,57.6,-58.7Z" transform="translate(100 100)" filter="url(#glow)" />
<path
fill="#1E40AF"
d="M57.6,-58.7C72.7,-42.6,81.5,-21.3,82,0.5C82.5,22.3,74.7,44.6,59.7,60.1C44.6,75.6,22.3,84.3,0,84.3C-22.3,84.2,-44.6,75.5,-61.1,60.1C-77.6,44.6,-88.3,22.3,-87.6,0.7C-86.9,-20.8,-74.7,-41.6,-58.2,-57.7C-41.6,-73.8,-20.8,-85.2,0.2,-85.4C21.3,-85.6,42.6,-74.7,57.6,-58.7Z"
transform="translate(100 100)"
filter="url(#glow)"
/>
</svg>
<div class="z-1 absolute top-4 left-4">
<img class="w-[70px] ml-5" src={cloudFrontUrl+"/assets/imprint_logo.png"} alt="logo" loading='lazy'>
<img
class="w-[70px] ml-5"
src={cloudFrontUrl + "/assets/imprint_logo.png"}
alt="logo"
loading="lazy"
/>
</div>
</div>
<!-- End Column -->
</div>
</div>
</div>
<div class="card w-full bg-[#09090B] border-t rounded-none sm:rounded-xl sm:border border-slate-700 m-auto ">
<div
class="card w-full bg-[#09090B] border-t rounded-none sm:rounded-xl sm:border border-slate-700 m-auto"
>
<div class="card-body">
<p class="text-white italic mb-2">
According to § 5 Telemediengesetz (TMG)
@ -100,47 +123,61 @@ import ArrowLogo from "lucide-svelte/icons/move-up-right";
<p class="text-white mb-5">
Stocknear GmbH
<br>
<br />
Am Lohgraben 30
<br>
<br />
57074 Siegen
<br>
Email: <a href={`mailto:${emailAddress}`} class="text-blue-400 hover:text-white hover:underline">{emailAddress}</a>.
<br>
<br>
Managing Director (<span class="italic">Geschäftsführer</span>): Muslem Rahimi
<br>
<br>
Registered in the commercial register at the local court at Siegen under: HRB 13800
<br>
<br />
Email:
<a
href={`mailto:${emailAddress}`}
class="text-blue-400 hover:text-white hover:underline"
>{emailAddress}</a
>.
<br />
<br />
Managing Director (<span class="italic">Geschäftsführer</span>):
Muslem Rahimi
<br />
<br />
Registered in the commercial register at the local court at Siegen
under: HRB 13800
<br />
VAT ID: DE366905061
</p>
<p class="text-white mb-5">
Responsible for the content according § 55 Abs. 2 RStV
<br>
<br />
Notice according to the Online Dispute Settlement Regulation
</p>
<p class="text-white mb-5">
Under applicable law, we are required to inform consumers of the existence of the European Online Dispute Resolution platform, which can be used to resolve disputes without having to go to court. The European Commission is responsible for setting up the platform. The European Online Dispute Resolution Platform can be found here:
<a target= "_blank" href="http://ec.europa.eu/odr">http://ec.europa.eu/odr.</a>
<br>
However, we would like to point out that we are not prepared to participate in the dispute resolution procedure within the framework of theEuropean Online Dispute Resolution Platform. To contact us, please use our above e-mail and phone number.
Under applicable law, we are required to inform consumers of the
existence of the European Online Dispute Resolution platform,
which can be used to resolve disputes without having to go to
court. The European Commission is responsible for setting up the
platform. The European Online Dispute Resolution Platform can be
found here:
<a target="_blank" href="http://ec.europa.eu/odr"
>http://ec.europa.eu/odr.</a
>
<br />
However, we would like to point out that we are not prepared to participate
in the dispute resolution procedure within the framework of theEuropean
Online Dispute Resolution Platform. To contact us, please use our
above e-mail and phone number.
</p>
<h1 class="text-white text-2xl text-start mb-5">
Notice in accordance with the Consumer Dispute Settlement Act (VSBG)
Notice in accordance with the Consumer Dispute Settlement Act
(VSBG)
</h1>
<p class="text-white mb-5">
We are not willing and obliged to participate in dispute resolution proceedings before a consumer arbitration board.
We are not willing and obliged to participate in dispute
resolution proceedings before a consumer arbitration board.
</p>
<h1 class="text-white text-2xl font-bold text-start mb-5">
Disclaimer - legal notice
</h1>
@ -149,46 +186,75 @@ import ArrowLogo from "lucide-svelte/icons/move-up-right";
</h1>
<p class="text-white mb-3 ml-2">
The free and freely accessible content of this website has been created with the greatest possible care, but the provider of this website does not guarantee the accuracy and timeliness of the free and freely accessible journalistic advice and news. Contributions identified by name reflect the opinion of the respective author and not always the opinion of the provider. Simply by calling up the free and freely accessible content, no contractual relationship is established between the user and the provider; in this respect, there is no intention on the part of the provider to be legally bound.
The free and freely accessible content of this website has been
created with the greatest possible care, but the provider of
this website does not guarantee the accuracy and timeliness of
the free and freely accessible journalistic advice and news.
Contributions identified by name reflect the opinion of the
respective author and not always the opinion of the provider.
Simply by calling up the free and freely accessible content, no
contractual relationship is established between the user and the
provider; in this respect, there is no intention on the part of
the provider to be legally bound.
</p>
<h1 class="text-white text-xl font-bold text-start mb-3 ml-2">
§ 2 External Links
</h1>
<p class="text-white mb-3 ml-2">
This website contains links to third-party websites ("external links"). These websites are subject to the liability of the respective operators. When the external links were first created, the provider checked the external content for any legal violations. At that time, no legal violations were apparent. The provider has no influence on the current and future design and content of the linked pages. The inclusion of external links does not imply that the provider adopts the content behind the reference or link as its own. A constant control of the external links is not reasonable for the provider without concrete evidence of violations. However, in the event of knowledge of legal violations, such external links will be deleted immediately.
This website contains links to third-party websites ("external
links"). These websites are subject to the liability of the
respective operators. When the external links were first
created, the provider checked the external content for any legal
violations. At that time, no legal violations were apparent. The
provider has no influence on the current and future design and
content of the linked pages. The inclusion of external links
does not imply that the provider adopts the content behind the
reference or link as its own. A constant control of the external
links is not reasonable for the provider without concrete
evidence of violations. However, in the event of knowledge of
legal violations, such external links will be deleted
immediately.
</p>
<h1 class="text-white text-xl font-bold text-start mb-3 ml-2">
§ 3 Copyrights and ancillary copyrights
</h1>
<p class="text-white mb-3 ml-2">
The content published on this website is subject to German copyright and ancillary copyright law. Any use not permitted by German copyright and ancillary copyright law requires the prior written consent of the provider or the respective copyright holder.
This applies in particular to the copying, editing, translation, storage, processing or reproduction of content in databases or other electronic media and systems. Contents and rights of third parties are marked as such. The unauthorized reproduction or transmission of individual content or complete pages is not permitted and is punishable by law. Only the production of copies and downloads for personal, private and non-commercial use is permitted. The display of this website in external frames is only permitted with written permission.
The content published on this website is subject to German
copyright and ancillary copyright law. Any use not permitted by
German copyright and ancillary copyright law requires the prior
written consent of the provider or the respective copyright
holder. This applies in particular to the copying, editing,
translation, storage, processing or reproduction of content in
databases or other electronic media and systems. Contents and
rights of third parties are marked as such. The unauthorized
reproduction or transmission of individual content or complete
pages is not permitted and is punishable by law. Only the
production of copies and downloads for personal, private and
non-commercial use is permitted. The display of this website in
external frames is only permitted with written permission.
</p>
<h1 class="text-white text-xl font-bold text-start mb-3 ml-2">
§ 4 Special conditions of use
</h1>
<p class="text-white mb-3 ml-2">
Insofar as special conditions for individual uses of this website deviate from the aforementioned paragraphs, this will be expressly pointed out at the appropriate place. In this case, the special conditions of use shall apply in the respective individual case.
Insofar as special conditions for individual uses of this
website deviate from the aforementioned paragraphs, this will be
expressly pointed out at the appropriate place. In this case,
the special conditions of use shall apply in the respective
individual case.
</p>
</div>
</div>
</main>
<aside class="hidden lg:block relative fixed w-1/4 ml-4">
<div on:click={() => goto('/pricing')} class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer">
<div
on:click={() => goto("/pricing")}
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<div class="w-auto lg:w-full p-1 flex flex-col m-auto px-2 sm:px-0">
<div class="w-full flex justify-between items-center p-3 mt-3">
<h2 class="text-start text-xl font-semibold text-white ml-3">
@ -202,7 +268,10 @@ import ArrowLogo from "lucide-svelte/icons/move-up-right";
</div>
</div>
<div on:click={() => goto('/donation')} class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer">
<div
on:click={() => goto("/donation")}
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<div class="w-auto lg:w-full p-1 flex flex-col m-auto px-2 sm:px-0">
<div class="w-full flex justify-between items-center p-3 mt-3">
<h2 class="text-start text-xl font-semibold text-white ml-3">
@ -216,7 +285,10 @@ import ArrowLogo from "lucide-svelte/icons/move-up-right";
</div>
</div>
<div on:click={() => goto('/contact')} class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer">
<div
on:click={() => goto("/contact")}
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<div class="w-auto lg:w-full p-1 flex flex-col m-auto px-2 sm:px-0">
<div class="w-full flex justify-between items-center p-3 mt-3">
<h2 class="text-start text-xl font-semibold text-white ml-3">
@ -229,15 +301,8 @@ import ArrowLogo from "lucide-svelte/icons/move-up-right";
</span>
</div>
</div>
</aside>
</div>
</div>
</div>
</section>

View File

@ -369,7 +369,7 @@
<aside class="hidden lg:block relative fixed w-1/4 ml-4">
{#if data?.user?.tier !== "Pro" || data?.user?.freeTrial}
<div
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<a
href="/pricing"
@ -389,7 +389,7 @@
{/if}
<div
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<a
href="/sentiment-tracker"
@ -428,7 +428,7 @@
</div>
<div
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<a
href="/reddit-tracker"

View File

@ -195,7 +195,7 @@
{#if data?.user?.tier !== "Pro" || data?.user?.freeTrial}
<div
on:click={() => goto("/pricing")}
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<div
class="w-auto lg:w-full p-1 flex flex-col m-auto px-2 sm:px-0"
@ -215,7 +215,7 @@
<div
on:click={() => goto("/analysts")}
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<div class="w-auto lg:w-full p-1 flex flex-col m-auto px-2 sm:px-0">
<div class="w-full flex justify-between items-center p-3 mt-3">
@ -232,7 +232,7 @@
<div
on:click={() => goto("/politicians")}
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<div class="w-auto lg:w-full p-1 flex flex-col m-auto px-2 sm:px-0">
<div class="w-full flex justify-between items-center p-3 mt-3">

View File

@ -265,7 +265,7 @@
<aside class="hidden lg:block relative fixed w-1/4 -mt-4">
{#if data?.user?.tier !== "Pro" || data?.user?.freeTrial}
<div
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<a
href={"/pricing"}
@ -285,7 +285,7 @@
{/if}
<div
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<a
href={"/watchlist/stocks"}
@ -304,7 +304,7 @@
</div>
<div
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<a
href={"/stock-screener"}

View File

@ -168,18 +168,8 @@
}
}
function selectTimeInterval(event) {
timePeriod =
event.target.value === "oneDay"
? "1D"
: event.target.value === "oneWeek"
? "1W"
: event.target.value === "oneMonth"
? "1M"
: event.target.value === "threeMonths"
? "3M"
: "6M";
function selectTimeInterval(state) {
timePeriod = state;
if (buttonText === "Top Winners") {
gainerLoserActive = outputList?.gainers[timePeriod];
} else if (buttonText === "Top Losers") {
@ -317,11 +307,11 @@
</svelte:head>
<section
class="w-full max-w-3xl sm:max-w-screen-2xl overflow-hidden min-h-screen pt-5 pb-40 lg:px-3"
class="w-full max-w-screen-2xl overflow-hidden min-h-screen pt-5 px-4 lg:px-3"
>
<div class="text-sm sm:text-[1rem] breadcrumbs ml-4">
<div class="text-sm sm:text-[1rem] breadcrumbs">
<ul>
<li><a href="/" class="text-gray-300">Home</a></li>
<li class=""><a href="/" class="text-gray-300">Home</a></li>
<li class="text-gray-300">Market Movers</li>
</ul>
</div>
@ -332,72 +322,17 @@
class="relative flex justify-center items-start overflow-hidden w-full"
>
<main class="w-full lg:w-3/4 lg:pr-5">
<div
class="w-full m-auto sm:bg-[#27272A] h-auto pl-10 pr-10 pt-5 sm:pb-10 sm:pt-10 mt-3 mb-8"
>
<div class="grid grid-cols-1 sm:grid-cols-2 gap-10">
<!-- Start Column -->
<div>
<div class="flex flex-row justify-center items-center">
<h1
class="text-3xl sm:text-4xl text-white text-center font-bold mb-5"
>
<h1 class="mb-6 text-white text-2xl sm:text-3xl font-bold">
Market Movers
</h1>
</div>
<span
class="hidden sm:block text-white text-md font-semibold text-center flex justify-center items-center"
>
Explore top-performing, underperforming & most active traded
stocks across different time frames.
</span>
</div>
<!-- End Column -->
<!-- Start Column -->
<div
class="hidden sm:block relative m-auto mb-5 mt-5 md:mb-0 md:mt-0"
>
<svg
class="w-32 -my-4"
viewBox="0 0 200 200"
xmlns="http://www.w3.org/2000/svg"
>
<defs>
<filter id="glow">
<feGaussianBlur stdDeviation="5" result="glow" />
<feMerge>
<feMergeNode in="glow" />
<feMergeNode in="SourceGraphic" />
</feMerge>
</filter>
</defs>
<path
fill="#1E40AF"
d="M57.6,-58.7C72.7,-42.6,81.5,-21.3,82,0.5C82.5,22.3,74.7,44.6,59.7,60.1C44.6,75.6,22.3,84.3,0,84.3C-22.3,84.2,-44.6,75.5,-61.1,60.1C-77.6,44.6,-88.3,22.3,-87.6,0.7C-86.9,-20.8,-74.7,-41.6,-58.2,-57.7C-41.6,-73.8,-20.8,-85.2,0.2,-85.4C21.3,-85.6,42.6,-74.7,57.6,-58.7Z"
transform="translate(100 100)"
filter="url(#glow)"
/>
</svg>
<div class="z-1 absolute -top-3 right-1">
<img class="w-28" src={logo} alt="logo" loading="lazy" />
</div>
</div>
<!-- End Column -->
</div>
</div>
{#if isLoaded}
<div
class="sm:hidden text-white text-xs sm:text-sm pb-5 sm:pb-2 pl-3 sm:pl-0"
>
<div class="sm:hidden text-white text-xs sm:text-sm pb-5 sm:pb-2">
Stock Indexes - {getCurrentDateFormatted()}
</div>
<div
class="w-full sm:hidden -mt-4 sm:mt-0 mb-8 m-auto flex justify-start sm:justify-center items-center p-3 sm:p-0"
class="w-full sm:hidden -mt-4 sm:mt-0 mb-8 m-auto flex justify-start sm:justify-center items-center pb-3 sm:pb-0"
>
<div
class="w-full grid grid-cols-2 md:grid-cols-3 gap-y-3 gap-x-3"
@ -429,60 +364,88 @@
</div>
</div>
<div
class="w-full m-auto mb-10 sm:mb-5 bg-[#09090B] pl-3 pr-3 sm:pl-0 sm:pr-0"
<nav class="border-b-[2px] overflow-x-scroll whitespace-nowrap">
<ul
class="flex flex-row items-center w-full text-[1rem] sm:text-lg text-white"
>
<div
class="bg-[#313131] w-fit relative m-auto sm:m-0 sm:mr-auto flex sm:flex-wrap items-center justify-center rounded-lg p-1 -mt-3"
<li
on:click={() => changeSection(0)}
class="p-2 px-5 cursor-pointer {activeIdx === 0
? 'text-white bg-[#27272A] sm:hover:bg-opacity-[0.95]'
: 'text-gray-400 sm:hover:text-white sm:hover:bg-[#27272A] sm:hover:bg-opacity-[0.95]'}"
>
{#each tabs as item, i}
<label
on:click={() => changeSection(i)}
class="cursor-pointer group relative z-[1] rounded-full px-6 py-1 {activeIdx ===
i
? 'z-0'
: ''} "
Gainers
</li>
<li
on:click={() => changeSection(1)}
class="p-2 px-5 cursor-pointer {activeIdx === 1
? 'text-white bg-[#27272A] sm:hover:bg-opacity-[0.95]'
: 'text-gray-400 sm:hover:text-white sm:hover:bg-[#27272A] sm:hover:bg-opacity-[0.95]'}"
>
{#if activeIdx === i}
<div
class="absolute inset-0 rounded-lg bg-purple-600"
></div>
{/if}
<span
class="relative text-[1rem] sm:text-lg block font-semibold duration-200 text-white"
Losers
</li>
<li
on:click={() => changeSection(2)}
class="p-2 px-5 cursor-pointer {activeIdx === 2
? 'text-white bg-[#27272A] sm:hover:bg-opacity-[0.95]'
: 'text-gray-400 sm:hover:text-white sm:hover:bg-[#27272A] sm:hover:bg-opacity-[0.95]'}"
>
{item.title}
</span>
</label>
{/each}
</div>
</div>
Active
</li>
</ul>
</nav>
<nav class="mb-3 pt-1 overflow-x-scroll whitespace-nowrap">
<ul
class="flex flex-row items-center w-full text-sm sm:text-[1rem] text-white"
>
<li
on:click={() => selectTimeInterval("1D")}
class="p-2 px-5 cursor-pointer {timePeriod === '1D'
? 'text-white bg-[#27272A] sm:hover:bg-opacity-[0.95]'
: 'text-gray-400 sm:hover:text-white sm:hover:bg-[#27272A] sm:hover:bg-opacity-[0.95]'}"
>
Today
</li>
<li
on:click={() => selectTimeInterval("1W")}
class="p-2 px-5 cursor-pointer {timePeriod === '1W'
? 'text-white bg-[#27272A] sm:hover:bg-opacity-[0.95]'
: 'text-gray-400 sm:hover:text-white sm:hover:bg-[#27272A] sm:hover:bg-opacity-[0.95]'}"
>
Week
</li>
<li
on:click={() => selectTimeInterval("1M")}
class="p-2 px-5 cursor-pointer {timePeriod === '1M'
? 'text-white bg-[#27272A] sm:hover:bg-opacity-[0.95]'
: 'text-gray-400 sm:hover:text-white sm:hover:bg-[#27272A] sm:hover:bg-opacity-[0.95]'}"
>
Month
</li>
<li
on:click={() => selectTimeInterval("3M")}
class="p-2 px-5 cursor-pointer {timePeriod === '3M'
? 'text-white bg-[#27272A] sm:hover:bg-opacity-[0.95]'
: 'text-gray-400 sm:hover:text-white sm:hover:bg-[#27272A] sm:hover:bg-opacity-[0.95]'}"
>
3 Months
</li>
<li
on:click={() => selectTimeInterval("6M")}
class="p-2 px-5 cursor-pointer {timePeriod === '6M'
? 'text-white bg-[#27272A] sm:hover:bg-opacity-[0.95]'
: 'text-gray-400 sm:hover:text-white sm:hover:bg-[#27272A] sm:hover:bg-opacity-[0.95]'}"
>
6 Months
</li>
</ul>
</nav>
<!--Start Top Winners/Losers-->
<div
class="flex flex-col justify-center items-center overflow-hidden"
class="flex flex-col justify-center items-center overflow-hidden mt-10"
>
<div
class="w-full flex justify-start sm:justify-end items-center mb-10 ml-5 sm:ml-0"
>
<div class="relative flex flex-col items-start">
<span class="sm:hidden text-white text-sm mb-3">
Time Period:
</span>
<select
class="w-32 text-white select select-bordered select-sm p-0 pl-5 overflow-y-auto bg-[#2A303C]"
on:change={selectTimeInterval}
>
<option disabled>Choose a time period</option>
<option value="oneDay" selected>1 Day</option>
<option value="oneWeek">1 Week</option>
<option value="oneMonth">1 Month</option>
<option value="threeMonths">3 Months</option>
<option value="sixMonths">6 Months</option>
</select>
</div>
</div>
<div class="w-full overflow-x-scroll no-scrollbar">
<table
class="table table-sm table-compact rounded-none sm:rounded-md w-full bg-[#09090B] border-bg-[#09090B]"
@ -562,7 +525,7 @@
<div class="flex justify-center items-center h-80">
<div class="relative">
<label
class="bg-[#09090B] rounded-lg h-14 w-14 flex justify-center items-center absolute top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2"
class="bg-[#09090B] rounded-md h-14 w-14 flex justify-center items-center absolute top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2"
>
<span class="loading loading-spinner loading-md text-gray-400"
></span>
@ -575,7 +538,7 @@
<aside class="hidden lg:block relative fixed w-1/4 ml-4">
{#if data?.user?.tier !== "Pro" || data?.user?.freeTrial}
<div
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<a
href={"/pricing"}
@ -583,7 +546,7 @@
>
<div class="w-full flex justify-between items-center p-3 mt-3">
<h2 class="text-start text-xl font-semibold text-white ml-3">
Pro Subscription 🔥
Pro Subscription
</h2>
<ArrowLogo class="w-8 h-8 mr-3 flex-shrink-0" />
</div>
@ -595,7 +558,7 @@
{/if}
<div
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<a
href={"/analysts"}
@ -603,7 +566,7 @@
>
<div class="w-full flex justify-between items-center p-3 mt-3">
<h2 class="text-start text-xl font-semibold text-white ml-3">
Top Analyst 📊
Top Analyst
</h2>
<ArrowLogo class="w-8 h-8 mr-3 flex-shrink-0" />
</div>
@ -614,7 +577,7 @@
</div>
<div
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<a
href={"/politicians"}
@ -622,7 +585,7 @@
>
<div class="w-full flex justify-between items-center p-3 mt-3">
<h2 class="text-start text-xl font-semibold text-white ml-3">
Congress Trading 🇺🇸
Congress Trading
</h2>
<ArrowLogo class="w-8 h-8 mr-3 flex-shrink-0" />
</div>

View File

@ -139,7 +139,7 @@
<aside class="hidden lg:block relative fixed w-1/4 ml-4">
{#if data?.user?.tier !== "Pro" || data?.user?.freeTrial}
<div
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<a
href={"/pricing"}
@ -159,7 +159,7 @@
{/if}
<div
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<a
href={"/earnings-calendar"}
@ -178,7 +178,7 @@
</div>
<div
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<a
href={"/dividends-calendar"}
@ -197,7 +197,7 @@
</div>
<div
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<a
href={"/economic-calendar"}

View File

@ -303,7 +303,7 @@
{#if data?.user?.tier !== "Pro" || data?.user?.freeTrial}
<div
on:click={() => goto("/pricing")}
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<div
class="w-auto lg:w-full p-1 flex flex-col m-auto px-2 sm:px-0"
@ -323,7 +323,7 @@
<div
on:click={() => goto("/cramer-tracker")}
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<div class="w-auto lg:w-full p-1 flex flex-col m-auto px-2 sm:px-0">
<div class="w-full flex justify-between items-center p-3 mt-3">
@ -340,7 +340,7 @@
<div
on:click={() => goto("/reddit-tracker")}
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<div class="w-auto lg:w-full p-1 flex flex-col m-auto px-2 sm:px-0">
<div class="w-full flex justify-between items-center p-3 mt-3">

View File

@ -11,7 +11,7 @@ export const load = async ({ locals, setHeaders }) => {
});
let output = await response.json();
output = user?.tier !== "Pro" ? output?.slice(0, 6) : output;
output = user?.tier !== "Pro" ? output?.reverse()?.slice(0, 6) : output;
setHeaders({ "cache-control": "public, max-age=3000" });

View File

@ -35,7 +35,7 @@
});
let columns = [
{ key: "rank", label: "#", align: "right" },
{ key: "rank", label: "Rank", align: "right" },
{ key: "symbol", label: "Symbol", align: "left" },
{ key: "name", label: "Name", align: "left" },
{ key: "shortRatio", label: "Short Ratio", align: "right" },
@ -157,9 +157,9 @@
</svelte:head>
<section
class="w-full max-w-3xl sm:max-w-screen-2xl overflow-hidden min-h-screen pt-5 pb-40 lg:px-3"
class="w-full max-w-screen-2xl overflow-hidden min-h-screen pt-5 px-4 lg:px-3"
>
<div class="text-sm sm:text-[1rem] breadcrumbs ml-4">
<div class="text-sm sm:text-[1rem] breadcrumbs">
<ul>
<li><a href="/" class="text-gray-300">Home</a></li>
<li class="text-gray-300">Top Shorted Stocks</li>
@ -172,72 +172,20 @@
class="relative flex justify-center items-start overflow-hidden w-full"
>
<main class="w-full lg:w-3/4 lg:pr-5">
<div
class="w-full m-auto sm:bg-[#27272A] sm:rounded-xl h-auto pl-10 pr-10 pt-5 sm:pb-10 sm:pt-10 mt-3 mb-8"
>
<div class="grid grid-cols-1 sm:grid-cols-2 gap-10">
<!-- Start Column -->
<div>
<div class="flex flex-row justify-center items-center">
<h1
class="text-3xl sm:text-4xl text-white text-center font-bold mb-5"
>
Shorted Stocks
<div class="mb-6 border-b-[3px]">
<h1 class="mb-1 text-white text-2xl sm:text-3xl font-bold">
Top Shorted Stocks
</h1>
</div>
<span
class="text-white text-md font-medium text-center flex justify-center items-center"
>
High short interest stocks are often volatile, known for
sudden price surges called short squeezes.
</span>
</div>
<!-- End Column -->
<!-- Start Column -->
<div
class="hidden sm:block relative m-auto mb-5 mt-5 sm:mb-0 sm:mt-0"
>
<svg
class="w-40 -my-5"
viewBox="0 0 200 200"
xmlns="http://www.w3.org/2000/svg"
>
<defs>
<filter id="glow">
<feGaussianBlur stdDeviation="5" result="glow" />
<feMerge>
<feMergeNode in="glow" />
<feMergeNode in="SourceGraphic" />
</feMerge>
</filter>
</defs>
<path
fill="#1E40AF"
d="M57.6,-58.7C72.7,-42.6,81.5,-21.3,82,0.5C82.5,22.3,74.7,44.6,59.7,60.1C44.6,75.6,22.3,84.3,0,84.3C-22.3,84.2,-44.6,75.5,-61.1,60.1C-77.6,44.6,-88.3,22.3,-87.6,0.7C-86.9,-20.8,-74.7,-41.6,-58.2,-57.7C-41.6,-73.8,-20.8,-85.2,0.2,-85.4C21.3,-85.6,42.6,-74.7,57.6,-58.7Z"
transform="translate(100 100)"
filter="url(#glow)"
/>
</svg>
<div class="z-1 absolute -top-3">
<img
class="w-28 ml-6"
src={cloudFrontUrl + "/assets/short_logo.png"}
alt="logo"
loading="lazy"
/>
</div>
</div>
<!-- End Column -->
</div>
<p class="mb-3 px-1 text-base font-semibold text-muted sm:px-0">
High short-interest stocks are volatile and prone to short
squeezes.
</p>
</div>
{#if isLoaded}
<div class="w-screen sm:w-full m-auto mt-20 sm:mt-10">
<div class="w-full m-auto mt-20 sm:mt-10">
<div
class="w-screen sm:w-full m-auto rounded-none sm:rounded-lg mb-4 overflow-x-scroll sm:overflow-hidden"
class="w-full m-auto rounded-none sm:rounded-lg mb-4 overflow-x-scroll sm:overflow-hidden"
>
<table
class="table table-sm table-compact rounded-none sm:rounded-md w-full bg-[#09090B] border-bg-[#09090B] m-auto"
@ -255,7 +203,7 @@
: ''}"
>
<td
class="text-white text-sm sm:text-[1rem] font-medium text-white text-end"
class="text-white text-sm sm:text-[1rem] font-medium text-white text-center"
>
{item?.rank}
</td>
@ -307,10 +255,6 @@
</tbody>
</table>
</div>
<UpgradeToPro
{data}
title="Get the most shorted stocks on the market to never miss out the next short squeeze"
/>
</div>
{:else}
<div class="flex justify-center items-center h-80">
@ -324,11 +268,17 @@
</div>
</div>
{/if}
{#if isLoaded}
<UpgradeToPro
{data}
title="Get stock forecasts from Wall Street's highest rated professionals"
/>
{/if}
</main>
<aside class="hidden lg:block relative fixed w-1/4 ml-4">
{#if data?.user?.tier !== "Pro" || data?.user?.freeTrial}
<div
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<a
href={"/pricing"}
@ -336,7 +286,7 @@
>
<div class="w-full flex justify-between items-center p-3 mt-3">
<h2 class="text-start text-xl font-semibold text-white ml-3">
Pro Subscription 🔥
Pro Subscription
</h2>
<ArrowLogo class="w-8 h-8 mr-3 flex-shrink-0" />
</div>
@ -348,7 +298,7 @@
{/if}
<div
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<a
href={"/analysts"}
@ -356,7 +306,7 @@
>
<div class="w-full flex justify-between items-center p-3 mt-3">
<h2 class="text-start text-xl font-semibold text-white ml-3">
Top Analyst 📊
Top Analyst
</h2>
<ArrowLogo class="w-8 h-8 mr-3 flex-shrink-0" />
</div>
@ -367,7 +317,7 @@
</div>
<div
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<a
href={"/analysts/top-stocks"}
@ -375,7 +325,7 @@
>
<div class="w-full flex justify-between items-center p-3 mt-3">
<h2 class="text-start text-xl font-semibold text-white ml-3">
Top Stocks Picks
Top Stocks Picks
</h2>
<ArrowLogo class="w-8 h-8 mr-3 flex-shrink-0" />
</div>

View File

@ -657,7 +657,7 @@
<aside class="hidden lg:block relative fixed w-1/4 ml-4">
{#if data?.user?.tier !== "Pro" || data?.user?.freeTrial}
<div
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<a
href={"/pricing"}
@ -677,7 +677,7 @@
{/if}
<div
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<a
href={"/analysts"}
@ -696,7 +696,7 @@
</div>
<div
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<a
href={"/politicians"}

View File

@ -565,7 +565,7 @@
{#if data?.user?.tier !== "Pro" || data?.user?.freeTrial}
<div
on:click={() => goto("/pricing")}
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<div
class="w-auto lg:w-full p-1 flex flex-col m-auto px-2 sm:px-0"
@ -584,7 +584,7 @@
{/if}
<div
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<a
href={"/watchlist/stocks"}
@ -603,7 +603,7 @@
</div>
<div
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<a
href={"/stock-screener"}

View File

@ -1,16 +1,16 @@
<script>
import logo from '$lib/images/privacy_policy_logo_v2.png';
import { numberOfUnreadNotification } from '$lib/store';
import { goto } from '$app/navigation';
import logo from "$lib/images/privacy_policy_logo_v2.png";
import { numberOfUnreadNotification } from "$lib/store";
import { goto } from "$app/navigation";
import ArrowLogo from "lucide-svelte/icons/move-up-right";
const emailAddress = 'support@stocknear.com';
const emailAddress = "support@stocknear.com";
</script>
<svelte:head>
<title> {$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ''} Privacy Policy · stocknear</title>
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""} Privacy
Policy · stocknear</title
>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
@ -25,11 +25,9 @@ import ArrowLogo from "lucide-svelte/icons/move-up-right";
<!-- Add more Twitter meta tags as needed -->
</svelte:head>
<section class="w-full max-w-3xl sm:max-w-screen-2xl overflow-hidden min-h-screen pt-5 pb-40">
<section
class="w-full max-w-3xl sm:max-w-screen-2xl overflow-hidden min-h-screen pt-5 pb-40"
>
<div class="text-sm sm:text-[1rem] breadcrumbs">
<ul>
<li><a href="/" class="text-gray-300">Home</a></li>
@ -37,27 +35,29 @@ import ArrowLogo from "lucide-svelte/icons/move-up-right";
</ul>
</div>
<div class="w-full overflow-hidden m-auto mt-5">
<div class="sm:p-0 flex justify-center w-full m-auto overflow-hidden">
<div class="relative flex justify-center items-start overflow-hidden w-full">
<div
class="relative flex justify-center items-start overflow-hidden w-full"
>
<main class="w-full lg:w-3/4 lg:pr-5">
<div class="w-full m-auto sm:bg-[#27272A] sm:rounded-xl h-auto pl-10 pr-10 pt-5 sm:pb-10 sm:pt-10 mt-3 mb-8">
<div
class="w-full m-auto sm:bg-[#27272A] sm:rounded-xl h-auto pl-10 pr-10 pt-5 sm:pb-10 sm:pt-10 mt-3 mb-8"
>
<div class="grid grid-cols-1 sm:grid-cols-2 gap-10">
<!-- Start Column -->
<div>
<div class="flex flex-row justify-center items-center">
<h1 class="text-3xl sm:text-4xl text-white text-center font-bold mb-5">
<h1
class="text-3xl sm:text-4xl text-white text-center font-bold mb-5"
>
Privacy Policy
</h1>
</div>
<span class="text-white text-md font-medium text-center flex justify-center items-center ">
<span
class="text-white text-md font-medium text-center flex justify-center items-center"
>
We don't sell data; we're not a garage sale like Facebook!
</span>
</div>
@ -65,7 +65,11 @@ import ArrowLogo from "lucide-svelte/icons/move-up-right";
<!-- Start Column -->
<div class="relative m-auto">
<svg class="w-40 -my-5" viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg">
<svg
class="w-40 -my-5"
viewBox="0 0 200 200"
xmlns="http://www.w3.org/2000/svg"
>
<defs>
<filter id="glow">
<feGaussianBlur stdDeviation="5" result="glow" />
@ -75,190 +79,262 @@ import ArrowLogo from "lucide-svelte/icons/move-up-right";
</feMerge>
</filter>
</defs>
<path fill="#1E40AF" d="M57.6,-58.7C72.7,-42.6,81.5,-21.3,82,0.5C82.5,22.3,74.7,44.6,59.7,60.1C44.6,75.6,22.3,84.3,0,84.3C-22.3,84.2,-44.6,75.5,-61.1,60.1C-77.6,44.6,-88.3,22.3,-87.6,0.7C-86.9,-20.8,-74.7,-41.6,-58.2,-57.7C-41.6,-73.8,-20.8,-85.2,0.2,-85.4C21.3,-85.6,42.6,-74.7,57.6,-58.7Z" transform="translate(100 100)" filter="url(#glow)" />
<path
fill="#1E40AF"
d="M57.6,-58.7C72.7,-42.6,81.5,-21.3,82,0.5C82.5,22.3,74.7,44.6,59.7,60.1C44.6,75.6,22.3,84.3,0,84.3C-22.3,84.2,-44.6,75.5,-61.1,60.1C-77.6,44.6,-88.3,22.3,-87.6,0.7C-86.9,-20.8,-74.7,-41.6,-58.2,-57.7C-41.6,-73.8,-20.8,-85.2,0.2,-85.4C21.3,-85.6,42.6,-74.7,57.6,-58.7Z"
transform="translate(100 100)"
filter="url(#glow)"
/>
</svg>
<div class="z-1 absolute top-5">
<img class="w-24 ml-7" src={logo} alt="logo">
<img class="w-24 ml-7" src={logo} alt="logo" />
</div>
</div>
<!-- End Column -->
</div>
</div>
</div>
<div class="card w-full bg-[#09090B] border-t sm:border rounded-none sm:rounded-xl border-slate-700 m-auto ">
<div
class="card w-full bg-[#09090B] border-t sm:border rounded-none sm:rounded-xl border-slate-700 m-auto"
>
<div class="card-body">
<p class="text-gray-400 italic mb-2 text-sm">Last updated: 22.06.2023</p>
<p class="text-gray-300 mb-5">
Stocknear (the "website" or "site") respects your privacy.
This privacy statement describes what information and data we collect from you and how we use it.
Please read the whole privacy policy as well as our
<a href="/terms-of-use" class="text-blue-400 hover:underline hover:text-white">Terms of use</a>
The use of our website is generally possible without providing personal data. Insofar as personal data (for example name, address or e-mail addresses) is collected on our pages, this is always done, as far as possible, on a voluntary basis. This data will not be passed on to third parties without your express consent.
We point out that data transmission over the Internet (e.g. communication by e-mail) security gaps. A complete protection of data against access by third parties is not possible.
The use of contact data published within the framework of the imprint obligation by third parties for the purpose of sending unsolicited advertising and information material is hereby expressly prohibited. The operators of the pages expressly reserve the right to take legal action in the event of the unsolicited sending of advertising information, such as spam e-mails.
<p class="text-gray-400 italic mb-2 text-sm">
Last updated: 22.06.2023
</p>
<p class="text-gray-300 mb-5">
Stocknear (the "website" or "site") respects your privacy. This
privacy statement describes what information and data we collect
from you and how we use it. Please read the whole privacy policy
as well as our
<a
href="/terms-of-use"
class="text-blue-400 hover:underline hover:text-white"
>Terms of use</a
>
The use of our website is generally possible without providing personal
data. Insofar as personal data (for example name, address or e-mail
addresses) is collected on our pages, this is always done, as far
as possible, on a voluntary basis. This data will not be passed on
to third parties without your express consent. We point out that
data transmission over the Internet (e.g. communication by e-mail)
security gaps. A complete protection of data against access by third
parties is not possible. The use of contact data published within
the framework of the imprint obligation by third parties for the
purpose of sending unsolicited advertising and information material
is hereby expressly prohibited. The operators of the pages expressly
reserve the right to take legal action in the event of the unsolicited
sending of advertising information, such as spam e-mails.
</p>
<h1 class="text-white text-2xl font-medium text-start underline">
Cookies
</h1>
<p class="text-gray-300">
Cookies are used by us.
By visiting stocknear.com, you accepted to use cookies in accordance with the stocknear Privacy Policy.
Most interactive websites employ cookies to allow us to retrieve the user's information for each visit.
Cookies are used by our website to facilitate the functionality of specific areas, making it easier for visitors.
Cookies are used by us. By visiting stocknear.com, you accepted
to use cookies in accordance with the stocknear Privacy Policy.
Most interactive websites employ cookies to allow us to retrieve
the user's information for each visit. Cookies are used by our
website to facilitate the functionality of specific areas,
making it easier for visitors.
</p>
<h1 class="text-white text-2xl font-medium text-start mt-5 underline">
<h1
class="text-white text-2xl font-medium text-start mt-5 underline"
>
Links to other Sites
</h1>
<div class="text-gray-300">
Our Service may contain connections to websites that we do not control. When you click on a third-party link, you will be sent to that third-party's website. We strongly recommend that you read the Privacy Policies of any website you visit.
<br>
<br>
We have no control over, and accept no responsibility for, any third-party website or services' content, privacy policies, or practices.
Our Service may contain connections to websites that we do not
control. When you click on a third-party link, you will be sent
to that third-party's website. We strongly recommend that you
read the Privacy Policies of any website you visit.
<br />
<br />
We have no control over, and accept no responsibility for, any third-party
website or services' content, privacy policies, or practices.
</div>
<h1 class="text-white text-2xl font-medium text-start mt-5 underline">
<h1
class="text-white text-2xl font-medium text-start mt-5 underline"
>
Security of Data
</h1>
<div class="text-gray-300">
We care about the security of your data, but keep in mind that no form of Internet transmission or electronic storage is completely safe. While we endeavor to protect your Personal Data using commercially acceptable techniques, we cannot guarantee its ultimate security.
We care about the security of your data, but keep in mind that
no form of Internet transmission or electronic storage is
completely safe. While we endeavor to protect your Personal Data
using commercially acceptable techniques, we cannot guarantee
its ultimate security.
</div>
<h1 class="text-white text-2xl font-medium text-start mt-5 underline">
Your Data Protection Rights Under General Data Protection Regulation (GDPR)
<h1
class="text-white text-2xl font-medium text-start mt-5 underline"
>
Your Data Protection Rights Under General Data Protection
Regulation (GDPR)
</h1>
<div class="text-gray-300">
If you are a resident of the European Union (EU) and European Economic Area (EEA), you have certain data protection rights, covered by GDPR.
<br>
<br>
We aim to take reasonable steps to allow you to correct, amend, delete, or limit the use of your Personal Data.
If you are a resident of the European Union (EU) and European
Economic Area (EEA), you have certain data protection rights,
covered by GDPR.
<br />
<br />
We aim to take reasonable steps to allow you to correct, amend, delete,
or limit the use of your Personal Data.
<br>
<br>
If you wish to be informed what Personal Data we hold about you and if you want it to be removed from our systems, please email us at
<a href={`mailto:${emailAddress}`} class="text-blue-400 hover:text-white hover:underline">{emailAddress}</a>.
<br />
<br />
If you wish to be informed what Personal Data we hold about you and
if you want it to be removed from our systems, please email us at
<a
href={`mailto:${emailAddress}`}
class="text-blue-400 hover:text-white hover:underline"
>{emailAddress}</a
>.
<br>
<br>
In certain circumstances, you have the following data protection rights:
<br />
<br />
In certain circumstances, you have the following data protection
rights:
<ol class="list-decimal ml-8 mt-2">
<li>
The right to access, update or to delete the information we have on you
The right to access, update or to delete the information we
have on you
</li>
<li>
The right of rectification. You have the right to have your information rectified if that information is inaccurate or incomplete
The right of rectification. You have the right to have your
information rectified if that information is inaccurate or
incomplete
</li>
<li>
The right to object. You have the right to object to our processing of your Personal Data;
The right to object. You have the right to object to our
processing of your Personal Data;
</li>
<li>
The right of restriction. You have the right to request that we restrict the processing of your personal information
The right of restriction. You have the right to request that
we restrict the processing of your personal information
</li>
<li>
The right to data portability. You have the right to be provided with a copy of your Personal Data in a structured, machine-readable and commonly used format;
The right to data portability. You have the right to be
provided with a copy of your Personal Data in a structured,
machine-readable and commonly used format;
</li>
<li>
The right to withdraw consent. You also have the right to withdraw your consent at any time where we rely on your consent to process your personal information;
The right to withdraw consent. You also have the right to
withdraw your consent at any time where we rely on your
consent to process your personal information;
</li>
</ol>
<br>
<br>
Please note that we may ask you to verify your identity before responding to such requests. Please note, we may not able to provide Service without some necessary data.
<br />
<br />
Please note that we may ask you to verify your identity before responding
to such requests. Please note, we may not able to provide Service
without some necessary data.
<br>
<br>
You have the right to complain to a Data Protection Authority about our collection and use of your Personal Data. For more information, please contact your local data protection authority in the European Economic Area (EEA).
<br />
<br />
You have the right to complain to a Data Protection Authority about
our collection and use of your Personal Data. For more information,
please contact your local data protection authority in the European
Economic Area (EEA).
</div>
<h1 class="text-white text-2xl font-medium text-start mt-5 underline">
Your Data Protection Rights under the California Privacy Protection Act (CalOPPA)
<h1
class="text-white text-2xl font-medium text-start mt-5 underline"
>
Your Data Protection Rights under the California Privacy
Protection Act (CalOPPA)
</h1>
<div class="text-gray-300">
CalOPPA is the nation's first state law requiring commercial websites and online services to disclose a privacy policy. The law's scope extends far beyond California, requiring any person or company in the United States (and possibly the world) that operates websites collecting personally identifiable information from California consumers to post a prominent privacy policy on its website stating exactly what information is being collected and with whom it is being shared, and to comply with this policy.
<br>
<br>
CalOPPA is the nation's first state law requiring commercial
websites and online services to disclose a privacy policy. The
law's scope extends far beyond California, requiring any person
or company in the United States (and possibly the world) that
operates websites collecting personally identifiable information
from California consumers to post a prominent privacy policy on
its website stating exactly what information is being collected
and with whom it is being shared, and to comply with this
policy.
<br />
<br />
According to CalOPPA, we agree to the following:
<ol class="list-decimal ml-8 mt-2">
<li>Users can visit our site anonymously</li>
<li>
Users can visit our site anonymously
Our Privacy Policy link includes the word "Privacy" and is
easily found on the bottom page of our website
</li>
<li>
Our Privacy Policy link includes the word "Privacy" and is easily found on the bottom page of our website
Users will be notified of any privacy policy changes on our
Privacy Policy page.
</li>
<li>
Users will be notified of any privacy policy changes on our Privacy Policy page.
Users can change their personal information by emailing us
at
<a
href={`mailto:${emailAddress}`}
class="text-blue-400 hover:text-white hover:underline"
>{emailAddress}</a
>.
</li>
<li>
Users can change their personal information by emailing us at
<a href={`mailto:${emailAddress}`} class="text-blue-400 hover:text-white hover:underline">{emailAddress}</a>.
</li>
</ol>
<br>
<br>
Our Policy on “Do Not Track” Signals:
We honor Do Not Track signals and do not track, plant cookies, or use advertising when a Do Not Track browser mechanism is in place. Do Not Track is a preference you can set in your web browser to inform websites that you do not want to be tracked.
You can enable or disable Do Not Track by visiting the Preferences or Settings page of your web browser.
<br />
<br />
Our Policy on “Do Not Track” Signals: We honor Do Not Track signals
and do not track, plant cookies, or use advertising when a Do Not
Track browser mechanism is in place. Do Not Track is a preference
you can set in your web browser to inform websites that you do not
want to be tracked. You can enable or disable Do Not Track by visiting
the Preferences or Settings page of your web browser.
</div>
<h1 class="text-white text-2xl font-medium text-start mt-5 underline">
<h1
class="text-white text-2xl font-medium text-start mt-5 underline"
>
Childrens Privacy
</h1>
<div class="text-gray-300">
Children under the age of 18 ("Child" or "Children") are not permitted to use our Services.
We do not collect personally identifying information from children under the age of 18. Please inform us if you become aware that a Child has provided us with Personal Data. If we discover that we collected Personal Data from Children without parental agreement, we take steps to erase that information from our servers.
Children under the age of 18 ("Child" or "Children") are not
permitted to use our Services. We do not collect personally
identifying information from children under the age of 18.
Please inform us if you become aware that a Child has provided
us with Personal Data. If we discover that we collected Personal
Data from Children without parental agreement, we take steps to
erase that information from our servers.
</div>
<h1 class="text-white text-2xl font-medium text-start mt-5 underline">
<h1
class="text-white text-2xl font-medium text-start mt-5 underline"
>
Changes to this Privacy Policy
</h1>
<div class="text-gray-300">
We reserve the right to change our Privacy Policy at any moment. Any changes will be communicated to you by posting the revised Privacy Policy on this page.
<br>
<br>
It is recommended that you examine this Privacy Policy on a regular basis for any updates. When changes to this Privacy Policy are posted on this page, they become effective.
</div>
We reserve the right to change our Privacy Policy at any moment.
Any changes will be communicated to you by posting the revised
Privacy Policy on this page.
<br />
<br />
It is recommended that you examine this Privacy Policy on a regular
basis for any updates. When changes to this Privacy Policy are posted
on this page, they become effective.
</div>
</div>
</div>
</main>
<aside class="hidden lg:block relative fixed w-1/4 ml-4">
<div on:click={() => goto('/pricing')} class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer">
<div
on:click={() => goto("/pricing")}
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<div class="w-auto lg:w-full p-1 flex flex-col m-auto px-2 sm:px-0">
<div class="w-full flex justify-between items-center p-3 mt-3">
<h2 class="text-start text-xl font-semibold text-white ml-3">
@ -272,7 +348,10 @@ import ArrowLogo from "lucide-svelte/icons/move-up-right";
</div>
</div>
<div on:click={() => goto('/donation')} class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer">
<div
on:click={() => goto("/donation")}
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<div class="w-auto lg:w-full p-1 flex flex-col m-auto px-2 sm:px-0">
<div class="w-full flex justify-between items-center p-3 mt-3">
<h2 class="text-start text-xl font-semibold text-white ml-3">
@ -286,7 +365,10 @@ import ArrowLogo from "lucide-svelte/icons/move-up-right";
</div>
</div>
<div on:click={() => goto('/contact')} class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer">
<div
on:click={() => goto("/contact")}
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<div class="w-auto lg:w-full p-1 flex flex-col m-auto px-2 sm:px-0">
<div class="w-full flex justify-between items-center p-3 mt-3">
<h2 class="text-start text-xl font-semibold text-white ml-3">
@ -299,16 +381,8 @@ import ArrowLogo from "lucide-svelte/icons/move-up-right";
</span>
</div>
</div>
</aside>
</div>
</div>
</div>
</section>

View File

@ -361,7 +361,7 @@
{#if data?.user?.tier !== "Pro" || data?.user?.freeTrial}
<div
on:click={() => goto("/pricing")}
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<div
class="w-auto lg:w-full p-1 flex flex-col m-auto px-2 sm:px-0"
@ -381,7 +381,7 @@
<div
on:click={() => goto("/cramer-tracker")}
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<div class="w-auto lg:w-full p-1 flex flex-col m-auto px-2 sm:px-0">
<div class="w-full flex justify-between items-center p-3 mt-3">
@ -398,7 +398,7 @@
<div
on:click={() => goto("/reddit-tracker")}
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<div class="w-auto lg:w-full p-1 flex flex-col m-auto px-2 sm:px-0">
<div class="w-full flex justify-between items-center p-3 mt-3">

View File

@ -1,11 +1,16 @@
<script lang="ts">
import { format, startOfWeek, addDays, addWeeks, subWeeks, differenceInWeeks } from 'date-fns'
import { screenWidth, numberOfUnreadNotification } from '$lib/store';
import logo from '$lib/images/split_logo.png';
import { goto } from '$app/navigation';
import { abbreviateNumber } from '$lib/utils';
import {
format,
startOfWeek,
addDays,
addWeeks,
subWeeks,
differenceInWeeks,
} from "date-fns";
import { screenWidth, numberOfUnreadNotification } from "$lib/store";
import logo from "$lib/images/split_logo.png";
import { goto } from "$app/navigation";
import { abbreviateNumber } from "$lib/utils";
import ArrowLogo from "lucide-svelte/icons/move-up-right";
export let data;
@ -23,10 +28,15 @@
let formattedFriday = format(addDays(formattedMonday, 4), "EEE, MMM d");
formattedMonday = format(formattedMonday, "EEE, MMM d");
let formattedWeekday = [formattedMonday, formattedTuesday,formattedWednesday, formattedThursday, formattedFriday];
let formattedWeekday = [
formattedMonday,
formattedTuesday,
formattedWednesday,
formattedThursday,
formattedFriday,
];
let weekday = [];
let startDate = startOfWeek(currentWeek, { weekStartsOn: 1 });
let endDate = addDays(startDate, 4);
let formattedStartDate = format(startDate, "yyyy-MM-dd");
@ -54,54 +64,52 @@
},
];
let currentDate = new Date();
let currentWeekday = Math.min((currentDate.getDay() + 6) % 7, 4);
let selectedWeekday = currentWeekday;
function toggleDate(index)
{
function toggleDate(index) {
if ($screenWidth > 640) {
selectedWeekday = index
selectedWeekday = index;
}
}
function clickWeekday(state, index) {
if (state==='next' && selectedWeekday+1 <=4)
{
if (state === "next" && selectedWeekday + 1 <= 4) {
selectedWeekday = selectedWeekday + 1;
}
else if( state === 'previous' && selectedWeekday-1 >=0)
{
} else if (state === "previous" && selectedWeekday - 1 >= 0) {
selectedWeekday--;
}
else if (state=== 'previous' && index === 0 && differenceInWeeks(currentWeek, today) > -maxWeeksChange)
{
changeWeek(state)
} else if (
state === "previous" &&
index === 0 &&
differenceInWeeks(currentWeek, today) > -maxWeeksChange
) {
changeWeek(state);
selectedWeekday = 4;
}
else if (state=== 'next' && index === 4 && differenceInWeeks(currentWeek, today) < maxWeeksChange)
{
changeWeek(state)
} else if (
state === "next" &&
index === 4 &&
differenceInWeeks(currentWeek, today) < maxWeeksChange
) {
changeWeek(state);
selectedWeekday = 0;
}
}
async function changeWeek(state) {
//Limit the user to go back max 4 weeks and look forward 4 weeks
if (state === 'previous' && differenceInWeeks(currentWeek, today) > -maxWeeksChange) {
if (
state === "previous" &&
differenceInWeeks(currentWeek, today) > -maxWeeksChange
) {
currentWeek = subWeeks(currentWeek, 1);
} else if (state === 'next' && differenceInWeeks(currentWeek, today) < maxWeeksChange) {
} else if (
state === "next" &&
differenceInWeeks(currentWeek, today) < maxWeeksChange
) {
currentWeek = addWeeks(currentWeek, 1);
}
formattedMonday = startOfWeek(currentWeek, { weekStartsOn: 1 });
formattedTuesday = format(addDays(formattedMonday, 1), "EEE, MMM d");
formattedWednesday = format(addDays(formattedMonday, 2), "EEE, MMM d");
@ -109,7 +117,13 @@
formattedFriday = format(addDays(formattedMonday, 4), "EEE, MMM d");
formattedMonday = format(formattedMonday, "EEE, MMM d");
formattedWeekday = [formattedMonday, formattedTuesday,formattedWednesday, formattedThursday, formattedFriday];
formattedWeekday = [
formattedMonday,
formattedTuesday,
formattedWednesday,
formattedThursday,
formattedFriday,
];
weekday = [];
startDate = startOfWeek(currentWeek, { weekStartsOn: 1 });
@ -139,42 +153,11 @@
},
];
stockSplitsCalendar = daysOfWeek.map((day) => {
return {
name: day.name,
data: data?.getStockSplitsCalendar?.filter(
(item) => item.date === day.date
),
};
});
if (stockSplitsCalendar?.length) {
// Loop through each day of the week
for (let i = 0; i < stockSplitsCalendar.length; i++) {
const dayData = stockSplitsCalendar[i].data;
// Filter out entries with company name "---"
// Sort and map the filtered data
weekday[i] = dayData
.sort((a, b) => b.marketCap - a.marketCap)
}
}
}
$: {
if( stockSplitsCalendar)
{
stockSplitsCalendar = daysOfWeek.map((day) => {
return {
name: day.name,
data: data?.getStockSplitsCalendar?.filter(
(item) => item.date === day.date
(item) => item.date === day.date,
),
};
});
@ -187,76 +170,91 @@
// Filter out entries with company name "---"
// Sort and map the filtered data
weekday[i] = dayData
.sort((a, b) => b.marketCap - a.marketCap)
weekday[i] = dayData.sort((a, b) => b.marketCap - a.marketCap);
}
}
}
}
$: {
if (currentWeek)
{
if (stockSplitsCalendar) {
stockSplitsCalendar = daysOfWeek.map((day) => {
return {
name: day.name,
data: data?.getStockSplitsCalendar?.filter(
(item) => item.date === day.date,
),
};
});
if (differenceInWeeks(currentWeek, today) > -maxWeeksChange)
{
if (stockSplitsCalendar?.length) {
// Loop through each day of the week
for (let i = 0; i < stockSplitsCalendar.length; i++) {
const dayData = stockSplitsCalendar[i].data;
// Filter out entries with company name "---"
// Sort and map the filtered data
weekday[i] = dayData.sort((a, b) => b.marketCap - a.marketCap);
}
}
}
}
$: {
if (currentWeek) {
if (differenceInWeeks(currentWeek, today) > -maxWeeksChange) {
previousMax = false;
}
else {
} else {
previousMax = true;
}
}
}
$: {
if (currentWeek)
{
if (differenceInWeeks(currentWeek, today) < maxWeeksChange)
{
if (currentWeek) {
if (differenceInWeeks(currentWeek, today) < maxWeeksChange) {
nextMax = false;
}
else {
} else {
nextMax = true;
}
}
}
</script>
<svelte:head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ''} Stock Splits Calendar · stocknear
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""} Stock
Splits Calendar · stocknear
</title>
<meta name="description" content={`A list of upcoming stock splits on the US stock market, with dates, times and market cap.`} />
<meta
name="description"
content={`A list of upcoming stock splits on the US stock market, with dates, times and market cap.`}
/>
<!-- Other meta tags -->
<meta property="og:title" content={`Stock Splits Calendar · stocknear`} />
<meta property="og:description" content={`A list of upcoming stock splits on the US stock market, with dates, times and market cap.`} />
<meta
property="og:description"
content={`A list of upcoming stock splits on the US stock market, with dates, times and market cap.`}
/>
<meta property="og:type" content="website" />
<!-- Add more Open Graph meta tags as needed -->
<!-- Twitter specific meta tags -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content={`Stock Splits Calendar · stocknear`} />
<meta name="twitter:description" content={`A list of upcoming stock splits on the US stock market, with dates, times and market cap.`} />
<meta
name="twitter:description"
content={`A list of upcoming stock splits on the US stock market, with dates, times and market cap.`}
/>
<!-- Add more Twitter meta tags as needed -->
</svelte:head>
<section class="w-full max-w-3xl sm:max-w-screen-2xl overflow-hidden min-h-screen pt-5 pb-40">
<section
class="w-full max-w-3xl sm:max-w-screen-2xl overflow-hidden min-h-screen pt-5 pb-40"
>
<div class="text-sm sm:text-[1rem] breadcrumbs ml-4">
<ul>
<li><a href="/" class="text-gray-300">Home</a></li>
@ -265,35 +263,42 @@
</div>
<div class="w-full overflow-hidden m-auto mt-5">
<div class="sm:p-0 flex justify-center w-full m-auto overflow-hidden">
<div class="relative flex justify-center items-start overflow-hidden w-full">
<div
class="relative flex justify-center items-start overflow-hidden w-full"
>
<main class="w-full lg:w-3/4 lg:pr-5">
<div class="w-full m-auto sm:bg-[#27272A] sm:rounded-xl h-auto pl-10 pr-10 pt-5 sm:pb-10 sm:pt-10 mt-3 mb-8">
<div
class="w-full m-auto sm:bg-[#27272A] sm:rounded-xl h-auto pl-10 pr-10 pt-5 sm:pb-10 sm:pt-10 mt-3 mb-8"
>
<div class="grid grid-cols-1 sm:grid-cols-2 gap-10">
<!-- Start Column -->
<div>
<div class="flex flex-row justify-center items-center">
<h1 class="text-3xl sm:text-4xl text-white text-center font-bold mb-5">
<h1
class="text-3xl sm:text-4xl text-white text-center font-bold mb-5"
>
Stock Splits Calendar
</h1>
</div>
<span class="hidden sm:block text-white text-md font-medium text-center flex justify-center items-center ">
<span
class="hidden sm:block text-white text-md font-medium text-center flex justify-center items-center"
>
Stay updated on upcoming Splits in the stock market.
</span>
</div>
<!-- End Column -->
<!-- Start Column -->
<div class="hidden sm:block relative m-auto mb-5 mt-5 sm:mb-0 sm:mt-0">
<svg class="w-40 -my-5" viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg">
<div
class="hidden sm:block relative m-auto mb-5 mt-5 sm:mb-0 sm:mt-0"
>
<svg
class="w-40 -my-5"
viewBox="0 0 200 200"
xmlns="http://www.w3.org/2000/svg"
>
<defs>
<filter id="glow">
<feGaussianBlur stdDeviation="5" result="glow" />
@ -303,132 +308,238 @@
</feMerge>
</filter>
</defs>
<path fill="#1E40AF" d="M57.6,-58.7C72.7,-42.6,81.5,-21.3,82,0.5C82.5,22.3,74.7,44.6,59.7,60.1C44.6,75.6,22.3,84.3,0,84.3C-22.3,84.2,-44.6,75.5,-61.1,60.1C-77.6,44.6,-88.3,22.3,-87.6,0.7C-86.9,-20.8,-74.7,-41.6,-58.2,-57.7C-41.6,-73.8,-20.8,-85.2,0.2,-85.4C21.3,-85.6,42.6,-74.7,57.6,-58.7Z" transform="translate(100 100)" filter="url(#glow)" />
<path
fill="#1E40AF"
d="M57.6,-58.7C72.7,-42.6,81.5,-21.3,82,0.5C82.5,22.3,74.7,44.6,59.7,60.1C44.6,75.6,22.3,84.3,0,84.3C-22.3,84.2,-44.6,75.5,-61.1,60.1C-77.6,44.6,-88.3,22.3,-87.6,0.7C-86.9,-20.8,-74.7,-41.6,-58.2,-57.7C-41.6,-73.8,-20.8,-85.2,0.2,-85.4C21.3,-85.6,42.6,-74.7,57.6,-58.7Z"
transform="translate(100 100)"
filter="url(#glow)"
/>
</svg>
<div class="z-1 absolute top-1">
<img class="w-36 ml-7" src={logo} alt="logo" loading="lazy">
<img class="w-36 ml-7" src={logo} alt="logo" loading="lazy" />
</div>
</div>
<!-- End Column -->
</div>
</div>
<!-- Page wrapper -->
<div class="flex justify-center w-full m-auto h-full overflow-hidden">
<!-- Content area -->
<div class="relative flex flex-col flex-1 overflow-hidden">
<!-- Cards -->
<div class="w-full flex flex-row justify-center m-auto items-center pl-2 pr-2 sm:pl-0 sm:pr-0">
<div
class="w-full flex flex-row justify-center m-auto items-center pl-2 pr-2 sm:pl-0 sm:pr-0"
>
<!-- Start Columns -->
<label on:click={() => changeWeek('previous')} class="{previousMax ? 'opacity-80' : ''} hidden sm:flex h-16 w-48 cursor-pointer border m-auto flex bg-[#27272A] border border-gray-600 mb-3">
<svg class="w-6 h-6 m-auto rotate-180 " xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="white" d="M8.025 22L6.25 20.225L14.475 12L6.25 3.775L8.025 2l10 10l-10 10Z"/></svg>
<label
on:click={() => changeWeek("previous")}
class="{previousMax
? 'opacity-80'
: ''} hidden sm:flex h-16 w-48 cursor-pointer border m-auto flex bg-[#27272A] border border-gray-600 mb-3"
>
<svg
class="w-6 h-6 m-auto rotate-180"
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 24 24"
><path
fill="white"
d="M8.025 22L6.25 20.225L14.475 12L6.25 3.775L8.025 2l10 10l-10 10Z"
/></svg
>
</label>
{#each weekday as day, index}
<div class="w-full {index === selectedWeekday ? '' : 'hidden sm:block'}">
<label on:click={() => toggleDate(index)} class="w-11/12 sm:w-full m-auto cursor-pointer h-16 {index === selectedWeekday ? 'bg-purple-600 sm:hover:bg-purple-700' : ''} rounded sm:rounded-none flex bg-[#09090B] sm:hover:bg-purple-600 transition duration-50 border border-gray-600 mb-3">
<div class=" flex flex-row justify-center items-center w-full">
<label on:click={() => clickWeekday('previous', index) } class="sm:hidden ml-auto">
<svg class="w-8 h-8 inline-block rotate-180 " xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="white" d="M8.025 22L6.25 20.225L14.475 12L6.25 3.775L8.025 2l10 10l-10 10Z"/></svg>
<div
class="w-full {index === selectedWeekday
? ''
: 'hidden sm:block'}"
>
<label
on:click={() => toggleDate(index)}
class="w-11/12 sm:w-full m-auto cursor-pointer h-16 {index ===
selectedWeekday
? 'bg-purple-600 sm:hover:bg-purple-700'
: ''} rounded sm:rounded-none flex bg-[#09090B] sm:hover:bg-purple-600 transition duration-50 border border-gray-600 mb-3"
>
<div
class=" flex flex-row justify-center items-center w-full"
>
<label
on:click={() => clickWeekday("previous", index)}
class="sm:hidden ml-auto"
>
<svg
class="w-8 h-8 inline-block rotate-180"
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 24 24"
><path
fill="white"
d="M8.025 22L6.25 20.225L14.475 12L6.25 3.775L8.025 2l10 10l-10 10Z"
/></svg
>
</label>
<div class="flex flex-col items-center text-white truncate m-auto p-1">
<span class="font-medium text-md">{formattedWeekday[index]}</span>
<span class="text-[1rem] sm:text-sm m-auto pt-1 pb-1"> {day?.length > 1 ? `${day?.length} Splits` : `${day?.length} Split`}</span>
<div
class="flex flex-col items-center text-white truncate m-auto p-1"
>
<span class="font-medium text-md"
>{formattedWeekday[index]}</span
>
<span class="text-[1rem] sm:text-sm m-auto pt-1 pb-1">
{day?.length > 1
? `${day?.length} Splits`
: `${day?.length} Split`}</span
>
</div>
<label on:click={() => clickWeekday('next', index) } class="sm:hidden mr-auto">
<svg class="w-8 h-8 inline-block" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="white" d="M8.025 22L6.25 20.225L14.475 12L6.25 3.775L8.025 2l10 10l-10 10Z"/></svg>
<label
on:click={() => clickWeekday("next", index)}
class="sm:hidden mr-auto"
>
<svg
class="w-8 h-8 inline-block"
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 24 24"
><path
fill="white"
d="M8.025 22L6.25 20.225L14.475 12L6.25 3.775L8.025 2l10 10l-10 10Z"
/></svg
>
</label>
</div>
</label>
</div>
{/each}
<label on:click={() => changeWeek('next')} class="{nextMax ? 'opacity-80' : ''} hidden sm:flex h-16 w-48 cursor-pointer border m-auto flex bg-[#27272A] border border-gray-600 mb-3">
<svg class="w-6 h-6 m-auto" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="white" d="M8.025 22L6.25 20.225L14.475 12L6.25 3.775L8.025 2l10 10l-10 10Z"/></svg>
<label
on:click={() => changeWeek("next")}
class="{nextMax
? 'opacity-80'
: ''} hidden sm:flex h-16 w-48 cursor-pointer border m-auto flex bg-[#27272A] border border-gray-600 mb-3"
>
<svg
class="w-6 h-6 m-auto"
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 24 24"
><path
fill="white"
d="M8.025 22L6.25 20.225L14.475 12L6.25 3.775L8.025 2l10 10l-10 10Z"
/></svg
>
</label>
</div>
{#each weekday as day, index}
{#if index === selectedWeekday}
{#if day?.length !== 0}
<div class="w-full overflow-x-scroll">
<table class="table-sm table-compact rounded-none sm:rounded-md w-full border-bg-[#09090B] m-auto mt-4 ">
<table
class="table-sm table-compact rounded-none sm:rounded-md w-full border-bg-[#09090B] m-auto mt-4"
>
<thead>
<tr>
<th class="text-slate-200 font-semibold text-[1rem] text-start">Symbol</th>
<th class="text-slate-200 font-semibold whitespace-nowrap text-[1rem] text-start">Company Name</th>
<th class="text-slate-200 font-semibold whitespace-nowrap text-[1rem] text-end">EPS</th>
<th class="text-slate-200 font-semibold whitespace-nowrap text-[1rem] text-end">Market Cap</th>
<th class="text-slate-200 font-semibold whitespace-nowrap text-[1rem] text-end">Split</th>
<th
class="text-slate-200 font-semibold text-[1rem] text-start"
>Symbol</th
>
<th
class="text-slate-200 font-semibold whitespace-nowrap text-[1rem] text-start"
>Company Name</th
>
<th
class="text-slate-200 font-semibold whitespace-nowrap text-[1rem] text-end"
>EPS</th
>
<th
class="text-slate-200 font-semibold whitespace-nowrap text-[1rem] text-end"
>Market Cap</th
>
<th
class="text-slate-200 font-semibold whitespace-nowrap text-[1rem] text-end"
>Split</th
>
</tr>
</thead>
<tbody>
{#each day as item}
<!-- row -->
<tr class="sm:hover:bg-[#245073] sm:hover:bg-opacity-[0.2] odd:bg-[#27272A] border-b-[#09090B]">
<td class="text-sm sm:text-[1rem] whitespace-nowrap border-b-[#09090B]">
<a href={"/stocks/"+item?.symbol} class="sm:hover:text-white text-blue-400">
<tr
class="sm:hover:bg-[#245073] sm:hover:bg-opacity-[0.2] odd:bg-[#27272A] border-b-[#09090B]"
>
<td
class="text-sm sm:text-[1rem] whitespace-nowrap border-b-[#09090B]"
>
<a
href={"/stocks/" + item?.symbol}
class="sm:hover:text-white text-blue-400"
>
{item?.symbol}
</a>
</td>
<td class="text-white text-sm sm:text-[1rem] whitespace-nowrap border-b-[#09090B]">
{item?.name?.length > 40 ? item?.name?.slice(0,40) + "..." : item?.name}
<td
class="text-white text-sm sm:text-[1rem] whitespace-nowrap border-b-[#09090B]"
>
{item?.name?.length > 40
? item?.name?.slice(0, 40) + "..."
: item?.name}
</td>
<td class="text-white text-sm text-end sm:text-[1rem] whitespace-nowrap font-medium border-b-[#09090B]">
{item?.eps !== null ? item?.eps : '-'}
<td
class="text-white text-sm text-end sm:text-[1rem] whitespace-nowrap font-medium border-b-[#09090B]"
>
{item?.eps !== null ? item?.eps : "-"}
</td>
<td class="text-white text-sm sm:text-[1rem] text-end whitespace-nowrap font-medium border-b-[#09090B]">
{item?.marketCap !== null ? abbreviateNumber(item?.marketCap) : '-'}
<td
class="text-white text-sm sm:text-[1rem] text-end whitespace-nowrap font-medium border-b-[#09090B]"
>
{item?.marketCap !== null
? abbreviateNumber(item?.marketCap)
: "-"}
</td>
<td class="text-white font-medium text-sm sm:text-[1rem] whitespace-nowrap text-end mr-1 border-b-[#09090B]">
<span class="">From {item?.denominator} to {item?.numerator}</span>
<td
class="text-white font-medium text-sm sm:text-[1rem] whitespace-nowrap text-end mr-1 border-b-[#09090B]"
>
<span class=""
>From {item?.denominator} to {item?.numerator}</span
>
</td>
</tr>
{/each}
</tbody>
</table>
</div>
{:else}
<div class="text-white p-5 mt-5 w-fit m-auto rounded-lg sm:flex sm:flex-row sm:items-center border border-slate-800 text-[1rem]">
<svg class="w-6 h-6 flex-shrink-0 inline-block sm:mr-2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"><path fill="#a474f6" d="M128 24a104 104 0 1 0 104 104A104.11 104.11 0 0 0 128 24m-4 48a12 12 0 1 1-12 12a12 12 0 0 1 12-12m12 112a16 16 0 0 1-16-16v-40a8 8 0 0 1 0-16a16 16 0 0 1 16 16v40a8 8 0 0 1 0 16"/></svg>
<div
class="text-white p-5 mt-5 w-fit m-auto rounded-lg sm:flex sm:flex-row sm:items-center border border-slate-800 text-[1rem]"
>
<svg
class="w-6 h-6 flex-shrink-0 inline-block sm:mr-2"
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 256 256"
><path
fill="#a474f6"
d="M128 24a104 104 0 1 0 104 104A104.11 104.11 0 0 0 128 24m-4 48a12 12 0 1 1-12 12a12 12 0 0 1 12-12m12 112a16 16 0 0 1-16-16v-40a8 8 0 0 1 0-16a16 16 0 0 1 16 16v40a8 8 0 0 1 0 16"
/></svg
>
No Stock Splits available for the day.
</div>
{/if}
{/if}
{/each}
</div>
</div>
</main>
<aside class="hidden lg:block relative fixed w-1/4 ml-4">
{#if data?.user?.tier !== 'Pro' || data?.user?.freeTrial}
<div on:click={() => goto('/pricing')} class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer">
<div class="w-auto lg:w-full p-1 flex flex-col m-auto px-2 sm:px-0">
{#if data?.user?.tier !== "Pro" || data?.user?.freeTrial}
<div
on:click={() => goto("/pricing")}
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<div
class="w-auto lg:w-full p-1 flex flex-col m-auto px-2 sm:px-0"
>
<div class="w-full flex justify-between items-center p-3 mt-3">
<h2 class="text-start text-xl font-semibold text-white ml-3">
Pro Subscription
@ -442,7 +553,10 @@
</div>
{/if}
<div on:click={() => goto('/analysts')} class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer">
<div
on:click={() => goto("/analysts")}
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<div class="w-auto lg:w-full p-1 flex flex-col m-auto px-2 sm:px-0">
<div class="w-full flex justify-between items-center p-3 mt-3">
<h2 class="text-start text-xl font-semibold text-white ml-3">
@ -456,7 +570,10 @@
</div>
</div>
<div on:click={() => goto('/politicians')} class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer">
<div
on:click={() => goto("/politicians")}
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<div class="w-auto lg:w-full p-1 flex flex-col m-auto px-2 sm:px-0">
<div class="w-full flex justify-between items-center p-3 mt-3">
<h2 class="text-start text-xl font-semibold text-white ml-3">
@ -469,24 +586,8 @@
</span>
</div>
</div>
</aside>
</div>
</div>
</div>
</section>

View File

@ -1,21 +1,16 @@
<script lang='ts'>
import { goto } from '$app/navigation';
import { screenWidth, numberOfUnreadNotification } from '$lib/store';
import { abbreviateNumber } from '$lib/utils';
import { onMount } from 'svelte';
import logo from '$lib/images/box_logo.png';
<script lang="ts">
import { goto } from "$app/navigation";
import { screenWidth, numberOfUnreadNotification } from "$lib/store";
import { abbreviateNumber } from "$lib/utils";
import { onMount } from "svelte";
import logo from "$lib/images/box_logo.png";
import ArrowLogo from "lucide-svelte/icons/move-up-right";
export let data;
let rawData = data?.getStockList;
let stockList = rawData?.slice(0, 50);
async function handleScroll() {
const scrollThreshold = document.body.offsetHeight * 0.8; // 80% of the website height
const isBottom = window.innerHeight + window.scrollY >= scrollThreshold;
@ -27,49 +22,63 @@ async function handleScroll() {
}
onMount(() => {
window.addEventListener('scroll', handleScroll);
window.addEventListener("scroll", handleScroll);
return () => {
window.removeEventListener('scroll', handleScroll);
window.removeEventListener("scroll", handleScroll);
};
})
});
$: charNumber = $screenWidth < 640 ? 15 : 40;
</script>
<svelte:head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ''} List of All Stock Ticker Symbols · stocknear
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""} List
of All Stock Ticker Symbols · stocknear
</title>
<meta name="description" content={`An overview of all the stock ticker symbols listed. Explore the stock pages to learn about the company's price history, financials, key stats, and more.`} />
<meta
name="description"
content={`An overview of all the stock ticker symbols listed. Explore the stock pages to learn about the company's price history, financials, key stats, and more.`}
/>
<!-- Other meta tags -->
<meta property="og:title" content={`List of All Stock Ticker Symbols · stocknear`}/>
<meta property="og:description" content={`An overview of all the stock ticker symbols listed. Explore the stock pages to learn about the company's price history, financials, key stats, and more.`} />
<meta property="og:image" content="https://stocknear-pocketbase.s3.amazonaws.com/logo/meta_logo.jpg"/>
<meta
property="og:title"
content={`List of All Stock Ticker Symbols · stocknear`}
/>
<meta
property="og:description"
content={`An overview of all the stock ticker symbols listed. Explore the stock pages to learn about the company's price history, financials, key stats, and more.`}
/>
<meta
property="og:image"
content="https://stocknear-pocketbase.s3.amazonaws.com/logo/meta_logo.jpg"
/>
<meta property="og:type" content="website" />
<!-- Add more Open Graph meta tags as needed -->
<!-- Twitter specific meta tags -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content={`List of All Stock Ticker Symbols · stocknear`}/>
<meta name="twitter:description" content={`An overview of all the stock ticker symbols listed. Explore the stock pages to learn about the company's price history, financials, key stats, and more.`} />
<meta name="twitter:image" content="https://stocknear-pocketbase.s3.amazonaws.com/logo/meta_logo.jpg"/>
<meta
name="twitter:title"
content={`List of All Stock Ticker Symbols · stocknear`}
/>
<meta
name="twitter:description"
content={`An overview of all the stock ticker symbols listed. Explore the stock pages to learn about the company's price history, financials, key stats, and more.`}
/>
<meta
name="twitter:image"
content="https://stocknear-pocketbase.s3.amazonaws.com/logo/meta_logo.jpg"
/>
<!-- Add more Twitter meta tags as needed -->
</svelte:head>
<section class="w-full max-w-3xl sm:max-w-screen-2xl overflow-hidden min-h-screen pt-5 pb-40 lg:px-3">
<section
class="w-full max-w-3xl sm:max-w-screen-2xl overflow-hidden min-h-screen pt-5 pb-40 lg:px-3"
>
<div class="text-sm sm:text-[1rem] breadcrumbs ml-4">
<ul>
<li><a href="/" class="text-gray-300">Home</a></li>
@ -78,25 +87,28 @@ $: charNumber = $screenWidth < 640 ? 15 : 40;
</div>
<div class="w-full overflow-hidden m-auto mt-5">
<div class="sm:p-0 flex justify-center w-full m-auto overflow-hidden">
<div class="relative flex justify-center items-start overflow-hidden w-full">
<div
class="relative flex justify-center items-start overflow-hidden w-full"
>
<main class="w-full lg:w-3/4 lg:pr-5">
<div class="w-full m-auto sm:bg-[#27272A] sm:rounded-xl h-auto pl-10 pr-10 pt-5 sm:pb-10 sm:pt-10 mt-3 mb-8">
<div
class="w-full m-auto sm:bg-[#27272A] sm:rounded-xl h-auto pl-10 pr-10 pt-5 sm:pb-10 sm:pt-10 mt-3 mb-8"
>
<div class="grid grid-cols-1 sm:grid-cols-2 gap-10">
<!-- Start Column -->
<div>
<div class="flex flex-row justify-center items-center">
<h1 class="text-3xl sm:text-4xl text-white text-center font-bold mb-5">
<h1
class="text-3xl sm:text-4xl text-white text-center font-bold mb-5"
>
Stock Symbols
</h1>
</div>
<span class="text-white text-md font-medium text-center flex justify-center items-center ">
<span
class="text-white text-md font-medium text-center flex justify-center items-center"
>
Collection of all Stock Symbols available
</span>
<!--
@ -107,13 +119,18 @@ $: charNumber = $screenWidth < 640 ? 15 : 40;
<svg class="w-6 h-6 inline-block ml-2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" fill="#000000"><g id="SVGRepo_bgCarrier" stroke-width="0"></g><g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g><g id="SVGRepo_iconCarrier"> <title></title> <g id="Complete"> <g id="info-circle"> <g> <circle cx="12" cy="12" data-name="--Circle" fill="none" id="_--Circle" r="10" stroke="#B46266" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"></circle> <line fill="none" stroke="#B46266" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" x1="12" x2="12" y1="12" y2="16"></line> <line fill="none" stroke="#B46266" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" x1="12" x2="12" y1="8" y2="8"></line> </g> </g> </g> </g></svg>
</label>
-->
</div>
<!-- End Column -->
<!-- Start Column -->
<div class="hidden sm:block relative m-auto mb-5 mt-5 sm:mb-0 sm:mt-0">
<svg class="w-40 -my-5" viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg">
<div
class="hidden sm:block relative m-auto mb-5 mt-5 sm:mb-0 sm:mt-0"
>
<svg
class="w-40 -my-5"
viewBox="0 0 200 200"
xmlns="http://www.w3.org/2000/svg"
>
<defs>
<filter id="glow">
<feGaussianBlur stdDeviation="5" result="glow" />
@ -123,29 +140,25 @@ $: charNumber = $screenWidth < 640 ? 15 : 40;
</feMerge>
</filter>
</defs>
<path fill="#1E40AF" d="M57.6,-58.7C72.7,-42.6,81.5,-21.3,82,0.5C82.5,22.3,74.7,44.6,59.7,60.1C44.6,75.6,22.3,84.3,0,84.3C-22.3,84.2,-44.6,75.5,-61.1,60.1C-77.6,44.6,-88.3,22.3,-87.6,0.7C-86.9,-20.8,-74.7,-41.6,-58.2,-57.7C-41.6,-73.8,-20.8,-85.2,0.2,-85.4C21.3,-85.6,42.6,-74.7,57.6,-58.7Z" transform="translate(100 100)" filter="url(#glow)" />
<path
fill="#1E40AF"
d="M57.6,-58.7C72.7,-42.6,81.5,-21.3,82,0.5C82.5,22.3,74.7,44.6,59.7,60.1C44.6,75.6,22.3,84.3,0,84.3C-22.3,84.2,-44.6,75.5,-61.1,60.1C-77.6,44.6,-88.3,22.3,-87.6,0.7C-86.9,-20.8,-74.7,-41.6,-58.2,-57.7C-41.6,-73.8,-20.8,-85.2,0.2,-85.4C21.3,-85.6,42.6,-74.7,57.6,-58.7Z"
transform="translate(100 100)"
filter="url(#glow)"
/>
</svg>
<div class="z-1 absolute top-0">
<img class="w-24 ml-9" src={logo} alt="logo" loading="lazy">
<img class="w-24 ml-9" src={logo} alt="logo" loading="lazy" />
</div>
</div>
<!-- End Column -->
</div>
</div>
<div class="w-full mt-10 m-auto mb-10 bg-[#09090B] pl-3 pr-3">
<!--Start Top Winners/Losers-->
<div class="flex flex-col justify-center items-center">
<div class="ml-4 text-start w-full text-white mb-2">
<span class="font-bold text-2xl">
{rawData?.length} Stocks
@ -155,55 +168,80 @@ $: charNumber = $screenWidth < 640 ? 15 : 40;
<div class="border-b mt-2 border-blue-400 w-full mb-4" />
<div class="w-full overflow-x-scroll">
<table class="mt-5 table table-sm table-compact rounded-none sm:rounded-md w-full bg-[#09090B] border-bg-[#09090B] m-auto">
<table
class="mt-5 table table-sm table-compact rounded-none sm:rounded-md w-full bg-[#09090B] border-bg-[#09090B] m-auto"
>
<thead>
<tr>
<th class="text-white font-medium text-sm sm:text-[1rem] text-start">Symbol</th>
<th class="text-white font-medium text-sm sm:text-[1rem]">Name</th>
<th class="text-white font-medium text-end text-sm sm:text-[1rem]">Sector</th>
<th class="text-white font-medium text-end text-sm sm:text-[0.95rem]">Market Cap</th>
<th
class="text-white font-medium text-sm sm:text-[1rem] text-start"
>Symbol</th
>
<th class="text-white font-medium text-sm sm:text-[1rem]"
>Name</th
>
<th
class="text-white font-medium text-end text-sm sm:text-[1rem]"
>Sector</th
>
<th
class="text-white font-medium text-end text-sm sm:text-[0.95rem]"
>Market Cap</th
>
</tr>
</thead>
<tbody>
{#each stockList as item, index}
<tr on:click={() => goto("/stocks/"+item?.symbol)} class="sm:hover:bg-[#245073] sm:hover:bg-opacity-[0.2] odd:bg-[#27272A] border-b-[#09090B] shake-ticker cursor-pointer">
<td class=" text-blue-400 font-medium text-start text-sm sm:text-[1rem] border-b-[#09090B]">
<tr
on:click={() => goto("/stocks/" + item?.symbol)}
class="sm:hover:bg-[#245073] sm:hover:bg-opacity-[0.2] odd:bg-[#27272A] border-b-[#09090B] shake-ticker cursor-pointer"
>
<td
class=" text-blue-400 font-medium text-start text-sm sm:text-[1rem] border-b-[#09090B]"
>
{item?.symbol}
</td>
<td class="text-white whitespace-nowrap border-b-[#09090B]">
<span class="text-white">{item?.name?.length > charNumber ? item?.name?.slice(0,charNumber) + "..." : item?.name}</span>
<td
class="text-white whitespace-nowrap border-b-[#09090B]"
>
<span class="text-white"
>{item?.name?.length > charNumber
? item?.name?.slice(0, charNumber) + "..."
: item?.name}</span
>
</td>
<td class="text-white whitespace-nowrap border-b-[#09090B] text-end text-sm sm:text-[1rem]">
{item?.sector !== null ? item?.sector : '-'}
<td
class="text-white whitespace-nowrap border-b-[#09090B] text-end text-sm sm:text-[1rem]"
>
{item?.sector !== null ? item?.sector : "-"}
</td>
<td class="text-white border-b-[#09090B] text-end text-sm sm:text-[1rem]">
{item?.marketCap !== null ? abbreviateNumber(item?.marketCap,true) : '-'}
<td
class="text-white border-b-[#09090B] text-end text-sm sm:text-[1rem]"
>
{item?.marketCap !== null
? abbreviateNumber(item?.marketCap, true)
: "-"}
</td>
</tr>
{/each}
</tbody>
</table>
</div>
</div>
</div>
</main>
<aside class="hidden lg:block relative fixed w-1/4 ml-4">
{#if data?.user?.tier !== 'Pro' || data?.user?.freeTrial}
<div on:click={() => goto('/pricing')} class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer">
<div class="w-auto lg:w-full p-1 flex flex-col m-auto px-2 sm:px-0">
{#if data?.user?.tier !== "Pro" || data?.user?.freeTrial}
<div
on:click={() => goto("/pricing")}
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<div
class="w-auto lg:w-full p-1 flex flex-col m-auto px-2 sm:px-0"
>
<div class="w-full flex justify-between items-center p-3 mt-3">
<h2 class="text-start text-xl font-semibold text-white ml-3">
Pro Subscription 🔥
@ -217,7 +255,10 @@ $: charNumber = $screenWidth < 640 ? 15 : 40;
</div>
{/if}
<div on:click={() => goto('/analysts')} class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer">
<div
on:click={() => goto("/analysts")}
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<div class="w-auto lg:w-full p-1 flex flex-col m-auto px-2 sm:px-0">
<div class="w-full flex justify-between items-center p-3 mt-3">
<h2 class="text-start text-xl font-semibold text-white ml-3">
@ -231,7 +272,10 @@ $: charNumber = $screenWidth < 640 ? 15 : 40;
</div>
</div>
<div on:click={() => goto('/analysts/top-stocks')} class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer">
<div
on:click={() => goto("/analysts/top-stocks")}
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<div class="w-auto lg:w-full p-1 flex flex-col m-auto px-2 sm:px-0">
<div class="w-full flex justify-between items-center p-3 mt-3">
<h2 class="text-start text-xl font-semibold text-white ml-3">
@ -244,16 +288,8 @@ $: charNumber = $screenWidth < 640 ? 15 : 40;
</span>
</div>
</div>
</aside>
</div>
</div>
</div>
</section>

View File

@ -45,7 +45,7 @@
<aside class="hidden lg:block relative fixed w-1/4 ml-4">
{#if data?.user?.tier !== "Pro" || data?.user?.freeTrial}
<div
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<a
href="/pricing"
@ -66,7 +66,7 @@
{#if data?.getNews?.length !== 0}
<div
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<div class="p-4 text-sm">
<h3 class="text-lg text-white font-semibold mb-3">

View File

@ -140,7 +140,7 @@
<aside class="hidden lg:block relative fixed w-1/4 ml-4">
{#if data?.user?.tier !== "Pro" || data?.user?.freeTrial}
<div
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<a
href="/pricing"
@ -164,7 +164,7 @@
{/if}
<div
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<a
href={"/watchlist/stocks"}
@ -183,7 +183,7 @@
</div>
<div
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<a
href={"/analysts/top-stocks"}

View File

@ -142,7 +142,7 @@
<aside class="hidden lg:block relative fixed w-1/4 ml-4">
{#if data?.user?.tier !== "Pro" || data?.user?.freeTrial}
<div
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<a
href="/pricing"
@ -163,7 +163,7 @@
{#if data?.getNews?.length !== 0}
<div
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<div class="p-4 text-sm">
<h3 class="text-lg text-white font-semibold mb-3">

View File

@ -17,7 +17,7 @@
<aside class="hidden lg:block relative fixed w-1/4 ml-4">
{#if data?.user?.tier !== "Pro" || data?.user?.freeTrial}
<div
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<a
href="/pricing"
@ -37,7 +37,7 @@
{/if}
<div
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<a
href={"/price-alert"}
@ -56,7 +56,7 @@
</div>
<div
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<a
href={"/stock-screener"}

View File

@ -17,7 +17,7 @@
<aside class="hidden lg:block relative fixed w-1/4 ml-4">
{#if data?.user?.tier !== "Pro" || data?.user?.freeTrial}
<div
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<a
href="/pricing"
@ -37,7 +37,7 @@
{/if}
<div
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<a
href={"/options-flow"}
@ -56,7 +56,7 @@
</div>
<div
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<a
href={"/stock-screener"}

View File

@ -17,7 +17,7 @@
<aside class="hidden lg:block relative fixed w-1/4 ml-4">
{#if data?.user?.tier !== "Pro" || data?.user?.freeTrial}
<div
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<a
href="/pricing"
@ -37,7 +37,7 @@
{/if}
<div
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<a
href={"/options-flow"}
@ -56,7 +56,7 @@
</div>
<div
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<a
href={"/stock-screener"}

View File

@ -17,7 +17,7 @@
<aside class="hidden lg:block relative fixed w-1/4 ml-4">
{#if data?.user?.tier !== "Pro" || data?.user?.freeTrial}
<div
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<a
href="/pricing"
@ -37,7 +37,7 @@
{/if}
<div
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<a
href={"/price-alert"}
@ -56,7 +56,7 @@
</div>
<div
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<a
href={"/stock-screener"}

View File

@ -1,17 +1,16 @@
<script>
import logo from '$lib/images/terms_of_use_logo_v3.png';
import { numberOfUnreadNotification } from '$lib/store';
import { goto } from '$app/navigation';
import logo from "$lib/images/terms_of_use_logo_v3.png";
import { numberOfUnreadNotification } from "$lib/store";
import { goto } from "$app/navigation";
import ArrowLogo from "lucide-svelte/icons/move-up-right";
</script>
<svelte:head>
<title> {$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ''} Terms of Use · stocknear</title>
<title>
{$numberOfUnreadNotification > 0 ? `(${$numberOfUnreadNotification})` : ""} Terms
of Use · stocknear</title
>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
@ -26,13 +25,9 @@ import ArrowLogo from "lucide-svelte/icons/move-up-right";
<!-- Add more Twitter meta tags as needed -->
</svelte:head>
<section class="w-full max-w-3xl sm:max-w-screen-2xl overflow-hidden min-h-screen pt-5 pb-40">
<section
class="w-full max-w-3xl sm:max-w-screen-2xl overflow-hidden min-h-screen pt-5 pb-40"
>
<div class="text-sm sm:text-[1rem] breadcrumbs">
<ul>
<li><a href="/" class="text-gray-300">Home</a></li>
@ -40,27 +35,29 @@ import ArrowLogo from "lucide-svelte/icons/move-up-right";
</ul>
</div>
<div class="w-full overflow-hidden m-auto mt-5">
<div class="sm:p-0 flex justify-center w-full m-auto overflow-hidden">
<div class="relative flex justify-center items-start overflow-hidden w-full">
<div
class="relative flex justify-center items-start overflow-hidden w-full"
>
<main class="w-full lg:w-3/4 lg:pr-5">
<div class="w-full m-auto sm:bg-[#27272A] sm:rounded-xl h-auto pl-10 pr-10 pt-5 sm:pb-10 sm:pt-10 mt-3 mb-8">
<div
class="w-full m-auto sm:bg-[#27272A] sm:rounded-xl h-auto pl-10 pr-10 pt-5 sm:pb-10 sm:pt-10 mt-3 mb-8"
>
<div class="grid grid-cols-1 sm:grid-cols-2 gap-10">
<!-- Start Column -->
<div>
<div class="flex flex-row justify-center items-center">
<h1 class="text-3xl sm:text-4xl text-white text-center font-bold mb-5">
<h1
class="text-3xl sm:text-4xl text-white text-center font-bold mb-5"
>
Terms of Use
</h1>
</div>
<span class="text-white text-md font-medium text-center flex justify-center items-center ">
<span
class="text-white text-md font-medium text-center flex justify-center items-center"
>
The best unread bedtime story you agree to in your sleep.
</span>
</div>
@ -68,7 +65,11 @@ import ArrowLogo from "lucide-svelte/icons/move-up-right";
<!-- Start Column -->
<div class="relative m-auto">
<svg class="w-40 -my-5" viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg">
<svg
class="w-40 -my-5"
viewBox="0 0 200 200"
xmlns="http://www.w3.org/2000/svg"
>
<defs>
<filter id="glow">
<feGaussianBlur stdDeviation="5" result="glow" />
@ -78,132 +79,221 @@ import ArrowLogo from "lucide-svelte/icons/move-up-right";
</feMerge>
</filter>
</defs>
<path fill="#1E40AF" d="M57.6,-58.7C72.7,-42.6,81.5,-21.3,82,0.5C82.5,22.3,74.7,44.6,59.7,60.1C44.6,75.6,22.3,84.3,0,84.3C-22.3,84.2,-44.6,75.5,-61.1,60.1C-77.6,44.6,-88.3,22.3,-87.6,0.7C-86.9,-20.8,-74.7,-41.6,-58.2,-57.7C-41.6,-73.8,-20.8,-85.2,0.2,-85.4C21.3,-85.6,42.6,-74.7,57.6,-58.7Z" transform="translate(100 100)" filter="url(#glow)" />
<path
fill="#1E40AF"
d="M57.6,-58.7C72.7,-42.6,81.5,-21.3,82,0.5C82.5,22.3,74.7,44.6,59.7,60.1C44.6,75.6,22.3,84.3,0,84.3C-22.3,84.2,-44.6,75.5,-61.1,60.1C-77.6,44.6,-88.3,22.3,-87.6,0.7C-86.9,-20.8,-74.7,-41.6,-58.2,-57.7C-41.6,-73.8,-20.8,-85.2,0.2,-85.4C21.3,-85.6,42.6,-74.7,57.6,-58.7Z"
transform="translate(100 100)"
filter="url(#glow)"
/>
</svg>
<div class="z-1 absolute top-5">
<img class="w-28 ml-5" src={logo} alt="logo">
<img class="w-28 ml-5" src={logo} alt="logo" />
</div>
</div>
<!-- End Column -->
</div>
</div>
</div>
<div class="card w-full bg-[#09090B] border-t sm:border rounded-none sm:rounded-xl border-slate-700 m-auto ">
<div
class="card w-full bg-[#09090B] border-t sm:border rounded-none sm:rounded-xl border-slate-700 m-auto"
>
<div class="card-body">
<p class="text-gray-400 italic mb-2 text-sm">Last updated: 24.07.2024</p>
<p class="text-gray-300 mb-5">
Please carefully read the terms and conditions before using this website.
By using the site, you agree to these terms as well as our
<a href="/privacy-policy" class="text-blue-400 hover:text-white hover:underline">Privacy Policy</a>
Stocknear has the right to alter or modify these conditions at any time.
<p class="text-gray-400 italic mb-2 text-sm">
Last updated: 24.07.2024
</p>
<p class="text-gray-300 mb-5">
Please carefully read the terms and conditions before using this
website. By using the site, you agree to these terms as well as
our
<a
href="/privacy-policy"
class="text-blue-400 hover:text-white hover:underline"
>Privacy Policy</a
>
Stocknear has the right to alter or modify these conditions at any
time.
</p>
<h1 class="text-white text-2xl font-medium text-start underline">
Stocknear does not provide investment advice
</h1>
<p class="text-gray-300 mb-5">
The information provided is solely for educational purposes only.
Before making any investments or financial decisions, we recommend that you consult with a knowledgeable financial adviser.
<br>
<br>
Stocknear's content is not financial advice in any way. We do not and will never make recommendations on our website. Our analyst data is supplied by a third source, and we do not recommend making judgments primarily exclusively on analyst price predictions or projections. We give this information so that users may learn more about equities and discover what analysts say about them. Analysts can make mistakes, thus making a conclusion purely on this data we believe is risky.
<br>
<br>
Stocknear does not know you, your personal investment goals, or your risk tolerance, so we do not and will not give you any financial advice on our platform.
The information provided is solely for educational purposes
only. Before making any investments or financial decisions, we
recommend that you consult with a knowledgeable financial
adviser.
<br />
<br />
Stocknear's content is not financial advice in any way. We do not
and will never make recommendations on our website. Our analyst data
is supplied by a third source, and we do not recommend making judgments
primarily exclusively on analyst price predictions or projections.
We give this information so that users may learn more about equities
and discover what analysts say about them. Analysts can make mistakes,
thus making a conclusion purely on this data we believe is risky.
<br />
<br />
Stocknear does not know you, your personal investment goals, or your
risk tolerance, so we do not and will not give you any financial
advice on our platform.
<br>
<br>
We always advise seeking expert assistance, whether it is financial, legal, or tax guidance. We do not offer any.
<br>
<br>
<br />
<br />
We always advise seeking expert assistance, whether it is financial,
legal, or tax guidance. We do not offer any.
<br />
<br />
Stocknear is not a broker/dealer or a licensed investment advisor.
<br>
<br>
IN NO EVENT SHALL ANY OF THE STOCKNEAR PARTIES BE LIABLE FOR ANY INVESTMENT GAIN/LOSS YOU INCUR IN THE STOCK MARKET.
<br>
<br>
YOU AGREE THAT THE SERVICE DOES NOT PROVIDE TRADING, INVESTING, FINANCIAL, TAX, LEGAL, OR OTHER ADVICE, AND YOU ACCEPT SOLE RESPONSIBILITY FOR ANY DECISIONS YOU MAKE BASED ON INFORMATION OBTAINED FROM THE SERVICE. THE SERVICE DOES NOT PROVIDE FINANCIAL PLANNING, INVESTMENT ADVICE, BROKERAGE, OR TAX ADVICE.
<br />
<br />
IN NO EVENT SHALL ANY OF THE STOCKNEAR PARTIES BE LIABLE FOR ANY
INVESTMENT GAIN/LOSS YOU INCUR IN THE STOCK MARKET.
<br />
<br />
YOU AGREE THAT THE SERVICE DOES NOT PROVIDE TRADING, INVESTING, FINANCIAL,
TAX, LEGAL, OR OTHER ADVICE, AND YOU ACCEPT SOLE RESPONSIBILITY FOR
ANY DECISIONS YOU MAKE BASED ON INFORMATION OBTAINED FROM THE SERVICE.
THE SERVICE DOES NOT PROVIDE FINANCIAL PLANNING, INVESTMENT ADVICE,
BROKERAGE, OR TAX ADVICE.
</p>
<h1 class="text-2xl font-medium text-white text-start underline">
Stocknear does not guarantee accuracy of data
</h1>
<p class="text-gray-300 mb-5">
Our stock data comes from a variety of sources.
Although every attempt is made to assure correctness, it cannot always be guaranteed.
Before making an investment choice, stocknear recommends that you confirm the accuracy of any data by reviewing a company's SEC filings.
Our stock data comes from a variety of sources. Although every
attempt is made to assure correctness, it cannot always be
guaranteed. Before making an investment choice, stocknear
recommends that you confirm the accuracy of any data by
reviewing a company's SEC filings.
</p>
<h1 class="text-2xl font-medium text-white text-start underline">
Use of our content
</h1>
<p class="text-gray-300 mb-5">
It is not permitted to republish our content in its entirety without our express authorization. You can, however, utilize snippets of the content as long as you do not edit it and clearly mention where you received it.
It is not permitted to republish our content in its entirety
without our express authorization. You can, however, utilize
snippets of the content as long as you do not edit it and
clearly mention where you received it.
</p>
<h1 class="text-2xl font-medium text-white text-start underline">
Liability of stocknear and its authors
</h1>
<p class="text-gray-300 mb-5">
Stocknear or its authors will not be liable to any party for any damages resulting from the use of the site's content.
The contents of our pages were created with the utmost care. However, we cannot guarantee the accuracy, completeness and timeliness of the content. As a service provider, we are responsible for our own content on these pages under the general laws according to § 7 para.1 TMG. According to §§ 8 to 10 TMG, however, we are not obligated as a service provider to monitor transmitted or stored third-party information or to investigate circumstances that indicate illegal activity. Obligations to remove or block the use of information under the general laws remain unaffected. However, liability in this regard is only possible from the point in time at which a concrete infringement of the law becomes known. If we become aware of such infringements, we will remove this content immediately.
Stocknear or its authors will not be liable to any party for any
damages resulting from the use of the site's content. The
contents of our pages were created with the utmost care.
However, we cannot guarantee the accuracy, completeness and
timeliness of the content. As a service provider, we are
responsible for our own content on these pages under the general
laws according to § 7 para.1 TMG. According to §§ 8 to 10 TMG,
however, we are not obligated as a service provider to monitor
transmitted or stored third-party information or to investigate
circumstances that indicate illegal activity. Obligations to
remove or block the use of information under the general laws
remain unaffected. However, liability in this regard is only
possible from the point in time at which a concrete infringement
of the law becomes known. If we become aware of such
infringements, we will remove this content immediately.
</p>
<h1 class="text-2xl font-medium text-white text-start underline">
Copyright
</h1>
<p class="text-gray-300 mb-5">
The content and works created by the site operators on these pages are subject to German copyright law. The reproduction, editing, distribution and any kind of exploitation outside the limits of copyright require the written consent of the respective author or creator. Downloads and copies of this site are only permitted for private, non-commercial use. Insofar as the content on this site was not created by the operator, the copyrights of third parties are respected. In particular, third-party content is identified as such. Should you nevertheless become aware of a copyright infringement, please inform us accordingly. If we become aware of any infringements, we will remove such content immediately.
<br>
<br>
We respect other people's intellectual property rights. It is our policy to react to any accusation that Content submitted on the Service violates the copyright or other intellectual property rights of any person or entity ("Infringement").
<br>
<br>
If you are a copyright owner, or authorized to act on their behalf, and believe that a copyrighted work has been copied in a way that constitutes copyright infringement, please submit your claim via email to dcma@stockunlock.com, with the subject line: "Copyright Infringement," and include in your claim a detailed description of the alleged Infringement as detailed below, under "DMCA Notice and Procedure for Copyright Infringement Claims."
The content and works created by the site operators on these
pages are subject to German copyright law. The reproduction,
editing, distribution and any kind of exploitation outside the
limits of copyright require the written consent of the
respective author or creator. Downloads and copies of this site
are only permitted for private, non-commercial use. Insofar as
the content on this site was not created by the operator, the
copyrights of third parties are respected. In particular,
third-party content is identified as such. Should you
nevertheless become aware of a copyright infringement, please
inform us accordingly. If we become aware of any infringements,
we will remove such content immediately.
<br />
<br />
We respect other people's intellectual property rights. It is our
policy to react to any accusation that Content submitted on the Service
violates the copyright or other intellectual property rights of any
person or entity ("Infringement").
<br />
<br />
If you are a copyright owner, or authorized to act on their behalf,
and believe that a copyrighted work has been copied in a way that
constitutes copyright infringement, please submit your claim via
email to dcma@stockunlock.com, with the subject line: "Copyright
Infringement," and include in your claim a detailed description of
the alleged Infringement as detailed below, under "DMCA Notice and
Procedure for Copyright Infringement Claims."
<br>
<br>
You may be held accountable for damages (including costs and attorneys' fees) for misrepresentation or bad-faith claims on the infringement of any Content found on and/or through Service on your copyright.
<br>
<br>
On this website we use some images on this website from <a href="https://de.freepik.com/" class="text-blue-400 sm:hover:text-white">FreePik</a>.
<br />
<br />
You may be held accountable for damages (including costs and attorneys'
fees) for misrepresentation or bad-faith claims on the infringement
of any Content found on and/or through Service on your copyright.
<br />
<br />
On this website we use some images on this website from
<a
href="https://de.freepik.com/"
class="text-blue-400 sm:hover:text-white">FreePik</a
>.
</p>
<h3 class="text-2xl font-medium text-white text-start underline">
Subscriptions
</h3>
<p class="text-gray-300 mb-5">
We may offer you the ability to purchase subscriptions via Lemon Squeezy. Terms specific to a subscription will be disclosed to you at or prior to the time at which you purchase the subscription, and by purchasing the subscription you are agreeing to those terms.
<br>
<br>
Subscription fees are due in advance and your subscription will automatically renew for the annual or other subscription period you originally signed up for, until you notify us of your decision to terminate your subscription.
<br>
<br>
Cancellation can be performed via the billing portal on the Account Settings page or via email to support@stocknear.com.
<br>
<br>
If you are not 100% satisfied with your purchase, you can get a full refund on subscription fees up to 30 days from the initial date of purchase (i.e., subscription date). After 30 days, the fees for this product are completely non-refundable. Refund requests can be made to support@stocknear.com.
We may offer you the ability to purchase subscriptions via Lemon
Squeezy. Terms specific to a subscription will be disclosed to
you at or prior to the time at which you purchase the
subscription, and by purchasing the subscription you are
agreeing to those terms.
<br />
<br />
Subscription fees are due in advance and your subscription will automatically
renew for the annual or other subscription period you originally
signed up for, until you notify us of your decision to terminate
your subscription.
<br />
<br />
Cancellation can be performed via the billing portal on the Account
Settings page or via email to support@stocknear.com.
<br />
<br />
If you are not 100% satisfied with your purchase, you can get a full
refund on subscription fees up to 30 days from the initial date of
purchase (i.e., subscription date). After 30 days, the fees for this
product are completely non-refundable. Refund requests can be made
to support@stocknear.com.
</p>
<h3 class="text-2xl font-medium text-white text-start underline">
Changes to the Price and Service Plans.
</h3>
<p class="text-gray-300 mb-5">
We may at our reasonable discretion change the price of our subscription plans from time to time to reflect the effect of changes in the total costs associated with our service. Examples of costs elements that affect the price of our subscription plans include production and licensing costs, costs for the technical provision and distribution of our service, customer service and other costs of sales (e.g., billing and payment, marketing), general administration and other overhead costs (e.g., rent, interest and other financing costs, costs of personnel, service providers and services, IT systems, energy), as well as state-imposed fees, contributions, taxes and duties. Any price changes will apply no earlier than 30 days following notice to you. You can cancel your membership at any time during the notice period to avoid future charges.
We may at our reasonable discretion change the price of our
subscription plans from time to time to reflect the effect of
changes in the total costs associated with our service. Examples
of costs elements that affect the price of our subscription
plans include production and licensing costs, costs for the
technical provision and distribution of our service, customer
service and other costs of sales (e.g., billing and payment,
marketing), general administration and other overhead costs
(e.g., rent, interest and other financing costs, costs of
personnel, service providers and services, IT systems, energy),
as well as state-imposed fees, contributions, taxes and duties.
Any price changes will apply no earlier than 30 days following
notice to you. You can cancel your membership at any time during
the notice period to avoid future charges.
</p>
<h1 class="text-2xl font-medium text-white text-start underline">
@ -211,28 +301,40 @@ import ArrowLogo from "lucide-svelte/icons/move-up-right";
</h1>
<div class="text-gray-300">
Lifetime access refers to the right to use our Services for as long as they are provided by Stocknear.
<br>
<br>
Stocknear intends to provide access to its Services for the lifetime of the company. As long as Stocknear continues to operate and offer the Services, users with lifetime access will be able to use the Services.
<br>
<br>
While Stocknear commits to maintaining the Services for the lifetime of the company, we do not guarantee perpetuity. In the event that Stocknear ceases to operate or decides to discontinue the Services, lifetime access will terminate.
Lifetime access refers to the right to use our Services for as
long as they are provided by Stocknear.
<br />
<br />
Stocknear intends to provide access to its Services for the lifetime
of the company. As long as Stocknear continues to operate and offer
the Services, users with lifetime access will be able to use the
Services.
<br />
<br />
While Stocknear commits to maintaining the Services for the lifetime
of the company, we do not guarantee perpetuity. In the event that
Stocknear ceases to operate or decides to discontinue the Services,
lifetime access will terminate.
</div>
<h1 class="text-2xl font-medium text-white text-start underline">
Termination
</h1>
<div class="text-gray-300">
We may cancel or suspend your account and deny access to the Service at any time, without prior notice or responsibility, for any reason whatsoever and without limitation, including but not limited to a breach of the Terms.
<br>
<br>
If you want to close your account, simply stop using the Service or contact us via email and we will delete your account.
<br>
<br>
All provisions of the Terms that, by their nature, should survive termination shall do so, including, without limitation, ownership sections, warranty disclaimers, indemnification, and liability limitations.
We may cancel or suspend your account and deny access to the
Service at any time, without prior notice or responsibility, for
any reason whatsoever and without limitation, including but not
limited to a breach of the Terms.
<br />
<br />
If you want to close your account, simply stop using the Service
or contact us via email and we will delete your account.
<br />
<br />
All provisions of the Terms that, by their nature, should survive
termination shall do so, including, without limitation, ownership
sections, warranty disclaimers, indemnification, and liability limitations.
</div>
<h1 class="text-2xl font-medium text-white text-start underline">
@ -240,13 +342,20 @@ import ArrowLogo from "lucide-svelte/icons/move-up-right";
</h1>
<div class="text-gray-300">
We may amend Terms at any time by posting the amended terms on this site. It is your responsibility to review these Terms periodically.
<br>
<br>
Your continued use of the Platform following the posting of revised Terms means that you accept and agree to the changes. You are expected to check this page frequently so you are aware of any changes, as they are binding on you.
<br>
<br>
By continuing to access or use our Service after any revisions become effective, you agree to be bound by the revised terms. If you do not agree to the new terms, you are no longer authorized to use Service.
We may amend Terms at any time by posting the amended terms on
this site. It is your responsibility to review these Terms
periodically.
<br />
<br />
Your continued use of the Platform following the posting of revised
Terms means that you accept and agree to the changes. You are expected
to check this page frequently so you are aware of any changes, as
they are binding on you.
<br />
<br />
By continuing to access or use our Service after any revisions become
effective, you agree to be bound by the revised terms. If you do
not agree to the new terms, you are no longer authorized to use Service.
</div>
<h1 class="text-2xl font-medium text-white text-start underline">
@ -254,26 +363,45 @@ import ArrowLogo from "lucide-svelte/icons/move-up-right";
</h1>
<div class="text-gray-300">
All data on this website is provided solely for informational reasons and should not be used to make trading or investing decisions.
<br>
<br>
We are, nevertheless, dedicated to displaying the highest-quality and most accurate statistics possible. If you see any errors or inconsistencies, please let us know by using the contact form or emailing us directly at support@stocknear.com.
<br>
<br>
Our Financial Data is provided soley by <a href="https://site.financialmodelingprep.com/" class="text-blue-400 hover:underline">FMP</a> and <a href="https://docs.benzinga.com/home" class="text-blue-400 hover:underline">Benzinga</a>.
All data on this website is provided solely for informational
reasons and should not be used to make trading or investing
decisions.
<br />
<br />
We are, nevertheless, dedicated to displaying the highest-quality
and most accurate statistics possible. If you see any errors or inconsistencies,
please let us know by using the contact form or emailing us directly
at support@stocknear.com.
<br />
<br />
Our Financial Data is provided soley by
<a
href="https://site.financialmodelingprep.com/"
class="text-blue-400 hover:underline">FMP</a
>
and
<a
href="https://docs.benzinga.com/home"
class="text-blue-400 hover:underline">Benzinga</a
>.
</div>
<h1 class="text-2xl font-medium text-white text-start underline">
Complete Agreement
</h1>
<p class="text-gray-300 mb-5">
These terms and conditions of use, together with our
<a href="/privacy-policy" class="text-blue-400 hover:text-white hover:underline">Privacy Policy</a>
<a
href="/privacy-policy"
class="text-blue-400 hover:text-white hover:underline"
>Privacy Policy</a
>
and
<a href="/imprint" class="text-blue-400 hover:text-whitehover:underline">Imprint</a>
<a
href="/imprint"
class="text-blue-400 hover:text-whitehover:underline"
>Imprint</a
>
<!--
<a href="/impressum/" >
<span class="text-[#FB6A67]">Imprint</span>,
@ -281,25 +409,21 @@ import ArrowLogo from "lucide-svelte/icons/move-up-right";
</a>
-->
represent the whole agreement between you and stocknear.
<br>
<br>
YOU ACKNOWLEDGE THAT YOU HAVE READ THESE TERMS OF SERVICE AND AGREE TO BE BOUND BY THEM BY USING SERVICE OR OTHER SERVICES PROVIDED BY US.
<br />
<br />
YOU ACKNOWLEDGE THAT YOU HAVE READ THESE TERMS OF SERVICE AND AGREE
TO BE BOUND BY THEM BY USING SERVICE OR OTHER SERVICES PROVIDED BY
US.
</p>
</div>
</div>
</main>
<aside class="hidden lg:block relative fixed w-1/4 ml-4">
<div on:click={() => goto('/pricing')} class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer">
<div
on:click={() => goto("/pricing")}
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<div class="w-auto lg:w-full p-1 flex flex-col m-auto px-2 sm:px-0">
<div class="w-full flex justify-between items-center p-3 mt-3">
<h2 class="text-start text-xl font-semibold text-white ml-3">
@ -313,7 +437,10 @@ import ArrowLogo from "lucide-svelte/icons/move-up-right";
</div>
</div>
<div on:click={() => goto('/donation')} class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer">
<div
on:click={() => goto("/donation")}
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<div class="w-auto lg:w-full p-1 flex flex-col m-auto px-2 sm:px-0">
<div class="w-full flex justify-between items-center p-3 mt-3">
<h2 class="text-start text-xl font-semibold text-white ml-3">
@ -327,7 +454,10 @@ import ArrowLogo from "lucide-svelte/icons/move-up-right";
</div>
</div>
<div on:click={() => goto('/contact')} class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer">
<div
on:click={() => goto("/contact")}
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<div class="w-auto lg:w-full p-1 flex flex-col m-auto px-2 sm:px-0">
<div class="w-full flex justify-between items-center p-3 mt-3">
<h2 class="text-start text-xl font-semibold text-white ml-3">
@ -340,16 +470,8 @@ import ArrowLogo from "lucide-svelte/icons/move-up-right";
</span>
</div>
</div>
</aside>
</div>
</div>
</div>
</section>

View File

@ -142,7 +142,7 @@
<aside class="hidden lg:block relative fixed w-1/4 ml-4">
{#if data?.user?.tier !== "Pro" || data?.user?.freeTrial}
<div
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<a
href="/pricing"
@ -162,7 +162,7 @@
{/if}
<div
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<a
href={"/price-alert"}
@ -181,7 +181,7 @@
</div>
<div
class="w-full bg-[#141417] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-lg h-fit pb-4 mt-4 cursor-pointer"
class="w-full bg-[#27272A] duration-100 ease-out sm:hover:text-white text-gray-400 sm:hover:border-gray-700 border border-gray-800 rounded-md h-fit pb-4 mt-4 cursor-pointer"
>
<a
href={"/stock-screener"}