cabloy 5.1.60 → 5.1.62
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/hooks/contract-loop-gate.ts +296 -0
- package/.claude/settings.json +16 -0
- package/.claude/skills/cabloy-backend-scaffold/SKILL.md +2 -0
- package/.claude/skills/cabloy-backend-scaffold/references/follow-up-checklist.md +1 -0
- package/.claude/skills/cabloy-contract-loop/SKILL.md +89 -16
- package/.claude/skills/cabloy-contract-loop/references/contract-loop-map.md +102 -14
- package/.claude/skills/cabloy-contract-loop/references/resource-custom-state-pattern.md +4 -0
- package/.claude/skills/cabloy-contract-loop/references/verification-checklist.md +32 -14
- package/.claude/skills/cabloy-domain-planning/SKILL.md +212 -0
- package/.claude/skills/cabloy-frontend-scaffold/SKILL.md +13 -0
- package/.claude/skills/cabloy-frontend-scaffold/references/follow-up-checklist.md +2 -0
- package/.claude/skills/cabloy-module-removal/SKILL.md +144 -0
- package/.claude/skills/cabloy-resource-field-update/SKILL.md +7 -0
- package/.claude/skills/cabloy-zova-source-reading/SKILL.md +221 -0
- package/.claude/skills/cabloy-zova-source-reading/references/analysis-modes.md +91 -0
- package/.claude/skills/cabloy-zova-source-reading/references/core-reading-paths.md +117 -0
- package/CHANGELOG.md +64 -0
- package/CLAUDE.md +11 -0
- package/cabloy-docs/.vitepress/config.mjs +197 -5
- package/cabloy-docs/ai/cli-to-skill-map.md +7 -0
- package/cabloy-docs/ai/docs-skills-rules-mapping.md +22 -0
- package/cabloy-docs/ai/future-skill-roadmap.md +12 -7
- package/cabloy-docs/ai/introduction.md +1 -0
- package/cabloy-docs/ai/playbook-backend-module.md +6 -0
- package/cabloy-docs/ai/playbook-module-removal.md +164 -0
- package/cabloy-docs/ai/skills.md +12 -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 +18 -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 +30 -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 +15 -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 +12 -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 +271 -0
- 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 +6 -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 +3 -1
- package/cabloy-docs/frontend/behavior-guide.md +16 -16
- package/cabloy-docs/frontend/cli.md +14 -2
- package/cabloy-docs/frontend/command-scene-authoring.md +504 -0
- 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/design-principles.md +6 -0
- package/cabloy-docs/frontend/fetch-interceptor-guide.md +440 -0
- package/cabloy-docs/frontend/filter-query-select-data-flow-guide.md +260 -0
- package/cabloy-docs/frontend/form-guide.md +786 -0
- package/cabloy-docs/frontend/form-scene-to-page-meta-guide.md +303 -0
- package/cabloy-docs/frontend/foundation.md +33 -0
- 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 +38 -5
- package/cabloy-docs/frontend/ioc-and-beans.md +6 -0
- package/cabloy-docs/frontend/mock-guide.md +1 -0
- package/cabloy-docs/frontend/model-architecture.md +288 -39
- package/cabloy-docs/frontend/model-resource-best-practices.md +379 -0
- package/cabloy-docs/frontend/model-resource-cookbook.md +508 -0
- package/cabloy-docs/frontend/model-resource-internals-deep-dive.md +238 -0
- package/cabloy-docs/frontend/model-resource-owner-pattern.md +402 -0
- package/cabloy-docs/frontend/model-resource-usage-guide.md +334 -0
- package/cabloy-docs/frontend/model-state-guide.md +371 -15
- 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 +17 -6
- package/cabloy-docs/frontend/page-guide.md +15 -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 +18 -2
- package/cabloy-docs/frontend/reading-zova-for-vue-developers.md +266 -0
- 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 +4 -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 +568 -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 +293 -0
- package/cabloy-docs/frontend/zova-form-under-the-hood.md +561 -0
- package/cabloy-docs/frontend/zova-reactivity-under-the-hood.md +320 -0
- package/cabloy-docs/frontend/zova-router-under-the-hood.md +561 -0
- package/cabloy-docs/frontend/zova-source-reading-map.md +421 -0
- 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/frontend/zova-vs-vue3-comparison.md +308 -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 +356 -0
- package/cabloy-docs/fullstack/edition-collaboration-differences.md +6 -0
- package/cabloy-docs/fullstack/frontend-metadata-to-backend.md +199 -23
- package/cabloy-docs/fullstack/introduction.md +15 -1
- package/cabloy-docs/fullstack/openapi-to-sdk.md +135 -11
- 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 +6 -2
- package/cabloy-docs/fullstack/tutorial-4-custom-level-renderers.md +60 -23
- package/cabloy-docs/fullstack/tutorial-5-backend-contract-sharing.md +14 -7
- package/cabloy-docs/fullstack/tutorial-6-one-contract-four-uses.md +6 -0
- package/cabloy-docs/fullstack/tutorials-overview.md +17 -4
- package/cabloy-docs/reference/bean-scene-boilerplates.md +15 -13
- package/cabloy-docs/reference/package-map.md +4 -3
- package/package.json +2 -1
- package/scripts/init.ts +2 -18
- package/scripts/initTestData.ts +25 -0
- package/scripts/upgrade.ts +17 -2
- package/vona/pnpm-lock.yaml +48 -194
- 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-cli/cli/package.json +2 -2
- package/zova/packages-cli/cli-set-front/cli/templates/openapi/config/boilerplate/module/openapi.config.ts +6 -1
- package/zova/packages-cli/cli-set-front/package.json +1 -1
- package/zova/packages-cli/cli-set-front/src/lib/bean/cli.openapi.generate.ts +34 -4
- package/zova/packages-zova/zova/package.json +2 -2
- package/zova/pnpm-lock.yaml +416 -690
- 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 +52 -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 +51 -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-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-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,317 @@
|
|
|
1
|
+
# Zova Table Source Reading Map
|
|
2
|
+
|
|
3
|
+
This page is a practical map for contributors and AI workflows that need to read Zova Table source code efficiently.
|
|
4
|
+
|
|
5
|
+
Use this page after [Zova Table Under the Hood](/frontend/zova-table-under-the-hood) when your next question is not the runtime model itself, but which files to read first for a specific table-internals topic.
|
|
6
|
+
|
|
7
|
+
It answers a narrow question:
|
|
8
|
+
|
|
9
|
+
> when I need to understand how Zova Table works internally, which files should I read first, and in what order?
|
|
10
|
+
|
|
11
|
+
Use this page together with:
|
|
12
|
+
|
|
13
|
+
- [Table Guide](/frontend/table-guide)
|
|
14
|
+
- [TableCell Authoring Cookbook](/frontend/table-cell-cookbook)
|
|
15
|
+
- [Table + Resource CRUD Cookbook](/frontend/table-resource-crud-cookbook)
|
|
16
|
+
- [Zova Table Under the Hood](/frontend/zova-table-under-the-hood)
|
|
17
|
+
- [Zova Table Controller Render Deep Dive](/frontend/zova-table-controller-render-supplement)
|
|
18
|
+
- [Rest Resource Under the Hood](/frontend/rest-resource-under-the-hood)
|
|
19
|
+
- [Rest Resource Source Reading Map](/frontend/rest-resource-source-reading-map)
|
|
20
|
+
- [Zova Source Reading Map](/frontend/zova-source-reading-map)
|
|
21
|
+
- [Bean Scene Authoring](/frontend/bean-scene-authoring)
|
|
22
|
+
- [API Schema Guide](/frontend/api-schema-guide)
|
|
23
|
+
- [Model Resource Owner Pattern](/frontend/model-resource-owner-pattern)
|
|
24
|
+
|
|
25
|
+
> [!TIP]
|
|
26
|
+
> **Zova Table docs path**
|
|
27
|
+
>
|
|
28
|
+
> 1. **[Table Guide](/frontend/table-guide)** — learn the public authoring surface
|
|
29
|
+
> 2. **[Zova Table Under the Hood](/frontend/zova-table-under-the-hood)** — learn how the runtime pieces cooperate
|
|
30
|
+
> 3. **[Zova Table Source Reading Map](/frontend/zova-table-source-reading-map)** — learn which files to read next
|
|
31
|
+
>
|
|
32
|
+
> **You are here:** step 3.
|
|
33
|
+
> **Previous page:** [Zova Table Under the Hood](/frontend/zova-table-under-the-hood).
|
|
34
|
+
|
|
35
|
+
## Why this page exists
|
|
36
|
+
|
|
37
|
+
The `a-table` module sits at the intersection of several Zova concerns at once:
|
|
38
|
+
|
|
39
|
+
- controller-oriented component design
|
|
40
|
+
- schema-driven column metadata
|
|
41
|
+
- TanStack Table integration
|
|
42
|
+
- bean-scene-based cell rendering
|
|
43
|
+
- resource-page integration through `basic-page`
|
|
44
|
+
|
|
45
|
+
This page exists for one narrow job:
|
|
46
|
+
|
|
47
|
+
- [Table Guide](/frontend/table-guide) explains how to author tables
|
|
48
|
+
- [Zova Table Under the Hood](/frontend/zova-table-under-the-hood) explains how the runtime pieces cooperate
|
|
49
|
+
- this page gives the shortest file-order paths for specific table questions
|
|
50
|
+
|
|
51
|
+
## How to use this page
|
|
52
|
+
|
|
53
|
+
For each topic below:
|
|
54
|
+
|
|
55
|
+
1. start with the public guide to refresh the architectural intent
|
|
56
|
+
2. read the first source file to identify the public surface
|
|
57
|
+
3. continue into the next runtime file only if you still need the implementation detail
|
|
58
|
+
4. stop as soon as you have enough information for the task
|
|
59
|
+
|
|
60
|
+
The goal is not to read the entire table stack every time. The goal is to choose the shortest correct path.
|
|
61
|
+
|
|
62
|
+
## 1. Public table surface and wrapper entrypoints
|
|
63
|
+
|
|
64
|
+
Use this path when you are asking questions like:
|
|
65
|
+
|
|
66
|
+
- what is the public Zova Table surface?
|
|
67
|
+
- where does `ZTable` enter the runtime?
|
|
68
|
+
- how does `controllerRef` reach the controller instance?
|
|
69
|
+
|
|
70
|
+
### Read the docs first
|
|
71
|
+
|
|
72
|
+
- [Table Guide](/frontend/table-guide)
|
|
73
|
+
- [Component Guide](/frontend/component-guide)
|
|
74
|
+
- [Reading Zova for Vue Developers](/frontend/reading-zova-for-vue-developers)
|
|
75
|
+
|
|
76
|
+
### Then read source in this order
|
|
77
|
+
|
|
78
|
+
1. `zova/src/suite-vendor/a-zova/modules/a-table/src/.metadata/component/table.ts`
|
|
79
|
+
2. `zova/src/suite-vendor/a-zova/modules/a-table/src/component/table/controller.tsx`
|
|
80
|
+
3. `zova/src/suite-vendor/a-zova/modules/a-table/src/component/table/render.tsx`
|
|
81
|
+
4. `zova/packages-zova/zova-core/src/composables/useController.ts`
|
|
82
|
+
|
|
83
|
+
### What each file clarifies
|
|
84
|
+
|
|
85
|
+
- metadata wrapper files show how the public component wrapper enters `useController(...)`
|
|
86
|
+
- `table.ts` exposes `ZTable` and its typed controller-facing props surface
|
|
87
|
+
- `controller.tsx` shows the table runtime owner
|
|
88
|
+
- `render.tsx` shows the default DOM render path
|
|
89
|
+
- `useController.ts` shows how the controller instance is created and bound to the wrapper lifecycle
|
|
90
|
+
|
|
91
|
+
## 2. Table controller ownership and TanStack bridge
|
|
92
|
+
|
|
93
|
+
Use this path when you are asking questions like:
|
|
94
|
+
|
|
95
|
+
- where is the TanStack table instance created?
|
|
96
|
+
- where do `columns` and `tableMeta` come from?
|
|
97
|
+
- why does the table runtime live in a controller bean?
|
|
98
|
+
|
|
99
|
+
### Read the docs first
|
|
100
|
+
|
|
101
|
+
- [Table Guide](/frontend/table-guide)
|
|
102
|
+
- [Reading Zova for Vue Developers](/frontend/reading-zova-for-vue-developers)
|
|
103
|
+
|
|
104
|
+
### Then read source in this order
|
|
105
|
+
|
|
106
|
+
1. `zova/src/suite-vendor/a-zova/modules/a-table/src/component/table/controller.tsx`
|
|
107
|
+
2. `zova/src/suite-vendor/a-zova/modules/a-table/src/lib/beanControllerTableBase.ts`
|
|
108
|
+
3. `zova/src/suite-vendor/a-zova/modules/a-table/src/lib/beanControllerPageTableBase.ts`
|
|
109
|
+
4. `zova/src/suite-vendor/a-zova/modules/a-table/src/types/table.ts`
|
|
110
|
+
|
|
111
|
+
### What each file clarifies
|
|
112
|
+
|
|
113
|
+
- `component/table/controller.tsx` is the main table runtime owner
|
|
114
|
+
- `beanControllerTableBase.ts` shows the shared `$useTable(...)` wrapper around TanStack `useVueTable(...)`
|
|
115
|
+
- `beanControllerPageTableBase.ts` shows the page-controller-oriented variant
|
|
116
|
+
- `types/table.ts` shows the exposed type contracts for table, columns, metadata, and `getColumns(...)`
|
|
117
|
+
|
|
118
|
+
## 3. Schema-driven columns and metadata overlays
|
|
119
|
+
|
|
120
|
+
Use this path when you are asking questions like:
|
|
121
|
+
|
|
122
|
+
- how does a row schema become visible columns?
|
|
123
|
+
- where do `visible`, `order`, `render`, and `columnProps` come from?
|
|
124
|
+
- how does the table scene differ from form or filter scenes?
|
|
125
|
+
|
|
126
|
+
### Read the docs first
|
|
127
|
+
|
|
128
|
+
- [Table Guide](/frontend/table-guide)
|
|
129
|
+
- [API Schema Guide](/frontend/api-schema-guide)
|
|
130
|
+
|
|
131
|
+
### Then read source in this order
|
|
132
|
+
|
|
133
|
+
1. `zova/src/suite-vendor/a-zova/modules/a-table/src/component/table/controller.tsx`
|
|
134
|
+
2. `zova/src/suite-vendor/a-zova/modules/a-openapi/src/lib/schema.ts`
|
|
135
|
+
3. `zova/src/suite-vendor/a-zova/modules/a-openapi/src/types/rest.ts`
|
|
136
|
+
|
|
137
|
+
### What each file clarifies
|
|
138
|
+
|
|
139
|
+
- `controller.tsx` shows `_createProperties()`, `_createTableMeta()`, and `_createColumnsMiddle()`
|
|
140
|
+
- `schema.ts` shows `loadSchemaProperties(...)`, `$ref` resolution, and scene-specific `rest` overlays
|
|
141
|
+
- `rest.ts` shows the schema extension contract, including `rest.table` and table-related render types
|
|
142
|
+
|
|
143
|
+
## 4. `tableCell` bean-scene contract and decorator surface
|
|
144
|
+
|
|
145
|
+
Use this path when you are asking questions like:
|
|
146
|
+
|
|
147
|
+
- what exactly is a `tableCell` bean?
|
|
148
|
+
- where does `@TableCell(...)` come from?
|
|
149
|
+
- how is the scene registered for metadata and typing?
|
|
150
|
+
|
|
151
|
+
### Read the docs first
|
|
152
|
+
|
|
153
|
+
- [Bean Scene Authoring](/frontend/bean-scene-authoring)
|
|
154
|
+
- [Table Guide](/frontend/table-guide)
|
|
155
|
+
|
|
156
|
+
### Then read source in this order
|
|
157
|
+
|
|
158
|
+
1. `zova/src/suite-vendor/a-zova/modules/a-table/src/lib/tableCell.ts`
|
|
159
|
+
2. `zova/src/suite-vendor/a-zova/modules/a-table/src/types/tableCell.ts`
|
|
160
|
+
3. `zova/src/suite-vendor/a-zova/modules/a-table/package.json`
|
|
161
|
+
4. `zova/src/suite-vendor/a-zova/modules/a-table/cli/tableCell/boilerplate/{{sceneName}}.{{beanName}}.tsx_`
|
|
162
|
+
5. `zova/src/suite-vendor/a-zova/modules/a-table/cli/tableActionRow/boilerplate/{{sceneName}}.{{beanName}}.tsx_`
|
|
163
|
+
|
|
164
|
+
### What each file clarifies
|
|
165
|
+
|
|
166
|
+
- `tableCell.ts` shows the decorator definition
|
|
167
|
+
- `types/tableCell.ts` shows the runtime contract, scene typing, and `NextTableCellRender`
|
|
168
|
+
- `package.json` shows `zovaModule.onions.tableCell` and boilerplate metadata
|
|
169
|
+
- the boilerplate files show the intended scaffold shape for normal cells and row-action cells
|
|
170
|
+
|
|
171
|
+
## 5. Cell render pipeline and CEL/JSX scope
|
|
172
|
+
|
|
173
|
+
Use this path when you are asking questions like:
|
|
174
|
+
|
|
175
|
+
- how does one column render become one real cell vnode?
|
|
176
|
+
- where do `getValue(...)` and cell scope come from?
|
|
177
|
+
- how are JSX props evaluated for a cell bean?
|
|
178
|
+
|
|
179
|
+
### Read the docs first
|
|
180
|
+
|
|
181
|
+
- [Zova Table Under the Hood](/frontend/zova-table-under-the-hood)
|
|
182
|
+
- [Reading Zova for Vue Developers](/frontend/reading-zova-for-vue-developers)
|
|
183
|
+
|
|
184
|
+
### Then read source in this order
|
|
185
|
+
|
|
186
|
+
1. `zova/src/suite-vendor/a-zova/modules/a-table/src/component/table/controller.tsx`
|
|
187
|
+
2. `zova/src/suite-vendor/a-zova/modules/a-table/src/types/tableColumn.ts`
|
|
188
|
+
3. `zova/src/suite-vendor/a-zova/modules/a-table/src/types/tableCell.ts`
|
|
189
|
+
|
|
190
|
+
### What each file clarifies
|
|
191
|
+
|
|
192
|
+
- `controller.tsx` shows `getColumnJsxRenderContext(...)`, `getCellJsxRenderContext(...)`, `cellRenderPrepare(...)`, `cellRender(...)`, and `_cellRenderInner(...)`
|
|
193
|
+
- `tableColumn.ts` shows column scope, cell scope, and table column render types
|
|
194
|
+
- `tableCell.ts` shows the render-context contract received by a `tableCell` bean
|
|
195
|
+
|
|
196
|
+
## 6. Representative built-in cell renderers
|
|
197
|
+
|
|
198
|
+
Use this path when you are asking questions like:
|
|
199
|
+
|
|
200
|
+
- what does a simple formatter-style table cell look like?
|
|
201
|
+
- what does a row-action cell look like?
|
|
202
|
+
- how should I design my own custom table cell?
|
|
203
|
+
|
|
204
|
+
### Read the docs first
|
|
205
|
+
|
|
206
|
+
- [Table Guide](/frontend/table-guide)
|
|
207
|
+
- [Bean Scene Authoring](/frontend/bean-scene-authoring)
|
|
208
|
+
|
|
209
|
+
### Then read source in this order
|
|
210
|
+
|
|
211
|
+
1. `zova/src/suite/cabloy-basic/modules/basic-text/src/bean/tableCell.text.tsx`
|
|
212
|
+
2. `zova/src/suite/cabloy-basic/modules/basic-date/src/bean/tableCell.date.tsx`
|
|
213
|
+
3. `zova/src/suite/cabloy-basic/modules/basic-select/src/bean/tableCell.select.tsx`
|
|
214
|
+
4. `zova/src/suite/cabloy-basic/modules/basic-table/src/bean/tableCell.actionOperationsRow.tsx`
|
|
215
|
+
|
|
216
|
+
### What each file clarifies
|
|
217
|
+
|
|
218
|
+
- `tableCell.text.tsx` shows the minimal pass-through plus optional wrapper pattern
|
|
219
|
+
- `tableCell.date.tsx` shows formatting around `next()`
|
|
220
|
+
- `tableCell.select.tsx` shows value-to-item mapping
|
|
221
|
+
- `actionOperationsRow.tsx` shows advanced visibility checks, nested action rendering, and permission-aware orchestration
|
|
222
|
+
|
|
223
|
+
## 7. Custom columns through `getColumns(...)`
|
|
224
|
+
|
|
225
|
+
Use this path when you are asking questions like:
|
|
226
|
+
|
|
227
|
+
- how should I add one page-local operations column?
|
|
228
|
+
- how can I reuse the existing cell-render pipeline from custom columns?
|
|
229
|
+
- where is `createColumnRender(...)` defined?
|
|
230
|
+
|
|
231
|
+
### Read the docs first
|
|
232
|
+
|
|
233
|
+
- [Table Guide](/frontend/table-guide)
|
|
234
|
+
- [Zova Table Under the Hood](/frontend/zova-table-under-the-hood)
|
|
235
|
+
|
|
236
|
+
### Then read source in this order
|
|
237
|
+
|
|
238
|
+
1. `zova/src/suite-vendor/a-zova/modules/a-table/src/types/table.ts`
|
|
239
|
+
2. `zova/src/suite-vendor/a-zova/modules/a-table/src/component/table/controller.tsx`
|
|
240
|
+
3. `zova/src/suite/cabloy-basic/modules/basic-table/src/component/table/render.tsx`
|
|
241
|
+
|
|
242
|
+
### What each file clarifies
|
|
243
|
+
|
|
244
|
+
- `types/table.ts` shows `TypeTableGetColumns` and `TypeTableCreateColumnRender`
|
|
245
|
+
- `controller.tsx` shows how custom columns are given `next(...)`, `createColumnRender(...)`, and the table controller itself
|
|
246
|
+
- `basic-table/render.tsx` shows a module-level consumer wrapping `ZTable` rather than replacing its runtime
|
|
247
|
+
|
|
248
|
+
## 8. Resource-page integration
|
|
249
|
+
|
|
250
|
+
Use this path when you are asking questions like:
|
|
251
|
+
|
|
252
|
+
- how does a resource list page feed schema and data into `ZTable`?
|
|
253
|
+
- where do `data`, `schemaRow`, and `tableScope` come from?
|
|
254
|
+
- where should permission-sensitive table refresh be debugged?
|
|
255
|
+
|
|
256
|
+
### Read the docs first
|
|
257
|
+
|
|
258
|
+
- [Table Guide](/frontend/table-guide)
|
|
259
|
+
- [Model Resource Owner Pattern](/frontend/model-resource-owner-pattern)
|
|
260
|
+
|
|
261
|
+
### Then read source in this order
|
|
262
|
+
|
|
263
|
+
1. `zova/src/suite/cabloy-basic/modules/basic-page/src/component/blockPage/controller.tsx`
|
|
264
|
+
2. `zova/src/suite/cabloy-basic/modules/basic-page/src/component/blockTable/controller.tsx`
|
|
265
|
+
3. `vona/src/suite-vendor/a-test/modules/test-rest/src/dto/productSelectResItem.tsx`
|
|
266
|
+
|
|
267
|
+
### What each file clarifies
|
|
268
|
+
|
|
269
|
+
- `blockPage/controller.tsx` shows resource ownership, query state, page CEL scope, permissions, and table refresh integration
|
|
270
|
+
- `blockTable/controller.tsx` shows the direct bridge from page block to `ZTable`
|
|
271
|
+
- the Vona DTO specimen shows the block-based page composition consumed from backend-owned metadata
|
|
272
|
+
|
|
273
|
+
## 9. Representative specimens to read before editing the framework
|
|
274
|
+
|
|
275
|
+
Use this section when you want one small example before reading framework internals.
|
|
276
|
+
|
|
277
|
+
### Read these specimens first
|
|
278
|
+
|
|
279
|
+
1. `zova/src/suite/cabloy-basic/modules/basic-page/src/component/blockTable/controller.tsx`
|
|
280
|
+
2. `zova/src/suite/cabloy-basic/modules/basic-table/src/bean/tableCell.actionOperationsRow.tsx`
|
|
281
|
+
3. `zova/src/suite/cabloy-basic/modules/basic-text/src/bean/tableCell.text.tsx`
|
|
282
|
+
|
|
283
|
+
### Why these three specimens matter
|
|
284
|
+
|
|
285
|
+
- `blockTable` shows the public integration path from a page into `ZTable`
|
|
286
|
+
- `actionOperationsRow` shows the advanced `tableCell` orchestration path
|
|
287
|
+
- `tableCell.text` shows the smallest custom-cell authoring shape
|
|
288
|
+
|
|
289
|
+
Together they give you the public integration, the advanced cell path, and the minimal cell path before you descend into the whole table runtime.
|
|
290
|
+
|
|
291
|
+
## 10. A compact reading strategy
|
|
292
|
+
|
|
293
|
+
When in doubt, use this order:
|
|
294
|
+
|
|
295
|
+
1. [Table Guide](/frontend/table-guide)
|
|
296
|
+
2. one real usage specimen such as `blockTable`
|
|
297
|
+
3. the public wrapper metadata under `src/.metadata/component/table.ts`
|
|
298
|
+
4. `component/table/controller.tsx`
|
|
299
|
+
5. `lib/beanControllerTableBase.ts`
|
|
300
|
+
6. `types/tableCell.ts` and representative cell beans only if you still need more detail
|
|
301
|
+
|
|
302
|
+
That order usually gets you to the answer faster than starting from the deepest runtime files first.
|
|
303
|
+
|
|
304
|
+
## 11. Final takeaway
|
|
305
|
+
|
|
306
|
+
The fastest way to read Zova Table accurately is not to memorize every file in `a-table`.
|
|
307
|
+
|
|
308
|
+
It is to recognize which question you are asking:
|
|
309
|
+
|
|
310
|
+
- wrapper-entry question
|
|
311
|
+
- controller-runtime question
|
|
312
|
+
- schema-column question
|
|
313
|
+
- `tableCell` scene question
|
|
314
|
+
- cell-render question
|
|
315
|
+
- resource-page integration question
|
|
316
|
+
|
|
317
|
+
Then start from the smallest public file that matches that question and only descend into deeper runtime files as needed.
|