ui fix
This commit is contained in:
parent
184ac52059
commit
6792b74084
@ -80,7 +80,7 @@
|
||||
{:else}
|
||||
<a class="block relative" href="/pricing">
|
||||
<span
|
||||
class="text-base font-semibold text-blue-link blur-sm group-hover:blur-[3px]"
|
||||
class=" font-semibold text-blue-link blur-sm group-hover:blur-[3px]"
|
||||
>
|
||||
XX
|
||||
</span>
|
||||
|
||||
@ -252,7 +252,7 @@
|
||||
The DCF model signals a
|
||||
|
||||
{#if change < -3}
|
||||
<span class="text-[#00FC50]">
|
||||
<span class="text-green-600 dark:text-[#00FC50]">
|
||||
<svg
|
||||
class="w-6 h-6 sm:w-7 sm:h-7 inline-block"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
@ -307,7 +307,7 @@
|
||||
{:else if change < 0}
|
||||
<div class="text-white">
|
||||
The Stock Price is
|
||||
<span class="text-[#00FC50]"
|
||||
<span class="text-green-600 dark:text-[#00FC50]"
|
||||
>{Math?.abs(change)}% undervalued</span
|
||||
>.
|
||||
</div>
|
||||
|
||||
@ -357,7 +357,7 @@
|
||||
{#each tableList as item, index}
|
||||
<!-- row -->
|
||||
<tr
|
||||
class="sm:hover:bg-[#245073]/10 odd:bg-odd border-b border-gray-800"
|
||||
class="dark:sm:hover:bg-[#245073]/10 odd:bg-[#F6F7F8] dark:odd:bg-oddborder-b border-gray-800"
|
||||
>
|
||||
<td class="text-white text-sm sm:text-[1rem] whitespace-nowrap">
|
||||
{new Date(item?.date)?.toLocaleDateString("en-US", {
|
||||
@ -385,7 +385,7 @@
|
||||
{#if index === tableList?.length - 1}
|
||||
n/a
|
||||
{:else if item?.shortVolume > tableList[index + 1]?.shortVolume}
|
||||
<span class="text-[#00FC50]">
|
||||
<span class="text-green-600 dark:text-[#00FC50]">
|
||||
+{(
|
||||
((item?.shortVolume -
|
||||
tableList[index + 1]?.shortVolume) /
|
||||
|
||||
@ -83,7 +83,7 @@
|
||||
rawData?.dividendPrior -
|
||||
1 >
|
||||
0
|
||||
? "before:content-['+'] text-[#00FC50]"
|
||||
? "before:content-['+'] text-green-500 dark:text-[#00FC50]"
|
||||
: 'text-[#FF2F1F]'}"
|
||||
>
|
||||
{(
|
||||
|
||||
@ -207,7 +207,7 @@
|
||||
<p>
|
||||
Current Price: {stockChartData?.price?.toFixed(2)} (<span
|
||||
class="text-xs {change >= 0
|
||||
? "before:content-['+'] text-[#00FC50]"
|
||||
? "before:content-['+'] text-green-500 dark:text-[#00FC50]"
|
||||
: 'text-[#FF2F1F]'}">{change?.toFixed(2)}</span
|
||||
>)
|
||||
</p>
|
||||
|
||||
@ -99,7 +99,7 @@
|
||||
{#each displayList as item}
|
||||
<!-- row -->
|
||||
<tr
|
||||
class="sm:hover:bg-[#245073]/10 odd:bg-odd border-b border-gray-800"
|
||||
class="dark:sm:hover:bg-[#245073]/10 odd:bg-[#F6F7F8] dark:odd:bg-oddborder-b border-gray-800"
|
||||
>
|
||||
<td class=" text-sm sm:text-[1rem] whitespace-nowrap">
|
||||
<a
|
||||
@ -138,7 +138,7 @@
|
||||
|
||||
<td
|
||||
class="{item?.profitMargin >= 0
|
||||
? "before:content-['+'] text-[#00FC50]"
|
||||
? "before:content-['+'] text-green-500 dark:text-[#00FC50]"
|
||||
: 'text-[#FF2F1F]'} text-sm sm:text-[1rem] whitespace-nowrap text-end"
|
||||
>
|
||||
{abbreviateNumber(item?.profitMargin)}%
|
||||
@ -146,7 +146,7 @@
|
||||
|
||||
<td
|
||||
class="{item?.avgChange1D >= 0
|
||||
? "before:content-['+'] text-[#00FC50]"
|
||||
? "before:content-['+'] text-green-500 dark:text-[#00FC50]"
|
||||
: 'text-[#FF2F1F]'} text-end text-sm sm:text-[1rem] whitespace-nowrap"
|
||||
>
|
||||
{item?.avgChange1D?.toFixed(2) ?? "n/a"}%
|
||||
|
||||
@ -343,7 +343,7 @@
|
||||
<tbody>
|
||||
{#each data?.user?.tier === "Pro" ? displayList : displayList?.slice(0, 3) as item, index}
|
||||
<tr
|
||||
class="sm:hover:bg-[#245073]/10 odd:bg-odd border-b border-gray-800 {index +
|
||||
class="dark:sm:hover:bg-[#245073]/10 odd:bg-[#F6F7F8] dark:odd:bg-oddborder-b border-gray-800 {index +
|
||||
1 ===
|
||||
displayList?.slice(0, 3)?.length &&
|
||||
!['Pro']?.includes(data?.user?.tier)
|
||||
@ -388,7 +388,7 @@
|
||||
class="text-white text-sm sm:text-[1rem] text-end whitespace-nowrap"
|
||||
>
|
||||
{#if item?.put_call_ratio <= 1 && item?.put_call_ratio !== null}
|
||||
<span class="text-[#00FC50]"
|
||||
<span class="text-green-600 dark:text-[#00FC50]"
|
||||
>{item?.put_call_ratio?.toFixed(2)}</span
|
||||
>
|
||||
{:else if item?.put_call_ratio > 1 && item?.put_call_ratio !== null}
|
||||
|
||||
@ -319,7 +319,7 @@
|
||||
<tbody>
|
||||
{#each data?.user?.tier === "Pro" ? displayList : displayList?.slice(0, 3) as item, index}
|
||||
<tr
|
||||
class="sm:hover:bg-[#245073]/10 odd:bg-odd border-b border-gray-800 {index +
|
||||
class="dark:sm:hover:bg-[#245073]/10 odd:bg-[#F6F7F8] dark:odd:bg-oddborder-b border-gray-800 {index +
|
||||
1 ===
|
||||
displayList?.slice(0, 3)?.length &&
|
||||
!['Pro']?.includes(data?.user?.tier)
|
||||
@ -364,7 +364,7 @@
|
||||
class="text-white text-sm sm:text-[1rem] text-end whitespace-nowrap"
|
||||
>
|
||||
{#if item?.put_call_ratio <= 1 && item?.put_call_ratio !== null}
|
||||
<span class="text-[#00FC50]"
|
||||
<span class="text-green-600 dark:text-[#00FC50]"
|
||||
>{item?.put_call_ratio?.toFixed(2)}</span
|
||||
>
|
||||
{:else if item?.put_call_ratio > 1 && item?.put_call_ratio !== null}
|
||||
|
||||
@ -436,7 +436,7 @@
|
||||
<tbody>
|
||||
{#each data?.user?.tier === "Pro" ? displayList : displayList?.slice(0, 3) as item, index}
|
||||
<tr
|
||||
class="sm:hover:bg-[#245073]/10 odd:bg-odd border-b border-gray-800 {index +
|
||||
class="dark:sm:hover:bg-[#245073]/10 odd:bg-[#F6F7F8] dark:odd:bg-oddborder-b border-gray-800 {index +
|
||||
1 ===
|
||||
displayList?.slice(0, 3)?.length &&
|
||||
!['Pro']?.includes(data?.user?.tier)
|
||||
@ -481,7 +481,7 @@
|
||||
class="text-white text-sm sm:text-[1rem] text-end whitespace-nowrap"
|
||||
>
|
||||
{#if item?.putCallRatio <= 1 && item?.putCallRatio !== null}
|
||||
<span class="text-[#00FC50]"
|
||||
<span class="text-green-600 dark:text-[#00FC50]"
|
||||
>{item?.putCallRatio?.toFixed(2)}</span
|
||||
>
|
||||
{:else if item?.putCallRatio >= 0 && item?.putCallRatio !== null}
|
||||
|
||||
@ -592,7 +592,7 @@
|
||||
<tbody>
|
||||
{#each volumeList as item, index}
|
||||
<tr
|
||||
class="sm:hover:bg-[#245073]/10 odd:bg-odd border-b border-gray-800 {index +
|
||||
class="dark:sm:hover:bg-[#245073]/10 odd:bg-[#F6F7F8] dark:odd:bg-oddborder-b border-gray-800 {index +
|
||||
1 ===
|
||||
volumeList?.slice(0, 3)?.length &&
|
||||
!['Pro']?.includes(data?.user?.tier)
|
||||
@ -668,7 +668,7 @@
|
||||
class="text-white text-sm sm:text-[1rem] text-end whitespace-nowrap"
|
||||
>
|
||||
{#if item?.changeOI >= 0}
|
||||
<span class="text-[#00FC50]"
|
||||
<span class="text-green-600 dark:text-[#00FC50]"
|
||||
>+{item?.changeOI?.toLocaleString("en-US")}</span
|
||||
>
|
||||
{:else if item?.changeOI < 0}
|
||||
@ -712,7 +712,7 @@
|
||||
<tbody>
|
||||
{#each openInterestList as item, index}
|
||||
<tr
|
||||
class="sm:hover:bg-[#245073]/10 odd:bg-odd border-b border-gray-800 {index +
|
||||
class="dark:sm:hover:bg-[#245073]/10 odd:bg-[#F6F7F8] dark:odd:bg-oddborder-b border-gray-800 {index +
|
||||
1 ===
|
||||
openInterestList?.slice(0, 3)?.length &&
|
||||
!['Pro']?.includes(data?.user?.tier)
|
||||
@ -788,7 +788,7 @@
|
||||
class="text-white text-sm sm:text-[1rem] text-end whitespace-nowrap"
|
||||
>
|
||||
{#if item?.changeOI >= 0}
|
||||
<span class="text-[#00FC50]"
|
||||
<span class="text-green-600 dark:text-[#00FC50]"
|
||||
>+{item?.changeOI?.toLocaleString("en-US")}</span
|
||||
>
|
||||
{:else if item?.changeOI < 0}
|
||||
@ -971,7 +971,7 @@
|
||||
</td>
|
||||
<td class="text-sm sm:text-[1rem] text-end text-white">
|
||||
{#if item?.changeOI >= 0 && item?.changeOI !== null}
|
||||
<span class="text-[#00FC50]"
|
||||
<span class="text-green-600 dark:text-[#00FC50]"
|
||||
>+{item?.changeOI?.toLocaleString("en-US")}</span
|
||||
>
|
||||
{:else if item?.changeOI < 0 && item?.changeOI !== null}
|
||||
@ -985,7 +985,7 @@
|
||||
|
||||
<td class="text-sm sm:text-[1rem] text-end text-white">
|
||||
{#if item?.changesPercentageOI > 0 && item?.changesPercentageOI !== undefined}
|
||||
<span class="text-[#00FC50]"
|
||||
<span class="text-green-600 dark:text-[#00FC50]"
|
||||
>+{item?.changesPercentageOI + "%"}</span
|
||||
>
|
||||
{:else if item?.changesPercentageOI < 0 && item?.changesPercentageOI !== undefined}
|
||||
|
||||
@ -301,7 +301,7 @@
|
||||
<tbody>
|
||||
{#each data?.user?.tier === "Pro" ? displayList : displayList?.slice(0, 3) as item, index}
|
||||
<tr
|
||||
class="sm:hover:bg-[#245073]/10 odd:bg-odd border-b border-gray-800 {index +
|
||||
class="dark:sm:hover:bg-[#245073]/10 odd:bg-[#F6F7F8] dark:odd:bg-oddborder-b border-gray-800 {index +
|
||||
1 ===
|
||||
displayList?.slice(0, 3)?.length &&
|
||||
!['Pro']?.includes(data?.user?.tier)
|
||||
@ -340,7 +340,7 @@
|
||||
class="text-white text-sm sm:text-[1rem] text-end whitespace-nowrap"
|
||||
>
|
||||
{#if item?.put_call_ratio <= 1 && item?.put_call_ratio !== null}
|
||||
<span class="text-[#00FC50]"
|
||||
<span class="text-green-600 dark:text-[#00FC50]"
|
||||
>{item?.put_call_ratio?.toFixed(2)}</span
|
||||
>
|
||||
{:else if item?.put_call_ratio > 1 && item?.put_call_ratio !== null}
|
||||
|
||||
@ -274,7 +274,7 @@
|
||||
<tbody>
|
||||
{#each data?.user?.tier === "Pro" ? displayList : displayList?.slice(0, 3) as item, index}
|
||||
<tr
|
||||
class="sm:hover:bg-[#245073]/10 odd:bg-odd border-b border-gray-800 {index +
|
||||
class="dark:sm:hover:bg-[#245073]/10 odd:bg-[#F6F7F8] dark:odd:bg-oddborder-b border-gray-800 {index +
|
||||
1 ===
|
||||
displayList?.slice(0, 3)?.length &&
|
||||
!['Pro']?.includes(data?.user?.tier)
|
||||
@ -309,7 +309,7 @@
|
||||
class="text-white text-sm sm:text-[1rem] text-end whitespace-nowrap"
|
||||
>
|
||||
{#if item?.put_call_ratio <= 1 && item?.put_call_ratio !== null}
|
||||
<span class="text-[#00FC50]"
|
||||
<span class="text-green-600 dark:text-[#00FC50]"
|
||||
>{item?.put_call_ratio?.toFixed(2)}</span
|
||||
>
|
||||
{:else if item?.put_call_ratio > 1 && item?.put_call_ratio !== null}
|
||||
|
||||
@ -103,7 +103,7 @@
|
||||
>
|
||||
<div class="text-[#c3c6d0] text-sm mb-2 flex items-center">
|
||||
<span>Net Call Prem</span>
|
||||
<span class="ml-1 text-green-500">●</span>
|
||||
<span class="ml-1 text-green-600">●</span>
|
||||
</div>
|
||||
<div class="flex items-baseline">
|
||||
<span class="text-xl font-bold text-white"
|
||||
|
||||
@ -749,7 +749,7 @@
|
||||
<tbody>
|
||||
{#each data?.user?.tier !== "Pro" ? displayList?.slice(0, 3) : displayList as item, index}
|
||||
<tr
|
||||
class="sm:hover:bg-[#245073]/10 odd:bg-odd border-b border-gray-800 {index +
|
||||
class="dark:sm:hover:bg-[#245073]/10 odd:bg-[#F6F7F8] dark:odd:bg-oddborder-b border-gray-800 {index +
|
||||
1 ===
|
||||
rawData?.slice(0, 3)?.length &&
|
||||
!['Pro']?.includes(data?.user?.tier)
|
||||
@ -767,7 +767,7 @@
|
||||
>
|
||||
<span
|
||||
class="inline-block px-2 {item?.optionType === 'Calls'
|
||||
? 'text-[#00FC50]'
|
||||
? 'text-green-600 dark:text-[#00FC50]'
|
||||
: 'text-[#FF2F1F]'}"
|
||||
>
|
||||
{item?.optionType}
|
||||
@ -815,7 +815,7 @@
|
||||
<td
|
||||
class="text-sm sm:text-[1rem] text-end whitespace-nowrap {item?.sentiment ===
|
||||
'Bullish'
|
||||
? 'text-[#00FC50]'
|
||||
? 'text-green-600 dark:text-[#00FC50]'
|
||||
: item?.sentiment === 'Bearish'
|
||||
? 'text-[#FF2F1F]'
|
||||
: 'text-[#C8A32D]'} "
|
||||
@ -1002,7 +1002,7 @@
|
||||
</td>
|
||||
<td class="text-sm sm:text-[1rem] text-end text-white">
|
||||
{#if item?.changeOI >= 0 && item?.changeOI !== null}
|
||||
<span class="text-[#00FC50]"
|
||||
<span class="text-green-600 dark:text-[#00FC50]"
|
||||
>+{item?.changeOI?.toLocaleString("en-US")}</span
|
||||
>
|
||||
{:else if item?.changeOI < 0 && item?.changeOI !== null}
|
||||
@ -1016,7 +1016,7 @@
|
||||
|
||||
<td class="text-sm sm:text-[1rem] text-end text-white">
|
||||
{#if item?.changesPercentageOI > 0 && item?.changesPercentageOI !== undefined}
|
||||
<span class="text-[#00FC50]"
|
||||
<span class="text-green-600 dark:text-[#00FC50]"
|
||||
>+{item?.changesPercentageOI + "%"}</span
|
||||
>
|
||||
{:else if item?.changesPercentageOI < 0 && item?.changesPercentageOI !== undefined}
|
||||
|
||||
@ -479,7 +479,7 @@
|
||||
<tbody>
|
||||
{#each data?.user?.tier === "Pro" ? displayList : displayList?.slice(0, 3) as item, index}
|
||||
<tr
|
||||
class="sm:hover:bg-[#245073]/10 odd:bg-odd border-b border-gray-800 {index +
|
||||
class="dark:sm:hover:bg-[#245073]/10 odd:bg-[#F6F7F8] dark:odd:bg-oddborder-b border-gray-800 {index +
|
||||
1 ===
|
||||
displayList?.slice(0, 3)?.length &&
|
||||
!['Pro']?.includes(data?.user?.tier)
|
||||
@ -494,7 +494,7 @@
|
||||
|
||||
<td class="text-white text-sm sm:text-[1rem] text-end">
|
||||
{#if item?.changesPercentage >= 0 && item?.changesPercentage !== null}
|
||||
<span class="text-[#00FC50]"
|
||||
<span class="text-green-600 dark:text-[#00FC50]"
|
||||
>+{item?.changesPercentage >= 1000
|
||||
? abbreviateNumberWithColor(item?.changesPercentage)
|
||||
: item?.changesPercentage?.toFixed(2)}%</span
|
||||
@ -524,7 +524,7 @@
|
||||
|
||||
<td class="text-white text-sm sm:text-[1rem] text-end">
|
||||
{#if item?.changesPercentageOI >= 0 && item?.changesPercentageOI !== null}
|
||||
<span class="text-[#00FC50]"
|
||||
<span class="text-green-600 dark:text-[#00FC50]"
|
||||
>+{item?.changesPercentageOI >= 1000
|
||||
? abbreviateNumberWithColor(item?.changesPercentageOI)
|
||||
: item?.changesPercentageOI?.toFixed(2)}%</span
|
||||
|
||||
@ -194,7 +194,7 @@
|
||||
<div class="sm:mt-10">
|
||||
The Options activity signals a
|
||||
{#if signal === "Bullish"}
|
||||
<span class="text-[#00FC50]">
|
||||
<span class="text-green-600 dark:text-[#00FC50]">
|
||||
<svg
|
||||
class="w-6 h-6 sm:w-7 sm:h-7 inline-block"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
|
||||
@ -212,7 +212,7 @@
|
||||
r="16"
|
||||
fill="none"
|
||||
class="stroke-current {r2Score >= 65
|
||||
? 'text-[#00FC50]'
|
||||
? 'text-green-600 dark:text-[#00FC50]'
|
||||
: r2Score >= 50
|
||||
? 'text-[#F8901E]'
|
||||
: 'text-[#FF2F1F]'}"
|
||||
@ -267,7 +267,7 @@
|
||||
r="16"
|
||||
fill="none"
|
||||
class="stroke-current {mape <= 15
|
||||
? 'text-[#00FC50]'
|
||||
? 'text-green-600 dark:text-[#00FC50]'
|
||||
: mape <= 35
|
||||
? 'text-[#F8901E]'
|
||||
: 'text-[#FF2F1F]'}"
|
||||
|
||||
@ -1,7 +1,8 @@
|
||||
<script lang="ts">
|
||||
import { setCache, getCache } from "$lib/store";
|
||||
import { monthNames } from "$lib/utils";
|
||||
import highcharts from "$lib/highcharts.ts";
|
||||
import { abbreviateNumber } from "$lib/utils";
|
||||
import { mode } from "mode-watcher";
|
||||
|
||||
export let data;
|
||||
export let symbol;
|
||||
@ -140,13 +141,13 @@
|
||||
radius: 6,
|
||||
fillColor: markerColor,
|
||||
lineWidth: 2,
|
||||
lineColor: "#FFFFFF",
|
||||
lineColor: $mode === "light" ? "black" : "white",
|
||||
},
|
||||
dataLabels: {
|
||||
enabled: true,
|
||||
format: formattedType,
|
||||
style: {
|
||||
color: "#FFFFFF",
|
||||
color: $mode === "light" ? "black" : "white",
|
||||
fontWeight: "bold",
|
||||
fontSize: "14px",
|
||||
},
|
||||
@ -159,7 +160,7 @@
|
||||
// Create Highcharts options
|
||||
const options = {
|
||||
chart: {
|
||||
backgroundColor: "#09090B",
|
||||
backgroundColor: $mode === "light" ? "#fff" : "#09090B",
|
||||
height: 360,
|
||||
},
|
||||
credits: { enabled: false },
|
||||
@ -167,20 +168,20 @@
|
||||
title: {
|
||||
text: `<h3 class="mt-3 mb-1 text-[1rem] sm:text-lg">${symbol} - ${numOfRatings} Transaction</h3>`,
|
||||
useHTML: true,
|
||||
style: { color: "white" },
|
||||
style: { color: $mode === "light" ? "black" : "white" },
|
||||
},
|
||||
xAxis: {
|
||||
type: "datetime",
|
||||
endOnTick: false,
|
||||
categories: dates,
|
||||
crosshair: {
|
||||
color: "#fff", // Set the color of the crosshair line
|
||||
color: $mode === "light" ? "black" : "white", // Set the color of the crosshair line
|
||||
width: 1, // Adjust the line width as needed
|
||||
dashStyle: "Solid",
|
||||
},
|
||||
labels: {
|
||||
style: {
|
||||
color: "#fff",
|
||||
color: $mode === "light" ? "black" : "white",
|
||||
},
|
||||
distance: 20, // Increases space between label and axis
|
||||
formatter: function () {
|
||||
@ -206,9 +207,9 @@
|
||||
},
|
||||
yAxis: {
|
||||
gridLineWidth: 1,
|
||||
gridLineColor: "#111827",
|
||||
gridLineColor: $mode === "light" ? "#d1d5dc" : "#111827",
|
||||
labels: {
|
||||
style: { color: "white" },
|
||||
style: { color: $mode === "light" ? "black" : "white" },
|
||||
},
|
||||
title: { text: null },
|
||||
opposite: true,
|
||||
@ -220,21 +221,27 @@
|
||||
borderColor: "rgba(255, 255, 255, 0.2)", // Slightly visible white border
|
||||
borderWidth: 1,
|
||||
style: {
|
||||
color: "#fff",
|
||||
color: "white",
|
||||
fontSize: "16px",
|
||||
padding: "10px",
|
||||
},
|
||||
borderRadius: 4,
|
||||
formatter: function () {
|
||||
// Format the x value to display time in hh:mm format
|
||||
let tooltipContent = `<span class="text-white m-auto text-black text-[1rem] font-[501]">${this?.x}</span><br>`;
|
||||
let tooltipContent = `<span class=" m-auto text-[1rem] font-[501]">${new Date(
|
||||
this?.x,
|
||||
).toLocaleDateString("en-US", {
|
||||
year: "numeric",
|
||||
month: "short",
|
||||
day: "numeric",
|
||||
})}</span><br>`;
|
||||
|
||||
// Loop through each point in the shared tooltip
|
||||
this.points.forEach((point) => {
|
||||
tooltipContent += `<span class="text-white font-semibold text-sm">${point.series.name}:</span>
|
||||
<span class="text-white font-normal text-sm" style="color:${point.color}">${
|
||||
point.y
|
||||
}</span><br>`;
|
||||
tooltipContent += `<span class=" font-semibold text-sm">${point.series.name}:</span>
|
||||
<span class=" font-normal text-sm">${abbreviateNumber(
|
||||
point.y,
|
||||
)}</span><br>`;
|
||||
});
|
||||
|
||||
return tooltipContent;
|
||||
@ -242,7 +249,7 @@
|
||||
},
|
||||
plotOptions: {
|
||||
series: {
|
||||
color: "white",
|
||||
color: $mode === "light" ? "black" : "white",
|
||||
animation: false, // Disable series animation
|
||||
states: {
|
||||
hover: {
|
||||
@ -261,7 +268,7 @@
|
||||
: value;
|
||||
}),
|
||||
type: "area",
|
||||
color: "#FFFFFF",
|
||||
color: $mode === "light" ? "#2C6288" : "white",
|
||||
lineWidth: 1,
|
||||
animation: false,
|
||||
zIndex: 10,
|
||||
@ -290,7 +297,7 @@
|
||||
}
|
||||
|
||||
$: {
|
||||
if (symbol && timePeriod) {
|
||||
if ((symbol && timePeriod) || $mode) {
|
||||
isLoaded = false;
|
||||
config = null;
|
||||
historicalData = [];
|
||||
@ -313,8 +320,8 @@
|
||||
<label
|
||||
on:click={() => (timePeriod = item)}
|
||||
class="px-3 py-1 {timePeriod === item
|
||||
? 'bg-white text-black '
|
||||
: 'text-white bg-table text-opacity-[0.6]'} border border-gray-700 transition ease-out duration-100 sm:hover:bg-white sm:hover:text-black rounded-md cursor-pointer"
|
||||
? 'bg-gray-300 dark:bg-white text-muted'
|
||||
: 'text-muted dark:text-white bg-gray-100 dark:bg-table text-opacity-[0.6]'} border border-gray-200 dark:border-gray-700 transition ease-out duration-100 sm:hover:bg-white sm:hover:text-black rounded-md cursor-pointer"
|
||||
>
|
||||
{item}
|
||||
</label>
|
||||
@ -322,8 +329,8 @@
|
||||
<a
|
||||
href="/pricing"
|
||||
class="px-3 py-1 flex flex-row items-center {timePeriod === item
|
||||
? 'bg-white text-black '
|
||||
: 'text-white bg-table text-opacity-[0.6]'} border border-gray-700 transition ease-out duration-100 sm:hover:bg-white sm:hover:text-black rounded-md cursor-pointer"
|
||||
? 'bg-white text-muted'
|
||||
: 'text-muted dark:text-white bg-table text-opacity-[0.6]'} border border-gray-200 dark:border-gray-700 transition ease-out duration-100 sm:hover:bg-white sm:hover:text-black rounded-md cursor-pointer"
|
||||
>
|
||||
{item}
|
||||
<svg
|
||||
@ -341,13 +348,13 @@
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
class="border border-gray-800 rounded w-full"
|
||||
class="border border-gray-300 dark:border-gray-800 rounded w-full"
|
||||
use:highcharts={config}
|
||||
></div>
|
||||
{:else}
|
||||
<div class="h-[250px] sm:h-[350px]">
|
||||
<div
|
||||
class="flex h-full w-full flex-col items-center justify-center rounded-sm border border-gray-800 p-6 text-center md:p-12"
|
||||
class="flex h-full w-full flex-col items-center justify-center rounded-sm border border-gray-300 dark:border-gray-800 p-6 text-center md:p-12"
|
||||
>
|
||||
<div class="mb-4 text-white text-[1rem] sm:text-xl font-semibold">
|
||||
No chart data available for {symbol}
|
||||
|
||||
@ -77,7 +77,7 @@
|
||||
r="16"
|
||||
fill="none"
|
||||
class="stroke-current {oneYearResult > 5
|
||||
? 'text-[#00FC50]'
|
||||
? 'text-green-600 dark:text-[#00FC50]'
|
||||
: oneYearResult < 5
|
||||
? 'text-[#FF2F1F]'
|
||||
: 'text-white'} text-opacity-[0.7]"
|
||||
@ -114,7 +114,7 @@
|
||||
r="16"
|
||||
fill="none"
|
||||
class="stroke-current {oneMonthResult > 5
|
||||
? 'text-[#00FC50]'
|
||||
? 'text-green-600 dark:text-[#00FC50]'
|
||||
: oneMonthResult < 5
|
||||
? 'text-[#FF2F1F]'
|
||||
: 'text-white'} "
|
||||
|
||||
@ -553,7 +553,7 @@
|
||||
class="text-white text-end text-sm sm:text-[1rem] whitespace-nowrap"
|
||||
>
|
||||
{#if item?.changeInSharesNumberPercentage >= 0}
|
||||
<span class="text-[#00FC50]"
|
||||
<span class="text-green-600 dark:text-[#00FC50]"
|
||||
>+{abbreviateNumber(
|
||||
item?.changeInSharesNumberPercentage?.toFixed(2),
|
||||
)}%</span
|
||||
|
||||
@ -69,9 +69,9 @@
|
||||
animation: false,
|
||||
},
|
||||
title: {
|
||||
text: `<div class="text-muted dark:text-gray-200 mt-3 text-center font-normal text-2xl">Price Target: <span class="${changesPercentage >= 0 ? "text-green-500 dark:text-[#00FC50]" : "text-[#FF2F1F]"}">$${priceTarget}</span></div>
|
||||
text: `<div class="text-muted dark:text-gray-200 mt-3 text-center font-normal text-2xl">Price Target: <span class="${changesPercentage >= 0 ? "text-green-600 dark:text-[#00FC50]" : "text-[#FF2F1F]"}">$${priceTarget}</span></div>
|
||||
<div class="text-muted dark:text-gray-200 mb-2 text-center font-normal text-xl">(${changesPercentage}% ${changesPercentage >= 0 ? "upside" : "downside"})</div>
|
||||
<div class="text-muted dark:text-gray-200 text-center font-normal text-xl flex justify-center items-center">Analyst Consensus: <span class="ml-1 ${consensusRating === "Buy" ? "text-green-500 dark:text-[#00FC50]" : consensusRating === "Sell" ? "text-red-500 dark:text-[#FF2F1F]" : consensusRating === "Hold" ? "text-orange-500 dark:text-[#D5AB31]" : "text-muted dark:text-white"}">${consensusRating ?? "n/a"}</span></div>`,
|
||||
<div class="text-muted dark:text-gray-200 text-center font-normal text-xl flex justify-center items-center">Analyst Consensus: <span class="ml-1 ${consensusRating === "Buy" ? "text-green-600 dark:text-[#00FC50]" : consensusRating === "Sell" ? "text-red-500 dark:text-[#FF2F1F]" : consensusRating === "Hold" ? "text-orange-500 dark:text-[#D5AB31]" : "text-muted dark:text-white"}">${consensusRating ?? "n/a"}</span></div>`,
|
||||
style: {
|
||||
color: "white",
|
||||
// Using inline CSS for margin-top and margin-bottom
|
||||
|
||||
@ -44,7 +44,7 @@
|
||||
</div>
|
||||
Unlimited access to all data and tools
|
||||
</dt>
|
||||
<dd class="mt-2 text-base leading-7">
|
||||
<dd class="mt-2 leading-7">
|
||||
Unlimited access to all data and tools, giving you the edge over
|
||||
everyone else in the market.
|
||||
</dd>
|
||||
@ -72,7 +72,7 @@
|
||||
</div>
|
||||
Realtime Options & Dark Pool Data
|
||||
</dt>
|
||||
<dd class="mt-2 text-base leading-7">
|
||||
<dd class="mt-2 leading-7">
|
||||
Instant access to live options & dark pool data to spot
|
||||
opportunities and trade with precision before the market moves.
|
||||
</dd>
|
||||
@ -106,7 +106,7 @@
|
||||
</div>
|
||||
Top Wallstreet Analyst Ratings
|
||||
</dt>
|
||||
<dd class="mt-2 text-base leading-7">
|
||||
<dd class="mt-2 leading-7">
|
||||
Follow ratings from the best analysts on Wall Street to stay
|
||||
ahead.
|
||||
</dd>
|
||||
@ -135,7 +135,7 @@
|
||||
</div>
|
||||
Up to 30 years financial history
|
||||
</dt>
|
||||
<dd class="mt-2 text-base leading-7">
|
||||
<dd class="mt-2 leading-7">
|
||||
We deliver premium Wall Street data with top-tier accuracy and up
|
||||
to 30 years of history.
|
||||
</dd>
|
||||
|
||||
@ -166,7 +166,7 @@
|
||||
r="16"
|
||||
fill="none"
|
||||
class="stroke-current {rating > 5
|
||||
? 'text-[#00FC50]'
|
||||
? 'text-green-600 dark:text-[#00FC50]'
|
||||
: rating < 5
|
||||
? 'text-[#FF2F1F]'
|
||||
: 'text-white'} "
|
||||
|
||||
@ -73,7 +73,7 @@
|
||||
{#each watchList as item}
|
||||
<!-- row -->
|
||||
<tr
|
||||
class="sm:hover:bg-[#245073]/10 odd:bg-odd border-b-[#09090B]"
|
||||
class="dark:sm:hover:bg-[#245073]/10 odd:bg-[#F6F7F8] dark:odd:bg-oddborder-b-[#09090B]"
|
||||
>
|
||||
<td
|
||||
class="text-sm sm:text-[1rem] text-start border-b-[#09090B]"
|
||||
@ -128,7 +128,7 @@
|
||||
class="border-b-[#09090B] text-end text-sm sm:text-[1rem] whitespace-nowrap"
|
||||
>
|
||||
{#if item?.changesPercentage >= 0}
|
||||
<span class="text-[#00FC50]"
|
||||
<span class="text-green-600 dark:text-[#00FC50]"
|
||||
>+{item?.changesPercentage?.toFixed(2)}%</span
|
||||
>
|
||||
{:else}
|
||||
|
||||
@ -922,7 +922,7 @@
|
||||
>
|
||||
<a
|
||||
href="/"
|
||||
class="ml-3 mb-5 flex justify-end items-center h-9 w-9 shrink-0 gap-2 rounded-full text-lg font-semibold text-primary-foreground md:h-10 md:w-10 md:text-base"
|
||||
class="ml-3 mb-5 flex justify-end items-center h-9 w-9 shrink-0 gap-2 rounded-full text-lg font-semibold text-primary-foreground md:h-10 md:w-10 md:"
|
||||
>
|
||||
<img
|
||||
class="avatar w-9 3xl:w-12 rounded-full"
|
||||
|
||||
@ -474,7 +474,7 @@
|
||||
: "decrease"} of {analystReport?.highPriceChange}% from the
|
||||
latest price.
|
||||
</div>
|
||||
<table class="w-full text-right xs:text-sm sm:text-base mt-5">
|
||||
<table class="w-full text-right xs:text-sm sm: mt-5">
|
||||
<thead
|
||||
><tr
|
||||
class="border-b border-gray-600 font-normal text-sm sm:text-[1rem]"
|
||||
|
||||
@ -141,8 +141,8 @@
|
||||
>
|
||||
<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 Wall Street Analysts</li>
|
||||
<li><a href="/" class="text-muted dark:text-gray-300">Home</a></li>
|
||||
<li class="text-muted dark:text-gray-300">Top Wall Street Analysts</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@ -153,10 +153,10 @@
|
||||
>
|
||||
<main class="w-full lg:w-3/4 lg:pr-5">
|
||||
<div class="mb-6 border-b-[2px]">
|
||||
<h1 class="mb-1 text-white text-2xl sm:text-3xl font-bold">
|
||||
<h1 class="mb-1 text-2xl sm:text-3xl font-bold">
|
||||
Top Wall Street Analysts
|
||||
</h1>
|
||||
<p class="mb-3 px-1 text-base font-semibold text-muted sm:px-0">
|
||||
<p class="mb-3 px-1 font-semibold text-muted sm:px-0">
|
||||
A list of Wall Street Analysts, ranked by their performance
|
||||
</p>
|
||||
</div>
|
||||
@ -167,7 +167,7 @@
|
||||
class="w-full m-auto rounded-none sm:rounded-md mb-4 overflow-x-auto sm:overflow-hidden"
|
||||
>
|
||||
<table
|
||||
class="table table-sm table-compact rounded-none sm:rounded-md w-full bg-table border border-gray-800 m-auto"
|
||||
class="table table-sm table-compact no-scrollbar rounded-none sm:rounded-md w-full bg-white dark:bg-table border border-gray-300 dark:border-gray-800 m-auto"
|
||||
>
|
||||
<thead>
|
||||
<TableHeader {columns} {sortOrders} {sortData} />
|
||||
@ -175,16 +175,14 @@
|
||||
<tbody>
|
||||
{#each analystList as item, index}
|
||||
<tr
|
||||
class="sm:hover:bg-[#245073]/10 odd:bg-odd {index +
|
||||
class="dark:sm:hover:bg-[#245073]/10 odd:bg-[#F6F7F8] dark:odd:bg-odd{index +
|
||||
1 ===
|
||||
rawData?.length &&
|
||||
!['Pro', 'Plus']?.includes(data?.user?.tier)
|
||||
? 'opacity-[0.1]'
|
||||
: ''}"
|
||||
>
|
||||
<td
|
||||
class="text-white text-sm sm:text-[1rem] text-white text-center"
|
||||
>
|
||||
<td class=" text-sm sm:text-[1rem] text-center">
|
||||
{item?.rank}
|
||||
</td>
|
||||
|
||||
@ -194,10 +192,10 @@
|
||||
<div class="flex flex-col items-start">
|
||||
<a
|
||||
href={"/analysts/" + item?.analystId}
|
||||
class="sm:hover:text-white text-blue-400"
|
||||
class="font-semibold dark:font-normal text-blue-500 sm:hover:text-muted dark:sm:hover:text-white dark:text-blue-400"
|
||||
>{item?.analystName}
|
||||
</a>
|
||||
<!--<span class="text-white">{item?.companyName} </span>-->
|
||||
<!--<span class="">{item?.companyName} </span>-->
|
||||
<div class="flex flex-row items-center mt-1">
|
||||
{#each Array.from({ length: 5 }) as _, i}
|
||||
{#if i < Math.floor(item?.analystScore)}
|
||||
@ -214,7 +212,7 @@
|
||||
</svg>
|
||||
{:else}
|
||||
<svg
|
||||
class="w-3.5 h-3.5 text-gray-300 dark:text-gray-500"
|
||||
class="w-3.5 h-3.5 text-gray-400 dark:text-gray-500"
|
||||
aria-hidden="true"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
fill="currentColor"
|
||||
@ -227,7 +225,7 @@
|
||||
{/if}
|
||||
{/each}
|
||||
|
||||
<span class="ml-1 text-gray-400">
|
||||
<span class="ml-1 dark:text-gray-400">
|
||||
({item?.analystScore !== null
|
||||
? item?.analystScore
|
||||
: 0})
|
||||
@ -237,43 +235,46 @@
|
||||
</td>
|
||||
|
||||
<td
|
||||
class="text-end text-sm sm:text-[1rem] whitespace-nowrap text-white"
|
||||
class="text-end text-sm sm:text-[1rem] whitespace-nowrap"
|
||||
>
|
||||
{#if Number(item?.successRate) >= 0}
|
||||
<span class="text-[#00FC50]"
|
||||
<span
|
||||
class="font-semibold dark:font-normal text-green-600 dark:text-[#00FC50]"
|
||||
>+{Number(item?.successRate)?.toFixed(2)}%</span
|
||||
>
|
||||
{/if}
|
||||
</td>
|
||||
|
||||
<td
|
||||
class="text-end text-sm sm:text-[1rem] whitespace-nowrap text-white"
|
||||
class="text-end text-sm sm:text-[1rem] whitespace-nowrap"
|
||||
>
|
||||
{#if Number(item?.avgReturn) >= 0}
|
||||
<span class="text-[#00FC50]"
|
||||
<span
|
||||
class="font-semibold dark:font-normal text-green-600 dark:text-[#00FC50]"
|
||||
>+{Number(item?.avgReturn)?.toFixed(2)}%</span
|
||||
>
|
||||
{:else}
|
||||
<span class="text-[#B84242]"
|
||||
<span
|
||||
class="font-semibold dark:font-normal text-[#B84242]"
|
||||
>{Number(item?.avgReturn)?.toFixed(2)}%</span
|
||||
>
|
||||
{/if}
|
||||
</td>
|
||||
|
||||
<td
|
||||
class="text-end text-white text-sm sm:text-[1rem] whitespace-nowrap"
|
||||
class="text-end text-sm sm:text-[1rem] whitespace-nowrap"
|
||||
>
|
||||
{item?.totalRatings}
|
||||
</td>
|
||||
|
||||
<!--
|
||||
<td class="text-white text-sm sm:text-[1rem] whitespace-nowrap text-white text-end">
|
||||
<td class=" text-sm sm:text-[1rem] whitespace-nowrap text-end">
|
||||
{item?.mainSectors?.at(0)}
|
||||
</td>
|
||||
-->
|
||||
|
||||
<td
|
||||
class="text-end text-sm sm:text-[1rem] whitespace-nowrap text-white"
|
||||
class="text-end text-sm sm:text-[1rem] whitespace-nowrap"
|
||||
>
|
||||
{item?.lastRating !== null
|
||||
? new Date(item?.lastRating)?.toLocaleString(
|
||||
@ -314,12 +315,12 @@
|
||||
<div class="mx-auto max-w-7xl px-3 xs:px-6 lg:px-8">
|
||||
<div class="mx-auto max-w-2xl md:text-center">
|
||||
<h3
|
||||
class="mt-2 text-2xl font-bold tracking-tight text-white bp:text-3xl"
|
||||
class="mt-2 text-2xl font-bold tracking-tight bp:text-3xl"
|
||||
>
|
||||
Analyst Star Rankings
|
||||
</h3>
|
||||
<p
|
||||
class="mt-3 text-base leading-8 text-muted dark:text-faded xl:text-lg"
|
||||
class="mt-3 leading-8 text-muted dark:text-faded xl:text-lg"
|
||||
>
|
||||
Our analyst star rankings are based on these four factors
|
||||
</p>
|
||||
@ -329,9 +330,7 @@
|
||||
class="grid grid-cols-1 gap-x-8 gap-y-10 md:grid-cols-2 lg:max-w-none lg:grid-cols-4 lg:gap-y-16"
|
||||
>
|
||||
<div class="relative pl-14">
|
||||
<dt
|
||||
class="text-base font-semibold leading-4 text-white md:leading-7"
|
||||
>
|
||||
<dt class=" font-semibold leading-4 md:leading-7">
|
||||
<div
|
||||
class="absolute left-0 top-0 flex h-10 w-10 items-center justify-center rounded-md bg-[#fff]"
|
||||
>
|
||||
@ -351,16 +350,12 @@
|
||||
</div>
|
||||
Success Rate
|
||||
</dt>
|
||||
<dd
|
||||
class="mt-2 text-base leading-7 text-muted dark:text-faded"
|
||||
>
|
||||
<dd class="mt-2 leading-7 text-muted dark:text-faded">
|
||||
The percentage of ratings that are profitable.
|
||||
</dd>
|
||||
</div>
|
||||
<div class="relative pl-14">
|
||||
<dt
|
||||
class="text-base font-semibold leading-4 text-white md:leading-7"
|
||||
>
|
||||
<dt class=" font-semibold leading-4 md:leading-7">
|
||||
<div
|
||||
class="absolute left-0 top-0 flex h-10 w-10 items-center justify-center rounded-md bg-[#fff]"
|
||||
>
|
||||
@ -380,17 +375,13 @@
|
||||
</div>
|
||||
Average Return
|
||||
</dt>
|
||||
<dd
|
||||
class="mt-2 text-base leading-7 text-muted dark:text-faded"
|
||||
>
|
||||
<dd class="mt-2 leading-7 text-muted dark:text-faded">
|
||||
The average percentage return within one year of the
|
||||
rating.
|
||||
</dd>
|
||||
</div>
|
||||
<div class="relative pl-14">
|
||||
<dt
|
||||
class="text-base font-semibold leading-4 text-white md:leading-7"
|
||||
>
|
||||
<dt class=" font-semibold leading-4 md:leading-7">
|
||||
<div
|
||||
class="absolute left-0 top-0 flex h-10 w-10 items-center justify-center rounded-md bg-[#fff]"
|
||||
>
|
||||
@ -410,17 +401,13 @@
|
||||
</div>
|
||||
Rating Count
|
||||
</dt>
|
||||
<dd
|
||||
class="mt-2 text-base leading-7 text-muted dark:text-faded"
|
||||
>
|
||||
<dd class="mt-2 leading-7 text-muted dark:text-faded">
|
||||
The more ratings the analyst has provided, the higher
|
||||
the score.
|
||||
</dd>
|
||||
</div>
|
||||
<div class="relative pl-14">
|
||||
<dt
|
||||
class="text-base font-semibold leading-4 text-white md:leading-7"
|
||||
>
|
||||
<dt class=" font-semibold leading-4 md:leading-7">
|
||||
<div
|
||||
class="absolute left-0 top-0 flex h-10 w-10 items-center justify-center rounded-md bg-[#fff]"
|
||||
>
|
||||
@ -440,9 +427,7 @@
|
||||
</div>
|
||||
Recency
|
||||
</dt>
|
||||
<dd
|
||||
class="mt-2 text-base leading-7 text-muted dark:text-faded"
|
||||
>
|
||||
<dd class="mt-2 leading-7 text-muted dark:text-faded">
|
||||
Ratings provided within the past year contribute to a
|
||||
higher score.
|
||||
</dd>
|
||||
@ -465,9 +450,7 @@
|
||||
<h2 class="text-start text-xl font-semibold ml-3">
|
||||
Top Stocks Picks
|
||||
</h2>
|
||||
<ArrowLogo
|
||||
class="w-8 h-8 mr-3 shrink-0 text-gray-400 dark:text-white"
|
||||
/>
|
||||
<ArrowLogo class="w-8 h-8 mr-3 shrink-0 text-gray-400 dark:" />
|
||||
</div>
|
||||
<span class="p-3 ml-3 mr-3">
|
||||
Get the latest top Wall Street analyst ratings.
|
||||
@ -486,9 +469,7 @@
|
||||
<h2 class="text-start text-xl font-semibold ml-3">
|
||||
Top Shorted Stocks
|
||||
</h2>
|
||||
<ArrowLogo
|
||||
class="w-8 h-8 mr-3 shrink-0 text-gray-400 dark:text-white"
|
||||
/>
|
||||
<ArrowLogo class="w-8 h-8 mr-3 shrink-0 text-gray-400 dark:" />
|
||||
</div>
|
||||
<span class="p-3 ml-3 mr-3">
|
||||
Never miss out another short squeeze
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
<script lang="ts">
|
||||
import { screenWidth, numberOfUnreadNotification } from "$lib/store";
|
||||
import { screenWidth } from "$lib/store";
|
||||
import { sectorNavigation } from "$lib/utils";
|
||||
import TableHeader from "$lib/components/Table/TableHeader.svelte";
|
||||
import { onMount } from "svelte";
|
||||
@ -180,10 +180,12 @@
|
||||
>
|
||||
<div class="text-sm sm:text-[1rem] breadcrumbs">
|
||||
<ul>
|
||||
<li><a href="/" class="text-gray-300">Home</a></li>
|
||||
<li><a href="/analysts" class="text-gray-300">Analyst</a></li>
|
||||
<li><a href="/" class="text-muted dark:text-gray-300">Home</a></li>
|
||||
<li>
|
||||
<a href="/analysts" class="text-muted dark:text-gray-300">Analyst</a>
|
||||
</li>
|
||||
|
||||
<li class="text-gray-300">{analystName ?? "n/a"}</li>
|
||||
<li class="text-muted dark:text-gray-300">{analystName ?? "n/a"}</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@ -200,7 +202,7 @@
|
||||
>
|
||||
<div class="shrink-0">
|
||||
<svg
|
||||
class="h-16 w-16 sm:h-20 sm:w-20 text-gray-200"
|
||||
class="h-16 w-16 sm:h-20 sm:w-20 text-gray-500 dark:text-gray-200"
|
||||
fill="currentColor"
|
||||
viewBox="0 0 24 24"
|
||||
style="max-width:100px"
|
||||
@ -212,10 +214,12 @@
|
||||
>
|
||||
</div>
|
||||
<div class="mt-0 pt-0.5 text-left">
|
||||
<h1 class="mb-0 text-2xl font-bold text-white">
|
||||
<h1 class="mb-0 text-2xl font-bold">
|
||||
{analystName ?? "n/a"}
|
||||
</h1>
|
||||
<p class="mb-0.5 text-[1rem] font-semibold text-gray-300">
|
||||
<p
|
||||
class="mb-0.5 text-[1rem] font-semibold text-muted dark:text-gray-300"
|
||||
>
|
||||
Stock Analyst at {companyName ?? "n/a"}
|
||||
</p>
|
||||
<div class="inline-flex items-center">
|
||||
@ -235,7 +239,7 @@
|
||||
</svg>
|
||||
{:else}
|
||||
<svg
|
||||
class="w-5 h-5 text-gray-300 dark:text-gray-500"
|
||||
class="w-5 h-5 text-gray-400 dark:text-gray-500"
|
||||
aria-hidden="true"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
fill="currentColor"
|
||||
@ -248,39 +252,39 @@
|
||||
{/if}
|
||||
{/each}
|
||||
</div>
|
||||
<span class="ml-1 text-[1rem] text-white"
|
||||
<span class="ml-1 text-[1rem]"
|
||||
>({analystScore ?? "n/a"})</span
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
class="mt-4 grid grid-cols-2 overflow-hidden rounded border border-gray-600 py-2 text-center md:grid-cols-4 md:p-0 lg:mt-0 lg:border-none"
|
||||
class="mt-4 grid grid-cols-2 overflow-hidden rounded border border-gray-300 dark:border-gray-600 py-2 text-center md:grid-cols-4 md:p-0 lg:mt-0 lg:border-none"
|
||||
>
|
||||
<div class="flex flex-col px-4 py-2 bp:px-6 md:py-6">
|
||||
<div class="text-2xl font-semibold tracking-tight text-white">
|
||||
<div class="text-2xl font-semibold tracking-tight">
|
||||
# {rank ?? "n/a"}
|
||||
</div>
|
||||
<div
|
||||
class="text-[1rem] font-semibold leading-6 text-gray-300"
|
||||
class="text-[1rem] font-semibold leading-6 text-muted dark:text-gray-300"
|
||||
>
|
||||
Out of {numOfAnalysts ?? "n/a"} analysts
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
class="flex flex-col px-4 py-2 bp:px-6 sm:border-l sm:border-gray-600 md:py-6"
|
||||
class="flex flex-col px-4 py-2 bp:px-6 sm:border-l sm:border-gray-300 dark:sm:border-gray-600 md:py-6"
|
||||
>
|
||||
<div class="text-2xl font-bold tracking-tight text-white">
|
||||
<div class="text-2xl font-bold tracking-tight">
|
||||
{totalRatings ?? "n/a"}
|
||||
</div>
|
||||
<div
|
||||
class="text-[1rem] font-semibold leading-6 text-gray-300"
|
||||
class="text-[1rem] font-semibold leading-6 text-muted dark:text-gray-300"
|
||||
>
|
||||
Total ratings
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
class="flex flex-col px-4 py-2 bp:px-6 sm:border-l sm:border-gray-600 md:py-6"
|
||||
class="flex flex-col px-4 py-2 bp:px-6 sm:border-l sm:border-gray-300 dark:sm:border-gray-600 md:py-6"
|
||||
>
|
||||
<div class="text-2xl font-bold tracking-tight">
|
||||
<span
|
||||
@ -288,35 +292,35 @@
|
||||
? "before:content-['+'] text-[#36D984]"
|
||||
: successRate < 0 && successRate !== undefined
|
||||
? "text-[#EF4444]"
|
||||
: "text-white"}
|
||||
: ""}
|
||||
>{successRate !== undefined
|
||||
? successRate?.toFixed(2) + "%"
|
||||
: "n/a"}</span
|
||||
>
|
||||
</div>
|
||||
<div
|
||||
class="text-[1rem] font-semibold leading-6 text-gray-300"
|
||||
class="text-[1rem] font-semibold leading-6 text-muted dark:text-gray-300"
|
||||
>
|
||||
Success rate
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
class="flex flex-col px-4 py-2 bp:px-6 sm:border-l sm:border-gray-600 md:py-6"
|
||||
class="flex flex-col px-4 py-2 bp:px-6 sm:border-l sm:border-gray-300 dark:sm:border-gray-600 md:py-6"
|
||||
>
|
||||
<div class="text-2xl font-bold tracking-tight text-white">
|
||||
<div class="text-2xl font-bold tracking-tight">
|
||||
<span
|
||||
class={avgReturn >= 0 && avgReturn !== undefined
|
||||
? "before:content-['+'] text-[#36D984]"
|
||||
: avgReturn < 0 && avgReturn !== undefined
|
||||
? "text-[#EF4444]"
|
||||
: "text-white"}
|
||||
: ""}
|
||||
>{avgReturn !== undefined
|
||||
? avgReturn?.toFixed(2) + "%"
|
||||
: "n/a"}</span
|
||||
>
|
||||
</div>
|
||||
<div
|
||||
class="text-[1rem] font-semibold leading-6 text-gray-300"
|
||||
class="text-[1rem] font-semibold leading-6 text-muted dark:text-gray-300"
|
||||
>
|
||||
Average return
|
||||
</div>
|
||||
@ -325,9 +329,9 @@
|
||||
</div>
|
||||
|
||||
{#if data?.getAnalystStats?.mainSectors?.length > 0}
|
||||
<div class="mb-10 mt-10 text-white">
|
||||
<div class="mb-10 mt-10">
|
||||
<div
|
||||
class="relative my-3 space-y-2 rounded border border-gray-600 sm:my-6 p-4"
|
||||
class="relative my-3 space-y-2 rounded border border-gray-300 dark:border-gray-600 sm:my-6 p-4"
|
||||
>
|
||||
<div class="flex flex-col sm:flex-row">
|
||||
<div class="mb-2 font-semibold sm:mb-0">Main Sectors:</div>
|
||||
@ -337,7 +341,7 @@
|
||||
href={sectorNavigation?.find(
|
||||
(listItem) => listItem?.title === item,
|
||||
)?.link}
|
||||
class="px-3 text-sm py-1 sm:text-[1rem] rounded-md bg-white/10 sm:hover:bg-white/20 ml-0"
|
||||
class="inline-block badge bg-blue-50 dark:bg-primary duration-0 rounded-sm ml-1 px-3 m-auto text-blue-600 dark:text-blue-400 dark:sm:hover:text-white sm:hover:text-muted text-[1rem]"
|
||||
>
|
||||
{item}
|
||||
</a>
|
||||
@ -352,7 +356,7 @@
|
||||
{#each data?.getAnalystStats?.mainIndustries as item}
|
||||
<a
|
||||
href={`/list/industry/${item?.replace(/ /g, "-")?.replace(/&/g, "and")?.replace(/-{2,}/g, "-")?.toLowerCase()}`}
|
||||
class="px-3 text-sm py-1 sm:text-[1rem] rounded-md bg-white/10 sm:hover:bg-white/20 ml-0"
|
||||
class="inline-block badge bg-blue-50 dark:bg-primary duration-0 rounded-sm ml-1 px-3 m-auto text-blue-600 dark:text-blue-400 dark:sm:hover:text-white sm:hover:text-muted text-[1rem]"
|
||||
>
|
||||
{item}
|
||||
</a>
|
||||
@ -364,16 +368,16 @@
|
||||
{/if}
|
||||
|
||||
{#if rawData?.length > 0}
|
||||
<span class="text-white font-semibold text-xl sm:text-2xl">
|
||||
<span class=" font-semibold text-xl sm:text-2xl">
|
||||
{numOfStocks} Stocks
|
||||
</span>
|
||||
|
||||
<div class="w-full m-auto mt-10">
|
||||
<div class="w-full m-auto mt-4">
|
||||
<div
|
||||
class="w-full m-auto rounded-none sm:rounded-md mb-4 overflow-x-auto"
|
||||
>
|
||||
<table
|
||||
class="table table-sm table-compact rounded-none sm:rounded-md w-full bg-table border border-gray-800 m-auto"
|
||||
class="table table-sm table-compact no-scrollbar rounded-none sm:rounded-md w-full bg-white dark:bg-table border border-gray-300 dark:border-gray-800 m-auto"
|
||||
>
|
||||
<thead>
|
||||
<TableHeader {columns} {sortOrders} {sortData} />
|
||||
@ -381,7 +385,7 @@
|
||||
<tbody>
|
||||
{#each stockList as item, index}
|
||||
<tr
|
||||
class="sm:hover:bg-[#245073]/10 odd:bg-odd border-b-[#09090B]"
|
||||
class="dark:sm:hover:bg-[#245073]/10 odd:bg-[#F6F7F8] dark:odd:bg-odd"
|
||||
>
|
||||
<td class="hidden lg:table-cell"
|
||||
><button
|
||||
@ -393,7 +397,7 @@
|
||||
? 'rotate-180'
|
||||
: ''}"
|
||||
viewBox="0 0 20 20"
|
||||
fill="white"
|
||||
fill="currentColor"
|
||||
style="max-width:40px"
|
||||
><path
|
||||
fill-rule="evenodd"
|
||||
@ -410,20 +414,20 @@
|
||||
{#if index >= 5 && !["Pro", "Plus"]?.includes(data?.user?.tier)}
|
||||
<a class="block relative" href="/pricing">
|
||||
<span
|
||||
class="text-base font-semibold text-blue-link blur-sm group-hover:blur-[6px]"
|
||||
class=" font-semibold text-blue-link blur-sm group-hover:blur-[6px]"
|
||||
>
|
||||
XXXX
|
||||
</span>
|
||||
|
||||
<div
|
||||
class="ml-px max-w-[130px] truncate text-sm text-white blur-sm group-hover:blur-[6px] lg:max-w-[150px]"
|
||||
class="ml-px max-w-[130px] truncate text-sm blur-sm group-hover:blur-[6px] lg:max-w-[150px]"
|
||||
>
|
||||
XXXXXXXXXXXXXXXX
|
||||
</div>
|
||||
|
||||
<div class="absolute top-3 flex items-center">
|
||||
<svg
|
||||
class="size-5 text-[#fff]"
|
||||
class="size-5 text-muted dark:text-[#fff]"
|
||||
viewBox="0 0 20 20"
|
||||
fill="currentColor"
|
||||
style="max-width: 40px;"
|
||||
@ -437,7 +441,7 @@
|
||||
</svg>
|
||||
|
||||
<span
|
||||
class="ml-1 font-semibold text-gray-300 group-hover:text-white"
|
||||
class="ml-1 font-semibold text-muted dark:text-gray-300"
|
||||
>
|
||||
Upgrade
|
||||
</span>
|
||||
@ -447,7 +451,7 @@
|
||||
<div class="flex flex-col items-start">
|
||||
<HoverStockChart symbol={item?.ticker} />
|
||||
|
||||
<span class="text-white">
|
||||
<span class="">
|
||||
{item?.name?.length > charNumber
|
||||
? item?.name?.slice(0, charNumber) + "..."
|
||||
: item?.name}
|
||||
@ -460,18 +464,16 @@
|
||||
class="text-sm sm:text-[1rem] text-start whitespace-nowrap"
|
||||
>
|
||||
<div class="flex flex-col sm:flex-row items-start">
|
||||
<span class=" text-white mr-1"
|
||||
>{item?.action_company}:</span
|
||||
>
|
||||
<span class="mr-1">{item?.action_company}:</span>
|
||||
<span
|
||||
class=" {[
|
||||
'Strong Buy',
|
||||
'Buy',
|
||||
'Outperform',
|
||||
]?.includes(item?.rating_current)
|
||||
? 'text-[#00FC50]'
|
||||
? 'text-green-600 dark:text-[#00FC50]'
|
||||
: item?.rating_current === 'Hold'
|
||||
? 'text-[#FF7070]'
|
||||
? '"text-red-600 dark:text-[#FF7070]"'
|
||||
: [
|
||||
'Strong Sell',
|
||||
'Sell',
|
||||
@ -485,12 +487,11 @@
|
||||
</div>
|
||||
</td>
|
||||
|
||||
<td
|
||||
class="text-white text-sm sm:text-[1rem] whitespace-nowrap"
|
||||
>
|
||||
<td class=" text-sm sm:text-[1rem] whitespace-nowrap">
|
||||
<div class="flex flex-row items-center justify-end">
|
||||
{#if Math?.ceil(item?.adjusted_pt_prior) !== 0}
|
||||
<span class="text-gray-100 font-normal"
|
||||
<span
|
||||
class="text-muted dark:text-gray-100 font-normal"
|
||||
>{Math?.ceil(item?.adjusted_pt_prior)}</span
|
||||
>
|
||||
<svg
|
||||
@ -499,18 +500,18 @@
|
||||
viewBox="0 0 24 24"
|
||||
><path
|
||||
fill="none"
|
||||
stroke="white"
|
||||
stroke="currentColor"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
stroke-width="1.5"
|
||||
d="M4 12h16m0 0l-6-6m6 6l-6 6"
|
||||
/></svg
|
||||
>
|
||||
<span class="text-white font-semibold"
|
||||
<span class=" font-semibold"
|
||||
>{Math?.ceil(item?.adjusted_pt_current)}</span
|
||||
>
|
||||
{:else if Math?.ceil(item?.adjusted_pt_current) !== 0}
|
||||
<span class="text-white font-semibold"
|
||||
<span class=" font-semibold"
|
||||
>{Math?.ceil(item?.adjusted_pt_current)}</span
|
||||
>
|
||||
{:else}
|
||||
@ -520,29 +521,29 @@
|
||||
</td>
|
||||
|
||||
<td
|
||||
class="text-white text-end text-sm sm:text-[1rem] whitespace-nowrap"
|
||||
class=" text-end text-sm sm:text-[1rem] whitespace-nowrap"
|
||||
>
|
||||
{item?.price !== null ? item?.price : "n/a"}
|
||||
</td>
|
||||
|
||||
<td
|
||||
class="{item?.upside >= 0 && item?.upside !== null
|
||||
? "before:content-['+'] text-[#00FC50]"
|
||||
? "before:content-['+'] text-green-500 dark:text-[#00FC50]"
|
||||
: item?.upside < 0 && item?.upside !== null
|
||||
? 'text-[#FF2F1F]'
|
||||
: 'text-white'} text-end text-sm sm:text-[1rem] whitespace-nowrap"
|
||||
? 'text-red-600 dark:text-[#FF2F1F]'
|
||||
: ''} text-end text-sm sm:text-[1rem] whitespace-nowrap"
|
||||
>
|
||||
{item?.upside !== null ? item?.upside + "%" : "n/a"}
|
||||
</td>
|
||||
|
||||
<td
|
||||
class="text-white text-end text-sm sm:text-[1rem] whitespace-nowrap"
|
||||
class=" text-end text-sm sm:text-[1rem] whitespace-nowrap"
|
||||
>
|
||||
{item?.ratings !== null ? item?.ratings : "n/a"}
|
||||
</td>
|
||||
|
||||
<td
|
||||
class="text-white text-end text-sm sm:text-[1rem] whitespace-nowrap"
|
||||
class=" text-end text-sm sm:text-[1rem] whitespace-nowrap"
|
||||
>
|
||||
{new Date(item?.date).toLocaleString("en-US", {
|
||||
month: "short",
|
||||
@ -553,7 +554,7 @@
|
||||
</td>
|
||||
</tr>
|
||||
{#if checkedSymbol === item?.ticker}
|
||||
<tr class="bg-default"
|
||||
<tr class=""
|
||||
><td colspan="8" class="px-0" style=""
|
||||
><div class="-mt-0.5 px-0 pb-2">
|
||||
<div class="relative h-[400px]">
|
||||
|
||||
@ -35,8 +35,8 @@
|
||||
>
|
||||
<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 Analyst Stocks</li>
|
||||
<li><a href="/" class="text-muted dark:text-gray-300">Home</a></li>
|
||||
<li class="text-muted dark:text-gray-300">Top Analyst Stocks</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@ -47,7 +47,7 @@
|
||||
>
|
||||
<main class="w-full lg:pr-5">
|
||||
<div class="mb-6 border-b-[2px]">
|
||||
<h1 class="mb-3 text-white text-2xl sm:text-3xl font-bold">
|
||||
<h1 class="mb-3 text-2xl sm:text-3xl font-bold">
|
||||
Top Strong Buy Stocks
|
||||
</h1>
|
||||
</div>
|
||||
@ -56,7 +56,7 @@
|
||||
text={"Strong Buy stocks by top-rated analysts with a star rating of 4 or above, known for their exceptional accuracy and returns. Stocks are ranked based on the volume of analyst ratings."}
|
||||
/>
|
||||
|
||||
<div class="w-full m-auto mt-10">
|
||||
<div class="w-full m-auto">
|
||||
<Table
|
||||
{data}
|
||||
{rawData}
|
||||
@ -69,14 +69,10 @@
|
||||
<div class="mt-4 py-6 xl:mt-10 border-t border-gray-200">
|
||||
<div class="mx-auto max-w-7xl px-3 xs:px-6 lg:px-8">
|
||||
<div class="mx-auto max-w-2xl md:text-center">
|
||||
<h3
|
||||
class="mt-2 text-2xl font-bold tracking-tight text-white bp:text-3xl"
|
||||
>
|
||||
<h3 class="mt-2 text-2xl font-bold tracking-tight bp:text-3xl">
|
||||
Analyst Star Rankings
|
||||
</h3>
|
||||
<p
|
||||
class="mt-3 text-base leading-8 text-muted dark:text-faded xl:text-lg"
|
||||
>
|
||||
<p class="mt-3 leading-8 text-muted dark:text-faded xl:text-lg">
|
||||
Our analyst star rankings are based on these four factors
|
||||
</p>
|
||||
</div>
|
||||
@ -85,9 +81,7 @@
|
||||
class="grid grid-cols-1 gap-x-8 gap-y-10 md:grid-cols-2 lg:max-w-none lg:grid-cols-4 lg:gap-y-16"
|
||||
>
|
||||
<div class="relative pl-14">
|
||||
<dt
|
||||
class="text-base font-semibold leading-4 text-white md:leading-7"
|
||||
>
|
||||
<dt class=" font-semibold leading-4 md:leading-7">
|
||||
<div
|
||||
class="absolute left-0 top-0 flex h-10 w-10 items-center justify-center rounded-md bg-[#fff]"
|
||||
>
|
||||
@ -107,16 +101,12 @@
|
||||
</div>
|
||||
Success Rate
|
||||
</dt>
|
||||
<dd
|
||||
class="mt-2 text-base leading-7 text-muted dark:text-faded"
|
||||
>
|
||||
<dd class="mt-2 leading-7 text-muted dark:text-faded">
|
||||
The percentage of ratings that are profitable.
|
||||
</dd>
|
||||
</div>
|
||||
<div class="relative pl-14">
|
||||
<dt
|
||||
class="text-base font-semibold leading-4 text-white md:leading-7"
|
||||
>
|
||||
<dt class=" font-semibold leading-4 md:leading-7">
|
||||
<div
|
||||
class="absolute left-0 top-0 flex h-10 w-10 items-center justify-center rounded-md bg-[#fff]"
|
||||
>
|
||||
@ -136,17 +126,13 @@
|
||||
</div>
|
||||
Average Return
|
||||
</dt>
|
||||
<dd
|
||||
class="mt-2 text-base leading-7 text-muted dark:text-faded"
|
||||
>
|
||||
<dd class="mt-2 leading-7 text-muted dark:text-faded">
|
||||
The average percentage return within one year of the
|
||||
rating.
|
||||
</dd>
|
||||
</div>
|
||||
<div class="relative pl-14">
|
||||
<dt
|
||||
class="text-base font-semibold leading-4 text-white md:leading-7"
|
||||
>
|
||||
<dt class=" font-semibold leading-4 md:leading-7">
|
||||
<div
|
||||
class="absolute left-0 top-0 flex h-10 w-10 items-center justify-center rounded-md bg-[#fff]"
|
||||
>
|
||||
@ -166,17 +152,13 @@
|
||||
</div>
|
||||
Rating Count
|
||||
</dt>
|
||||
<dd
|
||||
class="mt-2 text-base leading-7 text-muted dark:text-faded"
|
||||
>
|
||||
<dd class="mt-2 leading-7 text-muted dark:text-faded">
|
||||
The more ratings the analyst has provided, the higher the
|
||||
score.
|
||||
</dd>
|
||||
</div>
|
||||
<div class="relative pl-14">
|
||||
<dt
|
||||
class="text-base font-semibold leading-4 text-white md:leading-7"
|
||||
>
|
||||
<dt class=" font-semibold leading-4 md:leading-7">
|
||||
<div
|
||||
class="absolute left-0 top-0 flex h-10 w-10 items-center justify-center rounded-md bg-[#fff]"
|
||||
>
|
||||
@ -196,9 +178,7 @@
|
||||
</div>
|
||||
Recency
|
||||
</dt>
|
||||
<dd
|
||||
class="mt-2 text-base leading-7 text-muted dark:text-faded"
|
||||
>
|
||||
<dd class="mt-2 leading-7 text-muted dark:text-faded">
|
||||
Ratings provided within the past year contribute to a
|
||||
higher score.
|
||||
</dd>
|
||||
|
||||
@ -159,8 +159,8 @@
|
||||
>
|
||||
<div class="text-sm sm:text-[1rem] breadcrumbs">
|
||||
<ul>
|
||||
<li><a href="/" class="text-gray-300">Home</a></li>
|
||||
<li class="text-gray-300">Corporate Lobbying Tracker</li>
|
||||
<li><a href="/" class="text-muted dark:text-gray-300">Home</a></li>
|
||||
<li class="text-muted dark:text-gray-300">Corporate Lobbying Tracker</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@ -174,7 +174,7 @@
|
||||
<h1 class="mb-1 text-white text-2xl sm:text-3xl font-bold">
|
||||
Lobbying Tracker
|
||||
</h1>
|
||||
<p class="mb-3 px-1 text-base font-semibold text-muted sm:px-0">
|
||||
<p class="mb-3 px-1 font-semibold text-muted sm:px-0">
|
||||
Track the latest lobbying spendings of US stock companies
|
||||
</p>
|
||||
</div>
|
||||
@ -230,7 +230,7 @@
|
||||
class="text-white text-end text-sm sm:text-[1rem] border-b-[#09090B]"
|
||||
>
|
||||
{#if item?.changesPercentage >= 0}
|
||||
<span class="text-[#00FC50]"
|
||||
<span class="text-green-600 dark:text-[#00FC50]"
|
||||
>+{item?.changesPercentage >= 1000
|
||||
? item?.changesPercentage
|
||||
: item?.changesPercentage?.toFixed(2)}%</span
|
||||
|
||||
@ -701,8 +701,8 @@
|
||||
<!--
|
||||
<div class="text-sm sm:text-[1rem] breadcrumbs mb-5">
|
||||
<ul>
|
||||
<li><a href="/" class="text-gray-300">Home</a></li>
|
||||
<li class="text-gray-300">Options Flow</li>
|
||||
<li><a href="/" class="text-muted dark:text-gray-300">Home</a></li>
|
||||
<li class="text-muted dark:text-gray-300">Options Flow</li>
|
||||
</ul>
|
||||
</div>
|
||||
-->
|
||||
@ -899,7 +899,7 @@
|
||||
>
|
||||
<label
|
||||
for="ruleModal"
|
||||
class="inline-flex cursor-pointer items-center justify-center space-x-1 whitespace-nowrap rounded-md border border-transparent bg-blue-brand_light py-2 pl-3 pr-4 text-base font-semibold text-white shadow-xs bg-[#000] sm:hover:bg-default/60 ease-out focus:outline-hidden focus:ring-2 focus:ring-blue-500 sm:text-smaller"
|
||||
class="inline-flex cursor-pointer items-center justify-center space-x-1 whitespace-nowrap rounded-md border border-transparent bg-blue-brand_light py-2 pl-3 pr-4 font-semibold text-white shadow-xs bg-[#000] sm:hover:bg-default/60 ease-out focus:outline-hidden focus:ring-2 focus:ring-blue-500 sm:text-smaller"
|
||||
>
|
||||
<svg
|
||||
class="h-5 w-5"
|
||||
@ -920,7 +920,7 @@
|
||||
{#if ruleOfList?.length !== 0}
|
||||
<label
|
||||
on:click={handleResetAll}
|
||||
class="sm:ml-3 cursor-pointer inline-flex items-center justify-center space-x-1 whitespace-nowrap rounded-md border border-transparent bg-blue-brand_light py-2 pl-3 pr-4 text-base font-semibold text-white shadow-xs bg-[#000] sm:hover:text-red-500 ease-out focus:outline-hidden focus:ring-2 focus:ring-blue-500 sm:text-smaller"
|
||||
class="sm:ml-3 cursor-pointer inline-flex items-center justify-center space-x-1 whitespace-nowrap rounded-md border border-transparent bg-blue-brand_light py-2 pl-3 pr-4 font-semibold text-white shadow-xs bg-[#000] sm:hover:text-red-500 ease-out focus:outline-hidden focus:ring-2 focus:ring-blue-500 sm:text-smaller"
|
||||
>
|
||||
<svg
|
||||
class="h-4 w-4"
|
||||
|
||||
@ -313,8 +313,8 @@
|
||||
>
|
||||
<div class="text-sm sm:text-[1rem] breadcrumbs">
|
||||
<ul>
|
||||
<li><a href="/" class="text-gray-300">Home</a></li>
|
||||
<li class="text-gray-300">Dividends Calendar</li>
|
||||
<li><a href="/" class="text-muted dark:text-gray-300">Home</a></li>
|
||||
<li class="text-muted dark:text-gray-300">Dividends Calendar</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@ -453,7 +453,7 @@
|
||||
{#each day as item}
|
||||
<!-- row -->
|
||||
<tr
|
||||
class="sm:hover:bg-[#245073]/10 odd:bg-odd border-b border-gray-800"
|
||||
class="dark:sm:hover:bg-[#245073]/10 odd:bg-[#F6F7F8] dark:odd:bg-oddborder-b border-gray-800"
|
||||
>
|
||||
<td class=" text-sm sm:text-[1rem]">
|
||||
<HoverStockChart symbol={item?.symbol} />
|
||||
|
||||
@ -315,8 +315,8 @@
|
||||
>
|
||||
<div class="text-sm sm:text-[1rem] breadcrumbs">
|
||||
<ul>
|
||||
<li><a href="/" class="text-gray-300">Home</a></li>
|
||||
<li class="text-gray-300">Earnings Calendar</li>
|
||||
<li><a href="/" class="text-muted dark:text-gray-300">Home</a></li>
|
||||
<li class="text-muted dark:text-gray-300">Earnings Calendar</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@ -454,7 +454,7 @@
|
||||
{#each ["Pro", "Plus"]?.includes(data?.user?.tier) ? day : day?.slice(0, 6) as item, index}
|
||||
<!-- row -->
|
||||
<tr
|
||||
class="sm:hover:bg-[#245073]/10 odd:bg-odd border-b border-gray-800 {index +
|
||||
class="dark:sm:hover:bg-[#245073]/10 odd:bg-[#F6F7F8] dark:odd:bg-oddborder-b border-gray-800 {index +
|
||||
1 ===
|
||||
day?.slice(0, 6)?.length &&
|
||||
!['Pro', 'Plus']?.includes(data?.user?.tier)
|
||||
|
||||
@ -302,8 +302,8 @@
|
||||
>
|
||||
<div class="text-sm sm:text-[1rem] breadcrumbs">
|
||||
<ul>
|
||||
<li><a href="/" class="text-gray-300">Home</a></li>
|
||||
<li class="text-gray-300">Economic Calendar</li>
|
||||
<li><a href="/" class="text-muted dark:text-gray-300">Home</a></li>
|
||||
<li class="text-muted dark:text-gray-300">Economic Calendar</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@ -619,7 +619,7 @@
|
||||
<tbody>
|
||||
{#each day as item}
|
||||
<tr
|
||||
class="sm:hover:bg-[#245073]/10 odd:bg-odd border border-gray-800"
|
||||
class="dark:sm:hover:bg-[#245073]/10 odd:bg-[#F6F7F8] dark:odd:bg-oddborder border-gray-800"
|
||||
>
|
||||
<td class="text-white text-sm sm:text-[1rem]">
|
||||
{item?.time}
|
||||
|
||||
@ -627,8 +627,8 @@
|
||||
>
|
||||
<div class="text-sm sm:text-[1rem] breadcrumbs">
|
||||
<ul>
|
||||
<li><a href="/" class="text-gray-300">Home</a></li>
|
||||
<li class="text-gray-300">US Economic Indicator</li>
|
||||
<li><a href="/" class="text-muted dark:text-gray-300">Home</a></li>
|
||||
<li class="text-muted dark:text-gray-300">US Economic Indicator</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@ -870,7 +870,7 @@
|
||||
{#each tableList as item}
|
||||
<!-- row -->
|
||||
<tr
|
||||
class="sm:hover:bg-[#245073]/10 odd:bg-odd border border-gray-800"
|
||||
class="dark:sm:hover:bg-[#245073]/10 odd:bg-[#F6F7F8] dark:odd:bg-oddborder border-gray-800"
|
||||
>
|
||||
<td
|
||||
class="text-white text-sm sm:text-[1rem] whitespace-nowrap"
|
||||
|
||||
@ -753,7 +753,7 @@
|
||||
>
|
||||
<span
|
||||
class={displayLegend?.change >= 0
|
||||
? "before:content-['+'] text-[#00FC50]"
|
||||
? "before:content-['+'] text-green-500 dark:text-[#00FC50]"
|
||||
: "text-[#FF2F1F]"}
|
||||
>
|
||||
{displayLegend?.change}
|
||||
@ -795,9 +795,9 @@
|
||||
{prePostData?.price?.toFixed(2)}
|
||||
</div>
|
||||
<div
|
||||
class="mt-1.5 block text-sm xs:text-base sm:mt-0 sm:inline sm:text-lg {prePostData?.changesPercentage >=
|
||||
class="mt-1.5 block text-sm xs: sm:mt-0 sm:inline sm:text-lg {prePostData?.changesPercentage >=
|
||||
0
|
||||
? "before:content-['+'] text-[#00FC50]"
|
||||
? "before:content-['+'] text-green-500 dark:text-[#00FC50]"
|
||||
: 'text-[#FF2F1F]'}"
|
||||
>
|
||||
{prePostData?.changesPercentage?.toFixed(
|
||||
|
||||
@ -746,7 +746,7 @@
|
||||
>
|
||||
<span
|
||||
class={displayLegend?.graphChange >= 0
|
||||
? "before:content-['+'] text-[#00FC50]"
|
||||
? "before:content-['+'] text-green-500 dark:text-[#00FC50]"
|
||||
: "text-[#FF2F1F]"}
|
||||
>
|
||||
{displayLegend?.graphChange ??
|
||||
|
||||
@ -31,7 +31,7 @@
|
||||
<li class="mb-3 last:mb-1">
|
||||
{formatDate(item?.publishedDate)} ·
|
||||
<a
|
||||
class="sm:hover:text-white text-blue-400"
|
||||
class="text-blue-500 sm:hover:text-muted dark:sm:hover:text-white dark:text-blue-400"
|
||||
href={item?.url}
|
||||
target="_blank"
|
||||
rel="noopener noreferrer nofollow">{item?.title}</a
|
||||
|
||||
@ -32,7 +32,7 @@
|
||||
<li class="mb-3 last:mb-1">
|
||||
{formatDate(item?.publishedDate)} ·
|
||||
<a
|
||||
class="sm:hover:text-white text-blue-400"
|
||||
class="text-blue-500 sm:hover:text-muted dark:sm:hover:text-white dark:text-blue-400"
|
||||
href={item?.url}
|
||||
target="_blank"
|
||||
rel="noopener noreferrer nofollow">{item?.title}</a
|
||||
|
||||
@ -248,7 +248,7 @@
|
||||
r="16"
|
||||
fill="none"
|
||||
class="stroke-current {buySellRatio >= 0.5
|
||||
? 'text-[#00FC50]'
|
||||
? 'text-green-600 dark:text-[#00FC50]'
|
||||
: 'text-[#EE5365]'} "
|
||||
stroke-width="3"
|
||||
stroke-dasharray="100"
|
||||
@ -371,7 +371,7 @@
|
||||
<div class="flex flex-col ml-3 font-normal">
|
||||
<a
|
||||
href={`/politicians/${item?.id}`}
|
||||
class="sm:hover:text-white text-blue-400"
|
||||
class="text-blue-500 sm:hover:text-muted dark:sm:hover:text-white dark:text-blue-400"
|
||||
>{getAbbreviatedName(
|
||||
item?.representative?.replace("_", " "),
|
||||
)}</a
|
||||
@ -410,7 +410,9 @@
|
||||
class="text-end text-sm sm:text-[1rem] whitespace-nowrap text-white"
|
||||
>
|
||||
{#if item?.type === "Bought"}
|
||||
<span class="text-[#00FC50]">Bought</span>
|
||||
<span class="text-green-600 dark:text-[#00FC50]"
|
||||
>Bought</span
|
||||
>
|
||||
{:else if item?.type === "Sold"}
|
||||
<span class="text-[#FF2F1F]">Sold</span>
|
||||
{:else if item?.type === "Exchange"}
|
||||
|
||||
@ -411,7 +411,7 @@
|
||||
<tbody>
|
||||
{#each data?.user?.tier === "Pro" ? optionList : optionList?.slice(0, 3) as item, index}
|
||||
<tr
|
||||
class="sm:hover:bg-[#245073]/10 odd:bg-odd border-b border-gray-800 {index +
|
||||
class="dark:sm:hover:bg-[#245073]/10 odd:bg-[#F6F7F8] dark:odd:bg-oddborder-b border-gray-800 {index +
|
||||
1 ===
|
||||
optionList?.slice(0, 3)?.length &&
|
||||
!['Pro']?.includes(data?.user?.tier)
|
||||
@ -424,7 +424,7 @@
|
||||
|
||||
<td class="text-white text-sm sm:text-[1rem] text-end">
|
||||
{#if item?.changesPercentage >= 0 && item?.changesPercentage !== null}
|
||||
<span class="text-[#00FC50]"
|
||||
<span class="text-green-600 dark:text-[#00FC50]"
|
||||
>+{item?.changesPercentage >= 1000
|
||||
? abbreviateNumberWithColor(
|
||||
item?.changesPercentage,
|
||||
@ -552,7 +552,7 @@
|
||||
|
||||
<td class="text-white text-sm sm:text-[1rem] text-end">
|
||||
{#if item?.changeOI >= 0}
|
||||
<span class="text-[#00FC50]"
|
||||
<span class="text-green-600 dark:text-[#00FC50]"
|
||||
>+{item?.changeOI?.toLocaleString("en-US")}</span
|
||||
>
|
||||
{:else if item?.changeOI < 0}
|
||||
@ -566,7 +566,7 @@
|
||||
|
||||
<td class="text-white text-sm sm:text-[1rem] text-end">
|
||||
{#if item?.changesPercentageOI >= 0}
|
||||
<span class="text-[#00FC50]"
|
||||
<span class="text-green-600 dark:text-[#00FC50]"
|
||||
>+{item?.changesPercentageOI >= 1000
|
||||
? abbreviateNumberWithColor(
|
||||
item?.changesPercentageOI,
|
||||
|
||||
@ -143,8 +143,8 @@
|
||||
>
|
||||
<div class="text-sm sm:text-[1rem] breadcrumbs">
|
||||
<ul>
|
||||
<li><a href="/" class="text-gray-300">Home</a></li>
|
||||
<li class="text-gray-300">Heatmap</li>
|
||||
<li><a href="/" class="text-muted dark:text-gray-300">Home</a></li>
|
||||
<li class="text-muted dark:text-gray-300">Heatmap</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
||||
@ -87,8 +87,8 @@
|
||||
<body class="w-full overflow-hidden m-auto">
|
||||
<div class="text-sm sm:text-[1rem] breadcrumbs">
|
||||
<ul>
|
||||
<li><a href="/" class="text-gray-300">Home</a></li>
|
||||
<li class="text-gray-300">Hedge Funds</li>
|
||||
<li><a href="/" class="text-muted dark:text-gray-300">Home</a></li>
|
||||
<li class="text-muted dark:text-gray-300">Hedge Funds</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@ -98,22 +98,22 @@
|
||||
class="relative flex justify-center items-center overflow-hidden w-full"
|
||||
>
|
||||
<main class="w-full">
|
||||
<h1 class="mb-3 text-white text-2xl sm:text-3xl font-bold">
|
||||
<h1 class="mb-3 text-2xl sm:text-3xl font-bold">
|
||||
All US Hedge Funds
|
||||
</h1>
|
||||
<div class="w-full pb-3">
|
||||
<div class="relative right-0 bg-default">
|
||||
<div class="relative right-0">
|
||||
<ul
|
||||
class="relative grid grid-cols-1 sm:grid-cols-4 gap-y-3 gap-x-3 flex flex-wrap p-1 list-none rounded-[3px]"
|
||||
>
|
||||
<li
|
||||
class="pl-3 py-1.5 flex-auto text-center bg-[#2E3238] rounded-[3px]"
|
||||
class="pl-3 py-1.5 flex-auto text-center shadow-sm bg-gray-100 dark:bg-[#2E3238] rounded-[3px]"
|
||||
>
|
||||
<label class="flex flex-row items-center">
|
||||
<input
|
||||
id="modal-search"
|
||||
type="search"
|
||||
class="text-white ml-2 text-[1rem] placeholder-gray-400 border-transparent focus:border-transparent focus:ring-0 flex items-center justify-center w-full px-0 py-1 bg-inherit"
|
||||
class=" ml-2 text-[1rem] dark:placeholder-gray-400 bg-inherit border-transparent focus:border-transparent focus:ring-0 flex items-center justify-center w-full px-0 py-1"
|
||||
placeholder="Find by name"
|
||||
bind:value={filterQuery}
|
||||
on:input={handleInput}
|
||||
@ -124,7 +124,7 @@
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
viewBox="0 0 24 24"
|
||||
><path
|
||||
fill="#fff"
|
||||
fill="currentColor"
|
||||
d="m19.485 20.154l-6.262-6.262q-.75.639-1.725.989t-1.96.35q-2.402 0-4.066-1.663T3.808 9.503T5.47 5.436t4.064-1.667t4.068 1.664T15.268 9.5q0 1.042-.369 2.017t-.97 1.668l6.262 6.261zM9.539 14.23q1.99 0 3.36-1.37t1.37-3.361t-1.37-3.36t-3.36-1.37t-3.361 1.37t-1.37 3.36t1.37 3.36t3.36 1.37"
|
||||
/></svg
|
||||
>
|
||||
@ -141,7 +141,7 @@
|
||||
{#each displayList as item}
|
||||
<a
|
||||
href={`/hedge-funds/${item?.cik}`}
|
||||
class="w-full cursor-pointer bg-[#141417] sm:hover:bg-[#000] transition-colors ease-in-out border sm:hover:border-[#000] sm:hover:shadow-[#8C5F1B] border-gray-800 shadow-md rounded-md h-auto pb-4 pt-4 mb-7"
|
||||
class="w-full cursor-pointer bg-gray-300 dark:bg-[#141417] sm:hover:bg-gray-400 dark:sm:hover:bg-[#000] transition-colors ease-in-out border dark:sm:hover:border-[#000] sm:hover:shadow-[#8C5F1B] border-gray-300 dark:border-gray-800 shadow-md rounded-md h-auto pb-4 pt-4 mb-7"
|
||||
>
|
||||
<div class="flex flex-col relative">
|
||||
<img
|
||||
@ -152,7 +152,7 @@
|
||||
class="flex flex-col justify-center items-center rounded-2xl"
|
||||
>
|
||||
<div
|
||||
class="-mt-3 shadow-lg rounded-full border border-slate-600 w-20 h-20 relative hedge-fund-striped bg-[#20202E] flex items-center justify-center"
|
||||
class="-mt-3 shadow-lg rounded-full border border-slate-300 dark:border-slate-600 w-20 h-20 relative hedge-fund-striped bg-[#20202E] flex items-center justify-center"
|
||||
>
|
||||
<img
|
||||
style="clip-path: circle(50%);"
|
||||
@ -162,11 +162,11 @@
|
||||
/>
|
||||
</div>
|
||||
<span
|
||||
class="text-white text-md font-semibold mt-2 mb-2 w-64 text-center"
|
||||
class=" text-md font-semibold mt-2 mb-2 w-64 text-center"
|
||||
>
|
||||
{formatString(item?.name)}
|
||||
</span>
|
||||
<span class="text-white text-md mb-8">
|
||||
<span class=" text-md mb-8">
|
||||
AUM: {abbreviateNumber(item?.marketValue)}
|
||||
</span>
|
||||
</div>
|
||||
@ -178,21 +178,20 @@
|
||||
<label
|
||||
class="cursor-pointer flex flex-col items-start"
|
||||
>
|
||||
<span class="text-white text-[1rem] font-semibold">
|
||||
<span class=" text-[1rem] font-semibold">
|
||||
{new Intl.NumberFormat("en", {
|
||||
minimumFractionDigits: 0,
|
||||
maximumFractionDigits: 0,
|
||||
}).format(item?.numberOfStocks)}
|
||||
</span>
|
||||
<span class="text-white text-sm"># of Holdings</span
|
||||
>
|
||||
<span class=" text-sm"># of Holdings</span>
|
||||
</label>
|
||||
|
||||
<div class="flex flex-col items-end">
|
||||
<span class="text-white text-[1rem] font-semibold">
|
||||
<span class=" text-[1rem] font-semibold">
|
||||
{item?.turnover?.toFixed(2)}
|
||||
</span>
|
||||
<span class="text-white text-sm">Turnover</span>
|
||||
<span class=" text-sm">Turnover</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -206,7 +205,7 @@
|
||||
class="flex flex-row mt-1 text-[1rem] font-semibold"
|
||||
>
|
||||
{#if item?.performancePercentage3Year >= 0}
|
||||
<span class="text-[#00FC50]"
|
||||
<span class="text-green-600 dark:text-[#00FC50]"
|
||||
>+{abbreviateNumber(
|
||||
item?.performancePercentage3Year?.toFixed(
|
||||
2,
|
||||
@ -223,9 +222,7 @@
|
||||
</span>
|
||||
{/if}
|
||||
</div>
|
||||
<span class="text-white text-sm"
|
||||
>3-Year Performance</span
|
||||
>
|
||||
<span class=" text-sm">3-Year Performance</span>
|
||||
</label>
|
||||
|
||||
<div class="flex flex-col items-end">
|
||||
@ -233,7 +230,7 @@
|
||||
class="flex flex-row mt-1 text-[1rem] font-semibold"
|
||||
>
|
||||
{#if item?.winRate >= 0}
|
||||
<span class="text-[#00FC50]"
|
||||
<span class="text-green-600 dark:text-[#00FC50]"
|
||||
>+{abbreviateNumber(
|
||||
item?.winRate?.toFixed(2),
|
||||
)}%</span
|
||||
@ -246,7 +243,7 @@
|
||||
</span>
|
||||
{/if}
|
||||
</div>
|
||||
<span class="text-white text-sm">Win Rate</span>
|
||||
<span class=" text-sm">Win Rate</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -54,10 +54,18 @@
|
||||
>
|
||||
<div class="text-sm sm:text-[1rem] breadcrumbs">
|
||||
<ul>
|
||||
<li><a href="/" class="text-gray-300">Home</a></li>
|
||||
<li><a href="/hedge-funds" class="text-gray-300">Hedge Fund</a></li>
|
||||
<li>
|
||||
<a href="/" class="text-muted dark:text-gray-300">Home</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/hedge-funds" class="text-muted dark:text-gray-300"
|
||||
>Hedge Fund</a
|
||||
>
|
||||
</li>
|
||||
|
||||
<li class="text-gray-300">{formatString(companyName)}</li>
|
||||
<li class="text-muted dark:text-gray-300">
|
||||
{formatString(companyName)}
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@ -84,51 +92,59 @@
|
||||
</div>
|
||||
|
||||
<div class="mt-0 pt-0.5 text-left">
|
||||
<h1 class="mb-0 text-2xl font-bold text-white">
|
||||
<h1 class="mb-0 text-2xl font-bold">
|
||||
{formatString(companyName)}
|
||||
</h1>
|
||||
<p class="mb-0.5 text-sm font-semibold text-gray-300">
|
||||
<p
|
||||
class="mb-0.5 text-sm font-semibold text-muted dark:text-gray-300"
|
||||
>
|
||||
CIK Number: {data?.getHedgeFundsData?.cik}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
class="mt-4 grid grid-cols-2 overflow-hidden rounded border border-gray-600 py-2 text-center md:grid-cols-5 md:p-0 lg:mt-0 lg:border-none"
|
||||
class="mt-4 grid grid-cols-2 overflow-hidden rounded border border-gray-300 dark:border-gray-600 py-2 text-center md:grid-cols-5 md:p-0 lg:mt-0 lg:border-none"
|
||||
>
|
||||
<div class="flex flex-col px-4 py-2 bp:px-6 md:py-6">
|
||||
<div class="text-2xl font-bold tracking-tight text-white">
|
||||
<div class="text-2xl font-bold tracking-tight">
|
||||
{abbreviateNumber(hedgeFundStats?.marketValue)}
|
||||
</div>
|
||||
<div class="text-sm font-semibold leading-6 text-gray-300">
|
||||
<div
|
||||
class="text-sm font-semibold leading-6 text-muted dark:text-gray-300"
|
||||
>
|
||||
Market Value
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div
|
||||
class="flex flex-col px-4 py-2 bp:px-6 sm:border-l sm:border-gray-600 md:py-6"
|
||||
class="flex flex-col px-4 py-2 bp:px-6 sm:border-l sm:border-gray-300 dark:sm:border-gray-600 md:py-6"
|
||||
>
|
||||
<div class="text-2xl font-semibold tracking-tight text-white">
|
||||
<div class="text-2xl font-semibold tracking-tight">
|
||||
{data?.getHedgeFundsData?.holdings?.length?.toLocaleString(
|
||||
"en-US",
|
||||
)}
|
||||
</div>
|
||||
<div class="text-sm font-semibold leading-6 text-gray-300">
|
||||
<div
|
||||
class="text-sm font-semibold leading-6 text-muted dark:text-gray-300"
|
||||
>
|
||||
# of Holdings
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
class="flex flex-col px-4 py-2 bp:px-6 sm:border-l sm:border-gray-600 md:py-6"
|
||||
class="flex flex-col px-4 py-2 bp:px-6 sm:border-l sm:border-gray-300 dark:sm:border-gray-600 md:py-6"
|
||||
>
|
||||
<div class="text-2xl font-bold tracking-tight text-white">
|
||||
<div class="text-2xl font-bold tracking-tight">
|
||||
{hedgeFundStats?.averageHoldingPeriod} months
|
||||
</div>
|
||||
<div class="text-sm font-semibold leading-6 text-gray-300">
|
||||
<div
|
||||
class="text-sm font-semibold leading-6 text-muted dark:text-gray-300"
|
||||
>
|
||||
Avg. Holding Period
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div
|
||||
class="flex flex-col px-4 py-2 bp:px-6 sm:border-l sm:border-gray-600 md:py-6"
|
||||
class="flex flex-col px-4 py-2 bp:px-6 sm:border-l sm:border-gray-300 dark:sm:border-gray-600 md:py-6"
|
||||
>
|
||||
<div class="text-2xl font-bold tracking-tight">
|
||||
<span
|
||||
@ -138,14 +154,16 @@
|
||||
>{hedgeFundStats?.winRate?.toFixed(2)}%</span
|
||||
>
|
||||
</div>
|
||||
<div class="text-sm font-semibold leading-6 text-gray-300">
|
||||
<div
|
||||
class="text-sm font-semibold leading-6 text-muted dark:text-gray-300"
|
||||
>
|
||||
Win Rate
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
class="flex flex-col px-4 py-2 bp:px-6 sm:border-l sm:border-gray-600 md:py-6"
|
||||
class="flex flex-col px-4 py-2 bp:px-6 sm:border-l sm:border-gray-300 dark:sm:border-gray-600 md:py-6"
|
||||
>
|
||||
<div class="text-2xl font-bold tracking-tight text-white">
|
||||
<div class="text-2xl font-bold tracking-tight">
|
||||
<span
|
||||
class={hedgeFundStats?.performancePercentage3Year >= 0
|
||||
? "before:content-['+'] text-[#36D984]"
|
||||
@ -155,16 +173,18 @@
|
||||
)}%</span
|
||||
>
|
||||
</div>
|
||||
<div class="text-sm font-semibold leading-6 text-gray-300">
|
||||
<div
|
||||
class="text-sm font-semibold leading-6 text-muted dark:text-gray-300"
|
||||
>
|
||||
Peformance 3-Years
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mb-10 mt-10 text-white">
|
||||
<div class="mb-10 mt-10">
|
||||
<div
|
||||
class="relative my-3 space-y-2 rounded border border-gray-600 sm:my-6 p-4"
|
||||
class="relative my-3 space-y-2 rounded border border-gray-300 dark:border-gray-600 sm:my-6 p-4"
|
||||
>
|
||||
<div class="flex flex-col sm:flex-row">
|
||||
<div class="mb-2 font-semibold sm:mb-0">Main Sectors:</div>
|
||||
@ -174,7 +194,7 @@
|
||||
href={sectorNavigation?.find(
|
||||
(listItem) => listItem?.title === item,
|
||||
)?.link}
|
||||
class="px-3 text-sm py-1 sm:text-[1rem] rounded-md bg-white/10 sm:hover:bg-white/20 ml-0"
|
||||
class="inline-block badge bg-blue-50 dark:bg-primary duration-0 rounded-sm ml-1 px-3 m-auto text-blue-600 dark:text-blue-400 dark:sm:hover:text-white sm:hover:text-muted text-[1rem]"
|
||||
>
|
||||
{item}
|
||||
</a>
|
||||
@ -189,7 +209,7 @@
|
||||
{#each data?.getHedgeFundsData?.mainIndustries as item}
|
||||
<a
|
||||
href={`/list/industry/${item?.replace(/ /g, "-")?.replace(/&/g, "and")?.replace(/-{2,}/g, "-")?.toLowerCase()}`}
|
||||
class="px-3 text-sm py-1 sm:text-[1rem] rounded-md bg-white/10 sm:hover:bg-white/20 ml-0"
|
||||
class="inline-block badge bg-blue-50 dark:bg-primary duration-0 rounded-sm ml-1 px-3 m-auto text-blue-600 dark:text-blue-400 dark:sm:hover:text-white sm:hover:text-muted text-[1rem]"
|
||||
>
|
||||
{item}
|
||||
</a>
|
||||
@ -199,7 +219,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="w-full m-auto mt-10">
|
||||
<div class="w-full m-auto mt-4">
|
||||
<Table
|
||||
{data}
|
||||
rawData={["Pro", "Plus"]?.includes(data?.user?.tier)
|
||||
|
||||
@ -756,7 +756,7 @@
|
||||
>
|
||||
<span
|
||||
class={displayLegend?.change >= 0
|
||||
? "before:content-['+'] text-[#00FC50]"
|
||||
? "before:content-['+'] text-green-500 dark:text-[#00FC50]"
|
||||
: "text-[#FF2F1F]"}
|
||||
>
|
||||
{displayLegend?.change}
|
||||
@ -798,9 +798,9 @@
|
||||
{prePostData?.price?.toFixed(2)}
|
||||
</div>
|
||||
<div
|
||||
class="mt-1.5 block text-sm xs:text-base sm:mt-0 sm:inline sm:text-lg {prePostData?.changesPercentage >=
|
||||
class="mt-1.5 block text-sm xs: sm:mt-0 sm:inline sm:text-lg {prePostData?.changesPercentage >=
|
||||
0
|
||||
? "before:content-['+'] text-[#00FC50]"
|
||||
? "before:content-['+'] text-green-500 dark:text-[#00FC50]"
|
||||
: 'text-[#FF2F1F]'}"
|
||||
>
|
||||
{prePostData?.changesPercentage?.toFixed(
|
||||
|
||||
@ -747,7 +747,7 @@
|
||||
>
|
||||
<span
|
||||
class={displayLegend?.graphChange >= 0
|
||||
? "before:content-['+'] text-[#00FC50]"
|
||||
? "before:content-['+'] text-green-500 dark:text-[#00FC50]"
|
||||
: "text-[#FF2F1F]"}
|
||||
>
|
||||
{displayLegend?.graphChange ??
|
||||
|
||||
@ -419,7 +419,7 @@
|
||||
<tbody>
|
||||
{#each ["Pro"]?.includes(data?.user?.tier) ? optionList : optionList?.slice(0, 3) as item, index}
|
||||
<tr
|
||||
class="sm:hover:bg-[#245073]/10 odd:bg-odd border-b border-gray-800 {index +
|
||||
class="dark:sm:hover:bg-[#245073]/10 odd:bg-[#F6F7F8] dark:odd:bg-oddborder-b border-gray-800 {index +
|
||||
1 ===
|
||||
optionList?.slice(0, 3)?.length &&
|
||||
!['Pro']?.includes(data?.user?.tier)
|
||||
@ -432,7 +432,7 @@
|
||||
|
||||
<td class="text-white text-sm sm:text-[1rem] text-end">
|
||||
{#if item?.changesPercentage >= 0 && item?.changesPercentage !== null}
|
||||
<span class="text-[#00FC50]"
|
||||
<span class="text-green-600 dark:text-[#00FC50]"
|
||||
>+{item?.changesPercentage >= 1000
|
||||
? abbreviateNumberWithColor(
|
||||
item?.changesPercentage,
|
||||
@ -560,7 +560,7 @@
|
||||
|
||||
<td class="text-white text-sm sm:text-[1rem] text-end">
|
||||
{#if item?.changeOI >= 0}
|
||||
<span class="text-[#00FC50]"
|
||||
<span class="text-green-600 dark:text-[#00FC50]"
|
||||
>+{item?.changeOI?.toLocaleString("en-US")}</span
|
||||
>
|
||||
{:else if item?.changeOI < 0}
|
||||
@ -574,7 +574,7 @@
|
||||
|
||||
<td class="text-white text-sm sm:text-[1rem] text-end">
|
||||
{#if item?.changesPercentageOI >= 0}
|
||||
<span class="text-[#00FC50]"
|
||||
<span class="text-green-600 dark:text-[#00FC50]"
|
||||
>+{item?.changesPercentageOI >= 1000
|
||||
? abbreviateNumberWithColor(
|
||||
item?.changesPercentageOI,
|
||||
|
||||
@ -37,8 +37,8 @@
|
||||
>
|
||||
<div class="text-sm sm:text-[1rem] breadcrumbs">
|
||||
<ul>
|
||||
<li><a href="/" class="text-gray-300">Home</a></li>
|
||||
<li><span class="text-gray-300">Industry</span></li>
|
||||
<li><a href="/" class="text-muted dark:text-gray-300">Home</a></li>
|
||||
<li><span class="text-muted dark:text-gray-300">Industry</span></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
||||
@ -112,7 +112,7 @@
|
||||
{#each displayList as item}
|
||||
<!-- row -->
|
||||
<tr
|
||||
class="sm:hover:bg-[#245073]/10 odd:bg-odd border-b border-gray-800"
|
||||
class="dark:sm:hover:bg-[#245073]/10 odd:bg-[#F6F7F8] dark:odd:bg-oddborder-b border-gray-800"
|
||||
>
|
||||
<td class=" text-sm sm:text-[1rem] whitespace-nowrap">
|
||||
<a
|
||||
@ -151,7 +151,7 @@
|
||||
|
||||
<td
|
||||
class=" {item?.profitMargin >= 0
|
||||
? "before:content-['+'] text-[#00FC50]"
|
||||
? "before:content-['+'] text-green-500 dark:text-[#00FC50]"
|
||||
: 'text-[#FF2F1F]'} text-sm sm:text-[1rem] whitespace-nowrap text-end"
|
||||
>
|
||||
{abbreviateNumber(item?.profitMargin)}%
|
||||
|
||||
@ -111,7 +111,7 @@
|
||||
{#each displayList as item}
|
||||
<!-- row -->
|
||||
<tr
|
||||
class="sm:hover:bg-[#245073]/10 odd:bg-odd border-b border-gray-800"
|
||||
class="dark:sm:hover:bg-[#245073]/10 odd:bg-[#F6F7F8] dark:odd:bg-oddborder-b border-gray-800"
|
||||
>
|
||||
<td class=" text-sm sm:text-[1rem] whitespace-nowrap">
|
||||
<a
|
||||
@ -152,7 +152,7 @@
|
||||
|
||||
<td
|
||||
class=" {item?.profitMargin >= 0
|
||||
? "before:content-['+'] text-[#00FC50]"
|
||||
? "before:content-['+'] text-green-500 dark:text-[#00FC50]"
|
||||
: 'text-[#FF2F1F]'} text-sm sm:text-[1rem] whitespace-nowrap text-end"
|
||||
>
|
||||
{abbreviateNumber(item?.profitMargin)}%
|
||||
|
||||
@ -6,6 +6,8 @@
|
||||
import TableHeader from "$lib/components/Table/TableHeader.svelte";
|
||||
import HoverStockChart from "$lib/components/HoverStockChart.svelte";
|
||||
import RatingsChart from "$lib/components/RatingsChart.svelte";
|
||||
import Infobox from "$lib/components/Infobox.svelte";
|
||||
|
||||
import SEO from "$lib/components/SEO.svelte";
|
||||
|
||||
export let data;
|
||||
@ -169,8 +171,8 @@
|
||||
>
|
||||
<div class="text-sm sm:text-[1rem] breadcrumbs">
|
||||
<ul>
|
||||
<li><a href="/" class="text-gray-300">Home</a></li>
|
||||
<li class="text-gray-300">Insider Tracker</li>
|
||||
<li><a href="/" class="text-muted dark:text-gray-300">Home</a></li>
|
||||
<li class="text-muted dark:text-gray-300">Insider Tracker</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@ -181,46 +183,22 @@
|
||||
>
|
||||
<main class="w-full">
|
||||
<div class="mb-6 border-b-[2px]">
|
||||
<h1 class="mb-1 text-white text-2xl sm:text-3xl font-bold">
|
||||
Insider Tracker
|
||||
</h1>
|
||||
<h1 class="mb-1 text-2xl sm:text-3xl font-bold">Insider Tracker</h1>
|
||||
</div>
|
||||
|
||||
{#if isLoaded}
|
||||
<div class="mt-8 sm:px-0">
|
||||
<div
|
||||
class="border-l-4 border-white p-0 sm:p-4 text-white flex flex-row items-center"
|
||||
>
|
||||
<svg
|
||||
class="h-6 w-6 hidden sm:block"
|
||||
viewBox="0 0 20 20"
|
||||
fill="currentColor"
|
||||
style="max-width:40px"
|
||||
aria-hidden="true"
|
||||
><path
|
||||
fill-rule="evenodd"
|
||||
d="M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z"
|
||||
clip-rule="evenodd"
|
||||
></path></svg
|
||||
>
|
||||
<div class="ml-3 w-full">
|
||||
<div class="flex w-full flex-row justify-between">
|
||||
<div>
|
||||
We update our data in real time to bring you the latest
|
||||
<Infobox
|
||||
text="We update our data in real time to bring you the latest
|
||||
insights on unusual insider trading, sourced from SEC
|
||||
filings with a minimum transaction value of $100,000.
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
filings with a minimum transaction value of $100,000."
|
||||
/>
|
||||
|
||||
<div class="w-full m-auto mt-20 sm:mt-10">
|
||||
<div
|
||||
class="w-full m-auto rounded-none sm:rounded-md mb-4 overflow-x-auto sm:overflow-hidden"
|
||||
>
|
||||
<table
|
||||
class="table table-sm table-compact rounded-none sm:rounded-md w-full bg-table border border-gray-800 m-auto"
|
||||
class="table table-sm table-compact no-scrollbar rounded-none sm:rounded-md w-full bg-white dark:bg-table border border-gray-300 dark:border-gray-800 m-auto"
|
||||
>
|
||||
<thead>
|
||||
<TableHeader {columns} {sortOrders} {sortData} />
|
||||
@ -228,7 +206,7 @@
|
||||
<tbody>
|
||||
{#each stockList as item, index}
|
||||
<tr
|
||||
class="sm:hover:bg-[#245073]/10 odd:bg-odd {index +
|
||||
class="dark:sm:hover:bg-[#245073]/10 odd:bg-[#F6F7F8] dark:odd:bg-odd{index +
|
||||
1 ===
|
||||
stockList?.length &&
|
||||
!['Pro', 'Plus']?.includes(data?.user?.tier)
|
||||
@ -245,7 +223,7 @@
|
||||
? 'rotate-180'
|
||||
: ''}"
|
||||
viewBox="0 0 20 20"
|
||||
fill="white"
|
||||
fill="currentColor"
|
||||
style="max-width:40px"
|
||||
><path
|
||||
fill-rule="evenodd"
|
||||
@ -260,7 +238,7 @@
|
||||
<HoverStockChart symbol={item?.symbol} />
|
||||
</td>
|
||||
<td
|
||||
class="whitespace-nowrap text-white text-sm sm:text-[1rem] text-white text-start"
|
||||
class="whitespace-nowrap text-sm sm:text-[1rem] text-start"
|
||||
>
|
||||
{item?.name?.length > charNumber
|
||||
? item?.name?.slice(0, charNumber) + "..."
|
||||
@ -268,7 +246,7 @@
|
||||
</td>
|
||||
|
||||
<td
|
||||
class="whitespace-nowrap text-white text-sm sm:text-[1rem] text-white text-start"
|
||||
class="whitespace-nowrap text-sm sm:text-[1rem] text-start"
|
||||
>
|
||||
{item?.reportingName?.length > charNumber
|
||||
? item?.reportingName?.slice(0, charNumber) + "..."
|
||||
@ -276,13 +254,13 @@
|
||||
</td>
|
||||
|
||||
<td
|
||||
class="text-end text-sm sm:text-[1rem] text-white whitespace-nowrap"
|
||||
class="text-end text-sm sm:text-[1rem] whitespace-nowrap"
|
||||
>
|
||||
{abbreviateNumber(item?.marketCap)}
|
||||
</td>
|
||||
|
||||
<td
|
||||
class="text-end text-sm sm:text-[1rem] whitespace-nowrap text-white"
|
||||
class="text-end text-sm sm:text-[1rem] whitespace-nowrap"
|
||||
>
|
||||
{item?.price}
|
||||
</td>
|
||||
@ -290,7 +268,7 @@
|
||||
<td
|
||||
class="text-sm sm:text-[1rem] whitespace-nowrap text-end {item?.changesPercentage >=
|
||||
0
|
||||
? 'text-[#00FC50]'
|
||||
? 'text-green-600 dark:text-[#00FC50]'
|
||||
: 'text-[#FF2F1F]'}"
|
||||
>
|
||||
{item?.changesPercentage > 0
|
||||
@ -299,7 +277,7 @@
|
||||
</td>
|
||||
|
||||
<td
|
||||
class="text-end text-sm sm:text-[1rem] text-white whitespace-nowrap"
|
||||
class="text-end text-sm sm:text-[1rem] whitespace-nowrap"
|
||||
>
|
||||
{abbreviateNumber(item?.totalShares)}
|
||||
</td>
|
||||
@ -307,7 +285,7 @@
|
||||
<td
|
||||
class="text-end text-sm sm:text-[1rem] whitespace-nowrap {item?.transactionType ===
|
||||
'Buy'
|
||||
? 'text-[#00FC50]'
|
||||
? 'text-green-600 dark:text-[#00FC50]'
|
||||
: item?.transactionType === 'Sell'
|
||||
? 'text-[#FF2F1F]'
|
||||
: 'text-[#E57C34]'}"
|
||||
@ -325,7 +303,7 @@
|
||||
</td>
|
||||
</tr>
|
||||
{#if checkedSymbol === item?.symbol}
|
||||
<tr class="bg-default"
|
||||
<tr class=""
|
||||
><td colspan="9" class="px-0" style=""
|
||||
><div class="-mt-0.5 px-0 pb-2">
|
||||
<div class="relative h-[400px]">
|
||||
|
||||
@ -56,8 +56,8 @@
|
||||
>
|
||||
<div class="text-sm sm:text-[1rem] breadcrumbs">
|
||||
<ul>
|
||||
<li><a href="/" class="text-gray-300">Home</a></li>
|
||||
<li class="text-gray-300">IPO Data</li>
|
||||
<li><a href="/" class="text-muted dark:text-gray-300">Home</a></li>
|
||||
<li class="text-muted dark:text-gray-300">IPO Data</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
<li class="mb-3 last:mb-1">
|
||||
{item?.timestamp}
|
||||
<a
|
||||
class="sm:hover:text-white text-blue-400"
|
||||
class="text-blue-500 sm:hover:text-muted dark:sm:hover:text-white dark:text-blue-400"
|
||||
href={item?.link}
|
||||
target="_blank"
|
||||
rel="noopener noreferrer nofollow">{item?.title}</a
|
||||
|
||||
@ -91,7 +91,7 @@
|
||||
<tbody>
|
||||
{#each ipoList as item}
|
||||
<tr
|
||||
class="sm:hover:bg-[#245073]/10 odd:bg-odd border-b-[#09090B]"
|
||||
class="dark:sm:hover:bg-[#245073]/10 odd:bg-[#F6F7F8] dark:odd:bg-oddborder-b-[#09090B]"
|
||||
>
|
||||
<td
|
||||
class="text-white text-sm sm:text-[1rem] whitespace-nowrap text-start border-b-[#09090B] whitespace-nowrap"
|
||||
@ -109,7 +109,7 @@
|
||||
>
|
||||
<a
|
||||
href={"/stocks/" + item?.symbol}
|
||||
class="sm:hover:text-white text-blue-400"
|
||||
class="text-blue-500 sm:hover:text-muted dark:sm:hover:text-white dark:text-blue-400"
|
||||
>
|
||||
{item?.symbol}
|
||||
</a>
|
||||
@ -188,7 +188,7 @@
|
||||
<li class="mb-3 last:mb-1">
|
||||
{item?.timestamp}
|
||||
<a
|
||||
class="sm:hover:text-white text-blue-400"
|
||||
class="text-blue-500 sm:hover:text-muted dark:sm:hover:text-white dark:text-blue-400"
|
||||
href={item?.link}
|
||||
target="_blank"
|
||||
rel="noopener noreferrer nofollow">{item?.title}</a
|
||||
|
||||
@ -194,7 +194,7 @@
|
||||
<li class="mb-3 last:mb-1">
|
||||
{formatDate(item?.publishedDate)} ago -
|
||||
<a
|
||||
class="sm:hover:text-white text-blue-400"
|
||||
class="text-blue-500 sm:hover:text-muted dark:sm:hover:text-white dark:text-blue-400"
|
||||
href={item?.url}
|
||||
target="_blank"
|
||||
rel="noopener noreferrer nofollow">{item?.title}</a
|
||||
|
||||
@ -84,7 +84,7 @@
|
||||
<h4 class="text-xl font-semibold sm:text-2xl sm:font-bold">
|
||||
Stay informed in just 2 minutes
|
||||
</h4>
|
||||
<p class="text-base text-white lg:text-lg">
|
||||
<p class=" text-white lg:text-lg">
|
||||
Get a daily email with the top market-moving news in bullet
|
||||
point format, for Pro Members only.
|
||||
</p>
|
||||
@ -105,7 +105,7 @@
|
||||
>
|
||||
<div class="space-y-3 p-6">
|
||||
<h4 class="text-xl font-semibold">Watchlist</h4>
|
||||
<p class="text-base text-white lg:text-lg">
|
||||
<p class=" text-white lg:text-lg">
|
||||
Build your watchlist to keep track of their performance
|
||||
</p>
|
||||
</div>
|
||||
@ -116,7 +116,7 @@
|
||||
>
|
||||
<div class="space-y-3 p-6">
|
||||
<h4 class="text-xl font-semibold">Top Stocks</h4>
|
||||
<p class="text-base text-white lg:text-lg">
|
||||
<p class=" text-white lg:text-lg">
|
||||
Get the latest Top Wall Street Analyst Ratings
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@ -263,7 +263,7 @@
|
||||
Category of Stocks Ranked by Market Cap
|
||||
</h2>
|
||||
<ul
|
||||
class="list-outside list-disc space-y-1 p-1 pl-6 text-base md:columns-2 md:gap-x-8 md:text-lg"
|
||||
class="list-outside list-disc space-y-1 p-1 pl-6 md:columns-2 md:gap-x-8 md:text-lg"
|
||||
>
|
||||
<li>
|
||||
<a
|
||||
|
||||
@ -39,8 +39,8 @@
|
||||
<!--
|
||||
<div class="text-sm breadcrumbs ml-4">
|
||||
<ul>
|
||||
<li><a href="/" class="text-gray-300">Home</a></li>
|
||||
<li class="text-gray-300">Markdown Guide</li>
|
||||
<li><a href="/" class="text-muted dark:text-gray-300">Home</a></li>
|
||||
<li class="text-muted dark:text-gray-300">Markdown Guide</li>
|
||||
</ul>
|
||||
</div>
|
||||
-->
|
||||
|
||||
@ -838,8 +838,8 @@
|
||||
<!--
|
||||
<div class="text-sm sm:text-[1rem] breadcrumbs mb-5">
|
||||
<ul>
|
||||
<li><a href="/" class="text-gray-300">Home</a></li>
|
||||
<li class="text-gray-300">Options Flow</li>
|
||||
<li><a href="/" class="text-muted dark:text-gray-300">Home</a></li>
|
||||
<li class="text-muted dark:text-gray-300">Options Flow</li>
|
||||
</ul>
|
||||
</div>
|
||||
-->
|
||||
@ -1045,7 +1045,7 @@
|
||||
>
|
||||
<label
|
||||
for="ruleModal"
|
||||
class="inline-flex cursor-pointer items-center justify-center space-x-1 whitespace-nowrap rounded-md border border-gray-300 dark:border-none py-2 pl-3 pr-4 text-base font-semibold shadow-sm bg-white sm:hover:bg-gray-100 dark:bg-[#000] dark:sm:hover:bg-default/60 ease-out focus:outline-hidden focus:ring-2 focus:ring-blue-500"
|
||||
class="inline-flex cursor-pointer items-center justify-center space-x-1 whitespace-nowrap rounded-md border border-gray-300 dark:border-none py-2 pl-3 pr-4 font-semibold shadow-sm bg-white sm:hover:bg-gray-100 dark:bg-[#000] dark:sm:hover:bg-default/60 ease-out focus:outline-hidden focus:ring-2 focus:ring-blue-500"
|
||||
>
|
||||
<svg
|
||||
class="h-5 w-5"
|
||||
@ -1066,7 +1066,7 @@
|
||||
{#if ruleOfList?.length !== 0}
|
||||
<label
|
||||
on:click={handleResetAll}
|
||||
class="sm:ml-3 cursor-pointer inline-flex items-center justify-center space-x-1 whitespace-nowrap rounded-md border border-transparent bg-blue-brand_light py-2 pl-3 pr-4 text-base font-semibold shadow-xs bg-[#000] sm:hover:text-red-500 ease-out focus:outline-hidden focus:ring-2 focus:ring-blue-500"
|
||||
class="sm:ml-3 cursor-pointer inline-flex items-center justify-center space-x-1 whitespace-nowrap rounded-md border border-transparent bg-blue-brand_light py-2 pl-3 pr-4 font-semibold shadow-xs bg-[#000] sm:hover:text-red-500 ease-out focus:outline-hidden focus:ring-2 focus:ring-blue-500"
|
||||
>
|
||||
<svg
|
||||
class="h-4 w-4"
|
||||
|
||||
@ -152,8 +152,8 @@
|
||||
>
|
||||
<div class="text-sm sm:text-[1rem] breadcrumbs">
|
||||
<ul>
|
||||
<li><a href="/" class="text-gray-300">Home</a></li>
|
||||
<li class="text-gray-300">Politicians</li>
|
||||
<li><a href="/" class="text-muted dark:text-gray-300">Home</a></li>
|
||||
<li class="text-muted dark:text-gray-300">Politicians</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
||||
@ -113,12 +113,13 @@
|
||||
>
|
||||
<div class="text-sm sm:text-[1rem] breadcrumbs">
|
||||
<ul>
|
||||
<li><a href="/" class="text-gray-300">Home</a></li>
|
||||
<li><a href="/" class="text-muted dark:text-gray-300">Home</a></li>
|
||||
<li>
|
||||
<a href="/politicians" class="text-gray-300">Congress</a>
|
||||
<a href="/politicians" class="text-muted dark:text-gray-300">Congress</a
|
||||
>
|
||||
</li>
|
||||
|
||||
<li class="text-gray-300">{name}</li>
|
||||
<li class="text-muted dark:text-gray-300">{name}</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@ -318,7 +319,7 @@
|
||||
<tbody class="p-0">
|
||||
{#each tableData as item}
|
||||
<tr
|
||||
class="sm:hover:bg-[#245073]/10 odd:bg-odd border-b-[#27272A] text-white"
|
||||
class="dark:sm:hover:bg-[#245073]/10 odd:bg-[#F6F7F8] dark:odd:bg-oddborder-b-[#27272A] text-white"
|
||||
>
|
||||
<td class="hidden lg:table-cell"
|
||||
><button
|
||||
@ -363,7 +364,9 @@
|
||||
>
|
||||
<span class="">
|
||||
{#if item?.type === "Bought"}
|
||||
<span class="text-[#00FC50]">{item?.type}</span>
|
||||
<span class="text-green-600 dark:text-[#00FC50]"
|
||||
>{item?.type}</span
|
||||
>
|
||||
{:else if item?.type === "Sold"}
|
||||
<span class="text-[#FF2F1F]">{item?.type}</span>
|
||||
{:else if item?.type === "Exchange"}
|
||||
|
||||
@ -71,8 +71,8 @@
|
||||
>
|
||||
<div class="text-sm sm:text-[1rem] breadcrumbs">
|
||||
<ul>
|
||||
<li><a href="/" class="text-gray-300">Home</a></li>
|
||||
<li class="text-gray-300">Congress Flow</li>
|
||||
<li><a href="/" class="text-muted dark:text-gray-300">Home</a></li>
|
||||
<li class="text-muted dark:text-gray-300">Congress Flow</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@ -169,7 +169,7 @@
|
||||
<div class="flex flex-col ml-3 font-normal">
|
||||
<a
|
||||
href={`/politicians/${item?.id}`}
|
||||
class="sm:hover:text-white text-blue-400"
|
||||
class="text-blue-500 sm:hover:text-muted dark:sm:hover:text-white dark:text-blue-400"
|
||||
>{getAbbreviatedName(
|
||||
item?.representative?.replace(
|
||||
"_",
|
||||
@ -235,7 +235,10 @@
|
||||
class="text-sm sm:text-[1rem] text-end text-white"
|
||||
>
|
||||
{#if item?.type === "Bought"}
|
||||
<span class="text-[#00FC50]">Bought</span>
|
||||
<span
|
||||
class="text-green-600 dark:text-[#00FC50]"
|
||||
>Bought</span
|
||||
>
|
||||
{:else if item?.type === "Sold"}
|
||||
<span class="text-[#FF2F1F]">Sold</span>
|
||||
{/if}
|
||||
|
||||
@ -200,9 +200,7 @@
|
||||
<h1 class="mb-1 text-2xl sm:text-3xl font-bold">My Account</h1>
|
||||
</div>
|
||||
|
||||
<div
|
||||
class="rounded border border-gray-600 p-4 text-base xs:p-4 xs:text-lg"
|
||||
>
|
||||
<div class="rounded border border-gray-600 p-4 xs:p-4 xs:text-lg">
|
||||
<h2 class=" text-2xl font-semibold mb-3">User Information</h2>
|
||||
<div class="mt-1">
|
||||
<strong>Email:</strong>
|
||||
@ -224,7 +222,7 @@
|
||||
</div>
|
||||
|
||||
<div
|
||||
class="mt-6 rounded border border-gray-600 p-4 text-base xs:p-4 xs:text-lg"
|
||||
class="mt-6 rounded border border-gray-600 p-4 xs:p-4 xs:text-lg"
|
||||
>
|
||||
<h2 class=" text-2xl font-semibold mb-3">Notification</h2>
|
||||
Customize your notification alerts based on your preferences.
|
||||
@ -380,7 +378,7 @@
|
||||
</div>
|
||||
|
||||
<div
|
||||
class="mt-6 rounded border border-gray-600 p-4 text-base xs:p-4 xs:text-lg"
|
||||
class="mt-6 rounded border border-gray-600 p-4 xs:p-4 xs:text-lg"
|
||||
>
|
||||
<h2 class=" text-2xl font-semibold mb-3">Manage Subscription</h2>
|
||||
<div class="flex flex-row items-center">
|
||||
@ -487,7 +485,7 @@
|
||||
</div>
|
||||
|
||||
<div
|
||||
class="mt-6 rounded border border-gray-600 p-4 text-base xs:p-4 xs:text-lg"
|
||||
class="mt-6 rounded border border-gray-600 p-4 xs:p-4 xs:text-lg"
|
||||
>
|
||||
<h2 class=" text-2xl font-semibold mb-3">Need help?</h2>
|
||||
<div class="mt-1">
|
||||
|
||||
@ -67,8 +67,8 @@
|
||||
>
|
||||
<div class="text-sm sm:text-[1rem] breadcrumbs">
|
||||
<ul>
|
||||
<li><a href="/" class="text-gray-300">Home</a></li>
|
||||
<li class="text-gray-300">Sentiment Tracker</li>
|
||||
<li><a href="/" class="text-muted dark:text-gray-300">Home</a></li>
|
||||
<li class="text-muted dark:text-gray-300">Sentiment Tracker</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
||||
@ -2538,8 +2538,8 @@ const handleKeyDown = (event) => {
|
||||
>
|
||||
<div class="text-sm sm:text-[1rem] breadcrumbs">
|
||||
<ul>
|
||||
<li><a href="/" class="text-gray-300">Home</a></li>
|
||||
<li><span class="text-gray-300">Stock Screener</span></li>
|
||||
<li><a href="/" class="text-muted dark:text-gray-300">Home</a></li>
|
||||
<li><span class="text-muted dark:text-gray-300">Stock Screener</span></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@ -2683,7 +2683,7 @@ const handleKeyDown = (event) => {
|
||||
<Button
|
||||
on:click={handleCreateStrategy}
|
||||
builders={[builder]}
|
||||
class="p-0 -mb-2 -mt-2 text-sm inline-flex cursor-pointer items-center justify-center space-x-1 whitespace-nowrap text-base text-white bg-[#0909B] focus:outline-hidden sm:text-smaller"
|
||||
class="p-0 -mb-2 -mt-2 text-sm inline-flex cursor-pointer items-center justify-center space-x-1 whitespace-nowrap text-white bg-[#0909B] focus:outline-hidden sm:text-smaller"
|
||||
>
|
||||
<svg
|
||||
class="h-4 w-4"
|
||||
@ -2752,7 +2752,7 @@ const handleKeyDown = (event) => {
|
||||
<div class="mt-3 flex flex-col gap-y-2.5 sm:flex-row lg:gap-y-2">
|
||||
<label
|
||||
for="ruleModal"
|
||||
class="inline-flex cursor-pointer items-center justify-center space-x-1 whitespace-nowrap rounded-md border border-transparent bg-blue-brand_light py-2 pl-3 pr-4 text-base font-semibold text-white shadow-xs bg-[#000] sm:hover:bg-default/60 ease-out focus:outline-hidden focus:ring-2 focus:ring-blue-500 sm:text-smaller"
|
||||
class="inline-flex cursor-pointer items-center justify-center space-x-1 whitespace-nowrap rounded-md border border-transparent bg-blue-brand_light py-2 pl-3 pr-4 font-semibold text-white shadow-xs bg-[#000] sm:hover:bg-default/60 ease-out focus:outline-hidden focus:ring-2 focus:ring-blue-500 sm:text-smaller"
|
||||
>
|
||||
<svg
|
||||
class="h-5 w-5"
|
||||
@ -2774,7 +2774,7 @@ const handleKeyDown = (event) => {
|
||||
<label
|
||||
for={!data?.user ? "userLogin" : ""}
|
||||
on:click={() => handleSave(true)}
|
||||
class="sm:ml-3 cursor-pointer inline-flex items-center justify-center space-x-1 whitespace-nowrap rounded-md border border-transparent bg-blue-brand_light py-2 pl-3 pr-4 text-base font-semibold text-white shadow-xs bg-[#000] sm:hover:bg-default/60 ease-out focus:outline-hidden focus:ring-2 focus:ring-blue-500 sm:text-smaller"
|
||||
class="sm:ml-3 cursor-pointer inline-flex items-center justify-center space-x-1 whitespace-nowrap rounded-md border border-transparent bg-blue-brand_light py-2 pl-3 pr-4 font-semibold text-white shadow-xs bg-[#000] sm:hover:bg-default/60 ease-out focus:outline-hidden focus:ring-2 focus:ring-blue-500 sm:text-smaller"
|
||||
>
|
||||
<svg
|
||||
class="h-5 w-5"
|
||||
@ -2790,7 +2790,7 @@ const handleKeyDown = (event) => {
|
||||
|
||||
<label
|
||||
for="deleteStrategy"
|
||||
class="sm:ml-3 cursor-pointer inline-flex items-center justify-center space-x-1 whitespace-nowrap rounded-md border border-transparent bg-blue-brand_light py-2 pl-3 pr-4 text-base font-semibold text-white shadow-xs bg-[#000] sm:hover:bg-default/60 ease-out sm:hover:text-red-500 focus:outline-hidden focus:ring-2 focus:ring-blue-500 sm:text-smaller"
|
||||
class="sm:ml-3 cursor-pointer inline-flex items-center justify-center space-x-1 whitespace-nowrap rounded-md border border-transparent bg-blue-brand_light py-2 pl-3 pr-4 font-semibold text-white shadow-xs bg-[#000] sm:hover:bg-default/60 ease-out sm:hover:text-red-500 focus:outline-hidden focus:ring-2 focus:ring-blue-500 sm:text-smaller"
|
||||
>
|
||||
<svg
|
||||
class="h-5 w-5"
|
||||
@ -2808,7 +2808,7 @@ const handleKeyDown = (event) => {
|
||||
{#if ruleOfList?.length !== 0}
|
||||
<label
|
||||
on:click={handleResetAll}
|
||||
class="sm:ml-3 cursor-pointer inline-flex items-center justify-center space-x-1 whitespace-nowrap rounded-md border border-transparent bg-blue-brand_light py-2 pl-3 pr-4 text-base font-semibold text-white shadow-xs bg-[#000] sm:hover:text-red-500 ease-out focus:outline-hidden focus:ring-2 focus:ring-blue-500 sm:text-smaller"
|
||||
class="sm:ml-3 cursor-pointer inline-flex items-center justify-center space-x-1 whitespace-nowrap rounded-md border border-transparent bg-blue-brand_light py-2 pl-3 pr-4 font-semibold text-white shadow-xs bg-[#000] sm:hover:text-red-500 ease-out focus:outline-hidden focus:ring-2 focus:ring-blue-500 sm:text-smaller"
|
||||
>
|
||||
<svg
|
||||
class="h-4 w-4"
|
||||
@ -3262,7 +3262,7 @@ const handleKeyDown = (event) => {
|
||||
>
|
||||
<nav class="w-full flex flex-row items-center py-2.5 sm:py-3 lg:py-1">
|
||||
<ul
|
||||
class="flex flex-row overflow-x-auto items-center space-x-2 whitespace-nowrap text-base"
|
||||
class="flex flex-row overflow-x-auto items-center space-x-2 whitespace-nowrap"
|
||||
>
|
||||
<li>
|
||||
<button
|
||||
@ -3371,7 +3371,7 @@ const handleKeyDown = (event) => {
|
||||
|
||||
<td class="text-white text-end text-sm sm:text-[1rem]">
|
||||
{#if item?.changesPercentage >= 0}
|
||||
<span class="text-[#00FC50]"
|
||||
<span class="text-green-600 dark:text-[#00FC50]"
|
||||
>+{item?.changesPercentage >= 1000
|
||||
? abbreviateNumber(item?.changesPercentage)
|
||||
: item?.changesPercentage?.toFixed(2)}%</span
|
||||
@ -3478,7 +3478,7 @@ const handleKeyDown = (event) => {
|
||||
{#if row?.rule === "marketCap"}
|
||||
{abbreviateNumber(item[row?.rule])}
|
||||
{:else if item[row?.rule] > 0}
|
||||
<span class="text-[#00FC50]"
|
||||
<span class="text-green-600 dark:text-[#00FC50]"
|
||||
>+{abbreviateNumber(
|
||||
item[row?.rule]?.toFixed(2),
|
||||
)}%</span
|
||||
@ -3537,7 +3537,7 @@ const handleKeyDown = (event) => {
|
||||
>
|
||||
{:else if row?.rule === "upside"}
|
||||
{#if item[row?.rule] > 0}
|
||||
<span class="text-[#00FC50]"
|
||||
<span class="text-green-600 dark:text-[#00FC50]"
|
||||
>+{item[row?.rule]?.toFixed(2)}%</span
|
||||
>
|
||||
{:else if item[row?.rule] < 0}
|
||||
@ -3549,7 +3549,9 @@ const handleKeyDown = (event) => {
|
||||
{/if}
|
||||
{:else if ["analystRating", "topAnalystRating"]?.includes(row?.rule)}
|
||||
{#if ["Strong Buy", "Buy"].includes(item[row?.rule])}
|
||||
<span class="text-[#00FC50]">{item[row?.rule]}</span>
|
||||
<span class="text-green-600 dark:text-[#00FC50]"
|
||||
>{item[row?.rule]}</span
|
||||
>
|
||||
{:else if ["Strong Sell", "Sell"].includes(item[row?.rule])}
|
||||
<span class="text-[#FF2F1F]">{item[row?.rule]}</span>
|
||||
{:else if item[row?.rule] === "Hold"}
|
||||
|
||||
@ -756,7 +756,7 @@
|
||||
>
|
||||
<span
|
||||
class={displayLegend?.graphChange >= 0
|
||||
? "before:content-['+'] text-[#00FC50]"
|
||||
? "before:content-['+'] text-green-500 dark:text-[#00FC50]"
|
||||
: "text-[#FF2F1F]"}
|
||||
>
|
||||
{displayLegend?.graphChange ??
|
||||
|
||||
@ -31,7 +31,7 @@
|
||||
<li class="mb-3 last:mb-1">
|
||||
{formatDate(item?.publishedDate)} ·
|
||||
<a
|
||||
class="sm:hover:text-white text-blue-400"
|
||||
class="text-blue-500 sm:hover:text-muted dark:sm:hover:text-white dark:text-blue-400"
|
||||
href={item?.url}
|
||||
target="_blank"
|
||||
rel="noopener noreferrer nofollow">{item?.title}</a
|
||||
|
||||
@ -817,7 +817,7 @@
|
||||
class="hide-scroll mb-1 mt-2 overflow-x-auto px-1.5 text-center md:mb-0 md:px-0 lg:mt-2"
|
||||
>
|
||||
<table
|
||||
class="w-full text-right text-tiny text-white xs:text-sm sm:text-base"
|
||||
class="w-full text-right text-tiny text-white xs:text-sm sm:"
|
||||
>
|
||||
<thead
|
||||
><tr
|
||||
@ -842,22 +842,22 @@
|
||||
><td class="py-[3px] text-left lg:py-0.5">Change</td>
|
||||
<td
|
||||
class={lowChange > 0
|
||||
? "before:content-['+'] text-[#00FC50]"
|
||||
? "before:content-['+'] text-green-500 dark:text-[#00FC50]"
|
||||
: "text-[#FF2F1F]"}>{lowChange}%</td
|
||||
>
|
||||
<td
|
||||
class={avgChange > 0
|
||||
? "before:content-['+'] text-[#00FC50]"
|
||||
? "before:content-['+'] text-green-500 dark:text-[#00FC50]"
|
||||
: "text-[#FF2F1F]"}>{avgChange}%</td
|
||||
>
|
||||
<td
|
||||
class={medianChange > 0
|
||||
? "before:content-['+'] text-[#00FC50]"
|
||||
? "before:content-['+'] text-green-500 dark:text-[#00FC50]"
|
||||
: "text-[#FF2F1F]"}>{medianChange}%</td
|
||||
>
|
||||
<td
|
||||
class={highChange > 0
|
||||
? "before:content-['+'] text-[#00FC50]"
|
||||
? "before:content-['+'] text-green-500 dark:text-[#00FC50]"
|
||||
: "text-[#FF2F1F]"}>{highChange}%</td
|
||||
></tr
|
||||
></tbody
|
||||
@ -1008,9 +1008,7 @@
|
||||
<div
|
||||
class="border-b px-3 py-5 last:border-b-0 xs:px-4 sm:p-6 md:border-b lg:border-b-0 border-gray-600"
|
||||
>
|
||||
<div class="text-base font-normal text-white">
|
||||
Revenue This Year
|
||||
</div>
|
||||
<div class=" font-normal text-white">Revenue This Year</div>
|
||||
<div
|
||||
class="mt-1 flex flex-wrap items-baseline justify-between space-y-2 bp:space-y-0"
|
||||
>
|
||||
@ -1080,9 +1078,7 @@
|
||||
<div
|
||||
class="border-b px-3 py-5 last:border-b-0 xs:px-4 sm:p-6 md:border-b md:border-l lg:border-b-0"
|
||||
>
|
||||
<div class="text-base font-normal text-white">
|
||||
Revenue Next Year
|
||||
</div>
|
||||
<div class=" font-normal text-white">Revenue Next Year</div>
|
||||
<div
|
||||
class="mt-1 flex flex-wrap items-baseline justify-between space-y-2 bp:space-y-0"
|
||||
>
|
||||
@ -1148,9 +1144,7 @@
|
||||
<div
|
||||
class="border-b px-3 py-5 last:border-b-0 xs:px-4 sm:p-6 md:border-b-0 lg:border-l"
|
||||
>
|
||||
<div class="text-base font-normal text-white">
|
||||
EPS This Year
|
||||
</div>
|
||||
<div class=" font-normal text-white">EPS This Year</div>
|
||||
<div
|
||||
class="mt-1 flex flex-wrap items-baseline justify-between space-y-2 bp:space-y-0"
|
||||
>
|
||||
@ -1201,9 +1195,7 @@
|
||||
<div
|
||||
class="border-b px-3 py-5 last:border-b-0 xs:px-4 sm:p-6 md:border-l border-gray-600"
|
||||
>
|
||||
<div class="text-base font-normal text-white">
|
||||
EPS Next Year
|
||||
</div>
|
||||
<div class=" font-normal text-white">EPS Next Year</div>
|
||||
<div
|
||||
class="mt-1 flex flex-wrap items-baseline justify-between space-y-2 bp:space-y-0"
|
||||
>
|
||||
|
||||
@ -362,7 +362,7 @@
|
||||
class="font-bold {['Strong Buy', 'Buy']?.includes(
|
||||
consensusRating,
|
||||
)
|
||||
? 'text-[#00FC50]'
|
||||
? 'text-green-600 dark:text-[#00FC50]'
|
||||
: ['Strong Sell', 'Sell']?.includes(consensusRating)
|
||||
? 'text-[#FF2F1F]'
|
||||
: 'text-[#fff]'}">{consensusRating}</span
|
||||
@ -380,7 +380,7 @@
|
||||
class="hide-scroll mb-1 mt-2 overflow-x-auto px-1.5 text-center md:mb-0 md:px-0 lg:mt-2"
|
||||
>
|
||||
<table
|
||||
class="w-full text-right text-tiny text-white xs:text-sm sm:text-base"
|
||||
class="w-full text-right text-tiny text-white xs:text-sm sm:"
|
||||
>
|
||||
<thead
|
||||
><tr
|
||||
@ -405,22 +405,22 @@
|
||||
><td class="py-[3px] text-left lg:py-0.5">Change</td>
|
||||
<td
|
||||
class={lowChange > 0
|
||||
? "before:content-['+'] text-[#00FC50]"
|
||||
? "before:content-['+'] text-green-500 dark:text-[#00FC50]"
|
||||
: "text-[#FF2F1F]"}>{lowChange}%</td
|
||||
>
|
||||
<td
|
||||
class={avgChange > 0
|
||||
? "before:content-['+'] text-[#00FC50]"
|
||||
? "before:content-['+'] text-green-500 dark:text-[#00FC50]"
|
||||
: "text-[#FF2F1F]"}>{avgChange}%</td
|
||||
>
|
||||
<td
|
||||
class={medianChange > 0
|
||||
? "before:content-['+'] text-[#00FC50]"
|
||||
? "before:content-['+'] text-green-500 dark:text-[#00FC50]"
|
||||
: "text-[#FF2F1F]"}>{medianChange}%</td
|
||||
>
|
||||
<td
|
||||
class={highChange > 0
|
||||
? "before:content-['+'] text-[#00FC50]"
|
||||
? "before:content-['+'] text-green-500 dark:text-[#00FC50]"
|
||||
: "text-[#FF2F1F]"}>{highChange}%</td
|
||||
></tr
|
||||
></tbody
|
||||
|
||||
@ -387,7 +387,7 @@
|
||||
href={item?.analystId !== null
|
||||
? `/analysts/${item?.analystId}`
|
||||
: "#"}
|
||||
class="sm:hover:text-white text-blue-400"
|
||||
class="text-blue-500 sm:hover:text-muted dark:sm:hover:text-white dark:text-blue-400"
|
||||
>{item?.analyst_name}
|
||||
</a>
|
||||
|
||||
@ -444,9 +444,9 @@
|
||||
class=" {['Strong Buy', 'Buy']?.includes(
|
||||
item?.rating_current,
|
||||
)
|
||||
? 'text-[#00FC50]'
|
||||
? 'text-green-600 dark:text-[#00FC50]'
|
||||
: item?.rating_current === 'Hold'
|
||||
? 'text-[#FF7070]'
|
||||
? '"text-red-600 dark:text-[#FF7070]"'
|
||||
: ['Strong Sell', 'Sell']?.includes(
|
||||
item?.rating_current,
|
||||
)
|
||||
@ -558,9 +558,7 @@
|
||||
>
|
||||
Analyst Star Rankings
|
||||
</h3>
|
||||
<p
|
||||
class="mt-3 text-base leading-8 text-muted dark:text-faded xl:text-lg"
|
||||
>
|
||||
<p class="mt-3 leading-8 text-muted dark:text-faded xl:text-lg">
|
||||
Our analyst star rankings are based on these four factors
|
||||
</p>
|
||||
</div>
|
||||
@ -570,7 +568,7 @@
|
||||
>
|
||||
<div class="relative pl-14">
|
||||
<dt
|
||||
class="text-base font-semibold leading-4 text-white md:leading-7"
|
||||
class=" font-semibold leading-4 text-white md:leading-7"
|
||||
>
|
||||
<div
|
||||
class="absolute left-0 top-0 flex h-10 w-10 items-center justify-center rounded-md bg-[#fff]"
|
||||
@ -591,15 +589,13 @@
|
||||
</div>
|
||||
Success Rate
|
||||
</dt>
|
||||
<dd
|
||||
class="mt-2 text-base leading-7 text-muted dark:text-faded"
|
||||
>
|
||||
<dd class="mt-2 leading-7 text-muted dark:text-faded">
|
||||
The percentage of ratings that are profitable.
|
||||
</dd>
|
||||
</div>
|
||||
<div class="relative pl-14">
|
||||
<dt
|
||||
class="text-base font-semibold leading-4 text-white md:leading-7"
|
||||
class=" font-semibold leading-4 text-white md:leading-7"
|
||||
>
|
||||
<div
|
||||
class="absolute left-0 top-0 flex h-10 w-10 items-center justify-center rounded-md bg-[#fff]"
|
||||
@ -620,16 +616,14 @@
|
||||
</div>
|
||||
Average Return
|
||||
</dt>
|
||||
<dd
|
||||
class="mt-2 text-base leading-7 text-muted dark:text-faded"
|
||||
>
|
||||
<dd class="mt-2 leading-7 text-muted dark:text-faded">
|
||||
The average percentage return within one year of the
|
||||
rating.
|
||||
</dd>
|
||||
</div>
|
||||
<div class="relative pl-14">
|
||||
<dt
|
||||
class="text-base font-semibold leading-4 text-white md:leading-7"
|
||||
class=" font-semibold leading-4 text-white md:leading-7"
|
||||
>
|
||||
<div
|
||||
class="absolute left-0 top-0 flex h-10 w-10 items-center justify-center rounded-md bg-[#fff]"
|
||||
@ -650,16 +644,14 @@
|
||||
</div>
|
||||
Rating Count
|
||||
</dt>
|
||||
<dd
|
||||
class="mt-2 text-base leading-7 text-muted dark:text-faded"
|
||||
>
|
||||
<dd class="mt-2 leading-7 text-muted dark:text-faded">
|
||||
The more ratings the analyst has provided, the higher the
|
||||
score.
|
||||
</dd>
|
||||
</div>
|
||||
<div class="relative pl-14">
|
||||
<dt
|
||||
class="text-base font-semibold leading-4 text-white md:leading-7"
|
||||
class=" font-semibold leading-4 text-white md:leading-7"
|
||||
>
|
||||
<div
|
||||
class="absolute left-0 top-0 flex h-10 w-10 items-center justify-center rounded-md bg-[#fff]"
|
||||
@ -680,9 +672,7 @@
|
||||
</div>
|
||||
Recency
|
||||
</dt>
|
||||
<dd
|
||||
class="mt-2 text-base leading-7 text-muted dark:text-faded"
|
||||
>
|
||||
<dd class="mt-2 leading-7 text-muted dark:text-faded">
|
||||
Ratings provided within the past year contribute to a
|
||||
higher score.
|
||||
</dd>
|
||||
|
||||
@ -143,7 +143,7 @@
|
||||
<li class="mb-3 last:mb-1">
|
||||
{formatDate(item?.publishedDate)} ago -
|
||||
<a
|
||||
class="sm:hover:text-white text-blue-400"
|
||||
class="text-blue-500 sm:hover:text-muted dark:sm:hover:text-white dark:text-blue-400"
|
||||
href={item?.url}
|
||||
target="_blank"
|
||||
rel="noopener noreferrer nofollow">{item?.title}</a
|
||||
|
||||
@ -240,7 +240,7 @@
|
||||
r="16"
|
||||
fill="none"
|
||||
class="stroke-current {buySellRatio >= 0.5
|
||||
? 'text-[#00FC50]'
|
||||
? 'text-green-600 dark:text-[#00FC50]'
|
||||
: 'text-[#EE5365]'} "
|
||||
stroke-width="3"
|
||||
stroke-dasharray="100"
|
||||
@ -366,7 +366,7 @@
|
||||
<div class="flex flex-col ml-3 font-normal">
|
||||
<a
|
||||
href={`/politicians/${item?.id}`}
|
||||
class="sm:hover:text-white text-blue-400"
|
||||
class="text-blue-500 sm:hover:text-muted dark:sm:hover:text-white dark:text-blue-400"
|
||||
>{getAbbreviatedName(
|
||||
item?.representative?.replace("_", " "),
|
||||
)}</a
|
||||
@ -405,7 +405,9 @@
|
||||
class="text-end text-sm sm:text-[1rem] whitespace-nowrap text-white"
|
||||
>
|
||||
{#if item?.type === "Bought"}
|
||||
<span class="text-[#00FC50]">Bought</span>
|
||||
<span class="text-green-600 dark:text-[#00FC50]"
|
||||
>Bought</span
|
||||
>
|
||||
{:else if item?.type === "Sold"}
|
||||
<span class="text-[#FF2F1F]">Sold</span>
|
||||
{:else if item?.type === "Exchange"}
|
||||
|
||||
@ -12,7 +12,6 @@
|
||||
import { onMount } from "svelte";
|
||||
import SEO from "$lib/components/SEO.svelte";
|
||||
|
||||
|
||||
let chats = [];
|
||||
let date;
|
||||
|
||||
@ -78,15 +77,13 @@
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<SEO title={`${$displayCompanyName} (${$stockTicker}) Q${quarter} ${year} · Earnings Call Transcript · Stocknear`}
|
||||
<SEO
|
||||
title={`${$displayCompanyName} (${$stockTicker}) Q${quarter} ${year} · Earnings Call Transcript · Stocknear`}
|
||||
description={`Get the latest Earnings Call Transcript of ${$displayCompanyName} (${$stockTicker}) for different years and quarters.`}
|
||||
/>
|
||||
|
||||
<section
|
||||
class="w-full bg-default overflow-hidden text-white min-h-screen mb-40 sm:mb-0"
|
||||
|
||||
>
|
||||
<div class="h-full overflow-hidden">
|
||||
<div class="relative flex justify-center items-center overflow-hidden">
|
||||
@ -217,7 +214,7 @@
|
||||
<div
|
||||
class="flex items-center space-x-2 rtl:space-x-reverse"
|
||||
>
|
||||
<span class="text-sm text-base">
|
||||
<span class="text-sm">
|
||||
{item?.name}
|
||||
</span>
|
||||
</div>
|
||||
@ -247,7 +244,7 @@
|
||||
<div class="flex flex-col items-start gap-2.5 mt-8">
|
||||
<div class="flex flex-row items-center">
|
||||
<div
|
||||
class="avatar rounded-full w-8 h-8 sm:w-10 sm:h-10 relative bg-red-600 bg-opacity-[0.6] flex items-center justify-center text-white text-sm sm:text-base"
|
||||
class="avatar rounded-full w-8 h-8 sm:w-10 sm:h-10 relative bg-red-600 bg-opacity-[0.6] flex items-center justify-center text-white text-sm sm:"
|
||||
>
|
||||
<span
|
||||
class="absolute inset-0 flex items-center justify-center"
|
||||
@ -258,7 +255,7 @@
|
||||
<div
|
||||
class="ml-2 flex items-center space-x-2 rtl:space-x-reverse"
|
||||
>
|
||||
<span class="text-sm text-base">
|
||||
<span class="text-sm">
|
||||
{item?.name}
|
||||
</span>
|
||||
</div>
|
||||
@ -281,9 +278,9 @@
|
||||
Back to top
|
||||
</label>
|
||||
{:else}
|
||||
<Infobox
|
||||
text={`No transcript available for ${$displayCompanyName} for the Q${displayQuarter} of ${displayYear}`}
|
||||
/>
|
||||
<Infobox
|
||||
text={`No transcript available for ${$displayCompanyName} for the Q${displayQuarter} of ${displayYear}`}
|
||||
/>
|
||||
{/if}
|
||||
{:else}
|
||||
<div class="flex justify-center items-center h-80">
|
||||
|
||||
@ -139,7 +139,7 @@
|
||||
{#each growthValues[index] as growthValue}
|
||||
<td
|
||||
class="text-sm sm:text-[1rem] text-end {growthValue > 0
|
||||
? 'text-[#00FC50]'
|
||||
? 'text-green-600 dark:text-[#00FC50]'
|
||||
: growthValue < 0
|
||||
? 'text-[#FF2F1F]'
|
||||
: 'text-white'} border-b border-gray-800"
|
||||
@ -214,7 +214,7 @@
|
||||
<td
|
||||
class="text-sm sm:text-[1rem] text-center {growthValue >
|
||||
0
|
||||
? 'text-[#00FC50]'
|
||||
? 'text-green-600 dark:text-[#00FC50]'
|
||||
: growthValue < 0
|
||||
? 'text-[#FF2F1F]'
|
||||
: 'text-white'} border-b border-gray-800"
|
||||
@ -291,7 +291,7 @@
|
||||
<td
|
||||
class="text-sm sm:text-[1rem] text-center {growthValue >
|
||||
0
|
||||
? 'text-[#00FC50]'
|
||||
? 'text-green-600 dark:text-[#00FC50]'
|
||||
: growthValue < 0
|
||||
? 'text-[#FF2F1F]'
|
||||
: 'text-white'} border-b border-gray-800"
|
||||
|
||||
@ -276,7 +276,7 @@
|
||||
class="text-white text-sm sm:text-[1rem] whitespace-nowrap text-end"
|
||||
>
|
||||
{#if item?.valueGrowth > 0}
|
||||
<span class="text-[#00FC50]">
|
||||
<span class="text-green-600 dark:text-[#00FC50]">
|
||||
+{item?.valueGrowth?.toFixed(2)}%
|
||||
</span>
|
||||
{:else if item?.valueGrowth < 0}
|
||||
|
||||
@ -411,7 +411,7 @@
|
||||
<tbody>
|
||||
{#each data?.user?.tier === "Pro" ? optionList : optionList?.slice(0, 3) as item, index}
|
||||
<tr
|
||||
class="sm:hover:bg-[#245073]/10 odd:bg-odd border-b border-gray-800 {index +
|
||||
class="dark:sm:hover:bg-[#245073]/10 odd:bg-[#F6F7F8] dark:odd:bg-oddborder-b border-gray-800 {index +
|
||||
1 ===
|
||||
optionList?.slice(0, 3)?.length &&
|
||||
!['Pro']?.includes(data?.user?.tier)
|
||||
@ -424,7 +424,7 @@
|
||||
|
||||
<td class="text-white text-sm sm:text-[1rem] text-end">
|
||||
{#if item?.changesPercentage >= 0 && item?.changesPercentage !== null}
|
||||
<span class="text-[#00FC50]"
|
||||
<span class="text-green-600 dark:text-[#00FC50]"
|
||||
>+{item?.changesPercentage >= 1000
|
||||
? abbreviateNumberWithColor(
|
||||
item?.changesPercentage,
|
||||
@ -552,7 +552,7 @@
|
||||
|
||||
<td class="text-white text-sm sm:text-[1rem] text-end">
|
||||
{#if item?.changeOI >= 0}
|
||||
<span class="text-[#00FC50]"
|
||||
<span class="text-green-600 dark:text-[#00FC50]"
|
||||
>+{item?.changeOI?.toLocaleString("en-US")}</span
|
||||
>
|
||||
{:else if item?.changeOI < 0}
|
||||
@ -566,7 +566,7 @@
|
||||
|
||||
<td class="text-white text-sm sm:text-[1rem] text-end">
|
||||
{#if item?.changesPercentageOI >= 0}
|
||||
<span class="text-[#00FC50]"
|
||||
<span class="text-green-600 dark:text-[#00FC50]"
|
||||
>+{item?.changesPercentageOI >= 1000
|
||||
? abbreviateNumberWithColor(
|
||||
item?.changesPercentageOI,
|
||||
|
||||
@ -294,7 +294,7 @@ ${paragraphs.join("\n")}
|
||||
Key Executives
|
||||
</h2>
|
||||
{#if rawData?.executives?.length > 0}
|
||||
<table class="mb-6 w-full text-base xs:mb-8">
|
||||
<table class="mb-6 w-full xs:mb-8">
|
||||
<thead class="bg-gray-200 shadow-sm dark:bg-primary"
|
||||
><tr class="border-y border-gray-300 dark:border-gray-600"
|
||||
><th
|
||||
|
||||
@ -128,7 +128,7 @@
|
||||
<li class="mb-3 last:mb-1">
|
||||
{formatDate(item?.publishedDate)} ago -
|
||||
<a
|
||||
class="sm:hover:text-white text-blue-400"
|
||||
class="text-blue-500 sm:hover:text-muted dark:sm:hover:text-white dark:text-blue-400"
|
||||
href={item?.url}
|
||||
target="_blank"
|
||||
rel="noopener noreferrer nofollow">{item?.title}</a
|
||||
|
||||
@ -517,7 +517,7 @@
|
||||
|
||||
<div class="mt-5 w-full overflow-x-auto">
|
||||
<table
|
||||
class="table table-sm table-compact rounded-none sm:rounded-md w-full bg-table border border-gray-800 m-auto"
|
||||
class="table table-sm table-compact no-scrollbar rounded-none sm:rounded-md w-full bg-white dark:bg-table border border-gray-300 dark:border-gray-800 m-auto"
|
||||
>
|
||||
<thead class="bg-default">
|
||||
<tr>
|
||||
@ -581,7 +581,7 @@
|
||||
{#if index === historyList?.length - 1}
|
||||
n/a
|
||||
{:else if item?.employeeCount > historyList[index + 1]?.employeeCount}
|
||||
<span class="text-[#00FC50]">
|
||||
<span class="text-green-600 dark:text-[#00FC50]">
|
||||
+{(
|
||||
((item?.employeeCount -
|
||||
historyList[index + 1]?.employeeCount) /
|
||||
|
||||
@ -921,7 +921,7 @@
|
||||
Dividends & Yields
|
||||
</h2>
|
||||
<p
|
||||
class="mb-4 px-0.5 text-base leading-relaxed xs:text-[1.05rem] lg:leading-normal"
|
||||
class="mb-4 px-0.5 leading-relaxed xs:text-[1.05rem] lg:leading-normal"
|
||||
>
|
||||
{#if rawData?.annualDividend !== null && rawData?.dividendYield !== null}
|
||||
{$stockTicker} pays an annual dividend of ${rawData?.annualDividend},
|
||||
@ -1011,7 +1011,7 @@
|
||||
<div>
|
||||
<h2 class="mb-2 px-0.5 text-xl font-bold">Analyst Forecast</h2>
|
||||
<p
|
||||
class="mb-4 px-0.5 text-base leading-relaxed xs:text-[1.05rem] lg:leading-normal"
|
||||
class="mb-4 px-0.5 leading-relaxed xs:text-[1.05rem] lg:leading-normal"
|
||||
data-test="statistics-text"
|
||||
>
|
||||
{#if rawData?.priceTarget && rawData?.upside && rawData?.analystRating}
|
||||
@ -1083,7 +1083,7 @@
|
||||
<div>
|
||||
<h2 class="mb-2 px-0.5 text-xl font-bold">Stock Splits</h2>
|
||||
<p
|
||||
class="mb-4 px-0.5 text-base leading-relaxed xs:text-[1.05rem] lg:leading-normal"
|
||||
class="mb-4 px-0.5 leading-relaxed xs:text-[1.05rem] lg:leading-normal"
|
||||
data-test="statistics-text"
|
||||
>
|
||||
The last stock split was on {new Date(
|
||||
|
||||
@ -319,7 +319,7 @@
|
||||
<td
|
||||
class="text-sm sm:text-[1rem] {item?.put_call ===
|
||||
'Calls'
|
||||
? 'text-[#00FC50]'
|
||||
? 'text-green-600 dark:text-[#00FC50]'
|
||||
: 'text-[#FF2F1F]'} text-start"
|
||||
>
|
||||
{item?.put_call}
|
||||
@ -328,7 +328,7 @@
|
||||
<td
|
||||
class="text-sm sm:text-[1rem] {item?.sentiment ===
|
||||
'Bullish'
|
||||
? 'text-[#00FC50]'
|
||||
? 'text-green-600 dark:text-[#00FC50]'
|
||||
: item?.sentiment === 'Bearish'
|
||||
? 'text-[#FF2F1F]'
|
||||
: 'text-[#C6A755]'} text-start"
|
||||
|
||||
@ -1608,7 +1608,8 @@
|
||||
: "n/a"}
|
||||
{:else if row?.type === "percentSign"}
|
||||
{#if item[row?.rule] >= 0}
|
||||
<span class="text-[#00FC50]"
|
||||
<span
|
||||
class="text-green-600 dark:text-[#00FC50]"
|
||||
>+{item[row?.rule]?.toFixed(2)}%</span
|
||||
>
|
||||
{:else}
|
||||
@ -1618,7 +1619,8 @@
|
||||
{/if}
|
||||
{:else if row?.type === "rating"}
|
||||
{#if ["Strong Buy", "Buy"].includes(item[row?.rule])}
|
||||
<span class="text-[#00FC50]"
|
||||
<span
|
||||
class="text-green-600 dark:text-[#00FC50]"
|
||||
>{item[row?.rule]}</span
|
||||
>
|
||||
{:else if ["Strong Sell", "Sell"].includes(item[row?.rule])}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user