@unbrained/pm-web 2026.8.7 → 2026.8.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +16 -0
- package/dist/app.d.ts +16 -0
- package/dist/app.js +16 -0
- package/dist/app.js.map +1 -1
- package/dist/auth.d.ts +5 -0
- package/dist/auth.js.map +1 -1
- package/dist/board.d.ts +53 -0
- package/dist/board.js +48 -0
- package/dist/board.js.map +1 -1
- package/dist/crypto.d.ts +23 -0
- package/dist/crypto.js +32 -0
- package/dist/crypto.js.map +1 -1
- package/dist/db.d.ts +19 -0
- package/dist/db.js +19 -0
- package/dist/db.js.map +1 -1
- package/dist/ical.d.ts +72 -0
- package/dist/ical.js +73 -0
- package/dist/ical.js.map +1 -1
- package/dist/index.d.ts +11 -0
- package/dist/index.js +52 -1
- package/dist/index.js.map +1 -1
- package/dist/middleware/auth.d.ts +8 -0
- package/dist/middleware/auth.js.map +1 -1
- package/dist/oidc.d.ts +87 -0
- package/dist/oidc.js +113 -0
- package/dist/oidc.js.map +1 -1
- package/dist/routes/admin.js +15 -0
- package/dist/routes/admin.js.map +1 -1
- package/dist/routes/github.js +13 -0
- package/dist/routes/github.js.map +1 -1
- package/dist/routes/oidc.d.ts +10 -0
- package/dist/routes/oidc.js +51 -0
- package/dist/routes/oidc.js.map +1 -1
- package/dist/routes/pm.js +132 -1
- package/dist/routes/pm.js.map +1 -1
- package/dist/routes/sharing.js +8 -0
- package/dist/routes/sharing.js.map +1 -1
- package/dist/services/mutation-event-watcher.js +13 -0
- package/dist/services/mutation-event-watcher.js.map +1 -1
- package/dist/services/pm-runner.d.ts +82 -0
- package/dist/services/pm-runner.js +121 -0
- package/dist/services/pm-runner.js.map +1 -1
- package/dist/services/project-watcher.d.ts +22 -0
- package/dist/services/project-watcher.js +51 -0
- package/dist/services/project-watcher.js.map +1 -1
- package/dist/services/realtime-bus.d.ts +46 -0
- package/dist/services/realtime-bus.js +59 -0
- package/dist/services/realtime-bus.js.map +1 -1
- package/dist/services/sse.d.ts +134 -0
- package/dist/services/sse.js +145 -0
- package/dist/services/sse.js.map +1 -1
- package/manifest.json +1 -1
- package/package.json +5 -3
- package/public/src/app.js +44 -1
- package/public/src/app.js.map +1 -1
- package/public/src/app.ts +44 -1
- package/public/src/components/modals.js +11 -0
- package/public/src/components/modals.js.map +1 -1
- package/public/src/components/modals.ts +11 -0
- package/public/src/components/toast.js +2 -0
- package/public/src/components/toast.js.map +1 -1
- package/public/src/components/toast.ts +2 -0
- package/public/src/constants.js +21 -4
- package/public/src/constants.js.map +1 -1
- package/public/src/constants.ts +21 -4
- package/public/src/filters.js +10 -7
- package/public/src/filters.js.map +1 -1
- package/public/src/filters.ts +10 -7
- package/public/src/i18n.js +11 -1
- package/public/src/i18n.js.map +1 -1
- package/public/src/i18n.ts +13 -1
- package/public/src/state.js +3 -0
- package/public/src/state.js.map +1 -1
- package/public/src/state.ts +3 -0
- package/public/src/sw.ts +71 -7
- package/public/src/theme.js +13 -1
- package/public/src/theme.js.map +1 -1
- package/public/src/theme.ts +15 -1
- package/public/src/types.ts +2 -0
- package/public/src/utils.js +26 -1
- package/public/src/utils.js.map +1 -1
- package/public/src/utils.ts +26 -1
- package/public/src/views/activity.js +1 -0
- package/public/src/views/activity.js.map +1 -1
- package/public/src/views/activity.ts +1 -0
- package/public/src/views/admin.js +134 -0
- package/public/src/views/admin.js.map +1 -1
- package/public/src/views/admin.ts +134 -0
- package/public/src/views/auth.js +31 -0
- package/public/src/views/auth.js.map +1 -1
- package/public/src/views/auth.ts +31 -0
- package/public/src/views/calendar.js +3 -0
- package/public/src/views/calendar.js.map +1 -1
- package/public/src/views/calendar.ts +3 -0
- package/public/src/views/comments-audit.js +1 -0
- package/public/src/views/comments-audit.js.map +1 -1
- package/public/src/views/comments-audit.ts +1 -0
- package/public/src/views/config.js +67 -0
- package/public/src/views/config.js.map +1 -1
- package/public/src/views/config.ts +67 -0
- package/public/src/views/context.js +2 -0
- package/public/src/views/context.js.map +1 -1
- package/public/src/views/context.ts +2 -0
- package/public/src/views/create.js +3 -0
- package/public/src/views/create.js.map +1 -1
- package/public/src/views/create.ts +3 -0
- package/public/src/views/dedupe.js +1 -0
- package/public/src/views/dedupe.js.map +1 -1
- package/public/src/views/dedupe.ts +1 -0
- package/public/src/views/export.js +6 -0
- package/public/src/views/export.js.map +1 -1
- package/public/src/views/export.ts +6 -0
- package/public/src/views/github.js +58 -0
- package/public/src/views/github.js.map +1 -1
- package/public/src/views/github.ts +58 -0
- package/public/src/views/graph-canvas.js +18 -0
- package/public/src/views/graph-canvas.js.map +1 -1
- package/public/src/views/graph-canvas.ts +20 -0
- package/public/src/views/graph.js +41 -0
- package/public/src/views/graph.js.map +1 -1
- package/public/src/views/graph.ts +42 -1
- package/public/src/views/groups.js +45 -0
- package/public/src/views/groups.js.map +1 -1
- package/public/src/views/groups.ts +45 -0
- package/public/src/views/guide.js +3 -0
- package/public/src/views/guide.js.map +1 -1
- package/public/src/views/guide.ts +3 -0
- package/public/src/views/health.js +3 -0
- package/public/src/views/health.js.map +1 -1
- package/public/src/views/health.ts +3 -0
- package/public/src/views/items.js +196 -6
- package/public/src/views/items.js.map +1 -1
- package/public/src/views/items.ts +196 -6
- package/public/src/views/normalize.js +2 -0
- package/public/src/views/normalize.js.map +1 -1
- package/public/src/views/normalize.ts +2 -0
- package/public/src/views/packages.js +41 -0
- package/public/src/views/packages.js.map +1 -1
- package/public/src/views/packages.ts +41 -0
- package/public/src/views/plan-execution.js +6 -0
- package/public/src/views/plan-execution.js.map +1 -1
- package/public/src/views/plan-execution.ts +8 -0
- package/public/src/views/plan.js +145 -0
- package/public/src/views/plan.js.map +1 -1
- package/public/src/views/plan.ts +146 -1
- package/public/src/views/projects.js +60 -0
- package/public/src/views/projects.js.map +1 -1
- package/public/src/views/projects.ts +60 -0
- package/public/src/views/router.js +43 -0
- package/public/src/views/router.js.map +1 -1
- package/public/src/views/router.ts +43 -0
- package/public/src/views/search.js +5 -0
- package/public/src/views/search.js.map +1 -1
- package/public/src/views/search.ts +5 -0
- package/public/src/views/settings.js +36 -0
- package/public/src/views/settings.js.map +1 -1
- package/public/src/views/settings.ts +36 -0
- package/public/src/views/shared.js +1 -0
- package/public/src/views/shared.js.map +1 -1
- package/public/src/views/shared.ts +1 -0
- package/public/src/views/sharing.js +32 -0
- package/public/src/views/sharing.js.map +1 -1
- package/public/src/views/sharing.ts +32 -0
- package/public/src/views/stats.js +1 -0
- package/public/src/views/stats.js.map +1 -1
- package/public/src/views/stats.ts +1 -0
- package/public/src/views/templates.js +4 -0
- package/public/src/views/templates.js.map +1 -1
- package/public/src/views/templates.ts +4 -0
- package/public/src/views/validate.js +1 -0
- package/public/src/views/validate.js.map +1 -1
- package/public/src/views/validate.ts +1 -0
- package/public/sw.js +60 -5
|
@@ -6,6 +6,11 @@ import { api } from '../api.js';
|
|
|
6
6
|
import { escHtml } from '../utils.js';
|
|
7
7
|
import { confirmDialog } from '../components/modals.js';
|
|
8
8
|
import { toast } from '../components/toast.js';
|
|
9
|
+
/**
|
|
10
|
+
* Renders the GitHub integration page for the current project: a header, a
|
|
11
|
+
* token-required prompt when the user has no GitHub token, and otherwise the
|
|
12
|
+
* linked-repository content fetched from the API.
|
|
13
|
+
*/
|
|
9
14
|
export async function renderGitHubView() {
|
|
10
15
|
const el = document.getElementById('content-github');
|
|
11
16
|
if (!el)
|
|
@@ -47,6 +52,14 @@ export async function renderGitHubView() {
|
|
|
47
52
|
contentEl.innerHTML = `<div class="empty-state"><div class="empty-state-text">Error: ${escHtml(err instanceof Error ? err.message : String(err))}</div></div>`;
|
|
48
53
|
}
|
|
49
54
|
}
|
|
55
|
+
/**
|
|
56
|
+
* Builds the HTML for the integration page from the repository response: a
|
|
57
|
+
* link panel with owner and repo inputs (plus an unlink control when linked),
|
|
58
|
+
* and import/export panels shown only while a repository is linked.
|
|
59
|
+
*
|
|
60
|
+
* @param data - repository link response describing the current integration
|
|
61
|
+
* state.
|
|
62
|
+
*/
|
|
50
63
|
function renderGitHubContent(data) {
|
|
51
64
|
const linked = data.linked;
|
|
52
65
|
const owner = data.owner || '';
|
|
@@ -116,6 +129,11 @@ function renderGitHubContent(data) {
|
|
|
116
129
|
if (contentEl)
|
|
117
130
|
contentEl.innerHTML = linkPanel + syncPanels;
|
|
118
131
|
}
|
|
132
|
+
/**
|
|
133
|
+
* Reads the owner and repo inputs, validates both, and PATCHes them onto the
|
|
134
|
+
* current project's link, then refreshes the view. Surfaces validation and
|
|
135
|
+
* server errors inline.
|
|
136
|
+
*/
|
|
119
137
|
export async function linkGitHubRepo() {
|
|
120
138
|
const owner = document.getElementById('gh-owner')?.value?.trim() || '';
|
|
121
139
|
const repo = document.getElementById('gh-repo')?.value?.trim() || '';
|
|
@@ -154,6 +172,10 @@ export async function linkGitHubRepo() {
|
|
|
154
172
|
}
|
|
155
173
|
}
|
|
156
174
|
}
|
|
175
|
+
/**
|
|
176
|
+
* Confirms, then disables the integration for the current project by
|
|
177
|
+
* clearing the linked owner and repo, and refreshes the view.
|
|
178
|
+
*/
|
|
157
179
|
export function unlinkGitHubRepo() {
|
|
158
180
|
confirmDialog('Unlink Repository?', 'GitHub integration will be disabled for this project.', async () => {
|
|
159
181
|
try {
|
|
@@ -166,6 +188,11 @@ export function unlinkGitHubRepo() {
|
|
|
166
188
|
}
|
|
167
189
|
});
|
|
168
190
|
}
|
|
191
|
+
/**
|
|
192
|
+
* Fetches the repository's open issues and renders them as selectable
|
|
193
|
+
* checkboxes with select-all and import controls, or an empty message when
|
|
194
|
+
* none are found.
|
|
195
|
+
*/
|
|
169
196
|
export async function loadGitHubIssues() {
|
|
170
197
|
const el = document.getElementById('github-issues-list');
|
|
171
198
|
if (!el)
|
|
@@ -202,9 +229,19 @@ export async function loadGitHubIssues() {
|
|
|
202
229
|
el.innerHTML = `<div style="color:var(--status-blocked);font-size:13px">Error: ${escHtml(err instanceof Error ? err.message : String(err))}</div>`;
|
|
203
230
|
}
|
|
204
231
|
}
|
|
232
|
+
/**
|
|
233
|
+
* Checks or unchecks every issue checkbox in the import list.
|
|
234
|
+
*
|
|
235
|
+
* @param checked - whether to check or clear the boxes.
|
|
236
|
+
*/
|
|
205
237
|
export function selectAllIssues(checked) {
|
|
206
238
|
document.querySelectorAll('.gh-issue-cb').forEach(cb => { cb.checked = checked; });
|
|
207
239
|
}
|
|
240
|
+
/**
|
|
241
|
+
* Fetches the project's items and their existing issue links, then renders
|
|
242
|
+
* each item as a selectable checkbox annotated with a link to any
|
|
243
|
+
* already-pushed issue and a per-row update control.
|
|
244
|
+
*/
|
|
208
245
|
export async function loadItemsForPush() {
|
|
209
246
|
const el = document.getElementById('github-push-list');
|
|
210
247
|
if (!el)
|
|
@@ -252,9 +289,19 @@ export async function loadItemsForPush() {
|
|
|
252
289
|
el.innerHTML = `<div style="color:var(--status-blocked);font-size:13px">Error: ${escHtml(err instanceof Error ? err.message : String(err))}</div>`;
|
|
253
290
|
}
|
|
254
291
|
}
|
|
292
|
+
/**
|
|
293
|
+
* Checks or unchecks every push-candidate item checkbox in the export list.
|
|
294
|
+
*
|
|
295
|
+
* @param checked - whether to check or clear the boxes.
|
|
296
|
+
*/
|
|
255
297
|
export function selectAllPushItems(checked) {
|
|
256
298
|
document.querySelectorAll('.gh-push-cb').forEach(cb => { cb.checked = checked; });
|
|
257
299
|
}
|
|
300
|
+
/**
|
|
301
|
+
* Pushes the checked items to GitHub as issues, toasts the count of created
|
|
302
|
+
* and failed items, renders a results summary, and reloads the push list;
|
|
303
|
+
* re-enables the button afterwards.
|
|
304
|
+
*/
|
|
258
305
|
export async function pushItemsToGitHub() {
|
|
259
306
|
const checked = Array.from(document.querySelectorAll('.gh-push-cb:checked'));
|
|
260
307
|
if (checked.length === 0) {
|
|
@@ -300,6 +347,12 @@ export async function pushItemsToGitHub() {
|
|
|
300
347
|
}
|
|
301
348
|
}
|
|
302
349
|
}
|
|
350
|
+
/**
|
|
351
|
+
* Re-pushes a single item to its linked issue to refresh it, toasts the
|
|
352
|
+
* result, and reloads the push list.
|
|
353
|
+
*
|
|
354
|
+
* @param itemId - identifier of the pm item to refresh on GitHub.
|
|
355
|
+
*/
|
|
303
356
|
export async function updateGitHubIssue(itemId) {
|
|
304
357
|
try {
|
|
305
358
|
const data = await api('PATCH', `/projects/${state.currentProject.id}/github/push/${encodeURIComponent(itemId)}`);
|
|
@@ -310,6 +363,11 @@ export async function updateGitHubIssue(itemId) {
|
|
|
310
363
|
toast(`Update failed: ${err instanceof Error ? err.message : String(err)}`, 'error');
|
|
311
364
|
}
|
|
312
365
|
}
|
|
366
|
+
/**
|
|
367
|
+
* Imports the checked issues as new pm items, toasts the count of created and
|
|
368
|
+
* failed imports, renders a results summary, refreshes the items badge, and
|
|
369
|
+
* re-enables the button.
|
|
370
|
+
*/
|
|
313
371
|
export async function importGitHubIssues() {
|
|
314
372
|
const checked = Array.from(document.querySelectorAll('.gh-issue-cb:checked'));
|
|
315
373
|
if (checked.length === 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github.js","sourceRoot":"","sources":["github.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"github.js","sourceRoot":"","sources":["github.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,11 @@ import { confirmDialog } from '../components/modals.js';
|
|
|
8
8
|
import { toast } from '../components/toast.js';
|
|
9
9
|
import type { GitHubImportResponse, GitHubIssuesResponse, GitHubIssueRow, GitHubPushResponse, GitHubRepoResponse, ListResponse } from '../api-types.js';
|
|
10
10
|
|
|
11
|
+
/**
|
|
12
|
+
* Renders the GitHub integration page for the current project: a header, a
|
|
13
|
+
* token-required prompt when the user has no GitHub token, and otherwise the
|
|
14
|
+
* linked-repository content fetched from the API.
|
|
15
|
+
*/
|
|
11
16
|
export async function renderGitHubView(): Promise<void> {
|
|
12
17
|
const el = document.getElementById('content-github');
|
|
13
18
|
if (!el) return;
|
|
@@ -46,6 +51,14 @@ export async function renderGitHubView(): Promise<void> {
|
|
|
46
51
|
}
|
|
47
52
|
}
|
|
48
53
|
|
|
54
|
+
/**
|
|
55
|
+
* Builds the HTML for the integration page from the repository response: a
|
|
56
|
+
* link panel with owner and repo inputs (plus an unlink control when linked),
|
|
57
|
+
* and import/export panels shown only while a repository is linked.
|
|
58
|
+
*
|
|
59
|
+
* @param data - repository link response describing the current integration
|
|
60
|
+
* state.
|
|
61
|
+
*/
|
|
49
62
|
function renderGitHubContent(data: GitHubRepoResponse): void {
|
|
50
63
|
const linked = data.linked;
|
|
51
64
|
const owner = data.owner || '';
|
|
@@ -119,6 +132,11 @@ function renderGitHubContent(data: GitHubRepoResponse): void {
|
|
|
119
132
|
if (contentEl) contentEl.innerHTML = linkPanel + syncPanels;
|
|
120
133
|
}
|
|
121
134
|
|
|
135
|
+
/**
|
|
136
|
+
* Reads the owner and repo inputs, validates both, and PATCHes them onto the
|
|
137
|
+
* current project's link, then refreshes the view. Surfaces validation and
|
|
138
|
+
* server errors inline.
|
|
139
|
+
*/
|
|
122
140
|
export async function linkGitHubRepo(): Promise<void> {
|
|
123
141
|
const owner = (document.getElementById('gh-owner') as HTMLInputElement | null)?.value?.trim() || '';
|
|
124
142
|
const repo = (document.getElementById('gh-repo') as HTMLInputElement | null)?.value?.trim() || '';
|
|
@@ -137,6 +155,10 @@ export async function linkGitHubRepo(): Promise<void> {
|
|
|
137
155
|
}
|
|
138
156
|
}
|
|
139
157
|
|
|
158
|
+
/**
|
|
159
|
+
* Confirms, then disables the integration for the current project by
|
|
160
|
+
* clearing the linked owner and repo, and refreshes the view.
|
|
161
|
+
*/
|
|
140
162
|
export function unlinkGitHubRepo(): void {
|
|
141
163
|
confirmDialog('Unlink Repository?', 'GitHub integration will be disabled for this project.', async () => {
|
|
142
164
|
try {
|
|
@@ -147,6 +169,11 @@ export function unlinkGitHubRepo(): void {
|
|
|
147
169
|
});
|
|
148
170
|
}
|
|
149
171
|
|
|
172
|
+
/**
|
|
173
|
+
* Fetches the repository's open issues and renders them as selectable
|
|
174
|
+
* checkboxes with select-all and import controls, or an empty message when
|
|
175
|
+
* none are found.
|
|
176
|
+
*/
|
|
150
177
|
export async function loadGitHubIssues(): Promise<void> {
|
|
151
178
|
const el = document.getElementById('github-issues-list');
|
|
152
179
|
if (!el) return;
|
|
@@ -182,10 +209,20 @@ export async function loadGitHubIssues(): Promise<void> {
|
|
|
182
209
|
}
|
|
183
210
|
}
|
|
184
211
|
|
|
212
|
+
/**
|
|
213
|
+
* Checks or unchecks every issue checkbox in the import list.
|
|
214
|
+
*
|
|
215
|
+
* @param checked - whether to check or clear the boxes.
|
|
216
|
+
*/
|
|
185
217
|
export function selectAllIssues(checked: boolean): void {
|
|
186
218
|
document.querySelectorAll('.gh-issue-cb').forEach(cb => { (cb as HTMLInputElement).checked = checked; });
|
|
187
219
|
}
|
|
188
220
|
|
|
221
|
+
/**
|
|
222
|
+
* Fetches the project's items and their existing issue links, then renders
|
|
223
|
+
* each item as a selectable checkbox annotated with a link to any
|
|
224
|
+
* already-pushed issue and a per-row update control.
|
|
225
|
+
*/
|
|
189
226
|
export async function loadItemsForPush(): Promise<void> {
|
|
190
227
|
const el = document.getElementById('github-push-list');
|
|
191
228
|
if (!el) return;
|
|
@@ -233,10 +270,20 @@ export async function loadItemsForPush(): Promise<void> {
|
|
|
233
270
|
}
|
|
234
271
|
}
|
|
235
272
|
|
|
273
|
+
/**
|
|
274
|
+
* Checks or unchecks every push-candidate item checkbox in the export list.
|
|
275
|
+
*
|
|
276
|
+
* @param checked - whether to check or clear the boxes.
|
|
277
|
+
*/
|
|
236
278
|
export function selectAllPushItems(checked: boolean): void {
|
|
237
279
|
document.querySelectorAll('.gh-push-cb').forEach(cb => { (cb as HTMLInputElement).checked = checked; });
|
|
238
280
|
}
|
|
239
281
|
|
|
282
|
+
/**
|
|
283
|
+
* Pushes the checked items to GitHub as issues, toasts the count of created
|
|
284
|
+
* and failed items, renders a results summary, and reloads the push list;
|
|
285
|
+
* re-enables the button afterwards.
|
|
286
|
+
*/
|
|
240
287
|
export async function pushItemsToGitHub(): Promise<void> {
|
|
241
288
|
const checked = Array.from(document.querySelectorAll('.gh-push-cb:checked'));
|
|
242
289
|
if (checked.length === 0) { toast('Select at least one item to push', 'info'); return; }
|
|
@@ -267,6 +314,12 @@ export async function pushItemsToGitHub(): Promise<void> {
|
|
|
267
314
|
}
|
|
268
315
|
}
|
|
269
316
|
|
|
317
|
+
/**
|
|
318
|
+
* Re-pushes a single item to its linked issue to refresh it, toasts the
|
|
319
|
+
* result, and reloads the push list.
|
|
320
|
+
*
|
|
321
|
+
* @param itemId - identifier of the pm item to refresh on GitHub.
|
|
322
|
+
*/
|
|
270
323
|
export async function updateGitHubIssue(itemId: string): Promise<void> {
|
|
271
324
|
try {
|
|
272
325
|
const data = await api('PATCH', `/projects/${state.currentProject!.id}/github/push/${encodeURIComponent(itemId)}`) as { ok?: boolean; issueNumber?: number; issueUrl?: string };
|
|
@@ -277,6 +330,11 @@ export async function updateGitHubIssue(itemId: string): Promise<void> {
|
|
|
277
330
|
}
|
|
278
331
|
}
|
|
279
332
|
|
|
333
|
+
/**
|
|
334
|
+
* Imports the checked issues as new pm items, toasts the count of created and
|
|
335
|
+
* failed imports, renders a results summary, refreshes the items badge, and
|
|
336
|
+
* re-enables the button.
|
|
337
|
+
*/
|
|
280
338
|
export async function importGitHubIssues(): Promise<void> {
|
|
281
339
|
const checked = Array.from(document.querySelectorAll('.gh-issue-cb:checked'));
|
|
282
340
|
if (checked.length === 0) { toast('Select at least one issue to import','info'); return; }
|
|
@@ -69,6 +69,7 @@ function getEdgeColor(type) {
|
|
|
69
69
|
function truncate(text, maxLen) {
|
|
70
70
|
return text.length > maxLen ? text.slice(0, maxLen - 1) + '…' : text;
|
|
71
71
|
}
|
|
72
|
+
/** Parses a six-digit `#rrggbb` hex color string into red, green, and blue byte values, returning null when the input does not match that format. */
|
|
72
73
|
function hexToRgb(hex) {
|
|
73
74
|
const m = /^#([0-9a-f]{6})$/i.exec(hex);
|
|
74
75
|
if (!m)
|
|
@@ -82,6 +83,7 @@ function hexAlpha(hex, a) {
|
|
|
82
83
|
return hex;
|
|
83
84
|
return `rgba(${c.r},${c.g},${c.b},${a})`;
|
|
84
85
|
}
|
|
86
|
+
/** Computes starting positions for the given nodes arranged along a golden-angle (sunflower) spiral so the force simulation begins evenly spread. */
|
|
85
87
|
function initialPositions(nodes) {
|
|
86
88
|
const golden = 2.399963;
|
|
87
89
|
return nodes.map((_, i) => {
|
|
@@ -127,6 +129,7 @@ function convexHull(pts) {
|
|
|
127
129
|
return hull;
|
|
128
130
|
}
|
|
129
131
|
// escHtml is imported from utils.ts in graph.ts — canvas uses its own for DOM tooltip only
|
|
132
|
+
/** Escapes the four HTML-significant characters (ampersand, angle brackets, and double quote) so a string can be safely interpolated into DOM markup such as the canvas tooltip. */
|
|
130
133
|
function escHtml(s) {
|
|
131
134
|
return s
|
|
132
135
|
.replace(/&/g, '&')
|
|
@@ -137,6 +140,7 @@ function escHtml(s) {
|
|
|
137
140
|
// ═══════════════════════════════════════════════════════════════
|
|
138
141
|
// GraphCanvas class
|
|
139
142
|
// ═══════════════════════════════════════════════════════════════
|
|
143
|
+
/** Canvas 2D renderer and force-directed physics simulation for the knowledge graph: draws nodes, edges, particles, minimap, and HUD, and handles pan, zoom, drag, select, and keyboard interaction. */
|
|
140
144
|
export class GraphCanvas {
|
|
141
145
|
canvas;
|
|
142
146
|
ctx;
|
|
@@ -250,6 +254,7 @@ export class GraphCanvas {
|
|
|
250
254
|
this.startLoop();
|
|
251
255
|
}
|
|
252
256
|
// ── Public API ─────────────────────────────────────────────
|
|
257
|
+
/** Loads the given nodes and edges into the simulation, preserving prior node positions where possible, precomputing bidirectional edge pairs, recoloring nodes, scheduling the initial zoom-to-fit, and applying the hierarchical layout when selected. */
|
|
253
258
|
setData(nodes, edges) {
|
|
254
259
|
const prevPos = new Map(this.nodes.map((n) => [n.id, { x: n.x, y: n.y }]));
|
|
255
260
|
const initPos = initialPositions(nodes);
|
|
@@ -301,6 +306,7 @@ export class GraphCanvas {
|
|
|
301
306
|
this.hoveredEdge = null;
|
|
302
307
|
this.hideTooltip();
|
|
303
308
|
}
|
|
309
|
+
/** Merges a partial filter into the current filter, rebuilding keyboard-navigation order, resetting flow particles when the selection changes, and recoloring nodes when the color mode or tag changes. */
|
|
304
310
|
setFilter(filter) {
|
|
305
311
|
const prevMode = this.filter.colorMode;
|
|
306
312
|
const prevTag = this.filter.colorTag;
|
|
@@ -317,8 +323,10 @@ export class GraphCanvas {
|
|
|
317
323
|
else if (filter.colorTag !== undefined && filter.colorTag !== prevTag)
|
|
318
324
|
this.recolorNodes();
|
|
319
325
|
}
|
|
326
|
+
/** Returns the current tag-to-color map used when coloring nodes by tag. */
|
|
320
327
|
getTagColorMap() { return this.tagColorMap; }
|
|
321
328
|
// Live physics control — used by the physics sliders panel
|
|
329
|
+
/** Updates one or more live physics constants (repulsion, link distance, center gravity, link strength) and reheats the simulation so the new values take effect. */
|
|
322
330
|
setPhysicsParams(params) {
|
|
323
331
|
if (params.repulsion !== undefined)
|
|
324
332
|
this.REPULSE = params.repulsion;
|
|
@@ -332,9 +340,11 @@ export class GraphCanvas {
|
|
|
332
340
|
this.SPRING = params.linkStrength;
|
|
333
341
|
this.reheat();
|
|
334
342
|
}
|
|
343
|
+
/** Returns the current physics constants (repulsion, link distance, center force, and link strength) so external sliders can reflect them. */
|
|
335
344
|
getPhysicsParams() {
|
|
336
345
|
return { repulsion: this.REPULSE, linkDistance: this.REST_LEN, centerForce: this.CENTER, linkStrength: this.SPRING };
|
|
337
346
|
}
|
|
347
|
+
/** Sets the selected node id, resets flow particles, and flies the camera to the node when an id is given. */
|
|
338
348
|
setSelected(id) {
|
|
339
349
|
this.filter = { ...this.filter, selectedId: id };
|
|
340
350
|
this.particles = [];
|
|
@@ -345,11 +355,13 @@ export class GraphCanvas {
|
|
|
345
355
|
this.flyTo(node);
|
|
346
356
|
}
|
|
347
357
|
}
|
|
358
|
+
/** Flies the camera to center on the node with the given id, if it exists. */
|
|
348
359
|
jumpToNode(id) {
|
|
349
360
|
const node = this.nodeMap.get(id);
|
|
350
361
|
if (node)
|
|
351
362
|
this.flyTo(node);
|
|
352
363
|
}
|
|
364
|
+
/** Animates the camera to frame all visible nodes with padding by setting a fly-to target computed from their bounding box. */
|
|
353
365
|
fitView() {
|
|
354
366
|
if (!this.nodes.length)
|
|
355
367
|
return;
|
|
@@ -374,16 +386,19 @@ export class GraphCanvas {
|
|
|
374
386
|
scale: s,
|
|
375
387
|
};
|
|
376
388
|
}
|
|
389
|
+
/** Pauses or resumes the physics simulation and returns the new paused state; resuming also bumps the simulation alpha. */
|
|
377
390
|
togglePhysics() {
|
|
378
391
|
this.paused = !this.paused;
|
|
379
392
|
if (!this.paused)
|
|
380
393
|
this.alpha = Math.max(this.alpha, 0.05);
|
|
381
394
|
return this.paused;
|
|
382
395
|
}
|
|
396
|
+
/** Resumes the simulation and sets the alpha to 0.3 so nodes re-settle into a new layout. */
|
|
383
397
|
reheat() {
|
|
384
398
|
this.alpha = 0.3;
|
|
385
399
|
this.paused = false;
|
|
386
400
|
}
|
|
401
|
+
/** Switches to the given layout, applying the topological hierarchical layout or, for force mode, jittering node positions and reheating the simulation. */
|
|
387
402
|
setLayout(layout) {
|
|
388
403
|
if (this.layout === layout)
|
|
389
404
|
return;
|
|
@@ -400,9 +415,11 @@ export class GraphCanvas {
|
|
|
400
415
|
this.reheat();
|
|
401
416
|
}
|
|
402
417
|
}
|
|
418
|
+
/** Enables or disables edge bundling, which routes many same-type edges with control points biased toward a shared centroid. */
|
|
403
419
|
setEdgeBundling(enabled) {
|
|
404
420
|
this.edgeBundling = enabled;
|
|
405
421
|
}
|
|
422
|
+
/** Exports the canvas as a PNG, delegating to the configured callback if provided, otherwise triggering a browser download of the canvas image data. */
|
|
406
423
|
exportPng() {
|
|
407
424
|
if (this.onExportPng) {
|
|
408
425
|
this.onExportPng(this.canvas);
|
|
@@ -625,6 +642,7 @@ export class GraphCanvas {
|
|
|
625
642
|
}
|
|
626
643
|
return best;
|
|
627
644
|
}
|
|
645
|
+
/** Tears down the canvas: stops the animation loop and initial-fit timer, aborts bound event listeners, disconnects the ResizeObserver, and removes the canvas and its tooltip from the DOM. */
|
|
628
646
|
destroy() {
|
|
629
647
|
this.destroyed = true;
|
|
630
648
|
if (this.rafId !== null)
|