cabloy 5.1.41 → 5.1.42

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.
Files changed (112) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/package.json +4 -1
  3. package/scripts/init.ts +12 -10
  4. package/scripts/upgrade.ts +12 -13
  5. package/vona/packages-vona/vona/package.json +1 -1
  6. package/vona/pnpm-lock.yaml +82 -338
  7. package/vona/src/suite/cabloy-basic/modules/basic-siteadmin/src/bean/ssrSite.admin.ts +2 -2
  8. package/vona/src/suite/cabloy-basic/modules/basic-siteweb/package.json +53 -0
  9. package/vona/src/suite/cabloy-basic/modules/basic-siteweb/src/.metadata/index.ts +87 -0
  10. package/vona/src/suite/cabloy-basic/modules/basic-siteweb/src/.metadata/locales.ts +18 -0
  11. package/vona/src/suite/cabloy-basic/modules/basic-siteweb/src/.metadata/this.ts +2 -0
  12. package/vona/src/suite/cabloy-basic/modules/basic-siteweb/src/bean/ssrMenu.home.ts +26 -0
  13. package/vona/src/suite/cabloy-basic/modules/basic-siteweb/src/bean/ssrSite.web.ts +26 -0
  14. package/vona/src/suite/cabloy-basic/modules/basic-siteweb/src/config/locale/en-us.ts +3 -0
  15. package/vona/src/suite/cabloy-basic/modules/basic-siteweb/src/config/locale/zh-cn.ts +3 -0
  16. package/vona/src/suite/cabloy-basic/modules/basic-siteweb/src/index.ts +2 -0
  17. package/vona/src/suite/cabloy-basic/modules/basic-siteweb/tsconfig.build.json +11 -0
  18. package/vona/src/suite/cabloy-basic/modules/basic-siteweb/tsconfig.json +7 -0
  19. package/vona/src/suite/cabloy-basic/package.json +1 -0
  20. package/vona/src/suite/cabloy-basic/tsconfig.json +3 -0
  21. package/vona/src/suite-vendor/a-cabloy/modules/a-ssr/package.json +1 -1
  22. package/vona/src/suite-vendor/a-cabloy/modules/a-ssr/src/types/ssrMenu.ts +0 -13
  23. package/vona/src/suite-vendor/a-cabloy/package.json +1 -1
  24. package/vona/src/suite-vendor/a-vona/modules/a-menu/package.json +1 -1
  25. package/vona/src/suite-vendor/a-vona/modules/a-menu/src/types/menu.ts +12 -2
  26. package/vona/src/suite-vendor/a-vona/package.json +1 -1
  27. package/zova/env/.env +1 -1
  28. package/zova/env/.env.cabloyBasicWeb +1 -1
  29. package/zova/package.original.json +6 -1
  30. package/zova/pnpm-lock.yaml +42 -12
  31. package/zova/src/front/config/config/config.cabloyBasicAdmin.ts +14 -0
  32. package/zova/src/front/config/config/config.cabloyBasicWeb.ts +17 -0
  33. package/zova/src/front/config/config/config.ts +3 -3
  34. package/zova/src/suite/a-demo/modules/demo-basic/package.json +1 -14
  35. package/zova/src/suite/a-demo/modules/demo-basic/src/.metadata/index.ts +0 -50
  36. package/zova/src/suite/a-home/modules/home-base/src/.metadata/index.ts +17 -2
  37. package/zova/src/suite/a-home/modules/home-base/src/config/locale/en-us.ts +2 -0
  38. package/zova/src/suite/a-home/modules/home-base/src/config/locale/zh-cn.ts +2 -0
  39. package/zova/src/suite/a-home/modules/home-base/src/lib/utils.ts +13 -1
  40. package/zova/src/suite/a-home/modules/home-base/src/service/locale.ts +11 -0
  41. package/zova/src/suite/a-home/modules/home-base/src/service/routerGuards.ts +13 -0
  42. package/zova/src/suite/a-home/modules/{home-index → home-indexadmin}/package.json +1 -1
  43. package/zova/src/suite/a-home/modules/home-indexadmin/src/.metadata/index.ts +75 -0
  44. package/zova/src/suite/a-home/modules/home-indexadmin/src/.metadata/page/dashboard.ts +9 -0
  45. package/zova/src/suite/a-home/modules/home-indexadmin/src/.metadata/this.ts +2 -0
  46. package/zova/src/suite/a-home/modules/home-indexadmin/src/page/dashboard/controller.tsx +23 -0
  47. package/zova/src/suite/a-home/modules/home-indexadmin/src/routes.ts +8 -0
  48. package/zova/src/suite/a-home/modules/home-indexweb/package.json +52 -0
  49. package/zova/src/suite/a-home/modules/{home-index → home-indexweb}/src/.metadata/index.ts +9 -9
  50. package/zova/src/suite/a-home/modules/home-indexweb/src/.metadata/this.ts +2 -0
  51. package/zova/src/suite/a-home/modules/home-indexweb/src/index.ts +1 -0
  52. package/zova/src/suite/a-home/modules/{home-index → home-indexweb}/src/page/home/controller.tsx +2 -0
  53. package/zova/src/suite/a-home/modules/home-indexweb/src/routes.ts +15 -0
  54. package/zova/src/suite/a-home/modules/{home-layouttabs → home-layoutadmin}/package.json +2 -2
  55. package/zova/src/suite/a-home/modules/home-layoutadmin/src/.metadata/component/layoutAdmin.ts +44 -0
  56. package/zova/src/suite/a-home/modules/home-layoutadmin/src/.metadata/index.ts +249 -0
  57. package/zova/src/suite/a-home/modules/home-layoutadmin/src/.metadata/locales.ts +22 -0
  58. package/zova/src/suite/a-home/modules/home-layoutadmin/src/.metadata/this.ts +2 -0
  59. package/zova/src/suite/a-home/modules/{home-layouttabs/src/component/layoutTabs → home-layoutadmin/src/component/layoutAdmin}/controller.tsx +6 -3
  60. package/zova/src/suite/a-home/modules/home-layoutadmin/src/component/layoutAdmin/render.content.tsx +14 -0
  61. package/zova/src/suite/a-home/modules/{home-layouttabs/src/component/layoutTabs → home-layoutadmin/src/component/layoutAdmin}/render.header.tsx +2 -2
  62. package/zova/src/suite/a-home/modules/{home-layouttabs/src/component/layoutTabs → home-layoutadmin/src/component/layoutAdmin}/render.locale.tsx +10 -19
  63. package/zova/src/suite/a-home/modules/{home-layouttabs/src/component/layoutTabs → home-layoutadmin/src/component/layoutAdmin}/render.sidebar.tsx +2 -2
  64. package/zova/src/suite/a-home/modules/{home-layouttabs/src/component/layoutTabs → home-layoutadmin/src/component/layoutAdmin}/render.tabs.tsx +33 -29
  65. package/zova/src/suite/a-home/modules/{home-layouttabs/src/component/layoutTabs → home-layoutadmin/src/component/layoutAdmin}/render.theme.tsx +19 -12
  66. package/zova/src/suite/a-home/modules/{home-layouttabs/src/component/layoutTabs → home-layoutadmin/src/component/layoutAdmin}/render.tsx +1 -1
  67. package/zova/src/suite/a-home/modules/{home-layouttabs/src/component/layoutTabs → home-layoutadmin/src/component/layoutAdmin}/render.user.tsx +3 -1
  68. package/zova/src/suite/a-home/modules/{home-layouttabs/src/component/layoutTabs → home-layoutadmin/src/component/layoutAdmin}/style.ts +1 -1
  69. package/zova/src/suite/a-home/modules/{home-layouttabs → home-layoutadmin}/src/config/locale/en-us.ts +1 -0
  70. package/zova/src/suite/a-home/modules/{home-layouttabs → home-layoutadmin}/src/config/locale/zh-cn.ts +1 -0
  71. package/zova/src/suite/a-home/modules/home-layoutadmin/tsconfig.build.json +13 -0
  72. package/zova/src/suite/a-home/modules/home-layoutadmin/tsconfig.json +5 -0
  73. package/zova/src/suite/a-home/modules/home-layoutweb/package.json +52 -0
  74. package/zova/src/suite/a-home/modules/home-layoutweb/src/.metadata/component/layoutWeb.ts +39 -0
  75. package/zova/src/suite/a-home/modules/home-layoutweb/src/.metadata/index.ts +200 -0
  76. package/zova/src/suite/a-home/modules/{home-layouttabs → home-layoutweb}/src/.metadata/locales.ts +1 -1
  77. package/zova/src/suite/a-home/modules/home-layoutweb/src/.metadata/this.ts +2 -0
  78. package/zova/src/suite/a-home/modules/home-layoutweb/src/component/layoutWeb/controller.tsx +112 -0
  79. package/zova/src/suite/a-home/modules/{home-layouttabs/src/component/layoutTabs → home-layoutweb/src/component/layoutWeb}/render.content.tsx +2 -2
  80. package/zova/src/suite/a-home/modules/home-layoutweb/src/component/layoutWeb/render.header.tsx +39 -0
  81. package/zova/src/suite/a-home/modules/home-layoutweb/src/component/layoutWeb/render.locale.tsx +50 -0
  82. package/zova/src/suite/a-home/modules/home-layoutweb/src/component/layoutWeb/render.tabs.tsx +95 -0
  83. package/zova/src/suite/a-home/modules/home-layoutweb/src/component/layoutWeb/render.theme.tsx +98 -0
  84. package/zova/src/suite/a-home/modules/home-layoutweb/src/component/layoutWeb/render.tsx +39 -0
  85. package/zova/src/suite/a-home/modules/home-layoutweb/src/config/config.ts +20 -0
  86. package/zova/src/suite/a-home/modules/home-layoutweb/src/config/locale/en-us.ts +10 -0
  87. package/zova/src/suite/a-home/modules/home-layoutweb/src/config/locale/zh-cn.ts +10 -0
  88. package/zova/src/suite/a-home/modules/home-layoutweb/src/index.ts +2 -0
  89. package/zova/src/suite/a-home/modules/home-layoutweb/src/model/layout.ts +27 -0
  90. package/zova/src/suite/a-home/modules/home-layoutweb/src/model/menu.ts +115 -0
  91. package/zova/src/suite/a-home/modules/home-layoutweb/tsconfig.build.json +13 -0
  92. package/zova/src/suite/a-home/modules/home-layoutweb/tsconfig.json +5 -0
  93. package/zova/src/suite/a-home/modules/home-passport/src/model/passport.ts +1 -1
  94. package/zova/src/suite/a-home/package.json +4 -2
  95. package/zova/src/suite/a-demo/modules/demo-basic/src/bean/aop.home.tsx +0 -23
  96. package/zova/src/suite/a-demo/modules/demo-basic/src/bean/aop.home3.tsx +0 -14
  97. package/zova/src/suite/a-home/modules/home-index/src/.metadata/this.ts +0 -2
  98. package/zova/src/suite/a-home/modules/home-index/src/routes.ts +0 -8
  99. package/zova/src/suite/a-home/modules/home-layouttabs/src/.metadata/component/layoutTabs.ts +0 -44
  100. package/zova/src/suite/a-home/modules/home-layouttabs/src/.metadata/index.ts +0 -249
  101. package/zova/src/suite/a-home/modules/home-layouttabs/src/.metadata/this.ts +0 -2
  102. /package/zova/src/suite/a-home/modules/{home-index → home-indexadmin}/src/index.ts +0 -0
  103. /package/zova/src/suite/a-home/modules/{home-index → home-indexadmin}/tsconfig.build.json +0 -0
  104. /package/zova/src/suite/a-home/modules/{home-index → home-indexadmin}/tsconfig.json +0 -0
  105. /package/zova/src/suite/a-home/modules/{home-index → home-indexweb}/src/.metadata/page/home.ts +0 -0
  106. /package/zova/src/suite/a-home/modules/{home-layouttabs → home-indexweb}/tsconfig.build.json +0 -0
  107. /package/zova/src/suite/a-home/modules/{home-layouttabs → home-indexweb}/tsconfig.json +0 -0
  108. /package/zova/src/suite/a-home/modules/{home-layouttabs/src/component/layoutTabs → home-layoutadmin/src/component/layoutAdmin}/render.menu.tsx +0 -0
  109. /package/zova/src/suite/a-home/modules/{home-layouttabs → home-layoutadmin}/src/config/config.ts +0 -0
  110. /package/zova/src/suite/a-home/modules/{home-layouttabs → home-layoutadmin}/src/index.ts +0 -0
  111. /package/zova/src/suite/a-home/modules/{home-layouttabs → home-layoutadmin}/src/model/layout.ts +0 -0
  112. /package/zova/src/suite/a-home/modules/{home-layouttabs → home-layoutadmin}/src/model/menu.ts +0 -0
@@ -0,0 +1,249 @@
1
+ // eslint-disable
2
+ /** model: begin */
3
+ export * from '../model/layout.js';
4
+ export * from '../model/menu.js';
5
+ import { IModelOptionsLayout } from '../model/layout.js';
6
+ import { IModelOptionsMenu } from '../model/menu.js';
7
+ import 'zova-module-a-model';
8
+ declare module 'zova-module-a-model' {
9
+
10
+ export interface IModelRecord {
11
+ 'home-layoutadmin:layout': IModelOptionsLayout;
12
+ 'home-layoutadmin:menu': IModelOptionsMenu;
13
+ }
14
+
15
+
16
+ }
17
+ declare module 'zova-module-home-layoutadmin' {
18
+
19
+ export interface ModelLayout {
20
+ /** @internal */
21
+ get scope(): ScopeModuleHomeLayoutadmin;
22
+ }
23
+
24
+ export interface ModelLayout {
25
+ get $beanFullName(): 'home-layoutadmin.model.layout';
26
+ get $onionName(): 'home-layoutadmin:layout';
27
+ get $onionOptions(): IModelOptionsLayout;
28
+ }
29
+
30
+ export interface ModelMenu {
31
+ /** @internal */
32
+ get scope(): ScopeModuleHomeLayoutadmin;
33
+ }
34
+
35
+ export interface ModelMenu {
36
+ get $beanFullName(): 'home-layoutadmin.model.menu';
37
+ get $onionName(): 'home-layoutadmin:menu';
38
+ get $onionOptions(): IModelOptionsMenu;
39
+ }
40
+ }
41
+ /** model: end */
42
+ /** model: begin */
43
+ import { ModelLayout } from '../model/layout.js';
44
+ import { ModelMenu } from '../model/menu.js';
45
+ import 'zova';
46
+ declare module 'zova' {
47
+ export interface IBeanRecordGeneral {
48
+ 'home-layoutadmin.model.layout': ModelLayout;
49
+ 'home-layoutadmin.model.menu': ModelMenu;
50
+ }
51
+ }
52
+ /** model: end */
53
+ /** controller: begin */
54
+ export * from '../component/layoutAdmin/controller.jsx';
55
+
56
+ import 'zova';
57
+ declare module 'zova' {
58
+
59
+
60
+ }
61
+ declare module 'zova-module-home-layoutadmin' {
62
+
63
+ export interface ControllerLayoutAdmin {
64
+ /** @internal */
65
+ get scope(): ScopeModuleHomeLayoutadmin;
66
+ }
67
+ }
68
+ /** controller: end */
69
+ /** controller: begin */
70
+ import { ControllerLayoutAdmin } from '../component/layoutAdmin/controller.jsx';
71
+ import 'zova';
72
+ declare module 'zova' {
73
+ export interface IBeanRecordLocal {
74
+ 'home-layoutadmin.controller.layoutAdmin': ControllerLayoutAdmin;
75
+ }
76
+ }
77
+ /** controller: end */
78
+
79
+ /** components: begin */
80
+ export * from './component/layoutAdmin.js';
81
+ import { ZLayoutAdmin } from './component/layoutAdmin.js';
82
+ export const components = {
83
+ 'layoutAdmin': ZLayoutAdmin,
84
+ };
85
+ import 'zova';
86
+ declare module 'zova' {
87
+ export interface IComponentRecord {
88
+ 'home-layoutadmin:layoutAdmin': ControllerLayoutAdmin;
89
+ }
90
+ export interface IZovaComponentRecord {
91
+ 'home-layoutadmin:layoutAdmin': typeof ZLayoutAdmin;
92
+ }
93
+ }
94
+ /** components: end */
95
+ /** render: begin */
96
+ export * from '../component/layoutAdmin/render.content.jsx';
97
+ export * from '../component/layoutAdmin/render.header.jsx';
98
+ export * from '../component/layoutAdmin/render.locale.jsx';
99
+ export * from '../component/layoutAdmin/render.menu.jsx';
100
+ export * from '../component/layoutAdmin/render.sidebar.jsx';
101
+ export * from '../component/layoutAdmin/render.tabs.jsx';
102
+ export * from '../component/layoutAdmin/render.theme.jsx';
103
+ export * from '../component/layoutAdmin/render.jsx';
104
+ export * from '../component/layoutAdmin/render.user.jsx';
105
+
106
+ import 'zova';
107
+ declare module 'zova' {
108
+
109
+
110
+ }
111
+ declare module 'zova-module-home-layoutadmin' {
112
+
113
+ export interface RenderContent {
114
+ /** @internal */
115
+ get scope(): ScopeModuleHomeLayoutadmin;
116
+ }
117
+
118
+ export interface RenderHeader {
119
+ /** @internal */
120
+ get scope(): ScopeModuleHomeLayoutadmin;
121
+ }
122
+
123
+ export interface RenderLocale {
124
+ /** @internal */
125
+ get scope(): ScopeModuleHomeLayoutadmin;
126
+ }
127
+
128
+ export interface RenderMenu {
129
+ /** @internal */
130
+ get scope(): ScopeModuleHomeLayoutadmin;
131
+ }
132
+
133
+ export interface RenderSidebar {
134
+ /** @internal */
135
+ get scope(): ScopeModuleHomeLayoutadmin;
136
+ }
137
+
138
+ export interface RenderTabs {
139
+ /** @internal */
140
+ get scope(): ScopeModuleHomeLayoutadmin;
141
+ }
142
+
143
+ export interface RenderTheme {
144
+ /** @internal */
145
+ get scope(): ScopeModuleHomeLayoutadmin;
146
+ }
147
+
148
+ export interface RenderLayoutAdmin {
149
+ /** @internal */
150
+ get scope(): ScopeModuleHomeLayoutadmin;
151
+ }
152
+
153
+ export interface RenderUser {
154
+ /** @internal */
155
+ get scope(): ScopeModuleHomeLayoutadmin;
156
+ }
157
+ }
158
+ /** render: end */
159
+ /** render: begin */
160
+ import { RenderContent } from '../component/layoutAdmin/render.content.jsx';
161
+ import { RenderHeader } from '../component/layoutAdmin/render.header.jsx';
162
+ import { RenderLocale } from '../component/layoutAdmin/render.locale.jsx';
163
+ import { RenderMenu } from '../component/layoutAdmin/render.menu.jsx';
164
+ import { RenderSidebar } from '../component/layoutAdmin/render.sidebar.jsx';
165
+ import { RenderTabs } from '../component/layoutAdmin/render.tabs.jsx';
166
+ import { RenderTheme } from '../component/layoutAdmin/render.theme.jsx';
167
+ import { RenderLayoutAdmin } from '../component/layoutAdmin/render.jsx';
168
+ import { RenderUser } from '../component/layoutAdmin/render.user.jsx';
169
+ import 'zova';
170
+ declare module 'zova' {
171
+ export interface IBeanRecordLocal {
172
+ 'home-layoutadmin.render.content': RenderContent;
173
+ 'home-layoutadmin.render.header': RenderHeader;
174
+ 'home-layoutadmin.render.locale': RenderLocale;
175
+ 'home-layoutadmin.render.menu': RenderMenu;
176
+ 'home-layoutadmin.render.sidebar': RenderSidebar;
177
+ 'home-layoutadmin.render.tabs': RenderTabs;
178
+ 'home-layoutadmin.render.theme': RenderTheme;
179
+ 'home-layoutadmin.render.layoutAdmin': RenderLayoutAdmin;
180
+ 'home-layoutadmin.render.user': RenderUser;
181
+ }
182
+ }
183
+ /** render: end */
184
+ /** style: begin */
185
+ export * from '../component/layoutAdmin/style.js';
186
+
187
+ import 'zova';
188
+ declare module 'zova' {
189
+
190
+
191
+ }
192
+ declare module 'zova-module-home-layoutadmin' {
193
+
194
+ export interface StyleLayoutAdmin {
195
+ /** @internal */
196
+ get scope(): ScopeModuleHomeLayoutadmin;
197
+ }
198
+ }
199
+ /** style: end */
200
+ /** style: begin */
201
+ import { StyleLayoutAdmin } from '../component/layoutAdmin/style.js';
202
+ import 'zova';
203
+ declare module 'zova' {
204
+ export interface IBeanRecordLocal {
205
+ 'home-layoutadmin.style.layoutAdmin': StyleLayoutAdmin;
206
+ }
207
+ }
208
+ /** style: end */
209
+ /** config: begin */
210
+ export * from '../config/config.js';
211
+ import { config } from '../config/config.js';
212
+ /** config: end */
213
+ /** locale: begin */
214
+ import { locales } from './locales.js';
215
+ /** locale: end */
216
+ /** scope: begin */
217
+ import { BeanScopeBase, type BeanScopeUtil, TypeModuleConfig, TypeModuleLocales, TypeLocaleBase } from 'zova';
218
+ import { Scope } from 'zova-module-a-bean';
219
+
220
+ @Scope()
221
+ export class ScopeModuleHomeLayoutadmin extends BeanScopeBase {}
222
+
223
+ export interface ScopeModuleHomeLayoutadmin {
224
+ util: BeanScopeUtil;
225
+ config: TypeModuleConfig<typeof config>;
226
+ locale: TypeModuleLocales<(typeof locales)[TypeLocaleBase]>;
227
+ }
228
+
229
+ import 'zova';
230
+ declare module 'zova' {
231
+ export interface IBeanScopeRecord {
232
+ 'home-layoutadmin': ScopeModuleHomeLayoutadmin;
233
+ }
234
+
235
+ export interface IBeanScopeConfig {
236
+ 'home-layoutadmin': ReturnType<typeof config>;
237
+ }
238
+
239
+ export interface IBeanScopeLocale {
240
+ 'home-layoutadmin': (typeof locales)[TypeLocaleBase];
241
+ }
242
+
243
+
244
+ }
245
+
246
+ export function locale<K extends keyof (typeof locales)[TypeLocaleBase]>(key: K): `home-layoutadmin::${K}` {
247
+ return `home-layoutadmin::${key}`;
248
+ }
249
+ /** scope: end */
@@ -0,0 +1,22 @@
1
+ import type { TypeLocaleBase } from 'zova';
2
+
3
+ import { useApp, useComputed } from 'zova';
4
+
5
+ import locale_en_us from '../config/locale/en-us.js';
6
+ import locale_zh_cn from '../config/locale/zh-cn.js';
7
+
8
+ export const locales = {
9
+ 'en-us': locale_en_us,
10
+ 'zh-cn': locale_zh_cn,
11
+ };
12
+
13
+ export function $useLocale<K extends keyof (typeof locales)[TypeLocaleBase]>(
14
+ key: K,
15
+ ...args: any[]
16
+ ) {
17
+ const app = useApp();
18
+ const str = `home-layoutadmin::${key}`;
19
+ return useComputed(() => {
20
+ return app.meta.text(str, ...args);
21
+ });
22
+ }
@@ -0,0 +1,2 @@
1
+ export const __ThisModule__ = 'home-layoutadmin';
2
+ export { ScopeModuleHomeLayoutadmin as ScopeModule } from './index.js';
@@ -3,15 +3,15 @@ import type { ModelTabs, ModelTabsOptions } from 'zova-module-a-routertabs';
3
3
  import { BeanControllerBase, Use } from 'zova';
4
4
  import { Controller } from 'zova-module-a-bean';
5
5
  import { $QueryAutoLoad } from 'zova-module-a-model';
6
- import { IServiceSsrLayoutOptions, ServiceSsrLayout } from 'zova-module-home-base';
6
+ import { IServiceSsrLayoutOptions, ServiceLocale, ServiceSsrLayout } from 'zova-module-home-base';
7
7
 
8
8
  import { ModelLayout } from '../../model/layout.js';
9
9
  import { ModelMenu } from '../../model/menu.js';
10
10
 
11
- export interface ControllerLayoutTabsProps {}
11
+ export interface ControllerLayoutAdminProps {}
12
12
 
13
13
  @Controller()
14
- export class ControllerLayoutTabs extends BeanControllerBase {
14
+ export class ControllerLayoutAdmin extends BeanControllerBase {
15
15
  static $propsDefault = {};
16
16
 
17
17
  $$modelTabs: ModelTabs;
@@ -25,6 +25,9 @@ export class ControllerLayoutTabs extends BeanControllerBase {
25
25
  @Use({ init: { arg: { sidebarLeftOpenPC: true } as IServiceSsrLayoutOptions } })
26
26
  $$serviceSsrLayout: ServiceSsrLayout;
27
27
 
28
+ @Use()
29
+ $$serviceLocale: ServiceLocale;
30
+
28
31
  leftDrawerOpen: boolean;
29
32
  leftDrawerOpenMobile: boolean = false;
30
33
  belowBreakpoint: boolean;
@@ -0,0 +1,14 @@
1
+ import { BeanRenderBase, Use } from 'zova';
2
+ import { Render } from 'zova-module-a-bean';
3
+
4
+ import type { RenderLayoutAdmin } from './render.jsx';
5
+
6
+ @Render()
7
+ export class RenderContent extends BeanRenderBase {
8
+ @Use()
9
+ $$r: RenderLayoutAdmin;
10
+
11
+ public render() {
12
+ return this.$$r.$$renderTabs._renderRouterViewTabs();
13
+ }
14
+ }
@@ -1,12 +1,12 @@
1
1
  import { BeanRenderBase, Use } from 'zova';
2
2
  import { Render } from 'zova-module-a-bean';
3
3
 
4
- import type { RenderLayoutTabs } from './render.jsx';
4
+ import type { RenderLayoutAdmin } from './render.jsx';
5
5
 
6
6
  @Render()
7
7
  export class RenderHeader extends BeanRenderBase {
8
8
  @Use()
9
- $$r: RenderLayoutTabs;
9
+ $$r: RenderLayoutAdmin;
10
10
 
11
11
  public render() {
12
12
  return (
@@ -1,39 +1,30 @@
1
1
  import { BeanRenderBase, ClientOnly } from 'zova';
2
2
  import { Render } from 'zova-module-a-bean';
3
3
  import { $icon } from 'zova-module-a-icon';
4
+ import { closeNearestDetails } from 'zova-module-home-base';
4
5
 
5
6
  @Render()
6
7
  export class RenderLocale extends BeanRenderBase {
7
8
  public render() {
8
- const locales = [
9
- {
10
- name: 'en-us',
11
- title: this.scope.locale.LanguageEnglish(),
12
- },
13
- {
14
- name: 'zh-cn',
15
- title: this.scope.locale.LanguageChinese(),
16
- },
17
- ];
9
+ const locales = this.sys.config.locale.items;
18
10
  return (
19
11
  <li>
20
12
  <details>
21
13
  <summary>{$icon('::language', 24)}</summary>
22
14
  <ClientOnly>
23
15
  <ul class="bg-base-100 rounded-t-none p-2 w-48">
24
- {locales.map(item => {
16
+ {Object.keys(locales).map(key => {
17
+ const title = this.$scopeBase.locale[locales[key]]();
25
18
  return (
26
- <li
27
- key={item.name}
28
- class={this.app.meta.locale.current === item.name ? 'disabled' : ''}
29
- >
19
+ <li key={key} class={this.app.meta.locale.current === key ? 'disabled' : ''}>
30
20
  <a
31
- onClick={() => {
32
- this.app.meta.locale.current = item.name as any;
21
+ onClick={event => {
22
+ this.$$serviceLocale.setLocale(key as any);
23
+ closeNearestDetails(event);
33
24
  }}
34
25
  >
35
- {$icon(this.app.meta.locale.current === item.name ? '::done' : '::none', 24)}
36
- {item.title}
26
+ {$icon(this.app.meta.locale.current === key ? '::done' : '::none', 24)}
27
+ {title}
37
28
  </a>
38
29
  </li>
39
30
  );
@@ -1,12 +1,12 @@
1
1
  import { BeanRenderBase, Use } from 'zova';
2
2
  import { Render } from 'zova-module-a-bean';
3
3
 
4
- import type { RenderLayoutTabs } from './render.jsx';
4
+ import type { RenderLayoutAdmin } from './render.jsx';
5
5
 
6
6
  @Render()
7
7
  export class RenderSidebar extends BeanRenderBase {
8
8
  @Use()
9
- $$r: RenderLayoutTabs;
9
+ $$r: RenderLayoutAdmin;
10
10
 
11
11
  public render() {
12
12
  return (
@@ -14,35 +14,7 @@ export class RenderTabs extends BeanRenderBase {
14
14
  if (!$$modelTabs) return;
15
15
  const domTabs: VNode[] = [];
16
16
  for (const tab of $$modelTabs.tabs) {
17
- const { tabKey, info } = tab;
18
- const className = tabKey === $$modelTabs.tabKeyCurrent ? 'tab-active text-primary' : '';
19
- const titleLocale = this.$text(info?.title || '');
20
- const tabIcon = this.getTabIcon(tab);
21
- const domTab = (
22
- <a
23
- key={tabKey}
24
- role="tab"
25
- class={`tab ${className} ${this.cTab}`}
26
- onClick={() => {
27
- $$modelTabs.activeTab(tabKey);
28
- }}
29
- >
30
- {!!tabIcon && <ZIcon name={tabIcon as any} width="24" height="24"></ZIcon>}
31
- {titleLocale}
32
- {!tab.affix && (
33
- <ZIcon
34
- class="tab-close hidden hover:bg-slate-400 rounded-sm"
35
- name="::close"
36
- width="16"
37
- height="16"
38
- nativeOnClick={withModifiers(() => {
39
- $$modelTabs.deleteTab(tabKey);
40
- }, ['stop'])}
41
- ></ZIcon>
42
- )}
43
- </a>
44
- );
45
- domTabs.push(domTab);
17
+ domTabs.push(this._renderTab(tab));
46
18
  }
47
19
  const domWrapper = (
48
20
  <div role="tablist" class="tabs tabs-lifted">
@@ -53,6 +25,38 @@ export class RenderTabs extends BeanRenderBase {
53
25
  return <ClientOnly>{domWrapper}</ClientOnly>;
54
26
  }
55
27
 
28
+ private _renderTab(tab: RouteTab) {
29
+ const $$modelTabs = this.$$modelTabs;
30
+ const { tabKey, info } = tab;
31
+ const className = tabKey === $$modelTabs.tabKeyCurrent ? 'tab-active text-primary' : '';
32
+ const titleLocale = this.$text(info?.title || '');
33
+ const tabIcon = this.getTabIcon(tab);
34
+ return (
35
+ <a
36
+ key={tabKey}
37
+ role="tab"
38
+ class={`tab ${className} ${this.cTab}`}
39
+ onClick={() => {
40
+ $$modelTabs.activeTab(tabKey);
41
+ }}
42
+ >
43
+ {!!tabIcon && <ZIcon name={tabIcon as any} width="24" height="24"></ZIcon>}
44
+ {titleLocale}
45
+ {!tab.affix && (
46
+ <ZIcon
47
+ class="tab-close hidden hover:bg-slate-400 rounded-sm"
48
+ name="::close"
49
+ width="16"
50
+ height="16"
51
+ nativeOnClick={withModifiers(() => {
52
+ $$modelTabs.deleteTab(tabKey);
53
+ }, ['stop'])}
54
+ ></ZIcon>
55
+ )}
56
+ </a>
57
+ );
58
+ }
59
+
56
60
  public renderTabItems() {
57
61
  const $$modelTabs = this.$$modelTabs;
58
62
  if (!$$modelTabs) return;
@@ -3,6 +3,7 @@ import type { IThemeRecord } from 'zova-module-a-style';
3
3
  import { BeanRenderBase, ClientOnly } from 'zova';
4
4
  import { Render } from 'zova-module-a-bean';
5
5
  import { $icon } from 'zova-module-a-icon';
6
+ import { closeNearestDetails } from 'zova-module-home-base';
6
7
 
7
8
  @Render()
8
9
  export class RenderTheme extends BeanRenderBase {
@@ -34,8 +35,9 @@ export class RenderTheme extends BeanRenderBase {
34
35
  class={this.$theme.darkMode === item.mode ? 'disabled' : ''}
35
36
  >
36
37
  <a
37
- onClick={() => {
38
+ onClick={event => {
38
39
  this.$theme.darkMode = item.mode as any;
40
+ closeNearestDetails(event);
39
41
  }}
40
42
  >
41
43
  {$icon(this.$theme.darkMode === item.mode ? '::done' : '::none', 24)}
@@ -52,16 +54,7 @@ export class RenderTheme extends BeanRenderBase {
52
54
  }
53
55
 
54
56
  renderThemeName() {
55
- const themes = [
56
- {
57
- name: 'home-theme:default' satisfies keyof IThemeRecord,
58
- title: this.scope.locale.ThemeDefault(),
59
- },
60
- {
61
- name: 'home-theme:orange' satisfies keyof IThemeRecord,
62
- title: this.scope.locale.ThemeOrange(),
63
- },
64
- ];
57
+ const themes = this.getThemeNames();
65
58
  return (
66
59
  <li>
67
60
  <details>
@@ -72,8 +65,9 @@ export class RenderTheme extends BeanRenderBase {
72
65
  return (
73
66
  <li key={item.name} class={this.$theme.name === item.name ? 'disabled' : ''}>
74
67
  <a
75
- onClick={() => {
68
+ onClick={event => {
76
69
  this.$theme.name = item.name as keyof IThemeRecord;
70
+ closeNearestDetails(event);
77
71
  }}
78
72
  >
79
73
  {$icon(this.$theme.name === item.name ? '::done' : '::none', 24)}
@@ -88,4 +82,17 @@ export class RenderTheme extends BeanRenderBase {
88
82
  </li>
89
83
  );
90
84
  }
85
+
86
+ getThemeNames() {
87
+ return [
88
+ {
89
+ name: 'home-theme:orange' satisfies keyof IThemeRecord,
90
+ title: this.scope.locale.ThemeOrange(),
91
+ },
92
+ {
93
+ name: 'home-theme:default' satisfies keyof IThemeRecord,
94
+ title: this.scope.locale.ThemeBlue(),
95
+ },
96
+ ];
97
+ }
91
98
  }
@@ -12,7 +12,7 @@ import { RenderTheme } from './render.theme.jsx';
12
12
  import { RenderUser } from './render.user.jsx';
13
13
 
14
14
  @Render()
15
- export class RenderLayoutTabs extends BeanRenderBase {
15
+ export class RenderLayoutAdmin extends BeanRenderBase {
16
16
  @Use()
17
17
  $$renderHeader: RenderHeader;
18
18
 
@@ -1,6 +1,7 @@
1
1
  import { BeanRenderBase } from 'zova';
2
2
  import { Render } from 'zova-module-a-bean';
3
3
  import { $icon } from 'zova-module-a-icon';
4
+ import { closeNearestDetails } from 'zova-module-home-base';
4
5
 
5
6
  @Render()
6
7
  export class RenderUser extends BeanRenderBase {
@@ -15,8 +16,9 @@ export class RenderUser extends BeanRenderBase {
15
16
  <ul class="bg-base-100 rounded-t-none p-2 w-32">
16
17
  <li>
17
18
  <a
18
- onClick={() => {
19
+ onClick={event => {
19
20
  this.$passport.logout().mutate();
21
+ closeNearestDetails(event);
20
22
  }}
21
23
  >
22
24
  {this.scope.locale.Logout()}
@@ -2,7 +2,7 @@ import { BeanStyleBase } from 'zova';
2
2
  import { Style } from 'zova-module-a-bean';
3
3
 
4
4
  @Style()
5
- export class StyleLayoutTabs extends BeanStyleBase {
5
+ export class StyleLayoutAdmin extends BeanStyleBase {
6
6
  cTab: string;
7
7
 
8
8
  protected async __init__() {
@@ -8,6 +8,7 @@ export default {
8
8
  'ThemeAuto': 'Auto',
9
9
  'ThemeDefault': 'Default',
10
10
  'ThemeOrange': 'Orange',
11
+ 'ThemeBlue': 'Blue',
11
12
  'Basic': 'Basic',
12
13
  'Business': 'Business',
13
14
  'State': 'State',
@@ -8,6 +8,7 @@ export default {
8
8
  'ThemeAuto': '自动',
9
9
  'ThemeDefault': '默认',
10
10
  'ThemeOrange': '橘色',
11
+ 'ThemeBlue': '蓝色',
11
12
  'Basic': '基础',
12
13
  'Business': '业务',
13
14
  'State': '状态',
@@ -0,0 +1,13 @@
1
+ {
2
+ "extends": "../../tsconfig.base",
3
+ "compilerOptions": {
4
+ "rootDir": "src",
5
+ "outDir": "dist",
6
+ "declaration": true,
7
+ "declarationMap": true,
8
+ "emitDeclarationOnly": true,
9
+ "allowImportingTsExtensions": true,
10
+ "noEmit": false
11
+ },
12
+ "include": ["src", "src/.metadata/**/*"]
13
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "extends": "../../tsconfig.base",
3
+ "compilerOptions": {},
4
+ "include": ["src", "src/.metadata/**/*"]
5
+ }
@@ -0,0 +1,52 @@
1
+ {
2
+ "name": "zova-module-home-layoutweb",
3
+ "version": "5.0.0",
4
+ "description": "",
5
+ "keywords": [
6
+ "Zova Module"
7
+ ],
8
+ "author": "",
9
+ "files": [
10
+ "mock",
11
+ "dist",
12
+ "src",
13
+ "icons",
14
+ "assets"
15
+ ],
16
+ "type": "module",
17
+ "exports": {
18
+ ".": {
19
+ "types": [
20
+ "./src/index.ts",
21
+ "./dist/index.d.ts"
22
+ ],
23
+ "import": "./src/index.ts",
24
+ "default": "./dist/index.js"
25
+ },
26
+ "./*": "./*"
27
+ },
28
+ "scripts": {
29
+ "clean": "rimraf dist tsconfig.build.tsbuildinfo",
30
+ "tsc:publish": "npm run clean && zova :bin:buildModule --sourcemap && tsc -p tsconfig.build.json",
31
+ "prepublishOnly": "npm run tsc:publish",
32
+ "prepack": "clean-package",
33
+ "postpack": "clean-package restore && npm run clean"
34
+ },
35
+ "dependencies": {},
36
+ "devDependencies": {
37
+ "clean-package": "^2.2.0",
38
+ "rimraf": "^6.1.3"
39
+ },
40
+ "clean-package": {
41
+ "indent": 2,
42
+ "replace": {
43
+ "exports.\\..types": "./dist/index.d.ts"
44
+ },
45
+ "remove": [
46
+ "clean-package",
47
+ "devDependencies",
48
+ "exports.\\..import"
49
+ ]
50
+ },
51
+ "title": "home-layoutweb"
52
+ }