From 9f2423aa08a1f019b007f57ba0a14789be79f608 Mon Sep 17 00:00:00 2001 From: Sharon Stratsianis Date: Thu, 16 Jul 2026 20:11:54 +1000 Subject: [PATCH 1/4] add outliner from folder pane --- src/pane-sandbox.ts | 50 ++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 45 insertions(+), 5 deletions(-) diff --git a/src/pane-sandbox.ts b/src/pane-sandbox.ts index 43a92d1..f7f9335 100644 --- a/src/pane-sandbox.ts +++ b/src/pane-sandbox.ts @@ -2,8 +2,7 @@ import type { DataBrowserContext, PaneDefinition } from 'pane-registry'; import { sym } from 'rdflib'; import type { Fetcher, NamedNode } from 'rdflib'; import { authn, solidLogicSingleton, store } from 'solid-logic'; - -import type { PaneSandboxPluginOptions } from './vite/plugins/pane-sandbox'; +import { utils } from 'solid-ui'; import 'solid-ui/theme.css'; import 'solid-ui/components/provider'; @@ -13,6 +12,7 @@ import 'solid-ui/components/button'; import './styles/legacy-global.css'; import './styles/legacy-utilities.css'; import './styles/sandbox.css'; +import type { PaneSandboxPluginOptions } from './vite/plugins/pane-sandbox'; function unsupportedPane(name: string): PaneDefinition { return { @@ -30,7 +30,7 @@ function unsupportedPane(name: string): PaneDefinition { } function createSandboxContext(pane: PaneDefinition): DataBrowserContext { - return { + const context = { session: { store, paneRegistry: { @@ -43,8 +43,10 @@ function createSandboxContext(pane: PaneDefinition): DataBrowserContext { logic: solidLogicSingleton, }, dom: document, - getOutliner: () => null, - }; + getOutliner: getOutliner(document), + } as DataBrowserContext; + + return context; } function configureFetcher(context: DataBrowserContext) { @@ -122,3 +124,41 @@ export default async function (pane: PaneDefinition, options: PaneSandboxPluginO setTimeout(() => loading.remove(), 300); } + +function getOutliner(dom: Document) { + return () => ({ + VIEWAS_boring_default: null, + propertyTR: (dom: Document) => { + const tr = dom.createElement('tr'); + tr.appendChild(dom.createElement('td')); + return tr; + }, + outlineObjectTD: (obj: NamedNode, _view: unknown, _unused: unknown, _st: unknown) => { + const td = dom.createElement('td'); + const a = dom.createElement('a'); + a.href = obj.uri; + a.textContent = utils.label(obj); + a.target = '_blank'; + td.appendChild(a); + return td; + }, + GotoSubject: ( + subject: NamedNode, + _expand: unknown, + _pane: unknown, + _solo: unknown, + _referrer: unknown, + table: HTMLElement, + ) => { + const tr = dom.createElement('tr'); + const td = dom.createElement('td'); + const a = dom.createElement('a'); + a.href = subject.uri; + a.textContent = utils.label(subject); + a.target = '_blank'; + td.appendChild(a); + tr.appendChild(td); + table.appendChild(tr); + }, + }); +} From 13a13598ac08446f7c2033ae3b919a6927b41f6e Mon Sep 17 00:00:00 2001 From: Sharon Stratsianis Date: Thu, 16 Jul 2026 20:36:25 +1000 Subject: [PATCH 2/4] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- src/pane-sandbox.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pane-sandbox.ts b/src/pane-sandbox.ts index f7f9335..173c9fc 100644 --- a/src/pane-sandbox.ts +++ b/src/pane-sandbox.ts @@ -139,7 +139,7 @@ function getOutliner(dom: Document) { a.href = obj.uri; a.textContent = utils.label(obj); a.target = '_blank'; - td.appendChild(a); + a.rel = 'noopener noreferrer'; return td; }, GotoSubject: ( From 381f1d112f0da0b2e420e1bf705e7fb523a897ba Mon Sep 17 00:00:00 2001 From: Sharon Stratsianis Date: Thu, 16 Jul 2026 20:36:40 +1000 Subject: [PATCH 3/4] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- src/pane-sandbox.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pane-sandbox.ts b/src/pane-sandbox.ts index 173c9fc..a2fc101 100644 --- a/src/pane-sandbox.ts +++ b/src/pane-sandbox.ts @@ -156,7 +156,7 @@ function getOutliner(dom: Document) { a.href = subject.uri; a.textContent = utils.label(subject); a.target = '_blank'; - td.appendChild(a); + a.rel = 'noopener noreferrer'; tr.appendChild(td); table.appendChild(tr); }, From 0a286ef215895a3c511f39db1377209cad619a63 Mon Sep 17 00:00:00 2001 From: Sharon Stratsianis Date: Thu, 16 Jul 2026 20:43:00 +1000 Subject: [PATCH 4/4] remove typing --- src/pane-sandbox.ts | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/pane-sandbox.ts b/src/pane-sandbox.ts index a2fc101..7c86867 100644 --- a/src/pane-sandbox.ts +++ b/src/pane-sandbox.ts @@ -30,7 +30,7 @@ function unsupportedPane(name: string): PaneDefinition { } function createSandboxContext(pane: PaneDefinition): DataBrowserContext { - const context = { + const context: DataBrowserContext = { session: { store, paneRegistry: { @@ -43,8 +43,8 @@ function createSandboxContext(pane: PaneDefinition): DataBrowserContext { logic: solidLogicSingleton, }, dom: document, - getOutliner: getOutliner(document), - } as DataBrowserContext; + getOutliner, + }; return context; } @@ -125,12 +125,12 @@ export default async function (pane: PaneDefinition, options: PaneSandboxPluginO setTimeout(() => loading.remove(), 300); } -function getOutliner(dom: Document) { - return () => ({ +function getOutliner(dom: HTMLDocument) { + return { VIEWAS_boring_default: null, - propertyTR: (dom: Document) => { - const tr = dom.createElement('tr'); - tr.appendChild(dom.createElement('td')); + propertyTR: (outlinerDom: HTMLDocument) => { + const tr = outlinerDom.createElement('tr'); + tr.appendChild(outlinerDom.createElement('td')); return tr; }, outlineObjectTD: (obj: NamedNode, _view: unknown, _unused: unknown, _st: unknown) => { @@ -160,5 +160,5 @@ function getOutliner(dom: Document) { tr.appendChild(td); table.appendChild(tr); }, - }); + }; }