nexa-router 0.6.4 → 0.7.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/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -1
- package/dist/index.js.map +1 -1
- package/dist/view.d.ts.map +1 -1
- package/dist/view.js +22 -2
- package/dist/view.js.map +1 -1
- package/package.json +3 -3
package/dist/index.d.ts
CHANGED
|
@@ -18,5 +18,6 @@ export declare function createRouter(config: RouterConfig): {
|
|
|
18
18
|
currentPath: import("nexa-reactivity").Signal<string>;
|
|
19
19
|
params: import("nexa-reactivity").Signal<Record<string, string>>;
|
|
20
20
|
query: import("nexa-reactivity").Signal<Record<string, string>>;
|
|
21
|
+
scrollPositions: Map<string, number>;
|
|
21
22
|
};
|
|
22
23
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAyB,KAAK,QAAQ,EAAE,KAAK,KAAK,EAAE,MAAM,SAAS,CAAA;AAE1E,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AAEnC,KAAK,YAAY,GAAG;IAClB,MAAM,EAAE,QAAQ,EAAE,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACzB,MAAM,CAAC,EAAE;QAAE,UAAU,EAAE,KAAK,EAAE,CAAA;KAAE,CAAA;CACjC,CAAA;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY;qBA4BjB,MAAM;wBAJT,KAAK
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAyB,KAAK,QAAQ,EAAE,KAAK,KAAK,EAAE,MAAM,SAAS,CAAA;AAE1E,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AAEnC,KAAK,YAAY,GAAG;IAClB,MAAM,EAAE,QAAQ,EAAE,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACzB,MAAM,CAAC,EAAE;QAAE,UAAU,EAAE,KAAK,EAAE,CAAA;KAAE,CAAA;CACjC,CAAA;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY;qBA4BjB,MAAM;wBAJT,KAAK;;;;;;EA4CjC"}
|
package/dist/index.js
CHANGED
|
@@ -38,12 +38,22 @@ export function createRouter(config) {
|
|
|
38
38
|
window.location.hash = `#${path}`;
|
|
39
39
|
}
|
|
40
40
|
else {
|
|
41
|
+
scrollPositions.set(currentPath.value, window.scrollY);
|
|
41
42
|
window.history.pushState({}, '', path);
|
|
43
|
+
window.scrollTo(0, 0);
|
|
42
44
|
}
|
|
43
45
|
currentPath.value = path;
|
|
44
46
|
}
|
|
47
|
+
const scrollPositions = new Map();
|
|
45
48
|
window.addEventListener('popstate', () => {
|
|
49
|
+
const prev = currentPath.value;
|
|
50
|
+
scrollPositions.set(prev, window.scrollY);
|
|
46
51
|
currentPath.value = window.location.pathname + window.location.search;
|
|
52
|
+
setTimeout(() => {
|
|
53
|
+
const saved = scrollPositions.get(currentPath.value);
|
|
54
|
+
if (saved !== undefined)
|
|
55
|
+
window.scrollTo(0, saved);
|
|
56
|
+
}, 0);
|
|
47
57
|
});
|
|
48
58
|
return {
|
|
49
59
|
navigate,
|
|
@@ -51,7 +61,8 @@ export function createRouter(config) {
|
|
|
51
61
|
currentRoute,
|
|
52
62
|
currentPath,
|
|
53
63
|
params,
|
|
54
|
-
query
|
|
64
|
+
query,
|
|
65
|
+
scrollPositions
|
|
55
66
|
};
|
|
56
67
|
}
|
|
57
68
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,SAAS,EAAE,UAAU,EAA6B,MAAM,SAAS,CAAA;AAG1E,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AAQnC,MAAM,UAAU,YAAY,CAAC,MAAoB;IAC/C,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IAC7E,MAAM,MAAM,GAAG,MAAM,CAAyB,EAAE,CAAC,CAAA;IACjD,MAAM,KAAK,GAAG,MAAM,CAAyB,EAAE,CAAC,CAAA;IAChD,MAAM,MAAM,GAAY,MAAM,CAAC,MAAM,EAAE,UAAU,IAAI,EAAE,CAAA;IAEvD,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,EAAE;QACjC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACnD,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,MAAM,IAAI,EAAE,CAAC,CAAA;QAEtC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClC,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YACzC,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,CAAC,KAAK,GAAG,KAAK,CAAA;gBACpB,OAAO,KAAK,CAAA;YACd,CAAC;QACH,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,CAAA;QACxD,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAA;QAE7B,OAAO,IAAI,CAAA;IACb,CAAC,CAAC,CAAA;IAEF,SAAS,UAAU,CAAC,KAAY;QAC9B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACpB,CAAC;IAED,KAAK,UAAU,QAAQ,CAAC,IAAY;QAClC,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,CAAA;QAC9B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YACvC,IAAI,CAAC,OAAO;gBAAE,OAAM;QACtB,CAAC;QAED,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC3B,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAA;QACnC,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/view.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../src/view.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../src/view.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,UAAU,kCAuCrB,CAAA"}
|
package/dist/view.js
CHANGED
|
@@ -2,17 +2,37 @@ import { defineComponent, h } from 'nexa-runtime';
|
|
|
2
2
|
export const RouterView = defineComponent({
|
|
3
3
|
name: 'RouterView',
|
|
4
4
|
props: {
|
|
5
|
-
router: { type: Object, required: true }
|
|
5
|
+
router: { type: Object, required: true },
|
|
6
|
+
transition: { type: String, default: null },
|
|
7
|
+
keepAlive: { type: Boolean, default: false }
|
|
6
8
|
},
|
|
7
9
|
setup(props) {
|
|
10
|
+
const cache = new Map();
|
|
8
11
|
return () => {
|
|
9
12
|
const route = props.router.currentRoute.value;
|
|
10
13
|
if (!route || !route.component)
|
|
11
14
|
return h('div', { class: 'n-router-empty' }, '404 Not Found');
|
|
12
|
-
|
|
15
|
+
const vnode = h(route.component, {
|
|
13
16
|
params: props.router.params.value,
|
|
14
17
|
query: props.router.query.value
|
|
15
18
|
});
|
|
19
|
+
// Simple keep-alive cache implementation at the router level
|
|
20
|
+
let rendered = vnode;
|
|
21
|
+
if (props.keepAlive) {
|
|
22
|
+
const path = props.router.currentPath.value;
|
|
23
|
+
if (cache.has(path)) {
|
|
24
|
+
const cached = cache.get(path);
|
|
25
|
+
// Restore element
|
|
26
|
+
if (cached.el)
|
|
27
|
+
vnode.el = cached.el;
|
|
28
|
+
}
|
|
29
|
+
cache.set(path, vnode);
|
|
30
|
+
}
|
|
31
|
+
// Transition wrapper
|
|
32
|
+
if (props.transition) {
|
|
33
|
+
return h('transition', { name: props.transition, mode: 'out-in' }, [rendered]);
|
|
34
|
+
}
|
|
35
|
+
return rendered;
|
|
16
36
|
};
|
|
17
37
|
}
|
|
18
38
|
});
|
package/dist/view.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"view.js","sourceRoot":"","sources":["../src/view.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,CAAC,EAAE,MAAM,cAAc,CAAA;AAEjD,MAAM,CAAC,MAAM,UAAU,GAAG,eAAe,CAAC;IACxC,IAAI,EAAE,YAAY;IAClB,KAAK,EAAE;QACL,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;
|
|
1
|
+
{"version":3,"file":"view.js","sourceRoot":"","sources":["../src/view.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,CAAC,EAAE,MAAM,cAAc,CAAA;AAEjD,MAAM,CAAC,MAAM,UAAU,GAAG,eAAe,CAAC;IACxC,IAAI,EAAE,YAAY;IAClB,KAAK,EAAE;QACL,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;QACxC,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;QAC3C,SAAS,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE;KAC7C;IACD,KAAK,CAAC,KAAK;QACT,MAAM,KAAK,GAAG,IAAI,GAAG,EAAe,CAAA;QAEpC,OAAO,GAAG,EAAE;YACV,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAA;YAC7C,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,SAAS;gBAAE,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,EAAE,eAAe,CAAC,CAAA;YAE7F,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE;gBAC/B,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK;gBACjC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK;aAChC,CAAC,CAAA;YAEF,6DAA6D;YAC7D,IAAI,QAAQ,GAAG,KAAK,CAAA;YACpB,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;gBACpB,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAA;gBAC3C,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;oBACpB,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;oBAC9B,kBAAkB;oBAClB,IAAI,MAAM,CAAC,EAAE;wBAAE,KAAK,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,CAAA;gBACrC,CAAC;gBACD,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;YACxB,CAAC;YAED,qBAAqB;YACrB,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;gBACrB,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;YAChF,CAAC;YAED,OAAO,QAAQ,CAAA;QACjB,CAAC,CAAA;IACH,CAAC;CACF,CAAC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nexa-router",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.js",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
}
|
|
14
14
|
},
|
|
15
15
|
"dependencies": {
|
|
16
|
-
"nexa-runtime": "0.
|
|
16
|
+
"nexa-runtime": "0.7.1"
|
|
17
17
|
},
|
|
18
18
|
"files": [
|
|
19
19
|
"dist"
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"access": "public"
|
|
23
23
|
},
|
|
24
24
|
"peerDependencies": {
|
|
25
|
-
"nexa-reactivity": "0.
|
|
25
|
+
"nexa-reactivity": "0.7.1"
|
|
26
26
|
},
|
|
27
27
|
"scripts": {
|
|
28
28
|
"build": "tsc",
|