lit-ui-router 1.12.0 → 1.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.
@@ -10,6 +10,12 @@
10
10
  "kind": "class",
11
11
  "description": "",
12
12
  "name": "UiView",
13
+ "slots": [
14
+ {
15
+ "description": "<code>&lt;ui-view&gt;</code> renders slotted content as fallback whenever no routed component is active.",
16
+ "name": ""
17
+ }
18
+ ],
13
19
  "members": [
14
20
  {
15
21
  "kind": "field",
@@ -49,8 +55,11 @@
49
55
  {
50
56
  "kind": "field",
51
57
  "name": "inner",
58
+ "type": {
59
+ "text": "DocumentFragment | undefined"
60
+ },
52
61
  "privacy": "private",
53
- "readonly": true
62
+ "description": "Created on connect: the"
54
63
  },
55
64
  {
56
65
  "kind": "field",
@@ -153,6 +162,67 @@
153
162
  "name": "seekRouter",
154
163
  "privacy": "private"
155
164
  },
165
+ {
166
+ "kind": "field",
167
+ "name": "routerFromProvider",
168
+ "type": {
169
+ "text": "boolean"
170
+ },
171
+ "privacy": "private",
172
+ "default": "false",
173
+ "description": "Whether `uiRouter` came from the context event rather than the app."
174
+ },
175
+ {
176
+ "kind": "field",
177
+ "name": "registeredRouter",
178
+ "type": {
179
+ "text": "UIRouterLit | undefined"
180
+ },
181
+ "privacy": "private",
182
+ "description": "The router this view registered with; a late upgrade can supersede it."
183
+ },
184
+ {
185
+ "kind": "field",
186
+ "name": "seekingProvidedRouter",
187
+ "type": {
188
+ "text": "boolean"
189
+ },
190
+ "privacy": "private",
191
+ "default": "false",
192
+ "description": "Set only for the synchronous span of our own re-seek."
193
+ },
194
+ {
195
+ "kind": "method",
196
+ "name": "seekProvidedRouter",
197
+ "privacy": "private",
198
+ "return": {
199
+ "type": {
200
+ "text": "UIRouterLit | undefined"
201
+ }
202
+ },
203
+ "description": "Seeks the provider's router, past our own answer.\n\n`<ui-view>` answers this event for descendants and stops it, deliberately —\nsee `listener-identity.spec.ts`. Suppressing that for the span of our own\ndispatch keeps the guarantee intact for everyone else."
204
+ },
205
+ {
206
+ "kind": "method",
207
+ "name": "adoptProvidedRouter",
208
+ "privacy": "private",
209
+ "return": {
210
+ "type": {
211
+ "text": "void"
212
+ }
213
+ },
214
+ "description": "Adopts the router the provider now offers, when this view registered\nwithout it.\n\nlit replays a pre-upgrade property inside the element's first update, not\nat upgrade, so `<ui-router>` can run `connectedCallback` with `uiRouter`\nstill undefined and provide an instance of its own; a `<ui-view>`\nconnecting in between registers with that one and never sees a transition.\nFirefox upgrades a detached subtree later than Chrome and WebKit, so\ndeclarative shadow DOM parsed off-document reaches this there first.\n\n`registerUIView` syncs, so the re-registered view picks up the current\nstate without waiting for the next transition."
215
+ },
216
+ {
217
+ "kind": "method",
218
+ "name": "deregisterAll",
219
+ "privacy": "private",
220
+ "return": {
221
+ "type": {
222
+ "text": "void"
223
+ }
224
+ }
225
+ },
156
226
  {
157
227
  "kind": "method",
158
228
  "name": "captureContent",
@@ -236,6 +306,10 @@
236
306
  "tagName": "ui-view",
237
307
  "customElement": true
238
308
  },
309
+ {
310
+ "kind": "variable",
311
+ "name": "router"
312
+ },
239
313
  {
240
314
  "kind": "variable",
241
315
  "name": "resolves"
@@ -59,6 +59,10 @@ export class UiSrefActiveDirective extends AsyncDirective {
59
59
  this.options = {};
60
60
  this.targetStates = new Set();
61
61
  this.uiSrefs = new WeakMap();
62
+ this._linkTargets = new WeakMap();
63
+ this._partElement = null;
64
+ this._lastTargetStates = void 0;
65
+ this._connection = 0;
62
66
  this.doRender = () => {
63
67
  return this.render({
64
68
  activeClasses: this.activeClasses,
@@ -69,8 +73,15 @@ export class UiSrefActiveDirective extends AsyncDirective {
69
73
  this._firstUpdated = false;
70
74
  this.onUiSrefTargetEvent = (event) => {
71
75
  const { targetState } = event.detail;
76
+ const previous = this._linkTargets.get(event.target);
77
+ if (previous) {
78
+ this.targetStates.delete(previous);
79
+ this.uiSrefs.delete(previous);
80
+ }
72
81
  this.targetStates.add(targetState);
73
82
  this.uiSrefs.set(targetState, event.target);
83
+ this._linkTargets.set(event.target, targetState);
84
+ if (this._firstUpdated) this.onStatesChanged();
74
85
  };
75
86
  this.onTransitionStateChange = (e) => {
76
87
  const event = e;
@@ -84,12 +95,13 @@ export class UiSrefActiveDirective extends AsyncDirective {
84
95
  this.doRender();
85
96
  };
86
97
  this.onTransitionStart = (trans) => {
87
- this.element.dispatchEvent(this.createTransitionStateChangeEvent(TransitionStateChange.start, trans));
88
- trans.promise.then(() => {
89
- this.element.dispatchEvent(this.createTransitionStateChangeEvent(TransitionStateChange.success, trans));
90
- }, () => {
91
- this.element.dispatchEvent(this.createTransitionStateChangeEvent(TransitionStateChange.error, trans));
92
- });
98
+ const connection = this._connection;
99
+ const dispatch = (evt) => {
100
+ if (connection !== this._connection) return;
101
+ this.element?.dispatchEvent(this.createTransitionStateChangeEvent(evt, trans));
102
+ };
103
+ dispatch(TransitionStateChange.start);
104
+ trans.promise.then(() => dispatch(TransitionStateChange.success), () => dispatch(TransitionStateChange.error));
93
105
  };
94
106
  this.onStatesChanged = () => {
95
107
  const { active, exact } = this.getStatus() || {};
@@ -164,6 +176,8 @@ export class UiSrefActiveDirective extends AsyncDirective {
164
176
  this.params = params;
165
177
  this.options = options;
166
178
  const { element } = part;
179
+ this._partElement = element;
180
+ this._lastTargetStates = targetStates && Array.from(targetStates);
167
181
  if (this.element !== element) {
168
182
  this.element = element;
169
183
  this._firstUpdated = false;
@@ -200,12 +214,25 @@ export class UiSrefActiveDirective extends AsyncDirective {
200
214
  this._firstUpdated = true;
201
215
  }
202
216
  disconnected() {
217
+ this._firstUpdated = false;
218
+ this._connection++;
203
219
  if (!this.element) return;
204
220
  this.element.removeEventListener(UI_SREF_TARGET_EVENT, this.onUiSrefTargetEvent);
205
221
  this.element.removeEventListener(TRANSITION_STATE_CHANGE_EVENT, this.onTransitionStateChange);
206
222
  this.element = null;
207
223
  this._deregisterOnStart?.();
224
+ this._deregisterOnStart = void 0;
208
225
  this._deregisterOnStatesChanged?.();
226
+ this._deregisterOnStatesChanged = void 0;
227
+ }
228
+ reconnected() {
229
+ this.element = this._partElement;
230
+ if (!this.element) return;
231
+ const retained = !this._lastTargetStates && !this.state ? [...this.targetStates] : [];
232
+ this.firstUpdated({ targetStates: this._lastTargetStates });
233
+ retained.forEach((targetState) => this.targetStates.add(targetState));
234
+ const inFlight = this.uiRouter?.globals.transition;
235
+ if (inFlight) this.onTransitionStart(inFlight);
209
236
  }
210
237
  createTransitionStateChangeEvent(evt, trans) {
211
238
  const detail = {
@@ -1 +1 @@
1
- {"version":3,"file":"ui-sref-active.js","mappings":"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","names":[],"ignoreList":[],"sources":["../../src/ui-sref-active.ts"]}
1
+ {"version":3,"file":"ui-sref-active.js","mappings":"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","names":[],"ignoreList":[],"sources":["../../src/ui-sref-active.ts"]}
@@ -16,7 +16,7 @@ export function uiSrefTargetEvent(targetState) {
16
16
  }
17
17
  const paramsEqual = equals;
18
18
  function sameTarget(a, b) {
19
- return !!a && a.name() === b.name() && paramsEqual(a.params(), b.params());
19
+ return !!a && a.$state() === b.$state() && paramsEqual(a.params(), b.params());
20
20
  }
21
21
  const warnedAssignHref = new WeakSet();
22
22
  export function isNativeLink(element) {
@@ -45,6 +45,7 @@ export class UiSrefDirective extends AsyncDirective {
45
45
  this.targetState = null;
46
46
  this._ownsHref = false;
47
47
  this._seekedRouter = false;
48
+ this._partElement = null;
48
49
  this.onClick = (event) => {
49
50
  const { uiRouter: router, state, params } = this;
50
51
  const options = this.getOptions();
@@ -131,6 +132,12 @@ export class UiSrefDirective extends AsyncDirective {
131
132
  this.href = null;
132
133
  this._ownsHref = false;
133
134
  this.unsubscribe?.();
135
+ this.unsubscribe = void 0;
136
+ this._firstUpdated = false;
137
+ }
138
+ reconnected() {
139
+ this.element = this._partElement;
140
+ if (this.element) this.firstUpdated();
134
141
  }
135
142
  update(part, [state, params = {}, options = {}]) {
136
143
  const { assignHref, ...transitionOptions } = options;
@@ -139,6 +146,7 @@ export class UiSrefDirective extends AsyncDirective {
139
146
  this.options = transitionOptions;
140
147
  this.uiSrefOptions = { assignHref };
141
148
  const uiSrefElement = part.element;
149
+ this._partElement = uiSrefElement;
142
150
  if (this.element !== uiSrefElement) {
143
151
  this.element = uiSrefElement;
144
152
  this._firstUpdated = false;
@@ -1 +1 @@
1
- {"version":3,"file":"ui-sref.js","mappings":"AAAA,SACE,QACA,QAGA,gBAEK;AACP,SAAS,gBAA6B;AACtC,SAAS,WAAqB,gBAAgB;AAE9C,SAAS,sBAAsB;AAG/B,SAAS,cAAc,yBAAyB;AAChD,SAAS,0BAA0B;AACnC,SAAS,cAAc;AAGvB,SAAS;AAMT,OAAO,MAAM,uBAAuB;AA8BpC,OAAO,SAAS,kBAAkB,aAA6C;CAC7E,OAAO,IAAI,YAAY,sBAAsB;EAC3C,SAAS;EACT,UAAU;EACV,QAAQ,EAAE,YAAY;CACxB,CAAC;AACH;AAQA,MAAM,cAAc;AAOpB,SAAS,WAAW,GAAuB,GAAyB;CAClE,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,MAAM,EAAE,KAAK,KAAK,YAAY,EAAE,OAAO,GAAG,EAAE,OAAO,CAAC;AAC3E;AAuCA,MAAM,mBAAmB,IAAI,QAAiB;AAe9C,OAAO,SAAS,aAAa,SAA2B;CACtD,MAAM,MAAM,QAAQ;CACpB,OAAO,QAAQ,OAAO,QAAQ;AAChC;AAOA,SAAS,gBAAgB,OAA4B;CACnD,MAAM,EAAE,QAAQ,SAAS,SAAS,UAAU,WAAW;CACvD,OACE,CAAC,SAAS,MAAM,KAAK,CAAC,CAAC,UAAU,WAAW,WAAW,YAAY;AAEvE;AAOA,SAAS,YAAY,SAA2B;CAC9C,MAAM,SAAS,QAAQ,aAAa,QAAQ;CAI5C,IAAI,UAAU,OAAO,YAAY,MAAM,SACrC,OAAO;CAGT,QAAQ,QAAQ,aAAa,KAAK,KAAK,GAAE,CAAE,MAAM,KAAK,CAAC,CAAC,SAAS,UAAU;AAC7E;AAeA,OAAO,MAAM,wBAAwB,eAAe;CAiClD,YAAY,UAAoB;EAC9B,MAAM,QAAQ;eAjCO;gBACH,CAAC;iBACQ,CAAC;iBAEE;oBAGJ;uBAGG,CAAC;cAEV;qBACY;mBAGd;uBAUI;kBA6Ib,UAA4B;GACrC,MAAM,EAAE,UAAU,QAAQ,OAAO,WAAW;GAC5C,MAAM,UAAU,KAAK,WAAW;GAChC,MAAM,SAAS,QAAQ;GACvB,IAAI,CAAC,UAAU,CAAC,KAAK,SAAS,eAAe,CAAC,OAAO;IACnD,IAAI,CAAC,UAAU,SAAS,KAAK,SAAS,aACpC,KAAK,kBAAkB,KAAK;IAE9B;GACF;GAEA,MAAM,UAAU,MAAM;GAGtB,IAAI,MAAM,oBAAoB,QAAQ,aAAa,UAAU,GAC3D;GAKF,IACE,aAAa,OAAO,KACpB,QAAQ,aAAa,MAAM,MAC1B,gBAAgB,KAAK,KAAK,YAAY,OAAO,IAE9C;GAIF,OAAY,GAAG,OAAO,QAAQ,OAAO;GACrC,MAAM,eAAe;EACvB;wBA4BkC;GAChC,OAAO,KAAK,OAAO,KAAK,OAAQ,KAAK,QAAQ,KAAK,OAAO;EAC3D;uBAEwB;EApMtB,IAAI,SAAS,SAAS,SAAS,SAC7B,MAAM,IAAI,MAAM,mDAAmD;CAEvE;CAEA,WAAW,OAA0B,KAAK,SAA4B;EACpE,MAAM,cAAiC;GACrC,UAAU,KAAK,YAAY,aAAa;GACxC,SAAS;GACT,QAAQ;EACV;EACA,OAAO,OAAO,aAAa,QAAQ,CAAC,CAAC;CACvC;CAEA,OACE,OACA,QACA,SACiB;EACjB,IAAI,CAAC,KAAK,SACR,OAAO;EAGT,MAAM,EAAE,UAAU,WAAW;EAC7B,MAAM,SAAS,QAAQ;EACvB,IAAI,CAAC,QAAQ;GACX,IAAI,KAAK,eACP,KAAK,kBAAkB,KAAK;GAE9B,OAAO;EACT;EAEA,MAAM,cAAc,OAAO,OAAO,OAAO,QAAQ,KAAK,WAAW,OAAO,CAAC;EACzE,MAAM,gBAAgB,CAAC,WAAW,KAAK,aAAa,WAAW;EAC/D,KAAK,QAAQ,cAAc,KAAK,cAAc;EAG9C,KAAK,OAAO,OAAO,KAAK,OAAO,QAAQ,KAAK,WAAW,OAAO,CAAC;EAE/D,IAAI,KAAK,iBAAiB,GACxB;OAAI,KAAK,SAAS,KAAK,QAAQ,aAAa,MAAM,GAAG;IACnD,IAAI,KAAK,MAAM;KACb,KAAK,QAAQ,aAAa,QAAQ,KAAK,IAAI;KAC3C,KAAK,YAAY;IACnB,OAAO;KACL,KAAK,QAAQ,gBAAgB,MAAM;KACnC,KAAK,YAAY;IACnB;GACF;SACK,IAAI,KAAK,WAAW;GAEzB,KAAK,QAAQ,gBAAgB,MAAM;GACnC,KAAK,YAAY;EACnB;EAIA,IAAI,eACF,KAAK,QAAQ,cAAc,kBAAkB,KAAK,WAAW,CAAC;EAEhE,OAAO;CACT;CAOA,mBAA4B;EAC1B,MAAM,UAAU,KAAK;EACrB,MAAM,EAAE,aAAa,SAAS,KAAK;EAEnC,IAAI,eAAe,QACjB,OAAO,aAAa,OAAO;EAE7B,IAAI,CAAC,YACH,OAAO;EAIT,IAEE,aAAa,KACb,KAAK,SAAS,QACd,CAAC,aAAa,OAAO,KACrB,CAAC,iBAAiB,IAAI,OAAO,GAC7B;GACA,iBAAiB,IAAI,OAAO;GAC5B,QAAQ,KACN,qCAAqC,KAAK,KAAK,QAAQ,QAAQ,UAAU,wHAE3E;EACF;EACA,OAAO;CACT;CAGA,aAAmB;EACjB,KAAK,WAAW,mBAAmB,WAAW,KAAK,OAAQ;EAC3D,KAAK,gBAAgB;CACvB;CASA,kBAA0B,OAAqB;EAC7C,MAAM,UAAU,KAAK;EACrB,kBACE,SACA,IAAI,QAAQ,UAAU,WAAW,MAAM,KACvC,mBACF;CACF;CAGA,iBAAuB;EACrB,KAAK,aAAa,OAAO,eAAe,KAAK,OAAQ;CACvD;CAGA,eAAqB;EACnB,KAAK,SAAS,oBAAoB,SAAS,KAAK,OAAwB;EACxE,KAAK,UAAU;EACf,KAAK,cAAc;EACnB,KAAK,OAAO;EACZ,KAAK,YAAY;EACjB,KAAK,cAAc;CACrB;CAmCA,OACE,MACA,CAAC,OAAO,SAAS,CAAC,GAAG,UAAU,CAAC,IAKf;EAEjB,MAAM,EAAE,YAAY,GAAG,sBAAsB;EAC7C,KAAK,QAAQ;EACb,KAAK,SAAS;EACd,KAAK,UAAU;EACf,KAAK,gBAAgB,EAAE,WAAW;EAClC,MAAM,gBAAgB,KAAK;EAC3B,IAAI,KAAK,YAAY,eAAe;GAClC,KAAK,UAAU;GACf,KAAK,gBAAgB;GACrB,iBAAiB;IACf,KAAK,aAAa;GACpB,GAAG,CAAC;EACN;EAEA,OAAO,KAAK,SAAS;CACvB;CAUA,eAAqB;EACnB,IAAI,KAAK,iBAAiB,CAAC,KAAK,aAC9B;EAGF,KAAK,WAAW;EAChB,KAAK,eAAe;EACpB,KAAK,QAAS,iBAAiB,SAAS,KAAK,OAAwB;EAGrE,IAAI,KAAK,UACP,KAAK,cAAc,KAAK,SAAS,cAAc,gBAC7C,KAAK,QACP;EAEF,KAAK,SAAS;EACd,KAAK,gBAAgB;CACvB;AACF;AAwDA,OAAO,MAAM,SAIkC,UAAU,eAAe","names":[],"ignoreList":[],"sources":["../../src/ui-sref.ts"]}
1
+ {"version":3,"file":"ui-sref.js","mappings":"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","names":[],"ignoreList":[],"sources":["../../src/ui-sref.ts"]}
@@ -1,4 +1,4 @@
1
- import { LitElement } from "lit";
1
+ import { LitElement, html } from "lit";
2
2
  import { property, state } from "lit/decorators.js";
3
3
  import { ResolveContext, Transition, applyPairs, trace, isFunction, isString, unnestR, filter } from "@uirouter/core";
4
4
  import { LitViewConfig, isRoutedLitElement } from "./core.js";
@@ -12,7 +12,6 @@ export class UiView extends LitElement {
12
12
  super(..._args);
13
13
  this.name = "";
14
14
  this.component = null;
15
- this.inner = document.createDocumentFragment();
16
15
  this.viewId = viewIdCounter++;
17
16
  this.onUiViewContextEvent = (event) => {
18
17
  if (event.target === this) return;
@@ -20,8 +19,11 @@ export class UiView extends LitElement {
20
19
  event.detail.parentView = this;
21
20
  };
22
21
  this.onUiRouterContextEvent = (event) => {
22
+ if (this.seekingProvidedRouter) return;
23
23
  UIRouterLitElement.onUiRouterContextEvent(this.uiRouter)(event);
24
24
  };
25
+ this.routerFromProvider = false;
26
+ this.seekingProvidedRouter = false;
25
27
  this.disconnectedHandlers = [];
26
28
  }
27
29
  createRenderRoot() {
@@ -74,10 +76,32 @@ export class UiView extends LitElement {
74
76
  this.parentView = this.constructor.seekParentView(this);
75
77
  }
76
78
  seekRouter() {
77
- this.uiRouter = this.uiRouter || UIRouterLitElement.seekRouter(this);
79
+ if (!this.uiRouter) {
80
+ this.uiRouter = UIRouterLitElement.seekRouter(this);
81
+ this.routerFromProvider = !!this.uiRouter;
82
+ }
78
83
  this.addEventListener(UIRouterLitElement.uiRouterContextEventName, this.onUiRouterContextEvent);
79
84
  }
85
+ seekProvidedRouter() {
86
+ this.seekingProvidedRouter = true;
87
+ try {
88
+ return UIRouterLitElement.seekRouter(this);
89
+ } finally {
90
+ this.seekingProvidedRouter = false;
91
+ }
92
+ }
93
+ adoptProvidedRouter() {
94
+ const router = this.routerFromProvider ? this.seekProvidedRouter() : this.uiRouter;
95
+ if (!router || router === this.registeredRouter) return;
96
+ this.deregisterAll();
97
+ this.uiRouter = router;
98
+ this.setupUiView();
99
+ }
100
+ deregisterAll() {
101
+ while (this.disconnectedHandlers.length) this.disconnectedHandlers.shift()?.();
102
+ }
80
103
  captureContent() {
104
+ this.inner ??= document.createDocumentFragment();
81
105
  this.inner.append(...this.childNodes.values());
82
106
  }
83
107
  setupUiView() {
@@ -103,11 +127,12 @@ export class UiView extends LitElement {
103
127
  }));
104
128
  this.disconnectedHandlers.push(router.transitionService.onSuccess({}, (trans) => this._invokeUiOnParamsChangedHook(trans)));
105
129
  this.disconnectedHandlers.push(router.viewService.registerUIView(this._uiViewData));
130
+ this.registeredRouter = router;
106
131
  }
107
132
  disconnectedCallback() {
108
133
  super.disconnectedCallback();
109
134
  this.removeEventListener(this.constructor.uiViewContextEventName, this.onUiViewContextEvent);
110
- while (this.disconnectedHandlers.length) this.disconnectedHandlers.shift()?.();
135
+ this.deregisterAll();
111
136
  }
112
137
  _invokeUiCanExitHook(trans) {
113
138
  const instance = this.firstElementChild;
@@ -155,10 +180,11 @@ export class UiView extends LitElement {
155
180
  }
156
181
  firstUpdated(changed) {
157
182
  super.firstUpdated(changed);
183
+ this.adoptProvidedRouter();
158
184
  if (!this.uiRouter) warnMissingRouter(this, "<ui-view>", "will never render a routed view");
159
185
  }
160
186
  render() {
161
- if (!this.component || !this.viewAddress) return this.inner.cloneNode(true);
187
+ if (!this.component || !this.viewAddress) return this.inner?.cloneNode(true) ?? html`<slot></slot>`;
162
188
  const { uiRouter: router } = this;
163
189
  const injector = this.resolveContext.injector();
164
190
  const props = {
@@ -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"]}
@@ -178,10 +178,30 @@ export declare class UiSrefActiveDirective extends AsyncDirective {
178
178
  exiting: boolean | undefined;
179
179
  targetStates: Set<TargetState>;
180
180
  uiSrefs: WeakMap<TargetState, UiSrefElement>;
181
+ /**
182
+ * The reverse of {@link uiSrefs}, so a re-targeting link retires its old one.
183
+ * @internal
184
+ */
185
+ private readonly _linkTargets;
181
186
  /** @internal */
182
187
  _deregisterOnStart: deregisterFn | undefined;
183
188
  /** @internal */
184
189
  _deregisterOnStatesChanged: deregisterFn | undefined;
190
+ /**
191
+ * Kept across a disconnect so {@link reconnected} can re-arm.
192
+ * @internal
193
+ */
194
+ private _partElement;
195
+ /**
196
+ * Replayed by {@link reconnected} so it re-arms the way `firstUpdated` did.
197
+ * @internal
198
+ */
199
+ private _lastTargetStates;
200
+ /**
201
+ * Bumped on disconnect; `reconnected` re-subscribes to what is in flight.
202
+ * @internal
203
+ */
204
+ private _connection;
185
205
  /** @internal */
186
206
  constructor(partInfo: PartInfo);
187
207
  /** @internal */
@@ -239,6 +259,11 @@ export declare class UiSrefActiveDirective extends AsyncDirective {
239
259
  firstUpdated({ targetStates }: Partial<UiSrefActiveParams>): void;
240
260
  /** @internal */
241
261
  disconnected(): void;
262
+ /**
263
+ * Re-arms after a detach/re-attach; `update` only re-arms on a NEW element.
264
+ * @internal
265
+ */
266
+ reconnected(): void;
242
267
  /** @internal */
243
268
  createTransitionStateChangeEvent(evt: TransitionStateChange, trans: Transition): CustomEvent<TransEvt>;
244
269
  /** @internal */
@@ -1 +1 @@
1
- {"version":3,"file":"ui-sref-active.d.ts","mappings":"AAAA,SAOE,WAGA,aACA,YACA,yBAEK;AACP,SAAS,UAAU,mBAAmB;AACtC,SAAoB,gBAA0B;AAC9C,cAAc,uBAAuB;AACrC,SAAS,sBAAsB;AAE/B,SAAS,mBAAmB;AAG5B,SAEE,eACA,yBAEK;AACP,SAAS,cAAc;;UAGb,SAAS;CACjB;CACA,OAAO;CACP,SAAS;AACX;;;;;AAMA,OAAO,cAAM,gCAAgC;;;;;AAM7C,oBAAY,sBAAsB;;CAEhC;;CAEA;;CAEA;AACF;;;;;;;;;;;;AAaA,iBAAiB,WAAW;;CAE1B;;CAEA;;CAEA;;CAEA;;CAEA,cAAc;AAChB;;AAgDA,OAAO,iBAAS,gBACd,MAAM,YACN,OAAO,aACN;;;;;;;;;AAkBH,YAAY,mBACR,SACA,SACA,aACA,SACA,SACA;;;;;;;;;;;;;;AAeJ,iBAAiB,kBAAkB;;CAEjC,QAAQ,mBAAmB;;;;;CAK3B,SAAS,mBAAmB;AAC9B;;;;;;;;AAoCA,iBAAiB,mBAAmB;;CAElC;;CAEA;;;;;;;;;;;;;;;;;;CAkBA,mBAAmB,mBAAmB,QAAQ;;CAE9C;;CAEA,SAAS;;CAET,UAAU;;CAEV,cAAc;AAChB;KAKK;;;;;;;;;;;;;;;;;;AAmBL,OAAO,cAAM,8BAA8B,eAAe;CACxD,SAAS;CAET,UAAU;;CAEV;CAIA,YAAY;;CAEZ;CAIA;CACA;;CAEA,kBAAkB,mBAAmB,QAAQ;;;;;;;CAO7C,QAAQ;;;;;;;;CAQR,QAAQ;CAER;CACA,QAAQ;CACR,SAAS;CAET;CACA;CACA;CACA;CAEA,cAAc,IAAI;CAClB,SAAS,QAAQ,aAAa;;CAM9B,oBAAoB;;CAEpB,4BAA4B;;CAG5B,YAAY,UAAU;;CAYtB,OAAO,EACL,eACA,cACA,oBACC,QAAQ,6BAA6B;;;;;;;;;;;CAmCxC,QAAQ;;;;;;;;;CAoBR,QAAQ;;;;;;;;;;;;CA8BR,QAAQ;;CAqBR,cAAc;;;;;;;;;CAed,cACE,OAAO,sBACP,YAAY,cACX;;CAiDH,AAAM,OACJ,MAAM,aACN,CACE,EACE,eACA,cACA,kBACA,OACA,QACA,SACA,kBAEA,sBACH;;CAgCH,uBAAsB;;CAStB;;CAEA,aAAa,EAAE,gBAAgB,QAAQ;;CAyDvC;;CAkBA,iCACE,KAAK,uBACL,OAAO,aACN,YAAY;;CAcf,sBAAuB,OAAO;;CAO9B,0BAA2B,GAAG;;CAe9B,UAAU,WAAW,WAAW;;CAahC,oBAAqB,OAAO;;CAyB5B;AAMF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0HA,OAAO,cAAM,eACX,QAAQ,QAAQ,wBACb,uBAAuB","names":[],"ignoreList":[],"sources":["../src/ui-sref-active.ts"]}
1
+ {"version":3,"file":"ui-sref-active.d.ts","mappings":"AAAA,SAOE,WAGA,aACA,YACA,yBAEK;AACP,SAAS,UAAU,mBAAmB;AACtC,SAAoB,gBAA0B;AAC9C,cAAc,uBAAuB;AACrC,SAAS,sBAAsB;AAE/B,SAAS,mBAAmB;AAG5B,SAEE,eACA,yBAEK;AACP,SAAS,cAAc;;UAGb,SAAS;CACjB;CACA,OAAO;CACP,SAAS;AACX;;;;;AAMA,OAAO,cAAM,gCAAgC;;;;;AAM7C,oBAAY,sBAAsB;;CAEhC;;CAEA;;CAEA;AACF;;;;;;;;;;;;AAaA,iBAAiB,WAAW;;CAE1B;;CAEA;;CAEA;;CAEA;;CAEA,cAAc;AAChB;;AAgDA,OAAO,iBAAS,gBACd,MAAM,YACN,OAAO,aACN;;;;;;;;;AAkBH,YAAY,mBACR,SACA,SACA,aACA,SACA,SACA;;;;;;;;;;;;;;AAeJ,iBAAiB,kBAAkB;;CAEjC,QAAQ,mBAAmB;;;;;CAK3B,SAAS,mBAAmB;AAC9B;;;;;;;;AAoCA,iBAAiB,mBAAmB;;CAElC;;CAEA;;;;;;;;;;;;;;;;;;CAkBA,mBAAmB,mBAAmB,QAAQ;;CAE9C;;CAEA,SAAS;;CAET,UAAU;;CAEV,cAAc;AAChB;KAKK;;;;;;;;;;;;;;;;;;AAmBL,OAAO,cAAM,8BAA8B,eAAe;CACxD,SAAS;CAET,UAAU;;CAEV;CAIA,YAAY;;CAEZ;CAIA;CACA;;CAEA,kBAAkB,mBAAmB,QAAQ;;;;;;;CAO7C,QAAQ;;;;;;;;CAQR,QAAQ;CAER;CACA,QAAQ;CACR,SAAS;CAET;CACA;CACA;CACA;CAEA,cAAc,IAAI;CAClB,SAAS,QAAQ,aAAa;;;;;CAS9B,iBAAiB;;CAGjB,oBAAoB;;CAEpB,4BAA4B;;;;;CAM5B,QAAQ;;;;;CAMR,QAAQ;;;;;CAMR,QAAQ;;CAGR,YAAY,UAAU;;CAYtB,OAAO,EACL,eACA,cACA,oBACC,QAAQ,6BAA6B;;;;;;;;;;;CAmCxC,QAAQ;;;;;;;;;CAoBR,QAAQ;;;;;;;;;;;;CA8BR,QAAQ;;CAqBR,cAAc;;;;;;;;;CAed,cACE,OAAO,sBACP,YAAY,cACX;;CAiDH,AAAM,OACJ,MAAM,aACN,CACE,EACE,eACA,cACA,kBACA,OACA,QACA,SACA,kBAEA,sBACH;;CAkCH,uBAAsB;;CAStB;;CAEA,aAAa,EAAE,gBAAgB,QAAQ;;CAyDvC;;;;;CA0BA;;CAkBA,iCACE,KAAK,uBACL,OAAO,aACN,YAAY;;CAcf,sBAAuB,OAAO;;CAgB9B,0BAA2B,GAAG;;CAe9B,UAAU,WAAW,WAAW;;CAahC,oBAAqB,OAAO;;CAmB5B;AAMF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0HA,OAAO,cAAM,eACX,QAAQ,QAAQ,wBACb,uBAAuB","names":[],"ignoreList":[],"sources":["../src/ui-sref-active.ts"]}
@@ -59,6 +59,10 @@ export class UiSrefActiveDirective extends AsyncDirective {
59
59
  this.options = {};
60
60
  this.targetStates = new Set();
61
61
  this.uiSrefs = new WeakMap();
62
+ this._linkTargets = new WeakMap();
63
+ this._partElement = null;
64
+ this._lastTargetStates = void 0;
65
+ this._connection = 0;
62
66
  this.doRender = () => {
63
67
  return this.render({
64
68
  activeClasses: this.activeClasses,
@@ -69,8 +73,15 @@ export class UiSrefActiveDirective extends AsyncDirective {
69
73
  this._firstUpdated = false;
70
74
  this.onUiSrefTargetEvent = (event) => {
71
75
  const { targetState } = event.detail;
76
+ const previous = this._linkTargets.get(event.target);
77
+ if (previous) {
78
+ this.targetStates.delete(previous);
79
+ this.uiSrefs.delete(previous);
80
+ }
72
81
  this.targetStates.add(targetState);
73
82
  this.uiSrefs.set(targetState, event.target);
83
+ this._linkTargets.set(event.target, targetState);
84
+ if (this._firstUpdated) this.onStatesChanged();
74
85
  };
75
86
  this.onTransitionStateChange = (e) => {
76
87
  const event = e;
@@ -84,12 +95,13 @@ export class UiSrefActiveDirective extends AsyncDirective {
84
95
  this.doRender();
85
96
  };
86
97
  this.onTransitionStart = (trans) => {
87
- this.element.dispatchEvent(this.createTransitionStateChangeEvent(TransitionStateChange.start, trans));
88
- trans.promise.then(() => {
89
- this.element.dispatchEvent(this.createTransitionStateChangeEvent(TransitionStateChange.success, trans));
90
- }, () => {
91
- this.element.dispatchEvent(this.createTransitionStateChangeEvent(TransitionStateChange.error, trans));
92
- });
98
+ const connection = this._connection;
99
+ const dispatch = (evt) => {
100
+ if (connection !== this._connection) return;
101
+ this.element?.dispatchEvent(this.createTransitionStateChangeEvent(evt, trans));
102
+ };
103
+ dispatch(TransitionStateChange.start);
104
+ trans.promise.then(() => dispatch(TransitionStateChange.success), () => dispatch(TransitionStateChange.error));
93
105
  };
94
106
  this.onStatesChanged = () => {
95
107
  const { active, exact } = this.getStatus() || {};
@@ -159,6 +171,8 @@ export class UiSrefActiveDirective extends AsyncDirective {
159
171
  this.params = params;
160
172
  this.options = options;
161
173
  const { element } = part;
174
+ this._partElement = element;
175
+ this._lastTargetStates = targetStates && Array.from(targetStates);
162
176
  if (this.element !== element) {
163
177
  this.element = element;
164
178
  this._firstUpdated = false;
@@ -195,12 +209,25 @@ export class UiSrefActiveDirective extends AsyncDirective {
195
209
  this._firstUpdated = true;
196
210
  }
197
211
  disconnected() {
212
+ this._firstUpdated = false;
213
+ this._connection++;
198
214
  if (!this.element) return;
199
215
  this.element.removeEventListener(UI_SREF_TARGET_EVENT, this.onUiSrefTargetEvent);
200
216
  this.element.removeEventListener(TRANSITION_STATE_CHANGE_EVENT, this.onTransitionStateChange);
201
217
  this.element = null;
202
218
  this._deregisterOnStart?.();
219
+ this._deregisterOnStart = void 0;
203
220
  this._deregisterOnStatesChanged?.();
221
+ this._deregisterOnStatesChanged = void 0;
222
+ }
223
+ reconnected() {
224
+ this.element = this._partElement;
225
+ if (!this.element) return;
226
+ const retained = !this._lastTargetStates && !this.state ? [...this.targetStates] : [];
227
+ this.firstUpdated({ targetStates: this._lastTargetStates });
228
+ retained.forEach((targetState) => this.targetStates.add(targetState));
229
+ const inFlight = this.uiRouter?.globals.transition;
230
+ if (inFlight) this.onTransitionStart(inFlight);
204
231
  }
205
232
  createTransitionStateChangeEvent(evt, trans) {
206
233
  const detail = {
@@ -1 +1 @@
1
- {"version":3,"file":"ui-sref-active.js","mappings":"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","names":[],"ignoreList":[],"sources":["../src/ui-sref-active.ts"]}
1
+ {"version":3,"file":"ui-sref-active.js","mappings":"AAAA,SACE,UACA,QACA,OAEA,WAIA,MAIA,eACK;AACP,SAAS,gBAA6B;AACtC,SAAS,WAAqB,gBAAgB;AAE9C,SAAS,sBAAsB;AAG/B,SAAS,0BAA0B;AACnC,SAAuB,yBAAyB;AAChD,SACE,cAGA,4BACK;AACP,SAAS,cAAc;AAavB,OAAO,MAAM,gCAAgC;AAM7C,OAAO,IAAK,wBAAL;CAEL;CAEA;CAEA;;AACF;AAkCA,MAAM,eAAe,WAA+C;CAClE,IAAI,CAAC,OAAO,OAAO,GAAG,aAAa;CACnC,MAAM,QAAqB,OAAO,OAAO;CACzC,MAAM,kBAAkB,OAAO,OAAO;CAEtC,MAAM,cADyB,UAAU,UAAU,MACb,CAAC,CACpC,KAAK,SAAS,KAAK,WAAW,CAAC,CAC/B,OAAgB,SAAS,CAAC,CAAC,CAAC,CAC5B,QAAQ,UACP,OAAO,UAAU,eAAe,KAAK,iBAAiB,MAAM,EAAE,CAChE;CACF,QAAQ,OAAmB,CAAC,MAAM;EAChC,MAAM,WAAW,KAAK,IAAI;EAC1B,IAAI,CAAC,YAAY,SAAS,UAAU,OAAO,OAAO;EAClD,MAAM,cAAc,UAAU,YAAY,IAAI;EAC9C,OAAO,MAAM,OAAO,aAAa,aAAa,eAAe;CAC/D;AACF;AASA,SAAS,iBACP,UACA,YACc;CACd,OAAO,WAAW,KAAK,SACrB,SAAS,OACP,UAAU,QAAQ,aAAa,MAAM,EAAG,UAAU,KAAK,KAAK,CAC9D,CACF;AACF;AAGA,OAAO,SAAS,gBACd,MACA,OACY;CACZ,OAAO;EACL,QAAQ,KAAK,UAAU,MAAM;EAC7B,OAAO,KAAK,SAAS,MAAM;EAC3B,UAAU,KAAK,YAAY,MAAM;EACjC,SAAS,KAAK,WAAW,MAAM;EAC/B,cAAc,CAAC,GAAG,KAAK,cAAc,GAAG,MAAM,YAAY;CAC5D;AACF;AAoDA,MAAM,iBAAiB,YACrB,aAAa,OAAO,KAAK,QAAQ,QAAQ,kBAAgB;AAQ3D,MAAM,uBACJ,qBAEA,OAAO,qBAAqB,WACxB,mBACA,EAAE,OAAO,iBAAiB;AA2ChC,IAAI,SAAuC;AAqB3C,OAAO,MAAM,8BAA8B,eAAe;CAKxD,aAAmB;EACjB,KAAK,WAAW,mBAAmB,WAAW,KAAK,OAAQ;CAC7D;CAIA,iBAAuB;EACrB,KAAK,aAAa,OAAO,eAAe,KAAK,OAAQ;CACvD;CAmEA,YAAY,UAAoB;EAC9B,MAAM,QAAQ;iBAhFU;oBAQE;uBAMF,CAAC;sBACF,CAAC;yBASA;mCAQU;gBAGhB,CAAC;iBACQ,CAAC;sBAOG,IAAI,IAAiB;iBACP,IAAI,QAGjD;sBAM8B,IAAI,QAAoC;sBAWjC;2BAMgB;qBAMjC;wBA+OY;GAChC,OAAO,KAAK,OAAO;IACjB,eAAe,KAAK;IACpB,cAAc,KAAK;IACnB,kBAAkB,KAAK;GACzB,CAAC;EACH;uBAGgB;8BAwHO,UAAmC;GACxD,MAAM,EAAE,gBAAgB,MAAM;GAC9B,MAAM,WAAW,KAAK,aAAa,IAAI,MAAM,MAAM;GACnD,IAAI,UAAU;IACZ,KAAK,aAAa,OAAO,QAAQ;IACjC,KAAK,QAAQ,OAAO,QAAQ;GAC9B;GACA,KAAK,aAAa,IAAI,WAAW;GACjC,KAAK,QAAQ,IAAI,aAAa,MAAM,MAAM;GAC1C,KAAK,aAAa,IAAI,MAAM,QAAQ,WAAW;GAC/C,IAAI,KAAK,eACP,KAAK,gBAAgB;EAEzB;kCAG2B,MAAmB;GAC5C,MAAM,QAAQ;GACd,MAAM,SAAS,KAAK,UAAU,MAAM,MAAM;GAC1C,IAAI,CAAC,QACH;GAEF,MAAM,EAAE,QAAQ,OAAO,UAAU,YAAY;GAC7C,KAAK,SAAS;GACd,KAAK,QAAQ;GACb,KAAK,WAAW;GAChB,KAAK,UAAU;GACf,KAAK,SAAS;EAChB;4BAgBqB,UAA4B;GAE/C,MAAM,aAAa,KAAK;GACxB,MAAM,YAAY,QAAqC;IACrD,IAAI,eAAe,KAAK,aACtB;IAEF,KAAK,SAAS,cACZ,KAAK,iCAAiC,KAAK,KAAK,CAClD;GACF;GACA,SAAS,sBAAsB,KAAK;GACpC,MAAM,QAAQ,WACN,SAAS,sBAAsB,OAAO,SACtC,SAAS,sBAAsB,KAAK,CAC5C;EACF;+BAG8B;GAC5B,MAAM,EAAE,QAAQ,UAAU,KAAK,UAAU,KAAK,CAAC;GAC/C,KAAK,SAAS;GACd,KAAK,QAAQ;GACb,KAAK,SAAS;EAChB;EA/aE,IAAI,SAAS,SAAS,SAAS,SAC7B,MAAM,IAAI,MACR,yDACF;EAGF,SAAS,UAAU;CACrB;CAGA,OAAO,EACL,eACA,cACA,oBAC+C;EAC/C,IAAI,CAAC,KAAK,eACR,OAAO;EAET,eAAe,SAAS,cAAc;GACpC,IAAI,KAAK,QACP,KAAK,QAAS,UAAU,IAAI,SAAS;QAErC,KAAK,QAAS,UAAU,OAAO,SAAS;EAE5C,CAAC;EAED,cAAc,SAAS,cAAc;GACnC,IAAI,KAAK,OACP,KAAK,QAAS,UAAU,IAAI,SAAS;QAErC,KAAK,QAAS,UAAU,OAAO,SAAS;EAE5C,CAAC;EAED,KAAK,iBAAiB,gBAAgB;EAEtC,OAAO;CACT;CAYA,mBACE,QAC0B;EAC1B,IAAI,KAAK,OACP,OAAO,OAAO,UAAU,cAAc,KAAK,OAAQ,KAAK;EAE1D,IAAI,KAAK,QACP,OAAO,OAAO,UAAU;EAE1B,OAAO;CACT;CAUA,iBACE,kBACM;EACN,MAAM,WAAW,KAAK,mBACpB,oBAAoB,gBAAgB,CACtC;EAEA,IAAI,UAAU;GACZ,IAAI,CAAC,KAAK,iBACR,KAAK,wBAAwB;GAE/B,KAAK,QAAS,aAAa,gBAAgB,QAAQ;GACnD,KAAK,kBAAkB;EACzB,OAAO,IAAI,KAAK,iBAAiB;GAC/B,KAAK,QAAS,gBAAgB,cAAc;GAC5C,KAAK,kBAAkB;EACzB;CACF;CAaA,0BAAwC,CAkBxC;CAGA,aAAgC;EAC9B,MAAM,cAAiC,EACrC,UAAU,KAAK,YAAY,aAAa,KAC1C;EACA,OAAO,OAAO,aAAa,KAAK,WAAW,CAAC,CAAC;CAC/C;CAUA,cACE,OACA,YACY;EACZ,MAAM,oBAAoB,YAAY,UAAU;EAChD,MAAM,KAAK,OAAO,MAAM,YAAY;EAEpC,MAAM,eAAe,OAAO,QAAQ;EAEpC,MAAM,aADiB,OAAO,QAAQ,YAElC,IAAI,KACJ,IAAI;EAER,MAAM,iBACJ,aACI,iBAAiB,CAAC,GAAG,UAAU,CAAC,CAC7B,IAAI,iBAAiB,CAAC,CACtB,OAAO,UAAU,KAAK,IACzB,KAAK,SAAU,aAAa,SAC1B,WAAW,KAAK,GAChB,WAAW,OAAO,CACpB;EAEN,MAAM,gBACJ,aACI,kBAAkB,UAAU,IAC5B,KAAK,SAAU,aAAa,GAC1B,WAAW,KAAK,GAChB,WAAW,OAAO,CACpB;EAEN,MAAM,mBACJ,iBAAiB,GAAI,UAAU,GAAI,QAAQ,CAAC,CACzC,IAAI,iBAAiB,CAAC,CACtB,OAAO,UAAU,KAAK;EAE3B,MAAM,kBACJ,iBAAiB,GAAI,UAAU,GAAI,OAAO,CAAC,CACxC,IAAI,iBAAiB,CAAC,CACtB,OAAO,UAAU,KAAK;EAS3B,OAAO;GANL,QAAQ,SAAS;GACjB,OAAO,QAAQ;GACf,UAAU,eAAe,WAAW,IAAI;GACxC,SAAS,eAAe,UAAU,IAAI;GACtC,cAAc,CAAC,UAAU;EAEf;CACd;CAGA,MAAM,OACJ,MACA,CACE,EACE,eACA,cACA,kBACA,OACA,SAAS,CAAC,GACV,UAAU,CAAC,GACX,iBAGW;EACf,KAAK,gBAAgB;EACrB,KAAK,eAAe;EACpB,KAAK,mBAAmB;EACxB,KAAK,QAAQ;EACb,KAAK,SAAS;EACd,KAAK,UAAU;EAEf,MAAM,EAAE,YAAY;EACpB,KAAK,eAAe;EACpB,KAAK,oBAAoB,gBAAgB,MAAM,KAAK,YAAY;EAEhE,IAAI,KAAK,YAAY,SAAS;GAC5B,KAAK,UAAU;GACf,KAAK,gBAAgB;GAErB,MAAM,QAAQ,QAAQ;GACtB,KAAK,aAAa,EAAE,aAAa,CAAC;EACpC;EAEA,IAAI,KAAK,YAAY,KAAK,eACxB,KAAK,SAAS;OACT,IAAI,CAAC,KAAK,UAGf,kBACE,SACA,IAAI,QAAQ,UAAU,iBACtB,6BACF;CAEJ;CAcA,aAAa,EAAE,gBAAmD;EAChE,IAAI,KAAK,iBAAiB,CAAC,KAAK,aAC9B;EAEF,KAAK,WAAW;EAChB,KAAK,eAAe;EAEpB,KAAK,aAAa,MAAM;EACxB,IAAI,cACF,MAAM,UAAU,QAAQ,KAAK,eAAe,gBAAgB;GAC1D,KAAK,aAAa,IAAI,WAA0B;EAClD,CAAC;OACI,IAAI,KAAK,OAEd;OAAI,KAAK,UACP,KAAK,aAAa,IAChB,KAAK,SAAS,aAAa,OACzB,KAAK,OACL,KAAK,QACL,KAAK,WAAW,CAClB,CACF;EACF,OAEA,KAAK,QAAS,iBACZ,sBACA,KAAK,mBACP;EAEF,KAAK,QAAS,iBACZ,+BACA,KAAK,uBACP;EAGA,IAAI,KAAK,UAAU;GACjB,KAAK,qBAAqB,KAAK,SAAS,kBAAkB,QACxD,CAAC,GACD,KAAK,iBACP;GACA,KAAK,6BACH,KAAK,SAAS,cAAc,gBAAgB,KAAK,eAAe;EACpE;EAEA,iBAAiB;GACf,IAAI,KAAK,aAAa,MAAM;IAC1B,MAAM,EAAE,QAAQ,UAAU,KAAK,UAAU,KAAK,CAAC;IAC/C,KAAK,SAAS;IACd,KAAK,QAAQ;IACb,KAAK,SAAS;GAChB;EACF,GAAG,CAAC;EAEJ,KAAK,gBAAgB;CACvB;CAGA,eAAqB;EAEnB,KAAK,gBAAgB;EACrB,KAAK;EACL,IAAI,CAAC,KAAK,SACR;EAEF,KAAK,QAAQ,oBACX,sBACA,KAAK,mBACP;EACA,KAAK,QAAQ,oBACX,+BACA,KAAK,uBACP;EACA,KAAK,UAAU;EACf,KAAK,qBAAqB;EAC1B,KAAK,qBAAqB;EAC1B,KAAK,6BAA6B;EAClC,KAAK,6BAA6B;CACpC;CAMA,cAAoB;EAClB,KAAK,UAAU,KAAK;EACpB,IAAI,CAAC,KAAK,SACR;EAIF,MAAM,WADY,CAAC,KAAK,qBAAqB,CAAC,KAAK,QACtB,CAAC,GAAG,KAAK,YAAY,IAAI,CAAC;EACvD,KAAK,aAAa,EAAE,cAAc,KAAK,kBAAkB,CAAC;EAC1D,SAAS,SAAS,gBAAgB,KAAK,aAAa,IAAI,WAAW,CAAC;EAEpE,MAAM,WAAW,KAAK,UAAU,QAAQ;EACxC,IAAI,UACF,KAAK,kBAAkB,QAAQ;CAEnC;CAGA,iCACE,KACA,OACuB;EACvB,MAAM,SAAmB;GACvB;GACA;GACA,QAAQ;EACV;EAEA,OAAO,SAAS,KAAK,UAAU,MAAM;EACrC,OAAO,IAAI,YAAsB,+BAA+B,EAC9D,OACF,CAAC;CACH;CAkCA,UAAU,UAA6C;EACrD,MAAM,EAAE,iBAAiB;EACzB,IAAI,CAAC,aAAa,MAChB;EAEF,MAAM,WAAyB,CAAC;EAChC,KAAK,MAAM,UAAU,cACnB,SAAS,KAAK,KAAK,cAAc,UAAU,MAAM,CAAC;EAEpD,OAAO,SAAS,OAAO,eAAe;CACxC;AA4BF;AA0HA,OAAO,MAAM,eAEwC,UACnD,qBACF","names":[],"ignoreList":[],"sources":["../src/ui-sref-active.ts"]}
package/dist/ui-sref.d.ts CHANGED
@@ -124,6 +124,11 @@ export declare class UiSrefDirective extends AsyncDirective {
124
124
  private _seekedRouter;
125
125
  /** @internal */
126
126
  unsubscribe: (() => void) | undefined;
127
+ /**
128
+ * Kept across a disconnect so {@link reconnected} can re-arm.
129
+ * @internal
130
+ */
131
+ private _partElement;
127
132
  /** @internal */
128
133
  constructor(partInfo: PartInfo);
129
134
  getOptions(opts?: TransitionOptions): TransitionOptions;
@@ -148,6 +153,11 @@ export declare class UiSrefDirective extends AsyncDirective {
148
153
  seekParentView(): void;
149
154
  /** @internal */
150
155
  disconnected(): void;
156
+ /**
157
+ * Re-arms after a detach/re-attach; `update` only re-arms on a NEW element.
158
+ * @internal
159
+ */
160
+ reconnected(): void;
151
161
  onClick: (event: MouseEvent) => void;
152
162
  update(part: ElementPart, [state, params, options]: [string, RawParams?, UiSrefTransitionOptions?]): typeof noChange;
153
163
  doRender: () => typeof noChange;
@@ -1 +1 @@
1
- {"version":3,"file":"ui-sref.d.ts","mappings":"AAAA,SAGE,WACA,mBAEA,mBACK;AACP,SAAS,UAAU,mBAAmB;AACtC,SAAoB,gBAA0B;AAC9C,cAAc,uBAAuB;AACrC,SAAS,sBAAsB;AAE/B,SAAS,mBAAmB;AAC5B,SAAS,oBAAuC;AAEhD,SAAS,cAAc;AAGvB,SAAS;;;;;AAMT,OAAO,cAAM,uBAAuB;;;;;AAMpC,iBAAiB,sBAAsB,QAAQ;;CAE7C;;CAEA,aAAa;AACf;;;;;;AAOA,iBAAiB,0BAA0B,YAAY;CACrD,aAAa;AACf,GAAG;CACD,QAAQ;AACV;;;;;;;AAQA,OAAO,iBAAS,kBAAkB,aAAa,cAAc;;;;;;;AA+B7D,iBAAiB,cAAc;;;;;;;;;;;;;;;;;;;CAmB7B,uBAAuB;AACzB;;;;;;;AAQA,YAAY,0BAA0B,oBAAoB;;;;;;;;;;;;;;AAkB1D,OAAO,iBAAS,aAAa,SAAS;;;;;;;;;;;;;;AA+CtC,OAAO,cAAM,wBAAwB,eAAe;CAClD;CACA,QAAQ;CACR,SAAS;CAET,SAAS;CAET,UAAU;CACV,YAAY;;CAGZ,eAAe;CAEf;CACA,aAAa;;CAGb,QAAQ;;;;;;;;;CAUR,QAAQ;;CAGR;;CAGA,YAAY,UAAU;CAOtB,WAAW,OAAM,oBAAmC;CASpD,OACE,eACA,SAAS,WACT,UAAU,2BACF;;;;;;CAkDV;;CA6BA;;;;;;;;CAYA,QAAQ;;CAUR;;CAKA;CASA,UAAW,OAAO;CAiClB,OACE,MAAM,aACN,CAAC,OAAO,QAAa,mBAEnB,YACA,mCAEM;CAmBV,uBAAsB;CAItB,QAAQ;;;;CAIR;AAkBF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwDA,OAAO,cAAM,SACX,eACA,SAAS,WACT,UAAU,4BACP,uBAAuB","names":[],"ignoreList":[],"sources":["../src/ui-sref.ts"]}
1
+ {"version":3,"file":"ui-sref.d.ts","mappings":"AAAA,SAGE,WACA,mBAEA,mBACK;AACP,SAAS,UAAU,mBAAmB;AACtC,SAAoB,gBAA0B;AAC9C,cAAc,uBAAuB;AACrC,SAAS,sBAAsB;AAE/B,SAAS,mBAAmB;AAC5B,SAAS,oBAAuC;AAEhD,SAAS,cAAc;AAGvB,SAAS;;;;;AAMT,OAAO,cAAM,uBAAuB;;;;;AAMpC,iBAAiB,sBAAsB,QAAQ;;CAE7C;;CAEA,aAAa;AACf;;;;;;AAOA,iBAAiB,0BAA0B,YAAY;CACrD,aAAa;AACf,GAAG;CACD,QAAQ;AACV;;;;;;;AAQA,OAAO,iBAAS,kBAAkB,aAAa,cAAc;;;;;;;AAgC7D,iBAAiB,cAAc;;;;;;;;;;;;;;;;;;;CAmB7B,uBAAuB;AACzB;;;;;;;AAQA,YAAY,0BAA0B,oBAAoB;;;;;;;;;;;;;;AAkB1D,OAAO,iBAAS,aAAa,SAAS;;;;;;;;;;;;;;AA+CtC,OAAO,cAAM,wBAAwB,eAAe;CAClD;CACA,QAAQ;CACR,SAAS;CAET,SAAS;CAET,UAAU;CACV,YAAY;;CAGZ,eAAe;CAEf;CACA,aAAa;;CAGb,QAAQ;;;;;;;;;CAUR,QAAQ;;CAGR;;;;;CAMA,QAAQ;;CAGR,YAAY,UAAU;CAOtB,WAAW,OAAM,oBAAmC;CASpD,OACE,eACA,SAAS,WACT,UAAU,2BACF;;;;;;CAkDV;;CA6BA;;;;;;;;CAYA,QAAQ;;CAUR;;CAKA;;;;;CAgBA;CAOA,UAAW,OAAO;CAiClB,OACE,MAAM,aACN,CAAC,OAAO,QAAa,mBAEnB,YACA,mCAEM;CAoBV,uBAAsB;CAItB,QAAQ;;;;CAIR;AAkBF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwDA,OAAO,cAAM,SACX,eACA,SAAS,WACT,UAAU,4BACP,uBAAuB","names":[],"ignoreList":[],"sources":["../src/ui-sref.ts"]}
package/dist/ui-sref.js CHANGED
@@ -16,7 +16,7 @@ export function uiSrefTargetEvent(targetState) {
16
16
  }
17
17
  const paramsEqual = equals;
18
18
  function sameTarget(a, b) {
19
- return !!a && a.name() === b.name() && paramsEqual(a.params(), b.params());
19
+ return !!a && a.$state() === b.$state() && paramsEqual(a.params(), b.params());
20
20
  }
21
21
  export function isNativeLink(element) {
22
22
  const tag = element.localName;
@@ -44,6 +44,7 @@ export class UiSrefDirective extends AsyncDirective {
44
44
  this.targetState = null;
45
45
  this._ownsHref = false;
46
46
  this._seekedRouter = false;
47
+ this._partElement = null;
47
48
  this.onClick = (event) => {
48
49
  const { uiRouter: router, state, params } = this;
49
50
  const options = this.getOptions();
@@ -126,6 +127,12 @@ export class UiSrefDirective extends AsyncDirective {
126
127
  this.href = null;
127
128
  this._ownsHref = false;
128
129
  this.unsubscribe?.();
130
+ this.unsubscribe = void 0;
131
+ this._firstUpdated = false;
132
+ }
133
+ reconnected() {
134
+ this.element = this._partElement;
135
+ if (this.element) this.firstUpdated();
129
136
  }
130
137
  update(part, [state, params = {}, options = {}]) {
131
138
  const { assignHref, ...transitionOptions } = options;
@@ -134,6 +141,7 @@ export class UiSrefDirective extends AsyncDirective {
134
141
  this.options = transitionOptions;
135
142
  this.uiSrefOptions = { assignHref };
136
143
  const uiSrefElement = part.element;
144
+ this._partElement = uiSrefElement;
137
145
  if (this.element !== uiSrefElement) {
138
146
  this.element = uiSrefElement;
139
147
  this._firstUpdated = false;
@@ -1 +1 @@
1
- {"version":3,"file":"ui-sref.js","mappings":"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","names":[],"ignoreList":[],"sources":["../src/ui-sref.ts"]}
1
+ {"version":3,"file":"ui-sref.js","mappings":"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","names":[],"ignoreList":[],"sources":["../src/ui-sref.ts"]}
package/dist/ui-view.d.ts CHANGED
@@ -9,6 +9,10 @@ export interface UiViewAddress {
9
9
  }
10
10
  /**
11
11
  * @hideconstructor
12
+ *
13
+ * @slot - <code>&lt;ui-view&gt;</code> renders slotted content as fallback
14
+ * whenever no routed component is active.
15
+ *
12
16
  * @fires {CustomEvent} ui-router-context
13
17
  *
14
18
  * This event is fired to obtain the <code>uiRouter</code> instance,
@@ -39,7 +43,8 @@ export declare class UiView extends LitElement {
39
43
  private viewAddress;
40
44
  /** Replaced only by a real view config change, so a retained view keeps its subtree. */
41
45
  private component;
42
- private readonly inner;
46
+ /** Created on connect: the @lit-labs/ssr DOM shim has no `createDocumentFragment`. */
47
+ private inner?;
43
48
  /** @internal */
44
49
  createRenderRoot(): this;
45
50
  private readonly viewId;
@@ -58,6 +63,36 @@ export declare class UiView extends LitElement {
58
63
  private seekParentView;
59
64
  private readonly onUiRouterContextEvent;
60
65
  private seekRouter;
66
+ /** Whether `uiRouter` came from the context event rather than the app. */
67
+ private routerFromProvider;
68
+ /** The router this view registered with; a late upgrade can supersede it. */
69
+ private registeredRouter?;
70
+ /** Set only for the synchronous span of our own re-seek. */
71
+ private seekingProvidedRouter;
72
+ /**
73
+ * Seeks the provider's router, past our own answer.
74
+ *
75
+ * `<ui-view>` answers this event for descendants and stops it, deliberately —
76
+ * see `listener-identity.spec.ts`. Suppressing that for the span of our own
77
+ * dispatch keeps the guarantee intact for everyone else.
78
+ */
79
+ private seekProvidedRouter;
80
+ /**
81
+ * Adopts the router the provider now offers, when this view registered
82
+ * without it.
83
+ *
84
+ * lit replays a pre-upgrade property inside the element's first update, not
85
+ * at upgrade, so `<ui-router>` can run `connectedCallback` with `uiRouter`
86
+ * still undefined and provide an instance of its own; a `<ui-view>`
87
+ * connecting in between registers with that one and never sees a transition.
88
+ * Firefox upgrades a detached subtree later than Chrome and WebKit, so
89
+ * declarative shadow DOM parsed off-document reaches this there first.
90
+ *
91
+ * `registerUIView` syncs, so the re-registered view picks up the current
92
+ * state without waiting for the next transition.
93
+ */
94
+ private adoptProvidedRouter;
95
+ private deregisterAll;
61
96
  private captureContent;
62
97
  private readonly disconnectedHandlers;
63
98
  private setupUiView;
@@ -1 +1 @@
1
- {"version":3,"file":"ui-view.d.ts","mappings":"AAAA,SAAS,kBAAkB;AAC3B,cAAc,gBAAgB,sBAAsB;AAEpD,SAME,kBASA,aACA,mBACK;AASP,SAAwB,mBAAuC;;AAS/D,iBAAiB,cAAc;CAC7B,SAAS,cAAc;CACvB;AACF;;;;;;;;;;;;;;;;;;;;;;;AAgCA,OAAO,cAAM,eAAe,WAAW;CACrC,AACA;;;;;CAMA,AACA,UAAW;CAEX,QACQ;;CAGR,QACQ;CAER,iBAAiB;;CAGjB;CAIA,iBAAiB;CAEjB,QAAQ;CAER,QAAQ;CAER,QAAQ;CAoBR,QAAQ;CAoBR,QACQ;CAER,iBAAiB;;CAWjB;CAUA,wBAAwB;CAExB,eAAe;;CAWf,OAAO,eAAe,WAAW,UAAU;CAM3C,QAAQ;CAIR,iBAAiB;CAIjB,QAAQ;CAQR,QAAQ;CAIR,iBAAiB;CAEjB,QAAQ;;CA2CR;;;;;;;;;CAqBA,QAAQ;;CAeR,cAAc,GAAG,MAAM,WAAW,WAAW;;;;CAW7C,QAAQ;;CA2DR,IAAW,eAAe;;CAK1B,IAAW,SAAS;;;;;;;;;;;CAcpB,UAAU,aAAa,SAAS;;CAQhC,UAAU,OAAO;AAsBnB;AAEA,iBAAiB,OAAO;;CAEtB,oBAAoB;AACtB","names":[],"ignoreList":[],"sources":["../src/ui-view.ts"]}
1
+ {"version":3,"file":"ui-view.d.ts","mappings":"AAAA,SAAS,kBAAwB;AACjC,cAAc,gBAAgB,sBAAsB;AAEpD,SAME,kBASA,aACA,mBACK;AASP,SAAwB,mBAAuC;;AAS/D,iBAAiB,cAAc;CAC7B,SAAS,cAAc;CACvB;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoCA,OAAO,cAAM,eAAe,WAAW;CACrC,AACA;;;;;CAMA,AACA,UAAW;CAEX,QACQ;;CAGR,QACQ;;CAGR,QAAQ;;CAGR;CAIA,iBAAiB;CAEjB,QAAQ;CAER,QAAQ;CAER,QAAQ;CAoBR,QAAQ;CAoBR,QACQ;CAER,iBAAiB;;CAWjB;CAUA,wBAAwB;CAExB,eAAe;;CAWf,OAAO,eAAe,WAAW,UAAU;CAM3C,QAAQ;CAIR,iBAAiB;CAQjB,QAAQ;;CAaR,QAAQ;;CAGR,QAAQ;;CAGR,QAAQ;;;;;;;;CASR,QAAQ;;;;;;;;;;;;;;;CAuBR,QAAQ;CAaR,QAAQ;CAOR,QAAQ;CAKR,iBAAiB;CAEjB,QAAQ;;CA4CR;;;;;;;;;CAkBA,QAAQ;;CAeR,cAAc,GAAG,MAAM,WAAW,WAAW;;;;CAW7C,QAAQ;;CA2DR,IAAW,eAAe;;CAK1B,IAAW,SAAS;;;;;;;;;;;CAcpB,UAAU,aAAa,SAAS;;CAShC,UAAU,OAAO;AAuBnB;AAEA,iBAAiB,OAAO;;CAEtB,oBAAoB;AACtB","names":[],"ignoreList":[],"sources":["../src/ui-view.ts"]}
package/dist/ui-view.js CHANGED
@@ -1,4 +1,4 @@
1
- import { LitElement } from "lit";
1
+ import { LitElement, html } from "lit";
2
2
  import { property, state } from "lit/decorators.js";
3
3
  import { ResolveContext, Transition, applyPairs, trace, isFunction, isString, unnestR, filter } from "@uirouter/core";
4
4
  import { LitViewConfig, isRoutedLitElement } from "./core.js";
@@ -12,7 +12,6 @@ export class UiView extends LitElement {
12
12
  super(..._args);
13
13
  this.name = "";
14
14
  this.component = null;
15
- this.inner = document.createDocumentFragment();
16
15
  this.viewId = viewIdCounter++;
17
16
  this.onUiViewContextEvent = (event) => {
18
17
  if (event.target === this) return;
@@ -20,8 +19,11 @@ export class UiView extends LitElement {
20
19
  event.detail.parentView = this;
21
20
  };
22
21
  this.onUiRouterContextEvent = (event) => {
22
+ if (this.seekingProvidedRouter) return;
23
23
  UIRouterLitElement.onUiRouterContextEvent(this.uiRouter)(event);
24
24
  };
25
+ this.routerFromProvider = false;
26
+ this.seekingProvidedRouter = false;
25
27
  this.disconnectedHandlers = [];
26
28
  }
27
29
  createRenderRoot() {
@@ -74,10 +76,32 @@ export class UiView extends LitElement {
74
76
  this.parentView = this.constructor.seekParentView(this);
75
77
  }
76
78
  seekRouter() {
77
- this.uiRouter = this.uiRouter || UIRouterLitElement.seekRouter(this);
79
+ if (!this.uiRouter) {
80
+ this.uiRouter = UIRouterLitElement.seekRouter(this);
81
+ this.routerFromProvider = !!this.uiRouter;
82
+ }
78
83
  this.addEventListener(UIRouterLitElement.uiRouterContextEventName, this.onUiRouterContextEvent);
79
84
  }
85
+ seekProvidedRouter() {
86
+ this.seekingProvidedRouter = true;
87
+ try {
88
+ return UIRouterLitElement.seekRouter(this);
89
+ } finally {
90
+ this.seekingProvidedRouter = false;
91
+ }
92
+ }
93
+ adoptProvidedRouter() {
94
+ const router = this.routerFromProvider ? this.seekProvidedRouter() : this.uiRouter;
95
+ if (!router || router === this.registeredRouter) return;
96
+ this.deregisterAll();
97
+ this.uiRouter = router;
98
+ this.setupUiView();
99
+ }
100
+ deregisterAll() {
101
+ while (this.disconnectedHandlers.length) this.disconnectedHandlers.shift()?.();
102
+ }
80
103
  captureContent() {
104
+ this.inner ??= document.createDocumentFragment();
81
105
  this.inner.append(...this.childNodes.values());
82
106
  }
83
107
  setupUiView() {
@@ -103,11 +127,12 @@ export class UiView extends LitElement {
103
127
  }));
104
128
  this.disconnectedHandlers.push(router.transitionService.onSuccess({}, (trans) => this._invokeUiOnParamsChangedHook(trans)));
105
129
  this.disconnectedHandlers.push(router.viewService.registerUIView(this._uiViewData));
130
+ this.registeredRouter = router;
106
131
  }
107
132
  disconnectedCallback() {
108
133
  super.disconnectedCallback();
109
134
  this.removeEventListener(this.constructor.uiViewContextEventName, this.onUiViewContextEvent);
110
- while (this.disconnectedHandlers.length) this.disconnectedHandlers.shift()?.();
135
+ this.deregisterAll();
111
136
  }
112
137
  _invokeUiCanExitHook(trans) {
113
138
  const instance = this.firstElementChild;
@@ -155,10 +180,11 @@ export class UiView extends LitElement {
155
180
  }
156
181
  firstUpdated(changed) {
157
182
  super.firstUpdated(changed);
183
+ this.adoptProvidedRouter();
158
184
  if (!this.uiRouter) warnMissingRouter(this, "<ui-view>", "will never render a routed view");
159
185
  }
160
186
  render() {
161
- if (!this.component || !this.viewAddress) return this.inner.cloneNode(true);
187
+ if (!this.component || !this.viewAddress) return this.inner?.cloneNode(true) ?? html`<slot></slot>`;
162
188
  const { uiRouter: router } = this;
163
189
  const injector = this.resolveContext.injector();
164
190
  const props = {
@@ -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"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lit-ui-router",
3
- "version": "1.12.0",
3
+ "version": "1.13.0",
4
4
  "description": "State-based routing for Lit",
5
5
  "homepage": "https://lit-ui-router.dev",
6
6
  "license": "MIT",
@@ -316,11 +316,35 @@ export class UiSrefActiveDirective extends AsyncDirective {
316
316
  UiSrefElement
317
317
  >();
318
318
 
319
+ /**
320
+ * The reverse of {@link uiSrefs}, so a re-targeting link retires its old one.
321
+ * @internal
322
+ */
323
+ private readonly _linkTargets = new WeakMap<UiSrefElement, TargetState>();
324
+
319
325
  /** @internal */
320
326
  _deregisterOnStart: deregisterFn | undefined;
321
327
  /** @internal */
322
328
  _deregisterOnStatesChanged: deregisterFn | undefined;
323
329
 
330
+ /**
331
+ * Kept across a disconnect so {@link reconnected} can re-arm.
332
+ * @internal
333
+ */
334
+ private _partElement: Element | null = null;
335
+
336
+ /**
337
+ * Replayed by {@link reconnected} so it re-arms the way `firstUpdated` did.
338
+ * @internal
339
+ */
340
+ private _lastTargetStates: TargetState[] | undefined = undefined;
341
+
342
+ /**
343
+ * Bumped on disconnect; `reconnected` re-subscribes to what is in flight.
344
+ * @internal
345
+ */
346
+ private _connection = 0;
347
+
324
348
  /** @internal */
325
349
  constructor(partInfo: PartInfo) {
326
350
  super(partInfo);
@@ -533,6 +557,8 @@ export class UiSrefActiveDirective extends AsyncDirective {
533
557
  this.options = options;
534
558
 
535
559
  const { element } = part;
560
+ this._partElement = element;
561
+ this._lastTargetStates = targetStates && Array.from(targetStates);
536
562
 
537
563
  if (this.element !== element) {
538
564
  this.element = element;
@@ -625,6 +651,9 @@ export class UiSrefActiveDirective extends AsyncDirective {
625
651
 
626
652
  /** @internal */
627
653
  disconnected(): void {
654
+ // re-arming is what `reconnected` does; without this it would no-op
655
+ this._firstUpdated = false;
656
+ this._connection++;
628
657
  if (!this.element) {
629
658
  return;
630
659
  }
@@ -638,7 +667,30 @@ export class UiSrefActiveDirective extends AsyncDirective {
638
667
  );
639
668
  this.element = null;
640
669
  this._deregisterOnStart?.();
670
+ this._deregisterOnStart = undefined;
641
671
  this._deregisterOnStatesChanged?.();
672
+ this._deregisterOnStatesChanged = undefined;
673
+ }
674
+
675
+ /**
676
+ * Re-arms after a detach/re-attach; `update` only re-arms on a NEW element.
677
+ * @internal
678
+ */
679
+ reconnected(): void {
680
+ this.element = this._partElement;
681
+ if (!this.element) {
682
+ return;
683
+ }
684
+ // a same-element uiSref reconnects first; hold its target across the re-arm
685
+ const listening = !this._lastTargetStates && !this.state;
686
+ const retained = listening ? [...this.targetStates] : [];
687
+ this.firstUpdated({ targetStates: this._lastTargetStates });
688
+ retained.forEach((targetState) => this.targetStates.add(targetState));
689
+ // whatever is in flight either started, or was let go, while disconnected
690
+ const inFlight = this.uiRouter?.globals.transition;
691
+ if (inFlight) {
692
+ this.onTransitionStart(inFlight);
693
+ }
642
694
  }
643
695
 
644
696
  /** @internal */
@@ -661,8 +713,17 @@ export class UiSrefActiveDirective extends AsyncDirective {
661
713
  /** @internal */
662
714
  onUiSrefTargetEvent = (event: UiSrefTargetEvent): void => {
663
715
  const { targetState } = event.detail;
716
+ const previous = this._linkTargets.get(event.target);
717
+ if (previous) {
718
+ this.targetStates.delete(previous);
719
+ this.uiSrefs.delete(previous);
720
+ }
664
721
  this.targetStates.add(targetState);
665
722
  this.uiSrefs.set(targetState, event.target);
723
+ this._linkTargets.set(event.target, targetState);
724
+ if (this._firstUpdated) {
725
+ this.onStatesChanged();
726
+ }
666
727
  };
667
728
 
668
729
  /** @internal */
@@ -695,26 +756,20 @@ export class UiSrefActiveDirective extends AsyncDirective {
695
756
 
696
757
  /** @internal */
697
758
  onTransitionStart = (trans: Transition): void => {
698
- this.element!.dispatchEvent(
699
- this.createTransitionStateChangeEvent(TransitionStateChange.start, trans),
700
- );
759
+ // a settlement subscribed to before a disconnect stays quiet
760
+ const connection = this._connection;
761
+ const dispatch = (evt: TransitionStateChange): void => {
762
+ if (connection !== this._connection) {
763
+ return;
764
+ }
765
+ this.element?.dispatchEvent(
766
+ this.createTransitionStateChangeEvent(evt, trans),
767
+ );
768
+ };
769
+ dispatch(TransitionStateChange.start);
701
770
  trans.promise.then(
702
- () => {
703
- this.element!.dispatchEvent(
704
- this.createTransitionStateChangeEvent(
705
- TransitionStateChange.success,
706
- trans,
707
- ),
708
- );
709
- },
710
- () => {
711
- this.element!.dispatchEvent(
712
- this.createTransitionStateChangeEvent(
713
- TransitionStateChange.error,
714
- trans,
715
- ),
716
- );
717
- },
771
+ () => dispatch(TransitionStateChange.success),
772
+ () => dispatch(TransitionStateChange.error),
718
773
  );
719
774
  };
720
775
 
package/src/ui-sref.ts CHANGED
@@ -70,12 +70,13 @@ export function uiSrefTargetEvent(targetState: TargetState): UiSrefTargetEvent {
70
70
  const paramsEqual = equals as (a: RawParams, b: RawParams) => boolean;
71
71
 
72
72
  /**
73
- * Whether two target states name the same state with the same params.
74
- * `$state.target()` returns a fresh object every render, so identity is useless.
73
+ * Whether two target states resolve to the same definition with the same params.
75
74
  * @internal
76
75
  */
77
76
  function sameTarget(a: TargetState | null, b: TargetState): boolean {
78
- return !!a && a.name() === b.name() && paramsEqual(a.params(), b.params());
77
+ return (
78
+ !!a && a.$state() === b.$state() && paramsEqual(a.params(), b.params())
79
+ );
79
80
  }
80
81
 
81
82
  /**
@@ -209,6 +210,12 @@ export class UiSrefDirective extends AsyncDirective {
209
210
  /** @internal */
210
211
  unsubscribe: (() => void) | undefined;
211
212
 
213
+ /**
214
+ * Kept across a disconnect so {@link reconnected} can re-arm.
215
+ * @internal
216
+ */
217
+ private _partElement: UiSrefElement | null = null;
218
+
212
219
  /** @internal */
213
220
  constructor(partInfo: PartInfo) {
214
221
  super(partInfo);
@@ -343,6 +350,20 @@ export class UiSrefDirective extends AsyncDirective {
343
350
  this.href = null;
344
351
  this._ownsHref = false;
345
352
  this.unsubscribe?.();
353
+ this.unsubscribe = undefined;
354
+ // re-arming is what `reconnected` does; without this it would no-op
355
+ this._firstUpdated = false;
356
+ }
357
+
358
+ /**
359
+ * Re-arms after a detach/re-attach; `update` only re-arms on a NEW element.
360
+ * @internal
361
+ */
362
+ reconnected(): void {
363
+ this.element = this._partElement;
364
+ if (this.element) {
365
+ this.firstUpdated();
366
+ }
346
367
  }
347
368
 
348
369
  onClick = (event: MouseEvent): void => {
@@ -393,6 +414,7 @@ export class UiSrefDirective extends AsyncDirective {
393
414
  this.options = transitionOptions;
394
415
  this.uiSrefOptions = { assignHref };
395
416
  const uiSrefElement = part.element as unknown as UiSrefElement;
417
+ this._partElement = uiSrefElement;
396
418
  if (this.element !== uiSrefElement) {
397
419
  this.element = uiSrefElement;
398
420
  this._firstUpdated = false;
package/src/ui-view.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { LitElement } from 'lit';
1
+ import { LitElement, html } from 'lit';
2
2
  import type { PropertyValues, TemplateResult } from 'lit';
3
3
  import { property, state } from 'lit/decorators.js';
4
4
  import {
@@ -51,6 +51,10 @@ type deregisterFn = () => void;
51
51
 
52
52
  /**
53
53
  * @hideconstructor
54
+ *
55
+ * @slot - <code>&lt;ui-view&gt;</code> renders slotted content as fallback
56
+ * whenever no routed component is active.
57
+ *
54
58
  * @fires {CustomEvent} ui-router-context
55
59
  *
56
60
  * This event is fired to obtain the <code>uiRouter</code> instance,
@@ -89,7 +93,8 @@ export class UiView extends LitElement {
89
93
  @state()
90
94
  private component: RoutedLitTemplate | null = null;
91
95
 
92
- private readonly inner = document.createDocumentFragment();
96
+ /** Created on connect: the @lit-labs/ssr DOM shim has no `createDocumentFragment`. */
97
+ private inner?: DocumentFragment;
93
98
 
94
99
  /** @internal */
95
100
  createRenderRoot(): this {
@@ -190,18 +195,86 @@ export class UiView extends LitElement {
190
195
  }
191
196
 
192
197
  private readonly onUiRouterContextEvent = (event: UiRouterContextEvent) => {
198
+ // Answering our own re-seek would just hand back the router we are replacing.
199
+ if (this.seekingProvidedRouter) {
200
+ return;
201
+ }
193
202
  UIRouterLitElement.onUiRouterContextEvent(this.uiRouter)(event);
194
203
  };
195
204
 
196
205
  private seekRouter() {
197
- this.uiRouter = this.uiRouter || UIRouterLitElement.seekRouter(this);
206
+ if (!this.uiRouter) {
207
+ this.uiRouter = UIRouterLitElement.seekRouter(this)!;
208
+ // A sought router can be superseded; an app-provided one never is.
209
+ this.routerFromProvider = !!this.uiRouter;
210
+ }
198
211
  this.addEventListener(
199
212
  UIRouterLitElement.uiRouterContextEventName,
200
213
  this.onUiRouterContextEvent as EventListener,
201
214
  );
202
215
  }
203
216
 
217
+ /** Whether `uiRouter` came from the context event rather than the app. */
218
+ private routerFromProvider = false;
219
+
220
+ /** The router this view registered with; a late upgrade can supersede it. */
221
+ private registeredRouter?: UIRouterLit;
222
+
223
+ /** Set only for the synchronous span of our own re-seek. */
224
+ private seekingProvidedRouter = false;
225
+
226
+ /**
227
+ * Seeks the provider's router, past our own answer.
228
+ *
229
+ * `<ui-view>` answers this event for descendants and stops it, deliberately —
230
+ * see `listener-identity.spec.ts`. Suppressing that for the span of our own
231
+ * dispatch keeps the guarantee intact for everyone else.
232
+ */
233
+ private seekProvidedRouter(): UIRouterLit | undefined {
234
+ this.seekingProvidedRouter = true;
235
+ try {
236
+ return UIRouterLitElement.seekRouter(this);
237
+ } finally {
238
+ this.seekingProvidedRouter = false;
239
+ }
240
+ }
241
+
242
+ /**
243
+ * Adopts the router the provider now offers, when this view registered
244
+ * without it.
245
+ *
246
+ * lit replays a pre-upgrade property inside the element's first update, not
247
+ * at upgrade, so `<ui-router>` can run `connectedCallback` with `uiRouter`
248
+ * still undefined and provide an instance of its own; a `<ui-view>`
249
+ * connecting in between registers with that one and never sees a transition.
250
+ * Firefox upgrades a detached subtree later than Chrome and WebKit, so
251
+ * declarative shadow DOM parsed off-document reaches this there first.
252
+ *
253
+ * `registerUIView` syncs, so the re-registered view picks up the current
254
+ * state without waiting for the next transition.
255
+ */
256
+ private adoptProvidedRouter(): void {
257
+ const router = this.routerFromProvider
258
+ ? this.seekProvidedRouter()
259
+ : this.uiRouter;
260
+ if (!router || router === this.registeredRouter) {
261
+ return;
262
+ }
263
+
264
+ this.deregisterAll();
265
+ this.uiRouter = router;
266
+ this.setupUiView();
267
+ }
268
+
269
+ private deregisterAll(): void {
270
+ while (this.disconnectedHandlers.length) {
271
+ const handler = this.disconnectedHandlers.shift();
272
+ handler?.();
273
+ }
274
+ }
275
+
204
276
  private captureContent() {
277
+ this.inner ??= document.createDocumentFragment();
205
278
  this.inner.append(...this.childNodes.values());
206
279
  }
207
280
 
@@ -247,6 +320,7 @@ export class UiView extends LitElement {
247
320
  this.disconnectedHandlers.push(
248
321
  router.viewService.registerUIView(this._uiViewData),
249
322
  );
323
+ this.registeredRouter = router;
250
324
  }
251
325
 
252
326
  /** @internal */
@@ -257,10 +331,7 @@ export class UiView extends LitElement {
257
331
  this.onUiViewContextEvent as EventListener,
258
332
  );
259
333
 
260
- while (this.disconnectedHandlers.length) {
261
- const handler = this.disconnectedHandlers.shift();
262
- handler?.();
263
- }
334
+ this.deregisterAll();
264
335
  }
265
336
 
266
337
  /**
@@ -377,6 +448,7 @@ export class UiView extends LitElement {
377
448
  */
378
449
  protected firstUpdated(changed: PropertyValues): void {
379
450
  super.firstUpdated(changed);
451
+ this.adoptProvidedRouter();
380
452
  if (!this.uiRouter) {
381
453
  warnMissingRouter(this, '<ui-view>', 'will never render a routed view');
382
454
  }
@@ -385,7 +457,8 @@ export class UiView extends LitElement {
385
457
  /** @internal */
386
458
  render(): Node | TemplateResult {
387
459
  if (!this.component || !this.viewAddress) {
388
- return this.inner.cloneNode(true);
460
+ // Never connected (server render): an empty declarative shadow root would hide the light DOM.
461
+ return this.inner?.cloneNode(true) ?? html`<slot></slot>`;
389
462
  }
390
463
 
391
464
  const { uiRouter: router } = this;