@livetemplate/client 0.9.2 → 0.11.4
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/dist/dom/directives.d.ts +36 -0
- package/dist/dom/directives.d.ts.map +1 -1
- package/dist/dom/directives.js +179 -1
- package/dist/dom/directives.js.map +1 -1
- package/dist/dom/loading-indicator.d.ts +33 -0
- package/dist/dom/loading-indicator.d.ts.map +1 -1
- package/dist/dom/loading-indicator.js +107 -0
- package/dist/dom/loading-indicator.js.map +1 -1
- package/dist/dom/spy.d.ts +36 -0
- package/dist/dom/spy.d.ts.map +1 -0
- package/dist/dom/spy.js +388 -0
- package/dist/dom/spy.js.map +1 -0
- package/dist/livetemplate-client.browser.js +5 -5
- package/dist/livetemplate-client.browser.js.map +4 -4
- package/dist/livetemplate-client.d.ts.map +1 -1
- package/dist/livetemplate-client.js +37 -0
- package/dist/livetemplate-client.js.map +1 -1
- package/dist/tests/directives.test.js +260 -0
- package/dist/tests/directives.test.js.map +1 -1
- package/dist/tests/loading-indicator.test.js +150 -0
- package/dist/tests/loading-indicator.test.js.map +1 -1
- package/dist/tests/spy.test.d.ts +2 -0
- package/dist/tests/spy.test.d.ts.map +1 -0
- package/dist/tests/spy.test.js +432 -0
- package/dist/tests/spy.test.js.map +1 -0
- package/package.json +1 -1
package/dist/dom/directives.d.ts
CHANGED
|
@@ -45,6 +45,42 @@ export declare function setupFxLifecycleListeners(rootElement: Element): void;
|
|
|
45
45
|
*/
|
|
46
46
|
export declare function teardownFxLifecycleListeners(rootElement: Element): void;
|
|
47
47
|
export declare function handleScrollDirectives(rootElement: Element): void;
|
|
48
|
+
/**
|
|
49
|
+
* Cancel and forget all active `lvt-fx:auto-click` timers. Called from
|
|
50
|
+
* the LiveTemplate client's `disconnect()` so per-session timer state
|
|
51
|
+
* doesn't survive across a session boundary (the next session re-arms
|
|
52
|
+
* fresh on its first render pass). Safe to call when no timers exist.
|
|
53
|
+
*
|
|
54
|
+
* Multi-client scope warning: the timer Map is module-level (matching
|
|
55
|
+
* the existing `animatedElements` / `scrollResetPriors` pattern), so
|
|
56
|
+
* this teardown cancels timers across every `LiveTemplateClient`
|
|
57
|
+
* instance on the page. If two clients coexist (e.g. a layout client
|
|
58
|
+
* and a widget client), disconnect order matters — the surviving
|
|
59
|
+
* client's pending auto-clicks are cancelled along with the
|
|
60
|
+
* disconnecting client's. Surviving clients re-arm on their next
|
|
61
|
+
* render pass, but any auto-click that was about to fire mid-window
|
|
62
|
+
* is lost. Per-instance scoping would solve this but is a larger
|
|
63
|
+
* refactor (the existing two singletons would need the same
|
|
64
|
+
* treatment) and is deferred until a real multi-client use case
|
|
65
|
+
* appears.
|
|
66
|
+
*/
|
|
67
|
+
export declare function teardownAutoClickTimers(): void;
|
|
68
|
+
/**
|
|
69
|
+
* Apply auto-click directives. `lvt-fx:auto-click="<delay-ms>:<button-name>"`
|
|
70
|
+
* arms a timer when the element is first seen with this spec; on fire, the
|
|
71
|
+
* directive locates a descendant `[name=<button-name>]` and synthesizes a
|
|
72
|
+
* click on it — funneling through the existing event-delegation pipeline
|
|
73
|
+
* so the server-side action runs identically to a user click. Use case:
|
|
74
|
+
* auto-dismiss a toast/banner after N ms by clicking its existing dismiss
|
|
75
|
+
* button (which already fires the dismissBanner server action).
|
|
76
|
+
*
|
|
77
|
+
* Idempotent across renders: an element that re-appears with the same
|
|
78
|
+
* spec keeps its existing timer. A spec change cancels and re-arms. An
|
|
79
|
+
* element that disappears has its timer canceled on the next render's
|
|
80
|
+
* sweep (and even if the sweep doesn't run first, the fire-time
|
|
81
|
+
* isConnected check skips the click).
|
|
82
|
+
*/
|
|
83
|
+
export declare function handleAutoClickDirectives(rootElement: Element): void;
|
|
48
84
|
/**
|
|
49
85
|
* Apply highlight directives to elements with lvt-fx:highlight attributes.
|
|
50
86
|
* Configuration read from CSS custom properties:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"directives.d.ts","sourceRoot":"","sources":["../../dom/directives.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"directives.d.ts","sourceRoot":"","sources":["../../dom/directives.ts"],"names":[],"mappings":"AA4CA;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iCAAiC,IAAI,IAAI,CAKxD;AAsBD;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,IAAI,CA0CvF;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,WAAW,EAAE,OAAO,GAAG,IAAI,CAWrE;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAC1C,WAAW,EAAE,OAAO,EACpB,SAAS,EAAE,MAAM,EACjB,UAAU,CAAC,EAAE,MAAM,GAClB,IAAI,CAiBN;AAiLD;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,OAAO,GAAG,IAAI,CAiBpE;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,WAAW,EAAE,OAAO,GAAG,IAAI,CAUvE;AAaD,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,OAAO,GAAG,IAAI,CAMjE;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,uBAAuB,IAAI,IAAI,CAG9C;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,OAAO,GAAG,IAAI,CA8FpE;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,OAAO,GAAG,IAAI,CAMpE;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,OAAO,GAAG,IAAI,CAQlE;AAwCD;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,OAAO,GAAG,IAAI,CA4BhE;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,IAAI,CAW7C"}
|
package/dist/dom/directives.js
CHANGED
|
@@ -7,6 +7,8 @@ exports.processFxLifecycleAttributes = processFxLifecycleAttributes;
|
|
|
7
7
|
exports.setupFxLifecycleListeners = setupFxLifecycleListeners;
|
|
8
8
|
exports.teardownFxLifecycleListeners = teardownFxLifecycleListeners;
|
|
9
9
|
exports.handleScrollDirectives = handleScrollDirectives;
|
|
10
|
+
exports.teardownAutoClickTimers = teardownAutoClickTimers;
|
|
11
|
+
exports.handleAutoClickDirectives = handleAutoClickDirectives;
|
|
10
12
|
exports.handleHighlightDirectives = handleHighlightDirectives;
|
|
11
13
|
exports.handleAnimateDirectives = handleAnimateDirectives;
|
|
12
14
|
exports.handleToastDirectives = handleToastDirectives;
|
|
@@ -26,6 +28,26 @@ const FX_LIFECYCLE_SET = new Set(["pending", "success", "error", "done"]);
|
|
|
26
28
|
// in-place updates (already in the set, so they skip). Use cases that
|
|
27
29
|
// want a visible pulse on every update should reach for lvt-fx:highlight.
|
|
28
30
|
let animatedElements = new WeakSet();
|
|
31
|
+
// Tracks the prior value of the watched attribute for each element using
|
|
32
|
+
// `lvt-fx:scroll="reset-on:<attr>"`. We can't stash the prior value as a
|
|
33
|
+
// data-* attribute — morphdom would diff against it and constantly fight
|
|
34
|
+
// the reset. WeakMap auto-cleans when the element is GC'd.
|
|
35
|
+
let scrollResetPriors = new WeakMap();
|
|
36
|
+
// Active timers for `lvt-fx:auto-click="<delay-ms>:<button-name>"`. Stored
|
|
37
|
+
// keyed by element so we can detect: (a) element re-renders unchanged →
|
|
38
|
+
// don't re-arm, (b) spec changed → cancel + re-arm, (c) element removed →
|
|
39
|
+
// cancel. Strong Map (not WeakMap) so we can iterate for the disconnected-
|
|
40
|
+
// element sweep on each render pass.
|
|
41
|
+
//
|
|
42
|
+
// Leak management: cleanup of stale entries depends on render continuity —
|
|
43
|
+
// `handleAutoClickDirectives` runs the sweep on every render pass, so an
|
|
44
|
+
// element removed between renders is collected on the next one. If the
|
|
45
|
+
// page stops rendering entirely (e.g. websocket dies and is never
|
|
46
|
+
// reconnected) while elements still have timers, those entries hold
|
|
47
|
+
// strong refs until tear-down. In practice the timer's own fire-time
|
|
48
|
+
// `isConnected` guard makes any leftover harmless — it would skip the
|
|
49
|
+
// `.click()` for a disconnected node — but the Map itself remains.
|
|
50
|
+
let autoClickTimers = new Map();
|
|
29
51
|
/**
|
|
30
52
|
* Test-only: reset the module-level animatedElements WeakSet. Required
|
|
31
53
|
* for tests that reuse the same DOM nodes across cases — without this,
|
|
@@ -43,6 +65,10 @@ let animatedElements = new WeakSet();
|
|
|
43
65
|
*/
|
|
44
66
|
function __resetAnimatedElementsForTesting() {
|
|
45
67
|
animatedElements = new WeakSet();
|
|
68
|
+
scrollResetPriors = new WeakMap();
|
|
69
|
+
for (const { timer } of autoClickTimers.values())
|
|
70
|
+
clearTimeout(timer);
|
|
71
|
+
autoClickTimers = new Map();
|
|
46
72
|
}
|
|
47
73
|
/**
|
|
48
74
|
* Parse a lvt-fx:{effect}[:on:[{action}:]{trigger}] attribute name.
|
|
@@ -281,8 +307,36 @@ function applyFxEffect(htmlElement, effect, config) {
|
|
|
281
307
|
}
|
|
282
308
|
case "preserve":
|
|
283
309
|
break;
|
|
284
|
-
default:
|
|
310
|
+
default: {
|
|
311
|
+
// `reset-on:<attr-name>` — reset scrollLeft/scrollTop to 0
|
|
312
|
+
// whenever the value of `<attr-name>` differs from the last
|
|
313
|
+
// render. Use case: an element whose content swaps without the
|
|
314
|
+
// node itself being replaced (morphdom reuse), where the
|
|
315
|
+
// previous scroll position is meaningless for the new content.
|
|
316
|
+
if (mode.startsWith("reset-on:")) {
|
|
317
|
+
const attrName = mode.slice("reset-on:".length);
|
|
318
|
+
if (!attrName) {
|
|
319
|
+
console.warn(`lvt-fx:scroll="reset-on:" requires an attribute name`);
|
|
320
|
+
break;
|
|
321
|
+
}
|
|
322
|
+
const currentValue = htmlElement.getAttribute(attrName);
|
|
323
|
+
const seen = scrollResetPriors.has(htmlElement);
|
|
324
|
+
if (!seen) {
|
|
325
|
+
// First paint — establish the prior, don't reset. The
|
|
326
|
+
// directive's semantic is "reset on *change*"; if a caller
|
|
327
|
+
// has set scroll programmatically before our first sweep
|
|
328
|
+
// (session restore, deep link, etc.), we must not clobber it.
|
|
329
|
+
scrollResetPriors.set(htmlElement, currentValue);
|
|
330
|
+
}
|
|
331
|
+
else if (scrollResetPriors.get(htmlElement) !== currentValue) {
|
|
332
|
+
scrollResetPriors.set(htmlElement, currentValue);
|
|
333
|
+
htmlElement.scrollLeft = 0;
|
|
334
|
+
htmlElement.scrollTop = 0;
|
|
335
|
+
}
|
|
336
|
+
break;
|
|
337
|
+
}
|
|
285
338
|
console.warn(`Unknown lvt-fx:scroll mode: ${mode}`);
|
|
339
|
+
}
|
|
286
340
|
}
|
|
287
341
|
break;
|
|
288
342
|
}
|
|
@@ -345,6 +399,130 @@ function handleScrollDirectives(rootElement) {
|
|
|
345
399
|
applyFxEffect(element, "scroll", mode);
|
|
346
400
|
});
|
|
347
401
|
}
|
|
402
|
+
/**
|
|
403
|
+
* Cancel and forget all active `lvt-fx:auto-click` timers. Called from
|
|
404
|
+
* the LiveTemplate client's `disconnect()` so per-session timer state
|
|
405
|
+
* doesn't survive across a session boundary (the next session re-arms
|
|
406
|
+
* fresh on its first render pass). Safe to call when no timers exist.
|
|
407
|
+
*
|
|
408
|
+
* Multi-client scope warning: the timer Map is module-level (matching
|
|
409
|
+
* the existing `animatedElements` / `scrollResetPriors` pattern), so
|
|
410
|
+
* this teardown cancels timers across every `LiveTemplateClient`
|
|
411
|
+
* instance on the page. If two clients coexist (e.g. a layout client
|
|
412
|
+
* and a widget client), disconnect order matters — the surviving
|
|
413
|
+
* client's pending auto-clicks are cancelled along with the
|
|
414
|
+
* disconnecting client's. Surviving clients re-arm on their next
|
|
415
|
+
* render pass, but any auto-click that was about to fire mid-window
|
|
416
|
+
* is lost. Per-instance scoping would solve this but is a larger
|
|
417
|
+
* refactor (the existing two singletons would need the same
|
|
418
|
+
* treatment) and is deferred until a real multi-client use case
|
|
419
|
+
* appears.
|
|
420
|
+
*/
|
|
421
|
+
function teardownAutoClickTimers() {
|
|
422
|
+
for (const { timer } of autoClickTimers.values())
|
|
423
|
+
clearTimeout(timer);
|
|
424
|
+
autoClickTimers.clear();
|
|
425
|
+
}
|
|
426
|
+
/**
|
|
427
|
+
* Apply auto-click directives. `lvt-fx:auto-click="<delay-ms>:<button-name>"`
|
|
428
|
+
* arms a timer when the element is first seen with this spec; on fire, the
|
|
429
|
+
* directive locates a descendant `[name=<button-name>]` and synthesizes a
|
|
430
|
+
* click on it — funneling through the existing event-delegation pipeline
|
|
431
|
+
* so the server-side action runs identically to a user click. Use case:
|
|
432
|
+
* auto-dismiss a toast/banner after N ms by clicking its existing dismiss
|
|
433
|
+
* button (which already fires the dismissBanner server action).
|
|
434
|
+
*
|
|
435
|
+
* Idempotent across renders: an element that re-appears with the same
|
|
436
|
+
* spec keeps its existing timer. A spec change cancels and re-arms. An
|
|
437
|
+
* element that disappears has its timer canceled on the next render's
|
|
438
|
+
* sweep (and even if the sweep doesn't run first, the fire-time
|
|
439
|
+
* isConnected check skips the click).
|
|
440
|
+
*/
|
|
441
|
+
function handleAutoClickDirectives(rootElement) {
|
|
442
|
+
// Fast path: nothing armed and no matching elements → no work to do.
|
|
443
|
+
// `querySelector` returns on the first hit, so this is cheaper than
|
|
444
|
+
// the `querySelectorAll` below when there are no matches at all
|
|
445
|
+
// (the common case for pages that don't use this directive).
|
|
446
|
+
if (autoClickTimers.size === 0 &&
|
|
447
|
+
rootElement.querySelector("[lvt-fx\\:auto-click]") === null) {
|
|
448
|
+
return;
|
|
449
|
+
}
|
|
450
|
+
// Sweep: cancel timers for elements that have disconnected OR whose
|
|
451
|
+
// attribute was cleared while they remain in the DOM (e.g. the server
|
|
452
|
+
// resolved the toast's dismiss state without removing the element).
|
|
453
|
+
// Without this, the Map grows unbounded across renders, and a stale
|
|
454
|
+
// timer could fire `.click()` on a button whose owning element no
|
|
455
|
+
// longer wants the auto-action.
|
|
456
|
+
for (const [element, entry] of Array.from(autoClickTimers)) {
|
|
457
|
+
if (!element.isConnected ||
|
|
458
|
+
!element.hasAttribute("lvt-fx:auto-click")) {
|
|
459
|
+
clearTimeout(entry.timer);
|
|
460
|
+
autoClickTimers.delete(element);
|
|
461
|
+
}
|
|
462
|
+
}
|
|
463
|
+
rootElement.querySelectorAll("[lvt-fx\\:auto-click]").forEach((element) => {
|
|
464
|
+
const spec = element.getAttribute("lvt-fx:auto-click");
|
|
465
|
+
if (!spec)
|
|
466
|
+
return;
|
|
467
|
+
const existing = autoClickTimers.get(element);
|
|
468
|
+
if (existing && existing.spec === spec)
|
|
469
|
+
return;
|
|
470
|
+
if (existing)
|
|
471
|
+
clearTimeout(existing.timer);
|
|
472
|
+
const colonIdx = spec.indexOf(":");
|
|
473
|
+
const delayStr = colonIdx > 0 ? spec.slice(0, colonIdx) : "";
|
|
474
|
+
// Pre-validate as a pure integer string: parseInt is lenient and
|
|
475
|
+
// would accept "200abc" as 200, silently masking a typo in the
|
|
476
|
+
// attribute. Authors expect "<delay>:<name>" — anything else warns.
|
|
477
|
+
const delayMs = /^\d+$/.test(delayStr) ? parseInt(delayStr, 10) : NaN;
|
|
478
|
+
const name = colonIdx > 0 ? spec.slice(colonIdx + 1) : "";
|
|
479
|
+
// `delayMs === 0` is intentionally allowed: it means "click on the
|
|
480
|
+
// next tick after this element first appears" — a useful primitive
|
|
481
|
+
// for "auto-execute action on render" patterns. Authors who want
|
|
482
|
+
// visible debounce should pass a non-zero value.
|
|
483
|
+
//
|
|
484
|
+
// Name is restricted to characters that cannot escape the CSS
|
|
485
|
+
// attribute-selector interpolation below (no quotes, brackets,
|
|
486
|
+
// whitespace, or backslashes). Word characters and hyphens cover
|
|
487
|
+
// every valid HTML name attribute we expect to encounter — including
|
|
488
|
+
// digit-prefixed names — while keeping the selector safe. JavaScript
|
|
489
|
+
// `\w` is ASCII-only (`[A-Za-z0-9_]`), so a Unicode button name
|
|
490
|
+
// would warn here; revisit if i18n button naming becomes a real
|
|
491
|
+
// requirement.
|
|
492
|
+
if (!Number.isFinite(delayMs) ||
|
|
493
|
+
delayMs < 0 ||
|
|
494
|
+
!name ||
|
|
495
|
+
!/^[\w-]+$/.test(name)) {
|
|
496
|
+
console.warn(`lvt-fx:auto-click expects "<delay-ms>:<button-name>", got: ${spec}`);
|
|
497
|
+
// Reached when an element's spec changes from valid to malformed
|
|
498
|
+
// mid-life. The valid-spec branch above already cleared its
|
|
499
|
+
// existing timer; this delete removes the now-stale map entry so
|
|
500
|
+
// the next render doesn't see a phantom prior spec.
|
|
501
|
+
autoClickTimers.delete(element);
|
|
502
|
+
return;
|
|
503
|
+
}
|
|
504
|
+
const timer = setTimeout(() => {
|
|
505
|
+
// Intentionally NOT deleting the map entry here. Doing so would
|
|
506
|
+
// make the next render pass see "no entry, attribute still set"
|
|
507
|
+
// and re-arm a fresh timer, firing `.click()` a second time —
|
|
508
|
+
// reachable whenever a render lands between fire and the server
|
|
509
|
+
// removing the element. Leave the entry in place; the next
|
|
510
|
+
// sweep cleans it up when the element disconnects or the
|
|
511
|
+
// attribute is cleared. The fired timeout itself is now a no-op
|
|
512
|
+
// (clearTimeout on a fired handle is harmless).
|
|
513
|
+
if (!element.isConnected)
|
|
514
|
+
return;
|
|
515
|
+
// Scoped to <button>: clicking an arbitrary [name=…] match (e.g.
|
|
516
|
+
// a checkbox, a text input) would have surprising side effects
|
|
517
|
+
// unrelated to the action-submission semantic this directive
|
|
518
|
+
// promises. Buttons are the only correct target.
|
|
519
|
+
const button = element.querySelector(`button[name="${name}"]`);
|
|
520
|
+
if (button)
|
|
521
|
+
button.click();
|
|
522
|
+
}, delayMs);
|
|
523
|
+
autoClickTimers.set(element, { timer, spec });
|
|
524
|
+
});
|
|
525
|
+
}
|
|
348
526
|
/**
|
|
349
527
|
* Apply highlight directives to elements with lvt-fx:highlight attributes.
|
|
350
528
|
* Configuration read from CSS custom properties:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"directives.js","sourceRoot":"","sources":["../../dom/directives.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"directives.js","sourceRoot":"","sources":["../../dom/directives.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,42 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Handles showing and hiding the global LiveTemplate loading indicator.
|
|
3
|
+
*
|
|
4
|
+
* Two activation paths share the same physical bar:
|
|
5
|
+
*
|
|
6
|
+
* 1. Initial connect — `data-lvt-loading="true"` on the wrapper triggers
|
|
7
|
+
* `show()` in autoInit; `hide()` fires from the first server payload.
|
|
8
|
+
* 2. Per-action wait — `data-lvt-loading-debounce-ms="<ms>"` on the wrapper
|
|
9
|
+
* enables `enablePerActionIndicator(ms)`, which arms a timer on
|
|
10
|
+
* `lvt:pending` (capture-phase) and hides on `lvt:updated`. Idempotent.
|
|
3
11
|
*/
|
|
4
12
|
export declare class LoadingIndicator {
|
|
5
13
|
private bar;
|
|
14
|
+
private actionTimer;
|
|
15
|
+
private pendingCount;
|
|
16
|
+
private pendingHandler;
|
|
17
|
+
private updatedHandler;
|
|
18
|
+
private currentDebounceMs;
|
|
6
19
|
show(): void;
|
|
7
20
|
hide(): void;
|
|
21
|
+
/**
|
|
22
|
+
* Show the loading bar after `debounceMs` of an action being in flight;
|
|
23
|
+
* hide on the next `lvt:updated`. Capture-phase listeners on document
|
|
24
|
+
* catch both events regardless of dispatch target. Safe to call more
|
|
25
|
+
* than once — repeat calls are no-ops.
|
|
26
|
+
*/
|
|
27
|
+
enablePerActionIndicator(debounceMs: number): void;
|
|
28
|
+
/**
|
|
29
|
+
* Teardown for `enablePerActionIndicator`. Stops the listeners, cancels
|
|
30
|
+
* any pending debounce timer, resets the counter, and hides the bar
|
|
31
|
+
* if it's currently visible. Hiding is part of teardown so a caller
|
|
32
|
+
* that reconfigures (different debounce → disable + re-enable) doesn't
|
|
33
|
+
* leave the prior cycle's bar orphaned waiting for an `lvt:updated`
|
|
34
|
+
* that no listener will receive.
|
|
35
|
+
*
|
|
36
|
+
* Production callers reach this path via two routes: an explicit
|
|
37
|
+
* reconfigure inside `enablePerActionIndicator`, and the LiveTemplate
|
|
38
|
+
* client's `disconnect()` teardown.
|
|
39
|
+
*/
|
|
40
|
+
disablePerActionIndicator(): void;
|
|
8
41
|
}
|
|
9
42
|
//# sourceMappingURL=loading-indicator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loading-indicator.d.ts","sourceRoot":"","sources":["../../dom/loading-indicator.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"loading-indicator.d.ts","sourceRoot":"","sources":["../../dom/loading-indicator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,GAAG,CAA4B;IACvC,OAAO,CAAC,WAAW,CAA8C;IAMjE,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,cAAc,CAAsC;IAC5D,OAAO,CAAC,cAAc,CAAsC;IAI5D,OAAO,CAAC,iBAAiB,CAAuB;IAEhD,IAAI,IAAI,IAAI;IAiCZ,IAAI,IAAI,IAAI;IASZ;;;;;OAKG;IACH,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAoDlD;;;;;;;;;;;OAWG;IACH,yBAAyB,IAAI,IAAI;CAiBlC"}
|
|
@@ -3,15 +3,37 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.LoadingIndicator = void 0;
|
|
4
4
|
/**
|
|
5
5
|
* Handles showing and hiding the global LiveTemplate loading indicator.
|
|
6
|
+
*
|
|
7
|
+
* Two activation paths share the same physical bar:
|
|
8
|
+
*
|
|
9
|
+
* 1. Initial connect — `data-lvt-loading="true"` on the wrapper triggers
|
|
10
|
+
* `show()` in autoInit; `hide()` fires from the first server payload.
|
|
11
|
+
* 2. Per-action wait — `data-lvt-loading-debounce-ms="<ms>"` on the wrapper
|
|
12
|
+
* enables `enablePerActionIndicator(ms)`, which arms a timer on
|
|
13
|
+
* `lvt:pending` (capture-phase) and hides on `lvt:updated`. Idempotent.
|
|
6
14
|
*/
|
|
7
15
|
class LoadingIndicator {
|
|
8
16
|
constructor() {
|
|
9
17
|
this.bar = null;
|
|
18
|
+
this.actionTimer = null;
|
|
19
|
+
// Counts in-flight actions so concurrent server roundtrips don't hide
|
|
20
|
+
// the bar prematurely: the bar stays visible as long as at least one
|
|
21
|
+
// `lvt:pending` is outstanding. Without this counter, action B
|
|
22
|
+
// completing first would clear the bar even though action A is still
|
|
23
|
+
// in flight.
|
|
24
|
+
this.pendingCount = 0;
|
|
25
|
+
this.pendingHandler = null;
|
|
26
|
+
this.updatedHandler = null;
|
|
27
|
+
// Current per-action debounce — tracked so a follow-up enable call
|
|
28
|
+
// with a different value reconfigures cleanly instead of silently
|
|
29
|
+
// dropping the new value.
|
|
30
|
+
this.currentDebounceMs = null;
|
|
10
31
|
}
|
|
11
32
|
show() {
|
|
12
33
|
if (this.bar)
|
|
13
34
|
return;
|
|
14
35
|
const bar = document.createElement("div");
|
|
36
|
+
bar.className = "lvt-loading-bar";
|
|
15
37
|
bar.style.cssText = `
|
|
16
38
|
position: fixed;
|
|
17
39
|
top: 0;
|
|
@@ -45,6 +67,91 @@ class LoadingIndicator {
|
|
|
45
67
|
}
|
|
46
68
|
this.bar = null;
|
|
47
69
|
}
|
|
70
|
+
/**
|
|
71
|
+
* Show the loading bar after `debounceMs` of an action being in flight;
|
|
72
|
+
* hide on the next `lvt:updated`. Capture-phase listeners on document
|
|
73
|
+
* catch both events regardless of dispatch target. Safe to call more
|
|
74
|
+
* than once — repeat calls are no-ops.
|
|
75
|
+
*/
|
|
76
|
+
enablePerActionIndicator(debounceMs) {
|
|
77
|
+
// Same value as already enabled → no-op (idempotent).
|
|
78
|
+
// Different value → tear down and re-register cleanly. This
|
|
79
|
+
// matters for callers that re-read the debounce attribute after
|
|
80
|
+
// a config change; without it, the second call would silently
|
|
81
|
+
// discard the new value.
|
|
82
|
+
if (this.pendingHandler) {
|
|
83
|
+
if (this.currentDebounceMs === debounceMs)
|
|
84
|
+
return;
|
|
85
|
+
this.disablePerActionIndicator();
|
|
86
|
+
}
|
|
87
|
+
this.pendingCount = 0;
|
|
88
|
+
this.currentDebounceMs = debounceMs;
|
|
89
|
+
this.pendingHandler = () => {
|
|
90
|
+
this.pendingCount++;
|
|
91
|
+
// Only arm a debounce timer on the 0→1 transition. Subsequent
|
|
92
|
+
// concurrent actions don't reset the timer or re-show the bar —
|
|
93
|
+
// the bar that is or will become visible already represents "at
|
|
94
|
+
// least one action in flight".
|
|
95
|
+
if (this.pendingCount === 1 &&
|
|
96
|
+
this.actionTimer === null &&
|
|
97
|
+
this.bar === null) {
|
|
98
|
+
this.actionTimer = setTimeout(() => {
|
|
99
|
+
this.actionTimer = null;
|
|
100
|
+
// Re-check pendingCount at fire time. In single-threaded JS
|
|
101
|
+
// `updatedHandler` would have called `clearTimeout` before the
|
|
102
|
+
// count could reach zero, so this guard is defensive: it
|
|
103
|
+
// documents the invariant and protects against any future
|
|
104
|
+
// reordering of teardown vs. show.
|
|
105
|
+
if (this.pendingCount > 0)
|
|
106
|
+
this.show();
|
|
107
|
+
}, debounceMs);
|
|
108
|
+
}
|
|
109
|
+
};
|
|
110
|
+
this.updatedHandler = () => {
|
|
111
|
+
// Math.max guards against an `lvt:updated` arriving without a
|
|
112
|
+
// matching `lvt:pending` (e.g. a server push, or an action whose
|
|
113
|
+
// pending event was dispatched before the listener was attached).
|
|
114
|
+
this.pendingCount = Math.max(0, this.pendingCount - 1);
|
|
115
|
+
if (this.pendingCount === 0) {
|
|
116
|
+
if (this.actionTimer !== null) {
|
|
117
|
+
clearTimeout(this.actionTimer);
|
|
118
|
+
this.actionTimer = null;
|
|
119
|
+
}
|
|
120
|
+
this.hide();
|
|
121
|
+
}
|
|
122
|
+
};
|
|
123
|
+
document.addEventListener("lvt:pending", this.pendingHandler, true);
|
|
124
|
+
document.addEventListener("lvt:updated", this.updatedHandler, true);
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Teardown for `enablePerActionIndicator`. Stops the listeners, cancels
|
|
128
|
+
* any pending debounce timer, resets the counter, and hides the bar
|
|
129
|
+
* if it's currently visible. Hiding is part of teardown so a caller
|
|
130
|
+
* that reconfigures (different debounce → disable + re-enable) doesn't
|
|
131
|
+
* leave the prior cycle's bar orphaned waiting for an `lvt:updated`
|
|
132
|
+
* that no listener will receive.
|
|
133
|
+
*
|
|
134
|
+
* Production callers reach this path via two routes: an explicit
|
|
135
|
+
* reconfigure inside `enablePerActionIndicator`, and the LiveTemplate
|
|
136
|
+
* client's `disconnect()` teardown.
|
|
137
|
+
*/
|
|
138
|
+
disablePerActionIndicator() {
|
|
139
|
+
if (this.pendingHandler) {
|
|
140
|
+
document.removeEventListener("lvt:pending", this.pendingHandler, true);
|
|
141
|
+
this.pendingHandler = null;
|
|
142
|
+
}
|
|
143
|
+
if (this.updatedHandler) {
|
|
144
|
+
document.removeEventListener("lvt:updated", this.updatedHandler, true);
|
|
145
|
+
this.updatedHandler = null;
|
|
146
|
+
}
|
|
147
|
+
if (this.actionTimer !== null) {
|
|
148
|
+
clearTimeout(this.actionTimer);
|
|
149
|
+
this.actionTimer = null;
|
|
150
|
+
}
|
|
151
|
+
this.pendingCount = 0;
|
|
152
|
+
this.currentDebounceMs = null;
|
|
153
|
+
this.hide();
|
|
154
|
+
}
|
|
48
155
|
}
|
|
49
156
|
exports.LoadingIndicator = LoadingIndicator;
|
|
50
157
|
//# sourceMappingURL=loading-indicator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loading-indicator.js","sourceRoot":"","sources":["../../dom/loading-indicator.ts"],"names":[],"mappings":";;;AAAA
|
|
1
|
+
{"version":3,"file":"loading-indicator.js","sourceRoot":"","sources":["../../dom/loading-indicator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Scroll-spy directive.
|
|
3
|
+
*
|
|
4
|
+
* Highlights navigation links as the user scrolls past corresponding section
|
|
5
|
+
* targets. Pure client-side state — no server round-trip per scroll tick.
|
|
6
|
+
*
|
|
7
|
+
* <article lvt-spy="h1, h2, h3"> // container mode: descendants
|
|
8
|
+
* <h1 id="intro">Intro</h1> matching the selector are
|
|
9
|
+
* <h2 id="usage">Usage</h2> the spy targets.
|
|
10
|
+
* </article>
|
|
11
|
+
*
|
|
12
|
+
* <h2 id="other" lvt-spy>Other</h2> // element mode: this element
|
|
13
|
+
* IS the target. Empty value.
|
|
14
|
+
*
|
|
15
|
+
* <a href="#intro" lvt-spy-link>Intro</a> // gets the `lvt-active` class
|
|
16
|
+
* <a href="#usage" lvt-spy-link>Usage</a> when its href="#<id>" matches
|
|
17
|
+
* the currently active target.
|
|
18
|
+
*
|
|
19
|
+
* Activation rule: walk targets in document order; the latest one whose top
|
|
20
|
+
* edge has scrolled above a trigger line near the top of the viewport is
|
|
21
|
+
* active. That way the first link stays active until the reader has actually
|
|
22
|
+
* passed the first heading, and the active link advances in step with the
|
|
23
|
+
* reader.
|
|
24
|
+
*
|
|
25
|
+
* Configuration via CSS custom property on the spy container:
|
|
26
|
+
* --lvt-spy-margin: <length> (default: 25vh from the top)
|
|
27
|
+
* The trigger line below the viewport top. A target counts as "passed"
|
|
28
|
+
* once its top edge is at or above this line.
|
|
29
|
+
*
|
|
30
|
+
* Implementation: a rAF-throttled scroll listener on the nearest scrollable
|
|
31
|
+
* ancestor (or window). Mirrors the lifecycle shape of `scroll-away.ts` so
|
|
32
|
+
* the morphdom re-scan story is identical.
|
|
33
|
+
*/
|
|
34
|
+
export declare function setupSpy(scanRoot: Element): void;
|
|
35
|
+
export declare function teardownSpy(wrapper?: Element): void;
|
|
36
|
+
//# sourceMappingURL=spy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spy.d.ts","sourceRoot":"","sources":["../../dom/spy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AA0VH,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAQhD;AAED,wBAAgB,WAAW,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CA0BnD"}
|