@wcstack/router 1.3.11
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.ja.md +488 -0
- package/README.md +486 -0
- package/dist/GuardCancel.d.ts +6 -0
- package/dist/GuardCancel.d.ts.map +1 -0
- package/dist/GuardCancel.js +8 -0
- package/dist/GuardCancel.js.map +1 -0
- package/dist/Navigation.d.ts +7 -0
- package/dist/Navigation.d.ts.map +1 -0
- package/dist/Navigation.js +11 -0
- package/dist/Navigation.js.map +1 -0
- package/dist/applyRoute.d.ts +3 -0
- package/dist/applyRoute.d.ts.map +1 -0
- package/dist/applyRoute.js +40 -0
- package/dist/applyRoute.js.map +1 -0
- package/dist/assignParams.d.ts +2 -0
- package/dist/assignParams.d.ts.map +1 -0
- package/dist/assignParams.js +52 -0
- package/dist/assignParams.js.map +1 -0
- package/dist/auto.js +3 -0
- package/dist/auto.min.js +3 -0
- package/dist/bootstrapRouter.d.ts +8 -0
- package/dist/bootstrapRouter.d.ts.map +1 -0
- package/dist/bootstrapRouter.js +14 -0
- package/dist/bootstrapRouter.js.map +1 -0
- package/dist/builtinParamTypes.d.ts +38 -0
- package/dist/builtinParamTypes.d.ts.map +1 -0
- package/dist/builtinParamTypes.js +79 -0
- package/dist/builtinParamTypes.js.map +1 -0
- package/dist/components/Head.d.ts +29 -0
- package/dist/components/Head.d.ts.map +1 -0
- package/dist/components/Head.js +173 -0
- package/dist/components/Head.js.map +1 -0
- package/dist/components/Layout.d.ts +15 -0
- package/dist/components/Layout.d.ts.map +1 -0
- package/dist/components/Layout.js +86 -0
- package/dist/components/Layout.js.map +1 -0
- package/dist/components/LayoutOutlet.d.ts +15 -0
- package/dist/components/LayoutOutlet.d.ts.map +1 -0
- package/dist/components/LayoutOutlet.js +101 -0
- package/dist/components/LayoutOutlet.js.map +1 -0
- package/dist/components/Link.d.ts +25 -0
- package/dist/components/Link.d.ts.map +1 -0
- package/dist/components/Link.js +155 -0
- package/dist/components/Link.js.map +1 -0
- package/dist/components/Outlet.d.ts +16 -0
- package/dist/components/Outlet.d.ts.map +1 -0
- package/dist/components/Outlet.js +46 -0
- package/dist/components/Outlet.js.map +1 -0
- package/dist/components/Route.d.ts +61 -0
- package/dist/components/Route.d.ts.map +1 -0
- package/dist/components/Route.js +348 -0
- package/dist/components/Route.js.map +1 -0
- package/dist/components/Router.d.ts +62 -0
- package/dist/components/Router.d.ts.map +1 -0
- package/dist/components/Router.js +237 -0
- package/dist/components/Router.js.map +1 -0
- package/dist/components/types.d.ts +86 -0
- package/dist/components/types.d.ts.map +1 -0
- package/dist/components/types.js +2 -0
- package/dist/components/types.js.map +1 -0
- package/dist/config.d.ts +5 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +53 -0
- package/dist/config.js.map +1 -0
- package/dist/exports.d.ts +3 -0
- package/dist/exports.d.ts.map +1 -0
- package/dist/exports.js +2 -0
- package/dist/exports.js.map +1 -0
- package/dist/getCustomTagName.d.ts +2 -0
- package/dist/getCustomTagName.d.ts.map +1 -0
- package/dist/getCustomTagName.js +12 -0
- package/dist/getCustomTagName.js.map +1 -0
- package/dist/getUUID.d.ts +2 -0
- package/dist/getUUID.d.ts.map +1 -0
- package/dist/getUUID.js +11 -0
- package/dist/getUUID.js.map +1 -0
- package/dist/hideRoute.d.ts +3 -0
- package/dist/hideRoute.d.ts.map +1 -0
- package/dist/hideRoute.js +7 -0
- package/dist/hideRoute.js.map +1 -0
- package/dist/index.d.ts +24 -0
- package/dist/index.esm.js +1682 -0
- package/dist/index.esm.js.map +1 -0
- package/dist/index.esm.min.js +2 -0
- package/dist/index.esm.min.js.map +1 -0
- package/dist/matchRoutes.d.ts +3 -0
- package/dist/matchRoutes.d.ts.map +1 -0
- package/dist/matchRoutes.js +52 -0
- package/dist/matchRoutes.js.map +1 -0
- package/dist/parse.d.ts +3 -0
- package/dist/parse.d.ts.map +1 -0
- package/dist/parse.js +77 -0
- package/dist/parse.js.map +1 -0
- package/dist/raiseError.d.ts +2 -0
- package/dist/raiseError.d.ts.map +1 -0
- package/dist/raiseError.js +4 -0
- package/dist/raiseError.js.map +1 -0
- package/dist/registerComponents.d.ts +2 -0
- package/dist/registerComponents.d.ts.map +1 -0
- package/dist/registerComponents.js +33 -0
- package/dist/registerComponents.js.map +1 -0
- package/dist/showRoute.d.ts +3 -0
- package/dist/showRoute.d.ts.map +1 -0
- package/dist/showRoute.js +38 -0
- package/dist/showRoute.js.map +1 -0
- package/dist/showRouteContent.d.ts +3 -0
- package/dist/showRouteContent.d.ts.map +1 -0
- package/dist/showRouteContent.js +38 -0
- package/dist/showRouteContent.js.map +1 -0
- package/dist/testPath.d.ts +3 -0
- package/dist/testPath.d.ts.map +1 -0
- package/dist/testPath.js +85 -0
- package/dist/testPath.js.map +1 -0
- package/dist/types.d.ts +38 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +74 -0
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { IOutlet, IRoute, IRouter } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* AppRoutes - Root component for @wcstack/router
|
|
4
|
+
*
|
|
5
|
+
* Container element that manages route definitions and navigation.
|
|
6
|
+
*/
|
|
7
|
+
export declare class Router extends HTMLElement implements IRouter {
|
|
8
|
+
private static _instance;
|
|
9
|
+
private _outlet;
|
|
10
|
+
private _template;
|
|
11
|
+
private _routeChildNodes;
|
|
12
|
+
private _basename;
|
|
13
|
+
private _path;
|
|
14
|
+
private _initialized;
|
|
15
|
+
private _fallbackRoute;
|
|
16
|
+
private _listeningPopState;
|
|
17
|
+
constructor();
|
|
18
|
+
/**
|
|
19
|
+
* Normalize a URL pathname to a route path.
|
|
20
|
+
* - ensure leading slash
|
|
21
|
+
* - collapse multiple slashes
|
|
22
|
+
* - treat trailing file extensions (e.g. .html) as directory root
|
|
23
|
+
* - remove trailing slash except root "/"
|
|
24
|
+
*/
|
|
25
|
+
private _normalizePathname;
|
|
26
|
+
/**
|
|
27
|
+
* Normalize basename.
|
|
28
|
+
* - "" or "/" -> ""
|
|
29
|
+
* - "/app/" -> "/app"
|
|
30
|
+
* - "/app/index.html" -> "/app"
|
|
31
|
+
*/
|
|
32
|
+
private _normalizeBasename;
|
|
33
|
+
private _joinInternalPath;
|
|
34
|
+
private _notifyLocationChange;
|
|
35
|
+
private _getBasename;
|
|
36
|
+
static get instance(): IRouter;
|
|
37
|
+
static navigate(path: string): void;
|
|
38
|
+
get basename(): string;
|
|
39
|
+
private _getOutlet;
|
|
40
|
+
private _getTemplate;
|
|
41
|
+
get outlet(): IOutlet;
|
|
42
|
+
get template(): HTMLTemplateElement;
|
|
43
|
+
get routeChildNodes(): IRoute[];
|
|
44
|
+
get path(): string;
|
|
45
|
+
/**
|
|
46
|
+
* applyRoute 内で設定される値です。
|
|
47
|
+
*/
|
|
48
|
+
set path(value: string);
|
|
49
|
+
get fallbackRoute(): IRoute | null;
|
|
50
|
+
/**
|
|
51
|
+
* Routeのfallback属性がある場合にそのルートを設定します。
|
|
52
|
+
*/
|
|
53
|
+
set fallbackRoute(value: IRoute | null);
|
|
54
|
+
navigate(path: string): Promise<void>;
|
|
55
|
+
private _onNavigateFunc;
|
|
56
|
+
private _onNavigate;
|
|
57
|
+
private _onPopState;
|
|
58
|
+
private _initialize;
|
|
59
|
+
connectedCallback(): Promise<void>;
|
|
60
|
+
disconnectedCallback(): void;
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=Router.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Router.d.ts","sourceRoot":"","sources":["../../src/components/Router.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAItD;;;;GAIG;AACH,qBAAa,MAAO,SAAQ,WAAY,YAAW,OAAO;IACxD,OAAO,CAAC,MAAM,CAAC,SAAS,CAAwB;IAChD,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,SAAS,CAAoC;IACrD,OAAO,CAAC,gBAAgB,CAAgB;IACxC,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,YAAY,CAAkB;IACtC,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,kBAAkB,CAAkB;;IAU5C;;;;;;OAMG;IACH,OAAO,CAAC,kBAAkB;IAkB1B;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;IAkB1B,OAAO,CAAC,iBAAiB;IAWzB,OAAO,CAAC,qBAAqB;IAK7B,OAAO,CAAC,YAAY;IASpB,MAAM,KAAK,QAAQ,IAAI,OAAO,CAK7B;IAED,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAInC,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,OAAO,CAAC,UAAU;IASlB,OAAO,CAAC,YAAY;IAKpB,IAAI,MAAM,IAAI,OAAO,CAKpB;IAED,IAAI,QAAQ,IAAI,mBAAmB,CAKlC;IAED,IAAI,eAAe,IAAI,MAAM,EAAE,CAE9B;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IACD;;OAEG;IACH,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,EAErB;IAED,IAAI,aAAa,IAAI,MAAM,GAAG,IAAI,CAEjC;IACD;;OAEG;IACH,IAAI,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAErC;IAEK,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAY3C,OAAO,CAAC,eAAe;IAkBvB,OAAO,CAAC,WAAW,CAAmC;IAEtD,OAAO,CAAC,WAAW,CAKjB;YAEY,WAAW;IA6BnB,iBAAiB;IAYvB,oBAAoB;CAUrB"}
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
import { parse } from "../parse.js";
|
|
2
|
+
import { createOutlet } from "./Outlet.js";
|
|
3
|
+
import { config } from "../config.js";
|
|
4
|
+
import { raiseError } from "../raiseError.js";
|
|
5
|
+
import { applyRoute } from "../applyRoute.js";
|
|
6
|
+
import { getNavigation } from "../Navigation.js";
|
|
7
|
+
/**
|
|
8
|
+
* AppRoutes - Root component for @wcstack/router
|
|
9
|
+
*
|
|
10
|
+
* Container element that manages route definitions and navigation.
|
|
11
|
+
*/
|
|
12
|
+
export class Router extends HTMLElement {
|
|
13
|
+
static _instance = null;
|
|
14
|
+
_outlet = null;
|
|
15
|
+
_template = null;
|
|
16
|
+
_routeChildNodes = [];
|
|
17
|
+
_basename = '';
|
|
18
|
+
_path = '';
|
|
19
|
+
_initialized = false;
|
|
20
|
+
_fallbackRoute = null;
|
|
21
|
+
_listeningPopState = false;
|
|
22
|
+
constructor() {
|
|
23
|
+
super();
|
|
24
|
+
if (Router._instance) {
|
|
25
|
+
raiseError(`${config.tagNames.router} can only be instantiated once.`);
|
|
26
|
+
}
|
|
27
|
+
Router._instance = this;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Normalize a URL pathname to a route path.
|
|
31
|
+
* - ensure leading slash
|
|
32
|
+
* - collapse multiple slashes
|
|
33
|
+
* - treat trailing file extensions (e.g. .html) as directory root
|
|
34
|
+
* - remove trailing slash except root "/"
|
|
35
|
+
*/
|
|
36
|
+
_normalizePathname(_path) {
|
|
37
|
+
let path = _path || "/";
|
|
38
|
+
if (!path.startsWith("/"))
|
|
39
|
+
path = "/" + path;
|
|
40
|
+
path = path.replace(/\/{2,}/g, "/");
|
|
41
|
+
// e.g. "/app/index.html" -> "/app"
|
|
42
|
+
const exts = config.basenameFileExtensions;
|
|
43
|
+
if (exts.length > 0) {
|
|
44
|
+
const extPattern = new RegExp(`\\/[^/]+(?:${exts.map(e => e.replace(/\./g, '\\.')).join('|')})$`, 'i');
|
|
45
|
+
path = path.replace(extPattern, "");
|
|
46
|
+
}
|
|
47
|
+
if (path === "")
|
|
48
|
+
path = "/";
|
|
49
|
+
if (path.length > 1 && path.endsWith("/"))
|
|
50
|
+
path = path.slice(0, -1);
|
|
51
|
+
return path;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Normalize basename.
|
|
55
|
+
* - "" or "/" -> ""
|
|
56
|
+
* - "/app/" -> "/app"
|
|
57
|
+
* - "/app/index.html" -> "/app"
|
|
58
|
+
*/
|
|
59
|
+
_normalizeBasename(_path) {
|
|
60
|
+
let path = _path || "";
|
|
61
|
+
if (!path)
|
|
62
|
+
return "";
|
|
63
|
+
if (!path.startsWith("/"))
|
|
64
|
+
path = "/" + path;
|
|
65
|
+
path = path.replace(/\/{2,}/g, "/");
|
|
66
|
+
const exts = config.basenameFileExtensions;
|
|
67
|
+
if (exts.length > 0) {
|
|
68
|
+
const extPattern = new RegExp(`\\/[^/]+(?:${exts.map(e => e.replace(/\./g, '\\.')).join('|')})$`, 'i');
|
|
69
|
+
path = path.replace(extPattern, "");
|
|
70
|
+
}
|
|
71
|
+
if (path.length > 1 && path.endsWith("/"))
|
|
72
|
+
path = path.slice(0, -1);
|
|
73
|
+
if (path === "/")
|
|
74
|
+
return "";
|
|
75
|
+
return path;
|
|
76
|
+
}
|
|
77
|
+
_joinInternalPath(basename, to) {
|
|
78
|
+
const base = this._normalizeBasename(basename);
|
|
79
|
+
// accept "about" as "/about"
|
|
80
|
+
let path = to.startsWith("/") ? to : "/" + to;
|
|
81
|
+
path = this._normalizePathname(path);
|
|
82
|
+
if (!base)
|
|
83
|
+
return path;
|
|
84
|
+
// keep "/app/" for root
|
|
85
|
+
if (path === "/")
|
|
86
|
+
return base + "/";
|
|
87
|
+
return base + path;
|
|
88
|
+
}
|
|
89
|
+
_notifyLocationChange() {
|
|
90
|
+
// For environments without Navigation API (and for Link active-state updates)
|
|
91
|
+
window.dispatchEvent(new CustomEvent("wcs:navigate"));
|
|
92
|
+
}
|
|
93
|
+
_getBasename() {
|
|
94
|
+
const base = new URL(document.baseURI);
|
|
95
|
+
let path = base.pathname || "/";
|
|
96
|
+
if (path === "/") {
|
|
97
|
+
return "";
|
|
98
|
+
}
|
|
99
|
+
return this._normalizeBasename(path);
|
|
100
|
+
}
|
|
101
|
+
static get instance() {
|
|
102
|
+
if (!Router._instance) {
|
|
103
|
+
raiseError(`${config.tagNames.router} has not been instantiated.`);
|
|
104
|
+
}
|
|
105
|
+
return Router._instance;
|
|
106
|
+
}
|
|
107
|
+
static navigate(path) {
|
|
108
|
+
Router.instance.navigate(path);
|
|
109
|
+
}
|
|
110
|
+
get basename() {
|
|
111
|
+
return this._basename;
|
|
112
|
+
}
|
|
113
|
+
_getOutlet() {
|
|
114
|
+
let outlet = document.querySelector(config.tagNames.outlet);
|
|
115
|
+
if (!outlet) {
|
|
116
|
+
outlet = createOutlet();
|
|
117
|
+
document.body.appendChild(outlet);
|
|
118
|
+
}
|
|
119
|
+
return outlet;
|
|
120
|
+
}
|
|
121
|
+
_getTemplate() {
|
|
122
|
+
const template = this.querySelector("template");
|
|
123
|
+
return template;
|
|
124
|
+
}
|
|
125
|
+
get outlet() {
|
|
126
|
+
if (!this._outlet) {
|
|
127
|
+
raiseError(`${config.tagNames.router} has no outlet.`);
|
|
128
|
+
}
|
|
129
|
+
return this._outlet;
|
|
130
|
+
}
|
|
131
|
+
get template() {
|
|
132
|
+
if (!this._template) {
|
|
133
|
+
raiseError(`${config.tagNames.router} has no template.`);
|
|
134
|
+
}
|
|
135
|
+
return this._template;
|
|
136
|
+
}
|
|
137
|
+
get routeChildNodes() {
|
|
138
|
+
return this._routeChildNodes;
|
|
139
|
+
}
|
|
140
|
+
get path() {
|
|
141
|
+
return this._path;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* applyRoute 内で設定される値です。
|
|
145
|
+
*/
|
|
146
|
+
set path(value) {
|
|
147
|
+
this._path = value;
|
|
148
|
+
}
|
|
149
|
+
get fallbackRoute() {
|
|
150
|
+
return this._fallbackRoute;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Routeのfallback属性がある場合にそのルートを設定します。
|
|
154
|
+
*/
|
|
155
|
+
set fallbackRoute(value) {
|
|
156
|
+
this._fallbackRoute = value;
|
|
157
|
+
}
|
|
158
|
+
async navigate(path) {
|
|
159
|
+
const fullPath = this._joinInternalPath(this._basename, path);
|
|
160
|
+
const navigation = getNavigation();
|
|
161
|
+
if (navigation?.navigate) {
|
|
162
|
+
navigation.navigate(fullPath);
|
|
163
|
+
}
|
|
164
|
+
else {
|
|
165
|
+
history.pushState(null, '', fullPath);
|
|
166
|
+
await applyRoute(this, this.outlet, fullPath, this._path);
|
|
167
|
+
this._notifyLocationChange();
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
_onNavigateFunc(navEvent) {
|
|
171
|
+
if (!navEvent.canIntercept ||
|
|
172
|
+
navEvent.hashChange ||
|
|
173
|
+
navEvent.downloadRequest !== null) {
|
|
174
|
+
return;
|
|
175
|
+
}
|
|
176
|
+
const routesNode = this;
|
|
177
|
+
navEvent.intercept({
|
|
178
|
+
handler: async () => {
|
|
179
|
+
const url = new URL(navEvent.destination.url);
|
|
180
|
+
const fullPath = routesNode._normalizePathname(url.pathname);
|
|
181
|
+
await applyRoute(routesNode, routesNode.outlet, fullPath, routesNode.path);
|
|
182
|
+
},
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
_onNavigate = this._onNavigateFunc.bind(this);
|
|
186
|
+
_onPopState = async () => {
|
|
187
|
+
// back/forward for environments without Navigation API
|
|
188
|
+
const fullPath = this._normalizePathname(window.location.pathname);
|
|
189
|
+
await applyRoute(this, this.outlet, fullPath, this._path);
|
|
190
|
+
this._notifyLocationChange();
|
|
191
|
+
};
|
|
192
|
+
async _initialize() {
|
|
193
|
+
this._initialized = true;
|
|
194
|
+
this._basename = this._normalizeBasename(this.getAttribute("basename") || this._getBasename() || "");
|
|
195
|
+
const hasBaseTag = document.querySelector('base[href]') !== null;
|
|
196
|
+
const url = new URL(window.location.href);
|
|
197
|
+
if (this._basename === "" && !hasBaseTag && url.pathname !== "/") {
|
|
198
|
+
raiseError(`${config.tagNames.router} basename is empty, but current path is not "/".`);
|
|
199
|
+
}
|
|
200
|
+
this._outlet = this._getOutlet();
|
|
201
|
+
this._outlet.routesNode = this;
|
|
202
|
+
this._template = this._getTemplate();
|
|
203
|
+
if (!this._template) {
|
|
204
|
+
raiseError(`${config.tagNames.router} should have a <template> child element.`);
|
|
205
|
+
}
|
|
206
|
+
const fragment = await parse(this);
|
|
207
|
+
this._outlet.rootNode.appendChild(fragment);
|
|
208
|
+
if (this.routeChildNodes.length === 0) {
|
|
209
|
+
raiseError(`${config.tagNames.router} has no route definitions.`);
|
|
210
|
+
}
|
|
211
|
+
const fullPath = this._normalizePathname(window.location.pathname);
|
|
212
|
+
await applyRoute(this, this.outlet, fullPath, this._path);
|
|
213
|
+
this._notifyLocationChange();
|
|
214
|
+
}
|
|
215
|
+
async connectedCallback() {
|
|
216
|
+
if (!this._initialized) {
|
|
217
|
+
await this._initialize();
|
|
218
|
+
}
|
|
219
|
+
getNavigation()?.addEventListener("navigate", this._onNavigate);
|
|
220
|
+
// Fallback for browsers without Navigation API
|
|
221
|
+
if (!getNavigation()?.addEventListener && !this._listeningPopState) {
|
|
222
|
+
window.addEventListener("popstate", this._onPopState);
|
|
223
|
+
this._listeningPopState = true;
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
disconnectedCallback() {
|
|
227
|
+
getNavigation()?.removeEventListener("navigate", this._onNavigate);
|
|
228
|
+
if (this._listeningPopState) {
|
|
229
|
+
window.removeEventListener("popstate", this._onPopState);
|
|
230
|
+
this._listeningPopState = false;
|
|
231
|
+
}
|
|
232
|
+
if (Router._instance === this) {
|
|
233
|
+
Router._instance = null;
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
//# sourceMappingURL=Router.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Router.js","sourceRoot":"","sources":["../../src/components/Router.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { BuiltinParamTypes } from "../types";
|
|
2
|
+
export interface IRouteMatchResult {
|
|
3
|
+
routes: IRoute[];
|
|
4
|
+
params: Record<string, string>;
|
|
5
|
+
typedParams: Record<string, any>;
|
|
6
|
+
path: string;
|
|
7
|
+
lastPath: string;
|
|
8
|
+
}
|
|
9
|
+
export type GuardHandler = (toPath: string, fromPath: string) => boolean | Promise<boolean>;
|
|
10
|
+
export interface _ILayout {
|
|
11
|
+
readonly uuid: string;
|
|
12
|
+
readonly enableShadowRoot: boolean;
|
|
13
|
+
readonly name: string;
|
|
14
|
+
loadTemplate(): Promise<HTMLTemplateElement>;
|
|
15
|
+
}
|
|
16
|
+
export type ILayout = _ILayout & Pick<Element, 'childNodes'>;
|
|
17
|
+
export type SegmentType = 'static' | 'param' | 'catch-all';
|
|
18
|
+
export interface ISegmentInfo {
|
|
19
|
+
type: SegmentType;
|
|
20
|
+
segmentText: string;
|
|
21
|
+
paramName: string | null;
|
|
22
|
+
pattern: RegExp;
|
|
23
|
+
isIndex?: boolean;
|
|
24
|
+
paramType?: BuiltinParamTypes;
|
|
25
|
+
}
|
|
26
|
+
export interface IRouteChildContainer {
|
|
27
|
+
readonly routeChildNodes: IRoute[];
|
|
28
|
+
}
|
|
29
|
+
export interface IRoute extends IRouteChildContainer {
|
|
30
|
+
readonly routeParentNode: IRoute | null;
|
|
31
|
+
readonly routerNode: IRouter;
|
|
32
|
+
readonly path: string;
|
|
33
|
+
readonly isRelative: boolean;
|
|
34
|
+
readonly absolutePath: string;
|
|
35
|
+
readonly uuid: string;
|
|
36
|
+
readonly placeHolder: Comment;
|
|
37
|
+
readonly childNodeArray: Node[];
|
|
38
|
+
readonly routes: IRoute[];
|
|
39
|
+
params: Record<string, string>;
|
|
40
|
+
typedParams: Record<string, any>;
|
|
41
|
+
readonly paramNames: string[];
|
|
42
|
+
readonly absoluteParamNames: string[];
|
|
43
|
+
readonly weight: number;
|
|
44
|
+
readonly absoluteWeight: number;
|
|
45
|
+
readonly childIndex: number;
|
|
46
|
+
readonly name: string;
|
|
47
|
+
readonly fullpath: string;
|
|
48
|
+
readonly segmentCount: number;
|
|
49
|
+
readonly absoluteSegmentCount: number;
|
|
50
|
+
readonly segmentInfos: ISegmentInfo[];
|
|
51
|
+
readonly absoluteSegmentInfos: ISegmentInfo[];
|
|
52
|
+
guardHandler: GuardHandler;
|
|
53
|
+
shouldChange(newParams: Record<string, string>): boolean;
|
|
54
|
+
guardCheck(matchResult: IRouteMatchResult): Promise<void>;
|
|
55
|
+
initialize(routerNode: IRouter, parentRouteNode: IRoute | null): void;
|
|
56
|
+
testAncestorNode(ancestorNode: IRoute): boolean;
|
|
57
|
+
clearParams(): void;
|
|
58
|
+
}
|
|
59
|
+
export interface IRouter extends IRouteChildContainer {
|
|
60
|
+
readonly basename: string;
|
|
61
|
+
readonly outlet: IOutlet;
|
|
62
|
+
readonly template: HTMLTemplateElement;
|
|
63
|
+
fallbackRoute: IRoute | null;
|
|
64
|
+
path: string;
|
|
65
|
+
navigate(path: string): Promise<void>;
|
|
66
|
+
}
|
|
67
|
+
export interface IOutlet {
|
|
68
|
+
routesNode: IRouter;
|
|
69
|
+
readonly rootNode: HTMLElement | ShadowRoot;
|
|
70
|
+
lastRoutes: IRoute[];
|
|
71
|
+
}
|
|
72
|
+
export interface ILayoutOutlet {
|
|
73
|
+
layout: ILayout;
|
|
74
|
+
readonly name: string;
|
|
75
|
+
assignParams(params: Record<string, any>): void;
|
|
76
|
+
}
|
|
77
|
+
export interface ILink {
|
|
78
|
+
readonly uuid: string;
|
|
79
|
+
readonly router: IRouter;
|
|
80
|
+
readonly anchorElement: HTMLAnchorElement | null;
|
|
81
|
+
}
|
|
82
|
+
export interface IHead {
|
|
83
|
+
readonly childElementArray: Element[];
|
|
84
|
+
}
|
|
85
|
+
export type BindType = "props" | "states" | "attr" | "";
|
|
86
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/components/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/components/types.ts"],"names":[],"mappings":""}
|
package/dist/config.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAmDnD,eAAO,MAAM,MAAM,EAAE,OAA4B,CAAC;AAElD,wBAAgB,SAAS,IAAI,OAAO,CAKnC;AAED,wBAAgB,SAAS,CAAC,aAAa,EAAE,eAAe,GAAG,IAAI,CAW9D"}
|
package/dist/config.js
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
const _config = {
|
|
2
|
+
tagNames: {
|
|
3
|
+
route: "wcs-route",
|
|
4
|
+
router: "wcs-router",
|
|
5
|
+
outlet: "wcs-outlet",
|
|
6
|
+
layout: "wcs-layout",
|
|
7
|
+
layoutOutlet: "wcs-layout-outlet",
|
|
8
|
+
link: "wcs-link",
|
|
9
|
+
head: "wcs-head"
|
|
10
|
+
},
|
|
11
|
+
enableShadowRoot: false,
|
|
12
|
+
basenameFileExtensions: [".html"]
|
|
13
|
+
};
|
|
14
|
+
function deepFreeze(obj) {
|
|
15
|
+
if (obj === null || typeof obj !== "object")
|
|
16
|
+
return obj;
|
|
17
|
+
Object.freeze(obj);
|
|
18
|
+
for (const key of Object.keys(obj)) {
|
|
19
|
+
deepFreeze(obj[key]);
|
|
20
|
+
}
|
|
21
|
+
return obj;
|
|
22
|
+
}
|
|
23
|
+
function deepClone(obj) {
|
|
24
|
+
if (obj === null || typeof obj !== "object")
|
|
25
|
+
return obj;
|
|
26
|
+
const clone = {};
|
|
27
|
+
for (const key of Object.keys(obj)) {
|
|
28
|
+
clone[key] = deepClone(obj[key]);
|
|
29
|
+
}
|
|
30
|
+
return clone;
|
|
31
|
+
}
|
|
32
|
+
let frozenConfig = null;
|
|
33
|
+
// 後方互換のため config もエクスポート(読み取り専用として使用)
|
|
34
|
+
export const config = _config;
|
|
35
|
+
export function getConfig() {
|
|
36
|
+
if (!frozenConfig) {
|
|
37
|
+
frozenConfig = deepFreeze(deepClone(_config));
|
|
38
|
+
}
|
|
39
|
+
return frozenConfig;
|
|
40
|
+
}
|
|
41
|
+
export function setConfig(partialConfig) {
|
|
42
|
+
if (partialConfig.tagNames) {
|
|
43
|
+
Object.assign(_config.tagNames, partialConfig.tagNames);
|
|
44
|
+
}
|
|
45
|
+
if (typeof partialConfig.enableShadowRoot === "boolean") {
|
|
46
|
+
_config.enableShadowRoot = partialConfig.enableShadowRoot;
|
|
47
|
+
}
|
|
48
|
+
if (Array.isArray(partialConfig.basenameFileExtensions)) {
|
|
49
|
+
_config.basenameFileExtensions = partialConfig.basenameFileExtensions;
|
|
50
|
+
}
|
|
51
|
+
frozenConfig = null;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAgBA,MAAM,OAAO,GAAoB;IAC/B,QAAQ,EAAE;QACR,KAAK,EAAE,WAAW;QAClB,MAAM,EAAE,YAAY;QACpB,MAAM,EAAE,YAAY;QACpB,MAAM,EAAE,YAAY;QACpB,YAAY,EAAE,mBAAmB;QACjC,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,UAAU;KACjB;IACD,gBAAgB,EAAE,KAAK;IACvB,sBAAsB,EAAE,CAAC,OAAO,CAAC;CAClC,CAAC;AAEF,SAAS,UAAU,CAAI,GAAM;IAC3B,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAC;IACxD,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACnB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACnC,UAAU,CAAE,GAA+B,CAAC,GAAG,CAAC,CAAC,CAAC;IACpD,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,SAAS,CAAI,GAAM;IAC1B,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAC;IACxD,MAAM,KAAK,GAA4B,EAAE,CAAC;IAC1C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACnC,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS,CAAE,GAA+B,CAAC,GAAG,CAAC,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,KAAU,CAAC;AACpB,CAAC;AAED,IAAI,YAAY,GAAmB,IAAI,CAAC;AAExC,sCAAsC;AACtC,MAAM,CAAC,MAAM,MAAM,GAAY,OAAkB,CAAC;AAElD,MAAM,UAAU,SAAS;IACvB,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,YAAY,GAAG,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,aAA8B;IACtD,IAAI,aAAa,CAAC,QAAQ,EAAE,CAAC;QAC3B,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;IAC1D,CAAC;IACD,IAAI,OAAO,aAAa,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;QACxD,OAAO,CAAC,gBAAgB,GAAG,aAAa,CAAC,gBAAgB,CAAC;IAC5D,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,sBAAsB,CAAC,EAAE,CAAC;QACxD,OAAO,CAAC,sBAAsB,GAAG,aAAa,CAAC,sBAAsB,CAAC;IACxE,CAAC;IACD,YAAY,GAAG,IAAI,CAAC;AACtB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exports.d.ts","sourceRoot":"","sources":["../src/exports.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,YAAY,EACV,eAAe,EAAE,iBAAiB,EACnC,MAAM,YAAY,CAAC"}
|
package/dist/exports.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exports.js","sourceRoot":"","sources":["../src/exports.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getCustomTagName.d.ts","sourceRoot":"","sources":["../src/getCustomTagName.ts"],"names":[],"mappings":"AACA,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAUhE"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export function getCustomTagName(element) {
|
|
2
|
+
const tagName = element.tagName.toLowerCase();
|
|
3
|
+
if (tagName.includes("-")) {
|
|
4
|
+
return tagName;
|
|
5
|
+
}
|
|
6
|
+
const isAttr = element.getAttribute("is");
|
|
7
|
+
if (isAttr && isAttr.includes("-")) {
|
|
8
|
+
return isAttr;
|
|
9
|
+
}
|
|
10
|
+
return null;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=getCustomTagName.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getCustomTagName.js","sourceRoot":"","sources":["../src/getCustomTagName.ts"],"names":[],"mappings":"AACA,MAAM,UAAU,gBAAgB,CAAC,OAAgB;IAC/C,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;IAC9C,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAC1C,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACnC,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getUUID.d.ts","sourceRoot":"","sources":["../src/getUUID.ts"],"names":[],"mappings":"AACA,wBAAgB,OAAO,IAAI,MAAM,CAUhC"}
|
package/dist/getUUID.js
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export function getUUID() {
|
|
2
|
+
if (typeof crypto !== 'undefined' && crypto.randomUUID) {
|
|
3
|
+
return crypto.randomUUID();
|
|
4
|
+
}
|
|
5
|
+
// Simple UUID generator
|
|
6
|
+
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
|
|
7
|
+
const r = (Math.random() * 16) | 0, v = c === 'x' ? r : (r & 0x3) | 0x8;
|
|
8
|
+
return v.toString(16);
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=getUUID.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getUUID.js","sourceRoot":"","sources":["../src/getUUID.ts"],"names":[],"mappings":"AACA,MAAM,UAAU,OAAO;IACrB,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACvD,OAAO,MAAM,CAAC,UAAU,EAAE,CAAC;IAC7B,CAAC;IACD,wBAAwB;IACxB,OAAO,sCAAsC,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC;QACxE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAChC,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;QACtC,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hideRoute.d.ts","sourceRoot":"","sources":["../src/hideRoute.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,QAKtC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hideRoute.js","sourceRoot":"","sources":["../src/hideRoute.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,SAAS,CAAC,KAAa;IACrC,KAAK,CAAC,WAAW,EAAE,CAAC;IACpB,KAAI,MAAM,IAAI,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;QACvC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;AACH,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
interface IWritableTagNames {
|
|
2
|
+
route?: string;
|
|
3
|
+
router?: string;
|
|
4
|
+
outlet?: string;
|
|
5
|
+
layout?: string;
|
|
6
|
+
layoutOutlet?: string;
|
|
7
|
+
link?: string;
|
|
8
|
+
head?: string;
|
|
9
|
+
}
|
|
10
|
+
interface IWritableConfig {
|
|
11
|
+
tagNames?: IWritableTagNames;
|
|
12
|
+
enableShadowRoot?: boolean;
|
|
13
|
+
basenameFileExtensions?: string[];
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Initialize the router with optional configuration.
|
|
18
|
+
* This is the main entry point for setting up the router.
|
|
19
|
+
* @param config - Optional partial configuration to override defaults
|
|
20
|
+
*/
|
|
21
|
+
declare function bootstrapRouter(config?: Partial<IWritableConfig>): void;
|
|
22
|
+
|
|
23
|
+
export { bootstrapRouter };
|
|
24
|
+
export type { IWritableConfig, IWritableTagNames };
|