lit-ui-router 1.16.0 → 1.16.1

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.
Files changed (37) hide show
  1. package/dist/custom-elements.json +35 -2
  2. package/dist/development/router-subscription.js +57 -0
  3. package/dist/development/router-subscription.js.map +1 -0
  4. package/dist/development/sref-status-controller.js +24 -4
  5. package/dist/development/sref-status-controller.js.map +1 -1
  6. package/dist/development/transition-controller.js +22 -3
  7. package/dist/development/transition-controller.js.map +1 -1
  8. package/dist/development/ui-router.js +5 -10
  9. package/dist/development/ui-router.js.map +1 -1
  10. package/dist/development/ui-view.js +15 -3
  11. package/dist/development/ui-view.js.map +1 -1
  12. package/dist/router-subscription.d.ts +41 -0
  13. package/dist/router-subscription.d.ts.map +1 -0
  14. package/dist/router-subscription.js +57 -0
  15. package/dist/router-subscription.js.map +1 -0
  16. package/dist/sref-status-controller.d.ts +9 -2
  17. package/dist/sref-status-controller.d.ts.map +1 -1
  18. package/dist/sref-status-controller.js +24 -4
  19. package/dist/sref-status-controller.js.map +1 -1
  20. package/dist/transition-controller.d.ts +10 -2
  21. package/dist/transition-controller.d.ts.map +1 -1
  22. package/dist/transition-controller.js +22 -3
  23. package/dist/transition-controller.js.map +1 -1
  24. package/dist/ui-router.d.ts +6 -5
  25. package/dist/ui-router.d.ts.map +1 -1
  26. package/dist/ui-router.js +5 -10
  27. package/dist/ui-router.js.map +1 -1
  28. package/dist/ui-view.d.ts +14 -1
  29. package/dist/ui-view.d.ts.map +1 -1
  30. package/dist/ui-view.js +15 -3
  31. package/dist/ui-view.js.map +1 -1
  32. package/package.json +1 -1
  33. package/src/router-subscription.ts +109 -0
  34. package/src/sref-status-controller.ts +45 -12
  35. package/src/transition-controller.ts +37 -7
  36. package/src/ui-router.ts +18 -24
  37. package/src/ui-view.ts +37 -4
@@ -181,12 +181,20 @@
181
181
  "privacy": "private",
182
182
  "readonly": true
183
183
  },
184
+ {
185
+ "kind": "field",
186
+ "name": "routerSubscribers",
187
+ "privacy": "private",
188
+ "readonly": true,
189
+ "default": "new RouterSubscribers()",
190
+ "description": "Subscribers that took a router this view may still supersede."
191
+ },
184
192
  {
185
193
  "kind": "field",
186
194
  "name": "onContextRequest",
187
195
  "privacy": "private",
188
196
  "readonly": true,
189
- "description": "Answers `context-request` for the router, so a `@lit/context` consumer under this view is served too."
197
+ "description": "Answers `context-request` for the router, so a `@lit/context` consumer\nunder this view is served too.\n\nWhile the router this view holds is a sought one its provider may still\nreplace, a `subscribe` request is kept and called once more with the router\nthis view adopts."
190
198
  },
191
199
  {
192
200
  "kind": "method",
@@ -221,6 +229,22 @@
221
229
  "default": "false",
222
230
  "description": "Set only for the synchronous span of our own re-seek."
223
231
  },
232
+ {
233
+ "kind": "field",
234
+ "name": "providerSubscription",
235
+ "type": {
236
+ "text": "() => void | undefined"
237
+ },
238
+ "privacy": "private",
239
+ "description": "Drops this view's subscription to its provider; set while the provider may still replace its router."
240
+ },
241
+ {
242
+ "kind": "field",
243
+ "name": "onProvidedRouterReplaced",
244
+ "privacy": "private",
245
+ "readonly": true,
246
+ "description": "The provider replaced the router this view sought: adopt it, and pass it on."
247
+ },
224
248
  {
225
249
  "kind": "method",
226
250
  "name": "seekProvidedRouter",
@@ -469,11 +493,20 @@
469
493
  "privacy": "private",
470
494
  "readonly": true
471
495
  },
496
+ {
497
+ "kind": "field",
498
+ "name": "routerSubscribers",
499
+ "privacy": "private",
500
+ "readonly": true,
501
+ "default": "new RouterSubscribers()",
502
+ "description": "Subscribers that took the placeholder, owed the app's router."
503
+ },
472
504
  {
473
505
  "kind": "field",
474
506
  "name": "onContextRequest",
475
507
  "privacy": "private",
476
- "readonly": true
508
+ "readonly": true,
509
+ "description": "Answers a `context-request` for the router context.\n\nWhile the placeholder minted on connect stands, a `subscribe` request is\nkept and called once more with the router that replaces it, and gets an\nunsubscribe that drops it. Any other answer is final: one call and a no-op\nunsubscribe, since a later swap is unsupported and only warns."
477
510
  },
478
511
  {
479
512
  "kind": "field",
@@ -0,0 +1,57 @@
1
+ import { isRouterContextRequest, requestRouter } from "./context.js";
2
+ import { uiRouterContextEventName } from "./events.js";
3
+ export const noUnsubscribe = () => {};
4
+ export class RouterSubscribers {
5
+ constructor() {
6
+ this.pending = new Set();
7
+ }
8
+ answer(event, router, provisional) {
9
+ if (!router || !isRouterContextRequest(event)) return;
10
+ event.stopImmediatePropagation();
11
+ const { callback, subscribe } = event;
12
+ if (!subscribe) return callback(router);
13
+ if (!provisional) return callback(router, noUnsubscribe);
14
+ const deliver = (next) => callback(next, noUnsubscribe);
15
+ this.pending.add(deliver);
16
+ callback(router, () => this.pending.delete(deliver));
17
+ }
18
+ deliver(router) {
19
+ for (const deliver of [...this.pending]) {
20
+ if (!this.pending.delete(deliver)) continue;
21
+ try {
22
+ deliver(router);
23
+ } catch (thrown) {
24
+ queueMicrotask(() => {
25
+ throw thrown;
26
+ });
27
+ }
28
+ }
29
+ }
30
+ }
31
+ export const subscribeRouter = (target, onReplaced) => {
32
+ let seeking = true;
33
+ let unsubscribe;
34
+ const router = requestRouter(target, {
35
+ subscribe: true,
36
+ callback: (value, offered) => {
37
+ unsubscribe = offered === noUnsubscribe ? void 0 : offered;
38
+ if (!seeking) onReplaced(value);
39
+ }
40
+ });
41
+ seeking = false;
42
+ if (router) return {
43
+ router,
44
+ unsubscribe
45
+ };
46
+ const event = new CustomEvent(uiRouterContextEventName, {
47
+ bubbles: true,
48
+ composed: true,
49
+ detail: {}
50
+ });
51
+ target.dispatchEvent(event);
52
+ return {
53
+ router: event.detail.uiRouter,
54
+ unsubscribe: void 0
55
+ };
56
+ };
57
+ //# sourceMappingURL=router-subscription.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"router-subscription.js","mappings":"AACA,SAAS,wBAAwB,qBAAqB;AAEtD,SAAS,gCAAgC;AAIzC,OAAO,MAAM,sBAA4B,CAAC;AAQ1C,OAAO,MAAM,kBAAkB;;iBACF,IAAI,IAAmC;;CAOlE,OACE,OACA,QACA,aACM;EACN,IAAI,CAAC,UAAU,CAAC,uBAAuB,KAAK,GAC1C;EAGF,MAAM,yBAAyB;EAC/B,MAAM,EAAE,UAAU,cAAc;EAChC,IAAI,CAAC,WACH,OAAO,SAAS,MAAM;EAExB,IAAI,CAAC,aACH,OAAO,SAAS,QAAQ,aAAa;EAEvC,MAAM,WAAW,SAAsB,SAAS,MAAM,aAAa;EACnE,KAAK,QAAQ,IAAI,OAAO;EACxB,SAAS,cAAc,KAAK,QAAQ,OAAO,OAAO,CAAC;CACrD;CAGA,QAAQ,QAA2B;EACjC,KAAK,MAAM,WAAW,CAAC,GAAG,KAAK,OAAO,GAAG;GAEvC,IAAI,CAAC,KAAK,QAAQ,OAAO,OAAO,GAC9B;GAEF,IAAI;IACF,QAAQ,MAAM;GAChB,SAAS,QAAQ;IACf,qBAAqB;KACnB,MAAM;IACR,CAAC;GACH;EACF;CACF;AACF;AAsBA,OAAO,MAAM,mBACX,QACA,eACuB;CACvB,IAAI,UAAU;CACd,IAAI;CACJ,MAAM,SAAS,cAAc,QAAQ;EACnC,WAAW;EACX,WAAW,OAAO,YAAY;GAC5B,cAAc,YAAY,gBAAgB,SAAY;GACtD,IAAI,CAAC,SACH,WAAW,KAAK;EAEpB;CACF,CAAC;CACD,UAAU;CACV,IAAI,QACF,OAAO;EAAE;EAAQ;CAAY;CAE/B,MAAM,QAA8B,IAAI,YACtC,0BACA;EAAE,SAAS;EAAM,UAAU;EAAM,QAAQ,CAAC;CAAE,CAC9C;CACA,OAAO,cAAc,KAAK;CAC1B,OAAO;EAAE,QAAQ,MAAM,OAAO;EAAU,aAAa;CAAU;AACjE","names":[],"ignoreList":[],"sources":["../../src/router-subscription.ts"]}
@@ -1,7 +1,7 @@
1
1
  import { nothing } from "lit";
2
2
  import { warnMissingRouter } from "./dev-warn.js";
3
+ import { subscribeRouter } from "./router-subscription.js";
3
4
  import { resolveAriaCurrent, SrefTargets } from "./sref-status.js";
4
- import { UIRouterLitElement } from "./ui-router.js";
5
5
  import { UI_SREF_TARGET_EVENT, UI_SREF_TARGET_REMOVED_EVENT } from "./ui-sref.js";
6
6
  import { UiView } from "./ui-view.js";
7
7
  const sameShape = (a, b) => a === b || !!a && !!b && a.active === b.active && a.exact === b.exact && a.entering === b.entering && a.exiting === b.exiting && a.targetStates.length === b.targetStates.length && a.targetStates.every((target, i) => target === b.targetStates[i]);
@@ -9,8 +9,17 @@ export class SrefStatusController {
9
9
  constructor(host, options = {}) {
10
10
  this.targets = new SrefTargets();
11
11
  this.deregisterFns = [];
12
+ this.routerDeregisterFns = [];
12
13
  this.computed = false;
13
14
  this._connection = 0;
15
+ this.onRouterReplaced = (router) => {
16
+ this.unwatch();
17
+ this.targets.router = router;
18
+ this.targets.relative = UiView.seekParentView(this.host)?.viewContext?.name;
19
+ this.targets.rebuild();
20
+ this.watch(router);
21
+ this.refresh();
22
+ };
14
23
  this.onUiSrefTargetEvent = (event) => {
15
24
  this.targets.onLink(event);
16
25
  this.refresh();
@@ -81,7 +90,11 @@ export class SrefStatusController {
81
90
  }
82
91
  hostConnected() {
83
92
  const { host } = this;
84
- this.targets.router ??= this.options.router ?? UIRouterLitElement.seekRouter(host);
93
+ if (!this.options.router) {
94
+ const { router, unsubscribe } = subscribeRouter(host, this.onRouterReplaced);
95
+ this.targets.router = router;
96
+ if (unsubscribe) this.deregisterFns.push(unsubscribe);
97
+ }
85
98
  this.targets.relative = UiView.seekParentView(host)?.viewContext?.name;
86
99
  this.targets.setExplicit();
87
100
  const scope = host.renderRoot ?? host;
@@ -92,15 +105,22 @@ export class SrefStatusController {
92
105
  scope.removeEventListener(UI_SREF_TARGET_REMOVED_EVENT, this.onUiSrefTargetRemovedEvent);
93
106
  });
94
107
  const router = this.targets.router;
95
- if (router) this.deregisterFns.push(router.transitionService.onStart({}, this.onTransitionStart, { priority: -Infinity }), router.stateRegistry.onStatesChanged(this.onStatesChanged));
108
+ if (router) this.watch(router);
96
109
  else warnMissingRouter(host, `new SrefStatusController() on <${host.localName}>`, "will never be marked active");
97
110
  this.refresh();
98
111
  }
99
112
  hostDisconnected() {
100
- this._connection++;
113
+ this.unwatch();
101
114
  while (this.deregisterFns.length) this.deregisterFns.shift()?.();
102
115
  if (!this.options.router) this.targets.router = void 0;
103
116
  }
117
+ watch(router) {
118
+ this.routerDeregisterFns.push(router.transitionService.onStart({}, this.onTransitionStart, { priority: -Infinity }), router.stateRegistry.onStatesChanged(this.onStatesChanged));
119
+ }
120
+ unwatch() {
121
+ this._connection++;
122
+ while (this.routerDeregisterFns.length) this.routerDeregisterFns.shift()?.();
123
+ }
104
124
  refresh(event) {
105
125
  if (this.compute(event)) this.host.requestUpdate();
106
126
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sref-status-controller.js","mappings":"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","names":[],"ignoreList":[],"sources":["../../src/sref-status-controller.ts"]}
1
+ {"version":3,"file":"sref-status-controller.js","mappings":"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","names":[],"ignoreList":[],"sources":["../../src/sref-status-controller.ts"]}
@@ -1,7 +1,14 @@
1
- import { UIRouterLitElement } from "./ui-router.js";
1
+ import { subscribeRouter } from "./router-subscription.js";
2
2
  export class TransitionController {
3
3
  constructor(host, options = {}) {
4
4
  this.deregisterFns = [];
5
+ this.onRouterReplaced = (router) => {
6
+ this.unsubscribe = void 0;
7
+ this.unwatch();
8
+ this._router = router;
9
+ this._transition = void 0;
10
+ this.watch();
11
+ };
5
12
  this.host = host;
6
13
  this.options = options;
7
14
  this._router = options.router;
@@ -26,7 +33,19 @@ export class TransitionController {
26
33
  return this._router?.stateService.includes(stateOrName, params) ?? false;
27
34
  }
28
35
  hostConnected() {
29
- this._router ??= this.options.router ?? UIRouterLitElement.seekRouter(this.host);
36
+ if (!this.options.router) {
37
+ const { router, unsubscribe } = subscribeRouter(this.host, this.onRouterReplaced);
38
+ this._router = router ?? this._router;
39
+ this.unsubscribe = unsubscribe;
40
+ }
41
+ this.watch();
42
+ }
43
+ hostDisconnected() {
44
+ this.unsubscribe?.();
45
+ this.unsubscribe = void 0;
46
+ this.unwatch();
47
+ }
48
+ watch() {
30
49
  const router = this._router;
31
50
  if (!router) return;
32
51
  const criteria = this.options.criteria ?? {};
@@ -34,7 +53,7 @@ export class TransitionController {
34
53
  for (const event of events) this.deregisterFns.push(router.transitionService[event](criteria, (transition) => this.notify(transition, event)));
35
54
  this.notify(router.globals.successfulTransitions.peekTail(), "hostConnected");
36
55
  }
37
- hostDisconnected() {
56
+ unwatch() {
38
57
  while (this.deregisterFns.length) this.deregisterFns.shift()?.();
39
58
  }
40
59
  notify(transition, reason) {
@@ -1 +1 @@
1
- {"version":3,"file":"transition-controller.js","mappings":"AAYA,SAAS,0BAA0B;AAuInC,OAAO,MAAM,qBAAmD;CAW9D,YACE,MACA,UAAuC,CAAC,GACxC;uBAT+C,CAAC;EAUhD,KAAK,OAAO;EACZ,KAAK,UAAU;EACf,KAAK,UAAU,QAAQ;EACvB,KAAK,cAAc,IAAI;CACzB;CAQA,IAAI,SAA+B;EACjC,OAAO,KAAK;CACd;CAGA,IAAI,UAAuC;EACzC,OAAO,KAAK,SAAS;CACvB;CAGA,IAAI,SAAoB;EACtB,OAAO,KAAK,SAAS,UAAU,CAAC;CAClC;CAGA,IAAI,UAAwC;EAC1C,OAAO,KAAK,SAAS;CACvB;CAMA,IAAI,aAAqC;EACvC,OAAO,KAAK;CACd;CAQA,SAAS,aAA0B,QAA6B;EAC9D,OAAO,KAAK,SAAS,aAAa,SAAS,aAAa,MAAM,KAAK;CACrE;CAGA,gBAAsB;EACpB,KAAK,YACH,KAAK,QAAQ,UAAU,mBAAmB,WAAW,KAAK,IAAI;EAEhE,MAAM,SAAS,KAAK;EACpB,IAAI,CAAC,QACH;EAGF,MAAM,WAAW,KAAK,QAAQ,YAAY,CAAC;EAC3C,MAAM,SAAS,KAAK,QAAQ,UAAU,CAAC,WAAW;EAElD,KAAK,MAAM,SAAS,QAClB,KAAK,cAAc,KACjB,OAAO,kBAAkB,MAAM,CAC7B,WACC,eAAe,KAAK,OAAO,YAAY,KAAK,CAC/C,CACF;EAKF,KAAK,OACH,OAAO,QAAQ,sBAAsB,SAAS,GAC9C,eACF;CACF;CAGA,mBAAyB;EACvB,OAAO,KAAK,cAAc,QACxB,KAAK,cAAc,MAAM,CAAC,GAAG;CAEjC;CAEA,OACE,YACA,QACS;EACT,KAAK,cAAc,cAAc,KAAK;EACtC,MAAM,SAAS,KAAK,QAAQ,WAAW,YAAY,MAAM;EACzD,KAAK,KAAK,cAAc;EACxB,OAAO;CACT;AACF","names":[],"ignoreList":[],"sources":["../../src/transition-controller.ts"]}
1
+ {"version":3,"file":"transition-controller.js","mappings":"AAYA,SAAS,uBAAuB;AAyIhC,OAAO,MAAM,qBAAmD;CAc9D,YACE,MACA,UAAuC,CAAC,GACxC;uBAZ+C,CAAC;2BAoHb,WAA2B;GAC9D,KAAK,cAAc;GACnB,KAAK,QAAQ;GACb,KAAK,UAAU;GACf,KAAK,cAAc;GACnB,KAAK,MAAM;EACb;EA7GE,KAAK,OAAO;EACZ,KAAK,UAAU;EACf,KAAK,UAAU,QAAQ;EACvB,KAAK,cAAc,IAAI;CACzB;CAQA,IAAI,SAA+B;EACjC,OAAO,KAAK;CACd;CAGA,IAAI,UAAuC;EACzC,OAAO,KAAK,SAAS;CACvB;CAGA,IAAI,SAAoB;EACtB,OAAO,KAAK,SAAS,UAAU,CAAC;CAClC;CAGA,IAAI,UAAwC;EAC1C,OAAO,KAAK,SAAS;CACvB;CAMA,IAAI,aAAqC;EACvC,OAAO,KAAK;CACd;CAQA,SAAS,aAA0B,QAA6B;EAC9D,OAAO,KAAK,SAAS,aAAa,SAAS,aAAa,MAAM,KAAK;CACrE;CAGA,gBAAsB;EACpB,IAAI,CAAC,KAAK,QAAQ,QAAQ;GACxB,MAAM,EAAE,QAAQ,gBAAgB,gBAC9B,KAAK,MACL,KAAK,gBACP;GAEA,KAAK,UAAU,UAAU,KAAK;GAC9B,KAAK,cAAc;EACrB;EACA,KAAK,MAAM;CACb;CAGA,mBAAyB;EACvB,KAAK,cAAc;EACnB,KAAK,cAAc;EACnB,KAAK,QAAQ;CACf;CAEA,QAAsB;EACpB,MAAM,SAAS,KAAK;EACpB,IAAI,CAAC,QACH;EAGF,MAAM,WAAW,KAAK,QAAQ,YAAY,CAAC;EAC3C,MAAM,SAAS,KAAK,QAAQ,UAAU,CAAC,WAAW;EAElD,KAAK,MAAM,SAAS,QAClB,KAAK,cAAc,KACjB,OAAO,kBAAkB,MAAM,CAC7B,WACC,eAAe,KAAK,OAAO,YAAY,KAAK,CAC/C,CACF;EAKF,KAAK,OACH,OAAO,QAAQ,sBAAsB,SAAS,GAC9C,eACF;CACF;CAEA,UAAwB;EACtB,OAAO,KAAK,cAAc,QACxB,KAAK,cAAc,MAAM,CAAC,GAAG;CAEjC;CAWA,OACE,YACA,QACS;EACT,KAAK,cAAc,cAAc,KAAK;EACtC,MAAM,SAAS,KAAK,QAAQ,WAAW,YAAY,MAAM;EACzD,KAAK,KAAK,cAAc;EACxB,OAAO;CACT;AACF","names":[],"ignoreList":[],"sources":["../../src/transition-controller.ts"]}
@@ -1,19 +1,20 @@
1
1
  import { html, LitElement } from "lit";
2
2
  import { property } from "lit/decorators.js";
3
- import { contextRequestEventName, isRouterContextRequest, requestRouter } from "./context.js";
3
+ import { contextRequestEventName, requestRouter } from "./context.js";
4
4
  import { UIRouterLit } from "./core.js";
5
5
  import { warnRouterSwapped } from "./dev-warn.js";
6
6
  import { uiRouterContextEventName, uiViewContextEventName } from "./events.js";
7
+ import { RouterSubscribers } from "./router-subscription.js";
7
8
  import _decorate from "@oxc-project/runtime/helpers/decorate";
8
- const noUnsubscribe = () => {};
9
9
  export class UIRouterLitElement extends LitElement {
10
10
  constructor(..._args) {
11
11
  super(..._args);
12
12
  this.onUiRouterContextEvent = (event) => {
13
13
  this.constructor.onUiRouterContextEvent(this.uiRouter)(event);
14
14
  };
15
+ this.routerSubscribers = new RouterSubscribers();
15
16
  this.onContextRequest = (event) => {
16
- this.constructor.onContextRequest(this.uiRouter)(event);
17
+ this.routerSubscribers.answer(event, this.uiRouter, !!this.ownRouter && this.uiRouter === this.ownRouter);
17
18
  };
18
19
  this.onUiViewContextEvent = (event) => {
19
20
  event.stopPropagation();
@@ -44,13 +45,6 @@ export class UIRouterLitElement extends LitElement {
44
45
  event.detail.uiRouter = uiRouter;
45
46
  };
46
47
  }
47
- static onContextRequest(uiRouter) {
48
- return (event) => {
49
- if (!uiRouter || !isRouterContextRequest(event)) return;
50
- event.stopImmediatePropagation();
51
- event.callback(uiRouter, event.subscribe ? noUnsubscribe : void 0);
52
- };
53
- }
54
48
  connectedCallback() {
55
49
  super.connectedCallback();
56
50
  if (!this.uiRouter) {
@@ -65,6 +59,7 @@ export class UIRouterLitElement extends LitElement {
65
59
  willUpdate(changed) {
66
60
  super.willUpdate(changed);
67
61
  if (this.hasUpdated && changed.has("uiRouter") && changed.get("uiRouter") !== this.ownRouter) warnRouterSwapped(this);
62
+ if (this.uiRouter && this.uiRouter !== this.ownRouter) this.routerSubscribers.deliver(this.uiRouter);
68
63
  }
69
64
  render() {
70
65
  return html`<slot></slot>`;
@@ -1 +1 @@
1
- {"version":3,"file":"ui-router.js","mappings":"AAAA,SAAS,MAAM,kBAAkB;AAEjC,SAAS,gBAAgB;AAEzB,SACE,yBACA,wBACA,qBACK;AACP,SAAS,mBAAmB;AAC5B,SAAS,yBAAyB;AAClC,SAAS,0BAA0B,8BAA8B;;AAMjE,MAAM,sBAAsB,CAAC;AA0B7B,OAAO,MAAM,2BAA2B,WAAW;;;iCA6DN,UAAgC;GACzE,KAAK,YAAY,uBAAuB,KAAK,QAAQ,CAAC,CAAC,KAAK;EAC9D;2BAqBqC,UAAiB;GACpD,KAAK,YAAY,iBAAiB,KAAK,QAAQ,CAAC,CAAC,KAAK;EACxD;+BAWyC,UAA8B;GACrE,MAAM,gBAAgB;GACtB,MAAM,OAAO,aAAa;EAC5B;;;kCA3F0C;;;gCAGF;;CAGxC,OAAO,qBAAqB,UAA8C;EACxE,OAAO,IAAI,YAAY,KAAK,0BAA0B;GACpD,SAAS;GACT,UAAU;GACV,QAAQ,EACN,SACF;EACF,CAAC;CACH;CAsBA,OAAO,WAAW,WAA6C;EAC7D,MAAM,uBAAuB,KAAK,qBAAqB;EACvD,UAAU,cAAc,oBAAoB;EAC5C,OAAO,qBAAqB,OAAO,YAAY,cAAc,SAAS;CACxE;CAGA,OAAO,uBACL,UACuC;EACvC,QAAQ,UAAgC;GACtC,MAAM,gBAAgB;GACtB,MAAM,OAAO,WAAW;EAC1B;CACF;CAcA,OAAO,iBAAiB,UAAgD;EACtE,QAAQ,UAAiB;GACvB,IAAI,CAAC,YAAY,CAAC,uBAAuB,KAAK,GAC5C;GAGF,MAAM,yBAAyB;GAC/B,MAAM,SAAS,UAAU,MAAM,YAAY,gBAAgB,MAAS;EACtE;CACF;CAqBA,oBAA0B;EACxB,MAAM,kBAAkB;EACxB,IAAI,CAAC,KAAK,UAAU;GAClB,KAAK,YAAY,IAAI,YAAY;GACjC,KAAK,WAAW,KAAK;EACvB;EAEA,KAAK,iBACH,KAAK,YAAY,0BACjB,KAAK,sBACP;EACA,KAAK,iBAAiB,yBAAyB,KAAK,gBAAgB;EACpE,KAAK,iBACH,KAAK,YAAY,wBACjB,KAAK,oBACP;EAEA,KAAK,cAAc,KAAK,YAAY,qBAAqB,KAAK,QAAQ,CAAC;CACzE;CAMA,WAAqB,SAAqC;EACxD,MAAM,WAAW,OAAO;EAExB,IACE,KAAK,cACL,QAAQ,IAAI,UAAU,KACtB,QAAQ,IAAI,UAAU,MAAM,KAAK,WAEjC,kBAAkB,IAAI;CAE1B;CAGA,SAAyB;EACvB,OAAO,IAAI;CACb;AACF;WA1IG,SAAS,EAAE,WAAW,MAAM,CAAC","names":[],"ignoreList":[],"sources":["../../src/ui-router.ts"]}
1
+ {"version":3,"file":"ui-router.js","mappings":"AAAA,SAAS,MAAM,kBAAkB;AAEjC,SAAS,gBAAgB;AAEzB,SAAS,yBAAyB,qBAAqB;AACvD,SAAS,mBAAmB;AAC5B,SAAS,yBAAyB;AAClC,SAAS,0BAA0B,8BAA8B;AAEjE,SAAS,yBAAyB;;AA4BlC,OAAO,MAAM,2BAA2B,WAAW;;;iCA6DN,UAAgC;GACzE,KAAK,YAAY,uBAAuB,KAAK,QAAQ,CAAC,CAAC,KAAK;EAC9D;2BAGqC,IAAI,kBAAkB;2BAUtB,UAAiB;GACpD,KAAK,kBAAkB,OACrB,OACA,KAAK,UACL,CAAC,CAAC,KAAK,aAAa,KAAK,aAAa,KAAK,SAC7C;EACF;+BAWyC,UAA8B;GACrE,MAAM,gBAAgB;GACtB,MAAM,OAAO,aAAa;EAC5B;;;kCAvF0C;;;gCAGF;;CAGxC,OAAO,qBAAqB,UAA8C;EACxE,OAAO,IAAI,YAAY,KAAK,0BAA0B;GACpD,SAAS;GACT,UAAU;GACV,QAAQ,EACN,SACF;EACF,CAAC;CACH;CAsBA,OAAO,WAAW,WAA6C;EAC7D,MAAM,uBAAuB,KAAK,qBAAqB;EACvD,UAAU,cAAc,oBAAoB;EAC5C,OAAO,qBAAqB,OAAO,YAAY,cAAc,SAAS;CACxE;CAGA,OAAO,uBACL,UACuC;EACvC,QAAQ,UAAgC;GACtC,MAAM,gBAAgB;GACtB,MAAM,OAAO,WAAW;EAC1B;CACF;CAwCA,oBAA0B;EACxB,MAAM,kBAAkB;EACxB,IAAI,CAAC,KAAK,UAAU;GAClB,KAAK,YAAY,IAAI,YAAY;GACjC,KAAK,WAAW,KAAK;EACvB;EAEA,KAAK,iBACH,KAAK,YAAY,0BACjB,KAAK,sBACP;EACA,KAAK,iBAAiB,yBAAyB,KAAK,gBAAgB;EACpE,KAAK,iBACH,KAAK,YAAY,wBACjB,KAAK,oBACP;EAEA,KAAK,cAAc,KAAK,YAAY,qBAAqB,KAAK,QAAQ,CAAC;CACzE;CAMA,WAAqB,SAAqC;EACxD,MAAM,WAAW,OAAO;EAExB,IACE,KAAK,cACL,QAAQ,IAAI,UAAU,KACtB,QAAQ,IAAI,UAAU,MAAM,KAAK,WAEjC,kBAAkB,IAAI;EAGxB,IAAI,KAAK,YAAY,KAAK,aAAa,KAAK,WAC1C,KAAK,kBAAkB,QAAQ,KAAK,QAAQ;CAEhD;CAGA,SAAyB;EACvB,OAAO,IAAI;CACb;AACF;WA1IG,SAAS,EAAE,WAAW,MAAM,CAAC","names":[],"ignoreList":[],"sources":["../../src/ui-router.ts"]}
@@ -6,6 +6,7 @@ import { routedLitElementRenderer } from "./routed-element.js";
6
6
  import { warnMissingRouter } from "./dev-warn.js";
7
7
  import { UIRouterLitElement } from "./ui-router.js";
8
8
  import { contextRequestEventName, isContextRequest, parentUiViewContext } from "./context.js";
9
+ import { RouterSubscribers, subscribeRouter } from "./router-subscription.js";
9
10
  import _decorate from "@oxc-project/runtime/helpers/decorate";
10
11
  let viewIdCounter = 0;
11
12
  const COMMENT_NODE = 8;
@@ -37,11 +38,16 @@ export class UiView extends LitElement {
37
38
  if (this.seekingProvidedRouter) return;
38
39
  UIRouterLitElement.onUiRouterContextEvent(this.uiRouter)(event);
39
40
  };
41
+ this.routerSubscribers = new RouterSubscribers();
40
42
  this.onContextRequest = (event) => {
41
43
  if (this.seekingProvidedRouter) return;
42
- UIRouterLitElement.onContextRequest(this.uiRouter)(event);
44
+ this.routerSubscribers.answer(event, this.uiRouter, !!this.providerSubscription && this.uiRouter === this.soughtRouter);
43
45
  };
44
46
  this.seekingProvidedRouter = false;
47
+ this.onProvidedRouterReplaced = () => {
48
+ this.providerSubscription = void 0;
49
+ this.adoptProvidedRouter();
50
+ };
45
51
  this.captured = false;
46
52
  this.disconnectedHandlers = [];
47
53
  }
@@ -98,16 +104,19 @@ export class UiView extends LitElement {
98
104
  }
99
105
  seekRouter() {
100
106
  if (!this.uiRouter) {
101
- this.soughtRouter = UIRouterLitElement.seekRouter(this);
107
+ this.soughtRouter = this.seekProvidedRouter();
102
108
  this.uiRouter = this.soughtRouter;
103
109
  }
104
110
  this.addEventListener(UIRouterLitElement.uiRouterContextEventName, this.onUiRouterContextEvent);
105
111
  this.addEventListener(contextRequestEventName, this.onContextRequest);
106
112
  }
107
113
  seekProvidedRouter() {
114
+ this.providerSubscription?.();
108
115
  this.seekingProvidedRouter = true;
109
116
  try {
110
- return UIRouterLitElement.seekRouter(this);
117
+ const { router, unsubscribe } = subscribeRouter(this, this.onProvidedRouterReplaced);
118
+ this.providerSubscription = unsubscribe;
119
+ return router;
111
120
  } finally {
112
121
  this.seekingProvidedRouter = false;
113
122
  }
@@ -121,6 +130,7 @@ export class UiView extends LitElement {
121
130
  this.deregisterAll();
122
131
  this.uiRouter = router;
123
132
  this.setupUiView();
133
+ this.routerSubscribers.deliver(router);
124
134
  }
125
135
  deregisterAll() {
126
136
  while (this.disconnectedHandlers.length) this.disconnectedHandlers.shift()?.();
@@ -189,6 +199,8 @@ export class UiView extends LitElement {
189
199
  super.disconnectedCallback();
190
200
  this.removeEventListener(this.constructor.uiViewContextEventName, this.onUiViewContextEvent);
191
201
  this.removeEventListener(contextRequestEventName, this.onParentViewContextRequest);
202
+ this.providerSubscription?.();
203
+ this.providerSubscription = void 0;
192
204
  this.deregisterAll();
193
205
  }
194
206
  _invokeUiCanExitHook(trans) {
@@ -1 +1 @@
1
- {"version":3,"file":"ui-view.js","mappings":"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","names":[],"ignoreList":[],"sources":["../../src/ui-view.ts"]}
1
+ {"version":3,"file":"ui-view.js","mappings":"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","names":[],"ignoreList":[],"sources":["../../src/ui-view.ts"]}
@@ -0,0 +1,41 @@
1
+ import type { UIRouterLit } from "./core.js";
2
+ /** The unsubscribe a provider hands out when its router is final: it will not call again. */
3
+ export declare const noUnsubscribe: () => void;
4
+ /**
5
+ * The `subscribe: true` requests a provider answered while its router was
6
+ * provisional, each owed the router that replaces it.
7
+ *
8
+ * @internal
9
+ */
10
+ export declare class RouterSubscribers {
11
+ private readonly pending;
12
+ /**
13
+ * Answers a router `context-request`. A subscriber is kept, with an
14
+ * unsubscribe that drops it, only while `provisional`; otherwise it gets
15
+ * {@link noUnsubscribe}.
16
+ */
17
+ answer(event: Event, router: UIRouterLit | undefined, provisional: boolean): void;
18
+ /** Hands every kept subscriber `router`, once, and forgets them. */
19
+ deliver(router: UIRouterLit): void;
20
+ }
21
+ /**
22
+ * What {@link subscribeRouter} found: the router, and the unsubscribe to call
23
+ * on disconnect, absent when the provider's router is final.
24
+ *
25
+ * @internal
26
+ */
27
+ export interface RouterSubscription {
28
+ router: UIRouterLit | undefined;
29
+ unsubscribe: (() => void) | undefined;
30
+ }
31
+ /**
32
+ * Seeks the router from `target` and subscribes to its replacement, which
33
+ * reaches `onReplaced`.
34
+ *
35
+ * Asks over `context-request` with `subscribe: true`, falling back to the house
36
+ * `ui-router-context` event, which cannot subscribe, when nobody answered.
37
+ *
38
+ * @internal
39
+ */
40
+ export declare const subscribeRouter: (target: Element, onReplaced: (router: UIRouterLit) => void) => RouterSubscription;
41
+ //# sourceMappingURL=router-subscription.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"router-subscription.d.ts","mappings":"AAEA,cAAc,mBAAmB;;AAKjC,OAAO,cAAM;;;;;;;AAQb,OAAO,cAAM,kBAAkB;CAC7B,iBAAiB;;;;;;CAOjB,OACE,OAAO,OACP,QAAQ,yBACR;;CAoBF,QAAQ,QAAQ;AAelB;;;;;;;AAQA,iBAAiB,mBAAmB;CAClC,QAAQ;CACR;AACF;;;;;;;;;;AAWA,OAAO,cAAM,kBACX,QAAQ,SACR,aAAa,QAAQ,yBACpB","names":[],"ignoreList":[],"sources":["../src/router-subscription.ts"]}
@@ -0,0 +1,57 @@
1
+ import { isRouterContextRequest, requestRouter } from "./context.js";
2
+ import { uiRouterContextEventName } from "./events.js";
3
+ export const noUnsubscribe = () => {};
4
+ export class RouterSubscribers {
5
+ constructor() {
6
+ this.pending = new Set();
7
+ }
8
+ answer(event, router, provisional) {
9
+ if (!router || !isRouterContextRequest(event)) return;
10
+ event.stopImmediatePropagation();
11
+ const { callback, subscribe } = event;
12
+ if (!subscribe) return callback(router);
13
+ if (!provisional) return callback(router, noUnsubscribe);
14
+ const deliver = (next) => callback(next, noUnsubscribe);
15
+ this.pending.add(deliver);
16
+ callback(router, () => this.pending.delete(deliver));
17
+ }
18
+ deliver(router) {
19
+ for (const deliver of [...this.pending]) {
20
+ if (!this.pending.delete(deliver)) continue;
21
+ try {
22
+ deliver(router);
23
+ } catch (thrown) {
24
+ queueMicrotask(() => {
25
+ throw thrown;
26
+ });
27
+ }
28
+ }
29
+ }
30
+ }
31
+ export const subscribeRouter = (target, onReplaced) => {
32
+ let seeking = true;
33
+ let unsubscribe;
34
+ const router = requestRouter(target, {
35
+ subscribe: true,
36
+ callback: (value, offered) => {
37
+ unsubscribe = offered === noUnsubscribe ? void 0 : offered;
38
+ if (!seeking) onReplaced(value);
39
+ }
40
+ });
41
+ seeking = false;
42
+ if (router) return {
43
+ router,
44
+ unsubscribe
45
+ };
46
+ const event = new CustomEvent(uiRouterContextEventName, {
47
+ bubbles: true,
48
+ composed: true,
49
+ detail: {}
50
+ });
51
+ target.dispatchEvent(event);
52
+ return {
53
+ router: event.detail.uiRouter,
54
+ unsubscribe: void 0
55
+ };
56
+ };
57
+ //# sourceMappingURL=router-subscription.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"router-subscription.js","mappings":"AACA,SAAS,wBAAwB,qBAAqB;AAEtD,SAAS,gCAAgC;AAIzC,OAAO,MAAM,sBAA4B,CAAC;AAQ1C,OAAO,MAAM,kBAAkB;;iBACF,IAAI,IAAmC;;CAOlE,OACE,OACA,QACA,aACM;EACN,IAAI,CAAC,UAAU,CAAC,uBAAuB,KAAK,GAC1C;EAGF,MAAM,yBAAyB;EAC/B,MAAM,EAAE,UAAU,cAAc;EAChC,IAAI,CAAC,WACH,OAAO,SAAS,MAAM;EAExB,IAAI,CAAC,aACH,OAAO,SAAS,QAAQ,aAAa;EAEvC,MAAM,WAAW,SAAsB,SAAS,MAAM,aAAa;EACnE,KAAK,QAAQ,IAAI,OAAO;EACxB,SAAS,cAAc,KAAK,QAAQ,OAAO,OAAO,CAAC;CACrD;CAGA,QAAQ,QAA2B;EACjC,KAAK,MAAM,WAAW,CAAC,GAAG,KAAK,OAAO,GAAG;GAEvC,IAAI,CAAC,KAAK,QAAQ,OAAO,OAAO,GAC9B;GAEF,IAAI;IACF,QAAQ,MAAM;GAChB,SAAS,QAAQ;IACf,qBAAqB;KACnB,MAAM;IACR,CAAC;GACH;EACF;CACF;AACF;AAsBA,OAAO,MAAM,mBACX,QACA,eACuB;CACvB,IAAI,UAAU;CACd,IAAI;CACJ,MAAM,SAAS,cAAc,QAAQ;EACnC,WAAW;EACX,WAAW,OAAO,YAAY;GAC5B,cAAc,YAAY,gBAAgB,SAAY;GACtD,IAAI,CAAC,SACH,WAAW,KAAK;EAEpB;CACF,CAAC;CACD,UAAU;CACV,IAAI,QACF,OAAO;EAAE;EAAQ;CAAY;CAE/B,MAAM,QAA8B,IAAI,YACtC,0BACA;EAAE,SAAS;EAAM,UAAU;EAAM,QAAQ,CAAC;CAAE,CAC9C;CACA,OAAO,cAAc,KAAK;CAC1B,OAAO;EAAE,QAAQ,MAAM,OAAO;EAAU,aAAa;CAAU;AACjE","names":[],"ignoreList":[],"sources":["../src/router-subscription.ts"]}
@@ -13,8 +13,9 @@ export interface SrefStatusControllerOptions extends SrefTargetParams {
13
13
  * The {@link UIRouter} instance to observe.
14
14
  *
15
15
  * When omitted, the controller discovers the router from an ancestor
16
- * <code>&lt;ui-router&gt;</code> (or <code>&lt;ui-view&gt;</code>) via the
17
- * `ui-router-context` event when the host connects.
16
+ * <code>&lt;ui-router&gt;</code> (or <code>&lt;ui-view&gt;</code>) when the
17
+ * host connects, and follows the placeholder router a
18
+ * <code>&lt;ui-router&gt;</code> mints for itself to the one that replaces it.
18
19
  *
19
20
  * Passing it explicitly also moves the first status computation into the
20
21
  * constructor, so the status is there for the very first render and needs
@@ -104,6 +105,8 @@ export declare class SrefStatusController implements ReactiveController {
104
105
  private options;
105
106
  private readonly targets;
106
107
  private readonly deregisterFns;
108
+ /** the hooks on the router itself, which a replacement router moves */
109
+ private readonly routerDeregisterFns;
107
110
  private _status;
108
111
  /** whether a status has ever been computed, so the first one always renders */
109
112
  private computed;
@@ -152,6 +155,10 @@ export declare class SrefStatusController implements ReactiveController {
152
155
  hostConnected(): void;
153
156
  /** @internal */
154
157
  hostDisconnected(): void;
158
+ private watch;
159
+ private unwatch;
160
+ /** What a disconnect and reconnect would do, for the router that replaced the one found. */
161
+ private readonly onRouterReplaced;
155
162
  /**
156
163
  * Recomputes the status and re-renders the host, but only if a flag or a
157
164
  * watched target moved.
@@ -1 +1 @@
1
- {"version":3,"file":"sref-status-controller.d.ts","mappings":"AAAA,SAAS,aAAyB,gBAAgB;AAClD,SAAS,SAAS,oBAAoB,8BAA8B;AAGpE,cAAc,wBAAwB;AAQtC,SACE,kBACA,mBACA,YACA,gBACK;;;;;;;AAYP,iBAAiB,oCAAoC,iBAAiB;;;;;;;;;;;;;CAapE,SAAS;AACX;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiGA,OAAO,cAAM,gCAAgC,mBAAmB;CAC9D,iBAAiB;CAEjB,QAAQ;CAER,iBAAiB;CAEjB,iBAAiB;CAEjB,QAAQ;;CAGR,QAAQ;;CAGR,QAAQ;CAER,YACE,MAAM,yBAAyB,SAC/B,UAAS;;;;;;;;CAsBX,IAAI,UAAU;;;;;CAQd,IAAI,UAAU;;CAKd,IAAI;;CAKJ,IAAI;;CAKJ,IAAI;;CAKJ,IAAI;;CAKJ,IAAI,gBAAgB;;;;;;CASpB,SAAS,QAAQ;;;;;;;;;CAejB,YACE,QAAQ,mBAAmB,oBAC1B,0BAA0B;;CAK7B;;CAkDA;;;;;;;CAiBA,QAAQ,QAAQ;;CAOhB,QAAQ;CAQR,iBAAiB;CAKjB,iBAAiB;CAMjB,iBAAiB;CAKjB,iBAAiB;AAcnB","names":[],"ignoreList":[],"sources":["../src/sref-status-controller.ts"]}
1
+ {"version":3,"file":"sref-status-controller.d.ts","mappings":"AAAA,SAAS,aAAyB,gBAAgB;AAClD,SAAS,SAAS,oBAAoB,8BAA8B;AAIpE,cAAc,wBAAwB;AAOtC,SACE,kBACA,mBACA,YACA,gBACK;;;;;;;AAYP,iBAAiB,oCAAoC,iBAAiB;;;;;;;;;;;;;;CAcpE,SAAS;AACX;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiGA,OAAO,cAAM,gCAAgC,mBAAmB;CAC9D,iBAAiB;CAEjB,QAAQ;CAER,iBAAiB;CAEjB,iBAAiB;;CAGjB,iBAAiB;CAEjB,QAAQ;;CAGR,QAAQ;;CAGR,QAAQ;CAER,YACE,MAAM,yBAAyB,SAC/B,UAAS;;;;;;;;CAsBX,IAAI,UAAU;;;;;CAQd,IAAI,UAAU;;CAKd,IAAI;;CAKJ,IAAI;;CAKJ,IAAI;;CAKJ,IAAI;;CAKJ,IAAI,gBAAgB;;;;;;CASpB,SAAS,QAAQ;;;;;;;;;CAejB,YACE,QAAQ,mBAAmB,oBAC1B,0BAA0B;;CAK7B;;CAqDA;CAWA,QAAQ;CASR,QAAQ;;CAQR,iBAAiB;;;;;;;CAejB,QAAQ,QAAQ;;CAOhB,QAAQ;CAQR,iBAAiB;CAKjB,iBAAiB;CAMjB,iBAAiB;CAKjB,iBAAiB;AAcnB","names":[],"ignoreList":[],"sources":["../src/sref-status-controller.ts"]}
@@ -1,7 +1,7 @@
1
1
  import { nothing } from "lit";
2
2
  import { warnMissingRouter } from "./dev-warn.js";
3
+ import { subscribeRouter } from "./router-subscription.js";
3
4
  import { resolveAriaCurrent, SrefTargets } from "./sref-status.js";
4
- import { UIRouterLitElement } from "./ui-router.js";
5
5
  import { UI_SREF_TARGET_EVENT, UI_SREF_TARGET_REMOVED_EVENT } from "./ui-sref.js";
6
6
  import { UiView } from "./ui-view.js";
7
7
  const sameShape = (a, b) => a === b || !!a && !!b && a.active === b.active && a.exact === b.exact && a.entering === b.entering && a.exiting === b.exiting && a.targetStates.length === b.targetStates.length && a.targetStates.every((target, i) => target === b.targetStates[i]);
@@ -9,8 +9,17 @@ export class SrefStatusController {
9
9
  constructor(host, options = {}) {
10
10
  this.targets = new SrefTargets();
11
11
  this.deregisterFns = [];
12
+ this.routerDeregisterFns = [];
12
13
  this.computed = false;
13
14
  this._connection = 0;
15
+ this.onRouterReplaced = (router) => {
16
+ this.unwatch();
17
+ this.targets.router = router;
18
+ this.targets.relative = UiView.seekParentView(this.host)?.viewContext?.name;
19
+ this.targets.rebuild();
20
+ this.watch(router);
21
+ this.refresh();
22
+ };
14
23
  this.onUiSrefTargetEvent = (event) => {
15
24
  this.targets.onLink(event);
16
25
  this.refresh();
@@ -81,7 +90,11 @@ export class SrefStatusController {
81
90
  }
82
91
  hostConnected() {
83
92
  const { host } = this;
84
- this.targets.router ??= this.options.router ?? UIRouterLitElement.seekRouter(host);
93
+ if (!this.options.router) {
94
+ const { router, unsubscribe } = subscribeRouter(host, this.onRouterReplaced);
95
+ this.targets.router = router;
96
+ if (unsubscribe) this.deregisterFns.push(unsubscribe);
97
+ }
85
98
  this.targets.relative = UiView.seekParentView(host)?.viewContext?.name;
86
99
  this.targets.setExplicit();
87
100
  const scope = host.renderRoot ?? host;
@@ -92,15 +105,22 @@ export class SrefStatusController {
92
105
  scope.removeEventListener(UI_SREF_TARGET_REMOVED_EVENT, this.onUiSrefTargetRemovedEvent);
93
106
  });
94
107
  const router = this.targets.router;
95
- if (router) this.deregisterFns.push(router.transitionService.onStart({}, this.onTransitionStart, { priority: -Infinity }), router.stateRegistry.onStatesChanged(this.onStatesChanged));
108
+ if (router) this.watch(router);
96
109
  else warnMissingRouter(host, `new SrefStatusController() on <${host.localName}>`, "will never be marked active");
97
110
  this.refresh();
98
111
  }
99
112
  hostDisconnected() {
100
- this._connection++;
113
+ this.unwatch();
101
114
  while (this.deregisterFns.length) this.deregisterFns.shift()?.();
102
115
  if (!this.options.router) this.targets.router = void 0;
103
116
  }
117
+ watch(router) {
118
+ this.routerDeregisterFns.push(router.transitionService.onStart({}, this.onTransitionStart, { priority: -Infinity }), router.stateRegistry.onStatesChanged(this.onStatesChanged));
119
+ }
120
+ unwatch() {
121
+ this._connection++;
122
+ while (this.routerDeregisterFns.length) this.routerDeregisterFns.shift()?.();
123
+ }
104
124
  refresh(event) {
105
125
  if (this.compute(event)) this.host.requestUpdate();
106
126
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sref-status-controller.js","mappings":"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","names":[],"ignoreList":[],"sources":["../src/sref-status-controller.ts"]}
1
+ {"version":3,"file":"sref-status-controller.js","mappings":"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","names":[],"ignoreList":[],"sources":["../src/sref-status-controller.ts"]}