From 902b7343025c99a374acea7ef56dc3be2033fe67 Mon Sep 17 00:00:00 2001 From: MuslemRahimi Date: Mon, 27 Jan 2025 13:40:00 +0100 Subject: [PATCH] adding market heatmap --- package-lock.json | 45 +++++ package.json | 1 + src/routes/+layout.svelte | 17 +- src/routes/api/heatmap/+server.ts | 24 +++ src/routes/heatmap/+page.server.ts | 21 --- src/routes/heatmap/+page.svelte | 260 ++++++++++++++++++++++++----- src/routes/sitemap.xml/+server.ts | 1 + src/routes/sitemap/+page.svelte | 4 + 8 files changed, 302 insertions(+), 71 deletions(-) create mode 100644 src/routes/api/heatmap/+server.ts delete mode 100644 src/routes/heatmap/+page.server.ts diff --git a/package-lock.json b/package-lock.json index e712c006..da2034ea 100644 --- a/package-lock.json +++ b/package-lock.json @@ -40,6 +40,7 @@ "file-saver": "^2.0.5", "flowbite-svelte": "^0.46.15", "got": "^14.4.2", + "html2canvas": "^1.4.1", "jsonwebtoken": "^9.0.2", "katex": "^0.16.11", "layercake": "^8.4.0-beta.1", @@ -3732,6 +3733,16 @@ "integrity": "sha512-X1xgQhkZ9n94WDwntqst5D/FKkmiU0GlJSFZSV3kLvyJ1WC5VeyoXDOuleUD+SIuH9C7W05is++0Woh0CGfKjQ==", "license": "MIT" }, + "node_modules/css-line-break": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-line-break/-/css-line-break-2.1.0.tgz", + "integrity": "sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "utrie": "^1.0.2" + } + }, "node_modules/css-loader": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-7.1.2.tgz", @@ -5580,6 +5591,20 @@ "integrity": "sha512-08iL2VyCRbkQKBySkSh6m8zMUa3sADAxGVWs3Z1aPcUkTJeK0ETG4Fc27tEmQBGUAXZjIsXOZqBvacuVNSC/fQ==", "license": "MIT" }, + "node_modules/html2canvas": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/html2canvas/-/html2canvas-1.4.1.tgz", + "integrity": "sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA==", + "dev": true, + "license": "MIT", + "dependencies": { + "css-line-break": "^2.1.0", + "text-segmentation": "^1.0.3" + }, + "engines": { + "node": ">=8.0.0" + } + }, "node_modules/http-cache-semantics": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", @@ -9307,6 +9332,16 @@ "license": "MIT", "peer": true }, + "node_modules/text-segmentation": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/text-segmentation/-/text-segmentation-1.0.3.tgz", + "integrity": "sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw==", + "dev": true, + "license": "MIT", + "dependencies": { + "utrie": "^1.0.2" + } + }, "node_modules/thenify": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", @@ -9628,6 +9663,16 @@ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "license": "MIT" }, + "node_modules/utrie": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/utrie/-/utrie-1.0.2.tgz", + "integrity": "sha512-1MLa5ouZiOmQzUbjbu9VmjLzn1QLXBhwpUa7kdLUQK+KQ5KA9I1vk5U4YHe/X2Ch7PYnJfWuWT+VbuxbGwljhw==", + "dev": true, + "license": "MIT", + "dependencies": { + "base64-arraybuffer": "^1.0.2" + } + }, "node_modules/uuid": { "version": "10.0.0", "resolved": "https://registry.npmjs.org/uuid/-/uuid-10.0.0.tgz", diff --git a/package.json b/package.json index d9a1f861..2860d207 100644 --- a/package.json +++ b/package.json @@ -42,6 +42,7 @@ "file-saver": "^2.0.5", "flowbite-svelte": "^0.46.15", "got": "^14.4.2", + "html2canvas": "^1.4.1", "jsonwebtoken": "^9.0.2", "katex": "^0.16.11", "layercake": "^8.4.0-beta.1", diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index 13e499bd..85c0538b 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -409,19 +409,19 @@ >Market Mover - + + + + + + {#each ["1D", "1W", "1M", "3M", "6M", "1Y", "3Y"] as item} + +
+ +
+
+ {/each} +
+
+ + + + + + + + + + {#each ["PNG", "JPG", "SVG"] as item} + +
+ +
+
+ {/each} +
+
+
+ + +
+ {#if rawData} +