cabloy 5.1.63 → 5.1.65

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 (82) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/package.json +1 -1
  3. package/vona/packages-vona/vona/package.json +1 -1
  4. package/vona/pnpm-lock.yaml +88 -3
  5. package/vona/src/suite/a-training/modules/training-record/package.json +53 -0
  6. package/vona/src/suite/a-training/modules/training-record/src/.metadata/index.ts +198 -0
  7. package/vona/src/suite/a-training/modules/training-record/src/.metadata/locales.ts +18 -0
  8. package/vona/src/suite/a-training/modules/training-record/src/.metadata/this.ts +2 -0
  9. package/vona/src/suite/a-training/modules/training-record/src/bean/meta.index.ts +12 -0
  10. package/vona/src/suite/a-training/modules/training-record/src/bean/meta.version.ts +21 -0
  11. package/vona/src/suite/a-training/modules/training-record/src/config/locale/en-us.ts +7 -0
  12. package/vona/src/suite/a-training/modules/training-record/src/config/locale/zh-cn.ts +7 -0
  13. package/vona/src/suite/a-training/modules/training-record/src/entity/record.tsx +42 -0
  14. package/vona/src/suite/a-training/modules/training-record/src/index.ts +2 -0
  15. package/vona/src/suite/a-training/modules/training-record/src/model/record.ts +10 -0
  16. package/vona/src/suite/a-training/modules/training-record/tsconfig.build.json +11 -0
  17. package/vona/src/suite/a-training/modules/training-record/tsconfig.json +7 -0
  18. package/vona/src/suite/a-training/modules/training-student/src/.metadata/index.ts +39 -3
  19. package/vona/src/suite/a-training/modules/training-student/src/config/locale/en-us.ts +1 -0
  20. package/vona/src/suite/a-training/modules/training-student/src/config/locale/zh-cn.ts +1 -0
  21. package/vona/src/suite/a-training/modules/training-student/src/dto/detailRecordBase.tsx +12 -0
  22. package/vona/src/suite/a-training/modules/training-student/src/dto/detailRecordMutate.tsx +31 -0
  23. package/vona/src/suite/a-training/modules/training-student/src/dto/detailRecordResItem.tsx +40 -0
  24. package/vona/src/suite/a-training/modules/training-student/src/dto/detailRecordView.tsx +28 -0
  25. package/vona/src/suite/a-training/modules/training-student/src/dto/studentCreate.tsx +16 -1
  26. package/vona/src/suite/a-training/modules/training-student/src/dto/studentUpdate.tsx +4 -1
  27. package/vona/src/suite/a-training/modules/training-student/src/dto/studentView.tsx +4 -1
  28. package/vona/src/suite/a-training/modules/training-student/src/model/student.ts +9 -2
  29. package/vona/src/suite/a-training/modules/training-student/src/service/student.ts +1 -1
  30. package/vona/src/suite/a-training/package.json +1 -0
  31. package/vona/src/suite/a-training/tsconfig.json +3 -0
  32. package/vona/src/suite-vendor/a-vona/modules/a-orm/package.json +1 -1
  33. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/lib/dto/dto.ts +2 -0
  34. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/lib/dto/dtoGet.ts +3 -3
  35. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/lib/dto/dtoMutate.ts +2 -2
  36. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/dto/dtoGet.ts +3 -0
  37. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/dto/dtoMutate.ts +2 -1
  38. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/modelGeneral.ts +3 -0
  39. package/vona/src/suite-vendor/a-vona/package.json +1 -1
  40. package/zova/packages-cli/cli/package.json +2 -2
  41. package/zova/packages-cli/cli-set-front/cli/templates/create/component/boilerplateBlockPage/controller.tsx_ +6 -2
  42. package/zova/packages-cli/cli-set-front/cli/templates/create/component/boilerplateBlockPageEntry/controller.tsx_ +6 -2
  43. package/zova/packages-cli/cli-set-front/cli/templates/create/component/boilerplateFormActionRow/controller.tsx_ +6 -2
  44. package/zova/packages-cli/cli-set-front/cli/templates/create/component/boilerplateFormField/controller.tsx_ +2 -1
  45. package/zova/packages-cli/cli-set-front/cli/templates/create/component/boilerplateTableActionBulk/controller.tsx_ +6 -2
  46. package/zova/packages-cli/cli-set-front/cli/templates/rest/component.ts +25 -2
  47. package/zova/packages-cli/cli-set-front/cli/templates/rest/render.ts +4 -0
  48. package/zova/packages-cli/cli-set-front/package.json +1 -1
  49. package/zova/packages-zova/zova/package.json +2 -2
  50. package/zova/pnpm-lock.yaml +18 -3
  51. package/zova/src/suite/cabloy-basic/modules/basic-details/package.json +52 -0
  52. package/zova/src/suite/cabloy-basic/modules/basic-details/src/.metadata/component/actionCreate.ts +31 -0
  53. package/zova/src/suite/cabloy-basic/modules/basic-details/src/.metadata/component/blockDetails.ts +34 -0
  54. package/zova/src/suite/cabloy-basic/modules/basic-details/src/.metadata/component/blockTable.ts +31 -0
  55. package/zova/src/suite/cabloy-basic/modules/basic-details/src/.metadata/component/blockToolbarBulk.ts +31 -0
  56. package/zova/src/suite/cabloy-basic/modules/basic-details/src/.metadata/component/formFieldDetails.ts +31 -0
  57. package/zova/src/suite/cabloy-basic/modules/basic-details/src/.metadata/index.ts +164 -0
  58. package/zova/src/suite/cabloy-basic/modules/basic-details/src/.metadata/locales.ts +7 -0
  59. package/zova/src/suite/cabloy-basic/modules/basic-details/src/.metadata/this.ts +2 -0
  60. package/zova/src/suite/cabloy-basic/modules/basic-details/src/bean/tableCell.actionOperationsRow.tsx +34 -0
  61. package/zova/src/suite/cabloy-basic/modules/basic-details/src/component/actionCreate/controller.tsx +42 -0
  62. package/zova/src/suite/cabloy-basic/modules/basic-details/src/component/blockDetails/controller.tsx +114 -0
  63. package/zova/src/suite/cabloy-basic/modules/basic-details/src/component/blockTable/controller.tsx +44 -0
  64. package/zova/src/suite/cabloy-basic/modules/basic-details/src/component/blockToolbarBulk/controller.tsx +61 -0
  65. package/zova/src/suite/cabloy-basic/modules/basic-details/src/component/formFieldDetails/controller.tsx +105 -0
  66. package/zova/src/suite/cabloy-basic/modules/basic-details/src/config/locale/en-us.ts +3 -0
  67. package/zova/src/suite/cabloy-basic/modules/basic-details/src/config/locale/zh-cn.ts +3 -0
  68. package/zova/src/suite/cabloy-basic/modules/basic-details/src/index.ts +3 -0
  69. package/zova/src/suite/cabloy-basic/modules/basic-details/src/types/details.ts +8 -0
  70. package/zova/src/suite/cabloy-basic/modules/basic-details/src/types/index.ts +1 -0
  71. package/zova/src/suite/cabloy-basic/modules/basic-details/tsconfig.build.json +13 -0
  72. package/zova/src/suite/cabloy-basic/modules/basic-details/tsconfig.json +5 -0
  73. package/zova/src/suite/cabloy-basic/package.json +1 -0
  74. package/zova/src/suite-vendor/a-zova/modules/a-openapi/package.json +1 -1
  75. package/zova/src/suite-vendor/a-zova/modules/a-openapi/src/types/action.ts +2 -0
  76. package/zova/src/suite-vendor/a-zova/modules/a-openapi/src/types/detail/details.ts +7 -0
  77. package/zova/src/suite-vendor/a-zova/modules/a-openapi/src/types/detail/detailsActionBulk.ts +24 -0
  78. package/zova/src/suite-vendor/a-zova/modules/a-openapi/src/types/detail/detailsActionRow.ts +24 -0
  79. package/zova/src/suite-vendor/a-zova/modules/a-openapi/src/types/detail/index.ts +3 -0
  80. package/zova/src/suite-vendor/a-zova/modules/a-openapi/src/types/index.ts +1 -0
  81. package/zova/src/suite-vendor/a-zova/modules/a-openapi/src/types/permissions.ts +10 -0
  82. package/zova/src/suite-vendor/a-zova/package.json +2 -2
@@ -0,0 +1,44 @@
1
+ import type { IComponentOptions } from 'zova';
2
+ import type { IResourceBlockOptionsBase, IJsxRenderContextDetails } from 'zova-module-a-openapi';
3
+
4
+ import { BeanControllerBase, Use } from 'zova';
5
+ import { Controller } from 'zova-module-a-bean';
6
+ import { BeanControllerTableBase, ZTable } from 'zova-module-a-table';
7
+
8
+ declare module 'zova-module-a-openapi' {
9
+ export interface IResourceBlockRecord {
10
+ 'basic-details:blockTable'?: ControllerBlockTableProps;
11
+ }
12
+ }
13
+
14
+ export interface ControllerBlockTableProps extends IResourceBlockOptionsBase {}
15
+
16
+ @Controller()
17
+ export class ControllerBlockTable<TData extends {} = {}> extends BeanControllerBase {
18
+ static $propsDefault = {};
19
+ static $componentOptions: IComponentOptions = { inheritAttrs: false, deepExtendDefault: true };
20
+
21
+ tableRef: BeanControllerTableBase<TData>;
22
+
23
+ @Use({ injectionScope: 'host' })
24
+ $$renderContext: IJsxRenderContextDetails;
25
+
26
+ protected async __init__() {}
27
+
28
+ protected render() {
29
+ const { $$details } = this.$$renderContext;
30
+ const data = [{ id: 1, name: 'yang' }] as any;
31
+ return (
32
+ <ZTable<TData>
33
+ class={this.$props.class}
34
+ controllerRef={ref => {
35
+ this.tableRef = ref;
36
+ $$details.tableRef = ref as unknown as BeanControllerTableBase<{}>;
37
+ }}
38
+ data={data ?? ($$details.data as unknown as TData[])}
39
+ schema={$$details.schemaRow}
40
+ tableScope={$$details.jsxCelScope}
41
+ ></ZTable>
42
+ );
43
+ }
44
+ }
@@ -0,0 +1,61 @@
1
+ import type { IComponentOptions } from 'zova';
2
+ import type {
3
+ IResourceBlockOptionsBase,
4
+ IJsxRenderContextDetails,
5
+ IResourceRenderDetailsActionBulkOptionsAction,
6
+ } from 'zova-module-a-openapi';
7
+
8
+ import { VNode } from 'vue';
9
+ import { BeanControllerBase, Use } from 'zova';
10
+ import { Controller } from 'zova-module-a-bean';
11
+
12
+ declare module 'zova-module-a-openapi' {
13
+ export interface IResourceBlockRecord {
14
+ 'basic-details:blockToolbarBulk'?: ControllerBlockToolbarBulkProps;
15
+ }
16
+ }
17
+
18
+ export interface ControllerBlockToolbarBulkProps extends IResourceBlockOptionsBase {
19
+ actions?: IResourceRenderDetailsActionBulkOptionsAction[];
20
+ }
21
+
22
+ @Controller()
23
+ export class ControllerBlockToolbarBulk extends BeanControllerBase {
24
+ static $propsDefault = {};
25
+ static $componentOptions: IComponentOptions = { inheritAttrs: false, deepExtendDefault: true };
26
+
27
+ @Use({ injectionScope: 'host' })
28
+ $$renderContext: IJsxRenderContextDetails;
29
+
30
+ protected async __init__() {}
31
+
32
+ protected render() {
33
+ const domActions = this._renderActions();
34
+ if (!domActions || domActions.length === 0) return;
35
+ return (
36
+ <div class={this.$props.class}>
37
+ <div class="join">{domActions}</div>
38
+ </div>
39
+ );
40
+ }
41
+
42
+ private _renderActions() {
43
+ const { $jsx, $celScope, $$details } = this.$$renderContext;
44
+ const actions = this.$props.actions;
45
+ if (!actions || actions.length === 0) return;
46
+ const domActions: VNode[] = [];
47
+ actions.forEach((action, index) => {
48
+ const permissionHint = action.options?.permission;
49
+ if (!$$details.checkPermission(permissionHint)) return;
50
+ const options = Object.assign({ key: index }, action.options);
51
+ const domAction = $jsx.render(action.render!, options, $celScope, this.$$renderContext);
52
+ if (!domAction) return;
53
+ if (Array.isArray(domAction)) {
54
+ domActions.push(...domAction);
55
+ } else {
56
+ domActions.push(domAction);
57
+ }
58
+ });
59
+ return domActions;
60
+ }
61
+ }
@@ -0,0 +1,105 @@
1
+ import type { IComponentOptions } from 'zova';
2
+ import type {
3
+ ControllerFormField,
4
+ IFormFieldComponentOptions,
5
+ IFormFieldRenderContext,
6
+ } from 'zova-module-a-form';
7
+ import type {
8
+ IResourceFormFieldOptionsBase,
9
+ ISchemaObjectExtensionField,
10
+ TypeFormScene,
11
+ } from 'zova-module-a-openapi';
12
+
13
+ import { VNode } from 'vue';
14
+ import { BeanControllerBase, deepExtend } from 'zova';
15
+ import { ZovaJsx } from 'zova-jsx';
16
+ import { Controller } from 'zova-module-a-bean';
17
+ import { ZFormField } from 'zova-module-a-form';
18
+
19
+ declare module 'zova-module-a-openapi' {
20
+ export interface IResourceFormFieldRecord {
21
+ 'basic-details:formFieldDetails'?: IResourceFormFieldDetailsOptions;
22
+ }
23
+ }
24
+
25
+ export interface IResourceFormFieldDetailsOptions extends IResourceFormFieldOptionsBase {}
26
+
27
+ export interface ControllerFormFieldDetailsProps extends IFormFieldComponentOptions {
28
+ options?: IResourceFormFieldDetailsOptions;
29
+ }
30
+
31
+ @Controller()
32
+ export class ControllerFormFieldDetails extends BeanControllerBase {
33
+ static $propsDefault = {};
34
+ static $componentOptions: IComponentOptions = { inheritAttrs: false, deepExtendDefault: true };
35
+
36
+ jsxZova: ZovaJsx;
37
+
38
+ protected async __init__() {
39
+ // jsx
40
+ this._prepareJsx();
41
+ }
42
+
43
+ private _prepareJsx() {
44
+ this.jsxZova = this.bean._newBeanSimple(ZovaJsx, false);
45
+ }
46
+
47
+ protected render() {
48
+ return (
49
+ <ZFormField
50
+ {...this.$props}
51
+ slotDefault={(formFieldRenderContext, $$formField) => {
52
+ return this._renderBlocks(formFieldRenderContext, $$formField) ?? <></>;
53
+ }}
54
+ ></ZFormField>
55
+ );
56
+ }
57
+
58
+ private _renderBlocks(
59
+ formFieldRenderContext: IFormFieldRenderContext,
60
+ $$formField: ControllerFormField,
61
+ ) {
62
+ const { propsBucket } = formFieldRenderContext;
63
+ // schema
64
+ const schemaName = $$formField.property?.items?.$ref;
65
+ if (!schemaName) {
66
+ return <div>Should specify the detail schema</div>;
67
+ }
68
+ const schemaRow: ISchemaObjectExtensionField | undefined = this.$sdk.getSchema(
69
+ schemaName!,
70
+ ).data;
71
+ if (!schemaRow) return;
72
+ // formScene
73
+ const formScene: TypeFormScene = propsBucket.readonly
74
+ ? 'view'
75
+ : $$formField.formMeta!.formScene!;
76
+ // blocks
77
+ const blocks = schemaRow?.rest?.blocks;
78
+ if (!blocks || blocks.length === 0) return;
79
+ const domBlocks: VNode[] = [];
80
+ blocks.forEach((block, index) => {
81
+ const options = deepExtend(
82
+ { key: index },
83
+ {
84
+ formScene,
85
+ schemaRow,
86
+ getDetailItems: () => {
87
+ return propsBucket.value;
88
+ },
89
+ setDetailItems: (detailItems: any[]) => {
90
+ $$formField.setValue(detailItems);
91
+ },
92
+ },
93
+ block.options,
94
+ );
95
+ const domBlock = this.jsxZova.render(block.render!, options);
96
+ if (!domBlock) return;
97
+ if (Array.isArray(domBlock)) {
98
+ domBlocks.push(...domBlock);
99
+ } else {
100
+ domBlocks.push(domBlock);
101
+ }
102
+ });
103
+ return <div>{domBlocks}</div>;
104
+ }
105
+ }
@@ -0,0 +1,3 @@
1
+ export default {
2
+ AddDetail: 'Add Detail',
3
+ };
@@ -0,0 +1,3 @@
1
+ export default {
2
+ AddDetail: '新增明细',
3
+ };
@@ -0,0 +1,3 @@
1
+ export * from './.metadata/locales.js';
2
+ export * from './types/index.js';
3
+ export * from './.metadata/index.js';
@@ -0,0 +1,8 @@
1
+ import 'zova-module-a-openapi';
2
+ import { ControllerBlockDetails } from '../component/blockDetails/controller.jsx';
3
+
4
+ declare module 'zova-module-a-openapi' {
5
+ export interface IJsxRenderContextDetails<TData extends {} = {}> {
6
+ $$details: ControllerBlockDetails<TData>;
7
+ }
8
+ }
@@ -0,0 +1 @@
1
+ export * from './details.js';
@@ -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
+ }
@@ -14,6 +14,7 @@
14
14
  "zova-module-basic-commandssync": "^5.0.5",
15
15
  "zova-module-basic-currency": "^5.1.15",
16
16
  "zova-module-basic-date": "^5.0.6",
17
+ "zova-module-basic-details": "^5.0.0",
17
18
  "zova-module-basic-form": "^5.0.7",
18
19
  "zova-module-basic-input": "^5.0.7",
19
20
  "zova-module-basic-page": "^5.0.7",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zova-module-a-openapi",
3
- "version": "5.1.34",
3
+ "version": "5.1.36",
4
4
  "gitHead": "09d901d17140a80ee0764211b441cda72fd94663",
5
5
  "description": "",
6
6
  "keywords": [
@@ -33,6 +33,8 @@ export interface IJsxRenderSceneRecord {
33
33
  tableCell: never;
34
34
  // form: never;
35
35
  formField: never;
36
+ //
37
+ details: never;
36
38
  }
37
39
 
38
40
  export interface IPageScope {
@@ -0,0 +1,7 @@
1
+ import { IJsxRenderContextBase } from '../action.js';
2
+
3
+ export interface IDetailsScope {}
4
+
5
+ export interface IJsxRenderContextDetails extends IJsxRenderContextBase {
6
+ $celScope: IDetailsScope;
7
+ }
@@ -0,0 +1,24 @@
1
+ import { types } from 'typestyle';
2
+ import { TypeRenderComponentJsx } from 'zova-jsx';
3
+
4
+ import type { IPermissionHintDetailsActionBulk } from '../permissions.js';
5
+
6
+ export type IResourceDetailsActionBulkNameRecord = {
7
+ [KEY in keyof IResourceDetailsActionBulkRecord as KEY extends `${string}:action${infer Name}`
8
+ ? Uncapitalize<Name>
9
+ : KEY]: IResourceDetailsActionBulkRecord[KEY];
10
+ };
11
+
12
+ export interface IResourceDetailsActionBulkRecord {}
13
+
14
+ export interface IResourceDetailsActionBulkOptionsBase {
15
+ class?: any;
16
+ style?: types.NestedCSSProperties;
17
+ permission?: IPermissionHintDetailsActionBulk;
18
+ }
19
+
20
+ export interface IResourceRenderDetailsActionBulkOptionsAction {
21
+ name?: keyof IResourceDetailsActionBulkNameRecord; // not omit operationsBulk
22
+ render?: keyof IResourceDetailsActionBulkRecord | TypeRenderComponentJsx;
23
+ options?: IResourceDetailsActionBulkOptionsBase;
24
+ }
@@ -0,0 +1,24 @@
1
+ import { types } from 'typestyle';
2
+ import { TypeRenderComponentJsx } from 'zova-jsx';
3
+
4
+ import type { IPermissionHintDetailsActionRow } from '../permissions.js';
5
+
6
+ export type IResourceDetailsActionRowNameRecord = {
7
+ [KEY in keyof IResourceDetailsActionRowRecord as KEY extends `${string}:action${infer Name}`
8
+ ? Uncapitalize<Name>
9
+ : KEY]: IResourceDetailsActionRowRecord[KEY];
10
+ };
11
+
12
+ export interface IResourceDetailsActionRowRecord {}
13
+
14
+ export interface IResourceDetailsActionRowOptionsBase {
15
+ class?: any;
16
+ style?: types.NestedCSSProperties;
17
+ permission?: IPermissionHintDetailsActionRow;
18
+ }
19
+
20
+ export interface IResourceRenderDetailsActionRowOptionsAction {
21
+ name?: keyof IResourceDetailsActionRowNameRecord; // not omit operationsRow
22
+ render?: keyof IResourceDetailsActionRowRecord | TypeRenderComponentJsx;
23
+ options?: IResourceDetailsActionRowOptionsBase;
24
+ }
@@ -0,0 +1,3 @@
1
+ export * from './details.js';
2
+ export * from './detailsActionBulk.js';
3
+ export * from './detailsActionRow.js';
@@ -10,3 +10,4 @@ export * from './rest.js';
10
10
  export * from './schema.js';
11
11
  export * from './sdk.js';
12
12
  export * from './table.js';
13
+ export * from './detail/index.js';
@@ -34,3 +34,13 @@ export interface IPermissionHintTableActionBulk {
34
34
  actionInherit?: keyof IResourceTableActionBulkNameRecord;
35
35
  public?: boolean;
36
36
  }
37
+
38
+ export interface IPermissionHintDetailsActionRow {
39
+ formScene?: TypeFormScene | TypeFormScene[];
40
+ }
41
+
42
+ export interface IPermissionHintDetailsActionBulk {
43
+ // actionInherit?: keyof IResourceDetailsActionBulkNameRecord;
44
+ // public?: boolean;
45
+ formScene?: TypeFormScene | TypeFormScene[];
46
+ }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zova-suite-a-zova",
3
- "version": "5.1.103",
3
+ "version": "5.1.105",
4
4
  "gitHead": "2c5c19284bab738e492856189acb6fad74b8a7b7",
5
5
  "description": "zova",
6
6
  "license": "MIT",
@@ -22,7 +22,7 @@
22
22
  "zova-module-a-logger": "^5.1.23",
23
23
  "zova-module-a-meta": "^5.1.18",
24
24
  "zova-module-a-model": "^5.1.27",
25
- "zova-module-a-openapi": "^5.1.34",
25
+ "zova-module-a-openapi": "^5.1.36",
26
26
  "zova-module-a-router": "^5.1.26",
27
27
  "zova-module-a-routerstack": "^5.1.23",
28
28
  "zova-module-a-routertabs": "^5.1.29",