@multiplatform.one/router 6.1.0 → 6.3.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.
- package/README.md +51 -0
- package/dist/cjs/hooks/useUrlState.cjs +30 -9
- package/dist/cjs/hooks/useUrlState.native.js +32 -9
- package/dist/cjs/hooks/useUrlState.native.js.map +1 -1
- package/dist/cjs/seam/DomNavigationHost.cjs +122 -0
- package/dist/cjs/seam/DomNavigationHost.native.js +186 -0
- package/dist/cjs/seam/DomNavigationHost.native.js.map +1 -0
- package/dist/cjs/seam/index.cjs +47 -0
- package/dist/cjs/seam/index.native.js +50 -0
- package/dist/cjs/seam/index.native.js.map +1 -0
- package/dist/cjs/seam/navigator.cjs +309 -0
- package/dist/cjs/seam/navigator.native.js +479 -0
- package/dist/cjs/seam/navigator.native.js.map +1 -0
- package/dist/cjs/seam/oneAdapter.cjs +128 -0
- package/dist/cjs/seam/oneAdapter.native.js +141 -0
- package/dist/cjs/seam/oneAdapter.native.js.map +1 -0
- package/dist/esm/hooks/useUrlState.mjs +31 -10
- package/dist/esm/hooks/useUrlState.mjs.map +1 -1
- package/dist/esm/hooks/useUrlState.native.js +33 -10
- package/dist/esm/hooks/useUrlState.native.js.map +1 -1
- package/dist/esm/seam/DomNavigationHost.mjs +96 -0
- package/dist/esm/seam/DomNavigationHost.mjs.map +1 -0
- package/dist/esm/seam/DomNavigationHost.native.js +157 -0
- package/dist/esm/seam/DomNavigationHost.native.js.map +1 -0
- package/dist/esm/seam/index.mjs +5 -0
- package/dist/esm/seam/index.mjs.map +1 -0
- package/dist/esm/seam/index.native.js +5 -0
- package/dist/esm/seam/index.native.js.map +1 -0
- package/dist/esm/seam/navigator.mjs +279 -0
- package/dist/esm/seam/navigator.mjs.map +1 -0
- package/dist/esm/seam/navigator.native.js +446 -0
- package/dist/esm/seam/navigator.native.js.map +1 -0
- package/dist/esm/seam/oneAdapter.mjs +90 -0
- package/dist/esm/seam/oneAdapter.mjs.map +1 -0
- package/dist/esm/seam/oneAdapter.native.js +100 -0
- package/dist/esm/seam/oneAdapter.native.js.map +1 -0
- package/dist/jsx/hooks/useUrlState.mjs +31 -10
- package/dist/jsx/hooks/useUrlState.mjs.map +1 -1
- package/dist/jsx/hooks/useUrlState.native.js +32 -9
- package/dist/jsx/hooks/useUrlState.native.js.map +1 -1
- package/dist/jsx/seam/DomNavigationHost.mjs +96 -0
- package/dist/jsx/seam/DomNavigationHost.mjs.map +1 -0
- package/dist/jsx/seam/DomNavigationHost.native.js +186 -0
- package/dist/jsx/seam/DomNavigationHost.native.js.map +1 -0
- package/dist/jsx/seam/index.mjs +5 -0
- package/dist/jsx/seam/index.mjs.map +1 -0
- package/dist/jsx/seam/index.native.js +50 -0
- package/dist/jsx/seam/index.native.js.map +1 -0
- package/dist/jsx/seam/navigator.mjs +279 -0
- package/dist/jsx/seam/navigator.mjs.map +1 -0
- package/dist/jsx/seam/navigator.native.js +479 -0
- package/dist/jsx/seam/navigator.native.js.map +1 -0
- package/dist/jsx/seam/oneAdapter.mjs +90 -0
- package/dist/jsx/seam/oneAdapter.mjs.map +1 -0
- package/dist/jsx/seam/oneAdapter.native.js +141 -0
- package/dist/jsx/seam/oneAdapter.native.js.map +1 -0
- package/package.json +26 -9
- package/src/hooks/urlStateEdges.spec.ts +98 -0
- package/src/hooks/useUrlState.ts +34 -8
- package/src/seam/DomNavigationHost.spec.tsx +78 -0
- package/src/seam/DomNavigationHost.tsx +150 -0
- package/src/seam/index.ts +41 -0
- package/src/seam/navigator.spec.ts +189 -0
- package/src/seam/navigator.ts +405 -0
- package/src/seam/oneAdapter.tsx +166 -0
- package/types/hooks/index.d.ts +2 -0
- package/types/hooks/index.d.ts.map +1 -0
- package/types/hooks/useUrlState.d.ts +36 -0
- package/types/hooks/useUrlState.d.ts.map +1 -0
- package/types/index.d.ts +4 -0
- package/types/index.d.ts.map +1 -0
- package/types/index.storybook.d.ts +4 -0
- package/types/index.storybook.d.ts.map +1 -0
- package/types/router/EmptyRouter.d.ts +7 -0
- package/types/router/EmptyRouter.d.ts.map +1 -0
- package/types/router/ReactRouter.d.ts +6 -0
- package/types/router/ReactRouter.d.ts.map +1 -0
- package/types/router/index.d.ts +2 -0
- package/types/router/index.d.ts.map +1 -0
- package/types/router/index.storybook-expo.d.ts +2 -0
- package/types/router/index.storybook-expo.d.ts.map +1 -0
- package/types/router/index.storybook.d.ts +2 -0
- package/types/router/index.storybook.d.ts.map +1 -0
- package/types/router/index.webext.d.ts +2 -0
- package/types/router/index.webext.d.ts.map +1 -0
- package/types/seam/DomNavigationHost.d.ts +33 -0
- package/types/seam/DomNavigationHost.d.ts.map +1 -0
- package/types/seam/index.d.ts +7 -0
- package/types/seam/index.d.ts.map +1 -0
- package/types/seam/navigator.d.ts +133 -0
- package/types/seam/navigator.d.ts.map +1 -0
- package/types/seam/oneAdapter.d.ts +57 -0
- package/types/seam/oneAdapter.d.ts.map +1 -0
- package/types/types.d.ts +40 -0
- package/types/types.d.ts.map +1 -0
- package/dist/cjs/hooks/useUrlState.spec.cjs +0 -280
- package/dist/cjs/hooks/useUrlState.spec.native.js +0 -315
- package/dist/cjs/hooks/useUrlState.spec.native.js.map +0 -1
- package/dist/esm/hooks/useUrlState.spec.mjs +0 -257
- package/dist/esm/hooks/useUrlState.spec.mjs.map +0 -1
- package/dist/esm/hooks/useUrlState.spec.native.js +0 -289
- package/dist/esm/hooks/useUrlState.spec.native.js.map +0 -1
- package/dist/jsx/hooks/useUrlState.spec.mjs +0 -257
- package/dist/jsx/hooks/useUrlState.spec.mjs.map +0 -1
- package/dist/jsx/hooks/useUrlState.spec.native.js +0 -315
- package/dist/jsx/hooks/useUrlState.spec.native.js.map +0 -1
|
@@ -0,0 +1,479 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all) __defProp(target, name, {
|
|
9
|
+
get: all[name],
|
|
10
|
+
enumerable: true
|
|
11
|
+
});
|
|
12
|
+
};
|
|
13
|
+
var __copyProps = (to, from, except, desc) => {
|
|
14
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
15
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
16
|
+
get: () => from[key],
|
|
17
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
return to;
|
|
21
|
+
};
|
|
22
|
+
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
23
|
+
value: true
|
|
24
|
+
}), mod);
|
|
25
|
+
var navigator_exports = {};
|
|
26
|
+
__export(navigator_exports, {
|
|
27
|
+
RouteTagContext: () => RouteTagContext,
|
|
28
|
+
StackNavigator: () => StackNavigator,
|
|
29
|
+
hrefToString: () => hrefToString,
|
|
30
|
+
stackNavigator: () => stackNavigator,
|
|
31
|
+
useNavState: () => useNavState,
|
|
32
|
+
useRouteParams: () => useRouteParams
|
|
33
|
+
});
|
|
34
|
+
module.exports = __toCommonJS(navigator_exports);
|
|
35
|
+
var import_react = require("react");
|
|
36
|
+
function _class_call_check(instance, Constructor) {
|
|
37
|
+
if (!(instance instanceof Constructor)) {
|
|
38
|
+
throw new TypeError("Cannot call a class as a function");
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
function _defineProperties(target, props) {
|
|
42
|
+
for (var i = 0; i < props.length; i++) {
|
|
43
|
+
var descriptor = props[i];
|
|
44
|
+
descriptor.enumerable = descriptor.enumerable || false;
|
|
45
|
+
descriptor.configurable = true;
|
|
46
|
+
if ("value" in descriptor) descriptor.writable = true;
|
|
47
|
+
Object.defineProperty(target, descriptor.key, descriptor);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
function _create_class(Constructor, protoProps, staticProps) {
|
|
51
|
+
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
|
52
|
+
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
53
|
+
return Constructor;
|
|
54
|
+
}
|
|
55
|
+
function _define_property(obj, key, value) {
|
|
56
|
+
if (key in obj) {
|
|
57
|
+
Object.defineProperty(obj, key, {
|
|
58
|
+
value,
|
|
59
|
+
enumerable: true,
|
|
60
|
+
configurable: true,
|
|
61
|
+
writable: true
|
|
62
|
+
});
|
|
63
|
+
} else {
|
|
64
|
+
obj[key] = value;
|
|
65
|
+
}
|
|
66
|
+
return obj;
|
|
67
|
+
}
|
|
68
|
+
function compileRoute(def) {
|
|
69
|
+
var segments = def.pattern.split("/").filter(Boolean).map(function (seg) {
|
|
70
|
+
var m = seg.match(/^\[(\.{3})?(.+)\]$/);
|
|
71
|
+
return m ? {
|
|
72
|
+
param: m[2]
|
|
73
|
+
} : {
|
|
74
|
+
literal: seg
|
|
75
|
+
};
|
|
76
|
+
});
|
|
77
|
+
return {
|
|
78
|
+
...def,
|
|
79
|
+
segments
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
function parseQuery(query) {
|
|
83
|
+
var params = {};
|
|
84
|
+
if (!query) return params;
|
|
85
|
+
var _iteratorNormalCompletion = true,
|
|
86
|
+
_didIteratorError = false,
|
|
87
|
+
_iteratorError = void 0;
|
|
88
|
+
try {
|
|
89
|
+
for (var _iterator = query.split("&")[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
90
|
+
var pair = _step.value;
|
|
91
|
+
if (!pair) continue;
|
|
92
|
+
var eq = pair.indexOf("=");
|
|
93
|
+
var key = decodeURIComponent(eq === -1 ? pair : pair.slice(0, eq));
|
|
94
|
+
var value = eq === -1 ? "" : decodeURIComponent(pair.slice(eq + 1));
|
|
95
|
+
var prev = params[key];
|
|
96
|
+
if (prev === void 0) params[key] = value;else if (Array.isArray(prev)) prev.push(value);else params[key] = [prev, value];
|
|
97
|
+
}
|
|
98
|
+
} catch (err) {
|
|
99
|
+
_didIteratorError = true;
|
|
100
|
+
_iteratorError = err;
|
|
101
|
+
} finally {
|
|
102
|
+
try {
|
|
103
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
104
|
+
_iterator.return();
|
|
105
|
+
}
|
|
106
|
+
} finally {
|
|
107
|
+
if (_didIteratorError) {
|
|
108
|
+
throw _iteratorError;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
return params;
|
|
113
|
+
}
|
|
114
|
+
function hrefToString(href) {
|
|
115
|
+
var _href_params;
|
|
116
|
+
if (typeof href === "string") return href;
|
|
117
|
+
var path = href.pathname;
|
|
118
|
+
var leftover = [];
|
|
119
|
+
var _iteratorNormalCompletion = true,
|
|
120
|
+
_didIteratorError = false,
|
|
121
|
+
_iteratorError = void 0;
|
|
122
|
+
try {
|
|
123
|
+
for (var _iterator = Object.entries((_href_params = href.params) !== null && _href_params !== void 0 ? _href_params : {})[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
124
|
+
var [key, raw] = _step.value;
|
|
125
|
+
var value = String(raw);
|
|
126
|
+
var token = `[${key}]`;
|
|
127
|
+
if (path.includes(token)) path = path.replace(token, encodeURIComponent(value));else leftover.push(`${encodeURIComponent(key)}=${encodeURIComponent(value)}`);
|
|
128
|
+
}
|
|
129
|
+
} catch (err) {
|
|
130
|
+
_didIteratorError = true;
|
|
131
|
+
_iteratorError = err;
|
|
132
|
+
} finally {
|
|
133
|
+
try {
|
|
134
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
135
|
+
_iterator.return();
|
|
136
|
+
}
|
|
137
|
+
} finally {
|
|
138
|
+
if (_didIteratorError) {
|
|
139
|
+
throw _iteratorError;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
return leftover.length ? `${path}?${leftover.join("&")}` : path;
|
|
144
|
+
}
|
|
145
|
+
var EMPTY_PARAMS = Object.freeze({});
|
|
146
|
+
var StackNavigator = /* @__PURE__ */function () {
|
|
147
|
+
"use strict";
|
|
148
|
+
|
|
149
|
+
function StackNavigator2() {
|
|
150
|
+
var _this = this;
|
|
151
|
+
_class_call_check(this, StackNavigator2);
|
|
152
|
+
_define_property(this, "routes", []);
|
|
153
|
+
_define_property(this, "host", null);
|
|
154
|
+
_define_property(this, "listeners", /* @__PURE__ */new Set());
|
|
155
|
+
_define_property(this, "stackTags", []);
|
|
156
|
+
_define_property(this, "paramsByTag", /* @__PURE__ */new Map());
|
|
157
|
+
_define_property(this, "pathnameByTag", /* @__PURE__ */new Map());
|
|
158
|
+
_define_property(this, "visitedTags", /* @__PURE__ */new Set());
|
|
159
|
+
_define_property(this, "loaderDataByTag", /* @__PURE__ */new Map());
|
|
160
|
+
_define_property(this, "navSeq", 0);
|
|
161
|
+
_define_property(this, "generation", 0);
|
|
162
|
+
_define_property(this, "snapshot", {
|
|
163
|
+
pathname: "/",
|
|
164
|
+
tag: "",
|
|
165
|
+
depth: 0,
|
|
166
|
+
canGoBack: false,
|
|
167
|
+
generation: 0
|
|
168
|
+
});
|
|
169
|
+
_define_property(this, "subscribe", function (fn) {
|
|
170
|
+
_this.listeners.add(fn);
|
|
171
|
+
return function () {
|
|
172
|
+
return _this.listeners.delete(fn);
|
|
173
|
+
};
|
|
174
|
+
});
|
|
175
|
+
_define_property(this, "getSnapshot", function () {
|
|
176
|
+
return _this.snapshot;
|
|
177
|
+
});
|
|
178
|
+
_define_property(this, "push", function (href) {
|
|
179
|
+
void _this.navigate(href, "push");
|
|
180
|
+
});
|
|
181
|
+
_define_property(this, "replace", function (href) {
|
|
182
|
+
void _this.navigate(href, "replace");
|
|
183
|
+
});
|
|
184
|
+
_define_property(this, "back", function () {
|
|
185
|
+
if (!_this.host) {
|
|
186
|
+
console.log("[stack nav] back \u2014 no stack host attached, ignored");
|
|
187
|
+
return;
|
|
188
|
+
}
|
|
189
|
+
_this.navSeq++;
|
|
190
|
+
_this.host.pop();
|
|
191
|
+
});
|
|
192
|
+
_define_property(this, "setParams", function (params) {
|
|
193
|
+
var _this_paramsByTag_get;
|
|
194
|
+
var top = _this.stackTags[_this.stackTags.length - 1];
|
|
195
|
+
if (!top) return;
|
|
196
|
+
var prev = (_this_paramsByTag_get = _this.paramsByTag.get(top)) !== null && _this_paramsByTag_get !== void 0 ? _this_paramsByTag_get : {};
|
|
197
|
+
_this.paramsByTag.set(top, {
|
|
198
|
+
...prev,
|
|
199
|
+
...params
|
|
200
|
+
});
|
|
201
|
+
_this.rebuildSnapshot();
|
|
202
|
+
});
|
|
203
|
+
_define_property(this, "syncFromHost", function () {
|
|
204
|
+
if (!_this.host) return;
|
|
205
|
+
_this.navSeq++;
|
|
206
|
+
var model = _this.host.get_navigation_stack();
|
|
207
|
+
var tags = [];
|
|
208
|
+
var count = model.get_n_items();
|
|
209
|
+
for (var i = 0; i < count; i++) {
|
|
210
|
+
var _model_get_item;
|
|
211
|
+
var tag = (_model_get_item = model.get_item(i)) === null || _model_get_item === void 0 ? void 0 : _model_get_item.get_tag();
|
|
212
|
+
if (tag) tags.push(tag);
|
|
213
|
+
}
|
|
214
|
+
if (tags.length > 0) _this.stackTags = tags;
|
|
215
|
+
var _iteratorNormalCompletion = true,
|
|
216
|
+
_didIteratorError = false,
|
|
217
|
+
_iteratorError = void 0;
|
|
218
|
+
try {
|
|
219
|
+
for (var _iterator = _this.stackTags[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
220
|
+
var tag1 = _step.value;
|
|
221
|
+
_this.visitedTags.add(tag1);
|
|
222
|
+
}
|
|
223
|
+
} catch (err) {
|
|
224
|
+
_didIteratorError = true;
|
|
225
|
+
_iteratorError = err;
|
|
226
|
+
} finally {
|
|
227
|
+
try {
|
|
228
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
229
|
+
_iterator.return();
|
|
230
|
+
}
|
|
231
|
+
} finally {
|
|
232
|
+
if (_didIteratorError) {
|
|
233
|
+
throw _iteratorError;
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
_this.rebuildSnapshot();
|
|
238
|
+
});
|
|
239
|
+
}
|
|
240
|
+
_create_class(StackNavigator2, [{
|
|
241
|
+
key: "isConfigured",
|
|
242
|
+
get: function get() {
|
|
243
|
+
return this.routes.length > 0;
|
|
244
|
+
}
|
|
245
|
+
}, {
|
|
246
|
+
/** Register the route manifest. The FIRST route is the root page. */
|
|
247
|
+
key: "configure",
|
|
248
|
+
value: function configure(defs) {
|
|
249
|
+
this.routes = defs.map(compileRoute);
|
|
250
|
+
this.visitedTags = /* @__PURE__ */new Set();
|
|
251
|
+
this.loaderDataByTag = /* @__PURE__ */new Map();
|
|
252
|
+
var root = defs[0];
|
|
253
|
+
if (root) {
|
|
254
|
+
this.stackTags = [root.tag];
|
|
255
|
+
this.visitedTags.add(root.tag);
|
|
256
|
+
this.pathnameByTag.set(root.tag, root.pattern);
|
|
257
|
+
this.rebuildSnapshot();
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
}, {
|
|
261
|
+
/** Has this route's page been navigated to (⇒ its content may mount)? */
|
|
262
|
+
key: "isVisited",
|
|
263
|
+
value: function isVisited(tag) {
|
|
264
|
+
return tag !== null && this.visitedTags.has(tag);
|
|
265
|
+
}
|
|
266
|
+
}, {
|
|
267
|
+
/** The route's last loader result (stable identity until the loader runs
|
|
268
|
+
* again). undefined when the route has no loader / hasn't resolved. */
|
|
269
|
+
key: "loaderSnapshot",
|
|
270
|
+
value: function loaderSnapshot(tag) {
|
|
271
|
+
if (!tag) return void 0;
|
|
272
|
+
return this.loaderDataByTag.get(tag);
|
|
273
|
+
}
|
|
274
|
+
}, {
|
|
275
|
+
key: "preload",
|
|
276
|
+
value: (
|
|
277
|
+
/** Resolve a route's loader WITHOUT navigating. For the initial page:
|
|
278
|
+
* entries can `await stackNavigator.preload("/")` during top-level await
|
|
279
|
+
* (where GJS reliably drains promise jobs) so even the root page's first
|
|
280
|
+
* paint has loader data. */
|
|
281
|
+
async function preload(href) {
|
|
282
|
+
var hit = this.match(href);
|
|
283
|
+
if (!(hit === null || hit === void 0 ? void 0 : hit.route.loader)) return;
|
|
284
|
+
try {
|
|
285
|
+
var data = await hit.route.loader({
|
|
286
|
+
path: hit.pathname,
|
|
287
|
+
params: hit.params
|
|
288
|
+
});
|
|
289
|
+
this.loaderDataByTag.set(hit.route.tag, data);
|
|
290
|
+
this.rebuildSnapshot();
|
|
291
|
+
} catch (err) {
|
|
292
|
+
console.error(`[stack nav] preload loader for ${hit.route.tag} failed: ${String(err)}`);
|
|
293
|
+
}
|
|
294
|
+
})
|
|
295
|
+
}, {
|
|
296
|
+
/** Bind the live host stack (an Adw.NavigationView widget on GTK, a
|
|
297
|
+
* DomStackAdapter on DOM targets). */
|
|
298
|
+
key: "attach",
|
|
299
|
+
value: function attach(host) {
|
|
300
|
+
this.host = host;
|
|
301
|
+
this.syncFromHost();
|
|
302
|
+
}
|
|
303
|
+
}, {
|
|
304
|
+
key: "detach",
|
|
305
|
+
value: function detach() {
|
|
306
|
+
this.host = null;
|
|
307
|
+
}
|
|
308
|
+
}, {
|
|
309
|
+
key: "paramsSnapshot",
|
|
310
|
+
value: function paramsSnapshot(tag) {
|
|
311
|
+
var _this_paramsByTag_get;
|
|
312
|
+
if (!tag) return EMPTY_PARAMS;
|
|
313
|
+
return (_this_paramsByTag_get = this.paramsByTag.get(tag)) !== null && _this_paramsByTag_get !== void 0 ? _this_paramsByTag_get : EMPTY_PARAMS;
|
|
314
|
+
}
|
|
315
|
+
}, {
|
|
316
|
+
key: "match",
|
|
317
|
+
value: function match(href) {
|
|
318
|
+
var str = hrefToString(href);
|
|
319
|
+
var [path = "", query] = str.split("?");
|
|
320
|
+
var parts = path.split("/").filter(Boolean);
|
|
321
|
+
var _iteratorNormalCompletion = true,
|
|
322
|
+
_didIteratorError = false,
|
|
323
|
+
_iteratorError = void 0;
|
|
324
|
+
try {
|
|
325
|
+
for (var _iterator = this.routes[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
326
|
+
var route = _step.value;
|
|
327
|
+
if (route.segments.length !== parts.length) continue;
|
|
328
|
+
var params = parseQuery(query);
|
|
329
|
+
var ok = true;
|
|
330
|
+
for (var i = 0; i < parts.length; i++) {
|
|
331
|
+
var seg = route.segments[i];
|
|
332
|
+
var part = decodeURIComponent(parts[i]);
|
|
333
|
+
if (seg.literal !== void 0) {
|
|
334
|
+
if (seg.literal !== part) {
|
|
335
|
+
ok = false;
|
|
336
|
+
break;
|
|
337
|
+
}
|
|
338
|
+
} else if (seg.param !== void 0) {
|
|
339
|
+
params[seg.param] = part;
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
if (ok) return {
|
|
343
|
+
route,
|
|
344
|
+
pathname: path === "" ? "/" : `/${parts.join("/")}`,
|
|
345
|
+
params
|
|
346
|
+
};
|
|
347
|
+
}
|
|
348
|
+
} catch (err) {
|
|
349
|
+
_didIteratorError = true;
|
|
350
|
+
_iteratorError = err;
|
|
351
|
+
} finally {
|
|
352
|
+
try {
|
|
353
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
354
|
+
_iterator.return();
|
|
355
|
+
}
|
|
356
|
+
} finally {
|
|
357
|
+
if (_didIteratorError) {
|
|
358
|
+
throw _iteratorError;
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
return null;
|
|
363
|
+
}
|
|
364
|
+
}, {
|
|
365
|
+
key: "navigate",
|
|
366
|
+
value: (
|
|
367
|
+
/** Shared push/replace flow, incl. the loader bridge. When the target
|
|
368
|
+
* route has no loader the whole body runs SYNCHRONOUSLY (an async
|
|
369
|
+
* function only yields at its first await), preserving the original
|
|
370
|
+
* timing. With a loader, the host action waits for the loader to resolve
|
|
371
|
+
* — same contract as One on web, where client navigation completes only
|
|
372
|
+
* after the route's loader data arrived — so the page's first paint has
|
|
373
|
+
* its data (and the lazily-mounted content mounts with it). */
|
|
374
|
+
async function navigate(href, mode) {
|
|
375
|
+
var hit = this.match(href);
|
|
376
|
+
if (!hit) {
|
|
377
|
+
console.log(`[stack nav] ${mode} ${hrefToString(href)} \u2014 no page in the route manifest, ignored`);
|
|
378
|
+
return;
|
|
379
|
+
}
|
|
380
|
+
if (!this.host) {
|
|
381
|
+
console.log(`[stack nav] ${mode} ${hrefToString(href)} \u2014 no stack host attached, ignored`);
|
|
382
|
+
return;
|
|
383
|
+
}
|
|
384
|
+
var {
|
|
385
|
+
route,
|
|
386
|
+
pathname,
|
|
387
|
+
params
|
|
388
|
+
} = hit;
|
|
389
|
+
var seq = ++this.navSeq;
|
|
390
|
+
if (route.loader) {
|
|
391
|
+
try {
|
|
392
|
+
var data = await route.loader({
|
|
393
|
+
path: pathname,
|
|
394
|
+
params
|
|
395
|
+
});
|
|
396
|
+
if (seq !== this.navSeq) return;
|
|
397
|
+
this.loaderDataByTag.set(route.tag, data);
|
|
398
|
+
} catch (err) {
|
|
399
|
+
if (seq !== this.navSeq) return;
|
|
400
|
+
console.error(`[stack nav] loader for ${route.tag} failed: ${String(err)}`);
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
this.visitedTags.add(route.tag);
|
|
404
|
+
this.setRouteState(route.tag, pathname, params);
|
|
405
|
+
if (mode === "replace") {
|
|
406
|
+
var top = this.stackTags[this.stackTags.length - 1];
|
|
407
|
+
if (top === route.tag) return;
|
|
408
|
+
var tags = [...this.stackTags.slice(0, -1), route.tag];
|
|
409
|
+
this.host.replace_with_tags(tags);
|
|
410
|
+
return;
|
|
411
|
+
}
|
|
412
|
+
var idx = this.stackTags.indexOf(route.tag);
|
|
413
|
+
if (idx === -1) {
|
|
414
|
+
this.host.push_by_tag(route.tag);
|
|
415
|
+
} else if (idx < this.stackTags.length - 1) {
|
|
416
|
+
this.host.pop_to_tag(route.tag);
|
|
417
|
+
}
|
|
418
|
+
})
|
|
419
|
+
}, {
|
|
420
|
+
key: "setRouteState",
|
|
421
|
+
value: function setRouteState(tag, pathname, params) {
|
|
422
|
+
this.paramsByTag.set(tag, params);
|
|
423
|
+
this.pathnameByTag.set(tag, pathname);
|
|
424
|
+
this.rebuildSnapshot();
|
|
425
|
+
}
|
|
426
|
+
}, {
|
|
427
|
+
key: "rebuildSnapshot",
|
|
428
|
+
value: function rebuildSnapshot() {
|
|
429
|
+
var _this_stackTags_, _ref, _this_pathnameByTag_get;
|
|
430
|
+
var tag = (_this_stackTags_ = this.stackTags[this.stackTags.length - 1]) !== null && _this_stackTags_ !== void 0 ? _this_stackTags_ : "";
|
|
431
|
+
var route = this.routes.find(function (r) {
|
|
432
|
+
return r.tag === tag;
|
|
433
|
+
});
|
|
434
|
+
this.generation++;
|
|
435
|
+
this.snapshot = {
|
|
436
|
+
pathname: (_ref = (_this_pathnameByTag_get = this.pathnameByTag.get(tag)) !== null && _this_pathnameByTag_get !== void 0 ? _this_pathnameByTag_get : route === null || route === void 0 ? void 0 : route.pattern) !== null && _ref !== void 0 ? _ref : "/",
|
|
437
|
+
tag,
|
|
438
|
+
depth: this.stackTags.length,
|
|
439
|
+
canGoBack: this.stackTags.length > 1,
|
|
440
|
+
generation: this.generation
|
|
441
|
+
};
|
|
442
|
+
var _iteratorNormalCompletion = true,
|
|
443
|
+
_didIteratorError = false,
|
|
444
|
+
_iteratorError = void 0;
|
|
445
|
+
try {
|
|
446
|
+
for (var _iterator = this.listeners[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
447
|
+
var fn = _step.value;
|
|
448
|
+
fn();
|
|
449
|
+
}
|
|
450
|
+
} catch (err) {
|
|
451
|
+
_didIteratorError = true;
|
|
452
|
+
_iteratorError = err;
|
|
453
|
+
} finally {
|
|
454
|
+
try {
|
|
455
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
456
|
+
_iterator.return();
|
|
457
|
+
}
|
|
458
|
+
} finally {
|
|
459
|
+
if (_didIteratorError) {
|
|
460
|
+
throw _iteratorError;
|
|
461
|
+
}
|
|
462
|
+
}
|
|
463
|
+
}
|
|
464
|
+
}
|
|
465
|
+
}]);
|
|
466
|
+
return StackNavigator2;
|
|
467
|
+
}();
|
|
468
|
+
var stackNavigator = new StackNavigator();
|
|
469
|
+
var RouteTagContext = (0, import_react.createContext)(null);
|
|
470
|
+
function useNavState() {
|
|
471
|
+
return (0, import_react.useSyncExternalStore)(stackNavigator.subscribe, stackNavigator.getSnapshot);
|
|
472
|
+
}
|
|
473
|
+
function useRouteParams() {
|
|
474
|
+
var tag = (0, import_react.useContext)(RouteTagContext);
|
|
475
|
+
return (0, import_react.useSyncExternalStore)(stackNavigator.subscribe, function () {
|
|
476
|
+
return stackNavigator.paramsSnapshot(tag);
|
|
477
|
+
});
|
|
478
|
+
}
|
|
479
|
+
//# sourceMappingURL=navigator.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","navigator_exports","__export","RouteTagContext","StackNavigator","hrefToString","stackNavigator","useNavState","useRouteParams","module","exports","import_react","require","_class_call_check","instance","Constructor","TypeError","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_create_class","protoProps","staticProps","prototype","_define_property","obj","compileRoute","def","segments","pattern","split","filter","Boolean","map","seg","m","match","param","literal","parseQuery","query","params","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","next","done","pair","eq","indexOf","decodeURIComponent","slice","prev","Array","isArray","push","err","return","href","_href_params","path","pathname","leftover","entries","raw","String","token","includes","replace","encodeURIComponent","join","EMPTY_PARAMS","freeze","StackNavigator2","_this","Set","Map","tag","depth","canGoBack","generation","fn","listeners","add","delete","snapshot","navigate","host","console","log","navSeq","pop","_this_paramsByTag_get","top","stackTags","paramsByTag","get","set","rebuildSnapshot","model","get_navigation_stack","tags","count","get_n_items","_model_get_item","get_item","get_tag","tag1","visitedTags","routes","configure","defs","loaderDataByTag","root","pathnameByTag","isVisited","has","loaderSnapshot","preload","hit","route","loader","data"],"sources":["../../../src/seam/navigator.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all) __defProp(target, name, {
|
|
7
|
+
get: all[name],
|
|
8
|
+
enumerable: true
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
14
|
+
get: () => from[key],
|
|
15
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
21
|
+
value: true
|
|
22
|
+
}), mod);
|
|
23
|
+
var oneAdapter_exports = {};
|
|
24
|
+
__export(oneAdapter_exports, {
|
|
25
|
+
Link: () => Link,
|
|
26
|
+
LoadProgressBar: () => LoadProgressBar,
|
|
27
|
+
Slot: () => Slot,
|
|
28
|
+
getUserScheme: () => import_color_scheme.getUserScheme,
|
|
29
|
+
onUserSchemeChange: () => import_color_scheme.onUserSchemeChange,
|
|
30
|
+
setUserScheme: () => import_color_scheme.setUserScheme,
|
|
31
|
+
useBlocker: () => useBlocker,
|
|
32
|
+
useLoader: () => useLoader,
|
|
33
|
+
useLocalSearchParams: () => useLocalSearchParams,
|
|
34
|
+
useMatches: () => useMatches,
|
|
35
|
+
useParams: () => useParams,
|
|
36
|
+
usePathname: () => usePathname,
|
|
37
|
+
useRouter: () => useRouter,
|
|
38
|
+
useUserScheme: () => import_color_scheme.useUserScheme
|
|
39
|
+
});
|
|
40
|
+
module.exports = __toCommonJS(oneAdapter_exports);
|
|
41
|
+
var import_react = require("react");
|
|
42
|
+
var import_navigator = require("./navigator.cjs");
|
|
43
|
+
var import_color_scheme = require("@vxrn/color-scheme");
|
|
44
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
45
|
+
function useLoader(_loader) {
|
|
46
|
+
const tag = (0, import_react.useContext)(import_navigator.RouteTagContext);
|
|
47
|
+
const fromRoute = (0, import_react.useSyncExternalStore)(import_navigator.stackNavigator.subscribe, () => import_navigator.stackNavigator.loaderSnapshot(tag));
|
|
48
|
+
return fromRoute;
|
|
49
|
+
}
|
|
50
|
+
const ROUTER = {
|
|
51
|
+
push: import_navigator.stackNavigator.push,
|
|
52
|
+
navigate: import_navigator.stackNavigator.push,
|
|
53
|
+
replace: import_navigator.stackNavigator.replace,
|
|
54
|
+
back: import_navigator.stackNavigator.back,
|
|
55
|
+
canGoBack: () => import_navigator.stackNavigator.getSnapshot().canGoBack,
|
|
56
|
+
dismiss: count => {
|
|
57
|
+
for (let i = 0; i < (count ?? 1); i++) import_navigator.stackNavigator.back();
|
|
58
|
+
},
|
|
59
|
+
dismissAll: () => {
|
|
60
|
+
const depth = import_navigator.stackNavigator.getSnapshot().depth;
|
|
61
|
+
for (let i = 1; i < depth; i++) import_navigator.stackNavigator.back();
|
|
62
|
+
},
|
|
63
|
+
canDismiss: () => import_navigator.stackNavigator.getSnapshot().canGoBack,
|
|
64
|
+
setParams: import_navigator.stackNavigator.setParams,
|
|
65
|
+
subscribe: listener => {
|
|
66
|
+
listener("success");
|
|
67
|
+
return () => {};
|
|
68
|
+
},
|
|
69
|
+
onLoadState: listener => {
|
|
70
|
+
listener("loaded");
|
|
71
|
+
return () => {};
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
function useRouter() {
|
|
75
|
+
return ROUTER;
|
|
76
|
+
}
|
|
77
|
+
function Link({
|
|
78
|
+
href,
|
|
79
|
+
replace,
|
|
80
|
+
children,
|
|
81
|
+
style,
|
|
82
|
+
...rest
|
|
83
|
+
}) {
|
|
84
|
+
if (!href || !import_navigator.stackNavigator.isConfigured) return children ?? null;
|
|
85
|
+
const hrefString = (0, import_navigator.hrefToString)(href);
|
|
86
|
+
const onClick = event => {
|
|
87
|
+
event.preventDefault();
|
|
88
|
+
if (replace) import_navigator.stackNavigator.replace(href);else import_navigator.stackNavigator.push(href);
|
|
89
|
+
};
|
|
90
|
+
return /* @__PURE__ */(0, import_jsx_runtime.jsx)("a", {
|
|
91
|
+
href: hrefString,
|
|
92
|
+
onClick,
|
|
93
|
+
style: {
|
|
94
|
+
display: "contents",
|
|
95
|
+
color: "inherit",
|
|
96
|
+
textDecoration: "none",
|
|
97
|
+
...style
|
|
98
|
+
},
|
|
99
|
+
"data-seam-link": hrefString,
|
|
100
|
+
...rest,
|
|
101
|
+
children
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
function Slot(_props) {
|
|
105
|
+
return null;
|
|
106
|
+
}
|
|
107
|
+
function useParams() {
|
|
108
|
+
return (0, import_navigator.useRouteParams)();
|
|
109
|
+
}
|
|
110
|
+
function useLocalSearchParams() {
|
|
111
|
+
return (0, import_navigator.useRouteParams)();
|
|
112
|
+
}
|
|
113
|
+
function usePathname() {
|
|
114
|
+
return (0, import_navigator.useNavState)().pathname;
|
|
115
|
+
}
|
|
116
|
+
function useBlocker(_shouldBlock) {
|
|
117
|
+
return {
|
|
118
|
+
state: "unblocked",
|
|
119
|
+
proceed: () => {},
|
|
120
|
+
reset: () => {}
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
function LoadProgressBar(_props) {
|
|
124
|
+
return null;
|
|
125
|
+
}
|
|
126
|
+
function useMatches() {
|
|
127
|
+
return [];
|
|
128
|
+
}
|