zova-module-a-router 5.1.38 → 5.1.40
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/bean/bean.router.d.ts +1 -1
- package/dist/bean/bean.router.d.ts.map +1 -1
- package/dist/bean/sys.router.d.ts.map +1 -1
- package/dist/index.js +52 -24
- package/dist/index.js.map +1 -1
- package/dist/lib/routerGuardDisposers.d.ts +7 -0
- package/dist/lib/routerGuardDisposers.d.ts.map +1 -0
- package/dist/monkey.d.ts.map +1 -1
- package/dist/service/routerGuards.d.ts.map +1 -1
- package/dist/types/pageMeta.d.ts +5 -1
- package/dist/types/pageMeta.d.ts.map +1 -1
- package/dist/types/routerView.d.ts +4 -0
- package/dist/types/routerView.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/bean/bean.router.ts +13 -22
- package/src/bean/sys.router.ts +1 -0
- package/src/lib/routerGuardDisposers.ts +19 -0
- package/src/monkey.ts +18 -3
- package/src/service/routerGuards.ts +12 -3
- package/src/types/pageMeta.ts +6 -1
- package/src/types/routerView.ts +5 -0
|
@@ -15,7 +15,7 @@ export interface BeanRouter extends Omit<SysRouter, '$beanFullName' | '$onionNam
|
|
|
15
15
|
}
|
|
16
16
|
export declare class BeanRouter extends BeanBase {
|
|
17
17
|
private _vueRouterApp;
|
|
18
|
-
private
|
|
18
|
+
private _routerGuardDisposers;
|
|
19
19
|
private _routerViews;
|
|
20
20
|
private _disposed;
|
|
21
21
|
$$sysRouter: SysRouter;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bean.router.d.ts","sourceRoot":"","sources":["../../src/bean/bean.router.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EACvB,mBAAmB,EACnB,oCAAoC,EACpC,MAAM,EACN,aAAa,EACd,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"bean.router.d.ts","sourceRoot":"","sources":["../../src/bean/bean.router.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EACvB,mBAAmB,EACnB,oCAAoC,EACpC,MAAM,EACN,aAAa,EACd,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,QAAQ,EAAO,MAAM,MAAM,CAAC;AAIrC,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,MAAM,WAAW,qBAAqB;IACpC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,iBAAiB,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC1D,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,UAAW,SAAQ,IAAI,CACtC,SAAS,EACT,eAAe,GAAG,YAAY,GAAG,eAAe,CACjD;CAAG;AAEJ,qBACa,UAAW,SAAQ,QAAQ;IACtC,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,qBAAqB,CAA8B;IAC3D,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,SAAS,CAAS;IAG1B,WAAW,EAAE,SAAS,CAAC;IAGvB,eAAe,EAAE,aAAa,CAAC;IAE/B,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,UAAU,YAEb;IAED,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,aAAa,CAAC,CAAS;IAC/B,OAAO,CAAC,kBAAkB,CAAC,CAAwC;IAEnE;;;;;;OAMG;IACI,0BAA0B,CAAC,KAAK,EAAE,oCAAoC,GAAG,MAAM;IAK/E,OAAO;IAWd,SAAS,CAAC,WAAW;IAKrB,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM;cAOd,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,GAAG,qBAAqB;IAoB9E,aAAa,CAAC,UAAU,EAAE,kBAAkB;IAS5C,gBAAgB,CAAC,UAAU,EAAE,kBAAkB;IAO/C,kBAAkB,CAAC,KAAK,EAAE,oCAAoC;IAO9D,qBAAqB,CAAC,KAAK,EAAE,oCAAoC;IAOjE,UAAU,CAAC,KAAK,EAAE,uBAAuB,CAAC,SAAS,CAAC,GAAG,MAAM,IAAI;IAIjE,aAAa,CAAC,KAAK,EAAE,uBAAuB,CAAC,SAAS,CAAC,GAAG,MAAM,IAAI;IAIpE,SAAS,CAAC,KAAK,EAAE,mBAAmB,GAAG,MAAM,IAAI;IAIjD,OAAO,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,IAAI;IAI/C,WAAW,CAAC,KAAK,EAAE,oCAAoC,EAAE,QAAQ,EAAE,SAAS;CAK7E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sys.router.d.ts","sourceRoot":"","sources":["../../src/bean/sys.router.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,6BAA6B,EAC7B,oCAAoC,EACpC,4BAA4B,EAC5B,MAAM,EACN,aAAa,EACd,MAAM,oBAAoB,CAAC;AAW5B,OAAO,EAAE,QAAQ,EAA+B,MAAM,MAAM,CAAC;AAI7D,OAAO,EAEL,qBAAqB,EACrB,eAAe,EACf,eAAe,EAChB,MAAM,oBAAoB,CAAC;AAG5B,MAAM,WAAW,SAAU,SAAQ,MAAM;CAAG;AAE5C,qBACa,SAAU,SAAQ,QAAQ;IACrC,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,0BAA0B,CAAqB;IAEvD,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM;cAId,QAAQ;IASjB,YAAY,CAAC,OAAO,CAAC,EAAE,aAAa;IAoCpC,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,qBAAqB;IAK9D,4BAA4B,CAAC,MAAM,EAAE,oBAAoB,GAAG,SAAS;IAQrE,WAAW,CAAC,CAAC,SAAS,MAAM,eAAe,EAChD,IAAI,EAAE,CAAC,EACP,OAAO,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,EAC5B,QAAQ,CAAC,EAAE,OAAO;IAQP,YAAY,CACvB,GAAG,EAAE,MAAM,EACX,QAAQ,CAAC,EAAE,OAAO,EAClB,YAAY,CAAC,EAAE,OAAO,GACrB,OAAO,CAAC,4BAA4B,GAAG,SAAS,CAAC;IAkB7C,cAAc,CACnB,EAAE,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;KAAE,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,GACnF,OAAO;IAYH,qBAAqB,CAC1B,QAAQ,EAAE,MAAM,EAChB,YAAY,CAAC,EAAE,oCAAoC,GAClD,OAAO;IAmBG,WAAW,CAAC,QAAQ,EAAE,MAAM;IAiDzC,eAAe,CAAC,KAAK,EAAE,6BAA6B,GAAG,oBAAoB,GAAG,SAAS;IAIvF,gBAAgB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS;IAInE,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO;IAIvD,WAAW,CAAC,CAAC,SAAS,MAAM,eAAe,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,MAAM;IAS3F,YAAY,CAAC,CAAC,SAAS,MAAM,eAAe,EAC1C,IAAI,EAAE,CAAC,EACP,OAAO,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,EAC5B,QAAQ,CAAC,EAAE,OAAO,GACjB,MAAM,GAAG,SAAS;IAoBrB,OAAO,CAAC,oBAAoB;IAQ5B,OAAO,CAAC,kBAAkB;IA2B1B,OAAO,CAAC,iBAAiB;IAezB,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,cAAc;
|
|
1
|
+
{"version":3,"file":"sys.router.d.ts","sourceRoot":"","sources":["../../src/bean/sys.router.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,6BAA6B,EAC7B,oCAAoC,EACpC,4BAA4B,EAC5B,MAAM,EACN,aAAa,EACd,MAAM,oBAAoB,CAAC;AAW5B,OAAO,EAAE,QAAQ,EAA+B,MAAM,MAAM,CAAC;AAI7D,OAAO,EAEL,qBAAqB,EACrB,eAAe,EACf,eAAe,EAChB,MAAM,oBAAoB,CAAC;AAG5B,MAAM,WAAW,SAAU,SAAQ,MAAM;CAAG;AAE5C,qBACa,SAAU,SAAQ,QAAQ;IACrC,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,0BAA0B,CAAqB;IAEvD,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM;cAId,QAAQ;IASjB,YAAY,CAAC,OAAO,CAAC,EAAE,aAAa;IAoCpC,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,qBAAqB;IAK9D,4BAA4B,CAAC,MAAM,EAAE,oBAAoB,GAAG,SAAS;IAQrE,WAAW,CAAC,CAAC,SAAS,MAAM,eAAe,EAChD,IAAI,EAAE,CAAC,EACP,OAAO,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,EAC5B,QAAQ,CAAC,EAAE,OAAO;IAQP,YAAY,CACvB,GAAG,EAAE,MAAM,EACX,QAAQ,CAAC,EAAE,OAAO,EAClB,YAAY,CAAC,EAAE,OAAO,GACrB,OAAO,CAAC,4BAA4B,GAAG,SAAS,CAAC;IAkB7C,cAAc,CACnB,EAAE,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;KAAE,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,GACnF,OAAO;IAYH,qBAAqB,CAC1B,QAAQ,EAAE,MAAM,EAChB,YAAY,CAAC,EAAE,oCAAoC,GAClD,OAAO;IAmBG,WAAW,CAAC,QAAQ,EAAE,MAAM;IAiDzC,eAAe,CAAC,KAAK,EAAE,6BAA6B,GAAG,oBAAoB,GAAG,SAAS;IAIvF,gBAAgB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS;IAInE,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO;IAIvD,WAAW,CAAC,CAAC,SAAS,MAAM,eAAe,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,MAAM;IAS3F,YAAY,CAAC,CAAC,SAAS,MAAM,eAAe,EAC1C,IAAI,EAAE,CAAC,EACP,OAAO,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,EAC5B,QAAQ,CAAC,EAAE,OAAO,GACjB,MAAM,GAAG,SAAS;IAoBrB,OAAO,CAAC,oBAAoB;IAQ5B,OAAO,CAAC,kBAAkB;IA2B1B,OAAO,CAAC,iBAAiB;IAezB,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,cAAc;CAgFvB"}
|
package/dist/index.js
CHANGED
|
@@ -331,6 +331,7 @@ var SysRouter = (_dec$5 = Sys(), _dec2$5 = BeanInfo({ module: "a-router" }), _de
|
|
|
331
331
|
routeData = {
|
|
332
332
|
name: routeNameParent,
|
|
333
333
|
path,
|
|
334
|
+
...route.alias ? { alias: route.alias } : {},
|
|
334
335
|
component: this.createAsyncComponent(layout),
|
|
335
336
|
children: [{
|
|
336
337
|
...route,
|
|
@@ -348,6 +349,25 @@ var SysRouter = (_dec$5 = Sys(), _dec2$5 = BeanInfo({ module: "a-router" }), _de
|
|
|
348
349
|
}
|
|
349
350
|
}) || _class$5) || _class$5);
|
|
350
351
|
//#endregion
|
|
352
|
+
//#region src/lib/routerGuardDisposers.ts
|
|
353
|
+
var RouterGuardDisposers = class {
|
|
354
|
+
constructor() {
|
|
355
|
+
this._disposers = [];
|
|
356
|
+
this._disposed = false;
|
|
357
|
+
}
|
|
358
|
+
add(disposer) {
|
|
359
|
+
this._disposers.push(disposer);
|
|
360
|
+
return disposer;
|
|
361
|
+
}
|
|
362
|
+
dispose() {
|
|
363
|
+
if (this._disposed) return;
|
|
364
|
+
this._disposed = true;
|
|
365
|
+
const disposers = this._disposers;
|
|
366
|
+
this._disposers = [];
|
|
367
|
+
for (const disposer of disposers) disposer();
|
|
368
|
+
}
|
|
369
|
+
};
|
|
370
|
+
//#endregion
|
|
351
371
|
//#region src/bean/bean.router.ts
|
|
352
372
|
var _dec$4;
|
|
353
373
|
var _dec2$4;
|
|
@@ -379,7 +399,7 @@ var BeanRouter = (_dec$4 = Bean(), _dec2$4 = BeanInfo({ module: "a-router" }), _
|
|
|
379
399
|
constructor(...args) {
|
|
380
400
|
super(...args);
|
|
381
401
|
this._vueRouterApp = void 0;
|
|
382
|
-
this.
|
|
402
|
+
this._routerGuardDisposers = new RouterGuardDisposers();
|
|
383
403
|
this._routerViews = [];
|
|
384
404
|
this._disposed = false;
|
|
385
405
|
_initializerDefineProperty(this, "$$sysRouter", _descriptor, this);
|
|
@@ -406,17 +426,14 @@ var BeanRouter = (_dec$4 = Bean(), _dec2$4 = BeanInfo({ module: "a-router" }), _
|
|
|
406
426
|
return this.$$sysRouter.isSyntheticLayoutRouteRecord(route.matched[0]) ? 1 : 0;
|
|
407
427
|
}
|
|
408
428
|
dispose() {
|
|
409
|
-
this.__dispose__();
|
|
410
|
-
}
|
|
411
|
-
__dispose__() {
|
|
412
429
|
if (this._disposed) return;
|
|
413
430
|
this._disposed = true;
|
|
414
|
-
|
|
415
|
-
this._eventRouterGuards = [];
|
|
431
|
+
this._routerGuardDisposers.dispose();
|
|
416
432
|
this._routerViews = [];
|
|
417
433
|
const router = this._vueRouterApp;
|
|
418
434
|
if (router) router.__prepareNavigation = void 0;
|
|
419
435
|
}
|
|
436
|
+
__dispose__() {}
|
|
420
437
|
__get__(prop) {
|
|
421
438
|
const value = this._vueRouterApp?.[prop];
|
|
422
439
|
if (value !== void 0) return value;
|
|
@@ -449,24 +466,16 @@ var BeanRouter = (_dec$4 = Bean(), _dec2$4 = BeanInfo({ module: "a-router" }), _
|
|
|
449
466
|
for (const routerView of this._routerViews) if (routerView.forwardRoute(route)) break;
|
|
450
467
|
}
|
|
451
468
|
beforeEach(guard) {
|
|
452
|
-
|
|
453
|
-
this._eventRouterGuards.push(fn);
|
|
454
|
-
return fn;
|
|
469
|
+
return this._routerGuardDisposers.add(this._vueRouterApp.beforeEach(guard));
|
|
455
470
|
}
|
|
456
471
|
beforeResolve(guard) {
|
|
457
|
-
|
|
458
|
-
this._eventRouterGuards.push(fn);
|
|
459
|
-
return fn;
|
|
472
|
+
return this._routerGuardDisposers.add(this._vueRouterApp.beforeResolve(guard));
|
|
460
473
|
}
|
|
461
474
|
afterEach(guard) {
|
|
462
|
-
|
|
463
|
-
this._eventRouterGuards.push(fn);
|
|
464
|
-
return fn;
|
|
475
|
+
return this._routerGuardDisposers.add(this._vueRouterApp.afterEach(guard));
|
|
465
476
|
}
|
|
466
477
|
onError(handler) {
|
|
467
|
-
|
|
468
|
-
this._eventRouterGuards.push(fn);
|
|
469
|
-
return fn;
|
|
478
|
+
return this._routerGuardDisposers.add(this._vueRouterApp.onError(handler));
|
|
470
479
|
}
|
|
471
480
|
setPageMeta(route, pageMeta) {
|
|
472
481
|
for (const routerView of this._routerViews) routerView.setPageMeta(route, pageMeta);
|
|
@@ -529,9 +538,16 @@ var ServiceRouterGuards = (_dec$2 = Service(), _dec2$2 = BeanInfo({ module: "a-r
|
|
|
529
538
|
onRouterGuards(router) {
|
|
530
539
|
const self = this;
|
|
531
540
|
router.beforeEach(async (to) => {
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
541
|
+
const aliasMatch = to.matched.find((item) => item.aliasOf);
|
|
542
|
+
let match = aliasMatch;
|
|
543
|
+
if (aliasMatch) {
|
|
544
|
+
match = aliasMatch.aliasOf;
|
|
545
|
+
if (!match?.components || Object.keys(match.components).length === 0) {
|
|
546
|
+
const resLoadModule = await this._forceLoadModule(router, match?.name, match?.path);
|
|
547
|
+
if (resLoadModule && resLoadModule !== true) return resLoadModule;
|
|
548
|
+
return to.fullPath;
|
|
549
|
+
}
|
|
550
|
+
} else {
|
|
535
551
|
match = to.matched[to.matched.length - 1];
|
|
536
552
|
if (!await this._prepareCheck(match?.path, to.path)) return to.fullPath;
|
|
537
553
|
if (router._findLegacyRoute(match?.name, match?.path)) return;
|
|
@@ -698,6 +714,7 @@ var Monkey = class extends BeanSimple {
|
|
|
698
714
|
}
|
|
699
715
|
appClose() {
|
|
700
716
|
if (this.serviceRouterGuards) this.serviceRouterGuards.dispose();
|
|
717
|
+
this._beanRouter?.dispose();
|
|
701
718
|
}
|
|
702
719
|
async appReady() {
|
|
703
720
|
const beanRouter = await this.getBeanRouter();
|
|
@@ -765,15 +782,26 @@ var Monkey = class extends BeanSimple {
|
|
|
765
782
|
if (!routeMatched) return;
|
|
766
783
|
if (controller.$routeMatched && !this._checkIfRouteSame(routeMatched, controller.$routeMatched)) return;
|
|
767
784
|
if (!(!controller.$route || controller.$route.fullPath !== route.fullPath)) return;
|
|
768
|
-
controller.$route = route;
|
|
769
|
-
controller.$routeMatched = routeMatched;
|
|
770
785
|
const routeName = getRealRouteName(routeMatched.name);
|
|
771
786
|
const schemaKey = routeName || String(routeMatched.path);
|
|
772
787
|
let schemas;
|
|
773
788
|
const moduleInfo = ModuleInfo.parseInfo(ModuleInfo.parseName(schemaKey));
|
|
774
789
|
if (!moduleInfo) return;
|
|
775
790
|
if (!this.app.meta.module.exists(moduleInfo.relativeName)) return;
|
|
776
|
-
const module = this.app.meta.module.get(moduleInfo.relativeName);
|
|
791
|
+
const module = this.app.meta.module.get(moduleInfo.relativeName, false);
|
|
792
|
+
if (!module) {
|
|
793
|
+
this.app.meta.module.use(moduleInfo.relativeName).then(() => {
|
|
794
|
+
if (cast(controller).ctx.disposed) return;
|
|
795
|
+
const currentRoute = getPageRoute(cast(cast(controller).ctx));
|
|
796
|
+
if (!currentRoute || currentRoute.fullPath !== route.fullPath) return;
|
|
797
|
+
this._initControllerRoute(currentRoute, controller);
|
|
798
|
+
}).catch((err) => {
|
|
799
|
+
console.error("failed to load route module", moduleInfo.relativeName, err);
|
|
800
|
+
});
|
|
801
|
+
return;
|
|
802
|
+
}
|
|
803
|
+
controller.$route = route;
|
|
804
|
+
controller.$routeMatched = routeMatched;
|
|
777
805
|
if (routeName) schemas = module.resource.pageNameSchemas?.[schemaKey];
|
|
778
806
|
else schemas = module.resource.pagePathSchemas?.[schemaKey];
|
|
779
807
|
if (schemas?.params) {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["RouterView","h","KeepAlive","Transition","BeanControllerBase","cast","pageRouteKey","routerViewKey","BeanRouterViewBase","__init__","bean","_setBean","$router","addRouterView","__dispose__","removeRouterView","backRoute","_route","forwardRoute","setPageMeta","_pageMeta","prepareRouteMeta","Error","getKeepAliveInclude","getPageHostProviders","undefined","render","slots","default","component","routeMeta","route","vnode","Component","key","componentKey","zovaHostProviders","include","_createVNode","RouterView","h","cast","Controller","pageRouteKey","BeanRouterViewBase","ControllerRouterViewEmpty","_dec","_dec2","__z_BeanInfo","module","_class","__init__","render","slots","default","component","vnode","Component","zovaHostProviders","route","$router","_createVNode"],"sources":["../src/model/pageData.ts","../src/lib/const.ts","../src/lib/utils.ts","../src/types/utils.ts","../src/bean/sys.router.ts","../src/bean/bean.router.ts","../src/bean/bean.routerGuardsBase.ts","../src/types/router.ts","../src/service/routerGuards.ts","../src/lib/routerViewBase.tsx","../src/component/routerViewEmpty/controller.tsx","../src/.metadata/component/routerViewEmpty.ts","../src/config/config.ts","../src/monkey.ts","../src/monkeySys.ts","../src/.metadata/index.ts"],"sourcesContent":["var _dec, _dec2, _class;\nimport { \"BeanInfo\" as __z_BeanInfo } from \"zova\";\nimport { BeanModelBase, Model } from 'zova-module-a-model';\nexport let ModelPageData = (_dec = Model(), _dec2 = __z_BeanInfo({\n module: \"a-router\"\n}), _dec(_class = _dec2(_class = class ModelPageData extends BeanModelBase {\n constructor(...args) {\n super(...args);\n this._pageDataInner = void 0;\n this.current = void 0;\n }\n async __init__() {\n if (process.env.SERVER) {\n const pagePath = this.$ssr.state.pagePath;\n if (pagePath) {\n this._pageDataInner = this.getPageData(pagePath);\n this._pageDataInner = this.$ssr.state.pageData;\n this.current = this._pageDataInner;\n }\n } else {\n if (this.$ssr.isRuntimeSsrPreHydration) {\n this.current = this.$ssr.state.pageData;\n } else {\n const route = this.$pageRoute;\n this.current = route ? this.getPageData(route.path) : undefined;\n }\n }\n }\n getPageData(pagePath) {\n return this.$useStateMem({\n queryKey: ['pageData', pagePath]\n });\n }\n}) || _class) || _class);","export const pageRouteKey = '$$pageRoute';\nexport const routerViewKey = '$$routerView';","import { routerViewLocationKey } from '@cabloy/vue-router';\nimport { inject } from 'vue';\nimport { pageRouteKey } from './const.js';\nexport function getRouteMatched(route) {\n let match = route.matched.find(item => item.aliasOf);\n if (match) {\n match = match.aliasOf;\n } else {\n match = route.matched[route.matched.length - 1];\n }\n return match;\n}\nexport function getRealRouteName(name) {\n if (!name) return undefined;\n name = String(name);\n if (name.startsWith('$:')) return undefined;\n return name;\n}\nexport function isRouterName(name) {\n return !!name && name.includes(':') && !name.includes('/');\n}\nexport function getPageRoute(ctx) {\n const route = ctx.bean._getBeanFromHost({\n name: pageRouteKey\n });\n return route;\n}\nexport function getCurrentRoute(ctx) {\n const route = ctx.util.instanceScope(() => {\n return inject(routerViewLocationKey);\n });\n return route;\n}\nexport const scrollBehavior = (to, _from, savedPosition) => {\n if (savedPosition) {\n return new Promise(resolve => {\n setTimeout(() => {\n // savedPosition = Object.assign({}, savedPosition, { behavior: 'smooth' });\n resolve(savedPosition);\n }, 100);\n });\n } else if (to.hash) {\n return new Promise(resolve => {\n setTimeout(() => {\n // resolve({ el: to.hash, behavior: 'smooth' });\n resolve({\n el: to.hash\n });\n }, 200);\n });\n } else {\n return {\n left: 0,\n top: 0\n };\n }\n};","export const SymbolRouterHistory = Symbol('SymbolRouterHistory');","var _dec, _dec2, _class;\nimport { \"BeanInfo\" as __z_BeanInfo } from \"zova\";\nimport * as ModuleInfo from '@cabloy/module-info';\nimport { combineParamsAndQuery } from '@cabloy/utils';\nimport { createMemoryHistory, createRouter, createWebHashHistory, createWebHistory } from '@cabloy/vue-router';\nimport { BeanBase, cast, deepExtend, isHttpUrl } from 'zova';\nimport { Sys } from 'zova-module-a-bean';\nimport { getCurrentRoute, getRealRouteName, getRouteMatched, isRouterName } from '../lib/utils.js';\nimport { SymbolRouterHistory } from '../types/utils.js';\nexport let SysRouter = (_dec = Sys(), _dec2 = __z_BeanInfo({\n module: \"a-router\"\n}), _dec(_class = _dec2(_class = class SysRouter extends BeanBase {\n constructor(...args) {\n super(...args);\n this._vueRouterSys = void 0;\n this._syntheticLayoutRouteNames = new Set();\n }\n get router() {\n return this._vueRouterSys;\n }\n __get__(prop) {\n return this._vueRouterSys && this._vueRouterSys[prop];\n }\n async __init__() {\n // create router\n this._vueRouterSys = this.createRouter();\n // config.routes\n this._loadConfigRoutes();\n // legacy routes\n this._loadLegacyRoutes();\n }\n createRouter(options) {\n options = Object.assign({}, options);\n // matcher\n if (!options.matcher) {\n options.matcher = this._vueRouterSys?.matcher;\n }\n // routes\n if (!options.routes) {\n if (!this._vueRouterSys) {\n options.routes = [];\n }\n }\n // scrollBehavior\n if (!options.scrollBehavior) {\n options.scrollBehavior = this.scope.config.scrollBehavior;\n }\n // history\n if (!options.history) {\n const createHistory = process.env.SERVER ? createMemoryHistory : this.sys.env.ROUTER_MODE === 'history' ? createWebHistory : createWebHashHistory;\n const routeBase = process.env.SERVER || this.sys.env.ROUTER_MODE === 'history' ? this.sys.env.APP_PUBLIC_PATH : undefined;\n options.history = createHistory(routeBase);\n }\n // create\n const router = createRouter(options);\n cast(router).__hasDevtools = true;\n router[SymbolRouterHistory] = options.history;\n return router;\n }\n createAsyncComponent(component) {\n if (typeof component !== 'string') return component;\n return this.sys.meta.component.createAsyncComponent(component);\n }\n isSyntheticLayoutRouteRecord(record) {\n const canonicalRecord = record?.aliasOf ?? record;\n return typeof canonicalRecord?.name === 'string' && this._syntheticLayoutRouteNames.has(canonicalRecord.name);\n }\n getPagePath(path, options, absolute) {\n const query = options?.query;\n const params = this._normalizePageParams(options?.params);\n const pagePath = combineParamsAndQuery(path, {\n params,\n query\n });\n return absolute ? this.sys.util.getAbsoluteUrlFromPagePath(pagePath) : pagePath;\n }\n async resolveRoute(url, check404, checkAliasOf) {\n // url: should not has APP_PUBLIC_PATH prefix when not http url\n const pagePath = isHttpUrl(url) ? this.sys.util.getPagePathFromAbsoluteUrl(url) : url;\n let route = await this.ensureRoute(pagePath);\n if (check404 && route.name === '$:/:catchAll(.*)*') return;\n // aliasOf\n if (checkAliasOf) {\n const matchItem = route.matched.find(item => item.aliasOf);\n if (matchItem) {\n route = matchItem.aliasOf;\n }\n // 404\n if (check404 && route.name === '$:/:catchAll(.*)*') return;\n }\n // ok\n return route;\n }\n checkPathValid(to) {\n const _name = to && typeof to === 'object' ? to.name : undefined;\n const _path = to && typeof to === 'object' ? to.name ?? to.path : to;\n // legacy\n if (this._findLegacyRoute(_name, _path)) return true;\n // general check\n if (!_path) return true;\n const moduleName = ModuleInfo.parseName(_path);\n if (!moduleName) return true;\n return this.sys.meta.module.exists(moduleName);\n }\n checkActiveOfFullPath(fullPath, currentRoute) {\n if (!currentRoute) {\n currentRoute = getCurrentRoute(this.ctx)?.value;\n }\n if (!currentRoute) return false;\n if (currentRoute.fullPath === fullPath) return true;\n if (!currentRoute.matched || currentRoute.matched.length === 0) return false;\n return currentRoute.matched.some(routeAlias => {\n const fullPathAlias = this.getPagePath(routeAlias.path, {\n params: currentRoute.params,\n query: currentRoute.query\n });\n return fullPathAlias === fullPath;\n });\n }\n async ensureRoute(pagePath) {\n // try to resolve, support alias route\n let route = this._vueRouterSys.resolve(pagePath);\n if (route && route.name !== '$:/:catchAll(.*)*') return route;\n // try to load module\n const moduleName = ModuleInfo.parseName(pagePath);\n if (moduleName) {\n if (this.sys.meta.module.exists(moduleName)) {\n const module = this.sys.meta.module.get(moduleName);\n if (!module) {\n await this.sys.meta.module.use(moduleName);\n // try to resolve again\n route = this._vueRouterSys.resolve(pagePath);\n }\n }\n }\n return route;\n }\n\n /** @internal */\n _registerRoutes(module) {\n if (!module.resource.routes) return;\n for (const route of module.resource.routes) {\n this._registerRoute(route, module);\n }\n }\n\n /** @internal */\n _findConfigRoute(name, path) {\n name = this.getRealRouteName(name);\n return name ? this.sys.config.routes.name[name] : this.sys.config.routes.path[path];\n }\n\n /** @internal */\n _findLegacyRoute(name, path) {\n const legacyRoutes = cast(this.sys.meta).legacyRoutes;\n if (!legacyRoutes) return;\n name = this.getRealRouteName(name);\n return legacyRoutes.find(item => {\n return name ? item.name === name : item.path === path;\n });\n }\n getRouteMatched(route) {\n return getRouteMatched(route);\n }\n getRealRouteName(name) {\n return getRealRouteName(name);\n }\n isRouterName(name) {\n return isRouterName(name);\n }\n resolveName(name, options) {\n const params = cast(options)?.params;\n const query = cast(options)?.query;\n return this._resolveNameOrPath(query, query => {\n const route = this.router.resolve({\n name,\n params,\n query\n });\n return route.fullPath;\n });\n }\n getAliasPath(name, options, absolute) {\n const alias = this.sys.config.routes.name[name]?.alias;\n if (!alias) return;\n const params = this._normalizePageParams(cast(options)?.params);\n const query = cast(options)?.query;\n const aliasName = `$alias:${name}`;\n const routeAlias = this._resolveNameOrPath(query, query => {\n const route = this.router.resolve({\n name: this.router.hasRoute(aliasName) ? aliasName : name,\n params,\n query\n });\n return route.fullPath;\n });\n const pagePath = routeAlias.startsWith('/__alias__') ? routeAlias.substring('/__alias__'.length) || '/' : routeAlias;\n return absolute ? this.sys.util.getAbsoluteUrlFromPagePath(pagePath) : pagePath;\n }\n _normalizePageParams(params) {\n const paramsLocale = cast(params)?.locale;\n if (paramsLocale === undefined) return params;\n const localeCurrent = paramsLocale === true ? this.app.meta.locale.current : paramsLocale;\n const locale = localeCurrent === this.sys.config.locale.default ? undefined : localeCurrent;\n return Object.assign({}, params, {\n locale\n });\n }\n _resolveNameOrPath(query, fn) {\n const query1 = {};\n const query2 = [];\n if (query) {\n for (const key in query) {\n const value = query[key];\n if (value && typeof value === 'object') {\n query2.push([key, value]);\n } else {\n query1[key] = value;\n }\n }\n }\n // resolve\n const fullPath = fn(query1);\n // query2\n const query2str = query2.map(([key, value]) => {\n return `${encodeURIComponent(key)}=${encodeURIComponent(JSON.stringify(value))}`;\n }).join('&');\n // join\n if (!query2str) return fullPath;\n const join = Object.keys(query1).length > 0 ? '&' : '?';\n return `${fullPath}${join}${query2str}`;\n }\n _loadConfigRoutes() {\n const routesPath = this.sys.config.routes.path;\n for (const key in routesPath) {\n const route = routesPath[key];\n if (!route) continue;\n this._loadConfigRoute({\n ...route,\n path: key,\n name: `$:${key}`\n });\n }\n const routesName = this.sys.config.routes.name;\n for (const key in routesName) {\n const route = routesName[key];\n if (!route) continue;\n this._loadConfigRoute({\n ...route,\n path: route.path || route.alias,\n name: key\n });\n }\n }\n _loadLegacyRoutes() {\n const legacyRoutes = cast(this.sys.meta).legacyRoutes;\n if (!legacyRoutes) return;\n for (const route of legacyRoutes) {\n this._registerRoute(route);\n }\n }\n _loadConfigRoute(route) {\n this.router.addRoute(route);\n }\n _registerRoute(route, module) {\n // path\n let path;\n if (route.path !== undefined) {\n if (!module || route.meta?.absolute === true) {\n path = route.path;\n } else {\n path = route.path ? `/${module.info.pid}/${module.info.name}/${route.path}` : `/${module.info.pid}/${module.info.name}`;\n }\n }\n // name\n let name;\n if (route.name) {\n if (!module || route.meta?.absolute === true) {\n name = String(route.name);\n } else {\n name = `${module.info.relativeName}:${String(route.name)}`;\n }\n }\n // config route\n const configRoute = name ? this.sys.config.routes.name[name] : this.sys.config.routes.path[path];\n if (configRoute) {\n route = deepExtend({}, route, configRoute);\n }\n // name alias\n if (name && configRoute?.alias) {\n const alias = Array.isArray(configRoute.alias) ? configRoute.alias[0] : configRoute.alias;\n // add extra route\n this.router.addRoute({\n name: `$alias:${name}`,\n path: `/__alias__${alias}`,\n redirect: ''\n });\n }\n // name\n if (!name) {\n name = `$:${path}`;\n }\n // meta\n const meta = route.meta;\n // component\n const component = route.component;\n // layout / routeData\n let layout = meta?.layout;\n let routeData;\n let routeNameParent;\n if (layout === false) {\n routeData = {\n ...route,\n name,\n path,\n component,\n meta\n };\n } else {\n if (layout === undefined || layout === 'default') {\n layout = this.sys.config.layout.component.default;\n } else if (layout === 'empty') {\n layout = this.sys.config.layout.component.empty;\n }\n routeNameParent = `$:${name}`;\n routeData = {\n name: routeNameParent,\n path,\n component: this.createAsyncComponent(layout),\n children: [{\n ...route,\n name,\n path: '',\n component,\n meta\n }]\n };\n }\n // force delete\n if (this.router.hasRoute(routeNameParent)) {\n this.router.removeRoute(routeNameParent);\n }\n if (this.router.hasRoute(name)) {\n this.router.removeRoute(name);\n }\n // add\n this.router.addRoute(routeData);\n if (routeNameParent) {\n this._syntheticLayoutRouteNames.add(routeNameParent);\n }\n }\n}) || _class) || _class);","var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _class, _class2, _descriptor, _descriptor2;\nfunction _initializerDefineProperty(e, i, r, l) { r && Object.defineProperty(e, i, { enumerable: r.enumerable, configurable: r.configurable, writable: r.writable, value: r.initializer ? r.initializer.call(l) : void 0 }); }\nfunction _applyDecoratedDescriptor(i, e, r, n, l) { var a = {}; return Object.keys(n).forEach(function (i) { a[i] = n[i]; }), a.enumerable = !!a.enumerable, a.configurable = !!a.configurable, (\"value\" in a || a.initializer) && (a.writable = !0), a = r.slice().reverse().reduce(function (r, n) { return n(i, e, r) || r; }, a), l && void 0 !== a.initializer && (a.value = a.initializer ? a.initializer.call(l) : void 0, a.initializer = void 0), void 0 === a.initializer ? (Object.defineProperty(i, e, a), null) : a; }\nfunction _initializerWarningHelper(r, e) { throw Error(\"Decorating class property failed. Please ensure that transform-class-properties is enabled and runs after the decorators transform.\"); }\nimport { \"BeanInfo\" as __z_BeanInfo } from \"zova\";\nimport { BeanBase, Use } from 'zova';\nimport { Bean } from 'zova-module-a-bean';\nimport { ModelPageData } from '../model/pageData.js';\nimport { SysRouter } from './sys.router.js';\nexport let BeanRouter = (_dec = Bean(), _dec2 = __z_BeanInfo({\n module: \"a-router\"\n}), _dec3 = Use(), _dec4 = Reflect.metadata(\"design:type\", typeof SysRouter === \"undefined\" ? Object : SysRouter), _dec5 = Use(), _dec6 = Reflect.metadata(\"design:type\", typeof ModelPageData === \"undefined\" ? Object : ModelPageData), _dec(_class = _dec2(_class = (_class2 = class BeanRouter extends BeanBase {\n constructor(...args) {\n super(...args);\n this._vueRouterApp = void 0;\n this._eventRouterGuards = [];\n this._routerViews = [];\n this._disposed = false;\n _initializerDefineProperty(this, \"$$sysRouter\", _descriptor, this);\n _initializerDefineProperty(this, \"$$modelPageData\", _descriptor2, this);\n this._isEmbedded = false;\n this._embeddedView = void 0;\n this._prepareNavigation = void 0;\n }\n // for prepare pageData on server\n\n get router() {\n return this._vueRouterApp;\n }\n get isEmbedded() {\n return this._isEmbedded;\n }\n /**\n * Returns the initial RouterView depth for an embedded page-only host.\n *\n * SysRouter records the synthetic layout parents it creates. The page-only\n * host skips only those exact records; routes registered with\n * `meta.layout: false` still start at depth zero.\n */\n getEmbeddedRouterViewDepth(route) {\n if (this._embeddedView !== 'page') return 0;\n return this.$$sysRouter.isSyntheticLayoutRouteRecord(route.matched[0]) ? 1 : 0;\n }\n dispose() {\n this.__dispose__();\n }\n __dispose__() {\n if (this._disposed) return;\n this._disposed = true;\n for (const fn of this._eventRouterGuards) {\n fn();\n }\n this._eventRouterGuards = [];\n this._routerViews = [];\n const router = this._vueRouterApp;\n if (router) router.__prepareNavigation = undefined;\n }\n __get__(prop) {\n // SymbolRouter first\n const value = this._vueRouterApp?.[prop];\n if (value !== undefined) return value;\n return this.$$sysRouter?.[prop];\n }\n async __init__(mainRouterOrOptions) {\n const options = typeof mainRouterOrOptions === 'boolean' ? {\n mainRouter: mainRouterOrOptions\n } : mainRouterOrOptions ?? {};\n this._isEmbedded = options.mainRouter === false;\n this._embeddedView = options.embeddedView;\n this._prepareNavigation = options.prepareNavigation;\n // create router\n this._vueRouterApp = this.$$sysRouter.createRouter(options.routerOptions);\n const router = this._vueRouterApp;\n router.__prepareNavigation = this._prepareNavigation;\n if (!options.mainRouter) {\n // emit event\n await this.app.meta.event.emit('a-router:routerGuards', this);\n }\n }\n addRouterView(routerView) {\n this._routerViews.push(routerView);\n if (!this._isEmbedded) return;\n const route = this._vueRouterApp.currentRoute.value;\n if (route?.matched.length > 0) {\n routerView.forwardRoute(route);\n }\n }\n removeRouterView(routerView) {\n const index = this._routerViews.findIndex(item => item === routerView);\n if (index > -1) {\n this._routerViews.splice(index, 1);\n }\n }\n afterEachBackRoute(route) {\n for (const routerView of this._routerViews) {\n const res = routerView.backRoute(route);\n if (res) break;\n }\n }\n afterEachForwardRoute(route) {\n for (const routerView of this._routerViews) {\n const res = routerView.forwardRoute(route);\n if (res) break;\n }\n }\n beforeEach(guard) {\n const fn = this._vueRouterApp.beforeEach(guard);\n this._eventRouterGuards.push(fn);\n return fn;\n }\n beforeResolve(guard) {\n const fn = this._vueRouterApp.beforeResolve(guard);\n this._eventRouterGuards.push(fn);\n return fn;\n }\n afterEach(guard) {\n const fn = this._vueRouterApp.afterEach(guard);\n this._eventRouterGuards.push(fn);\n return fn;\n }\n onError(handler) {\n const fn = this._vueRouterApp.onError(handler);\n this._eventRouterGuards.push(fn);\n return fn;\n }\n setPageMeta(route, pageMeta) {\n for (const routerView of this._routerViews) {\n routerView.setPageMeta(route, pageMeta);\n }\n }\n}, _descriptor = _applyDecoratedDescriptor(_class2.prototype, \"$$sysRouter\", [_dec3, _dec4], {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: null\n}), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, \"$$modelPageData\", [_dec5, _dec6], {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: null\n}), _class2)) || _class) || _class);","var _dec, _dec2, _dec3, _class;\nimport { \"BeanInfo\" as __z_BeanInfo } from \"zova\";\nimport { BeanBase, Virtual } from 'zova';\nimport { Bean } from 'zova-module-a-bean';\nexport let BeanRouterGuardsBase = (_dec = Bean(), _dec2 = Virtual(), _dec3 = __z_BeanInfo({\n module: \"a-router\"\n}), _dec(_class = _dec2(_class = _dec3(_class = class BeanRouterGuardsBase extends BeanBase {\n constructor(...args) {\n super(...args);\n this._eventRouterGuards = void 0;\n }\n async __init__() {\n this._eventRouterGuards = this.app.meta.event.on('a-router:routerGuards', async (router, next) => {\n this.onRouterGuards(router);\n return await next();\n });\n }\n __dispose__() {\n this.dispose();\n }\n dispose() {\n if (this._eventRouterGuards) {\n this._eventRouterGuards();\n }\n }\n onRouterGuards(_router) {}\n}) || _class) || _class) || _class);","import 'vue-router';\nexport let NavigationType = /*#__PURE__*/function (NavigationType) {\n NavigationType[\"pop\"] = \"pop\";\n NavigationType[\"push\"] = \"push\";\n return NavigationType;\n}({});\nexport let NavigationDirection = /*#__PURE__*/function (NavigationDirection) {\n NavigationDirection[\"back\"] = \"back\";\n NavigationDirection[\"forward\"] = \"forward\";\n NavigationDirection[\"unknown\"] = \"\";\n return NavigationDirection;\n}({});","var _dec, _dec2, _class;\nimport { \"BeanInfo\" as __z_BeanInfo } from \"zova\";\nimport * as ModuleInfo from '@cabloy/module-info';\nimport { Service } from 'zova-module-a-bean';\nimport { BeanRouterGuardsBase } from '../bean/bean.routerGuardsBase.js';\nimport { NavigationDirection, NavigationType } from '../types/router.js';\nexport let ServiceRouterGuards = (_dec = Service(), _dec2 = __z_BeanInfo({\n module: \"a-router\"\n}), _dec(_class = _dec2(_class = class ServiceRouterGuards extends BeanRouterGuardsBase {\n onRouterGuards(router) {\n const self = this;\n router.beforeEach(async to => {\n // match path\n let match = to.matched.find(item => item.aliasOf);\n if (match) {\n match = match.aliasOf;\n } else {\n match = to.matched[to.matched.length - 1];\n // prepareCheck\n if (!(await this._prepareCheck(match?.path, to.path))) {\n // redirect again\n return to.fullPath;\n }\n // legacy\n const legacyRoute = router._findLegacyRoute(match?.name, match?.path);\n if (legacyRoute) return;\n // alias\n const configRoute = router._findConfigRoute(match?.name, match?.path);\n const alias = configRoute?.alias;\n if (alias) {\n // force load module\n const resLoadModule = await this._forceLoadModule(router, match?.name, match?.path);\n if (resLoadModule && resLoadModule !== true) return resLoadModule;\n if (resLoadModule === false) return to.fullPath;\n const name = router.getRealRouteName(match?.name);\n if (name) {\n const routeAlias = router.getAliasPath(name, {\n params: to.params,\n query: to.query\n });\n return routeAlias || '/';\n } else {\n return {\n path: Array.isArray(alias) ? alias[0] : alias,\n params: to.params,\n query: to.query\n };\n }\n }\n }\n // force load module\n const resLoadModule = await this._forceLoadModule(router, match?.name, match?.path);\n if (resLoadModule === true) return;\n if (resLoadModule) return resLoadModule;\n // redirect again\n return to.fullPath;\n });\n router.afterEach(function (to, from, error) {\n if (error) return;\n const info = arguments[3];\n // from\n if (from.fullPath !== to.fullPath) {\n self._afterEachFrom(router, from, info);\n }\n // to\n router.afterEachForwardRoute(to);\n });\n }\n _afterEachFrom(router, from, info) {\n if (!info) return;\n const needBack = info.type === NavigationType.pop && info.direction === NavigationDirection.back || info.type === NavigationType.push && info.replace;\n if (!needBack) return;\n router.afterEachBackRoute(from);\n }\n\n // if 404 then check if module loaded\n async _prepareCheck(pathMatched, pathTo) {\n if (pathMatched === '/:catchAll(.*)*') {\n const moduleInfo = ModuleInfo.parseInfo(ModuleInfo.parseName(pathTo));\n if (moduleInfo && this.app.meta.module.exists(moduleInfo.relativeName) && !this.app.meta.module.get(moduleInfo.relativeName, false)) {\n // use module\n await this.app.meta.module.use(moduleInfo.relativeName);\n // redirect again\n return false;\n }\n }\n return true;\n }\n async _forceLoadModule(router, name, path) {\n const nameOrPath = router.getRealRouteName(name) || path;\n // module info\n const moduleInfo = ModuleInfo.parseInfo(ModuleInfo.parseName(nameOrPath));\n if (!moduleInfo) {\n // donothing\n return true;\n }\n const moduleName = moduleInfo.relativeName;\n // check if exists\n if (!this.app.meta.module.exists(moduleName)) return '/404';\n // check if loaded\n const module = this.app.meta.module.get(moduleName, false);\n if (module) return true;\n // use module\n await this.app.meta.module.use(moduleName);\n // means need load\n return false;\n }\n}) || _class) || _class);","import type { RouteLocationNormalizedLoadedGeneric } from '@cabloy/vue-router';\n\nimport { RouterView } from '@cabloy/vue-router';\nimport { h, KeepAlive, Transition } from 'vue';\nimport { BeanControllerBase, cast } from 'zova';\n\nimport type { IPageMeta } from '../types/pageMeta.js';\nimport type { IRouterViewSlotParams, IRouteViewRouteMeta } from '../types/routerView.js';\n\nimport { pageRouteKey, routerViewKey } from './const.js';\n\nexport interface IRouterViewPropsBase {}\n\nexport class BeanRouterViewBase extends BeanControllerBase implements IRouterViewPropsBase {\n protected async __init__() {\n this.bean._setBean(routerViewKey, this);\n this.$router.addRouterView(this);\n }\n\n protected __dispose__() {\n this.$router.removeRouterView(this);\n }\n\n public backRoute(_route: RouteLocationNormalizedLoadedGeneric) {\n return false;\n }\n\n public forwardRoute(_route: RouteLocationNormalizedLoadedGeneric) {\n return false;\n }\n\n public setPageMeta(_route: RouteLocationNormalizedLoadedGeneric, _pageMeta: IPageMeta) {}\n\n protected prepareRouteMeta(_route: RouteLocationNormalizedLoadedGeneric): IRouteViewRouteMeta {\n throw new Error('Not Implemented');\n }\n\n protected getKeepAliveInclude(): string[] | undefined {\n throw new Error('Not Implemented');\n }\n\n protected getPageHostProviders(): Record<string, unknown> | undefined {\n return undefined;\n }\n\n protected render() {\n const slots = {\n default: (component: IRouterViewSlotParams) => {\n const routeMeta = this.prepareRouteMeta(component.route);\n return h(Transition, null, {\n default: () => {\n const vnode = h(component.Component as any, {\n key: routeMeta.componentKey,\n route: component.route,\n });\n cast(vnode).zovaHostProviders = {\n ...this.getPageHostProviders(),\n [pageRouteKey]: component.route,\n 'a-router.bean.router': this.$router,\n };\n return [\n h(\n KeepAlive,\n {\n include: this.getKeepAliveInclude(),\n },\n [vnode],\n ),\n ];\n },\n });\n },\n };\n return <RouterView v-slots={slots}></RouterView>;\n }\n}\n","import { RouterView } from '@cabloy/vue-router';\nimport { h } from 'vue';\nimport { cast } from 'zova';\nimport { Controller } from 'zova-module-a-bean';\n\nimport { pageRouteKey } from '../../lib/const.js';\nimport { BeanRouterViewBase } from '../../lib/routerViewBase.js';\n\n@Controller()\nexport class ControllerRouterViewEmpty extends BeanRouterViewBase {\n protected async __init__() {}\n\n protected render() {\n const slots = {\n default: component => {\n const vnode = h(component.Component);\n cast(vnode).zovaHostProviders = {\n [pageRouteKey]: component.route,\n 'a-router.bean.router': this.$router,\n };\n return vnode;\n },\n };\n return <RouterView v-slots={slots}></RouterView>;\n }\n}\n","import { defineComponent } from 'vue';\nimport { prepareComponentOptions, useController } from 'zova';\nimport { ControllerRouterViewEmpty } from '../../component/routerViewEmpty/controller.jsx';\nexport const ZRouterViewEmpty = defineComponent(_props => {\n useController(ControllerRouterViewEmpty, undefined, undefined);\n return () => {};\n}, prepareComponentOptions());","import { scrollBehavior } from '../lib/utils.js';\nexport const config = _sys => {\n return {\n scrollBehavior\n };\n};","import * as ModuleInfo from '@cabloy/module-info';\nimport { shallowReactive } from 'vue';\nimport { BeanControllerPageBase, BeanSimple, cast, useComputed } from 'zova';\nimport { routerViewKey } from './lib/const.js';\nimport { getCurrentRoute, getPageRoute, getRealRouteName, getRouteMatched } from './lib/utils.js';\nimport { ServiceRouterGuards } from './service/routerGuards.js';\nimport { SymbolRouterHistory } from './types/utils.js';\nexport class Monkey extends BeanSimple {\n constructor(...args) {\n super(...args);\n this._beanRouter = void 0;\n this._sysRouter = void 0;\n this.serviceRouterGuards = void 0;\n }\n async _getSysRouter() {\n if (!this._sysRouter) {\n this._sysRouter = await this.sys.bean._getBean('a-router.sys.router', false);\n }\n return this._sysRouter;\n }\n async getBeanRouter() {\n if (!this._beanRouter) {\n // markReactive: true\n this._beanRouter = this.app.meta.$router = await this.bean._getBean('a-router.bean.router', true, true);\n }\n return this._beanRouter;\n }\n async appInitialize() {\n if (process.env.SERVER) {\n const pagePathFull = this.app.$getCurrentPagePath();\n if (pagePathFull) {\n const sysRouter = await this._getSysRouter();\n const route = await sysRouter.resolveRoute(pagePathFull, true, false);\n if (route) {\n // ssr profile\n this.ctx.meta.$ssr._setProfile(route.meta.ssrProfile, route.meta.ssrProfileOptions, route.meta.locale);\n // locale\n this.ctx.meta.$ssr._setLocale(route);\n }\n }\n }\n // router\n this.serviceRouterGuards = await this.bean._newBean(ServiceRouterGuards, false);\n // ssr errorHandler\n if (process.env.CLIENT) {\n this._ssrErrorHandler();\n }\n }\n async appInitialized() {\n const beanRouter = await this.getBeanRouter();\n // emit event\n await this.app.meta.event.emit('a-router:routerGuards', beanRouter);\n }\n appClose() {\n if (this.serviceRouterGuards) {\n this.serviceRouterGuards.dispose();\n }\n }\n async appReady() {\n const beanRouter = await this.getBeanRouter();\n // pagePath\n if (process.env.CLIENT && this.ctx.meta.$ssr.isRuntimeSsrPreHydration) {\n const pagePathFull = this.ctx.meta.$ssr.state.pagePathFull;\n if (pagePathFull) {\n const routerHistory = beanRouter.router[SymbolRouterHistory];\n routerHistory.push(pagePathFull);\n }\n }\n // use router\n this.app.vue.use(beanRouter);\n // ssr\n if (process.env.SERVER) {\n // push\n const pagePath = this.app.$getCurrentPagePath();\n beanRouter.push(pagePath);\n await beanRouter.isReady();\n } else if (process.env.CLIENT && this.ctx.meta.$ssr.isRuntimeSsrPreHydration) {\n await beanRouter.isReady();\n }\n }\n async beanInit(bean, beanInstance) {\n bean.defineProperty(beanInstance, '$router', {\n enumerable: false,\n configurable: true,\n get() {\n return bean._getBeanFromHost('a-router.bean.router');\n }\n });\n bean.defineProperty(beanInstance, '$routerView', {\n enumerable: false,\n configurable: true,\n get() {\n return bean._getBeanFromHost({\n name: routerViewKey\n });\n }\n });\n bean.defineProperty(beanInstance, '$pageRoute', {\n enumerable: false,\n configurable: true,\n get() {\n return useComputed(() => {\n return getPageRoute(cast(bean).ctx);\n });\n }\n });\n bean.defineProperty(beanInstance, '$currentRoute', {\n enumerable: false,\n configurable: true,\n get() {\n return useComputed(() => {\n return getCurrentRoute(cast(bean).ctx);\n });\n }\n });\n }\n controllerDataPrepare(controllerData, ctx) {\n controllerData.context.route = getPageRoute(ctx);\n }\n controllerDataInit(controllerData, controller) {\n // only for controller page\n if (!(controller instanceof BeanControllerPageBase)) return;\n const route = controllerData.context.route;\n this._initControllerRoute(route, controller);\n }\n controllerDataUpdate(controller) {\n // only for controller page\n if (!(controller instanceof BeanControllerPageBase)) return;\n const route = getPageRoute(cast(cast(controller).ctx));\n this._initControllerRoute(route, controller);\n }\n _initControllerRoute(route, controller) {\n if (!route) return;\n const routeMatched = getRouteMatched(route);\n if (!routeMatched) return;\n // check if the same\n if (controller.$routeMatched && !this._checkIfRouteSame(routeMatched, controller.$routeMatched)) return;\n // check if changed\n const changed = !controller.$route || controller.$route.fullPath !== route.fullPath;\n if (!changed) return;\n controller.$route = route;\n controller.$routeMatched = routeMatched;\n // update $params/$query\n const routeName = getRealRouteName(routeMatched.name);\n const schemaKey = routeName || String(routeMatched.path);\n let schemas;\n const moduleInfo = ModuleInfo.parseInfo(ModuleInfo.parseName(schemaKey));\n if (!moduleInfo) {\n // do nothing\n return;\n }\n if (!this.app.meta.module.exists(moduleInfo.relativeName)) {\n // do nothing\n return;\n }\n const module = this.app.meta.module.get(moduleInfo.relativeName);\n if (routeName) {\n schemas = module.resource.pageNameSchemas?.[schemaKey];\n } else {\n schemas = module.resource.pagePathSchemas?.[schemaKey];\n }\n if (schemas?.params) {\n const params = schemas.params.parse(route.params);\n if (!controller.$params) {\n controller.$params = process.env.SERVER ? params : shallowReactive(params);\n } else {\n // hold the same $params ref\n Object.assign(controller.$params, params);\n }\n }\n if (schemas?.query) {\n const query = schemas.query.parse(route.query);\n if (!controller.$query) {\n controller.$query = process.env.SERVER ? query : shallowReactive(query);\n } else {\n // hold the same $query ref\n Object.assign(controller.$query, query);\n }\n }\n }\n _checkIfRouteSame(route1, route2) {\n return route1.name && route1.name === route2.name || route1.path === route2.path;\n }\n _ssrErrorHandler() {\n if (!process.env.CLIENT) return;\n this.app.meta.event.on('app:errorHandler', (data, next) => {\n if (_isLoadErrorHandledClient(data)) {\n data.load.disposition = 'handled';\n }\n const err = next();\n if (!err || !(err instanceof Error)) return err;\n return this._errorHandlerDefaultClient(err, data);\n });\n }\n _errorHandlerDefaultClient(err, _data) {\n if (!process.env.CLIENT) return err;\n // client\n if ([301, 302].includes(Number(err.code))) {\n this.app.$gotoPage(err.pagePath);\n return undefined;\n }\n // COMPONENT_UNMOUNTED\n if (err.code === 600) {\n // do nothing\n return undefined;\n }\n // 401\n if (err.code === 401) {\n this.app.$gotoLogin();\n return undefined;\n }\n // not handled\n return err;\n }\n}\nfunction _isLoadErrorHandledClient(data) {\n if (data.load?.kind !== 'controller-load') return false;\n return [301, 302, 401, 600].includes(Number(data.err.code));\n}","import { BeanSimple, cast, isHttpUrl } from 'zova';\nexport class MonkeySys extends BeanSimple {\n constructor(moduleSelf) {\n super();\n this._moduleSelf = void 0;\n this._sysRouter = void 0;\n this._moduleSelf = moduleSelf;\n }\n async getSysRouter() {\n if (!this._sysRouter) {\n this._sysRouter = await this.sys.bean._getBean('a-router.sys.router', false);\n }\n return this._sysRouter;\n }\n async moduleLoading(module) {\n if (this._moduleSelf === module) return;\n if (!module.resource.routes) return;\n const sysRouter = await this.getSysRouter();\n sysRouter._registerRoutes(module);\n }\n async moduleLoaded(_module) {}\n async configLoaded(_module, _config) {}\n sysApplicationInitialize(app) {\n app.$redirect = (pagePath, status) => {\n const error = new Error();\n error.code = status ?? 302;\n if (isHttpUrl(pagePath)) {\n error.pagePath = pagePath;\n error.url = pagePath;\n } else {\n error.pagePath = pagePath;\n error.url = app.sys.util.getAbsoluteUrlFromPagePath(pagePath, true);\n }\n error.message = process.env.SERVER ? error.url : error.pagePath;\n throw error;\n };\n app.$getPagePath = (pagePath, options) => {\n const query = {\n ...options?.query\n };\n // returnTo\n if (options?.returnTo) {\n const returnTo = typeof options.returnTo === 'string' ? options.returnTo : app.$getCurrentPagePath();\n if (returnTo !== app.$getPagePathHome()) {\n query[app.sys.env.ROUTER_KEY_RETURNTO] = returnTo;\n }\n }\n return app.meta.$router.getPagePath(pagePath, {\n params: options?.params,\n query\n });\n };\n app.$getPagePathLogin = (returnTo, cause) => {\n const query = {};\n if (cause) {\n query.cause = cause;\n }\n const returnTo2 = _fixReturnTo(app, returnTo);\n return app.$getPagePath(app.sys.env.ROUTER_PAGE_LOGIN, {\n query,\n returnTo: returnTo2\n });\n };\n app.$getPagePathAccessDenied = () => {\n return app.$getPagePath('/home/base/errorAccessDenied');\n };\n app.$gotoPage = (pagePath, options) => {\n pagePath = app.$getPagePath(pagePath, options);\n // redirect\n if (process.env.SERVER || options?.forceRedirect) {\n return app.$redirect(pagePath);\n }\n // replace\n if (isHttpUrl(pagePath)) {\n window.location[options?.replace ? 'replace' : 'assign'](pagePath);\n } else {\n return app.meta.$router[options?.replace ? 'replace' : 'push'](pagePath);\n }\n };\n app.$gotoHome = options => {\n const pagePath = app.$getPagePathHome(options);\n return app.$gotoPage(pagePath, {\n ...options,\n params: undefined\n });\n };\n app.$gotoLogin = (returnTo, cause) => {\n const returnTo2 = _fixReturnTo(app, returnTo);\n if (!returnTo2 && cast(app.meta.$router.currentRoute)?.path === app.sys.env.ROUTER_PAGE_LOGIN) {\n return;\n }\n const pagePath = app.$getPagePathLogin(returnTo2, cause);\n return app.$gotoPage(pagePath);\n };\n app.$gotoAccessDenied = () => {\n const pagePath = app.$getPagePathAccessDenied();\n if (cast(app.meta.$router.currentRoute)?.path === pagePath) return;\n return app.$gotoPage(pagePath, {\n replace: true\n });\n };\n app.$gotoReturnTo = returnTo => {\n const pagePath = app.$getReturnTo(returnTo);\n return app.$gotoPage(pagePath, {\n replace: true\n });\n };\n app.$getReturnTo = returnTo => {\n // not use ??\n const pagePath = returnTo || cast(app.meta.$router.currentRoute)?.query?.[app.sys.env.ROUTER_KEY_RETURNTO] || app.$getPagePathHome();\n return pagePath;\n };\n app.$getCurrentPagePath = () => {\n if (process.env.SERVER) {\n return app.ctx.meta.$ssr.state.pagePathFull ?? app.sys.util.getPagePathFromAbsoluteUrl(app.ctx.meta.$ssr.context.req.url);\n }\n return cast(app.meta.$router.currentRoute)?.fullPath;\n };\n app.$getPagePathHome = options => {\n let params = options?.params;\n if (params?.locale === undefined) {\n params = Object.assign({}, params, {\n locale: true\n });\n }\n // not handle options?.query\n return app.meta.$router.getPagePath(app.sys.env.ROUTER_PAGE_HOME, {\n params\n });\n };\n }\n}\nfunction _fixReturnTo(app, returnTo) {\n const returnTo2 = returnTo === false ? false : typeof returnTo === 'string' ? returnTo : app.$getCurrentPagePath();\n return returnTo2 === app.sys.env.ROUTER_PAGE_LOGIN ? false : returnTo2;\n}","var _dec, _dec2, _class;\nimport { \"BeanInfo\" as __z_BeanInfo } from \"zova\";\n// eslint-disable\n/** model: begin */\nexport * from '../model/pageData.js';\nimport 'zova-module-a-model';\n/** model: end */\n/** model: begin */\n\nimport 'zova';\n/** model: end */\n/** sys: begin */\nexport * from '../bean/sys.router.js';\nimport 'zova';\n/** sys: end */\n/** sys: begin */\n\nimport 'zova';\n/** sys: end */\n/** bean: begin */\nexport * from '../bean/bean.router.js';\nexport * from '../bean/bean.routerGuardsBase.js';\nimport 'zova';\n/** bean: end */\n/** bean: begin */\n\nimport 'zova';\n/** bean: end */\n/** service: begin */\nexport * from '../service/routerGuards.js';\nimport 'zova-module-a-bean';\n/** service: end */\n/** service: begin */\n\nimport 'zova';\n/** service: end */\n/** controller: begin */\nexport * from '../component/routerViewEmpty/controller.jsx';\nimport 'zova';\n/** controller: end */\n/** controller: begin */\n\nimport 'zova';\n/** controller: end */\n\n/** components: begin */\nexport * from './component/routerViewEmpty.js';\nimport { ZRouterViewEmpty } from './component/routerViewEmpty.js';\nexport const components = {\n 'routerViewEmpty': ZRouterViewEmpty\n};\nimport 'zova';\n/** components: end */\n/** config: begin */\nexport * from '../config/config.js';\n/** config: end */\n/** monkey: begin */\nexport * from '../monkey.js';\n/** monkey: end */\n/** monkeySys: begin */\nexport * from '../monkeySys.js';\n/** monkeySys: end */\n/** scope: begin */\nimport { BeanScopeBase } from 'zova';\nimport { Scope } from 'zova-module-a-bean';\nexport let ScopeModuleARouter = (_dec = Scope(), _dec2 = __z_BeanInfo({\n module: \"a-router\"\n}), _dec(_class = _dec2(_class = class ScopeModuleARouter extends BeanScopeBase {}) || _class) || _class);\nimport 'zova';\n\n/** scope: end */"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["RouterView","h","KeepAlive","Transition","BeanControllerBase","cast","pageRouteKey","routerViewKey","BeanRouterViewBase","__init__","bean","_setBean","$router","addRouterView","__dispose__","removeRouterView","backRoute","_route","forwardRoute","setPageMeta","_pageMeta","prepareRouteMeta","Error","getKeepAliveInclude","getPageHostProviders","undefined","render","slots","default","component","routeMeta","route","vnode","Component","key","componentKey","zovaHostProviders","include","_createVNode","RouterView","h","cast","Controller","pageRouteKey","BeanRouterViewBase","ControllerRouterViewEmpty","_dec","_dec2","__z_BeanInfo","module","_class","__init__","render","slots","default","component","vnode","Component","zovaHostProviders","route","$router","_createVNode"],"sources":["../src/model/pageData.ts","../src/lib/const.ts","../src/lib/utils.ts","../src/types/utils.ts","../src/bean/sys.router.ts","../src/lib/routerGuardDisposers.ts","../src/bean/bean.router.ts","../src/bean/bean.routerGuardsBase.ts","../src/types/router.ts","../src/service/routerGuards.ts","../src/lib/routerViewBase.tsx","../src/component/routerViewEmpty/controller.tsx","../src/.metadata/component/routerViewEmpty.ts","../src/config/config.ts","../src/monkey.ts","../src/monkeySys.ts","../src/.metadata/index.ts"],"sourcesContent":["var _dec, _dec2, _class;\nimport { \"BeanInfo\" as __z_BeanInfo } from \"zova\";\nimport { BeanModelBase, Model } from 'zova-module-a-model';\nexport let ModelPageData = (_dec = Model(), _dec2 = __z_BeanInfo({\n module: \"a-router\"\n}), _dec(_class = _dec2(_class = class ModelPageData extends BeanModelBase {\n constructor(...args) {\n super(...args);\n this._pageDataInner = void 0;\n this.current = void 0;\n }\n async __init__() {\n if (process.env.SERVER) {\n const pagePath = this.$ssr.state.pagePath;\n if (pagePath) {\n this._pageDataInner = this.getPageData(pagePath);\n this._pageDataInner = this.$ssr.state.pageData;\n this.current = this._pageDataInner;\n }\n } else {\n if (this.$ssr.isRuntimeSsrPreHydration) {\n this.current = this.$ssr.state.pageData;\n } else {\n const route = this.$pageRoute;\n this.current = route ? this.getPageData(route.path) : undefined;\n }\n }\n }\n getPageData(pagePath) {\n return this.$useStateMem({\n queryKey: ['pageData', pagePath]\n });\n }\n}) || _class) || _class);","export const pageRouteKey = '$$pageRoute';\nexport const routerViewKey = '$$routerView';","import { routerViewLocationKey } from '@cabloy/vue-router';\nimport { inject } from 'vue';\nimport { pageRouteKey } from './const.js';\nexport function getRouteMatched(route) {\n let match = route.matched.find(item => item.aliasOf);\n if (match) {\n match = match.aliasOf;\n } else {\n match = route.matched[route.matched.length - 1];\n }\n return match;\n}\nexport function getRealRouteName(name) {\n if (!name) return undefined;\n name = String(name);\n if (name.startsWith('$:')) return undefined;\n return name;\n}\nexport function isRouterName(name) {\n return !!name && name.includes(':') && !name.includes('/');\n}\nexport function getPageRoute(ctx) {\n const route = ctx.bean._getBeanFromHost({\n name: pageRouteKey\n });\n return route;\n}\nexport function getCurrentRoute(ctx) {\n const route = ctx.util.instanceScope(() => {\n return inject(routerViewLocationKey);\n });\n return route;\n}\nexport const scrollBehavior = (to, _from, savedPosition) => {\n if (savedPosition) {\n return new Promise(resolve => {\n setTimeout(() => {\n // savedPosition = Object.assign({}, savedPosition, { behavior: 'smooth' });\n resolve(savedPosition);\n }, 100);\n });\n } else if (to.hash) {\n return new Promise(resolve => {\n setTimeout(() => {\n // resolve({ el: to.hash, behavior: 'smooth' });\n resolve({\n el: to.hash\n });\n }, 200);\n });\n } else {\n return {\n left: 0,\n top: 0\n };\n }\n};","export const SymbolRouterHistory = Symbol('SymbolRouterHistory');","var _dec, _dec2, _class;\nimport { \"BeanInfo\" as __z_BeanInfo } from \"zova\";\nimport * as ModuleInfo from '@cabloy/module-info';\nimport { combineParamsAndQuery } from '@cabloy/utils';\nimport { createMemoryHistory, createRouter, createWebHashHistory, createWebHistory } from '@cabloy/vue-router';\nimport { BeanBase, cast, deepExtend, isHttpUrl } from 'zova';\nimport { Sys } from 'zova-module-a-bean';\nimport { getCurrentRoute, getRealRouteName, getRouteMatched, isRouterName } from '../lib/utils.js';\nimport { SymbolRouterHistory } from '../types/utils.js';\nexport let SysRouter = (_dec = Sys(), _dec2 = __z_BeanInfo({\n module: \"a-router\"\n}), _dec(_class = _dec2(_class = class SysRouter extends BeanBase {\n constructor(...args) {\n super(...args);\n this._vueRouterSys = void 0;\n this._syntheticLayoutRouteNames = new Set();\n }\n get router() {\n return this._vueRouterSys;\n }\n __get__(prop) {\n return this._vueRouterSys && this._vueRouterSys[prop];\n }\n async __init__() {\n // create router\n this._vueRouterSys = this.createRouter();\n // config.routes\n this._loadConfigRoutes();\n // legacy routes\n this._loadLegacyRoutes();\n }\n createRouter(options) {\n options = Object.assign({}, options);\n // matcher\n if (!options.matcher) {\n options.matcher = this._vueRouterSys?.matcher;\n }\n // routes\n if (!options.routes) {\n if (!this._vueRouterSys) {\n options.routes = [];\n }\n }\n // scrollBehavior\n if (!options.scrollBehavior) {\n options.scrollBehavior = this.scope.config.scrollBehavior;\n }\n // history\n if (!options.history) {\n const createHistory = process.env.SERVER ? createMemoryHistory : this.sys.env.ROUTER_MODE === 'history' ? createWebHistory : createWebHashHistory;\n const routeBase = process.env.SERVER || this.sys.env.ROUTER_MODE === 'history' ? this.sys.env.APP_PUBLIC_PATH : undefined;\n options.history = createHistory(routeBase);\n }\n // create\n const router = createRouter(options);\n cast(router).__hasDevtools = true;\n router[SymbolRouterHistory] = options.history;\n return router;\n }\n createAsyncComponent(component) {\n if (typeof component !== 'string') return component;\n return this.sys.meta.component.createAsyncComponent(component);\n }\n isSyntheticLayoutRouteRecord(record) {\n const canonicalRecord = record?.aliasOf ?? record;\n return typeof canonicalRecord?.name === 'string' && this._syntheticLayoutRouteNames.has(canonicalRecord.name);\n }\n getPagePath(path, options, absolute) {\n const query = options?.query;\n const params = this._normalizePageParams(options?.params);\n const pagePath = combineParamsAndQuery(path, {\n params,\n query\n });\n return absolute ? this.sys.util.getAbsoluteUrlFromPagePath(pagePath) : pagePath;\n }\n async resolveRoute(url, check404, checkAliasOf) {\n // url: should not has APP_PUBLIC_PATH prefix when not http url\n const pagePath = isHttpUrl(url) ? this.sys.util.getPagePathFromAbsoluteUrl(url) : url;\n let route = await this.ensureRoute(pagePath);\n if (check404 && route.name === '$:/:catchAll(.*)*') return;\n // aliasOf\n if (checkAliasOf) {\n const matchItem = route.matched.find(item => item.aliasOf);\n if (matchItem) {\n route = matchItem.aliasOf;\n }\n // 404\n if (check404 && route.name === '$:/:catchAll(.*)*') return;\n }\n // ok\n return route;\n }\n checkPathValid(to) {\n const _name = to && typeof to === 'object' ? to.name : undefined;\n const _path = to && typeof to === 'object' ? to.name ?? to.path : to;\n // legacy\n if (this._findLegacyRoute(_name, _path)) return true;\n // general check\n if (!_path) return true;\n const moduleName = ModuleInfo.parseName(_path);\n if (!moduleName) return true;\n return this.sys.meta.module.exists(moduleName);\n }\n checkActiveOfFullPath(fullPath, currentRoute) {\n if (!currentRoute) {\n currentRoute = getCurrentRoute(this.ctx)?.value;\n }\n if (!currentRoute) return false;\n if (currentRoute.fullPath === fullPath) return true;\n if (!currentRoute.matched || currentRoute.matched.length === 0) return false;\n return currentRoute.matched.some(routeAlias => {\n const fullPathAlias = this.getPagePath(routeAlias.path, {\n params: currentRoute.params,\n query: currentRoute.query\n });\n return fullPathAlias === fullPath;\n });\n }\n async ensureRoute(pagePath) {\n // try to resolve, support alias route\n let route = this._vueRouterSys.resolve(pagePath);\n if (route && route.name !== '$:/:catchAll(.*)*') return route;\n // try to load module\n const moduleName = ModuleInfo.parseName(pagePath);\n if (moduleName) {\n if (this.sys.meta.module.exists(moduleName)) {\n const module = this.sys.meta.module.get(moduleName);\n if (!module) {\n await this.sys.meta.module.use(moduleName);\n // try to resolve again\n route = this._vueRouterSys.resolve(pagePath);\n }\n }\n }\n return route;\n }\n\n /** @internal */\n _registerRoutes(module) {\n if (!module.resource.routes) return;\n for (const route of module.resource.routes) {\n this._registerRoute(route, module);\n }\n }\n\n /** @internal */\n _findConfigRoute(name, path) {\n name = this.getRealRouteName(name);\n return name ? this.sys.config.routes.name[name] : this.sys.config.routes.path[path];\n }\n\n /** @internal */\n _findLegacyRoute(name, path) {\n const legacyRoutes = cast(this.sys.meta).legacyRoutes;\n if (!legacyRoutes) return;\n name = this.getRealRouteName(name);\n return legacyRoutes.find(item => {\n return name ? item.name === name : item.path === path;\n });\n }\n getRouteMatched(route) {\n return getRouteMatched(route);\n }\n getRealRouteName(name) {\n return getRealRouteName(name);\n }\n isRouterName(name) {\n return isRouterName(name);\n }\n resolveName(name, options) {\n const params = cast(options)?.params;\n const query = cast(options)?.query;\n return this._resolveNameOrPath(query, query => {\n const route = this.router.resolve({\n name,\n params,\n query\n });\n return route.fullPath;\n });\n }\n getAliasPath(name, options, absolute) {\n const alias = this.sys.config.routes.name[name]?.alias;\n if (!alias) return;\n const params = this._normalizePageParams(cast(options)?.params);\n const query = cast(options)?.query;\n const aliasName = `$alias:${name}`;\n const routeAlias = this._resolveNameOrPath(query, query => {\n const route = this.router.resolve({\n name: this.router.hasRoute(aliasName) ? aliasName : name,\n params,\n query\n });\n return route.fullPath;\n });\n const pagePath = routeAlias.startsWith('/__alias__') ? routeAlias.substring('/__alias__'.length) || '/' : routeAlias;\n return absolute ? this.sys.util.getAbsoluteUrlFromPagePath(pagePath) : pagePath;\n }\n _normalizePageParams(params) {\n const paramsLocale = cast(params)?.locale;\n if (paramsLocale === undefined) return params;\n const localeCurrent = paramsLocale === true ? this.app.meta.locale.current : paramsLocale;\n const locale = localeCurrent === this.sys.config.locale.default ? undefined : localeCurrent;\n return Object.assign({}, params, {\n locale\n });\n }\n _resolveNameOrPath(query, fn) {\n const query1 = {};\n const query2 = [];\n if (query) {\n for (const key in query) {\n const value = query[key];\n if (value && typeof value === 'object') {\n query2.push([key, value]);\n } else {\n query1[key] = value;\n }\n }\n }\n // resolve\n const fullPath = fn(query1);\n // query2\n const query2str = query2.map(([key, value]) => {\n return `${encodeURIComponent(key)}=${encodeURIComponent(JSON.stringify(value))}`;\n }).join('&');\n // join\n if (!query2str) return fullPath;\n const join = Object.keys(query1).length > 0 ? '&' : '?';\n return `${fullPath}${join}${query2str}`;\n }\n _loadConfigRoutes() {\n const routesPath = this.sys.config.routes.path;\n for (const key in routesPath) {\n const route = routesPath[key];\n if (!route) continue;\n this._loadConfigRoute({\n ...route,\n path: key,\n name: `$:${key}`\n });\n }\n const routesName = this.sys.config.routes.name;\n for (const key in routesName) {\n const route = routesName[key];\n if (!route) continue;\n this._loadConfigRoute({\n ...route,\n path: route.path || route.alias,\n name: key\n });\n }\n }\n _loadLegacyRoutes() {\n const legacyRoutes = cast(this.sys.meta).legacyRoutes;\n if (!legacyRoutes) return;\n for (const route of legacyRoutes) {\n this._registerRoute(route);\n }\n }\n _loadConfigRoute(route) {\n this.router.addRoute(route);\n }\n _registerRoute(route, module) {\n // path\n let path;\n if (route.path !== undefined) {\n if (!module || route.meta?.absolute === true) {\n path = route.path;\n } else {\n path = route.path ? `/${module.info.pid}/${module.info.name}/${route.path}` : `/${module.info.pid}/${module.info.name}`;\n }\n }\n // name\n let name;\n if (route.name) {\n if (!module || route.meta?.absolute === true) {\n name = String(route.name);\n } else {\n name = `${module.info.relativeName}:${String(route.name)}`;\n }\n }\n // config route\n const configRoute = name ? this.sys.config.routes.name[name] : this.sys.config.routes.path[path];\n if (configRoute) {\n route = deepExtend({}, route, configRoute);\n }\n // name alias\n if (name && configRoute?.alias) {\n const alias = Array.isArray(configRoute.alias) ? configRoute.alias[0] : configRoute.alias;\n // add extra route\n this.router.addRoute({\n name: `$alias:${name}`,\n path: `/__alias__${alias}`,\n redirect: ''\n });\n }\n // name\n if (!name) {\n name = `$:${path}`;\n }\n // meta\n const meta = route.meta;\n // component\n const component = route.component;\n // layout / routeData\n let layout = meta?.layout;\n let routeData;\n let routeNameParent;\n if (layout === false) {\n routeData = {\n ...route,\n name,\n path,\n component,\n meta\n };\n } else {\n if (layout === undefined || layout === 'default') {\n layout = this.sys.config.layout.component.default;\n } else if (layout === 'empty') {\n layout = this.sys.config.layout.component.empty;\n }\n routeNameParent = `$:${name}`;\n routeData = {\n name: routeNameParent,\n path,\n ...(route.alias ? {\n alias: route.alias\n } : {}),\n component: this.createAsyncComponent(layout),\n children: [{\n ...route,\n name,\n path: '',\n component,\n meta\n }]\n };\n }\n // force delete\n if (this.router.hasRoute(routeNameParent)) {\n this.router.removeRoute(routeNameParent);\n }\n if (this.router.hasRoute(name)) {\n this.router.removeRoute(name);\n }\n // add\n this.router.addRoute(routeData);\n if (routeNameParent) {\n this._syntheticLayoutRouteNames.add(routeNameParent);\n }\n }\n}) || _class) || _class);","export class RouterGuardDisposers {\n constructor() {\n this._disposers = [];\n this._disposed = false;\n }\n add(disposer) {\n this._disposers.push(disposer);\n return disposer;\n }\n dispose() {\n if (this._disposed) return;\n this._disposed = true;\n const disposers = this._disposers;\n this._disposers = [];\n for (const disposer of disposers) {\n disposer();\n }\n }\n}","var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _class, _class2, _descriptor, _descriptor2;\nfunction _initializerDefineProperty(e, i, r, l) { r && Object.defineProperty(e, i, { enumerable: r.enumerable, configurable: r.configurable, writable: r.writable, value: r.initializer ? r.initializer.call(l) : void 0 }); }\nfunction _applyDecoratedDescriptor(i, e, r, n, l) { var a = {}; return Object.keys(n).forEach(function (i) { a[i] = n[i]; }), a.enumerable = !!a.enumerable, a.configurable = !!a.configurable, (\"value\" in a || a.initializer) && (a.writable = !0), a = r.slice().reverse().reduce(function (r, n) { return n(i, e, r) || r; }, a), l && void 0 !== a.initializer && (a.value = a.initializer ? a.initializer.call(l) : void 0, a.initializer = void 0), void 0 === a.initializer ? (Object.defineProperty(i, e, a), null) : a; }\nfunction _initializerWarningHelper(r, e) { throw Error(\"Decorating class property failed. Please ensure that transform-class-properties is enabled and runs after the decorators transform.\"); }\nimport { \"BeanInfo\" as __z_BeanInfo } from \"zova\";\nimport { BeanBase, Use } from 'zova';\nimport { Bean } from 'zova-module-a-bean';\nimport { RouterGuardDisposers } from '../lib/routerGuardDisposers.js';\nimport { ModelPageData } from '../model/pageData.js';\nimport { SysRouter } from './sys.router.js';\nexport let BeanRouter = (_dec = Bean(), _dec2 = __z_BeanInfo({\n module: \"a-router\"\n}), _dec3 = Use(), _dec4 = Reflect.metadata(\"design:type\", typeof SysRouter === \"undefined\" ? Object : SysRouter), _dec5 = Use(), _dec6 = Reflect.metadata(\"design:type\", typeof ModelPageData === \"undefined\" ? Object : ModelPageData), _dec(_class = _dec2(_class = (_class2 = class BeanRouter extends BeanBase {\n constructor(...args) {\n super(...args);\n this._vueRouterApp = void 0;\n this._routerGuardDisposers = new RouterGuardDisposers();\n this._routerViews = [];\n this._disposed = false;\n _initializerDefineProperty(this, \"$$sysRouter\", _descriptor, this);\n _initializerDefineProperty(this, \"$$modelPageData\", _descriptor2, this);\n this._isEmbedded = false;\n this._embeddedView = void 0;\n this._prepareNavigation = void 0;\n }\n // for prepare pageData on server\n\n get router() {\n return this._vueRouterApp;\n }\n get isEmbedded() {\n return this._isEmbedded;\n }\n /**\n * Returns the initial RouterView depth for an embedded page-only host.\n *\n * SysRouter records the synthetic layout parents it creates. The page-only\n * host skips only those exact records; routes registered with\n * `meta.layout: false` still start at depth zero.\n */\n getEmbeddedRouterViewDepth(route) {\n if (this._embeddedView !== 'page') return 0;\n return this.$$sysRouter.isSyntheticLayoutRouteRecord(route.matched[0]) ? 1 : 0;\n }\n dispose() {\n if (this._disposed) return;\n this._disposed = true;\n this._routerGuardDisposers.dispose();\n this._routerViews = [];\n const router = this._vueRouterApp;\n if (router) router.__prepareNavigation = undefined;\n }\n __dispose__() {\n // Router instances can be borrowed through page host providers. Their\n // creator explicitly calls dispose() when the router itself is finished.\n }\n __get__(prop) {\n // SymbolRouter first\n const value = this._vueRouterApp?.[prop];\n if (value !== undefined) return value;\n return this.$$sysRouter?.[prop];\n }\n async __init__(mainRouterOrOptions) {\n const options = typeof mainRouterOrOptions === 'boolean' ? {\n mainRouter: mainRouterOrOptions\n } : mainRouterOrOptions ?? {};\n this._isEmbedded = options.mainRouter === false;\n this._embeddedView = options.embeddedView;\n this._prepareNavigation = options.prepareNavigation;\n // create router\n this._vueRouterApp = this.$$sysRouter.createRouter(options.routerOptions);\n const router = this._vueRouterApp;\n router.__prepareNavigation = this._prepareNavigation;\n if (!options.mainRouter) {\n // emit event\n await this.app.meta.event.emit('a-router:routerGuards', this);\n }\n }\n addRouterView(routerView) {\n this._routerViews.push(routerView);\n if (!this._isEmbedded) return;\n const route = this._vueRouterApp.currentRoute.value;\n if (route?.matched.length > 0) {\n routerView.forwardRoute(route);\n }\n }\n removeRouterView(routerView) {\n const index = this._routerViews.findIndex(item => item === routerView);\n if (index > -1) {\n this._routerViews.splice(index, 1);\n }\n }\n afterEachBackRoute(route) {\n for (const routerView of this._routerViews) {\n const res = routerView.backRoute(route);\n if (res) break;\n }\n }\n afterEachForwardRoute(route) {\n for (const routerView of this._routerViews) {\n const res = routerView.forwardRoute(route);\n if (res) break;\n }\n }\n beforeEach(guard) {\n return this._routerGuardDisposers.add(this._vueRouterApp.beforeEach(guard));\n }\n beforeResolve(guard) {\n return this._routerGuardDisposers.add(this._vueRouterApp.beforeResolve(guard));\n }\n afterEach(guard) {\n return this._routerGuardDisposers.add(this._vueRouterApp.afterEach(guard));\n }\n onError(handler) {\n return this._routerGuardDisposers.add(this._vueRouterApp.onError(handler));\n }\n setPageMeta(route, pageMeta) {\n for (const routerView of this._routerViews) {\n routerView.setPageMeta(route, pageMeta);\n }\n }\n}, _descriptor = _applyDecoratedDescriptor(_class2.prototype, \"$$sysRouter\", [_dec3, _dec4], {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: null\n}), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, \"$$modelPageData\", [_dec5, _dec6], {\n configurable: true,\n enumerable: true,\n writable: true,\n initializer: null\n}), _class2)) || _class) || _class);","var _dec, _dec2, _dec3, _class;\nimport { \"BeanInfo\" as __z_BeanInfo } from \"zova\";\nimport { BeanBase, Virtual } from 'zova';\nimport { Bean } from 'zova-module-a-bean';\nexport let BeanRouterGuardsBase = (_dec = Bean(), _dec2 = Virtual(), _dec3 = __z_BeanInfo({\n module: \"a-router\"\n}), _dec(_class = _dec2(_class = _dec3(_class = class BeanRouterGuardsBase extends BeanBase {\n constructor(...args) {\n super(...args);\n this._eventRouterGuards = void 0;\n }\n async __init__() {\n this._eventRouterGuards = this.app.meta.event.on('a-router:routerGuards', async (router, next) => {\n this.onRouterGuards(router);\n return await next();\n });\n }\n __dispose__() {\n this.dispose();\n }\n dispose() {\n if (this._eventRouterGuards) {\n this._eventRouterGuards();\n }\n }\n onRouterGuards(_router) {}\n}) || _class) || _class) || _class);","import 'vue-router';\nexport let NavigationType = /*#__PURE__*/function (NavigationType) {\n NavigationType[\"pop\"] = \"pop\";\n NavigationType[\"push\"] = \"push\";\n return NavigationType;\n}({});\nexport let NavigationDirection = /*#__PURE__*/function (NavigationDirection) {\n NavigationDirection[\"back\"] = \"back\";\n NavigationDirection[\"forward\"] = \"forward\";\n NavigationDirection[\"unknown\"] = \"\";\n return NavigationDirection;\n}({});","var _dec, _dec2, _class;\nimport { \"BeanInfo\" as __z_BeanInfo } from \"zova\";\nimport * as ModuleInfo from '@cabloy/module-info';\nimport { Service } from 'zova-module-a-bean';\nimport { BeanRouterGuardsBase } from '../bean/bean.routerGuardsBase.js';\nimport { NavigationDirection, NavigationType } from '../types/router.js';\nexport let ServiceRouterGuards = (_dec = Service(), _dec2 = __z_BeanInfo({\n module: \"a-router\"\n}), _dec(_class = _dec2(_class = class ServiceRouterGuards extends BeanRouterGuardsBase {\n onRouterGuards(router) {\n const self = this;\n router.beforeEach(async to => {\n // match path\n const aliasMatch = to.matched.find(item => item.aliasOf);\n let match = aliasMatch;\n if (aliasMatch) {\n match = aliasMatch.aliasOf;\n // A path-config alias can initially resolve to a componentless placeholder\n // before its module registers the real layout route. Reload the same path\n // after loading so the router resolves the newly registered component.\n if (!match?.components || Object.keys(match.components).length === 0) {\n const resLoadModule = await this._forceLoadModule(router, match?.name, match?.path);\n if (resLoadModule && resLoadModule !== true) return resLoadModule;\n return to.fullPath;\n }\n } else {\n match = to.matched[to.matched.length - 1];\n // prepareCheck\n if (!(await this._prepareCheck(match?.path, to.path))) {\n // redirect again\n return to.fullPath;\n }\n // legacy\n const legacyRoute = router._findLegacyRoute(match?.name, match?.path);\n if (legacyRoute) return;\n // alias\n const configRoute = router._findConfigRoute(match?.name, match?.path);\n const alias = configRoute?.alias;\n if (alias) {\n // force load module\n const resLoadModule = await this._forceLoadModule(router, match?.name, match?.path);\n if (resLoadModule && resLoadModule !== true) return resLoadModule;\n if (resLoadModule === false) return to.fullPath;\n const name = router.getRealRouteName(match?.name);\n if (name) {\n const routeAlias = router.getAliasPath(name, {\n params: to.params,\n query: to.query\n });\n return routeAlias || '/';\n } else {\n return {\n path: Array.isArray(alias) ? alias[0] : alias,\n params: to.params,\n query: to.query\n };\n }\n }\n }\n // force load module\n const resLoadModule = await this._forceLoadModule(router, match?.name, match?.path);\n if (resLoadModule === true) return;\n if (resLoadModule) return resLoadModule;\n // redirect again\n return to.fullPath;\n });\n router.afterEach(function (to, from, error) {\n if (error) return;\n const info = arguments[3];\n // from\n if (from.fullPath !== to.fullPath) {\n self._afterEachFrom(router, from, info);\n }\n // to\n router.afterEachForwardRoute(to);\n });\n }\n _afterEachFrom(router, from, info) {\n if (!info) return;\n const needBack = info.type === NavigationType.pop && info.direction === NavigationDirection.back || info.type === NavigationType.push && info.replace;\n if (!needBack) return;\n router.afterEachBackRoute(from);\n }\n\n // if 404 then check if module loaded\n async _prepareCheck(pathMatched, pathTo) {\n if (pathMatched === '/:catchAll(.*)*') {\n const moduleInfo = ModuleInfo.parseInfo(ModuleInfo.parseName(pathTo));\n if (moduleInfo && this.app.meta.module.exists(moduleInfo.relativeName) && !this.app.meta.module.get(moduleInfo.relativeName, false)) {\n // use module\n await this.app.meta.module.use(moduleInfo.relativeName);\n // redirect again\n return false;\n }\n }\n return true;\n }\n async _forceLoadModule(router, name, path) {\n const nameOrPath = router.getRealRouteName(name) || path;\n // module info\n const moduleInfo = ModuleInfo.parseInfo(ModuleInfo.parseName(nameOrPath));\n if (!moduleInfo) {\n // donothing\n return true;\n }\n const moduleName = moduleInfo.relativeName;\n // check if exists\n if (!this.app.meta.module.exists(moduleName)) return '/404';\n // check if loaded\n const module = this.app.meta.module.get(moduleName, false);\n if (module) return true;\n // use module\n await this.app.meta.module.use(moduleName);\n // means need load\n return false;\n }\n}) || _class) || _class);","import type { RouteLocationNormalizedLoadedGeneric } from '@cabloy/vue-router';\n\nimport { RouterView } from '@cabloy/vue-router';\nimport { h, KeepAlive, Transition } from 'vue';\nimport { BeanControllerBase, cast } from 'zova';\n\nimport type { IPageMeta } from '../types/pageMeta.js';\nimport type { IRouterViewSlotParams, IRouteViewRouteMeta } from '../types/routerView.js';\n\nimport { pageRouteKey, routerViewKey } from './const.js';\n\nexport interface IRouterViewPropsBase {}\n\nexport class BeanRouterViewBase extends BeanControllerBase implements IRouterViewPropsBase {\n protected async __init__() {\n this.bean._setBean(routerViewKey, this);\n this.$router.addRouterView(this);\n }\n\n protected __dispose__() {\n this.$router.removeRouterView(this);\n }\n\n public backRoute(_route: RouteLocationNormalizedLoadedGeneric) {\n return false;\n }\n\n public forwardRoute(_route: RouteLocationNormalizedLoadedGeneric) {\n return false;\n }\n\n public setPageMeta(_route: RouteLocationNormalizedLoadedGeneric, _pageMeta: IPageMeta) {}\n\n protected prepareRouteMeta(_route: RouteLocationNormalizedLoadedGeneric): IRouteViewRouteMeta {\n throw new Error('Not Implemented');\n }\n\n protected getKeepAliveInclude(): string[] | undefined {\n throw new Error('Not Implemented');\n }\n\n protected getPageHostProviders(): Record<string, unknown> | undefined {\n return undefined;\n }\n\n protected render() {\n const slots = {\n default: (component: IRouterViewSlotParams) => {\n const routeMeta = this.prepareRouteMeta(component.route);\n return h(Transition, null, {\n default: () => {\n const vnode = h(component.Component as any, {\n key: routeMeta.componentKey,\n route: component.route,\n });\n cast(vnode).zovaHostProviders = {\n ...this.getPageHostProviders(),\n [pageRouteKey]: component.route,\n 'a-router.bean.router': this.$router,\n };\n return [\n h(\n KeepAlive,\n {\n include: this.getKeepAliveInclude(),\n },\n [vnode],\n ),\n ];\n },\n });\n },\n };\n return <RouterView v-slots={slots}></RouterView>;\n }\n}\n","import { RouterView } from '@cabloy/vue-router';\nimport { h } from 'vue';\nimport { cast } from 'zova';\nimport { Controller } from 'zova-module-a-bean';\n\nimport { pageRouteKey } from '../../lib/const.js';\nimport { BeanRouterViewBase } from '../../lib/routerViewBase.js';\n\n@Controller()\nexport class ControllerRouterViewEmpty extends BeanRouterViewBase {\n protected async __init__() {}\n\n protected render() {\n const slots = {\n default: component => {\n const vnode = h(component.Component);\n cast(vnode).zovaHostProviders = {\n [pageRouteKey]: component.route,\n 'a-router.bean.router': this.$router,\n };\n return vnode;\n },\n };\n return <RouterView v-slots={slots}></RouterView>;\n }\n}\n","import { defineComponent } from 'vue';\nimport { prepareComponentOptions, useController } from 'zova';\nimport { ControllerRouterViewEmpty } from '../../component/routerViewEmpty/controller.jsx';\nexport const ZRouterViewEmpty = defineComponent(_props => {\n useController(ControllerRouterViewEmpty, undefined, undefined);\n return () => {};\n}, prepareComponentOptions());","import { scrollBehavior } from '../lib/utils.js';\nexport const config = _sys => {\n return {\n scrollBehavior\n };\n};","import * as ModuleInfo from '@cabloy/module-info';\nimport { shallowReactive } from 'vue';\nimport { BeanControllerPageBase, BeanSimple, cast, useComputed } from 'zova';\nimport { routerViewKey } from './lib/const.js';\nimport { getCurrentRoute, getPageRoute, getRealRouteName, getRouteMatched } from './lib/utils.js';\nimport { ServiceRouterGuards } from './service/routerGuards.js';\nimport { SymbolRouterHistory } from './types/utils.js';\nexport class Monkey extends BeanSimple {\n constructor(...args) {\n super(...args);\n this._beanRouter = void 0;\n this._sysRouter = void 0;\n this.serviceRouterGuards = void 0;\n }\n async _getSysRouter() {\n if (!this._sysRouter) {\n this._sysRouter = await this.sys.bean._getBean('a-router.sys.router', false);\n }\n return this._sysRouter;\n }\n async getBeanRouter() {\n if (!this._beanRouter) {\n // markReactive: true\n this._beanRouter = this.app.meta.$router = await this.bean._getBean('a-router.bean.router', true, true);\n }\n return this._beanRouter;\n }\n async appInitialize() {\n if (process.env.SERVER) {\n const pagePathFull = this.app.$getCurrentPagePath();\n if (pagePathFull) {\n const sysRouter = await this._getSysRouter();\n const route = await sysRouter.resolveRoute(pagePathFull, true, false);\n if (route) {\n // ssr profile\n this.ctx.meta.$ssr._setProfile(route.meta.ssrProfile, route.meta.ssrProfileOptions, route.meta.locale);\n // locale\n this.ctx.meta.$ssr._setLocale(route);\n }\n }\n }\n // router\n this.serviceRouterGuards = await this.bean._newBean(ServiceRouterGuards, false);\n // ssr errorHandler\n if (process.env.CLIENT) {\n this._ssrErrorHandler();\n }\n }\n async appInitialized() {\n const beanRouter = await this.getBeanRouter();\n // emit event\n await this.app.meta.event.emit('a-router:routerGuards', beanRouter);\n }\n appClose() {\n if (this.serviceRouterGuards) {\n this.serviceRouterGuards.dispose();\n }\n this._beanRouter?.dispose();\n }\n async appReady() {\n const beanRouter = await this.getBeanRouter();\n // pagePath\n if (process.env.CLIENT && this.ctx.meta.$ssr.isRuntimeSsrPreHydration) {\n const pagePathFull = this.ctx.meta.$ssr.state.pagePathFull;\n if (pagePathFull) {\n const routerHistory = beanRouter.router[SymbolRouterHistory];\n routerHistory.push(pagePathFull);\n }\n }\n // use router\n this.app.vue.use(beanRouter);\n // ssr\n if (process.env.SERVER) {\n // push\n const pagePath = this.app.$getCurrentPagePath();\n beanRouter.push(pagePath);\n await beanRouter.isReady();\n } else if (process.env.CLIENT && this.ctx.meta.$ssr.isRuntimeSsrPreHydration) {\n await beanRouter.isReady();\n }\n }\n async beanInit(bean, beanInstance) {\n bean.defineProperty(beanInstance, '$router', {\n enumerable: false,\n configurable: true,\n get() {\n return bean._getBeanFromHost('a-router.bean.router');\n }\n });\n bean.defineProperty(beanInstance, '$routerView', {\n enumerable: false,\n configurable: true,\n get() {\n return bean._getBeanFromHost({\n name: routerViewKey\n });\n }\n });\n bean.defineProperty(beanInstance, '$pageRoute', {\n enumerable: false,\n configurable: true,\n get() {\n return useComputed(() => {\n return getPageRoute(cast(bean).ctx);\n });\n }\n });\n bean.defineProperty(beanInstance, '$currentRoute', {\n enumerable: false,\n configurable: true,\n get() {\n return useComputed(() => {\n return getCurrentRoute(cast(bean).ctx);\n });\n }\n });\n }\n controllerDataPrepare(controllerData, ctx) {\n controllerData.context.route = getPageRoute(ctx);\n }\n controllerDataInit(controllerData, controller) {\n // only for controller page\n if (!(controller instanceof BeanControllerPageBase)) return;\n const route = controllerData.context.route;\n this._initControllerRoute(route, controller);\n }\n controllerDataUpdate(controller) {\n // only for controller page\n if (!(controller instanceof BeanControllerPageBase)) return;\n const route = getPageRoute(cast(cast(controller).ctx));\n this._initControllerRoute(route, controller);\n }\n _initControllerRoute(route, controller) {\n if (!route) return;\n const routeMatched = getRouteMatched(route);\n if (!routeMatched) return;\n // check if the same\n if (controller.$routeMatched && !this._checkIfRouteSame(routeMatched, controller.$routeMatched)) return;\n // check if changed\n const changed = !controller.$route || controller.$route.fullPath !== route.fullPath;\n if (!changed) return;\n // update $params/$query\n const routeName = getRealRouteName(routeMatched.name);\n const schemaKey = routeName || String(routeMatched.path);\n let schemas;\n const moduleInfo = ModuleInfo.parseInfo(ModuleInfo.parseName(schemaKey));\n if (!moduleInfo) {\n // do nothing\n return;\n }\n if (!this.app.meta.module.exists(moduleInfo.relativeName)) {\n // do nothing\n return;\n }\n const module = this.app.meta.module.get(moduleInfo.relativeName, false);\n if (!module) {\n void this.app.meta.module.use(moduleInfo.relativeName).then(() => {\n if (cast(controller).ctx.disposed) return;\n const currentRoute = getPageRoute(cast(cast(controller).ctx));\n if (!currentRoute || currentRoute.fullPath !== route.fullPath) return;\n this._initControllerRoute(currentRoute, controller);\n }).catch(err => {\n console.error('failed to load route module', moduleInfo.relativeName, err);\n });\n return;\n }\n controller.$route = route;\n controller.$routeMatched = routeMatched;\n if (routeName) {\n schemas = module.resource.pageNameSchemas?.[schemaKey];\n } else {\n schemas = module.resource.pagePathSchemas?.[schemaKey];\n }\n if (schemas?.params) {\n const params = schemas.params.parse(route.params);\n if (!controller.$params) {\n controller.$params = process.env.SERVER ? params : shallowReactive(params);\n } else {\n // hold the same $params ref\n Object.assign(controller.$params, params);\n }\n }\n if (schemas?.query) {\n const query = schemas.query.parse(route.query);\n if (!controller.$query) {\n controller.$query = process.env.SERVER ? query : shallowReactive(query);\n } else {\n // hold the same $query ref\n Object.assign(controller.$query, query);\n }\n }\n }\n _checkIfRouteSame(route1, route2) {\n return route1.name && route1.name === route2.name || route1.path === route2.path;\n }\n _ssrErrorHandler() {\n if (!process.env.CLIENT) return;\n this.app.meta.event.on('app:errorHandler', (data, next) => {\n if (_isLoadErrorHandledClient(data)) {\n data.load.disposition = 'handled';\n }\n const err = next();\n if (!err || !(err instanceof Error)) return err;\n return this._errorHandlerDefaultClient(err, data);\n });\n }\n _errorHandlerDefaultClient(err, _data) {\n if (!process.env.CLIENT) return err;\n // client\n if ([301, 302].includes(Number(err.code))) {\n this.app.$gotoPage(err.pagePath);\n return undefined;\n }\n // COMPONENT_UNMOUNTED\n if (err.code === 600) {\n // do nothing\n return undefined;\n }\n // 401\n if (err.code === 401) {\n this.app.$gotoLogin();\n return undefined;\n }\n // not handled\n return err;\n }\n}\nfunction _isLoadErrorHandledClient(data) {\n if (data.load?.kind !== 'controller-load') return false;\n return [301, 302, 401, 600].includes(Number(data.err.code));\n}","import { BeanSimple, cast, isHttpUrl } from 'zova';\nexport class MonkeySys extends BeanSimple {\n constructor(moduleSelf) {\n super();\n this._moduleSelf = void 0;\n this._sysRouter = void 0;\n this._moduleSelf = moduleSelf;\n }\n async getSysRouter() {\n if (!this._sysRouter) {\n this._sysRouter = await this.sys.bean._getBean('a-router.sys.router', false);\n }\n return this._sysRouter;\n }\n async moduleLoading(module) {\n if (this._moduleSelf === module) return;\n if (!module.resource.routes) return;\n const sysRouter = await this.getSysRouter();\n sysRouter._registerRoutes(module);\n }\n async moduleLoaded(_module) {}\n async configLoaded(_module, _config) {}\n sysApplicationInitialize(app) {\n app.$redirect = (pagePath, status) => {\n const error = new Error();\n error.code = status ?? 302;\n if (isHttpUrl(pagePath)) {\n error.pagePath = pagePath;\n error.url = pagePath;\n } else {\n error.pagePath = pagePath;\n error.url = app.sys.util.getAbsoluteUrlFromPagePath(pagePath, true);\n }\n error.message = process.env.SERVER ? error.url : error.pagePath;\n throw error;\n };\n app.$getPagePath = (pagePath, options) => {\n const query = {\n ...options?.query\n };\n // returnTo\n if (options?.returnTo) {\n const returnTo = typeof options.returnTo === 'string' ? options.returnTo : app.$getCurrentPagePath();\n if (returnTo !== app.$getPagePathHome()) {\n query[app.sys.env.ROUTER_KEY_RETURNTO] = returnTo;\n }\n }\n return app.meta.$router.getPagePath(pagePath, {\n params: options?.params,\n query\n });\n };\n app.$getPagePathLogin = (returnTo, cause) => {\n const query = {};\n if (cause) {\n query.cause = cause;\n }\n const returnTo2 = _fixReturnTo(app, returnTo);\n return app.$getPagePath(app.sys.env.ROUTER_PAGE_LOGIN, {\n query,\n returnTo: returnTo2\n });\n };\n app.$getPagePathAccessDenied = () => {\n return app.$getPagePath('/home/base/errorAccessDenied');\n };\n app.$gotoPage = (pagePath, options) => {\n pagePath = app.$getPagePath(pagePath, options);\n // redirect\n if (process.env.SERVER || options?.forceRedirect) {\n return app.$redirect(pagePath);\n }\n // replace\n if (isHttpUrl(pagePath)) {\n window.location[options?.replace ? 'replace' : 'assign'](pagePath);\n } else {\n return app.meta.$router[options?.replace ? 'replace' : 'push'](pagePath);\n }\n };\n app.$gotoHome = options => {\n const pagePath = app.$getPagePathHome(options);\n return app.$gotoPage(pagePath, {\n ...options,\n params: undefined\n });\n };\n app.$gotoLogin = (returnTo, cause) => {\n const returnTo2 = _fixReturnTo(app, returnTo);\n if (!returnTo2 && cast(app.meta.$router.currentRoute)?.path === app.sys.env.ROUTER_PAGE_LOGIN) {\n return;\n }\n const pagePath = app.$getPagePathLogin(returnTo2, cause);\n return app.$gotoPage(pagePath);\n };\n app.$gotoAccessDenied = () => {\n const pagePath = app.$getPagePathAccessDenied();\n if (cast(app.meta.$router.currentRoute)?.path === pagePath) return;\n return app.$gotoPage(pagePath, {\n replace: true\n });\n };\n app.$gotoReturnTo = returnTo => {\n const pagePath = app.$getReturnTo(returnTo);\n return app.$gotoPage(pagePath, {\n replace: true\n });\n };\n app.$getReturnTo = returnTo => {\n // not use ??\n const pagePath = returnTo || cast(app.meta.$router.currentRoute)?.query?.[app.sys.env.ROUTER_KEY_RETURNTO] || app.$getPagePathHome();\n return pagePath;\n };\n app.$getCurrentPagePath = () => {\n if (process.env.SERVER) {\n return app.ctx.meta.$ssr.state.pagePathFull ?? app.sys.util.getPagePathFromAbsoluteUrl(app.ctx.meta.$ssr.context.req.url);\n }\n return cast(app.meta.$router.currentRoute)?.fullPath;\n };\n app.$getPagePathHome = options => {\n let params = options?.params;\n if (params?.locale === undefined) {\n params = Object.assign({}, params, {\n locale: true\n });\n }\n // not handle options?.query\n return app.meta.$router.getPagePath(app.sys.env.ROUTER_PAGE_HOME, {\n params\n });\n };\n }\n}\nfunction _fixReturnTo(app, returnTo) {\n const returnTo2 = returnTo === false ? false : typeof returnTo === 'string' ? returnTo : app.$getCurrentPagePath();\n return returnTo2 === app.sys.env.ROUTER_PAGE_LOGIN ? false : returnTo2;\n}","var _dec, _dec2, _class;\nimport { \"BeanInfo\" as __z_BeanInfo } from \"zova\";\n// eslint-disable\n/** model: begin */\nexport * from '../model/pageData.js';\nimport 'zova-module-a-model';\n/** model: end */\n/** model: begin */\n\nimport 'zova';\n/** model: end */\n/** sys: begin */\nexport * from '../bean/sys.router.js';\nimport 'zova';\n/** sys: end */\n/** sys: begin */\n\nimport 'zova';\n/** sys: end */\n/** bean: begin */\nexport * from '../bean/bean.router.js';\nexport * from '../bean/bean.routerGuardsBase.js';\nimport 'zova';\n/** bean: end */\n/** bean: begin */\n\nimport 'zova';\n/** bean: end */\n/** service: begin */\nexport * from '../service/routerGuards.js';\nimport 'zova-module-a-bean';\n/** service: end */\n/** service: begin */\n\nimport 'zova';\n/** service: end */\n/** controller: begin */\nexport * from '../component/routerViewEmpty/controller.jsx';\nimport 'zova';\n/** controller: end */\n/** controller: begin */\n\nimport 'zova';\n/** controller: end */\n\n/** components: begin */\nexport * from './component/routerViewEmpty.js';\nimport { ZRouterViewEmpty } from './component/routerViewEmpty.js';\nexport const components = {\n 'routerViewEmpty': ZRouterViewEmpty\n};\nimport 'zova';\n/** components: end */\n/** config: begin */\nexport * from '../config/config.js';\n/** config: end */\n/** monkey: begin */\nexport * from '../monkey.js';\n/** monkey: end */\n/** monkeySys: begin */\nexport * from '../monkeySys.js';\n/** monkeySys: end */\n/** scope: begin */\nimport { BeanScopeBase } from 'zova';\nimport { Scope } from 'zova-module-a-bean';\nexport let ScopeModuleARouter = (_dec = Scope(), _dec2 = __z_BeanInfo({\n module: \"a-router\"\n}), _dec(_class = _dec2(_class = class ScopeModuleARouter extends BeanScopeBase {}) || _class) || _class);\nimport 'zova';\n\n/** scope: end */"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routerGuardDisposers.d.ts","sourceRoot":"","sources":["../../src/lib/routerGuardDisposers.ts"],"names":[],"mappings":"AAAA,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,UAAU,CAAsB;IACxC,OAAO,CAAC,SAAS,CAAS;IAE1B,GAAG,CAAC,QAAQ,EAAE,MAAM,IAAI,SAAJ,IAAI;IAKxB,OAAO;CASR"}
|
package/dist/monkey.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"monkey.d.ts","sourceRoot":"","sources":["../src/monkey.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,QAAQ,EACR,aAAa,EACb,eAAe,EAEf,eAAe,EACf,oBAAoB,EACpB,qBAAqB,EACrB,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,WAAW,EACZ,MAAM,MAAM,CAAC;AAKd,OAAO,EAA0B,UAAU,EAAqB,MAAM,MAAM,CAAC;AAE7E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAMxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAGhE,qBAAa,MACX,SAAQ,UACR,YACE,oBAAoB,EACpB,qBAAqB,EACrB,eAAe,EACf,eAAe,EACf,eAAe,EACf,iBAAiB;IAEnB,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,UAAU,CAAY;IAC9B,mBAAmB,EAAE,mBAAmB,CAAC;YAE3B,aAAa;IAOrB,aAAa;IAYb,aAAa;IA0Bb,cAAc;IAMpB,QAAQ,IAAI,IAAI;
|
|
1
|
+
{"version":3,"file":"monkey.d.ts","sourceRoot":"","sources":["../src/monkey.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,QAAQ,EACR,aAAa,EACb,eAAe,EAEf,eAAe,EACf,oBAAoB,EACpB,qBAAqB,EACrB,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,WAAW,EACZ,MAAM,MAAM,CAAC;AAKd,OAAO,EAA0B,UAAU,EAAqB,MAAM,MAAM,CAAC;AAE7E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAMxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAGhE,qBAAa,MACX,SAAQ,UACR,YACE,oBAAoB,EACpB,qBAAqB,EACrB,eAAe,EACf,eAAe,EACf,eAAe,EACf,iBAAiB;IAEnB,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,UAAU,CAAY;IAC9B,mBAAmB,EAAE,mBAAmB,CAAC;YAE3B,aAAa;IAOrB,aAAa;IAYb,aAAa;IA0Bb,cAAc;IAMpB,QAAQ,IAAI,IAAI;IAOV,QAAQ;IAuBR,QAAQ,CAAC,IAAI,EAAE,aAAa,EAAE,YAAY,EAAE,QAAQ;IAmC1D,qBAAqB,CAAC,cAAc,EAAE,eAAe,EAAE,GAAG,EAAE,WAAW;IAIvE,kBAAkB,CAAC,cAAc,EAAE,eAAe,EAAE,UAAU,EAAE,QAAQ;IAOxE,oBAAoB,CAAC,UAAU,EAAE,QAAQ;IAOzC,OAAO,CAAC,oBAAoB;IAoE5B,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,0BAA0B;CAoBnC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routerGuards.d.ts","sourceRoot":"","sources":["../../src/service/routerGuards.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAGxE,qBACa,mBAAoB,SAAQ,oBAAoB;IAC3D,SAAS,CAAC,cAAc,CAAC,MAAM,EAAE,UAAU;
|
|
1
|
+
{"version":3,"file":"routerGuards.d.ts","sourceRoot":"","sources":["../../src/service/routerGuards.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAGxE,qBACa,mBAAoB,SAAQ,oBAAoB;IAC3D,SAAS,CAAC,cAAc,CAAC,MAAM,EAAE,UAAU;IAwE3C,OAAO,CAAC,cAAc;YAcR,aAAa;YAiBb,gBAAgB;CAuB/B"}
|
package/dist/types/pageMeta.d.ts
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { VNodeChild } from 'vue';
|
|
2
|
+
import type { IFormMeta } from 'zova-module-a-openapi';
|
|
3
|
+
import type { IRouteViewRouteItem, IRouteViewTabCurrent } from './routerView.js';
|
|
2
4
|
export interface IPageMeta {
|
|
3
5
|
pageTitle?: string;
|
|
4
6
|
pageDirty?: boolean;
|
|
5
7
|
formMeta?: IFormMeta;
|
|
8
|
+
onCustomRender?: (tabItem: IRouteViewRouteItem) => VNodeChild;
|
|
9
|
+
onCustomRenderIsolate?: (tabCurrent: IRouteViewTabCurrent) => VNodeChild;
|
|
6
10
|
}
|
|
7
11
|
//# sourceMappingURL=pageMeta.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pageMeta.d.ts","sourceRoot":"","sources":["../../src/types/pageMeta.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"pageMeta.d.ts","sourceRoot":"","sources":["../../src/types/pageMeta.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACtC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAEjF,MAAM,WAAW,SAAS;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,mBAAmB,KAAK,UAAU,CAAC;IAC9D,qBAAqB,CAAC,EAAE,CAAC,UAAU,EAAE,oBAAoB,KAAK,UAAU,CAAC;CAC1E"}
|
|
@@ -10,6 +10,10 @@ export interface IRouteViewRouteItem extends IRouteViewRouteItemBase {
|
|
|
10
10
|
updatedAt: number;
|
|
11
11
|
pageMeta?: IPageMeta;
|
|
12
12
|
}
|
|
13
|
+
export interface IRouteViewTabCurrent {
|
|
14
|
+
tabKey: string;
|
|
15
|
+
items?: IRouteViewRouteItem[];
|
|
16
|
+
}
|
|
13
17
|
export interface IRouteViewRouteMeta extends IRouteViewRouteItemBase {
|
|
14
18
|
tabKey: string;
|
|
15
19
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routerView.d.ts","sourceRoot":"","sources":["../../src/types/routerView.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,KAAK,CAAC;AAErD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE/C,MAAM,WAAW,uBAAuB;IACtC,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,mBAAoB,SAAQ,uBAAuB;IAClE,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,MAAM,WAAW,mBAAoB,SAAQ,uBAAuB;IAClE,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,yBAAyB,CAAC;IACrC,KAAK,EAAE,6BAA6B,CAAC;CACtC"}
|
|
1
|
+
{"version":3,"file":"routerView.d.ts","sourceRoot":"","sources":["../../src/types/routerView.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,KAAK,CAAC;AAErD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE/C,MAAM,WAAW,uBAAuB;IACtC,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,mBAAoB,SAAQ,uBAAuB;IAClE,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,mBAAmB,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,mBAAoB,SAAQ,uBAAuB;IAClE,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,yBAAyB,CAAC;IACrC,KAAK,EAAE,6BAA6B,CAAC;CACtC"}
|
package/package.json
CHANGED
package/src/bean/bean.router.ts
CHANGED
|
@@ -6,9 +6,10 @@ import type {
|
|
|
6
6
|
RouterOptions,
|
|
7
7
|
} from '@cabloy/vue-router';
|
|
8
8
|
|
|
9
|
-
import { BeanBase,
|
|
9
|
+
import { BeanBase, Use } from 'zova';
|
|
10
10
|
import { Bean } from 'zova-module-a-bean';
|
|
11
11
|
|
|
12
|
+
import { RouterGuardDisposers } from '../lib/routerGuardDisposers.js';
|
|
12
13
|
import { BeanRouterViewBase } from '../lib/routerViewBase.js';
|
|
13
14
|
import { ModelPageData } from '../model/pageData.js';
|
|
14
15
|
import { IPageMeta } from '../types/pageMeta.js';
|
|
@@ -30,7 +31,7 @@ export interface BeanRouter extends Omit<
|
|
|
30
31
|
@Bean()
|
|
31
32
|
export class BeanRouter extends BeanBase {
|
|
32
33
|
private _vueRouterApp: Router;
|
|
33
|
-
private
|
|
34
|
+
private _routerGuardDisposers = new RouterGuardDisposers();
|
|
34
35
|
private _routerViews: BeanRouterViewBase[] = [];
|
|
35
36
|
private _disposed = false;
|
|
36
37
|
|
|
@@ -65,16 +66,9 @@ export class BeanRouter extends BeanBase {
|
|
|
65
66
|
}
|
|
66
67
|
|
|
67
68
|
public dispose() {
|
|
68
|
-
this.__dispose__();
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
protected __dispose__() {
|
|
72
69
|
if (this._disposed) return;
|
|
73
70
|
this._disposed = true;
|
|
74
|
-
|
|
75
|
-
fn();
|
|
76
|
-
}
|
|
77
|
-
this._eventRouterGuards = [];
|
|
71
|
+
this._routerGuardDisposers.dispose();
|
|
78
72
|
this._routerViews = [];
|
|
79
73
|
const router = this._vueRouterApp as Router & {
|
|
80
74
|
__prepareNavigation?: (to: unknown) => Promise<void> | void;
|
|
@@ -82,6 +76,11 @@ export class BeanRouter extends BeanBase {
|
|
|
82
76
|
if (router) router.__prepareNavigation = undefined;
|
|
83
77
|
}
|
|
84
78
|
|
|
79
|
+
protected __dispose__() {
|
|
80
|
+
// Router instances can be borrowed through page host providers. Their
|
|
81
|
+
// creator explicitly calls dispose() when the router itself is finished.
|
|
82
|
+
}
|
|
83
|
+
|
|
85
84
|
protected __get__(prop: string) {
|
|
86
85
|
// SymbolRouter first
|
|
87
86
|
const value = this._vueRouterApp?.[prop];
|
|
@@ -140,27 +139,19 @@ export class BeanRouter extends BeanBase {
|
|
|
140
139
|
}
|
|
141
140
|
|
|
142
141
|
beforeEach(guard: NavigationGuardWithThis<undefined>): () => void {
|
|
143
|
-
|
|
144
|
-
this._eventRouterGuards.push(fn);
|
|
145
|
-
return fn;
|
|
142
|
+
return this._routerGuardDisposers.add(this._vueRouterApp.beforeEach(guard));
|
|
146
143
|
}
|
|
147
144
|
|
|
148
145
|
beforeResolve(guard: NavigationGuardWithThis<undefined>): () => void {
|
|
149
|
-
|
|
150
|
-
this._eventRouterGuards.push(fn);
|
|
151
|
-
return fn;
|
|
146
|
+
return this._routerGuardDisposers.add(this._vueRouterApp.beforeResolve(guard));
|
|
152
147
|
}
|
|
153
148
|
|
|
154
149
|
afterEach(guard: NavigationHookAfter): () => void {
|
|
155
|
-
|
|
156
|
-
this._eventRouterGuards.push(fn);
|
|
157
|
-
return fn;
|
|
150
|
+
return this._routerGuardDisposers.add(this._vueRouterApp.afterEach(guard));
|
|
158
151
|
}
|
|
159
152
|
|
|
160
153
|
onError(handler: TypeErrorListener): () => void {
|
|
161
|
-
|
|
162
|
-
this._eventRouterGuards.push(fn);
|
|
163
|
-
return fn;
|
|
154
|
+
return this._routerGuardDisposers.add(this._vueRouterApp.onError(handler));
|
|
164
155
|
}
|
|
165
156
|
|
|
166
157
|
setPageMeta(route: RouteLocationNormalizedLoadedGeneric, pageMeta: IPageMeta) {
|
package/src/bean/sys.router.ts
CHANGED
|
@@ -388,6 +388,7 @@ export class SysRouter extends BeanBase {
|
|
|
388
388
|
routeData = {
|
|
389
389
|
name: routeNameParent,
|
|
390
390
|
path,
|
|
391
|
+
...(route.alias ? { alias: route.alias } : {}),
|
|
391
392
|
component: this.createAsyncComponent(layout as any),
|
|
392
393
|
children: [{ ...route, name, path: '', component, meta }],
|
|
393
394
|
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export class RouterGuardDisposers {
|
|
2
|
+
private _disposers: (() => void)[] = [];
|
|
3
|
+
private _disposed = false;
|
|
4
|
+
|
|
5
|
+
add(disposer: () => void) {
|
|
6
|
+
this._disposers.push(disposer);
|
|
7
|
+
return disposer;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
dispose() {
|
|
11
|
+
if (this._disposed) return;
|
|
12
|
+
this._disposed = true;
|
|
13
|
+
const disposers = this._disposers;
|
|
14
|
+
this._disposers = [];
|
|
15
|
+
for (const disposer of disposers) {
|
|
16
|
+
disposer();
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
package/src/monkey.ts
CHANGED
|
@@ -99,6 +99,7 @@ export class Monkey
|
|
|
99
99
|
if (this.serviceRouterGuards) {
|
|
100
100
|
this.serviceRouterGuards.dispose();
|
|
101
101
|
}
|
|
102
|
+
this._beanRouter?.dispose();
|
|
102
103
|
}
|
|
103
104
|
|
|
104
105
|
async appReady() {
|
|
@@ -190,8 +191,6 @@ export class Monkey
|
|
|
190
191
|
// check if changed
|
|
191
192
|
const changed = !controller.$route || controller.$route.fullPath !== route.fullPath;
|
|
192
193
|
if (!changed) return;
|
|
193
|
-
controller.$route = route;
|
|
194
|
-
controller.$routeMatched = routeMatched;
|
|
195
194
|
// update $params/$query
|
|
196
195
|
const routeName = getRealRouteName(routeMatched.name);
|
|
197
196
|
const schemaKey = routeName || String(routeMatched.path);
|
|
@@ -205,7 +204,23 @@ export class Monkey
|
|
|
205
204
|
// do nothing
|
|
206
205
|
return;
|
|
207
206
|
}
|
|
208
|
-
const module = this.app.meta.module.get(moduleInfo.relativeName)
|
|
207
|
+
const module = this.app.meta.module.get(moduleInfo.relativeName, false);
|
|
208
|
+
if (!module) {
|
|
209
|
+
void this.app.meta.module
|
|
210
|
+
.use(moduleInfo.relativeName)
|
|
211
|
+
.then(() => {
|
|
212
|
+
if (cast(controller).ctx.disposed) return;
|
|
213
|
+
const currentRoute = getPageRoute(cast<ZovaContext>(cast(controller).ctx));
|
|
214
|
+
if (!currentRoute || currentRoute.fullPath !== route.fullPath) return;
|
|
215
|
+
this._initControllerRoute(currentRoute, controller);
|
|
216
|
+
})
|
|
217
|
+
.catch(err => {
|
|
218
|
+
console.error('failed to load route module', moduleInfo.relativeName, err);
|
|
219
|
+
});
|
|
220
|
+
return;
|
|
221
|
+
}
|
|
222
|
+
controller.$route = route;
|
|
223
|
+
controller.$routeMatched = routeMatched;
|
|
209
224
|
if (routeName) {
|
|
210
225
|
schemas = module.resource.pageNameSchemas?.[schemaKey];
|
|
211
226
|
} else {
|
|
@@ -12,9 +12,18 @@ export class ServiceRouterGuards extends BeanRouterGuardsBase {
|
|
|
12
12
|
const self = this;
|
|
13
13
|
router.beforeEach(async to => {
|
|
14
14
|
// match path
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
const aliasMatch = to.matched.find(item => item.aliasOf);
|
|
16
|
+
let match = aliasMatch;
|
|
17
|
+
if (aliasMatch) {
|
|
18
|
+
match = aliasMatch.aliasOf;
|
|
19
|
+
// A path-config alias can initially resolve to a componentless placeholder
|
|
20
|
+
// before its module registers the real layout route. Reload the same path
|
|
21
|
+
// after loading so the router resolves the newly registered component.
|
|
22
|
+
if (!match?.components || Object.keys(match.components).length === 0) {
|
|
23
|
+
const resLoadModule = await this._forceLoadModule(router, match?.name, match?.path);
|
|
24
|
+
if (resLoadModule && resLoadModule !== true) return resLoadModule;
|
|
25
|
+
return to.fullPath;
|
|
26
|
+
}
|
|
18
27
|
} else {
|
|
19
28
|
match = to.matched[to.matched.length - 1];
|
|
20
29
|
// prepareCheck
|
package/src/types/pageMeta.ts
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { VNodeChild } from 'vue';
|
|
2
|
+
import type { IFormMeta } from 'zova-module-a-openapi';
|
|
3
|
+
|
|
4
|
+
import type { IRouteViewRouteItem, IRouteViewTabCurrent } from './routerView.js';
|
|
2
5
|
|
|
3
6
|
export interface IPageMeta {
|
|
4
7
|
pageTitle?: string;
|
|
5
8
|
pageDirty?: boolean;
|
|
6
9
|
formMeta?: IFormMeta;
|
|
10
|
+
onCustomRender?: (tabItem: IRouteViewRouteItem) => VNodeChild;
|
|
11
|
+
onCustomRenderIsolate?: (tabCurrent: IRouteViewTabCurrent) => VNodeChild;
|
|
7
12
|
}
|
package/src/types/routerView.ts
CHANGED
|
@@ -14,6 +14,11 @@ export interface IRouteViewRouteItem extends IRouteViewRouteItemBase {
|
|
|
14
14
|
pageMeta?: IPageMeta;
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
+
export interface IRouteViewTabCurrent {
|
|
18
|
+
tabKey: string;
|
|
19
|
+
items?: IRouteViewRouteItem[];
|
|
20
|
+
}
|
|
21
|
+
|
|
17
22
|
export interface IRouteViewRouteMeta extends IRouteViewRouteItemBase {
|
|
18
23
|
tabKey: string;
|
|
19
24
|
}
|