From 02eef703cd1872864fb51b52184d5e1b6152626b Mon Sep 17 00:00:00 2001 From: "DESKTOP-0B2V58C\\HP" Date: Wed, 24 Jul 2024 20:35:21 +0300 Subject: [PATCH 01/10] feat: graph with svg --- src/lib/components/Note.svelte | 34 ++++++++++++++ src/routes/graph/+page.svelte | 82 ++++++++++++++++++++++++++++++++++ 2 files changed, 116 insertions(+) create mode 100644 src/lib/components/Note.svelte diff --git a/src/lib/components/Note.svelte b/src/lib/components/Note.svelte new file mode 100644 index 0000000..ce7dcd6 --- /dev/null +++ b/src/lib/components/Note.svelte @@ -0,0 +1,34 @@ + + + + + + {message} + + + + + diff --git a/src/routes/graph/+page.svelte b/src/routes/graph/+page.svelte index e69de29..a8631fa 100644 --- a/src/routes/graph/+page.svelte +++ b/src/routes/graph/+page.svelte @@ -0,0 +1,82 @@ + + + + +
+
+ + {#each Object.keys(links) as index} + + {/each} + {#each Object.keys(messages) as index} + onMouseDown(event, index)} + /> + {/each} + +
+
+ \ No newline at end of file From 2cd4671c71664bcd6a2ab1b82ed22c7ebfc210ba Mon Sep 17 00:00:00 2001 From: "DESKTOP-0B2V58C\\HP" Date: Wed, 24 Jul 2024 23:41:42 +0300 Subject: [PATCH 02/10] feat: html graph, Line&Note comp, copy button --- src/lib/components/Line.svelte | 26 +++++++++++++++ src/lib/components/Note.svelte | 58 +++++++++++++++++++++++----------- src/routes/graph/+page.svelte | 46 +++++++++++++-------------- 3 files changed, 88 insertions(+), 42 deletions(-) create mode 100644 src/lib/components/Line.svelte diff --git a/src/lib/components/Line.svelte b/src/lib/components/Line.svelte new file mode 100644 index 0000000..fe82b31 --- /dev/null +++ b/src/lib/components/Line.svelte @@ -0,0 +1,26 @@ + + +
+ + \ No newline at end of file diff --git a/src/lib/components/Note.svelte b/src/lib/components/Note.svelte index ce7dcd6..06a8c08 100644 --- a/src/lib/components/Note.svelte +++ b/src/lib/components/Note.svelte @@ -2,33 +2,55 @@ export let posX = 0 export let posY = 0 export let message = '' - export let onMouseDown; + export let onMouseDown function copyToClipboard(text) { - navigator.clipboard.writeText(text).then(() => { - console.log('Text copied to clipboard'); - }).catch(err => { - console.error('Failed to copy text: ', err); - }); - } + navigator.clipboard + .writeText(text) + .then(() => { + console.log('Text copied to clipboard') + }) + .catch((err) => { + console.error('Failed to copy text: ', err) + }) + } - - - - {message} - - - - - + + + + diff --git a/src/routes/graph/+page.svelte b/src/routes/graph/+page.svelte index a8631fa..8edc65b 100644 --- a/src/routes/graph/+page.svelte +++ b/src/routes/graph/+page.svelte @@ -1,6 +1,7 @@ - -
-
- - {#each Object.keys(links) as index} - - {/each} - {#each Object.keys(messages) as index} - + {#each Object.keys(links) as index} + + {/each} + {#each Object.keys(messages) as index} + onMouseDown(event, index)} - /> - {/each} - + /> + {/each}
-
- \ No newline at end of file + \ No newline at end of file From 68a8afdd0dd2e03381aff41a9ab784a95b6c1eb3 Mon Sep 17 00:00:00 2001 From: "DESKTOP-0B2V58C\\HP" Date: Fri, 26 Jul 2024 17:10:30 +0300 Subject: [PATCH 03/10] feat: graph transform, link button, string id --- src/lib/components/Line.svelte | 28 +++--- src/lib/components/Note.svelte | 46 +++++---- src/lib/index.svelte.ts | 23 ++++- src/routes/graph/+page.svelte | 174 ++++++++++++++++++++------------- 4 files changed, 170 insertions(+), 101 deletions(-) diff --git a/src/lib/components/Line.svelte b/src/lib/components/Line.svelte index fe82b31..92c89e6 100644 --- a/src/lib/components/Line.svelte +++ b/src/lib/components/Line.svelte @@ -1,19 +1,25 @@
@@ -21,6 +27,6 @@ \ No newline at end of file diff --git a/src/lib/components/Note.svelte b/src/lib/components/Note.svelte index 06a8c08..8d9a60d 100644 --- a/src/lib/components/Note.svelte +++ b/src/lib/components/Note.svelte @@ -1,8 +1,10 @@
-
-
{message}
- + + + + + + + +
+
{messageContent}
diff --git a/src/lib/index.svelte.ts b/src/lib/index.svelte.ts index d38c84c..a161943 100644 --- a/src/lib/index.svelte.ts +++ b/src/lib/index.svelte.ts @@ -22,6 +22,14 @@ const INCREMENT_PROVIDER: IdProvider = new IncrementProvider() export type MessageData = { content: string createdAt: number + transform:{ + position: { + x: number + y: number + } + width: number + height: number + } } export type Message = { @@ -44,6 +52,10 @@ class Messages { constructor(private id_provider: IdProvider = NANOID_PROVIDER) {} + get(id: Id): Message | null { + return this.messages[id] ?? null + } + insert(id: Id, message: MessageData) { const inner = { data: message, @@ -123,12 +135,21 @@ class Messages { } } + updateTransform(id: Id, position: { x: number, y: number }, width: number, height: number) { + const message = this.messages[id]; + if (message) { + message.data.transform = { position, width, height }; + } else { + console.error(`Message with id ${id} does not exist.`); + } + } + clear() { this.messages = {} } } -export const messages = $state(new Messages()) +export const messages = $state(new Messages(NANOID_PROVIDER)) type ExportedMessages = { // child to parent map diff --git a/src/routes/graph/+page.svelte b/src/routes/graph/+page.svelte index 8edc65b..a88b314 100644 --- a/src/routes/graph/+page.svelte +++ b/src/routes/graph/+page.svelte @@ -1,80 +1,118 @@ - - -
+ + +
- {#each Object.keys(links) as index} - - {/each} - {#each Object.keys(messages) as index} - onMouseDown(event, index)} - /> - {/each} + {#each Object.keys(links) as index} + + {/each} + {#each Object.keys(messages) as index} + onMouseDown(event, index)} + /> + {/each}
-
\ No newline at end of file +
+ + + + From 203205107e3f6ce8aeb1c61dc31d46812af7b186 Mon Sep 17 00:00:00 2001 From: "DESKTOP-0B2V58C\\HP" Date: Fri, 26 Jul 2024 19:09:09 +0300 Subject: [PATCH 04/10] feat: add infinity canvas --- src/lib/components/Note.svelte | 4 +- src/routes/+layout.svelte | 2 +- src/routes/graph/+page.svelte | 101 ++++++++++++++++++--------------- 3 files changed, 58 insertions(+), 49 deletions(-) diff --git a/src/lib/components/Note.svelte b/src/lib/components/Note.svelte index 8d9a60d..2af9a8d 100644 --- a/src/lib/components/Note.svelte +++ b/src/lib/components/Note.svelte @@ -1,6 +1,8 @@
-
+
diff --git a/src/routes/graph/+page.svelte b/src/routes/graph/+page.svelte index a88b314..2e4c908 100644 --- a/src/routes/graph/+page.svelte +++ b/src/routes/graph/+page.svelte @@ -1,20 +1,11 @@ + +
- - - - From 7d7ebb1e1fbb67de53bd34d596f4cd30ceba2aff Mon Sep 17 00:00:00 2001 From: "DESKTOP-0B2V58C\\HP" Date: Fri, 26 Jul 2024 21:05:44 +0300 Subject: [PATCH 05/10] feat: add zoom --- src/lib/components/Line.svelte | 2 +- src/lib/components/Note.svelte | 2 +- src/routes/graph/+page.svelte | 96 +++++++++++++++++++++------------- 3 files changed, 61 insertions(+), 39 deletions(-) diff --git a/src/lib/components/Line.svelte b/src/lib/components/Line.svelte index 92c89e6..ea667b0 100644 --- a/src/lib/components/Line.svelte +++ b/src/lib/components/Line.svelte @@ -15,7 +15,7 @@
- {#each Object.keys(links) as index} - - {/each} - {#each Object.keys(messages) as index} - onMouseDown(event, index)} - /> - {/each} +
From c4ecc61b8400f7db9abd88494c1d0ce737cde454 Mon Sep 17 00:00:00 2001 From: SDesya74 Date: Sun, 28 Jul 2024 19:28:32 +0300 Subject: [PATCH 06/10] feat: scroll with touchpad (break zoom) and some refactoring --- src/lib/assets/delete.svg | 6 ++ src/lib/components/Line.svelte | 30 +++--- src/lib/components/Message.svelte | 13 +-- src/lib/components/Note.svelte | 38 +++---- src/routes/+layout.svelte | 66 ++++++------ src/routes/+page.svelte | 2 +- src/routes/graph/+page.svelte | 170 +++++++++++++++--------------- 7 files changed, 160 insertions(+), 165 deletions(-) create mode 100644 src/lib/assets/delete.svg diff --git a/src/lib/assets/delete.svg b/src/lib/assets/delete.svg new file mode 100644 index 0000000..2ddf863 --- /dev/null +++ b/src/lib/assets/delete.svg @@ -0,0 +1,6 @@ + + + + + diff --git a/src/lib/components/Line.svelte b/src/lib/components/Line.svelte index 16cba5b..567bb24 100644 --- a/src/lib/components/Line.svelte +++ b/src/lib/components/Line.svelte @@ -1,26 +1,26 @@
diff --git a/src/lib/components/Message.svelte b/src/lib/components/Message.svelte index 08def85..0c91efb 100644 --- a/src/lib/components/Message.svelte +++ b/src/lib/components/Message.svelte @@ -3,6 +3,7 @@ import { type Message } from '$lib/index.svelte' import Markdown from 'svelte-exmarkdown' import { gfmPlugin } from 'svelte-exmarkdown/gfm' + import deleteIcon from '$lib/assets/delete.svg?raw' let { value, @@ -49,17 +50,7 @@ onclick={() => ondelete(value)} title="Delete a note" > - + {@html deleteIcon}
diff --git a/src/lib/components/Note.svelte b/src/lib/components/Note.svelte index 83011d2..222a02f 100644 --- a/src/lib/components/Note.svelte +++ b/src/lib/components/Note.svelte @@ -1,16 +1,14 @@ - +
-