diff --git a/package-lock.json b/package-lock.json index 9464b9e8..69bdb5a0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -53,6 +53,7 @@ "svelte-progress-bar": "^3.0.2", "svelte-range-slider-pips": "^2.3.1", "svelte-sonner": "^0.3.27", + "svelte-splitpanes": "^8.0.5", "svelte-tags-input": "^6.0.0", "svelte-tiny-virtual-list": "^2.1.2", "tailwind-merge": "^2.4.0", @@ -4673,8 +4674,15 @@ "node_modules/esm-env": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.0.0.tgz", - "integrity": "sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==", - "dev": true + "integrity": "sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==" + }, + "node_modules/esm-env-robust": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/esm-env-robust/-/esm-env-robust-0.0.3.tgz", + "integrity": "sha512-90Gnuw2DALOqlL1581VxP3GHPUNHX9U+fQ+8FNcTTFClhY5gEggAAnJ3q1b2Oq23knRsjv8YpNeMRPaMLUymOA==", + "dependencies": { + "esm-env": "^1.0.0" + } }, "node_modules/estree-walker": { "version": "2.0.2", @@ -7666,6 +7674,17 @@ "svelte": "^3.0.0 || ^4.0.0 || ^5.0.0-next.1" } }, + "node_modules/svelte-splitpanes": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/svelte-splitpanes/-/svelte-splitpanes-8.0.5.tgz", + "integrity": "sha512-LUdNbuckYtGcBI5Us1ugYlw0fC6wnUEbUTgUY4TVLR/ZCsSrTw9Ftuf7NkM0tTRMCBG3ZmzPDfWuOlmSOXGU/A==", + "dependencies": { + "esm-env-robust": "0.0.3" + }, + "peerDependencies": { + "svelte": "^4.2.18" + } + }, "node_modules/svelte-tags-input": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/svelte-tags-input/-/svelte-tags-input-6.0.1.tgz", diff --git a/package.json b/package.json index 4f21ac06..a6c752ce 100644 --- a/package.json +++ b/package.json @@ -95,6 +95,7 @@ "svelte-progress-bar": "^3.0.2", "svelte-range-slider-pips": "^2.3.1", "svelte-sonner": "^0.3.27", + "svelte-splitpanes": "^8.0.5", "svelte-tags-input": "^6.0.0", "svelte-tiny-virtual-list": "^2.1.2", "tailwind-merge": "^2.4.0", diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index 84413d74..66454f5d 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -41,6 +41,8 @@ import MessageCircle from "lucide-svelte/icons/message-circle"; import AudioLine from "lucide-svelte/icons/audio-lines"; + import { Pane, Splitpanes } from 'svelte-splitpanes'; + export let data; let cloudFrontUrl = import.meta.env.VITE_IMAGE_URL; @@ -262,6 +264,9 @@ $: {
+ + + {#if !data?.user}
@@ -312,684 +317,770 @@ $: { {:else }
- -
-
- -
- - - - - - - - - - -
- - -
- -
- - -
-
-
- -
- -
- - - - - - - - Congress - - - - - - - - - - - - - -
- -
- - - - - - - - Tracker Datasets - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - {#if data?.user?.tier === 'Free' || data?.user?.freeTrial === true} -
- - - Upgrade to Pro - - {#if data?.user?.freeTrial === true} - Your free trial will expire soon. - Upgrade now for unlimited access to all features! - {:else} - Unlock all features of the platform and level up your trading. - {/if} - - - - - - - - -
+ Community + + + + {#if data?.user?.tier === 'Free' || data?.user?.freeTrial === true} +
+ + + Upgrade to Pro + + {#if data?.user?.freeTrial === true} + Your free trial will be expired soon. + Upgrade now for unlimited access to all features! + {:else} + Unlock all features of the platform and level up your trading. + {/if} + + + + + Upgrade + + + +
+ {/if} + + + + {/if} + + +
+ + + {#if Cookie && $showCookieConsent === true} + {/if} +
- - - - - - Stocknear - - - -
- - - - - -
- - - - - - - - - - My Account - - - - - - Watchlist - - - - - Price Alert - - - - -
- -
-
-
-
- -
-
- - - {#if Cookie && $showCookieConsent === true} - - {/if} + + + + {#if !hideFooter}
-
+ + + {/if} - \ No newline at end of file + + + .splitpanes.modern-theme { + .splitpanes__pane { + background-color: #f8f8f8; + } + .splitpanes__splitter { + background-color: #ccc; + position: relative; + + &:before { + content: ''; + position: absolute; + left: 0; + top: 0; + transition: opacity 0.4s; + background-color: #2db9d2; + opacity: 0; + z-index: 1; + } + &:hover:before { + opacity: 1; + } + &.splitpanes__splitter__active { + z-index: 2; /* Fix an issue of overlap fighting with a near hovered splitter */ + } + } + } + .modern-theme { + &.splitpanes--vertical > .splitpanes__splitter:before { + left: -3px; + right: -3px; + height: 100%; + cursor: col-resize; + } + &.splitpanes--horizontal > .splitpanes__splitter:before { + top: -3px; + bottom: -3px; + width: 100%; + cursor: row-resize; + } + } + + .splitpanes.no-splitter { + .splitpanes__pane { + background-color: #f8f8f8; + } + .splitpanes__splitter { + background-color: #ccc; + position: relative; + } + } + .no-splitter { + &.splitpanes--horizontal > .splitpanes__splitter:before { + width: 0.125rem; + pointer-events: none; + cursor: none; + } + &.splitpanes--vertical > .splitpanes__splitter:before { + height: 0.125rem; + pointer-events: none; + cursor: none; + } + } + + + + diff --git a/src/routes/community/+page.svelte b/src/routes/community/+page.svelte index 3b9b8839..faf929c1 100644 --- a/src/routes/community/+page.svelte +++ b/src/routes/community/+page.svelte @@ -410,18 +410,18 @@ $: { - + -
+
-
+
-
+
diff --git a/src/routes/corporate-lobbying-tracker/+page.svelte b/src/routes/corporate-lobbying-tracker/+page.svelte index 65daef16..dfbde58b 100644 --- a/src/routes/corporate-lobbying-tracker/+page.svelte +++ b/src/routes/corporate-lobbying-tracker/+page.svelte @@ -101,22 +101,25 @@ function changeOrder(state:string) { -
+
- + -
+
-
-
+ +
+
- -
+ + + +
@@ -170,7 +173,7 @@ function changeOrder(state:string) {
-
+
@@ -238,8 +241,10 @@ function changeOrder(state:string) { - + + + {:else}
@@ -250,9 +255,11 @@ function changeOrder(state:string) {
{/if} - - + + + + diff --git a/src/routes/home/+page.svelte b/src/routes/home/+page.svelte index d89f9bf3..ec5f6b89 100644 --- a/src/routes/home/+page.svelte +++ b/src/routes/home/+page.svelte @@ -176,8 +176,8 @@ onMount( async() => {
-
-
+
+
{#if Feedback} @@ -388,7 +388,7 @@ onMount( async() => {
    {#each data?.getDashboard?.upcomingEarnings as item} -
  • +
  • {item?.name} ({item?.symbol}) {['Monday', 'Tuesday', 'Wednesday', 'Thursday'].includes(new Date().toLocaleDateString('en-US', { weekday: 'long' })) ? "will report tomorrow" : "will report monday"} {#if item?.time} @@ -400,7 +400,6 @@ onMount( async() => { during market. {/if} {/if}Analysts estimate {abbreviateNumber(item?.revenueEst,true)} in revenue ({((item?.revenueEst/item?.revenuePrior-1)*100)?.toFixed(2)}% YoY) and ${item?.epsEst} in earnings per share ({((item?.epsEst/item?.epsPrior-1)*100)?.toFixed(2)}% YoY).
  • -
    {/each}
@@ -423,10 +422,10 @@ onMount( async() => {
  • Revenue of {abbreviateNumber(item?.revenue,true)} ({(item?.revenue/item?.revenuePrior-1) > 0 ? '+' :''}{((item?.revenue/item?.revenuePrior-1)*100)?.toFixed(2)}% YoY) {item?.revenueSurprise > 0 ? 'beats' : 'misses'} by {abbreviateNumber(Math.abs(item?.revenueSurprise),true)}.
  • -
  • +
  • EPS of ${item?.eps} ({(item?.eps/item?.epsPrior-1) > 0 ? '+' :''}{((item?.eps/item?.epsPrior-1)*100)?.toFixed(2)}% YoY) {item?.epsSurprise > 0 ? 'beats' : 'misses'} by ${Math.abs(item?.epsSurprise)?.toFixed(2)}.
  • -
    + {/each} diff --git a/src/routes/stocks/[tickerID]/+layout.svelte b/src/routes/stocks/[tickerID]/+layout.svelte index 78ace34f..c2559349 100644 --- a/src/routes/stocks/[tickerID]/+layout.svelte +++ b/src/routes/stocks/[tickerID]/+layout.svelte @@ -396,16 +396,16 @@ $: isScrolled = y > 0; - + -
    -
    -
    +
    +
    +
    - -
    +
    + -
    +
    -
    +
    -
    +
    -