@issuegraph/viewer 0.11.0 → 0.13.0
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/README.md +13 -0
- package/dist/document.d.ts +24 -3
- package/dist/document.d.ts.map +1 -1
- package/dist/document.js +10 -0
- package/dist/document.js.map +1 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/mount.d.ts +20 -1
- package/dist/mount.d.ts.map +1 -1
- package/dist/mount.js +228 -18
- package/dist/mount.js.map +1 -1
- package/dist/navigation.d.ts +26 -3
- package/dist/navigation.d.ts.map +1 -1
- package/dist/navigation.js +34 -2
- package/dist/navigation.js.map +1 -1
- package/dist/parts.d.ts +19 -4
- package/dist/parts.d.ts.map +1 -1
- package/dist/parts.js +83 -6
- package/dist/parts.js.map +1 -1
- package/dist/projections/graph.d.ts.map +1 -1
- package/dist/projections/graph.js +42 -17
- package/dist/projections/graph.js.map +1 -1
- package/dist/projections/linear.d.ts +25 -2
- package/dist/projections/linear.d.ts.map +1 -1
- package/dist/projections/linear.js +16 -8
- package/dist/projections/linear.js.map +1 -1
- package/dist/projections/tree.d.ts.map +1 -1
- package/dist/projections/tree.js +2 -1
- package/dist/projections/tree.js.map +1 -1
- package/dist/recede.d.ts +40 -0
- package/dist/recede.d.ts.map +1 -0
- package/dist/recede.js +67 -0
- package/dist/recede.js.map +1 -0
- package/dist/scene.d.ts +1 -1
- package/dist/scene.d.ts.map +1 -1
- package/dist/scene.js +5 -3
- package/dist/scene.js.map +1 -1
- package/dist/selection.d.ts +65 -0
- package/dist/selection.d.ts.map +1 -0
- package/dist/selection.js +127 -0
- package/dist/selection.js.map +1 -0
- package/dist/styles.d.ts.map +1 -1
- package/dist/styles.js +192 -13
- package/dist/styles.js.map +1 -1
- package/package.json +1 -1
package/dist/mount.js
CHANGED
|
@@ -17,9 +17,10 @@ import { edgeIdentity } from '@issuegraph/core';
|
|
|
17
17
|
import { normalizeDocument } from "./document.js";
|
|
18
18
|
import { materialize } from "./element.js";
|
|
19
19
|
import { initialNavigationState, navigate, reconcile, } from "./navigation.js";
|
|
20
|
-
import { COMMAND_ATTRIBUTE } from "./parts.js";
|
|
20
|
+
import { COMMAND_ATTRIBUTE, stationsOf } from "./parts.js";
|
|
21
21
|
import { sceneFor } from "./render.js";
|
|
22
22
|
import { GROUP_ATTRIBUTE, KEY_ATTRIBUTE } from "./scene.js";
|
|
23
|
+
import { nextSelection, sameSelection, selectedKeysOf, storedSelectionOf, viewerSelectionOf, } from "./selection.js";
|
|
23
24
|
import { resolveTheme } from "./theme.js";
|
|
24
25
|
/**
|
|
25
26
|
* Elements that own their own keyboard activation.
|
|
@@ -113,6 +114,18 @@ export function mountViewer(container, input, options = {}) {
|
|
|
113
114
|
focused: options.focused ?? initialNavigationState.focused,
|
|
114
115
|
selected: options.selected ?? initialNavigationState.selected,
|
|
115
116
|
};
|
|
117
|
+
/**
|
|
118
|
+
* The selection exactly as the reader or host made it, which the graph and
|
|
119
|
+
* the list recede by.
|
|
120
|
+
*
|
|
121
|
+
* `state.selected` cannot serve, because each draw moves a selected unit
|
|
122
|
+
* member to its unit's lead, and a member keeps only its own neighbours and
|
|
123
|
+
* lines, not its partners'. Every other reader — the tree, the handle and
|
|
124
|
+
* `onSelect` — still sees `state.selected`. Written wherever
|
|
125
|
+
* `state.selected` is chosen or dropped, and re-checked on every draw by
|
|
126
|
+
* `asGivenSelection`.
|
|
127
|
+
*/
|
|
128
|
+
let selectedAsGiven = state.selected;
|
|
116
129
|
let root = null;
|
|
117
130
|
let keyed = new Map();
|
|
118
131
|
// EVERY IDENTITY THE LAST DRAW PUT UNDER THE POINTER — issues AND decoration.
|
|
@@ -181,6 +194,118 @@ export function mountViewer(container, input, options = {}) {
|
|
|
181
194
|
* and an `update` that removes an edge still drops it.
|
|
182
195
|
*/
|
|
183
196
|
const stillDrawn = (key) => normalized.byKey.has(key) || isDocumentEdge(key) || pointable.has(key);
|
|
197
|
+
/**
|
|
198
|
+
* A selection with every member that no longer names something dropped.
|
|
199
|
+
* A single key is kept or dropped whole, as before; a set loses only the
|
|
200
|
+
* members that went, and collapses to one key or none as they go.
|
|
201
|
+
*/
|
|
202
|
+
const keepDrawn = (selected) => typeof selected === 'string' || selected === null
|
|
203
|
+
? selected !== null && stillDrawn(selected) ? selected : null
|
|
204
|
+
: storedSelectionOf({ kind: 'issues', keys: selected.filter((key) => stillDrawn(key) && !isDocumentEdge(key)) });
|
|
205
|
+
/**
|
|
206
|
+
* The remembered selection, while it still names what `state.selected`
|
|
207
|
+
* names; otherwise `state.selected` itself.
|
|
208
|
+
*
|
|
209
|
+
* It must name something this document carries and stand on the same
|
|
210
|
+
* station as `state.selected`. An update that removes a selected member, or
|
|
211
|
+
* a later selection of another subject, therefore falls back to the issue
|
|
212
|
+
* the graph and the list mark and the handle reports, so they never disagree.
|
|
213
|
+
*/
|
|
214
|
+
const asGivenSelection = () => {
|
|
215
|
+
const selected = state.selected;
|
|
216
|
+
const given = selectedAsGiven;
|
|
217
|
+
if (selected === null || given === null)
|
|
218
|
+
return selected;
|
|
219
|
+
const stations = stationsOf(normalized);
|
|
220
|
+
// Each station once, where its member was last added: the order `reconcile`
|
|
221
|
+
// names a set's stations in, so a set and its stations compare by value.
|
|
222
|
+
const stationsIn = (keys) => {
|
|
223
|
+
const named = keys.map((key) => stations.get(key) ?? key);
|
|
224
|
+
return JSON.stringify(named.filter((key, index) => named.lastIndexOf(key) === index));
|
|
225
|
+
};
|
|
226
|
+
const stillNamed = selectedKeysOf(given).filter((key) => normalized.byKey.has(key) || isDocumentEdge(key));
|
|
227
|
+
return stillNamed.length > 0 && stationsIn(stillNamed) === stationsIn(selectedKeysOf(selected))
|
|
228
|
+
? storedSelectionOf(viewerSelectionOf(normalized, stillNamed.length === 1 ? (stillNamed[0] ?? null) : stillNamed))
|
|
229
|
+
: selected;
|
|
230
|
+
};
|
|
231
|
+
/**
|
|
232
|
+
* A SET IS ITS MEMBERS AS GIVEN, ON EVERY DRAW. The members this document
|
|
233
|
+
* still carries are the selection, and their stations are derived from them
|
|
234
|
+
* afresh; nothing else is. Falling back to the stations the handle held
|
|
235
|
+
* selected a removed member's lead, an issue the reader never picked, and
|
|
236
|
+
* keeping old stations after an update moved a lead silently dropped a
|
|
237
|
+
* member that was still there. An edge identity is never a member. A single
|
|
238
|
+
* selection keeps today's rule — a removed member falls back to its lead —
|
|
239
|
+
* which `asGivenSelection` applies. `undefined` when the selection is not a
|
|
240
|
+
* set.
|
|
241
|
+
*/
|
|
242
|
+
const survivingSet = () => {
|
|
243
|
+
const given = selectedAsGiven;
|
|
244
|
+
if (given === null || typeof given === 'string')
|
|
245
|
+
return undefined;
|
|
246
|
+
return storedSelectionOf({ kind: 'issues', keys: given.filter((key) => normalized.byKey.has(key)) });
|
|
247
|
+
};
|
|
248
|
+
/** The selection as the reader made it, which `onSelectionChange` reports. */
|
|
249
|
+
const selectionAsGiven = () => viewerSelectionOf(normalized, selectedAsGiven);
|
|
250
|
+
/**
|
|
251
|
+
* What `onSelect` reports: for a set of two or more issues, the most recently
|
|
252
|
+
* added key exactly as given; otherwise the one key the handle holds, a unit
|
|
253
|
+
* member as its lead.
|
|
254
|
+
*/
|
|
255
|
+
const reportedKey = () => {
|
|
256
|
+
const given = selectionAsGiven();
|
|
257
|
+
if (given.kind === 'issues' && given.keys.length > 1)
|
|
258
|
+
return given.keys.at(-1) ?? null;
|
|
259
|
+
return selectedKeysOf(state.selected).at(-1) ?? null;
|
|
260
|
+
};
|
|
261
|
+
// WHAT THE HOST WAS LAST TOLD, compared by value, never by array identity.
|
|
262
|
+
// Seeded from the options, so mounting a selection is not a change.
|
|
263
|
+
let announced = selectionAsGiven();
|
|
264
|
+
let lastReported = reportedKey();
|
|
265
|
+
// ONE QUEUE FOR EVERY NOTICE, so a host that changes the selection from
|
|
266
|
+
// inside a callback is told about it after the notices already due, in
|
|
267
|
+
// order, and none is skipped or reported out of turn.
|
|
268
|
+
const notices = [];
|
|
269
|
+
let draining = false;
|
|
270
|
+
const deliver = (notice) => {
|
|
271
|
+
notices.push(notice);
|
|
272
|
+
if (draining)
|
|
273
|
+
return;
|
|
274
|
+
draining = true;
|
|
275
|
+
try {
|
|
276
|
+
for (let next = notices.shift(); next !== undefined; next = notices.shift())
|
|
277
|
+
next();
|
|
278
|
+
}
|
|
279
|
+
finally {
|
|
280
|
+
draining = false;
|
|
281
|
+
}
|
|
282
|
+
};
|
|
283
|
+
/**
|
|
284
|
+
* Tell the host about the selection, from ONE place. `onSelectionChange`
|
|
285
|
+
* fires when the selection as given changed by value; `onSelect` fires with
|
|
286
|
+
* it, and also when the key it reports changed (a projection switch that
|
|
287
|
+
* renames a unit member to its lead), and — `force` — on every click,
|
|
288
|
+
* `Enter` or `select()`, even of what is already selected, as it always has.
|
|
289
|
+
*/
|
|
290
|
+
const announce = (force) => {
|
|
291
|
+
const selection = selectionAsGiven();
|
|
292
|
+
const key = reportedKey();
|
|
293
|
+
const changed = !sameSelection(announced, selection);
|
|
294
|
+
const reported = changed || force || key !== lastReported;
|
|
295
|
+
announced = selection;
|
|
296
|
+
lastReported = key;
|
|
297
|
+
// A FRESH FROZEN COPY per notice, so a host that mutates what it was
|
|
298
|
+
// handed changes nothing here.
|
|
299
|
+
const handed = selection.kind === 'issues'
|
|
300
|
+
? Object.freeze({ kind: 'issues', keys: Object.freeze([...selection.keys]) })
|
|
301
|
+
: Object.freeze({ ...selection });
|
|
302
|
+
deliver(() => {
|
|
303
|
+
if (changed)
|
|
304
|
+
currentOptions.onSelectionChange?.(handed);
|
|
305
|
+
if (reported)
|
|
306
|
+
currentOptions.onSelect?.(key);
|
|
307
|
+
});
|
|
308
|
+
};
|
|
184
309
|
let hovered = null;
|
|
185
310
|
let destroyed = false;
|
|
186
311
|
// Set by the first `draw()` below, which runs before any listener can fire.
|
|
@@ -224,7 +349,6 @@ export function mountViewer(container, input, options = {}) {
|
|
|
224
349
|
// host has to hear about BOTH. Keying the notice on a single `dropped` flag
|
|
225
350
|
// covered only the first, so `setProjection` renamed the selection and told
|
|
226
351
|
// nobody: the handle read the station while the host still held the member.
|
|
227
|
-
const selectedBefore = state.selected;
|
|
228
352
|
// A DECORATION SELECTION IS NOT AN ISSUE AND MUST SURVIVE THIS TEST. The
|
|
229
353
|
// subject can be a `together-with` connector, whose identity is an edge and
|
|
230
354
|
// is therefore absent from `byKey` by construction — dropping on document
|
|
@@ -240,13 +364,32 @@ export function mountViewer(container, input, options = {}) {
|
|
|
240
364
|
// The post-materialize check settles it a few lines down, against a scene
|
|
241
365
|
// that exists; deferring costs one frame in which nothing renders an edge
|
|
242
366
|
// selection anyway.
|
|
243
|
-
|
|
244
|
-
|
|
367
|
+
const surviving = survivingSet();
|
|
368
|
+
if (surviving !== undefined) {
|
|
369
|
+
selectedAsGiven = surviving;
|
|
370
|
+
state = { ...state, selected: surviving };
|
|
245
371
|
}
|
|
372
|
+
else if (currentScene !== null) {
|
|
373
|
+
state = { ...state, selected: keepDrawn(state.selected) };
|
|
374
|
+
}
|
|
375
|
+
selectedAsGiven = asGivenSelection();
|
|
246
376
|
if (root !== null)
|
|
247
377
|
container.removeChild(root);
|
|
248
378
|
const scene = sceneFor(normalized, projection, {
|
|
249
379
|
...currentOptions,
|
|
380
|
+
// THE GRAPH AND THE LIST ARE HANDED THE SELECTION AS GIVEN, because they
|
|
381
|
+
// are the projections that recede. Each still marks the unit's lead,
|
|
382
|
+
// since it moves a member to its lead before it marks anything. The tree
|
|
383
|
+
// does not recede and keeps the lead the handle reports.
|
|
384
|
+
selected: projection === 'tree' ? state.selected : selectedAsGiven,
|
|
385
|
+
// DERIVED FROM THE SELECTION, never taken from the host's options, so a
|
|
386
|
+
// relationship recedes only while it is the selection and a clear
|
|
387
|
+
// always restores everything.
|
|
388
|
+
selectedEdge: typeof state.selected === 'string' && isDocumentEdge(state.selected) ? state.selected : null,
|
|
389
|
+
// NEVER TAKEN FROM THE HOST'S OPTIONS either, for the same reason: the
|
|
390
|
+
// mount draws its whole document, so the list works out what recedes
|
|
391
|
+
// from the live selection above.
|
|
392
|
+
receding: undefined,
|
|
250
393
|
// NEVER DETACHED HERE. The mount draws every row it is handed, so it is
|
|
251
394
|
// its own extent and the inline footer is already after the last of
|
|
252
395
|
// them. It also materializes `scene.root` and nothing else — a detached
|
|
@@ -254,7 +397,6 @@ export function mountViewer(container, input, options = {}) {
|
|
|
254
397
|
// walking into keys the page does not have. See `SceneOptions.detachFooter`.
|
|
255
398
|
detachFooter: false,
|
|
256
399
|
theme: currentOptions.theme ?? theme,
|
|
257
|
-
selected: state.selected,
|
|
258
400
|
focused: state.focused,
|
|
259
401
|
});
|
|
260
402
|
state = reconcile(scene, state);
|
|
@@ -342,19 +484,54 @@ export function mountViewer(container, input, options = {}) {
|
|
|
342
484
|
// by `byKey` and by `reconcile`; this covers the decoration case those two
|
|
343
485
|
// cannot see. It runs BEFORE the notice below, so a subject that went away
|
|
344
486
|
// is reported exactly once, through the same channel as every other change.
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
}
|
|
487
|
+
state = { ...state, selected: keepDrawn(state.selected) };
|
|
488
|
+
selectedAsGiven = state.selected === null ? null : asGivenSelection();
|
|
348
489
|
// TOLD, NOT JUST DROPPED. The host was told a selection began, so leaving it
|
|
349
490
|
// to infer the ending from a document it happens to have replaced is the
|
|
350
491
|
// same divergence `clearHover` exists to prevent one line up. Fired AFTER
|
|
351
492
|
// the DOM is in place, exactly as the hover clear is, so a host that redraws
|
|
352
493
|
// from this callback finds the viewer already consistent.
|
|
353
|
-
if (announceSelection
|
|
354
|
-
|
|
355
|
-
|
|
494
|
+
if (announceSelection)
|
|
495
|
+
announce(false);
|
|
496
|
+
};
|
|
497
|
+
/**
|
|
498
|
+
* The rank order a Shift range walks: every member of every ranked slot, in
|
|
499
|
+
* the order the document ranks them, so a range across a unit adds each of
|
|
500
|
+
* its members as given.
|
|
501
|
+
*/
|
|
502
|
+
const rankOrder = () => normalized.order.slots.filter((slot) => slot.rank !== null).flatMap((slot) => slot.members);
|
|
503
|
+
/**
|
|
504
|
+
* The selection after `gesture`, with everything this document cannot name
|
|
505
|
+
* dropped BEFORE it is written, so no notice ever names it: an issue key the
|
|
506
|
+
* scene cannot point at, or an edge identity inside a set of issues.
|
|
507
|
+
*/
|
|
508
|
+
const selectionAfter = (gesture) => {
|
|
509
|
+
const next = nextSelection(selectionAsGiven(), gesture, rankOrder());
|
|
510
|
+
if (next.kind === 'edge')
|
|
511
|
+
return stillDrawn(next.edgeId) ? next.edgeId : null;
|
|
512
|
+
if (next.kind === 'none')
|
|
513
|
+
return null;
|
|
514
|
+
return storedSelectionOf({
|
|
515
|
+
kind: 'issues',
|
|
516
|
+
keys: next.keys.filter((key) => stillDrawn(key) && !isDocumentEdge(key)),
|
|
517
|
+
});
|
|
518
|
+
};
|
|
519
|
+
/** What a pointer or key press on `key` asks for, given the modifiers held. */
|
|
520
|
+
const gestureFor = (key, event) => {
|
|
521
|
+
// A RELATIONSHIP UNDER ANY MODIFIER IS A PLAIN RELATIONSHIP CLICK: a set
|
|
522
|
+
// holds issues only, so it replaces any set.
|
|
523
|
+
if (isDocumentEdge(key))
|
|
524
|
+
return { kind: 'edge', edgeId: key };
|
|
525
|
+
if (event.metaKey === true || event.ctrlKey === true)
|
|
526
|
+
return { kind: 'toggle', key };
|
|
527
|
+
if (event.shiftKey === true)
|
|
528
|
+
return { kind: 'range', key };
|
|
529
|
+
return { kind: 'replace', key };
|
|
356
530
|
};
|
|
357
531
|
const emitSelect = (key) => {
|
|
532
|
+
applyGesture(key === null ? { kind: 'clear' } : isDocumentEdge(key) ? { kind: 'edge', edgeId: key } : { kind: 'replace', key }, key);
|
|
533
|
+
};
|
|
534
|
+
const applyGesture = (gesture, key) => {
|
|
358
535
|
// A KEY THIS DOCUMENT DOES NOT CARRY IS A SELECTION OF NOTHING, and it has
|
|
359
536
|
// to be resolved HERE, before the state is written. `select()` is documented
|
|
360
537
|
// to fire `onSelect` exactly as a click does — and a click can only ever
|
|
@@ -374,6 +551,7 @@ export function mountViewer(container, input, options = {}) {
|
|
|
374
551
|
// arm a connector click resolved to `null`, so the host was told a
|
|
375
552
|
// selection ENDED by the one gesture that was starting one.
|
|
376
553
|
const resolved = key !== null && stillDrawn(key) ? key : null;
|
|
554
|
+
const selected = selectionAfter(gesture);
|
|
377
555
|
// FOCUS FOLLOWS AN ISSUE, NEVER A DECORATION IDENTITY. `navigable` lists
|
|
378
556
|
// issues, and `navigate` resolves a key it cannot find to -1 and throws the
|
|
379
557
|
// reader back to the top of the order — which is why `onKeyDown` already
|
|
@@ -397,7 +575,8 @@ export function mountViewer(container, input, options = {}) {
|
|
|
397
575
|
(currentScene?.navigable.includes(station) ?? false)
|
|
398
576
|
? resolved
|
|
399
577
|
: null;
|
|
400
|
-
state = { ...state, selected
|
|
578
|
+
state = { ...state, selected, focused: focusable ?? state.focused };
|
|
579
|
+
selectedAsGiven = selected;
|
|
401
580
|
// SILENCED, because this function reports the result itself once the draw
|
|
402
581
|
// has settled it. Letting the draw announce too would fire `onSelect` twice
|
|
403
582
|
// for one selection whenever reconciliation renamed it — and a caller
|
|
@@ -434,7 +613,10 @@ export function mountViewer(container, input, options = {}) {
|
|
|
434
613
|
// would tell the host a key the handle does not hold, which is the very
|
|
435
614
|
// disagreement between the two notifications this function was written to
|
|
436
615
|
// end. `select()` stays equivalent to the click it documents itself as.
|
|
437
|
-
|
|
616
|
+
// FORCED, because `onSelect` has always reported every click, `Enter` and
|
|
617
|
+
// `select()`, even of what is already selected; `onSelectionChange` still
|
|
618
|
+
// fires only on a change.
|
|
619
|
+
announce(true);
|
|
438
620
|
};
|
|
439
621
|
const onClick = (event) => {
|
|
440
622
|
// AN ACTIVATION ON A CONTROL THAT ACTIVATES ITSELF IS THAT CONTROL'S — the
|
|
@@ -458,10 +640,22 @@ export function mountViewer(container, input, options = {}) {
|
|
|
458
640
|
}
|
|
459
641
|
if (ownsItsOwnActivation(event.target, container))
|
|
460
642
|
return;
|
|
643
|
+
// A CLICK ON NOTHING KEYED CLEARS A SELECTION ON THE GRAPH ONLY, exactly as
|
|
644
|
+
// `select(null)` does, so a reader can restore a receded graph by clicking
|
|
645
|
+
// blank space. The list and the tree ignore such a click as they always
|
|
646
|
+
// did. With nothing selected there is nothing to clear, so it neither
|
|
647
|
+
// redraws nor tells the host.
|
|
648
|
+
// A MODIFIER CLICK ON BLANK SPACE KEEPS THE SET: the reader was building
|
|
649
|
+
// one and missed, which is not a request to throw it away.
|
|
461
650
|
const key = keyAt(event.target, container);
|
|
462
|
-
|
|
651
|
+
const modified = event.shiftKey === true || event.metaKey === true || event.ctrlKey === true;
|
|
652
|
+
const clearsSelection = projection === 'graph' && state.selected !== null && !modified;
|
|
653
|
+
if (key === null) {
|
|
654
|
+
if (clearsSelection)
|
|
655
|
+
emitSelect(null);
|
|
463
656
|
return;
|
|
464
|
-
|
|
657
|
+
}
|
|
658
|
+
applyGesture(gestureFor(key, event), key);
|
|
465
659
|
};
|
|
466
660
|
const onPointerOver = (event) => {
|
|
467
661
|
const key = keyAt(event.target, container);
|
|
@@ -499,7 +693,7 @@ export function mountViewer(container, input, options = {}) {
|
|
|
499
693
|
if (standingOn !== null && standingOn !== state.focused && currentScene.navigable.includes(standingOn)) {
|
|
500
694
|
state = { ...state, focused: standingOn };
|
|
501
695
|
}
|
|
502
|
-
const result = navigate(currentScene, state, event.key);
|
|
696
|
+
const result = navigate(currentScene, state, event.key, { shift: event.shiftKey === true });
|
|
503
697
|
if (result.command.kind === 'none')
|
|
504
698
|
return;
|
|
505
699
|
event.preventDefault?.();
|
|
@@ -507,6 +701,21 @@ export function mountViewer(container, input, options = {}) {
|
|
|
507
701
|
emitSelect(result.command.key);
|
|
508
702
|
return;
|
|
509
703
|
}
|
|
704
|
+
// SHIFT WITH AN ARROW IS A SHIFT-CLICK ON THE NEWLY FOCUSED ISSUE.
|
|
705
|
+
if (result.command.kind === 'extend') {
|
|
706
|
+
state = result.state;
|
|
707
|
+
applyGesture({ kind: 'range', key: result.command.key }, result.command.key);
|
|
708
|
+
return;
|
|
709
|
+
}
|
|
710
|
+
if (result.command.kind === 'clear') {
|
|
711
|
+
applyGesture({ kind: 'clear' }, null);
|
|
712
|
+
// THE REDRAW DESTROYED THE ROW HOLDING FOCUS, and a clear names no subject
|
|
713
|
+
// for `applyGesture` to refocus, so the tab stop the reader kept is
|
|
714
|
+
// focused again — this is the viewer's own key press, not a host update.
|
|
715
|
+
if (state.focused !== null)
|
|
716
|
+
keyed.get(state.focused)?.focus?.();
|
|
717
|
+
return;
|
|
718
|
+
}
|
|
510
719
|
// A COMMAND IS THE HOST'S TO COMPLETE, exactly like the header's own
|
|
511
720
|
// buttons: this package cannot switch its own projection or resize its own
|
|
512
721
|
// column. It travels on the same channel a click on those buttons does, so
|
|
@@ -553,8 +762,9 @@ export function mountViewer(container, input, options = {}) {
|
|
|
553
762
|
// or a NOW row, and neither carries a focus key — so `keyed` missed them
|
|
554
763
|
// and the scroll this promises never happened for the subjects the two
|
|
555
764
|
// views place furthest apart.
|
|
556
|
-
|
|
557
|
-
|
|
765
|
+
const subject = selectedKeysOf(state.selected).at(-1);
|
|
766
|
+
if (subject !== undefined) {
|
|
767
|
+
drawn.get(subject)?.scrollIntoView?.({ block: 'nearest', inline: 'nearest' });
|
|
558
768
|
}
|
|
559
769
|
},
|
|
560
770
|
select(key) {
|
package/dist/mount.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mount.js","sourceRoot":"","sources":["../src/mount.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,OAAO,EAAgD,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAChG,OAAO,EAAsD,WAAW,EAAE,MAAM,cAAc,CAAC;AAC/F,OAAO,EAEL,sBAAsB,EACtB,QAAQ,EACR,SAAS,GACV,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAsB,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,aAAa,EAA+B,MAAM,YAAY,CAAC;AACzF,OAAO,EAAc,YAAY,EAAE,MAAM,YAAY,CAAC;AAuDtD;;;;;;;GAOG;AACH,MAAM,oBAAoB,GAAwB,IAAI,GAAG,CAAC;IACxD,GAAG;IACH,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,UAAU;CACX,CAAC,CAAC;AAEH,SAAS,oBAAoB,CAC3B,MAAuC,EACvC,SAAuB;IAEvB,IAAI,MAAM,GAAwB,MAAM,IAAI,IAAI,CAAC;IACjD,OAAO,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QAC/C,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC;QAC3B,IAAI,GAAG,KAAK,SAAS,IAAI,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;YAAE,OAAO,IAAI,CAAC;QAClF,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC;IAChC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH;;;;;;;;GAQG;AACH,SAAS,SAAS,CAChB,MAAuC,EACvC,SAAuB;IAEvB,OAAO,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,KAAK,CACZ,MAAuC,EACvC,SAAuB;AACvB,yEAAyE;AACzE,6EAA6E;AAC7E,8EAA8E;AAC9E,kCAAkC;AAClC,aAAgC,CAAC,aAAa,EAAE,eAAe,CAAC;IAEhE,IAAI,MAAM,GAAwB,MAAM,IAAI,IAAI,CAAC;IACjD,OAAO,MAAM,KAAK,IAAI,EAAE,CAAC;QACvB,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;YAC3C,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,EAAE;gBAAE,OAAO,GAAG,CAAC;QAC7C,CAAC;QACD,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QACtC,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC;IAChC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CACzB,SAAuB,EACvB,KAAqB,EACrB,UAAwB,EAAE;IAE1B,MAAM,GAAG,GAAG,SAAS,CAAC,aAAa,CAAC;IACpC,IAAI,cAAc,GAAiB,OAAO,CAAC;IAC3C,IAAI,UAAU,GAAe,OAAO,CAAC,UAAU,IAAI,QAAQ,CAAC;IAC5D,IAAI,UAAU,GAAuB,iBAAiB,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC;IACvE,oEAAoE;IACpE,8EAA8E;IAC9E,2EAA2E;IAC3E,2EAA2E;IAC3E,gDAAgD;IAChD,IAAI,KAAK,GAAoB;QAC3B,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,sBAAsB,CAAC,OAAO;QAC1D,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,sBAAsB,CAAC,QAAQ;KAC9D,CAAC;IACF,IAAI,IAAI,GAAuB,IAAI,CAAC;IACpC,IAAI,KAAK,GAAG,IAAI,GAAG,EAAuB,CAAC;IAC3C,8EAA8E;IAC9E,4EAA4E;IAC5E,4EAA4E;IAC5E,8EAA8E;IAC9E,4EAA4E;IAC5E,2CAA2C;IAC3C,IAAI,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC;;;;;;;;;;;;OAYG;IACH,IAAI,KAAK,GAAG,IAAI,GAAG,EAAuB,CAAC;IAC3C;;;;;;;;;;;;;;;;;OAiBG;IACH,MAAM,cAAc,GAAG,CAAC,GAAW,EAAW,EAAE,CAC9C,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC;IACxF;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,MAAM,UAAU,GAAG,CAAC,GAAW,EAAW,EAAE,CAC1C,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACzE,IAAI,OAAO,GAAkB,IAAI,CAAC;IAClC,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,4EAA4E;IAC5E,IAAI,YAAY,GAAiB,IAAI,CAAC;IAEtC,MAAM,KAAK,GAAU,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAEjD,+EAA+E;IAC/E,4EAA4E;IAC5E,6EAA6E;IAC7E,yEAAyE;IACzE,MAAM,UAAU,GAAG,GAAS,EAAE;QAC5B,IAAI,OAAO,KAAK,IAAI;YAAE,OAAO;QAC7B,OAAO,GAAG,IAAI,CAAC;QACf,cAAc,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC,CAAC;IAEF,4EAA4E;IAC5E,6EAA6E;IAC7E,6EAA6E;IAC7E,iCAAiC;IACjC,MAAM,IAAI,GAAG,CAAC,iBAAiB,GAAG,IAAI,EAAQ,EAAE;QAC9C,2EAA2E;QAC3E,0EAA0E;QAC1E,yEAAyE;QACzE,yEAAyE;QACzE,wEAAwE;QACxE,uEAAuE;QACvE,8DAA8D;QAC9D,wEAAwE;QACxE,4EAA4E;QAC5E,wEAAwE;QACxE,2EAA2E;QAC3E,qEAAqE;QACrE,2EAA2E;QAC3E,4EAA4E;QAC5E,6DAA6D;QAC7D,0EAA0E;QAC1E,mCAAmC;QACnC,0EAA0E;QAC1E,kEAAkE;QAClE,2EAA2E;QAC3E,4EAA4E;QAC5E,4EAA4E;QAC5E,4EAA4E;QAC5E,MAAM,cAAc,GAAG,KAAK,CAAC,QAAQ,CAAC;QACtC,yEAAyE;QACzE,4EAA4E;QAC5E,0EAA0E;QAC1E,0EAA0E;QAC1E,0EAA0E;QAC1E,+DAA+D;QAC/D,EAAE;QACF,4EAA4E;QAC5E,wEAAwE;QACxE,2EAA2E;QAC3E,yEAAyE;QACzE,wEAAwE;QACxE,0EAA0E;QAC1E,0EAA0E;QAC1E,oBAAoB;QACpB,IAAI,YAAY,KAAK,IAAI,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpF,KAAK,GAAG,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QACvC,CAAC;QACD,IAAI,IAAI,KAAK,IAAI;YAAE,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC/C,MAAM,KAAK,GAAG,QAAQ,CAAC,UAAU,EAAE,UAAU,EAAE;YAC7C,GAAG,cAAc;YACjB,wEAAwE;YACxE,oEAAoE;YACpE,wEAAwE;YACxE,wEAAwE;YACxE,6EAA6E;YAC7E,YAAY,EAAE,KAAK;YACnB,KAAK,EAAE,cAAc,CAAC,KAAK,IAAI,KAAK;YACpC,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,OAAO,EAAE,KAAK,CAAC,OAAO;SACvB,CAAC,CAAC;QACH,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAChC,KAAK,GAAG,IAAI,GAAG,EAAuB,CAAC;QACvC,6EAA6E;QAC7E,oEAAoE;QACpE,6EAA6E;QAC7E,4EAA4E;QAC5E,2EAA2E;QAC3E,0EAA0E;QAC1E,qDAAqD;QACrD,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;QAC9B,KAAK,GAAG,IAAI,GAAG,EAAuB,CAAC;QACvC,4EAA4E;QAC5E,2EAA2E;QAC3E,kEAAkE;QAClE,yEAAyE;QACzE,wEAAwE;QACxE,2EAA2E;QAC3E,2EAA2E;QAC3E,4EAA4E;QAC5E,0EAA0E;QAC1E,yEAAyE;QACzE,2EAA2E;QAC3E,6EAA6E;QAC7E,0EAA0E;QAC1E,yEAAyE;QACzE,2EAA2E;QAC3E,6EAA6E;QAC7E,0BAA0B;QAC1B,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;QACxC,IAAI,GAAG,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE;YAClC,SAAS,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;gBACxB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,aAAa,CAAC,CAAC;gBACxC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,EAAE,EAAE,CAAC;oBAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC;oBACtC,MAAM,QAAQ,GACZ,CAAC,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,GAAG,IAAI,IAAI,CAAC,GAAG,KAAK,QAAQ,CAAC;oBAC7F,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;wBAC7D,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;wBACrB,IAAI,QAAQ;4BAAE,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBACvC,CAAC;oBACD,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBACnB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;wBAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gBAC5C,CAAC;gBACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,eAAe,CAAC,CAAC;gBAC5C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;oBAC9C,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oBACrB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;wBAAE,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;gBAChD,CAAC;YACH,CAAC;SACF,CAAC,CAAC;QACH,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC5B,YAAY,GAAG,KAAK,CAAC;QACrB,0EAA0E;QAC1E,qEAAqE;QACrE,2EAA2E;QAC3E,qEAAqE;QACrE,gEAAgE;QAChE,2DAA2D;QAC3D,2EAA2E;QAC3E,yEAAyE;QACzE,gDAAgD;QAChD,6EAA6E;QAC7E,4EAA4E;QAC5E,wEAAwE;QACxE,yEAAyE;QACzE,6EAA6E;QAC7E,wDAAwD;QACxD,8EAA8E;QAC9E,2EAA2E;QAC3E,wEAAwE;QACxE,yEAAyE;QACzE,2EAA2E;QAC3E,gEAAgE;QAChE,4EAA4E;QAC5E,yEAAyE;QACzE,IAAI,OAAO,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC;YAAE,UAAU,EAAE,CAAC;QAC9D,0EAA0E;QAC1E,2EAA2E;QAC3E,2EAA2E;QAC3E,2EAA2E;QAC3E,2EAA2E;QAC3E,4EAA4E;QAC5E,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC3D,KAAK,GAAG,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QACvC,CAAC;QACD,6EAA6E;QAC7E,yEAAyE;QACzE,0EAA0E;QAC1E,6EAA6E;QAC7E,0DAA0D;QAC1D,IAAI,iBAAiB,IAAI,KAAK,CAAC,QAAQ,KAAK,cAAc,EAAE,CAAC;YAC3D,cAAc,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,CAAC,GAAkB,EAAQ,EAAE;QAC9C,2EAA2E;QAC3E,6EAA6E;QAC7E,yEAAyE;QACzE,sEAAsE;QACtE,qEAAqE;QACrE,4BAA4B;QAC5B,yEAAyE;QACzE,wEAAwE;QACxE,6EAA6E;QAC7E,uEAAuE;QACvE,0EAA0E;QAC1E,2EAA2E;QAC3E,wBAAwB;QACxB,4EAA4E;QAC5E,wEAAwE;QACxE,2EAA2E;QAC3E,mEAAmE;QACnE,4DAA4D;QAC5D,MAAM,QAAQ,GAAG,GAAG,KAAK,IAAI,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;QAC9D,yEAAyE;QACzE,4EAA4E;QAC5E,yEAAyE;QACzE,0EAA0E;QAC1E,yEAAyE;QACzE,2CAA2C;QAC3C,yEAAyE;QACzE,2EAA2E;QAC3E,uEAAuE;QACvE,yEAAyE;QACzE,wEAAwE;QACxE,2EAA2E;QAC3E,2EAA2E;QAC3E,yEAAyE;QACzE,yEAAyE;QACzE,uEAAuE;QACvE,MAAM,OAAO,GAAG,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,CAAC;QAC/F,MAAM,SAAS,GACb,QAAQ,KAAK,IAAI;YACjB,OAAO,KAAK,IAAI;YAChB,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;YAC9B,CAAC,YAAY,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC;YAClD,CAAC,CAAC,QAAQ;YACV,CAAC,CAAC,IAAI,CAAC;QACX,KAAK,GAAG,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAC9E,0EAA0E;QAC1E,4EAA4E;QAC5E,sEAAsE;QACtE,wDAAwD;QACxD,IAAI,CAAC,KAAK,CAAC,CAAC;QACZ,yEAAyE;QACzE,2EAA2E;QAC3E,0EAA0E;QAC1E,0EAA0E;QAC1E,oEAAoE;QACpE,yEAAyE;QACzE,4EAA4E;QAC5E,yEAAyE;QACzE,4EAA4E;QAC5E,4EAA4E;QAC5E,yEAAyE;QACzE,0CAA0C;QAC1C,yEAAyE;QACzE,uEAAuE;QACvE,2EAA2E;QAC3E,8CAA8C;QAC9C,0EAA0E;QAC1E,wEAAwE;QACxE,0EAA0E;QAC1E,qEAAqE;QACrE,yEAAyE;QACzE,wEAAwE;QACxE,mDAAmD;QACnD,IAAI,SAAS,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI;YAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;QACtF,6EAA6E;QAC7E,yEAAyE;QACzE,2EAA2E;QAC3E,wEAAwE;QACxE,0EAA0E;QAC1E,wEAAwE;QACxE,cAAc,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC5C,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,CAAC,KAAiB,EAAQ,EAAE;QAC1C,2EAA2E;QAC3E,2EAA2E;QAC3E,4EAA4E;QAC5E,4EAA4E;QAC5E,6EAA6E;QAC7E,+BAA+B;QAC/B,2EAA2E;QAC3E,yEAAyE;QACzE,uDAAuD;QACvD,yEAAyE;QACzE,0EAA0E;QAC1E,2EAA2E;QAC3E,0EAA0E;QAC1E,0EAA0E;QAC1E,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACnD,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,cAAc,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC;YACpC,OAAO;QACT,CAAC;QACD,IAAI,oBAAoB,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC;YAAE,OAAO;QAC1D,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAC3C,IAAI,GAAG,KAAK,IAAI;YAAE,OAAO;QACzB,UAAU,CAAC,GAAG,CAAC,CAAC;IAClB,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,CAAC,KAAiB,EAAQ,EAAE;QAChD,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAC3C,IAAI,GAAG,KAAK,OAAO;YAAE,OAAO;QAC5B,OAAO,GAAG,GAAG,CAAC;QACd,cAAc,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,GAAS,EAAE;QAChC,UAAU,EAAE,CAAC;IACf,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,CAAC,KAAiB,EAAQ,EAAE;QAC5C,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,IAAI,YAAY,KAAK,IAAI;YAAE,OAAO;QAC7D,0EAA0E;QAC1E,4EAA4E;QAC5E,sBAAsB;QACtB,IACE,CAAC,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC;YAC5C,oBAAoB,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,EAC7C,CAAC;YACD,OAAO;QACT,CAAC;QACD,6EAA6E;QAC7E,2EAA2E;QAC3E,2EAA2E;QAC3E,2EAA2E;QAC3E,2DAA2D;QAC3D,4EAA4E;QAC5E,6EAA6E;QAC7E,2EAA2E;QAC3E,6EAA6E;QAC7E,4CAA4C;QAC5C,4EAA4E;QAC5E,yEAAyE;QACzE,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;QACnE,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,KAAK,CAAC,OAAO,IAAI,YAAY,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACvG,KAAK,GAAG,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;QAC5C,CAAC;QACD,MAAM,MAAM,GAAG,QAAQ,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QACxD,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM;YAAE,OAAO;QAC3C,KAAK,CAAC,cAAc,EAAE,EAAE,CAAC;QACzB,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC/B,OAAO;QACT,CAAC;QACD,qEAAqE;QACrE,2EAA2E;QAC3E,2EAA2E;QAC3E,2CAA2C;QAC3C,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACtC,cAAc,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACnD,OAAO;QACT,CAAC;QACD,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QACrB,IAAI,EAAE,CAAC;QACP,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;IAC3C,CAAC,CAAC;IAEF,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7C,SAAS,CAAC,gBAAgB,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;IACzD,SAAS,CAAC,gBAAgB,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;IAC3D,SAAS,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAEjD,IAAI,EAAE,CAAC;IAEP,OAAO;QACL,MAAM,CAAC,IAAoB,EAAE,WAA0B;YACrD,IAAI,SAAS;gBAAE,OAAO;YACtB,IAAI,WAAW,KAAK,SAAS;gBAAE,cAAc,GAAG,WAAW,CAAC;YAC5D,IAAI,WAAW,EAAE,UAAU,KAAK,SAAS;gBAAE,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC;YAC/E,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;YAC9C,IAAI,EAAE,CAAC;QACT,CAAC;QACD,aAAa,CAAC,IAAgB;YAC5B,IAAI,SAAS;gBAAE,OAAO;YACtB,IAAI,IAAI,KAAK,UAAU;gBAAE,OAAO;YAChC,UAAU,GAAG,IAAI,CAAC;YAClB,IAAI,EAAE,CAAC;YACP,sEAAsE;YACtE,sEAAsE;YACtE,uEAAuE;YACvE,0EAA0E;YAC1E,qEAAqE;YACrE,uEAAuE;YACvE,0EAA0E;YAC1E,wEAAwE;YACxE,yEAAyE;YACzE,uEAAuE;YACvE,8BAA8B;YAC9B,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;gBAC5B,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;YACvF,CAAC;QACH,CAAC;QACD,MAAM,CAAC,GAAkB;YACvB,IAAI,SAAS;gBAAE,OAAO;YACtB,UAAU,CAAC,GAAG,CAAC,CAAC;QAClB,CAAC;QACD,IAAI,KAAK;YACP,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO;YACL,IAAI,SAAS;gBAAE,OAAO;YACtB,SAAS,GAAG,IAAI,CAAC;YACjB,0EAA0E;YAC1E,qEAAqE;YACrE,uEAAuE;YACvE,qEAAqE;YACrE,UAAU,EAAE,CAAC;YACb,SAAS,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAChD,SAAS,CAAC,mBAAmB,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;YAC5D,SAAS,CAAC,mBAAmB,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;YAC9D,SAAS,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YACpD,IAAI,IAAI,KAAK,IAAI;gBAAE,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAC/C,IAAI,GAAG,IAAI,CAAC;YACZ,KAAK,GAAG,IAAI,GAAG,EAAuB,CAAC;YACvC,KAAK,GAAG,IAAI,GAAG,EAAuB,CAAC;QACzC,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"mount.js","sourceRoot":"","sources":["../src/mount.ts"],"names":[],"mappings":"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"}
|
package/dist/navigation.d.ts
CHANGED
|
@@ -14,11 +14,20 @@
|
|
|
14
14
|
* a coordinate.
|
|
15
15
|
*/
|
|
16
16
|
import { type Scene } from './scene.ts';
|
|
17
|
+
import type { StoredSelection } from './selection.ts';
|
|
17
18
|
export interface NavigationState {
|
|
18
19
|
/** The roving tab stop. `null` before anything has been focused. */
|
|
19
20
|
readonly focused: string | null;
|
|
20
|
-
/**
|
|
21
|
-
|
|
21
|
+
/**
|
|
22
|
+
* The selection, which survives a projection change: one issue or one
|
|
23
|
+
* relationship as a string, or a set of issues in the order they were added
|
|
24
|
+
* — see `StoredSelection`.
|
|
25
|
+
*/
|
|
26
|
+
readonly selected: StoredSelection;
|
|
27
|
+
}
|
|
28
|
+
/** The modifier keys `navigate` reads. */
|
|
29
|
+
export interface NavigationModifiers {
|
|
30
|
+
readonly shift?: boolean | undefined;
|
|
22
31
|
}
|
|
23
32
|
/** What the shell should do. `none` means the host keeps its own shortcut. */
|
|
24
33
|
export type NavigationCommand = {
|
|
@@ -30,6 +39,20 @@ export type NavigationCommand = {
|
|
|
30
39
|
readonly kind: 'select';
|
|
31
40
|
readonly key: string;
|
|
32
41
|
}
|
|
42
|
+
/**
|
|
43
|
+
* Shift with an arrow: focus moved to `key`, and the shell extends the
|
|
44
|
+
* selection to it as a Shift-click on it would — a range in rank order.
|
|
45
|
+
* `navigate` cannot build the set itself: the range rule needs the set as
|
|
46
|
+
* the reader made it, which only the shell holds.
|
|
47
|
+
*/
|
|
48
|
+
| {
|
|
49
|
+
readonly kind: 'extend';
|
|
50
|
+
readonly key: string;
|
|
51
|
+
}
|
|
52
|
+
/** Escape with something selected: the shell clears the selection. */
|
|
53
|
+
| {
|
|
54
|
+
readonly kind: 'clear';
|
|
55
|
+
}
|
|
33
56
|
/**
|
|
34
57
|
* A command the SHELL cannot complete on its own.
|
|
35
58
|
*
|
|
@@ -66,5 +89,5 @@ export declare function reconcile(scene: Scene, state: NavigationState): Navigat
|
|
|
66
89
|
* boundary. An unhandled key returns the state untouched and `none`, so a host
|
|
67
90
|
* keeps every shortcut this package does not claim.
|
|
68
91
|
*/
|
|
69
|
-
export declare function navigate(scene: Scene, state: NavigationState, key: string): NavigationResult;
|
|
92
|
+
export declare function navigate(scene: Scene, state: NavigationState, key: string, modifiers?: NavigationModifiers): NavigationResult;
|
|
70
93
|
//# sourceMappingURL=navigation.d.ts.map
|
package/dist/navigation.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../src/navigation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,KAAK,KAAK,EAAmB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../src/navigation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,KAAK,KAAK,EAAmB,MAAM,YAAY,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtD,MAAM,WAAW,eAAe;IAC9B,oEAAoE;IACpE,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;CACpC;AAED,0CAA0C;AAC1C,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACtC;AAED,8EAA8E;AAC9E,MAAM,MAAM,iBAAiB,GACzB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACzB;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAChD;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE;AACnD;;;;;GAKG;GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE;AACnD,sEAAsE;GACpE;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CAAE;AAC5B;;;;;;;;;GASG;GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3D,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;CACrC;AAED,eAAO,MAAM,sBAAsB,EAAE,eAGnC,CAAC;AAeH;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,GAAG,eAAe,CA6B/E;AAcD;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CACtB,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,eAAe,EACtB,GAAG,EAAE,MAAM,EACX,SAAS,GAAE,mBAAwB,GAClC,gBAAgB,CA0ClB"}
|
package/dist/navigation.js
CHANGED
|
@@ -60,12 +60,24 @@ export function reconcile(scene, state) {
|
|
|
60
60
|
// point is what left `handle.select` and `setProjection` behaving differently
|
|
61
61
|
// from the click they are documented to be equivalent to.
|
|
62
62
|
const station = (key) => key === null || key === undefined ? null : (scene.stationOf.get(key) ?? key);
|
|
63
|
-
const selected =
|
|
63
|
+
const selected = stationsOfSelection(state.selected, (key) => scene.stationOf.get(key) ?? key);
|
|
64
64
|
return {
|
|
65
65
|
focused: resolveFocusKey(scene.navigable, station(state.focused), selected),
|
|
66
66
|
selected,
|
|
67
67
|
};
|
|
68
68
|
}
|
|
69
|
+
/**
|
|
70
|
+
* A selection named by its stations. A set keeps each station where its
|
|
71
|
+
* member was last added and collapses to a single key when only one is left,
|
|
72
|
+
* so the stored form never holds a one-key array.
|
|
73
|
+
*/
|
|
74
|
+
function stationsOfSelection(selected, station) {
|
|
75
|
+
if (selected === null || typeof selected === 'string')
|
|
76
|
+
return selected === null ? null : station(selected);
|
|
77
|
+
const named = selected.map(station);
|
|
78
|
+
const kept = named.filter((key, index) => named.lastIndexOf(key) === index);
|
|
79
|
+
return kept.length === 1 ? (kept[0] ?? null) : Object.freeze(kept);
|
|
80
|
+
}
|
|
69
81
|
/**
|
|
70
82
|
* Apply one key.
|
|
71
83
|
*
|
|
@@ -74,8 +86,15 @@ export function reconcile(scene, state) {
|
|
|
74
86
|
* boundary. An unhandled key returns the state untouched and `none`, so a host
|
|
75
87
|
* keeps every shortcut this package does not claim.
|
|
76
88
|
*/
|
|
77
|
-
export function navigate(scene, state, key) {
|
|
89
|
+
export function navigate(scene, state, key, modifiers = {}) {
|
|
78
90
|
const order = scene.focusOrder;
|
|
91
|
+
// ESCAPE CLEARS A SELECTION, and only a selection: with nothing selected it
|
|
92
|
+
// is not this package's key, so a host keeps whatever it bound to it.
|
|
93
|
+
if (key === 'Escape') {
|
|
94
|
+
return state.selected === null
|
|
95
|
+
? stay(state)
|
|
96
|
+
: { state: { ...state, selected: null }, command: { kind: 'clear' } };
|
|
97
|
+
}
|
|
79
98
|
// §16e's VIEW TOGGLE IS NOT A MOVEMENT, so it comes before the guard that
|
|
80
99
|
// asks whether there is anywhere to move. A viewer with an empty order still
|
|
81
100
|
// draws a panel a reader can focus a header control in — an empty document,
|
|
@@ -98,6 +117,19 @@ export function navigate(scene, state, key) {
|
|
|
98
117
|
}
|
|
99
118
|
if (order.length === 0)
|
|
100
119
|
return stay(state);
|
|
120
|
+
const moved = arrowMove(scene, state, key);
|
|
121
|
+
// SHIFT WITH AN ARROW IS A SHIFT-CLICK ON THE ISSUE FOCUS MOVED TO. A move
|
|
122
|
+
// that goes nowhere extends nothing, and a key that is not an arrow keeps
|
|
123
|
+
// its own meaning whatever modifier is held.
|
|
124
|
+
if (modifiers.shift === true && ARROWS.has(key) && moved.command.kind === 'focus') {
|
|
125
|
+
return { state: moved.state, command: { kind: 'extend', key: moved.command.key } };
|
|
126
|
+
}
|
|
127
|
+
return moved;
|
|
128
|
+
}
|
|
129
|
+
const ARROWS = new Set(['ArrowDown', 'ArrowUp', 'ArrowLeft', 'ArrowRight']);
|
|
130
|
+
/** Apply one key, modifiers aside. */
|
|
131
|
+
function arrowMove(scene, state, key) {
|
|
132
|
+
const order = scene.focusOrder;
|
|
101
133
|
const current = indexOfFocus(scene, state);
|
|
102
134
|
const first = order[0];
|
|
103
135
|
const last = order[order.length - 1];
|
package/dist/navigation.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"navigation.js","sourceRoot":"","sources":["../src/navigation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAc,eAAe,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"navigation.js","sourceRoot":"","sources":["../src/navigation.ts"],"names":[],"mappings":"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"}
|
package/dist/parts.d.ts
CHANGED
|
@@ -86,9 +86,10 @@ export declare function identity(issue: ViewerIssue): ElementSpec;
|
|
|
86
86
|
*/
|
|
87
87
|
export declare function provenanceClause(provenance: RankProvenance | undefined): ElementSpec | null;
|
|
88
88
|
/**
|
|
89
|
-
* The provenance line, in the
|
|
90
|
-
* query, the declared tier,
|
|
91
|
-
* dependent the urgency arrived through
|
|
89
|
+
* The provenance line, in the four forms the design fixes: a matched ordering
|
|
90
|
+
* query, the declared tier, an effective-priority promotion that names the
|
|
91
|
+
* dependent the urgency arrived through, and the order strategy that placed an
|
|
92
|
+
* unlabeled-tail row.
|
|
92
93
|
*
|
|
93
94
|
* The wording is {@link provenanceClause}'s; this adds only §16's turnstile and
|
|
94
95
|
* the paragraph it hangs on, so the rail and the inspector cannot come to
|
|
@@ -435,9 +436,23 @@ export declare function stationsOf(document: NormalizedDocument): ReadonlyMap<st
|
|
|
435
436
|
* cannot reach a different answer than the markup did.
|
|
436
437
|
*/
|
|
437
438
|
export declare function atStations<T extends {
|
|
438
|
-
selected?: string | null | undefined;
|
|
439
|
+
selected?: string | readonly string[] | null | undefined;
|
|
439
440
|
focused?: string | null | undefined;
|
|
440
441
|
}>(options: T, stations: ReadonlyMap<string, string>): T;
|
|
442
|
+
/**
|
|
443
|
+
* The recede stamp. Constant, and absent rather than `"false"` on what stays,
|
|
444
|
+
* so a render with nothing receding is byte for byte the render without a
|
|
445
|
+
* selection, and the selection itself never reaches the markup.
|
|
446
|
+
*/
|
|
447
|
+
export declare function recedeStamp(recedes: boolean): 'true' | null;
|
|
448
|
+
/**
|
|
449
|
+
* A row a builder returned, with its recede stamp.
|
|
450
|
+
*
|
|
451
|
+
* STAMPED BY THE SCENE, NEVER BY THE ROW BUILDERS. The graph's refusal draws
|
|
452
|
+
* the same builders as its rail and a refused canvas recedes nothing, so the
|
|
453
|
+
* stamp belongs to the scene that knows whether this row recedes.
|
|
454
|
+
*/
|
|
455
|
+
export declare function withRecede(row: ElementSpec, recedes: boolean): ElementSpec;
|
|
441
456
|
/** The title of a slot, naming every member — a together unit is one row. */
|
|
442
457
|
export declare function slotTitle(document: NormalizedDocument, slot: ViewerSlot): string;
|
|
443
458
|
/**
|