zova-module-a-router 5.1.39 → 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.
@@ -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 _eventRouterGuards;
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,EAAqB,MAAM,MAAM,CAAC;AAGnD,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,kBAAkB,CAAsB;IAChD,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;IAId,SAAS,CAAC,WAAW;IAcrB,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;IAMjE,aAAa,CAAC,KAAK,EAAE,uBAAuB,CAAC,SAAS,CAAC,GAAG,MAAM,IAAI;IAMpE,SAAS,CAAC,KAAK,EAAE,mBAAmB,GAAG,MAAM,IAAI;IAMjD,OAAO,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,IAAI;IAM/C,WAAW,CAAC,KAAK,EAAE,oCAAoC,EAAE,QAAQ,EAAE,SAAS;CAK7E"}
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;CA+EvB"}
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._eventRouterGuards = [];
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
- for (const fn of this._eventRouterGuards) fn();
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
- const fn = this._vueRouterApp.beforeEach(guard);
453
- this._eventRouterGuards.push(fn);
454
- return fn;
469
+ return this._routerGuardDisposers.add(this._vueRouterApp.beforeEach(guard));
455
470
  }
456
471
  beforeResolve(guard) {
457
- const fn = this._vueRouterApp.beforeResolve(guard);
458
- this._eventRouterGuards.push(fn);
459
- return fn;
472
+ return this._routerGuardDisposers.add(this._vueRouterApp.beforeResolve(guard));
460
473
  }
461
474
  afterEach(guard) {
462
- const fn = this._vueRouterApp.afterEach(guard);
463
- this._eventRouterGuards.push(fn);
464
- return fn;
475
+ return this._routerGuardDisposers.add(this._vueRouterApp.afterEach(guard));
465
476
  }
466
477
  onError(handler) {
467
- const fn = this._vueRouterApp.onError(handler);
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
- let match = to.matched.find((item) => item.aliasOf);
533
- if (match) match = match.aliasOf;
534
- else {
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();
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 // 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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"}
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,7 @@
1
+ export declare class RouterGuardDisposers {
2
+ private _disposers;
3
+ private _disposed;
4
+ add(disposer: () => void): () => void;
5
+ dispose(): void;
6
+ }
7
+ //# sourceMappingURL=routerGuardDisposers.d.ts.map
@@ -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"}
@@ -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;IAMV,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
+ {"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;IA+D3C,OAAO,CAAC,cAAc;YAcR,aAAa;YAiBb,gBAAgB;CAuB/B"}
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"}
@@ -1,7 +1,11 @@
1
- import { IFormMeta } from 'zova-module-a-openapi';
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;AAElD,MAAM,WAAW,SAAS;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB"}
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
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "zova-module-a-router",
3
- "version": "5.1.39",
4
- "gitHead": "e7537a01ee6754f79ce5e790e76521a283cadcb0",
3
+ "version": "5.1.40",
4
+ "gitHead": "fa2e21535d7220ab079e8ba9028266d9aa6f5a98",
5
5
  "description": "router",
6
6
  "keywords": [
7
7
  "Zova Module"
@@ -6,9 +6,10 @@ import type {
6
6
  RouterOptions,
7
7
  } from '@cabloy/vue-router';
8
8
 
9
- import { BeanBase, TypeEventOff, Use } from 'zova';
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 _eventRouterGuards: TypeEventOff[] = [];
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
- for (const fn of this._eventRouterGuards) {
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
- const fn = this._vueRouterApp.beforeEach(guard);
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
- const fn = this._vueRouterApp.beforeResolve(guard);
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
- const fn = this._vueRouterApp.afterEach(guard);
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
- const fn = this._vueRouterApp.onError(handler);
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) {
@@ -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() {
@@ -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
- let match = to.matched.find(item => item.aliasOf);
16
- if (match) {
17
- match = match.aliasOf;
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
@@ -1,7 +1,12 @@
1
- import { IFormMeta } from 'zova-module-a-openapi';
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
  }
@@ -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
  }