From 4ae372a860a50598d2bcc4e1041d43723046b5e1 Mon Sep 17 00:00:00 2001 From: Niko PLP Date: Mon, 5 Aug 2024 13:23:56 +0300 Subject: [PATCH] TextViewer for post:text and code: classes --- ng-app/package.json | 8 ++ ng-app/src/apps/CodeMirrorEditor.svelte | 20 +++- ng-app/src/apps/ContainerView.svelte | 27 ++++- ng-app/src/apps/PreTextViewer.svelte | 0 ng-app/src/apps/SparqlQueryEditor.svelte | 11 +- ng-app/src/apps/SparqlUpdateEditor.svelte | 4 +- ng-app/src/apps/TextViewer.svelte | 101 ++++++++++++++++ ng-app/src/apps/TurtleViewer.svelte | 8 +- ng-app/src/classes.ts | 4 +- ng-app/src/lib/Document.svelte | 2 +- ng-app/src/locales/en.json | 15 ++- ng-app/src/store.ts | 1 + ng-app/src/tab.ts | 14 ++- ng-app/src/zeras.ts | 40 +++---- ng-app/vite.config.ts | 3 +- pnpm-lock.yaml | 137 +++++++++++++++++++++- 16 files changed, 347 insertions(+), 48 deletions(-) delete mode 100644 ng-app/src/apps/PreTextViewer.svelte create mode 100644 ng-app/src/apps/TextViewer.svelte diff --git a/ng-app/package.json b/ng-app/package.json index f461975..0b6f93b 100644 --- a/ng-app/package.json +++ b/ng-app/package.json @@ -18,14 +18,22 @@ "dependencies": { "@codemirror/autocomplete": "^6.17.0", "@codemirror/commands": "^6.6.0", + "@codemirror/lang-css": "^6.0.1", + "@codemirror/lang-html": "^6.2.0", "@codemirror/lang-javascript": "^6.2.2", + "@codemirror/lang-rust": "^6.0.1", "@codemirror/language": "^6.10.2", "@codemirror/legacy-modes": "^6.4.0", "@codemirror/lint": "^6.8.1", "@codemirror/search": "^6.5.6", "@codemirror/state": "^6.4.1", "@codemirror/view": "^6.29.1", + "@lezer/common": "^1.0.0", + "@lezer/highlight": "^1.0.0", + "@lezer/javascript": "^1.2.0", + "@lezer/lr": "^1.0.0", "@popperjs/core": "^2.11.8", + "@replit/codemirror-lang-svelte": "^6.0.0", "@tauri-apps/api": "2.0.0-alpha.8", "@tauri-apps/plugin-barcode-scanner": "2.0.0-alpha.0", "@tauri-apps/plugin-window": "2.0.0-alpha.1", diff --git a/ng-app/src/apps/CodeMirrorEditor.svelte b/ng-app/src/apps/CodeMirrorEditor.svelte index d6a0d51..eae9fcf 100644 --- a/ng-app/src/apps/CodeMirrorEditor.svelte +++ b/ng-app/src/apps/CodeMirrorEditor.svelte @@ -21,7 +21,8 @@ } from "../store"; import { cur_tab_register_on_save, - cur_tab_deregister_on_save + cur_tab_deregister_on_save, + cur_tab_branch_class } from "../tab"; import * as Y from 'yjs' @@ -30,10 +31,23 @@ import CodeMirror from "svelte-codemirror-editor"; import { javascript } from '@codemirror/lang-javascript' + import { rust } from '@codemirror/lang-rust' + import { svelte } from "@replit/codemirror-lang-svelte"; import {basicSetup} from "codemirror" export let commits = {}; + const class_to_lang = { + "code:js" : javascript(), + "code:ts" : javascript({"typescript":true}), + "code:rust" : rust(), + "code:svelte" : svelte(), + "code:react" : javascript({"jsx":true, "typescript":true}), + } + + let lang; + $: lang = $cur_tab_branch_class && class_to_lang[$cur_tab_branch_class] + const ydoc = new Y.Doc() const ytext = ydoc.getText('ng') @@ -52,6 +66,8 @@ await cur_tab_deregister_on_save(); }) + let view; + onMount(()=>{ cur_tab_register_on_save(async (updates)=>{ @@ -76,7 +92,7 @@
- { view = e.detail; view.focus(); }} lineWrapping extensions={[basicSetup, yCollab(ytext, false, { undoManager: false })]} styles={{ "&": { maxWidth: "100%", }, diff --git a/ng-app/src/apps/ContainerView.svelte b/ng-app/src/apps/ContainerView.svelte index 95981cd..a25bcef 100644 --- a/ng-app/src/apps/ContainerView.svelte +++ b/ng-app/src/apps/ContainerView.svelte @@ -15,7 +15,14 @@ } from "../store"; import { link } from "svelte-spa-router"; import { Button, Progressbar, Spinner, Alert } from "flowbite-svelte"; - + import{ PencilSquare } from "svelte-heros-v2"; + import { t } from "svelte-i18n"; + import { + in_memory_discrete, open_viewer, set_viewer, set_editor, set_view_or_edit, cur_tab_branch_class, cur_tab_doc_can_edit + } from "../tab"; + import { + openModalCreate + } from "../store"; export let commits; function contained(graph) { @@ -29,11 +36,27 @@ } return ret; } + + const create = () => { + openModalCreate(); + }
{#each contained(commits.graph) as doc} {/each} - + {#if commits.graph.length == 0 || contained(commits.graph).length == 0} +

{$t("doc.empty_container")}

+ {#if $cur_tab_doc_can_edit} + + {/if} + {/if}
\ No newline at end of file diff --git a/ng-app/src/apps/PreTextViewer.svelte b/ng-app/src/apps/PreTextViewer.svelte deleted file mode 100644 index e69de29..0000000 diff --git a/ng-app/src/apps/SparqlQueryEditor.svelte b/ng-app/src/apps/SparqlQueryEditor.svelte index f60f3ec..eea765a 100644 --- a/ng-app/src/apps/SparqlQueryEditor.svelte +++ b/ng-app/src/apps/SparqlQueryEditor.svelte @@ -55,6 +55,7 @@ await reset_toasts(); results = await sparql_query($in_memory_discrete, union); } catch(e) { + console.log(e) toast_error(display_error(e)); } } @@ -72,14 +73,14 @@ maxWidth: "100%", }, }}/> - Query all docs + {$t("doc.query_all_docs")} {#if results!==undefined}
- Results:
+ {$t("doc.results")}:
{#if Array.isArray(results)} {#if results.length} {:else} - Empty + {$t("doc.empty")} {/if} {:else if results?.head} diff --git a/ng-app/src/apps/SparqlUpdateEditor.svelte b/ng-app/src/apps/SparqlUpdateEditor.svelte index fd6115f..1cf2ae4 100644 --- a/ng-app/src/apps/SparqlUpdateEditor.svelte +++ b/ng-app/src/apps/SparqlUpdateEditor.svelte @@ -63,7 +63,7 @@ class="select-none ml-2 mt-2 mb-10 text-white bg-primary-700 hover:bg-primary-700/90 focus:ring-4 focus:ring-primary-500/50 rounded-lg text-base p-2 text-center inline-flex items-center dark:focus:ring-primary-700/55" > - Run Update + {$t("doc.run_update")} diff --git a/ng-app/src/apps/TextViewer.svelte b/ng-app/src/apps/TextViewer.svelte new file mode 100644 index 0000000..4f1dacb --- /dev/null +++ b/ng-app/src/apps/TextViewer.svelte @@ -0,0 +1,101 @@ + + + +
+ {#if source} + {#if $cur_tab_branch_class === "code:svelte"} + + + + {:else if language} + + + + {:else} +

+ {source} +

+ {/if} + {:else if $cur_tab_doc_can_edit} + + {/if} + +
+ \ No newline at end of file diff --git a/ng-app/src/apps/TurtleViewer.svelte b/ng-app/src/apps/TurtleViewer.svelte index e8d07d7..e172e7c 100644 --- a/ng-app/src/apps/TurtleViewer.svelte +++ b/ng-app/src/apps/TurtleViewer.svelte @@ -52,14 +52,16 @@
- + {#if !source} +

{$t("doc.no_triples")}

+ {/if} {#if $cur_tab_doc_can_edit} {/if} diff --git a/ng-app/src/classes.ts b/ng-app/src/classes.ts index 1410a6e..caf256b 100644 --- a/ng-app/src/classes.ts +++ b/ng-app/src/classes.ts @@ -275,8 +275,8 @@ export const official_classes = { "ng:crdt": "Graph", // https://github.com/highlightjs/highlightjs-turtle/tree/master "ng:n": "Graph", "ng:a": "Define the Graph of your data with Semantic Web / Linked Data", - "ng:o": "n:g:z:json_ld_viewer", // default viewer - "ng:w": "n:g:z:json_ld_editor", // default editor + //"ng:o": "n:g:z:json_ld_viewer", // default viewer + //"ng:w": "n:g:z:json_ld_editor", // default editor "ng:x": { "rdf":true, "xsd":true, diff --git a/ng-app/src/lib/Document.svelte b/ng-app/src/lib/Document.svelte index f51fecf..59ed0ce 100644 --- a/ng-app/src/lib/Document.svelte +++ b/ng-app/src/lib/Document.svelte @@ -68,7 +68,7 @@ class:"w-8 h-8 mr-2 mb-2 flex-none focus:outline-none" }}/> {/if} - {#if !$header_title} {$cur_tab.doc.nuri.substring(2,9)} {/if} + {#if !$header_title} {$cur_tab.doc.nuri.substring(2,9)} {/if} {#if $cur_tab_doc_can_edit}