zova-module-a-router 5.1.31 → 5.1.32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -589,13 +589,26 @@ var Monkey = class extends BeanSimple {
589
589
  constructor(...args) {
590
590
  super(...args);
591
591
  this._beanRouter = void 0;
592
+ this._sysRouter = void 0;
592
593
  this.serviceRouterGuards = void 0;
593
594
  }
595
+ async _getSysRouter() {
596
+ if (!this._sysRouter) this._sysRouter = await this.sys.bean._getBean("a-router.sys.router", false);
597
+ return this._sysRouter;
598
+ }
594
599
  async getBeanRouter() {
595
600
  if (!this._beanRouter) this._beanRouter = this.app.meta.$router = await this.bean._getBean("a-router.bean.router", true, true);
596
601
  return this._beanRouter;
597
602
  }
598
603
  async appInitialize() {
604
+ const ssrState = this.ctx.meta.$ssr.state;
605
+ if (process.env.SERVER && (ssrState.ssrProfile === void 0 || ssrState.ssrProfileOptions === void 0)) {
606
+ const pagePathFull = this.app.$getCurrentPagePath();
607
+ if (pagePathFull) {
608
+ const route = await (await this._getSysRouter()).resolveRoute(pagePathFull, true, false);
609
+ if (route) this.ctx.meta.$ssr._setProfile(route.meta.ssrProfile, route.meta.ssrProfileOptions);
610
+ }
611
+ }
599
612
  this.serviceRouterGuards = await this.bean._newBean(ServiceRouterGuards, false);
600
613
  if (process.env.CLIENT) this._ssrErrorHandler();
601
614
  }
@@ -729,7 +742,7 @@ var MonkeySys = class extends BeanSimple {
729
742
  this._moduleSelf = moduleSelf;
730
743
  }
731
744
  async getSysRouter() {
732
- if (!this._sysRouter) this._sysRouter = await this.bean._getBean("a-router.sys.router", false);
745
+ if (!this._sysRouter) this._sysRouter = await this.sys.bean._getBean("a-router.sys.router", false);
733
746
  return this._sysRouter;
734
747
  }
735
748
  async moduleLoading(module) {
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","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","_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 } 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 }\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 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 const pagePath = this.sys.util.getPagePathFromAbsoluteUrl(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 }\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 _initializerDefineProperty(this, \"$$sysRouter\", _descriptor, this);\n _initializerDefineProperty(this, \"$$modelPageData\", _descriptor2, this);\n }\n // for prepare pageData on server\n\n get router() {\n return this._vueRouterApp;\n }\n __dispose__() {\n for (const fn of this._eventRouterGuards) {\n fn();\n }\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__(mainRouter) {\n // create router\n this._vueRouterApp = this.$$sysRouter.createRouter();\n if (!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 }\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 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 });\n cast(vnode).zovaHostProviders = { [pageRouteKey]: component.route };\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 = { [pageRouteKey]: component.route };\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.serviceRouterGuards = void 0;\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 // router\n this.serviceRouterGuards = await this.bean._newBean(ServiceRouterGuards, false);\n // ssr errorHandler\n if (process.env.CLIENT) {\n this._ssrErrorHandler();\n }\n }\n async appInitialized() {\n const beanRouter = await this.getBeanRouter();\n // emit event\n await this.app.meta.event.emit('a-router:routerGuards', beanRouter);\n }\n appClose() {\n if (this.serviceRouterGuards) {\n this.serviceRouterGuards.dispose();\n }\n }\n async appReady() {\n const beanRouter = await this.getBeanRouter();\n // pagePath\n if (process.env.CLIENT && this.ctx.meta.$ssr.isRuntimeSsrPreHydration) {\n const pagePathFull = this.ctx.meta.$ssr.state.pagePathFull;\n if (pagePathFull) {\n const routerHistory = beanRouter.router[SymbolRouterHistory];\n routerHistory.push(pagePathFull);\n }\n }\n // use router\n this.app.vue.use(beanRouter);\n // ssr\n if (process.env.SERVER) {\n // push\n const pagePath = this.app.$getCurrentPagePath();\n beanRouter.push(pagePath);\n await beanRouter.isReady();\n } else if (process.env.CLIENT && this.ctx.meta.$ssr.isRuntimeSsrPreHydration) {\n await beanRouter.isReady();\n }\n }\n async beanInit(bean, beanInstance) {\n bean.defineProperty(beanInstance, '$router', {\n enumerable: false,\n configurable: true,\n get() {\n return bean._getBeanFromHost('a-router.bean.router');\n }\n });\n bean.defineProperty(beanInstance, '$routerView', {\n enumerable: false,\n configurable: true,\n get() {\n return bean._getBeanFromHost({\n name: routerViewKey\n });\n }\n });\n bean.defineProperty(beanInstance, '$pageRoute', {\n enumerable: false,\n configurable: true,\n get() {\n return useComputed(() => {\n return getPageRoute(cast(bean).ctx);\n });\n }\n });\n bean.defineProperty(beanInstance, '$currentRoute', {\n enumerable: false,\n configurable: true,\n get() {\n return useComputed(() => {\n return getCurrentRoute(cast(bean).ctx);\n });\n }\n });\n }\n controllerDataPrepare(controllerData, ctx) {\n controllerData.context.route = getPageRoute(ctx);\n }\n controllerDataInit(controllerData, controller) {\n // only for controller page\n if (!(controller instanceof BeanControllerPageBase)) return;\n const route = controllerData.context.route;\n this._initControllerRoute(route, controller);\n }\n controllerDataUpdate(controller) {\n // only for controller page\n if (!(controller instanceof BeanControllerPageBase)) return;\n const route = getPageRoute(cast(cast(controller).ctx));\n this._initControllerRoute(route, controller);\n }\n _initControllerRoute(route, controller) {\n if (!route) return;\n const routeMatched = getRouteMatched(route);\n if (!routeMatched) return;\n // check if the same\n if (controller.$routeMatched && !this._checkIfRouteSame(routeMatched, controller.$routeMatched)) return;\n // check if changed\n const changed = !controller.$route || controller.$route.fullPath !== route.fullPath;\n if (!changed) return;\n controller.$route = route;\n controller.$routeMatched = routeMatched;\n // update $params/$query\n const routeName = getRealRouteName(routeMatched.name);\n const schemaKey = routeName || String(routeMatched.path);\n let schemas;\n const moduleInfo = ModuleInfo.parseInfo(ModuleInfo.parseName(schemaKey));\n if (!moduleInfo) {\n // do nothing\n return;\n }\n if (!this.app.meta.module.exists(moduleInfo.relativeName)) {\n // do nothing\n return;\n }\n const module = this.app.meta.module.get(moduleInfo.relativeName);\n if (routeName) {\n schemas = module.resource.pageNameSchemas?.[schemaKey];\n } else {\n schemas = module.resource.pagePathSchemas?.[schemaKey];\n }\n if (schemas?.params) {\n const params = schemas.params.parse(route.params);\n if (!controller.$params) {\n controller.$params = process.env.SERVER ? params : shallowReactive(params);\n } else {\n // hold the same $params ref\n Object.assign(controller.$params, params);\n }\n }\n if (schemas?.query) {\n const query = schemas.query.parse(route.query);\n if (!controller.$query) {\n controller.$query = process.env.SERVER ? query : shallowReactive(query);\n } else {\n // hold the same $query ref\n Object.assign(controller.$query, query);\n }\n }\n }\n _checkIfRouteSame(route1, route2) {\n return route1.name && route1.name === route2.name || route1.path === route2.path;\n }\n _ssrErrorHandler() {\n if (!process.env.CLIENT) return;\n this.app.meta.event.on('app:errorHandler', (data, next) => {\n 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}","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.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 = returnTo === app.sys.env.ROUTER_PAGE_LOGIN ? undefined : 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 if (!returnTo && cast(app.meta.$router.currentRoute)?.path === app.sys.env.ROUTER_PAGE_LOGIN) {\n return;\n }\n const returnTo2 = returnTo ?? app.$getCurrentPagePath();\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}","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 */\nimport { ModelPageData } from '../model/pageData.js';\nimport 'zova';\n/** model: end */\n/** sys: begin */\nexport * from '../bean/sys.router.js';\nimport 'zova';\n/** sys: end */\n/** sys: begin */\nimport { SysRouter } from '../bean/sys.router.js';\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 */\nimport { BeanRouter } from '../bean/bean.router.js';\nimport 'zova';\n/** bean: end */\n/** service: begin */\nexport * from '../service/routerGuards.js';\nimport 'zova-module-a-bean';\n/** service: end */\n/** service: begin */\nimport { ServiceRouterGuards } from '../service/routerGuards.js';\nimport 'zova';\n/** service: end */\n/** controller: begin */\nexport * from '../component/routerViewEmpty/controller.jsx';\nimport 'zova';\n/** controller: end */\n/** controller: begin */\nimport { ControllerRouterViewEmpty } from '../component/routerViewEmpty/controller.jsx';\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","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","_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 } 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 }\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 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 const pagePath = this.sys.util.getPagePathFromAbsoluteUrl(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 }\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 _initializerDefineProperty(this, \"$$sysRouter\", _descriptor, this);\n _initializerDefineProperty(this, \"$$modelPageData\", _descriptor2, this);\n }\n // for prepare pageData on server\n\n get router() {\n return this._vueRouterApp;\n }\n __dispose__() {\n for (const fn of this._eventRouterGuards) {\n fn();\n }\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__(mainRouter) {\n // create router\n this._vueRouterApp = this.$$sysRouter.createRouter();\n if (!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 }\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 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 });\n cast(vnode).zovaHostProviders = { [pageRouteKey]: component.route };\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 = { [pageRouteKey]: component.route };\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 const ssrState = this.ctx.meta.$ssr.state;\n if (process.env.SERVER && (ssrState.ssrProfile === undefined || ssrState.ssrProfileOptions === undefined)) {\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 this.ctx.meta.$ssr._setProfile(route.meta.ssrProfile, route.meta.ssrProfileOptions);\n }\n }\n }\n // router\n this.serviceRouterGuards = await this.bean._newBean(ServiceRouterGuards, false);\n // ssr errorHandler\n if (process.env.CLIENT) {\n this._ssrErrorHandler();\n }\n }\n async appInitialized() {\n const beanRouter = await this.getBeanRouter();\n // emit event\n await this.app.meta.event.emit('a-router:routerGuards', beanRouter);\n }\n appClose() {\n if (this.serviceRouterGuards) {\n this.serviceRouterGuards.dispose();\n }\n }\n async appReady() {\n const beanRouter = await this.getBeanRouter();\n // pagePath\n if (process.env.CLIENT && this.ctx.meta.$ssr.isRuntimeSsrPreHydration) {\n const pagePathFull = this.ctx.meta.$ssr.state.pagePathFull;\n if (pagePathFull) {\n const routerHistory = beanRouter.router[SymbolRouterHistory];\n routerHistory.push(pagePathFull);\n }\n }\n // use router\n this.app.vue.use(beanRouter);\n // ssr\n if (process.env.SERVER) {\n // push\n const pagePath = this.app.$getCurrentPagePath();\n beanRouter.push(pagePath);\n await beanRouter.isReady();\n } else if (process.env.CLIENT && this.ctx.meta.$ssr.isRuntimeSsrPreHydration) {\n await beanRouter.isReady();\n }\n }\n async beanInit(bean, beanInstance) {\n bean.defineProperty(beanInstance, '$router', {\n enumerable: false,\n configurable: true,\n get() {\n return bean._getBeanFromHost('a-router.bean.router');\n }\n });\n bean.defineProperty(beanInstance, '$routerView', {\n enumerable: false,\n configurable: true,\n get() {\n return bean._getBeanFromHost({\n name: routerViewKey\n });\n }\n });\n bean.defineProperty(beanInstance, '$pageRoute', {\n enumerable: false,\n configurable: true,\n get() {\n return useComputed(() => {\n return getPageRoute(cast(bean).ctx);\n });\n }\n });\n bean.defineProperty(beanInstance, '$currentRoute', {\n enumerable: false,\n configurable: true,\n get() {\n return useComputed(() => {\n return getCurrentRoute(cast(bean).ctx);\n });\n }\n });\n }\n controllerDataPrepare(controllerData, ctx) {\n controllerData.context.route = getPageRoute(ctx);\n }\n controllerDataInit(controllerData, controller) {\n // only for controller page\n if (!(controller instanceof BeanControllerPageBase)) return;\n const route = controllerData.context.route;\n this._initControllerRoute(route, controller);\n }\n controllerDataUpdate(controller) {\n // only for controller page\n if (!(controller instanceof BeanControllerPageBase)) return;\n const route = getPageRoute(cast(cast(controller).ctx));\n this._initControllerRoute(route, controller);\n }\n _initControllerRoute(route, controller) {\n if (!route) return;\n const routeMatched = getRouteMatched(route);\n if (!routeMatched) return;\n // check if the same\n if (controller.$routeMatched && !this._checkIfRouteSame(routeMatched, controller.$routeMatched)) return;\n // check if changed\n const changed = !controller.$route || controller.$route.fullPath !== route.fullPath;\n if (!changed) return;\n controller.$route = route;\n controller.$routeMatched = routeMatched;\n // update $params/$query\n const routeName = getRealRouteName(routeMatched.name);\n const schemaKey = routeName || String(routeMatched.path);\n let schemas;\n const moduleInfo = ModuleInfo.parseInfo(ModuleInfo.parseName(schemaKey));\n if (!moduleInfo) {\n // do nothing\n return;\n }\n if (!this.app.meta.module.exists(moduleInfo.relativeName)) {\n // do nothing\n return;\n }\n const module = this.app.meta.module.get(moduleInfo.relativeName);\n if (routeName) {\n schemas = module.resource.pageNameSchemas?.[schemaKey];\n } else {\n schemas = module.resource.pagePathSchemas?.[schemaKey];\n }\n if (schemas?.params) {\n const params = schemas.params.parse(route.params);\n if (!controller.$params) {\n controller.$params = process.env.SERVER ? params : shallowReactive(params);\n } else {\n // hold the same $params ref\n Object.assign(controller.$params, params);\n }\n }\n if (schemas?.query) {\n const query = schemas.query.parse(route.query);\n if (!controller.$query) {\n controller.$query = process.env.SERVER ? query : shallowReactive(query);\n } else {\n // hold the same $query ref\n Object.assign(controller.$query, query);\n }\n }\n }\n _checkIfRouteSame(route1, route2) {\n return route1.name && route1.name === route2.name || route1.path === route2.path;\n }\n _ssrErrorHandler() {\n if (!process.env.CLIENT) return;\n this.app.meta.event.on('app:errorHandler', (data, next) => {\n 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}","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 = returnTo === app.sys.env.ROUTER_PAGE_LOGIN ? undefined : 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 if (!returnTo && cast(app.meta.$router.currentRoute)?.path === app.sys.env.ROUTER_PAGE_LOGIN) {\n return;\n }\n const returnTo2 = returnTo ?? app.$getCurrentPagePath();\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}","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 */\nimport { ModelPageData } from '../model/pageData.js';\nimport 'zova';\n/** model: end */\n/** sys: begin */\nexport * from '../bean/sys.router.js';\nimport 'zova';\n/** sys: end */\n/** sys: begin */\nimport { SysRouter } from '../bean/sys.router.js';\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 */\nimport { BeanRouter } from '../bean/bean.router.js';\nimport 'zova';\n/** bean: end */\n/** service: begin */\nexport * from '../service/routerGuards.js';\nimport 'zova-module-a-bean';\n/** service: end */\n/** service: begin */\nimport { ServiceRouterGuards } from '../service/routerGuards.js';\nimport 'zova';\n/** service: end */\n/** controller: begin */\nexport * from '../component/routerViewEmpty/controller.jsx';\nimport 'zova';\n/** controller: end */\n/** controller: begin */\nimport { ControllerRouterViewEmpty } from '../component/routerViewEmpty/controller.jsx';\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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"}
package/dist/monkey.d.ts CHANGED
@@ -4,7 +4,9 @@ import type { BeanRouter } from './bean/bean.router.js';
4
4
  import { ServiceRouterGuards } from './service/routerGuards.js';
5
5
  export declare class Monkey extends BeanSimple implements IMonkeyAppInitialize, IMonkeyAppInitialized, IMonkeyAppReady, IMonkeyAppClose, IMonkeyBeanInit, IMonkeyController {
6
6
  private _beanRouter;
7
+ private _sysRouter;
7
8
  serviceRouterGuards: ServiceRouterGuards;
9
+ private _getSysRouter;
8
10
  getBeanRouter(): Promise<BeanRouter>;
9
11
  appInitialize(): Promise<void>;
10
12
  appInitialized(): Promise<void>;
@@ -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;AAKxD,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,mBAAmB,EAAE,mBAAmB,CAAC;IAEnC,aAAa;IAYb,aAAa;IASb,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;IAsD5B,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,gBAAgB;IASxB,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;IAuBb,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;IAsD5B,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,0BAA0B;CAoBnC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "zova-module-a-router",
3
- "version": "5.1.31",
4
- "gitHead": "1968aab5fdd054c1c58184e34fed8ea4368b09d2",
3
+ "version": "5.1.32",
4
+ "gitHead": "f431773baeff1b631f2ba56f657f0160e6dcbd5b",
5
5
  "description": "router",
6
6
  "keywords": [
7
7
  "Zova Module"
package/src/monkey.ts CHANGED
@@ -22,6 +22,7 @@ import { shallowReactive } from 'vue';
22
22
  import { BeanControllerPageBase, BeanSimple, cast, useComputed } from 'zova';
23
23
 
24
24
  import type { BeanRouter } from './bean/bean.router.js';
25
+ import type { SysRouter } from './bean/sys.router.js';
25
26
  import type { TypePageSchema } from './types/router.js';
26
27
 
27
28
  import { routerViewKey } from './lib/const.js';
@@ -40,8 +41,16 @@ export class Monkey
40
41
  IMonkeyController
41
42
  {
42
43
  private _beanRouter: BeanRouter;
44
+ private _sysRouter: SysRouter;
43
45
  serviceRouterGuards: ServiceRouterGuards;
44
46
 
47
+ private async _getSysRouter() {
48
+ if (!this._sysRouter) {
49
+ this._sysRouter = (await this.sys.bean._getBean('a-router.sys.router', false)) as SysRouter;
50
+ }
51
+ return this._sysRouter;
52
+ }
53
+
45
54
  async getBeanRouter() {
46
55
  if (!this._beanRouter) {
47
56
  // markReactive: true
@@ -55,6 +64,20 @@ export class Monkey
55
64
  }
56
65
 
57
66
  async appInitialize() {
67
+ const ssrState = this.ctx.meta.$ssr.state;
68
+ if (
69
+ process.env.SERVER &&
70
+ (ssrState.ssrProfile === undefined || ssrState.ssrProfileOptions === undefined)
71
+ ) {
72
+ const pagePathFull = this.app.$getCurrentPagePath();
73
+ if (pagePathFull) {
74
+ const sysRouter = await this._getSysRouter();
75
+ const route = await sysRouter.resolveRoute(pagePathFull, true, false);
76
+ if (route) {
77
+ this.ctx.meta.$ssr._setProfile(route.meta.ssrProfile, route.meta.ssrProfileOptions);
78
+ }
79
+ }
80
+ }
58
81
  // router
59
82
  this.serviceRouterGuards = await this.bean._newBean(ServiceRouterGuards, false);
60
83
  // ssr errorHandler
package/src/monkeySys.ts CHANGED
@@ -22,7 +22,7 @@ export class MonkeySys
22
22
 
23
23
  async getSysRouter() {
24
24
  if (!this._sysRouter) {
25
- this._sysRouter = (await this.bean._getBean('a-router.sys.router', false)) as SysRouter;
25
+ this._sysRouter = (await this.sys.bean._getBean('a-router.sys.router', false)) as SysRouter;
26
26
  }
27
27
  return this._sysRouter;
28
28
  }