cabloy 5.1.61 → 5.1.63
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/.claude/skills/cabloy-backend-scaffold/SKILL.md +2 -0
- package/.claude/skills/cabloy-backend-scaffold/references/follow-up-checklist.md +1 -1
- package/.claude/skills/cabloy-domain-planning/SKILL.md +212 -0
- package/.claude/skills/cabloy-frontend-scaffold/SKILL.md +2 -0
- package/CHANGELOG.md +55 -0
- package/CLAUDE.md +1 -0
- package/cabloy-docs/.vitepress/config.mjs +158 -12
- package/cabloy-docs/ai/docs-skills-rules-mapping.md +8 -0
- package/cabloy-docs/ai/future-skill-roadmap.md +2 -0
- package/cabloy-docs/ai/skills.md +1 -0
- package/cabloy-docs/backend/backend-contract-emission-output-inspection.md +189 -0
- package/cabloy-docs/backend/backend-contract-emission-source-reading-map.md +160 -0
- package/cabloy-docs/backend/backend-contract-emission-specimen.md +170 -0
- package/cabloy-docs/backend/backend-resource-module-contract-chain.md +323 -0
- package/cabloy-docs/backend/backend-source-reading-debug-checklist.md +173 -0
- package/cabloy-docs/backend/backend-source-reading-roadmap.md +129 -0
- package/cabloy-docs/backend/backend-source-reading-verify-playbook.md +166 -0
- package/cabloy-docs/backend/bean-scene-authoring.md +4 -4
- package/cabloy-docs/backend/broadcast-guide.md +3 -3
- package/cabloy-docs/backend/cli.md +20 -11
- package/cabloy-docs/backend/config-guide.md +4 -4
- package/cabloy-docs/backend/controller-aop-guide.md +10 -10
- package/cabloy-docs/backend/controller-guide.md +12 -2
- package/cabloy-docs/backend/crud-workflow.md +7 -3
- package/cabloy-docs/backend/dto-guide.md +12 -2
- package/cabloy-docs/backend/dto-infer-generation.md +201 -25
- package/cabloy-docs/backend/election-guide.md +2 -2
- package/cabloy-docs/backend/entity-guide.md +12 -3
- package/cabloy-docs/backend/error-guide.md +3 -3
- package/cabloy-docs/backend/event-guide.md +4 -4
- package/cabloy-docs/backend/external-aop-guide.md +2 -2
- package/cabloy-docs/backend/field-indexes.md +9 -3
- package/cabloy-docs/backend/foundation.md +8 -8
- package/cabloy-docs/backend/i18n-guide.md +6 -6
- package/cabloy-docs/backend/internal-aop-guide.md +2 -2
- package/cabloy-docs/backend/introduction.md +13 -0
- package/cabloy-docs/backend/migration-and-changes.md +3 -3
- package/cabloy-docs/backend/model-guide.md +16 -6
- package/cabloy-docs/backend/openapi-guide.md +3 -0
- package/cabloy-docs/backend/queue-guide.md +3 -3
- package/cabloy-docs/backend/redlock-guide.md +2 -2
- package/cabloy-docs/backend/schedule-guide.md +2 -2
- package/cabloy-docs/backend/scripts.md +8 -0
- package/cabloy-docs/backend/serialization-guide.md +2 -2
- package/cabloy-docs/backend/service-guide.md +18 -9
- package/cabloy-docs/backend/startup-guide.md +5 -5
- package/cabloy-docs/backend/status-guide.md +7 -7
- package/cabloy-docs/backend/unit-testing.md +3 -3
- package/cabloy-docs/backend/vona-source-reading-map.md +157 -0
- package/cabloy-docs/backend/websocket-protocol-guide.md +5 -5
- package/cabloy-docs/backend/websocket-usage-guide.md +15 -8
- package/cabloy-docs/frontend/a-model-under-the-hood.md +281 -0
- package/cabloy-docs/frontend/a-openapi-under-the-hood.md +248 -0
- package/cabloy-docs/frontend/a-router-guide.md +307 -0
- package/cabloy-docs/frontend/api-guide.md +4 -4
- package/cabloy-docs/frontend/api-schema-guide.md +1 -0
- package/cabloy-docs/frontend/app-startup-guide.md +7 -4
- package/cabloy-docs/frontend/bean-scene-authoring.md +1 -1
- package/cabloy-docs/frontend/behavior-guide.md +16 -16
- package/cabloy-docs/frontend/cli.md +5 -5
- package/cabloy-docs/frontend/command-scene-authoring.md +17 -8
- package/cabloy-docs/frontend/component-guide.md +5 -5
- package/cabloy-docs/frontend/component-props-guide.md +1 -1
- package/cabloy-docs/frontend/component-v-model-guide.md +2 -2
- package/cabloy-docs/frontend/filter-query-select-data-flow-guide.md +260 -0
- package/cabloy-docs/frontend/form-guide.md +27 -30
- package/cabloy-docs/frontend/form-scene-to-page-meta-guide.md +303 -0
- package/cabloy-docs/frontend/foundation.md +10 -6
- package/cabloy-docs/frontend/frontend-source-reading-roadmap.md +249 -0
- package/cabloy-docs/frontend/generated-contract-consumption-debug-checklist.md +190 -0
- package/cabloy-docs/frontend/generated-contract-consumption-entry-branch.md +205 -0
- package/cabloy-docs/frontend/generated-contract-consumption-list-branch.md +157 -0
- package/cabloy-docs/frontend/generated-contract-consumption-specimen.md +203 -0
- package/cabloy-docs/frontend/generated-contract-consumption-verify-playbook.md +189 -0
- package/cabloy-docs/frontend/generic-component-guide.md +1 -1
- package/cabloy-docs/frontend/introduction.md +29 -7
- package/cabloy-docs/frontend/model-architecture.md +38 -2
- package/cabloy-docs/frontend/model-resource-cookbook.md +11 -8
- package/cabloy-docs/frontend/model-resource-internals-deep-dive.md +238 -0
- package/cabloy-docs/frontend/model-resource-owner-pattern.md +22 -2
- package/cabloy-docs/frontend/model-resource-usage-guide.md +22 -6
- package/cabloy-docs/frontend/model-state-guide.md +12 -9
- package/cabloy-docs/frontend/module-scope.md +8 -8
- package/cabloy-docs/frontend/modules-and-suites.md +2 -1
- package/cabloy-docs/frontend/navigation-guards-guide.md +7 -0
- package/cabloy-docs/frontend/openapi-sdk-guide.md +12 -4
- package/cabloy-docs/frontend/page-guide.md +9 -9
- package/cabloy-docs/frontend/page-meta-guide.md +466 -0
- package/cabloy-docs/frontend/page-params-guide.md +3 -3
- package/cabloy-docs/frontend/page-query-guide.md +2 -2
- package/cabloy-docs/frontend/page-route-guide.md +6 -0
- package/cabloy-docs/frontend/permission-formscene-action-visibility-guide.md +263 -0
- package/cabloy-docs/frontend/quickstart.md +14 -2
- package/cabloy-docs/frontend/resource-entry-page-deep-dive.md +271 -0
- package/cabloy-docs/frontend/resource-list-page-deep-dive.md +279 -0
- package/cabloy-docs/frontend/rest-resource-source-reading-map.md +522 -0
- package/cabloy-docs/frontend/rest-resource-under-the-hood.md +622 -0
- package/cabloy-docs/frontend/root-behaviors-guide.md +282 -0
- package/cabloy-docs/frontend/route-alias-guide.md +6 -0
- package/cabloy-docs/frontend/router-stack-guide.md +229 -0
- package/cabloy-docs/frontend/router-tabs-introduction.md +26 -3
- package/cabloy-docs/frontend/router-tabs-layout-integration.md +367 -0
- package/cabloy-docs/frontend/router-tabs-mechanism.md +6 -0
- package/cabloy-docs/frontend/router-tabs-route-meta-cookbook.md +7 -0
- package/cabloy-docs/frontend/router-tabs-vs-stack.md +167 -0
- package/cabloy-docs/frontend/router-view-hosts-guide.md +450 -0
- package/cabloy-docs/frontend/server-data.md +2 -1
- package/cabloy-docs/frontend/system-startup-guide.md +2 -2
- package/cabloy-docs/frontend/table-action-visibility-permission-flow-guide.md +263 -0
- package/cabloy-docs/frontend/table-cell-cookbook.md +571 -0
- package/cabloy-docs/frontend/table-guide.md +373 -0
- package/cabloy-docs/frontend/table-resource-crud-cookbook.md +496 -0
- package/cabloy-docs/frontend/zova-app-guide.md +251 -0
- package/cabloy-docs/frontend/zova-form-source-reading-map.md +7 -9
- package/cabloy-docs/frontend/zova-form-under-the-hood.md +5 -0
- package/cabloy-docs/frontend/zova-router-under-the-hood.md +561 -0
- package/cabloy-docs/frontend/zova-source-reading-map.md +101 -7
- package/cabloy-docs/frontend/zova-table-controller-render-supplement.md +225 -0
- package/cabloy-docs/frontend/zova-table-source-reading-map.md +317 -0
- package/cabloy-docs/frontend/zova-table-under-the-hood.md +532 -0
- package/cabloy-docs/fullstack/backend-metadata-to-frontend-table-actions-debug-checklist.md +245 -0
- package/cabloy-docs/fullstack/backend-metadata-to-frontend-table-actions-source-reading-map.md +139 -0
- package/cabloy-docs/fullstack/backend-metadata-to-frontend-table-actions-verify-playbook.md +248 -0
- package/cabloy-docs/fullstack/backend-metadata-to-frontend-table-actions.md +511 -0
- package/cabloy-docs/fullstack/contract-loop-playbook.md +8 -2
- package/cabloy-docs/fullstack/edition-collaboration-differences.md +6 -0
- package/cabloy-docs/fullstack/frontend-metadata-to-backend.md +181 -48
- package/cabloy-docs/fullstack/introduction.md +3 -0
- package/cabloy-docs/fullstack/openapi-to-sdk.md +116 -2
- package/cabloy-docs/fullstack/suites-and-modules.md +333 -0
- package/cabloy-docs/fullstack/tutorial-1-first-module.md +3 -0
- package/cabloy-docs/fullstack/tutorial-2-first-crud.md +4 -0
- package/cabloy-docs/fullstack/tutorial-3-frontend-metadata-sharing.md +4 -0
- package/cabloy-docs/fullstack/tutorial-4-custom-level-renderers.md +31 -19
- package/cabloy-docs/fullstack/tutorial-5-backend-contract-sharing.md +5 -0
- package/cabloy-docs/fullstack/tutorial-6-one-contract-four-uses.md +4 -0
- package/cabloy-docs/fullstack/tutorials-overview.md +1 -1
- package/cabloy-docs/reference/bean-scene-boilerplates.md +13 -13
- package/cabloy-docs/reference/package-map.md +4 -3
- package/package.json +1 -1
- package/vona/pnpm-lock.yaml +22 -258
- package/vona/src/suite/a-training/modules/training-student/package.json +53 -0
- package/vona/src/suite/a-training/modules/training-student/src/.metadata/index.ts +400 -0
- package/vona/src/suite/a-training/modules/training-student/src/.metadata/locales.ts +18 -0
- package/vona/src/suite/a-training/modules/training-student/src/.metadata/this.ts +2 -0
- package/vona/src/suite/a-training/modules/training-student/src/bean/meta.index.ts +12 -0
- package/vona/src/suite/a-training/modules/training-student/src/bean/meta.version.ts +21 -0
- package/vona/src/suite/a-training/modules/training-student/src/bean/ssrMenu.student.ts +29 -0
- package/vona/src/suite/a-training/modules/training-student/src/config/locale/en-us.ts +15 -0
- package/vona/src/suite/a-training/modules/training-student/src/config/locale/zh-cn.ts +15 -0
- package/vona/src/suite/a-training/modules/training-student/src/controller/student.ts +74 -0
- package/vona/src/suite/a-training/modules/training-student/src/dto/studentCreate.tsx +28 -0
- package/vona/src/suite/a-training/modules/training-student/src/dto/studentSelectReq.tsx +44 -0
- package/vona/src/suite/a-training/modules/training-student/src/dto/studentSelectRes.tsx +11 -0
- package/vona/src/suite/a-training/modules/training-student/src/dto/studentSelectResItem.tsx +45 -0
- package/vona/src/suite/a-training/modules/training-student/src/dto/studentSummary.tsx +42 -0
- package/vona/src/suite/a-training/modules/training-student/src/dto/studentUpdate.tsx +28 -0
- package/vona/src/suite/a-training/modules/training-student/src/dto/studentView.tsx +25 -0
- package/vona/src/suite/a-training/modules/training-student/src/entity/student.tsx +84 -0
- package/vona/src/suite/a-training/modules/training-student/src/index.ts +2 -0
- package/vona/src/suite/a-training/modules/training-student/src/model/student.ts +10 -0
- package/vona/src/suite/a-training/modules/training-student/src/service/student.ts +57 -0
- package/vona/src/suite/a-training/modules/training-student/test/student.test.ts +173 -0
- package/vona/src/suite/a-training/modules/training-student/tsconfig.build.json +11 -0
- package/vona/src/suite/a-training/modules/training-student/tsconfig.json +7 -0
- package/vona/src/suite/a-training/package.json +12 -0
- package/vona/src/suite/a-training/tsconfig.base.json +4 -0
- package/vona/src/suite/a-training/tsconfig.json +10 -0
- package/zova/packages-zova/zova/package.json +2 -2
- package/zova/pnpm-lock.yaml +423 -682
- package/zova/src/suite/a-demo/modules/demo-basic/src/page/toolOne/render.tsx +5 -3
- package/zova/src/suite/a-home/modules/home-login/src/page/login/render.tsx +5 -3
- package/zova/src/suite/a-training/modules/training-student/cli/openapi.config.ts +9 -0
- package/zova/src/suite/a-training/modules/training-student/package.json +57 -0
- package/zova/src/suite/a-training/modules/training-student/src/.metadata/component/formFieldLevel.ts +31 -0
- package/zova/src/suite/a-training/modules/training-student/src/.metadata/index.ts +258 -0
- package/zova/src/suite/a-training/modules/training-student/src/.metadata/locales.ts +7 -0
- package/zova/src/suite/a-training/modules/training-student/src/.metadata/this.ts +2 -0
- package/zova/src/suite/a-training/modules/training-student/src/api/openapi/baseURL.ts +5 -0
- package/zova/src/suite/a-training/modules/training-student/src/api/openapi/index.ts +3 -0
- package/zova/src/suite/a-training/modules/training-student/src/api/openapi/schemas.ts +196 -0
- package/zova/src/suite/a-training/modules/training-student/src/api/openapi/types.ts +4146 -0
- package/zova/src/suite/a-training/modules/training-student/src/api/trainingStudent.ts +151 -0
- package/zova/src/suite/a-training/modules/training-student/src/apiSchema/trainingStudent.ts +43 -0
- package/zova/src/suite/a-training/modules/training-student/src/bean/tableCell.actionDeleteForce.tsx +53 -0
- package/zova/src/suite/a-training/modules/training-student/src/bean/tableCell.actionSummary.tsx +56 -0
- package/zova/src/suite/a-training/modules/training-student/src/bean/tableCell.level.tsx +63 -0
- package/zova/src/suite/a-training/modules/training-student/src/component/formFieldLevel/controller.tsx +117 -0
- package/zova/src/suite/a-training/modules/training-student/src/config/locale/en-us.ts +9 -0
- package/zova/src/suite/a-training/modules/training-student/src/config/locale/zh-cn.ts +9 -0
- package/zova/src/suite/a-training/modules/training-student/src/index.ts +2 -0
- package/zova/src/suite/a-training/modules/training-student/src/model/student.ts +42 -0
- package/zova/src/suite/a-training/modules/training-student/tsconfig.build.json +13 -0
- package/zova/src/suite/a-training/modules/training-student/tsconfig.json +5 -0
- package/zova/src/suite/a-training/package.json +12 -0
- package/zova/src/suite/a-training/tsconfig.base.json +4 -0
- package/zova/src/suite/a-training/tsconfig.json +4 -0
- package/zova/src/suite/cabloy-basic/modules/basic-app/package.json +60 -0
- package/zova/src/suite/cabloy-basic/modules/basic-app/src/.metadata/index.ts +137 -0
- package/zova/src/suite/cabloy-basic/modules/basic-app/src/.metadata/locales.ts +7 -0
- package/zova/src/suite/cabloy-basic/modules/basic-app/src/.metadata/this.ts +2 -0
- package/zova/src/suite/cabloy-basic/modules/basic-app/src/bean/behavior.appModal.tsx +260 -0
- package/zova/src/suite/cabloy-basic/modules/basic-app/src/config/config.ts +39 -0
- package/zova/src/suite/cabloy-basic/modules/basic-app/src/config/locale/en-us.ts +7 -0
- package/zova/src/suite/cabloy-basic/modules/basic-app/src/config/locale/zh-cn.ts +7 -0
- package/zova/src/suite/cabloy-basic/modules/basic-app/src/index.ts +4 -0
- package/zova/src/suite/cabloy-basic/modules/basic-app/src/lib/appModalItem.ts +16 -0
- package/zova/src/suite/cabloy-basic/modules/basic-app/src/lib/index.ts +1 -0
- package/zova/src/suite/cabloy-basic/modules/basic-app/src/monkey.ts +38 -0
- package/zova/src/suite/cabloy-basic/modules/basic-app/src/monkeySys.ts +14 -0
- package/zova/src/suite/cabloy-basic/modules/basic-app/src/service/appModal.ts +89 -0
- package/zova/src/suite/cabloy-basic/modules/basic-app/src/types/appModal.ts +52 -0
- package/zova/src/suite/cabloy-basic/modules/basic-app/src/types/index.ts +1 -0
- package/zova/src/suite/cabloy-basic/modules/basic-app/tsconfig.build.json +13 -0
- package/zova/src/suite/cabloy-basic/modules/basic-app/tsconfig.json +5 -0
- package/zova/src/suite/cabloy-basic/modules/basic-commands/package.json +6 -1
- package/zova/src/suite/cabloy-basic/modules/basic-commands/src/.metadata/index.ts +16 -0
- package/zova/src/suite/cabloy-basic/modules/basic-commands/src/bean/command.alert.tsx +8 -14
- package/zova/src/suite/cabloy-basic/modules/basic-commands/src/bean/command.confirm.tsx +10 -7
- package/zova/src/suite/cabloy-basic/modules/basic-commands/src/bean/command.prompt.tsx +30 -0
- package/zova/src/suite/cabloy-basic/modules/basic-pageentry/src/component/blockForm/controller.tsx +5 -3
- package/zova/src/suite/cabloy-basic/modules/basic-select/src/component/formFieldSelect/controller.tsx +29 -7
- package/zova/src/suite/cabloy-basic/modules/basic-select/src/component/select/controller.tsx +34 -11
- package/zova/src/suite/cabloy-basic/modules/basic-table/package.json +6 -1
- package/zova/src/suite/cabloy-basic/modules/basic-table/src/bean/tableCell.actionDelete.tsx +4 -2
- package/zova/src/suite/cabloy-basic/package.json +1 -0
- package/zova/src/suite-vendor/a-zova/modules/a-table/package.json +1 -1
- package/zova/src/suite-vendor/a-zova/modules/a-table/src/component/table/controller.tsx +3 -3
- package/zova/src/suite-vendor/a-zova/modules/a-table/src/lib/tableCell.ts +1 -1
- package/zova/src/suite-vendor/a-zova/package.json +2 -2
|
@@ -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
|
+
}
|
|
@@ -6,6 +6,7 @@ export * from '../bean/command.copy.jsx';
|
|
|
6
6
|
export * from '../bean/command.create.jsx';
|
|
7
7
|
export * from '../bean/command.delete.jsx';
|
|
8
8
|
export * from '../bean/command.edit.jsx';
|
|
9
|
+
export * from '../bean/command.prompt.jsx';
|
|
9
10
|
export * from '../bean/command.setValue.jsx';
|
|
10
11
|
export * from '../bean/command.view.jsx';
|
|
11
12
|
import { ICommandOptionsAlert } from '../bean/command.alert.jsx';
|
|
@@ -14,6 +15,7 @@ import { ICommandOptionsCopy } from '../bean/command.copy.jsx';
|
|
|
14
15
|
import { ICommandOptionsCreate } from '../bean/command.create.jsx';
|
|
15
16
|
import { ICommandOptionsDelete } from '../bean/command.delete.jsx';
|
|
16
17
|
import { ICommandOptionsEdit } from '../bean/command.edit.jsx';
|
|
18
|
+
import { ICommandOptionsPrompt } from '../bean/command.prompt.jsx';
|
|
17
19
|
import { ICommandOptionsSetValue } from '../bean/command.setValue.jsx';
|
|
18
20
|
import { ICommandOptionsView } from '../bean/command.view.jsx';
|
|
19
21
|
import 'zova-module-a-command';
|
|
@@ -26,6 +28,7 @@ declare module 'zova-module-a-command' {
|
|
|
26
28
|
'basic-commands:create': ICommandOptionsCreate;
|
|
27
29
|
'basic-commands:delete': ICommandOptionsDelete;
|
|
28
30
|
'basic-commands:edit': ICommandOptionsEdit;
|
|
31
|
+
'basic-commands:prompt': ICommandOptionsPrompt;
|
|
29
32
|
'basic-commands:setValue': ICommandOptionsSetValue;
|
|
30
33
|
'basic-commands:view': ICommandOptionsView;
|
|
31
34
|
}
|
|
@@ -100,6 +103,17 @@ declare module 'zova-module-basic-commands' {
|
|
|
100
103
|
get $onionOptions(): ICommandOptionsEdit;
|
|
101
104
|
}
|
|
102
105
|
|
|
106
|
+
export interface CommandPrompt {
|
|
107
|
+
/** @internal */
|
|
108
|
+
get scope(): ScopeModuleBasicCommands;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
export interface CommandPrompt {
|
|
112
|
+
get $beanFullName(): 'basic-commands.command.prompt';
|
|
113
|
+
get $onionName(): 'basic-commands:prompt';
|
|
114
|
+
get $onionOptions(): ICommandOptionsPrompt;
|
|
115
|
+
}
|
|
116
|
+
|
|
103
117
|
export interface CommandSetValue {
|
|
104
118
|
/** @internal */
|
|
105
119
|
get scope(): ScopeModuleBasicCommands;
|
|
@@ -130,6 +144,7 @@ import { CommandCopy } from '../bean/command.copy.jsx';
|
|
|
130
144
|
import { CommandCreate } from '../bean/command.create.jsx';
|
|
131
145
|
import { CommandDelete } from '../bean/command.delete.jsx';
|
|
132
146
|
import { CommandEdit } from '../bean/command.edit.jsx';
|
|
147
|
+
import { CommandPrompt } from '../bean/command.prompt.jsx';
|
|
133
148
|
import { CommandSetValue } from '../bean/command.setValue.jsx';
|
|
134
149
|
import { CommandView } from '../bean/command.view.jsx';
|
|
135
150
|
import 'zova';
|
|
@@ -141,6 +156,7 @@ declare module 'zova' {
|
|
|
141
156
|
'basic-commands.command.create': CommandCreate;
|
|
142
157
|
'basic-commands.command.delete': CommandDelete;
|
|
143
158
|
'basic-commands.command.edit': CommandEdit;
|
|
159
|
+
'basic-commands.command.prompt': CommandPrompt;
|
|
144
160
|
'basic-commands.command.setValue': CommandSetValue;
|
|
145
161
|
'basic-commands.command.view': CommandView;
|
|
146
162
|
}
|
|
@@ -1,33 +1,27 @@
|
|
|
1
1
|
import type { ICommandExecute, ICommandOptionsBase } from 'zova-module-a-command';
|
|
2
2
|
import type { NextCommandExecute } from 'zova-module-a-command';
|
|
3
3
|
import type { IJsxRenderContextBase } from 'zova-module-a-openapi';
|
|
4
|
+
import type { IModalAlertOptions, IModalDialogOptions } from 'zova-module-basic-app';
|
|
4
5
|
|
|
5
6
|
import { BeanBase } from 'zova';
|
|
6
7
|
import { Command } from 'zova-module-a-command';
|
|
7
8
|
|
|
8
9
|
export type TypeCommandAlertResult = unknown;
|
|
9
10
|
|
|
10
|
-
export interface ICommandOptionsAlert
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
export interface ICommandOptionsAlert
|
|
12
|
+
extends ICommandOptionsBase<TypeCommandAlertResult>, IModalAlertOptions {
|
|
13
|
+
dialogOptions?: IModalDialogOptions;
|
|
13
14
|
}
|
|
14
15
|
|
|
15
|
-
@Command<ICommandOptionsAlert>(
|
|
16
|
+
@Command<ICommandOptionsAlert>()
|
|
16
17
|
export class CommandAlert extends BeanBase implements ICommandExecute {
|
|
17
18
|
execute(
|
|
18
19
|
options: ICommandOptionsAlert,
|
|
19
|
-
|
|
20
|
+
renderContext: IJsxRenderContextBase,
|
|
20
21
|
next: NextCommandExecute,
|
|
21
22
|
) {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
window.alert(options.message);
|
|
25
|
-
} else {
|
|
26
|
-
setTimeout(() => {
|
|
27
|
-
// eslint-disable-next-line no-alert
|
|
28
|
-
window.alert(options.message);
|
|
29
|
-
}, 0);
|
|
30
|
-
}
|
|
23
|
+
const { $host } = renderContext;
|
|
24
|
+
$host.$appModal.alert(options, options.dialogOptions);
|
|
31
25
|
return next();
|
|
32
26
|
}
|
|
33
27
|
}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import type { IModalConfirmOptions, IModalDialogOptions } from 'zova-module-basic-app';
|
|
2
|
+
|
|
1
3
|
import { BeanBase } from 'zova';
|
|
2
4
|
import {
|
|
3
5
|
Command,
|
|
@@ -7,21 +9,22 @@ import {
|
|
|
7
9
|
} from 'zova-module-a-command';
|
|
8
10
|
import { IJsxRenderContextBase } from 'zova-module-a-openapi';
|
|
9
11
|
|
|
10
|
-
export type TypeCommandConfirmResult = boolean
|
|
12
|
+
export type TypeCommandConfirmResult = Promise<boolean>;
|
|
11
13
|
|
|
12
|
-
export interface ICommandOptionsConfirm
|
|
13
|
-
|
|
14
|
+
export interface ICommandOptionsConfirm
|
|
15
|
+
extends ICommandOptionsBase<TypeCommandConfirmResult>, IModalConfirmOptions {
|
|
16
|
+
dialogOptions?: IModalDialogOptions;
|
|
14
17
|
}
|
|
15
18
|
|
|
16
19
|
@Command<ICommandOptionsConfirm>()
|
|
17
20
|
export class CommandConfirm extends BeanBase implements ICommandExecute {
|
|
18
|
-
execute(
|
|
21
|
+
async execute(
|
|
19
22
|
options: ICommandOptionsConfirm,
|
|
20
|
-
|
|
23
|
+
renderContext: IJsxRenderContextBase,
|
|
21
24
|
next: NextCommandExecute,
|
|
22
25
|
) {
|
|
23
|
-
|
|
24
|
-
const res =
|
|
26
|
+
const { $host } = renderContext;
|
|
27
|
+
const res = await $host.$appModal.confirm(options, options.dialogOptions);
|
|
25
28
|
return next(res);
|
|
26
29
|
}
|
|
27
30
|
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
ICommandExecute,
|
|
3
|
+
ICommandOptionsBase,
|
|
4
|
+
NextCommandExecute,
|
|
5
|
+
} from 'zova-module-a-command';
|
|
6
|
+
import type { IJsxRenderContextBase } from 'zova-module-a-openapi';
|
|
7
|
+
import type { IModalDialogOptions, IModalPromptOptions } from 'zova-module-basic-app';
|
|
8
|
+
|
|
9
|
+
import { BeanBase } from 'zova';
|
|
10
|
+
import { Command } from 'zova-module-a-command';
|
|
11
|
+
|
|
12
|
+
export type TypeCommandPromptResult = unknown;
|
|
13
|
+
|
|
14
|
+
export interface ICommandOptionsPrompt
|
|
15
|
+
extends ICommandOptionsBase<TypeCommandPromptResult>, IModalPromptOptions {
|
|
16
|
+
dialogOptions?: IModalDialogOptions;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
@Command<ICommandOptionsPrompt>()
|
|
20
|
+
export class CommandPrompt extends BeanBase implements ICommandExecute {
|
|
21
|
+
async execute(
|
|
22
|
+
options: ICommandOptionsPrompt,
|
|
23
|
+
renderContext: IJsxRenderContextBase,
|
|
24
|
+
next: NextCommandExecute,
|
|
25
|
+
) {
|
|
26
|
+
const { $host } = renderContext;
|
|
27
|
+
const res = await $host.$appModal.prompt(options, options.dialogOptions);
|
|
28
|
+
return next(res);
|
|
29
|
+
}
|
|
30
|
+
}
|
package/zova/src/suite/cabloy-basic/modules/basic-pageentry/src/component/blockForm/controller.tsx
CHANGED
|
@@ -42,9 +42,11 @@ export class ControllerBlockForm extends BeanControllerBase {
|
|
|
42
42
|
formProvider={$$pageEntry.formProvider}
|
|
43
43
|
formScope={$$pageEntry.jsxCelScope}
|
|
44
44
|
onSubmitData={data => $$pageEntry.submitData(data)}
|
|
45
|
-
onShowError={({ error }) => {
|
|
46
|
-
|
|
47
|
-
|
|
45
|
+
onShowError={async ({ error }) => {
|
|
46
|
+
await this.$performCommand('basic-commands:alert', {
|
|
47
|
+
type: 'error',
|
|
48
|
+
text: error.message,
|
|
49
|
+
});
|
|
48
50
|
}}
|
|
49
51
|
onChanged={data => {
|
|
50
52
|
$$pageEntry.setPageMeta(data, true);
|
|
@@ -49,8 +49,12 @@ export class ControllerFormFieldSelect extends BeanControllerBase {
|
|
|
49
49
|
<ZFormField
|
|
50
50
|
{...this.$props}
|
|
51
51
|
slotDefault={({ propsBucket, props }, $$formField) => {
|
|
52
|
-
const
|
|
53
|
-
|
|
52
|
+
const needClearableEmptyOption = !propsBucket.needHandleBorder;
|
|
53
|
+
const className = needClearableEmptyOption
|
|
54
|
+
? classes(
|
|
55
|
+
props.class,
|
|
56
|
+
'grow w-full h-full min-h-0 border-0 rounded-none bg-transparent pl-0 pr-8 py-0 shadow-none outline-none focus:outline-none focus:shadow-none focus:border-0',
|
|
57
|
+
)
|
|
54
58
|
: classes(
|
|
55
59
|
props.class,
|
|
56
60
|
'select',
|
|
@@ -61,23 +65,41 @@ export class ControllerFormFieldSelect extends BeanControllerBase {
|
|
|
61
65
|
'onUpdate:modelValue': (value: any) => {
|
|
62
66
|
$$formField.setValue(value, propsBucket.disableNotifyChanged);
|
|
63
67
|
},
|
|
68
|
+
'onBlur': () => {
|
|
69
|
+
$$formField.handleBlur();
|
|
70
|
+
},
|
|
64
71
|
...propsBucket.options,
|
|
65
72
|
...props,
|
|
66
73
|
'class': className,
|
|
67
74
|
};
|
|
68
|
-
|
|
75
|
+
if (needClearableEmptyOption) {
|
|
76
|
+
propsNew.items = this._ensureEmptyItemFallback(
|
|
77
|
+
propsNew.items,
|
|
78
|
+
propsNew.placeholder,
|
|
79
|
+
true,
|
|
80
|
+
);
|
|
81
|
+
propsNew.placeholder = undefined;
|
|
82
|
+
} else if (!propsNew.placeholder) {
|
|
83
|
+
propsNew.items = this._ensureEmptyItemFallback(propsNew.items, undefined);
|
|
84
|
+
}
|
|
69
85
|
return <ZSelect {...propsNew}></ZSelect>;
|
|
70
86
|
}}
|
|
71
87
|
></ZFormField>
|
|
72
88
|
);
|
|
73
89
|
}
|
|
74
90
|
|
|
75
|
-
private _ensureEmptyItemFallback(
|
|
76
|
-
|
|
91
|
+
private _ensureEmptyItemFallback(
|
|
92
|
+
items: any[] | undefined,
|
|
93
|
+
placeholder: unknown,
|
|
94
|
+
force = false,
|
|
95
|
+
): any[] | undefined {
|
|
96
|
+
if (!items?.length) return items;
|
|
77
97
|
const valueKey = String(this.$props.options.itemValue);
|
|
78
98
|
const titleKey = String(this.$props.options.itemTitle);
|
|
79
|
-
|
|
80
|
-
|
|
99
|
+
const emptyValue = '';
|
|
100
|
+
if (items[0]?.[valueKey] === emptyValue) return items;
|
|
101
|
+
if (!force && !!placeholder) return items;
|
|
102
|
+
return [{ [valueKey]: emptyValue, [titleKey]: placeholder ?? '' }, ...items];
|
|
81
103
|
}
|
|
82
104
|
|
|
83
105
|
private _getValueByItems() {
|
package/zova/src/suite/cabloy-basic/modules/basic-select/src/component/select/controller.tsx
CHANGED
|
@@ -8,6 +8,8 @@ export interface ControllerSelectProps {
|
|
|
8
8
|
items?: any[] | undefined;
|
|
9
9
|
itemTitle?: string;
|
|
10
10
|
itemValue?: string;
|
|
11
|
+
onChange?: (e: Event) => void;
|
|
12
|
+
onBlur?: (e: Event) => void;
|
|
11
13
|
}
|
|
12
14
|
|
|
13
15
|
export interface ControllerSelectModels {
|
|
@@ -28,13 +30,27 @@ export class ControllerSelect extends BeanControllerBase {
|
|
|
28
30
|
}
|
|
29
31
|
|
|
30
32
|
protected render() {
|
|
33
|
+
const {
|
|
34
|
+
items,
|
|
35
|
+
itemTitle,
|
|
36
|
+
itemValue,
|
|
37
|
+
placeholder,
|
|
38
|
+
modelValue,
|
|
39
|
+
controllerRef,
|
|
40
|
+
onChange,
|
|
41
|
+
onBlur,
|
|
42
|
+
'onUpdate:modelValue': _onUpdateModelValue,
|
|
43
|
+
...props
|
|
44
|
+
} = this.$props as any;
|
|
31
45
|
const domOptions: VNode[] = [];
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
const
|
|
46
|
+
const modelValueDom = isNil(this.modelValue) ? '' : String(this.modelValue);
|
|
47
|
+
if (items) {
|
|
48
|
+
for (const item of items) {
|
|
49
|
+
const title = item[itemTitle];
|
|
50
|
+
const value = item[itemValue];
|
|
51
|
+
const valueDom = isNil(value) ? '' : String(value);
|
|
36
52
|
domOptions.push(
|
|
37
|
-
<option key={
|
|
53
|
+
<option key={valueDom} value={valueDom} selected={modelValueDom === valueDom}>
|
|
38
54
|
{title}
|
|
39
55
|
</option>,
|
|
40
56
|
);
|
|
@@ -42,18 +58,25 @@ export class ControllerSelect extends BeanControllerBase {
|
|
|
42
58
|
}
|
|
43
59
|
return (
|
|
44
60
|
<select
|
|
61
|
+
{...props}
|
|
45
62
|
onChange={(e: Event) => {
|
|
46
63
|
const selectedValue = (e.target as HTMLSelectElement).value;
|
|
47
|
-
const item =
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
64
|
+
const item = items?.find(item => {
|
|
65
|
+
const value = item[itemValue];
|
|
66
|
+
const valueDom = isNil(value) ? '' : String(value);
|
|
67
|
+
return valueDom === selectedValue;
|
|
68
|
+
});
|
|
69
|
+
const value = selectedValue === '' ? undefined : item?.[itemValue];
|
|
51
70
|
this.modelValue = value;
|
|
71
|
+
onChange?.(e);
|
|
72
|
+
}}
|
|
73
|
+
onBlur={(e: Event) => {
|
|
74
|
+
onBlur?.(e);
|
|
52
75
|
}}
|
|
53
76
|
>
|
|
54
|
-
{!!
|
|
77
|
+
{!!placeholder && (
|
|
55
78
|
<option disabled={true} selected={isNil(this.modelValue)}>
|
|
56
|
-
{
|
|
79
|
+
{placeholder}
|
|
57
80
|
</option>
|
|
58
81
|
)}
|
|
59
82
|
{domOptions}
|
|
@@ -32,8 +32,10 @@ export class TableCellActionDelete extends BeanBase implements ITableCellRender
|
|
|
32
32
|
class={options.class}
|
|
33
33
|
type="button"
|
|
34
34
|
onClick={async () => {
|
|
35
|
-
|
|
36
|
-
|
|
35
|
+
const confirmed = await $host.$performCommand('basic-commands:confirm', {
|
|
36
|
+
text: this.scope.locale.DeleteConfirm(),
|
|
37
|
+
});
|
|
38
|
+
if (!confirmed) return;
|
|
37
39
|
await $host.$performCommand('basic-commands:delete', options, renderContext);
|
|
38
40
|
}}
|
|
39
41
|
>
|
|
@@ -241,7 +241,7 @@ export class ControllerTable<TData extends {} = {}> extends BeanControllerTableB
|
|
|
241
241
|
const promises: Promise<any>[] = renderProviders.map(renderProvider =>
|
|
242
242
|
(async () => {
|
|
243
243
|
if (typeof renderProvider === 'string' && renderProvider.includes('.tableCell.')) {
|
|
244
|
-
return await this.
|
|
244
|
+
return await this.app.bean._getBean(renderProvider as any, true);
|
|
245
245
|
}
|
|
246
246
|
})(),
|
|
247
247
|
);
|
|
@@ -259,7 +259,7 @@ export class ControllerTable<TData extends {} = {}> extends BeanControllerTableB
|
|
|
259
259
|
// beanInstance
|
|
260
260
|
let beanInstance: ITableCellRender | undefined;
|
|
261
261
|
if (typeof renderProvider === 'string' && renderProvider.includes('.tableCell.')) {
|
|
262
|
-
beanInstance = await this.
|
|
262
|
+
beanInstance = await this.app.bean._getBean(renderProvider as any, true);
|
|
263
263
|
const beanOptions = appResource.getBean(renderProvider as any);
|
|
264
264
|
const onionOptions = beanOptions?.options as IDecoratorTableCellOptions | undefined;
|
|
265
265
|
columnProps = deepExtend({}, onionOptions, columnProps);
|
|
@@ -300,7 +300,7 @@ export class ControllerTable<TData extends {} = {}> extends BeanControllerTableB
|
|
|
300
300
|
// beanInstance
|
|
301
301
|
let beanInstance: ITableCellRender | undefined;
|
|
302
302
|
if (typeof renderProvider === 'string' && renderProvider.includes('.tableCell.')) {
|
|
303
|
-
beanInstance = this.
|
|
303
|
+
beanInstance = this.app.bean._getBeanSyncOnly(renderProvider as any);
|
|
304
304
|
const beanOptions = appResource.getBean(renderProvider as any);
|
|
305
305
|
const onionOptions = beanOptions?.options as IDecoratorTableCellOptions | undefined;
|
|
306
306
|
columnProps = deepExtend({}, onionOptions, columnProps);
|
|
@@ -3,5 +3,5 @@ import { createBeanDecorator } from 'zova';
|
|
|
3
3
|
import type { IDecoratorTableCellOptions } from '../types/tableCell.js';
|
|
4
4
|
|
|
5
5
|
export function TableCell<T extends IDecoratorTableCellOptions>(options?: T): ClassDecorator {
|
|
6
|
-
return createBeanDecorator('tableCell', '
|
|
6
|
+
return createBeanDecorator('tableCell', 'app', true, options);
|
|
7
7
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "zova-suite-a-zova",
|
|
3
|
-
"version": "5.1.
|
|
3
|
+
"version": "5.1.103",
|
|
4
4
|
"gitHead": "2c5c19284bab738e492856189acb6fad74b8a7b7",
|
|
5
5
|
"description": "zova",
|
|
6
6
|
"license": "MIT",
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"zova-module-a-ssrhmr": "^5.1.19",
|
|
31
31
|
"zova-module-a-ssrserver": "^5.1.19",
|
|
32
32
|
"zova-module-a-style": "^5.1.29",
|
|
33
|
-
"zova-module-a-table": "^5.1.
|
|
33
|
+
"zova-module-a-table": "^5.1.32",
|
|
34
34
|
"zova-module-a-zod": "^5.1.30",
|
|
35
35
|
"zova-module-a-zova": "^5.1.70"
|
|
36
36
|
},
|