lit-ui-router 1.13.0 → 1.14.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.
- package/README.md +4 -0
- package/dist/core.d.ts +2 -2
- package/dist/custom-elements.json +2 -0
- package/dist/development/pure.js +3 -0
- package/dist/development/pure.js.map +1 -1
- package/dist/development/sref-active.js +170 -0
- package/dist/development/sref-active.js.map +1 -0
- package/dist/development/sref-href.js +97 -0
- package/dist/development/sref-href.js.map +1 -0
- package/dist/development/sref-status-controller.js +115 -0
- package/dist/development/sref-status-controller.js.map +1 -0
- package/dist/development/sref-status.js +44 -0
- package/dist/development/sref-status.js.map +1 -0
- package/dist/development/ui-router.js.map +1 -1
- package/dist/development/ui-sref-active.js +18 -15
- package/dist/development/ui-sref-active.js.map +1 -1
- package/dist/development/ui-sref.js +27 -10
- package/dist/development/ui-sref.js.map +1 -1
- package/dist/development/ui-view.js.map +1 -1
- package/dist/interface.d.ts +33 -23
- package/dist/interface.d.ts.map +1 -1
- package/dist/pure.d.ts +3 -0
- package/dist/pure.d.ts.map +1 -1
- package/dist/pure.js +3 -0
- package/dist/pure.js.map +1 -1
- package/dist/sref-active.d.ts +272 -0
- package/dist/sref-active.d.ts.map +1 -0
- package/dist/sref-active.js +170 -0
- package/dist/sref-active.js.map +1 -0
- package/dist/sref-href.d.ts +107 -0
- package/dist/sref-href.d.ts.map +1 -0
- package/dist/sref-href.js +97 -0
- package/dist/sref-href.js.map +1 -0
- package/dist/sref-status-controller.d.ts +169 -0
- package/dist/sref-status-controller.d.ts.map +1 -0
- package/dist/sref-status-controller.js +115 -0
- package/dist/sref-status-controller.js.map +1 -0
- package/dist/sref-status.d.ts +53 -0
- package/dist/sref-status.d.ts.map +1 -0
- package/dist/sref-status.js +44 -0
- package/dist/sref-status.js.map +1 -0
- package/dist/transition-controller.d.ts +19 -19
- package/dist/ui-router.d.ts +1 -0
- package/dist/ui-router.d.ts.map +1 -1
- package/dist/ui-router.js.map +1 -1
- package/dist/ui-sref-active.d.ts +30 -7
- package/dist/ui-sref-active.d.ts.map +1 -1
- package/dist/ui-sref-active.js +18 -15
- package/dist/ui-sref-active.js.map +1 -1
- package/dist/ui-sref.d.ts +59 -8
- package/dist/ui-sref.d.ts.map +1 -1
- package/dist/ui-sref.js +27 -10
- package/dist/ui-sref.js.map +1 -1
- package/dist/ui-view.d.ts +2 -0
- package/dist/ui-view.d.ts.map +1 -1
- package/dist/ui-view.js.map +1 -1
- package/package.json +1 -1
- package/src/core.ts +2 -2
- package/src/interface.ts +33 -23
- package/src/pure.ts +3 -0
- package/src/sref-active.ts +558 -0
- package/src/sref-href.ts +258 -0
- package/src/sref-status-controller.ts +358 -0
- package/src/sref-status.ts +127 -0
- package/src/transition-controller.ts +19 -19
- package/src/ui-router.ts +1 -0
- package/src/ui-sref-active.ts +74 -52
- package/src/ui-sref.ts +94 -29
- package/src/ui-view.ts +2 -0
package/README.md
CHANGED
|
@@ -91,6 +91,10 @@ class UserDetail extends LitElement {
|
|
|
91
91
|
}
|
|
92
92
|
```
|
|
93
93
|
|
|
94
|
+
## Navigation Links
|
|
95
|
+
|
|
96
|
+
`uiSref` and `uiSrefActive` bind a link from the element; `srefHref`, `srefActiveClass` and `srefAriaCurrent` bind the same link from inside the attribute it writes, so the `href` is real markup a static analyser or server renderer can read — see [Attribute-part forms](https://lit-ui-router.dev/api/#attribute-part-forms).
|
|
97
|
+
|
|
94
98
|
## Documentation
|
|
95
99
|
|
|
96
100
|
Visit [lit-ui-router.dev](https://lit-ui-router.dev) for full documentation, tutorials, and API reference.
|
package/dist/core.d.ts
CHANGED
|
@@ -65,7 +65,7 @@ export declare function litViewsBuilder<T extends DefaultResolvesType = DefaultR
|
|
|
65
65
|
/**
|
|
66
66
|
* The main router class for Lit applications.
|
|
67
67
|
*
|
|
68
|
-
* UIRouterLit extends the core {@link
|
|
68
|
+
* UIRouterLit extends the core {@link UIRouter}
|
|
69
69
|
* class from @uirouter/core, adding Lit-specific view handling and component integration.
|
|
70
70
|
*
|
|
71
71
|
* @example Basic usage
|
|
@@ -105,7 +105,7 @@ export declare function litViewsBuilder<T extends DefaultResolvesType = DefaultR
|
|
|
105
105
|
* ```
|
|
106
106
|
*
|
|
107
107
|
* @see {@link https://ui-router.github.io/core/docs/latest/ | UI-Router Core Documentation}
|
|
108
|
-
* @see {@link
|
|
108
|
+
* @see {@link UIRouter | UIRouter API Reference}
|
|
109
109
|
*
|
|
110
110
|
* @category core
|
|
111
111
|
*/
|
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
"text": "string"
|
|
25
25
|
},
|
|
26
26
|
"default": "''",
|
|
27
|
+
"description": "the view name this viewport fills; empty selects the `$default` view",
|
|
27
28
|
"attribute": "name"
|
|
28
29
|
},
|
|
29
30
|
{
|
|
@@ -295,6 +296,7 @@
|
|
|
295
296
|
"text": "string"
|
|
296
297
|
},
|
|
297
298
|
"default": "''",
|
|
299
|
+
"description": "the view name this viewport fills; empty selects the `$default` view",
|
|
298
300
|
"fieldName": "name"
|
|
299
301
|
}
|
|
300
302
|
],
|
package/dist/development/pure.js
CHANGED
|
@@ -4,4 +4,7 @@ export * from "./ui-router.js";
|
|
|
4
4
|
export * from "./ui-view.js";
|
|
5
5
|
export * from "./ui-sref.js";
|
|
6
6
|
export * from "./ui-sref-active.js";
|
|
7
|
+
export * from "./sref-href.js";
|
|
8
|
+
export * from "./sref-active.js";
|
|
9
|
+
export * from "./sref-status-controller.js";
|
|
7
10
|
//# sourceMappingURL=pure.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pure.js","mappings":"AAEA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc","names":[],"ignoreList":[],"sources":["../../src/pure.ts"]}
|
|
1
|
+
{"version":3,"file":"pure.js","mappings":"AAEA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc","names":[],"ignoreList":[],"sources":["../../src/pure.ts"]}
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
import { noChange, nothing } from "lit";
|
|
2
|
+
import { directive, PartType } from "lit/directive.js";
|
|
3
|
+
import { AsyncDirective } from "lit/async-directive.js";
|
|
4
|
+
import { warnMissingRouter } from "./dev-warn.js";
|
|
5
|
+
import { resolveAriaCurrent, SrefTargets } from "./sref-status.js";
|
|
6
|
+
import { UIRouterLitElement } from "./ui-router.js";
|
|
7
|
+
import { UI_SREF_TARGET_EVENT, UI_SREF_TARGET_REMOVED_EVENT } from "./ui-sref.js";
|
|
8
|
+
import { UiView } from "./ui-view.js";
|
|
9
|
+
export class SrefStatusDirective extends AsyncDirective {
|
|
10
|
+
constructor(partInfo, directiveName) {
|
|
11
|
+
super(partInfo);
|
|
12
|
+
this.directiveName = directiveName;
|
|
13
|
+
this.element = null;
|
|
14
|
+
this.parentView = null;
|
|
15
|
+
this.targets = new SrefTargets();
|
|
16
|
+
this._firstUpdated = false;
|
|
17
|
+
this._deregister = [];
|
|
18
|
+
this._connection = 0;
|
|
19
|
+
this.onUiSrefTargetEvent = (event) => {
|
|
20
|
+
this.targets.onLink(event);
|
|
21
|
+
this.refresh();
|
|
22
|
+
};
|
|
23
|
+
this.onUiSrefTargetRemovedEvent = (event) => {
|
|
24
|
+
if (this.targets.onLinkRemoved(event)) this.refresh();
|
|
25
|
+
};
|
|
26
|
+
this.onStatesChanged = () => {
|
|
27
|
+
this.targets.rebuild();
|
|
28
|
+
this.refresh();
|
|
29
|
+
};
|
|
30
|
+
this.onTransitionStart = (trans) => {
|
|
31
|
+
const connection = this._connection;
|
|
32
|
+
const settled = (evt) => {
|
|
33
|
+
if (connection === this._connection) this.refresh({
|
|
34
|
+
evt,
|
|
35
|
+
trans
|
|
36
|
+
});
|
|
37
|
+
};
|
|
38
|
+
this.refresh({
|
|
39
|
+
evt: "start",
|
|
40
|
+
trans
|
|
41
|
+
});
|
|
42
|
+
trans.promise.then(() => settled("success"), () => settled("error"));
|
|
43
|
+
};
|
|
44
|
+
if (partInfo.type !== PartType.ATTRIBUTE) throw new Error(`The \`${directiveName}\` directive must be used in an attribute`);
|
|
45
|
+
this.attributeName = partInfo.name;
|
|
46
|
+
}
|
|
47
|
+
update(part, [params]) {
|
|
48
|
+
this.params = params;
|
|
49
|
+
this.targets.params = params;
|
|
50
|
+
if (this.element !== part.element) {
|
|
51
|
+
this.element = part.element;
|
|
52
|
+
this._firstUpdated = false;
|
|
53
|
+
setTimeout(() => {
|
|
54
|
+
this.firstUpdated();
|
|
55
|
+
}, 0);
|
|
56
|
+
} else if (this.uiRouter) {
|
|
57
|
+
this.targets.setExplicit();
|
|
58
|
+
this.refresh();
|
|
59
|
+
return noChange;
|
|
60
|
+
}
|
|
61
|
+
return this.commit();
|
|
62
|
+
}
|
|
63
|
+
firstUpdated() {
|
|
64
|
+
if (this._firstUpdated || !this.isConnected) return;
|
|
65
|
+
const element = this.element;
|
|
66
|
+
this.uiRouter = UIRouterLitElement.seekRouter(element);
|
|
67
|
+
this.parentView = UiView.seekParentView(element);
|
|
68
|
+
this.targets.router = this.uiRouter;
|
|
69
|
+
this.targets.relative = this.parentView?.viewContext?.name;
|
|
70
|
+
this.targets.setExplicit();
|
|
71
|
+
element.addEventListener(UI_SREF_TARGET_EVENT, this.onUiSrefTargetEvent);
|
|
72
|
+
element.addEventListener(UI_SREF_TARGET_REMOVED_EVENT, this.onUiSrefTargetRemovedEvent);
|
|
73
|
+
this._deregister.push(() => {
|
|
74
|
+
element.removeEventListener(UI_SREF_TARGET_EVENT, this.onUiSrefTargetEvent);
|
|
75
|
+
element.removeEventListener(UI_SREF_TARGET_REMOVED_EVENT, this.onUiSrefTargetRemovedEvent);
|
|
76
|
+
});
|
|
77
|
+
const router = this.uiRouter;
|
|
78
|
+
if (router) this._deregister.push(router.transitionService.onStart({}, this.onTransitionStart, { priority: -Infinity }), router.stateRegistry.onStatesChanged(this.onStatesChanged));
|
|
79
|
+
else warnMissingRouter(element, `<${element.localName} ${this.attributeName}=\${${this.directiveName}(...)}>`, "will never be marked active");
|
|
80
|
+
this._firstUpdated = true;
|
|
81
|
+
this.refresh();
|
|
82
|
+
}
|
|
83
|
+
refresh(event) {
|
|
84
|
+
this.status = this.targets.status(event);
|
|
85
|
+
const value = this.commit();
|
|
86
|
+
if (value !== noChange && this.isConnected) this.setValue(value);
|
|
87
|
+
}
|
|
88
|
+
disconnected() {
|
|
89
|
+
this._connection++;
|
|
90
|
+
this._deregister.forEach((deregister) => deregister());
|
|
91
|
+
this._deregister = [];
|
|
92
|
+
this._firstUpdated = false;
|
|
93
|
+
}
|
|
94
|
+
reconnected() {
|
|
95
|
+
setTimeout(() => {
|
|
96
|
+
this.firstUpdated();
|
|
97
|
+
}, 0);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
export class SrefActiveClassDirective extends SrefStatusDirective {
|
|
101
|
+
constructor(partInfo) {
|
|
102
|
+
super(partInfo, "srefActiveClass");
|
|
103
|
+
const { name, strings } = partInfo;
|
|
104
|
+
if (name !== "class" || (strings?.length ?? 0) > 2) throw new Error("`srefActiveClass()` can only be used in the `class` attribute and must be the only expression in it");
|
|
105
|
+
}
|
|
106
|
+
classInfo({ activeClasses = [], exactClasses = [], classes = {} }) {
|
|
107
|
+
const info = {};
|
|
108
|
+
const { active = false, exact = false } = this.status ?? {};
|
|
109
|
+
for (const name in classes) info[name] = !!classes[name];
|
|
110
|
+
for (const name of activeClasses) info[name] = info[name] || active;
|
|
111
|
+
for (const name of exactClasses) info[name] = info[name] || exact;
|
|
112
|
+
return info;
|
|
113
|
+
}
|
|
114
|
+
render(params) {
|
|
115
|
+
if (!this.status) return noChange;
|
|
116
|
+
const info = this.classInfo(params);
|
|
117
|
+
return " " + Object.keys(info).filter((name) => info[name]).join(" ") + " ";
|
|
118
|
+
}
|
|
119
|
+
update(part, args) {
|
|
120
|
+
if (this._staticClasses === void 0 && part.strings !== void 0) this._staticClasses = new Set(part.strings.join(" ").split(/\s/).filter((s) => s !== ""));
|
|
121
|
+
return super.update(part, args);
|
|
122
|
+
}
|
|
123
|
+
commit() {
|
|
124
|
+
const info = this.classInfo(this.params);
|
|
125
|
+
if (this._previousClasses === void 0) {
|
|
126
|
+
const value = this.render(this.params);
|
|
127
|
+
if (value === noChange) return value;
|
|
128
|
+
this._previousClasses = new Set();
|
|
129
|
+
for (const name in info) if (info[name] && !this._staticClasses?.has(name)) this._previousClasses.add(name);
|
|
130
|
+
return value;
|
|
131
|
+
}
|
|
132
|
+
const { classList } = this.element;
|
|
133
|
+
for (const name of this._previousClasses) if (!(name in info)) {
|
|
134
|
+
classList.remove(name);
|
|
135
|
+
this._previousClasses.delete(name);
|
|
136
|
+
}
|
|
137
|
+
for (const name in info) {
|
|
138
|
+
const value = info[name];
|
|
139
|
+
if (value !== this._previousClasses.has(name) && !this._staticClasses?.has(name)) {
|
|
140
|
+
if (value) {
|
|
141
|
+
classList.add(name);
|
|
142
|
+
this._previousClasses.add(name);
|
|
143
|
+
} else {
|
|
144
|
+
classList.remove(name);
|
|
145
|
+
this._previousClasses.delete(name);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
return noChange;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
export class SrefAriaCurrentDirective extends SrefStatusDirective {
|
|
153
|
+
constructor(partInfo) {
|
|
154
|
+
super(partInfo, "srefAriaCurrent");
|
|
155
|
+
this._wrote = false;
|
|
156
|
+
if (partInfo.strings !== void 0) throw new Error("`srefAriaCurrent()` must be the only expression in its attribute");
|
|
157
|
+
}
|
|
158
|
+
commit() {
|
|
159
|
+
if (!this.status) return this._wrote ? nothing : noChange;
|
|
160
|
+
this._wrote = true;
|
|
161
|
+
return this.render(this.params);
|
|
162
|
+
}
|
|
163
|
+
render({ value = "page" }) {
|
|
164
|
+
if (!this.status) return noChange;
|
|
165
|
+
return resolveAriaCurrent(this.status, value);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
export const srefActiveClass = directive(SrefActiveClassDirective);
|
|
169
|
+
export const srefAriaCurrent = directive(SrefAriaCurrentDirective);
|
|
170
|
+
//# sourceMappingURL=sref-active.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sref-active.js","mappings":"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","names":[],"ignoreList":[],"sources":["../../src/sref-active.ts"]}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { noChange, nothing } from "lit";
|
|
2
|
+
import { directive, PartType } from "lit/directive.js";
|
|
3
|
+
import { AsyncDirective } from "lit/async-directive.js";
|
|
4
|
+
import { warnMissingRouter } from "./dev-warn.js";
|
|
5
|
+
import { UIRouterLitElement } from "./ui-router.js";
|
|
6
|
+
import { clickBelongsToBrowser, sameTarget, srefTransitionOptions, uiSrefTargetEvent, uiSrefTargetRemovedEvent } from "./ui-sref.js";
|
|
7
|
+
import { UiView } from "./ui-view.js";
|
|
8
|
+
export class SrefHrefDirective extends AsyncDirective {
|
|
9
|
+
constructor(partInfo) {
|
|
10
|
+
super(partInfo);
|
|
11
|
+
this.state = null;
|
|
12
|
+
this.params = {};
|
|
13
|
+
this.options = {};
|
|
14
|
+
this.element = null;
|
|
15
|
+
this.parentView = null;
|
|
16
|
+
this.href = null;
|
|
17
|
+
this.targetState = null;
|
|
18
|
+
this._seekedRouter = false;
|
|
19
|
+
this._firstUpdated = false;
|
|
20
|
+
this.doRender = () => {
|
|
21
|
+
const value = this.render(this.state, this.params, this.options);
|
|
22
|
+
if (value !== noChange && this.isConnected) this.setValue(value);
|
|
23
|
+
};
|
|
24
|
+
this.onClick = (event) => {
|
|
25
|
+
const { uiRouter: router, state, params } = this;
|
|
26
|
+
const $state = router?.stateService;
|
|
27
|
+
if (!$state || !this.element?.isConnected || !state) {
|
|
28
|
+
if (!$state && state && this.element?.isConnected) this.warnMissingRouter(state);
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
if (clickBelongsToBrowser(event, event.currentTarget)) return;
|
|
32
|
+
$state.go(state, params, this.getOptions());
|
|
33
|
+
event.preventDefault();
|
|
34
|
+
};
|
|
35
|
+
if (partInfo.type !== PartType.ATTRIBUTE || partInfo.strings !== void 0) throw new Error("The `srefHref` directive must be the only expression in an attribute: href=${srefHref(...)}");
|
|
36
|
+
}
|
|
37
|
+
getOptions(opts = this.options) {
|
|
38
|
+
return srefTransitionOptions(this.parentView, opts);
|
|
39
|
+
}
|
|
40
|
+
render(state, params, options) {
|
|
41
|
+
const $state = this.uiRouter?.stateService;
|
|
42
|
+
if (!$state) {
|
|
43
|
+
if (this._seekedRouter) this.warnMissingRouter(state);
|
|
44
|
+
return noChange;
|
|
45
|
+
}
|
|
46
|
+
const targetState = $state.target(state, params, this.getOptions(options));
|
|
47
|
+
const targetChanged = !sameTarget(this.targetState, targetState);
|
|
48
|
+
this.targetState = targetState;
|
|
49
|
+
this.href = $state.href(state, params, this.getOptions(options));
|
|
50
|
+
if (targetChanged && this.element) this.element.dispatchEvent(uiSrefTargetEvent(targetState));
|
|
51
|
+
return this.href ?? nothing;
|
|
52
|
+
}
|
|
53
|
+
update(part, [state, params = {}, options = {}]) {
|
|
54
|
+
this.state = state;
|
|
55
|
+
this.params = params;
|
|
56
|
+
this.options = options;
|
|
57
|
+
if (this.element !== part.element) {
|
|
58
|
+
this.element = part.element;
|
|
59
|
+
this._firstUpdated = false;
|
|
60
|
+
setTimeout(() => {
|
|
61
|
+
this.firstUpdated();
|
|
62
|
+
}, 0);
|
|
63
|
+
}
|
|
64
|
+
return this.render(state, params, options);
|
|
65
|
+
}
|
|
66
|
+
firstUpdated() {
|
|
67
|
+
if (this._firstUpdated || !this.isConnected) return;
|
|
68
|
+
const element = this.element;
|
|
69
|
+
this.uiRouter = UIRouterLitElement.seekRouter(element);
|
|
70
|
+
this._seekedRouter = true;
|
|
71
|
+
this.parentView = UiView.seekParentView(element);
|
|
72
|
+
element.addEventListener("click", this.onClick);
|
|
73
|
+
if (this.uiRouter) this.unsubscribe = this.uiRouter.stateRegistry.onStatesChanged(this.doRender);
|
|
74
|
+
this.doRender();
|
|
75
|
+
this._firstUpdated = true;
|
|
76
|
+
}
|
|
77
|
+
warnMissingRouter(state) {
|
|
78
|
+
const element = this.element;
|
|
79
|
+
if (!element) return;
|
|
80
|
+
warnMissingRouter(element, `<${element.localName} href=\${srefHref('${state}')}>`, "will not navigate");
|
|
81
|
+
}
|
|
82
|
+
disconnected() {
|
|
83
|
+
this.element?.removeEventListener("click", this.onClick);
|
|
84
|
+
this.element?.dispatchEvent(uiSrefTargetRemovedEvent());
|
|
85
|
+
this.targetState = null;
|
|
86
|
+
this.unsubscribe?.();
|
|
87
|
+
this.unsubscribe = void 0;
|
|
88
|
+
this._firstUpdated = false;
|
|
89
|
+
}
|
|
90
|
+
reconnected() {
|
|
91
|
+
setTimeout(() => {
|
|
92
|
+
this.firstUpdated();
|
|
93
|
+
}, 0);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
export const srefHref = directive(SrefHrefDirective);
|
|
97
|
+
//# sourceMappingURL=sref-href.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sref-href.js","mappings":"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","names":[],"ignoreList":[],"sources":["../../src/sref-href.ts"]}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { nothing } from "lit";
|
|
2
|
+
import { warnMissingRouter } from "./dev-warn.js";
|
|
3
|
+
import { resolveAriaCurrent, SrefTargets } from "./sref-status.js";
|
|
4
|
+
import { UIRouterLitElement } from "./ui-router.js";
|
|
5
|
+
import { UI_SREF_TARGET_EVENT, UI_SREF_TARGET_REMOVED_EVENT } from "./ui-sref.js";
|
|
6
|
+
import { UiView } from "./ui-view.js";
|
|
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]);
|
|
8
|
+
export class SrefStatusController {
|
|
9
|
+
constructor(host, options = {}) {
|
|
10
|
+
this.targets = new SrefTargets();
|
|
11
|
+
this.deregisterFns = [];
|
|
12
|
+
this.computed = false;
|
|
13
|
+
this._connection = 0;
|
|
14
|
+
this.onUiSrefTargetEvent = (event) => {
|
|
15
|
+
this.targets.onLink(event);
|
|
16
|
+
this.refresh();
|
|
17
|
+
};
|
|
18
|
+
this.onUiSrefTargetRemovedEvent = (event) => {
|
|
19
|
+
if (this.targets.onLinkRemoved(event)) this.refresh();
|
|
20
|
+
};
|
|
21
|
+
this.onStatesChanged = () => {
|
|
22
|
+
this.targets.rebuild();
|
|
23
|
+
this.refresh();
|
|
24
|
+
};
|
|
25
|
+
this.onTransitionStart = (trans) => {
|
|
26
|
+
const connection = this._connection;
|
|
27
|
+
const settled = (evt) => {
|
|
28
|
+
if (connection === this._connection) this.refresh({
|
|
29
|
+
evt,
|
|
30
|
+
trans
|
|
31
|
+
});
|
|
32
|
+
};
|
|
33
|
+
this.refresh({
|
|
34
|
+
evt: "start",
|
|
35
|
+
trans
|
|
36
|
+
});
|
|
37
|
+
trans.promise.then(() => settled("success"), () => settled("error"));
|
|
38
|
+
};
|
|
39
|
+
this.host = host;
|
|
40
|
+
this.options = options;
|
|
41
|
+
this.targets.params = options;
|
|
42
|
+
host.addController(this);
|
|
43
|
+
if (options.router) {
|
|
44
|
+
this.targets.router = options.router;
|
|
45
|
+
this.targets.setExplicit();
|
|
46
|
+
this.compute();
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
get router() {
|
|
50
|
+
return this.targets.router;
|
|
51
|
+
}
|
|
52
|
+
get status() {
|
|
53
|
+
return this._status;
|
|
54
|
+
}
|
|
55
|
+
get active() {
|
|
56
|
+
return this._status?.active ?? false;
|
|
57
|
+
}
|
|
58
|
+
get exact() {
|
|
59
|
+
return this._status?.exact ?? false;
|
|
60
|
+
}
|
|
61
|
+
get entering() {
|
|
62
|
+
return this._status?.entering ?? false;
|
|
63
|
+
}
|
|
64
|
+
get exiting() {
|
|
65
|
+
return this._status?.exiting ?? false;
|
|
66
|
+
}
|
|
67
|
+
get targetStates() {
|
|
68
|
+
return this._status?.targetStates ?? [];
|
|
69
|
+
}
|
|
70
|
+
retarget(params) {
|
|
71
|
+
this.options = {
|
|
72
|
+
router: this.options.router,
|
|
73
|
+
...params
|
|
74
|
+
};
|
|
75
|
+
this.targets.params = this.options;
|
|
76
|
+
this.targets.setExplicit();
|
|
77
|
+
this.refresh();
|
|
78
|
+
}
|
|
79
|
+
ariaCurrent(value) {
|
|
80
|
+
return this._status ? resolveAriaCurrent(this._status, value) : nothing;
|
|
81
|
+
}
|
|
82
|
+
hostConnected() {
|
|
83
|
+
const { host } = this;
|
|
84
|
+
this.targets.router ??= this.options.router ?? UIRouterLitElement.seekRouter(host);
|
|
85
|
+
this.targets.relative = UiView.seekParentView(host)?.viewContext?.name;
|
|
86
|
+
this.targets.setExplicit();
|
|
87
|
+
const scope = host.renderRoot ?? host;
|
|
88
|
+
scope.addEventListener(UI_SREF_TARGET_EVENT, this.onUiSrefTargetEvent);
|
|
89
|
+
scope.addEventListener(UI_SREF_TARGET_REMOVED_EVENT, this.onUiSrefTargetRemovedEvent);
|
|
90
|
+
this.deregisterFns.push(() => {
|
|
91
|
+
scope.removeEventListener(UI_SREF_TARGET_EVENT, this.onUiSrefTargetEvent);
|
|
92
|
+
scope.removeEventListener(UI_SREF_TARGET_REMOVED_EVENT, this.onUiSrefTargetRemovedEvent);
|
|
93
|
+
});
|
|
94
|
+
const router = this.targets.router;
|
|
95
|
+
if (router) this.deregisterFns.push(router.transitionService.onStart({}, this.onTransitionStart, { priority: -Infinity }), router.stateRegistry.onStatesChanged(this.onStatesChanged));
|
|
96
|
+
else warnMissingRouter(host, `new SrefStatusController() on <${host.localName}>`, "will never be marked active");
|
|
97
|
+
this.refresh();
|
|
98
|
+
}
|
|
99
|
+
hostDisconnected() {
|
|
100
|
+
this._connection++;
|
|
101
|
+
while (this.deregisterFns.length) this.deregisterFns.shift()?.();
|
|
102
|
+
if (!this.options.router) this.targets.router = void 0;
|
|
103
|
+
}
|
|
104
|
+
refresh(event) {
|
|
105
|
+
if (this.compute(event)) this.host.requestUpdate();
|
|
106
|
+
}
|
|
107
|
+
compute(event) {
|
|
108
|
+
const before = this._status;
|
|
109
|
+
this._status = this.targets.status(event);
|
|
110
|
+
const first = !this.computed;
|
|
111
|
+
this.computed = true;
|
|
112
|
+
return first || !sameShape(before, this._status);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=sref-status-controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sref-status-controller.js","mappings":"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","names":[],"ignoreList":[],"sources":["../../src/sref-status-controller.ts"]}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { extend } from "@uirouter/core";
|
|
2
|
+
import { nothing } from "lit";
|
|
3
|
+
import { srefEventLink } from "./ui-sref.js";
|
|
4
|
+
import { mergeSrefStatus, srefStatus } from "./ui-sref-active.js";
|
|
5
|
+
export class SrefTargets {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.params = {};
|
|
8
|
+
this.explicit = null;
|
|
9
|
+
this.links = new Map();
|
|
10
|
+
}
|
|
11
|
+
options() {
|
|
12
|
+
const defaultOpts = { relative: this.relative };
|
|
13
|
+
return extend(defaultOpts, this.params.options || {});
|
|
14
|
+
}
|
|
15
|
+
setExplicit() {
|
|
16
|
+
const { state, params = {} } = this.params;
|
|
17
|
+
this.explicit = state && this.router ? this.router.stateService.target(state, params, this.options()) : null;
|
|
18
|
+
}
|
|
19
|
+
onLink(event) {
|
|
20
|
+
this.links.set(srefEventLink(event), event.detail.targetState);
|
|
21
|
+
}
|
|
22
|
+
onLinkRemoved(event) {
|
|
23
|
+
return this.links.delete(srefEventLink(event));
|
|
24
|
+
}
|
|
25
|
+
rebuild() {
|
|
26
|
+
this.setExplicit();
|
|
27
|
+
const $state = this.router.stateService;
|
|
28
|
+
for (const [element, target] of this.links) this.links.set(element, $state.target(target.identifier(), target.params(), target.options()));
|
|
29
|
+
}
|
|
30
|
+
list() {
|
|
31
|
+
for (const element of this.links.keys()) if (!element.isConnected) this.links.delete(element);
|
|
32
|
+
return this.explicit ? [this.explicit] : [...this.links.values()];
|
|
33
|
+
}
|
|
34
|
+
status(event) {
|
|
35
|
+
const router = this.router;
|
|
36
|
+
const targets = this.list();
|
|
37
|
+
return router && targets.length ? targets.map((target) => srefStatus(router, event, target)).reduce(mergeSrefStatus) : void 0;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
export function resolveAriaCurrent(status, value = "page") {
|
|
41
|
+
const values = typeof value === "object" ? value : { exact: value };
|
|
42
|
+
return (status.exact ? values.exact ?? "page" : status.active ? values.active ?? false : false) || nothing;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=sref-status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sref-status.js","mappings":"AAAA,SACE,cAIK;AACP,SAAS,eAAe;AAGxB,SAAS,qBAAwC;AACjD,SAGE,iBAEA,kBAEK;AAYP,OAAO,MAAM,YAAY;;gBAKI,CAAC;kBAMW;eAGd,IAAI,IAA0B;;CAGvD,UAA6B;EAC3B,MAAM,cAAiC,EAAE,UAAU,KAAK,SAAS;EACjE,OAAO,OAAO,aAAa,KAAK,OAAO,WAAW,CAAC,CAAC;CACtD;CAGA,cAAoB;EAClB,MAAM,EAAE,OAAO,SAAS,CAAC,MAAM,KAAK;EACpC,KAAK,WACH,SAAS,KAAK,SACV,KAAK,OAAO,aAAa,OAAO,OAAO,QAAQ,KAAK,QAAQ,CAAC,IAC7D;CACR;CAGA,OAAO,OAAgC;EACrC,KAAK,MAAM,IAAI,cAAc,KAAK,GAAG,MAAM,OAAO,WAAW;CAC/D;CAGA,cAAc,OAAuB;EACnC,OAAO,KAAK,MAAM,OAAO,cAAc,KAAK,CAAC;CAC/C;CAMA,UAAgB;EACd,KAAK,YAAY;EACjB,MAAM,SAAS,KAAK,OAAQ;EAC5B,KAAK,MAAM,CAAC,SAAS,WAAW,KAAK,OACnC,KAAK,MAAM,IACT,SACA,OAAO,OAAO,OAAO,WAAW,GAAG,OAAO,OAAO,GAAG,OAAO,QAAQ,CAAC,CACtE;CAEJ;CAGA,OAAsB;EACpB,KAAK,MAAM,WAAW,KAAK,MAAM,KAAK,GACpC,IAAI,CAAC,QAAQ,aACX,KAAK,MAAM,OAAO,OAAO;EAG7B,OAAO,KAAK,WAAW,CAAC,KAAK,QAAQ,IAAI,CAAC,GAAG,KAAK,MAAM,OAAO,CAAC;CAClE;CAGA,OAAO,OAA0C;EAC/C,MAAM,SAAS,KAAK;EACpB,MAAM,UAAU,KAAK,KAAK;EAC1B,OAAO,UAAU,QAAQ,SACrB,QACG,KAAK,WAAW,WAAW,QAAQ,OAAO,MAAM,CAAC,CAAC,CAClD,OAAO,eAAe,IACzB;CACN;AACF;AASA,OAAO,SAAS,mBACd,QACA,QAA8C,QACX;CACnC,MAAM,SACJ,OAAO,UAAU,WAAW,QAAQ,EAAE,OAAO,MAAM;CAMrD,QALiB,OAAO,QACnB,OAAO,SAAS,SACjB,OAAO,SACJ,OAAO,UAAU,QAClB,UACa;AACrB","names":[],"ignoreList":[],"sources":["../../src/sref-status.ts"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui-router.js","mappings":"AAAA,SAAS,MAAM,kBAAkB;AAEjC,SAAS,gBAAgB;AAEzB,SAAS,mBAAmB;;
|
|
1
|
+
{"version":3,"file":"ui-router.js","mappings":"AAAA,SAAS,MAAM,kBAAkB;AAEjC,SAAS,gBAAgB;AAEzB,SAAS,mBAAmB;;AA4B5B,OAAO,MAAM,2BAA2B,WAAW;;;iCAqDN,UAAgC;GACzE,KAAK,YAAY,uBAAuB,KAAK,QAAQ,CAAC,CAAC,KAAK;EAC9D;;;kCA9CkC;;CAGlC,OAAO,qBAAqB,UAA8C;EACxE,OAAO,IAAI,YAAY,KAAK,0BAA0B;GACpD,SAAS;GACT,UAAU;GACV,QAAQ,EACN,SACF;EACF,CAAC;CACH;CAiBA,OAAO,WAAW,WAA6C;EAC7D,MAAM,uBAAuB,KAAK,qBAAqB;EACvD,UAAU,cAAc,oBAAoB;EAC5C,OAAO,qBAAqB,OAAO;CACrC;CAGA,OAAO,uBACL,UACuC;EACvC,QAAQ,UAAgC;GACtC,MAAM,gBAAgB;GACtB,MAAM,OAAO,WAAW;EAC1B;CACF;CAOA,oBAA0B;EACxB,MAAM,kBAAkB;EACxB,KAAK,WAAW,KAAK,YAAY,IAAI,YAAY;EAEjD,KAAK,iBACH,KAAK,YAAY,0BACjB,KAAK,sBACP;EAEA,KAAK,cAAc,KAAK,YAAY,qBAAqB,KAAK,QAAQ,CAAC;CACzE;CAGA,SAAyB;EACvB,OAAO,IAAI;CACb;AACF;WArEG,SAAS,EAAE,WAAW,MAAM,CAAC","names":[],"ignoreList":[],"sources":["../../src/ui-router.ts"]}
|
|
@@ -37,6 +37,23 @@ export function mergeSrefStatus(left, right) {
|
|
|
37
37
|
targetStates: [...left.targetStates, ...right.targetStates]
|
|
38
38
|
};
|
|
39
39
|
}
|
|
40
|
+
export function srefStatus(router, event, srefTarget) {
|
|
41
|
+
const pathMatchesTarget = pathMatches(srefTarget);
|
|
42
|
+
const tc = event?.trans.treeChanges();
|
|
43
|
+
const isStartEvent = event?.evt === "start";
|
|
44
|
+
const activePath = event?.evt === "success" ? tc?.to : tc?.from;
|
|
45
|
+
const isActive = () => activePath ? spreadToSubPaths([], activePath).map(pathMatchesTarget).reduce(anyTrueR, false) : router.stateService.includes(srefTarget.name(), srefTarget.params());
|
|
46
|
+
const isExact = () => activePath ? pathMatchesTarget(activePath) : router.stateService.is(srefTarget.name(), srefTarget.params());
|
|
47
|
+
const isEntering = () => spreadToSubPaths(tc.retained, tc.entering).map(pathMatchesTarget).reduce(anyTrueR, false);
|
|
48
|
+
const isExiting = () => spreadToSubPaths(tc.retained, tc.exiting).map(pathMatchesTarget).reduce(anyTrueR, false);
|
|
49
|
+
return {
|
|
50
|
+
active: isActive(),
|
|
51
|
+
exact: isExact(),
|
|
52
|
+
entering: isStartEvent ? isEntering() : false,
|
|
53
|
+
exiting: isStartEvent ? isExiting() : false,
|
|
54
|
+
targetStates: [srefTarget]
|
|
55
|
+
};
|
|
56
|
+
}
|
|
40
57
|
const isLinkElement = (element) => isNativeLink(element) || element.matches("[role~=\"link\"]");
|
|
41
58
|
const toAriaCurrentValues = (ariaCurrentValue) => typeof ariaCurrentValue === "object" ? ariaCurrentValue : { exact: ariaCurrentValue };
|
|
42
59
|
let _first = null;
|
|
@@ -152,21 +169,7 @@ export class UiSrefActiveDirective extends AsyncDirective {
|
|
|
152
169
|
return extend(defaultOpts, this.options || {});
|
|
153
170
|
}
|
|
154
171
|
getSrefStatus(event, srefTarget) {
|
|
155
|
-
|
|
156
|
-
const tc = event?.trans.treeChanges();
|
|
157
|
-
const isStartEvent = event?.evt === "start";
|
|
158
|
-
const activePath = event?.evt === "success" ? tc?.to : tc?.from;
|
|
159
|
-
const isActive = () => activePath ? spreadToSubPaths([], activePath).map(pathMatchesTarget).reduce(anyTrueR, false) : this.uiRouter.stateService.includes(srefTarget.name(), srefTarget.params());
|
|
160
|
-
const isExact = () => activePath ? pathMatchesTarget(activePath) : this.uiRouter.stateService.is(srefTarget.name(), srefTarget.params());
|
|
161
|
-
const isEntering = () => spreadToSubPaths(tc.retained, tc.entering).map(pathMatchesTarget).reduce(anyTrueR, false);
|
|
162
|
-
const isExiting = () => spreadToSubPaths(tc.retained, tc.exiting).map(pathMatchesTarget).reduce(anyTrueR, false);
|
|
163
|
-
return {
|
|
164
|
-
active: isActive(),
|
|
165
|
-
exact: isExact(),
|
|
166
|
-
entering: isStartEvent ? isEntering() : false,
|
|
167
|
-
exiting: isStartEvent ? isExiting() : false,
|
|
168
|
-
targetStates: [srefTarget]
|
|
169
|
-
};
|
|
172
|
+
return srefStatus(this.uiRouter, event, srefTarget);
|
|
170
173
|
}
|
|
171
174
|
async update(part, [{ activeClasses, exactClasses, ariaCurrentValue, state, params = {}, options = {}, targetStates }]) {
|
|
172
175
|
this.activeClasses = activeClasses;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui-sref-active.js","mappings":"AAAA,SACE,UACA,QACA,OAEA,WAIA,
|
|
1
|
+
{"version":3,"file":"ui-sref-active.js","mappings":"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","names":[],"ignoreList":[],"sources":["../../src/ui-sref-active.ts"]}
|