From f42363e4d0f2a990af861b3924fd43f75d65a5e7 Mon Sep 17 00:00:00 2001 From: Niels Rademaker Date: Thu, 2 Apr 2026 20:26:54 +0200 Subject: [PATCH 1/4] rework of variable browser based on svg-canvas --- .../app/managers/ApplicationMenuManager.ts | 3 +- gui-js/apps/minsky-web/src/index.html | 2 + .../src/lib/svg-canvas/classes/connector.ts | 4 + .../src/lib/svg-canvas/classes/datapoint.ts | 22 + .../src/lib/svg-canvas/classes/dimensions.ts | 8 + .../src/lib/svg-canvas/classes/elementtype.ts | 10 + .../components/d3line.component.css | 0 .../components/d3line.component.html | 7 + .../svg-canvas/components/d3line.component.ts | 113 ++ .../components/elementlabel.component.css | 24 + .../components/elementlabel.component.html | 14 + .../components/elementlabel.component.ts | 22 + .../lib/svg-canvas/constants/svg-constants.ts | 177 ++ .../dialogs/editvariabledialog.component.css | 133 ++ .../dialogs/editvariabledialog.component.html | 41 + .../dialogs/editvariabledialog.component.ts | 45 + .../directives/connector.directive.ts | 20 + .../directives/dragdrop.directive.ts | 21 + .../svg-canvas/svg-canvas-demo.component.css | 0 .../svg-canvas/svg-canvas-demo.component.html | 1 + .../svg-canvas/svg-canvas-demo.component.ts | 33 + .../lib/svg-canvas/svg-canvas.component.css | 71 + .../lib/svg-canvas/svg-canvas.component.html | 47 + .../lib/svg-canvas/svg-canvas.component.ts | 668 +++++++ .../variable-pane.component.html | 3 +- .../variable-pane.component.scss | 23 +- .../variable-pane/variable-pane.component.ts | 198 +- .../lib/wiring/variable/variable.component.ts | 3 +- gui-js/nx.json | 5 +- gui-js/package-lock.json | 544 ++++- gui-js/package.json | 16 +- gui-js/tsconfig.base.json | 2 +- package-lock.json | 1767 ++++++++++++++++- package.json | 1 + 34 files changed, 3884 insertions(+), 164 deletions(-) create mode 100644 gui-js/libs/ui-components/src/lib/svg-canvas/classes/connector.ts create mode 100644 gui-js/libs/ui-components/src/lib/svg-canvas/classes/datapoint.ts create mode 100644 gui-js/libs/ui-components/src/lib/svg-canvas/classes/dimensions.ts create mode 100644 gui-js/libs/ui-components/src/lib/svg-canvas/classes/elementtype.ts create mode 100644 gui-js/libs/ui-components/src/lib/svg-canvas/components/d3line.component.css create mode 100644 gui-js/libs/ui-components/src/lib/svg-canvas/components/d3line.component.html create mode 100644 gui-js/libs/ui-components/src/lib/svg-canvas/components/d3line.component.ts create mode 100644 gui-js/libs/ui-components/src/lib/svg-canvas/components/elementlabel.component.css create mode 100644 gui-js/libs/ui-components/src/lib/svg-canvas/components/elementlabel.component.html create mode 100644 gui-js/libs/ui-components/src/lib/svg-canvas/components/elementlabel.component.ts create mode 100644 gui-js/libs/ui-components/src/lib/svg-canvas/constants/svg-constants.ts create mode 100644 gui-js/libs/ui-components/src/lib/svg-canvas/dialogs/editvariabledialog.component.css create mode 100644 gui-js/libs/ui-components/src/lib/svg-canvas/dialogs/editvariabledialog.component.html create mode 100644 gui-js/libs/ui-components/src/lib/svg-canvas/dialogs/editvariabledialog.component.ts create mode 100644 gui-js/libs/ui-components/src/lib/svg-canvas/directives/connector.directive.ts create mode 100644 gui-js/libs/ui-components/src/lib/svg-canvas/directives/dragdrop.directive.ts create mode 100644 gui-js/libs/ui-components/src/lib/svg-canvas/svg-canvas-demo.component.css create mode 100644 gui-js/libs/ui-components/src/lib/svg-canvas/svg-canvas-demo.component.html create mode 100644 gui-js/libs/ui-components/src/lib/svg-canvas/svg-canvas-demo.component.ts create mode 100644 gui-js/libs/ui-components/src/lib/svg-canvas/svg-canvas.component.css create mode 100644 gui-js/libs/ui-components/src/lib/svg-canvas/svg-canvas.component.html create mode 100644 gui-js/libs/ui-components/src/lib/svg-canvas/svg-canvas.component.ts diff --git a/gui-js/apps/minsky-electron/src/app/managers/ApplicationMenuManager.ts b/gui-js/apps/minsky-electron/src/app/managers/ApplicationMenuManager.ts index 36ac74a22..56f16636d 100644 --- a/gui-js/apps/minsky-electron/src/app/managers/ApplicationMenuManager.ts +++ b/gui-js/apps/minsky-electron/src/app/managers/ApplicationMenuManager.ts @@ -435,9 +435,10 @@ export class ApplicationMenuManager { click() { WindowManager.createPopupWindowWithRouting({ title: 'Variables', - url: "#/headless/variable-pane", + url: '#/headless/variable-pane', width: 400, height: 450, + minWidth: 350, alwaysOnTop: true, modal: false, }); diff --git a/gui-js/apps/minsky-web/src/index.html b/gui-js/apps/minsky-web/src/index.html index 1f63ca291..a814e5568 100644 --- a/gui-js/apps/minsky-web/src/index.html +++ b/gui-js/apps/minsky-web/src/index.html @@ -7,6 +7,8 @@ + +