cabloy 5.1.95 → 5.1.97

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 (208) hide show
  1. package/.cabloy-version +1 -0
  2. package/.claude/skills/cabloy-backend-scaffold/references/follow-up-checklist.md +4 -1
  3. package/.claude/skills/cabloy-resource-field-update/SKILL.md +6 -3
  4. package/.github/workflows/vona-test-crud.yml +2 -0
  5. package/.github/workflows/vona-test-mysql.yml +2 -0
  6. package/.github/workflows/vona-test-pg.yml +2 -0
  7. package/.github/workflows/vona-test-sqlite3.yml +2 -0
  8. package/CHANGELOG.md +38 -0
  9. package/CLAUDE.md +1 -0
  10. package/cabloy-docs/ai/playbook-backend-module.md +6 -3
  11. package/cabloy-docs/fullstack/framework-performance.md +3 -3
  12. package/cabloy-docs/fullstack/quickstart.md +1 -1
  13. package/package.json +1 -1
  14. package/scripts/release.ts +27 -1
  15. package/vona/docker-compose-original/docker-compose-dockerfile-app +4 -0
  16. package/vona/docker-compose-original/docker-compose.original.yml +0 -1
  17. package/vona/env/.env +0 -1
  18. package/vona/env/.env.prod +0 -1
  19. package/vona/env/.env.prod.docker +0 -7
  20. package/vona/package.original.json +3 -3
  21. package/vona/packages-cli/cabloy-cli/package.json +2 -2
  22. package/vona/packages-cli/cli/package.json +1 -1
  23. package/vona/packages-cli/cli-set-api/package.json +2 -2
  24. package/vona/packages-cli/cli-set-api/src/lib/bean/cli.bin.build.ts +70 -2
  25. package/vona/packages-utils/babel-plugin-vona-bean-module/package.json +2 -2
  26. package/vona/packages-utils/module-glob/package.json +2 -2
  27. package/vona/packages-utils/module-info-pro/package.json +2 -2
  28. package/vona/packages-utils/utils/package.json +2 -2
  29. package/vona/packages-vona/vona/package.json +1 -1
  30. package/vona/packages-vona/vona-core/package.json +2 -2
  31. package/vona/packages-vona/vona-core/src/lib/addon/addon.ts +77 -0
  32. package/vona/packages-vona/vona-core/src/lib/addon/index.ts +3 -0
  33. package/vona/packages-vona/vona-core/src/lib/addon/sharp.ts +46 -0
  34. package/vona/packages-vona/vona-core/src/lib/addon/sqlite3.ts +23 -0
  35. package/vona/packages-vona/vona-core/src/lib/index.ts +1 -0
  36. package/vona/packages-vona/vona-core/src/lib/utils/index.ts +0 -1
  37. package/vona/packages-vona/vona-core/src/lib/utils/util.ts +5 -0
  38. package/vona/packages-vona/vona-mock/package.json +2 -2
  39. package/vona/pnpm-lock.yaml +441 -62
  40. package/vona/pnpm-workspace.yaml +1 -1
  41. package/vona/src/backend/cli.ts +2 -5
  42. package/vona/src/backend/config/config/config.ts +0 -4
  43. package/vona/src/suite/a-demo/modules/demo-basic/src/bean/ssrMenu.admin.ts +1 -1
  44. package/vona/src/suite/a-training/modules/training-record/src/.metadata/index.ts +26 -0
  45. package/vona/src/suite/a-training/modules/training-record/src/bean/imageScene.sceneImage.ts +11 -0
  46. package/vona/src/suite/a-training/modules/training-record/src/bean/meta.version.ts +1 -0
  47. package/vona/src/suite/a-training/modules/training-record/src/config/locale/en-us.ts +1 -0
  48. package/vona/src/suite/a-training/modules/training-record/src/config/locale/zh-cn.ts +1 -0
  49. package/vona/src/suite/a-training/modules/training-record/src/dto/recordSelectResItem.tsx +12 -0
  50. package/vona/src/suite/a-training/modules/training-record/src/dto/recordView.tsx +12 -0
  51. package/vona/src/suite/a-training/modules/training-record/src/entity/record.tsx +26 -1
  52. package/vona/src/suite/a-training/modules/training-record/src/index.ts +1 -0
  53. package/vona/src/suite/a-training/modules/training-student/src/.metadata/index.ts +27 -1
  54. package/vona/src/suite/a-training/modules/training-student/src/bean/imageScene.studentImage.ts +10 -0
  55. package/vona/src/suite/a-training/modules/training-student/src/bean/meta.version.ts +1 -0
  56. package/vona/src/suite/a-training/modules/training-student/src/config/locale/en-us.ts +1 -0
  57. package/vona/src/suite/a-training/modules/training-student/src/config/locale/zh-cn.ts +1 -0
  58. package/vona/src/suite/a-training/modules/training-student/src/dto/detailRecordBase.tsx +16 -2
  59. package/vona/src/suite/a-training/modules/training-student/src/dto/studentCreate.tsx +1 -1
  60. package/vona/src/suite/a-training/modules/training-student/src/dto/studentSelectResItem.tsx +12 -0
  61. package/vona/src/suite/a-training/modules/training-student/src/dto/studentUpdate.tsx +1 -1
  62. package/vona/src/suite/a-training/modules/training-student/src/dto/studentView.tsx +13 -1
  63. package/vona/src/suite/a-training/modules/training-student/src/entity/student.tsx +26 -1
  64. package/vona/src/suite/a-training/modules/training-student/src/index.ts +1 -0
  65. package/vona/src/suite/a-training/modules/training-student/src/model/student.ts +1 -0
  66. package/vona/src/suite-vendor/a-auth/modules/a-auth/package.json +1 -1
  67. package/vona/src/suite-vendor/a-auth/modules/a-auth/src/bean/bean.authProvider.ts +2 -5
  68. package/vona/src/suite-vendor/a-auth/package.json +1 -1
  69. package/vona/src/suite-vendor/a-image/modules/a-image/cli/imageProvider/boilerplate/{{sceneName}}.{{beanName}}.ts_ +23 -0
  70. package/vona/src/suite-vendor/a-image/modules/a-image/cli/imageScene/boilerplate/{{sceneName}}.{{beanName}}.ts_ +5 -0
  71. package/vona/src/suite-vendor/a-image/modules/a-image/package.json +68 -0
  72. package/vona/src/suite-vendor/a-image/modules/a-image/src/.metadata/index.ts +482 -0
  73. package/vona/src/suite-vendor/a-image/modules/a-image/src/.metadata/locales.ts +18 -0
  74. package/vona/src/suite-vendor/a-image/modules/a-image/src/.metadata/this.ts +2 -0
  75. package/vona/src/suite-vendor/a-image/modules/a-image/src/bean/bean.image.ts +443 -0
  76. package/vona/src/suite-vendor/a-image/modules/a-image/src/bean/bean.imageProvider.ts +55 -0
  77. package/vona/src/suite-vendor/a-image/modules/a-image/src/bean/bean.imageUploadPolicy.ts +174 -0
  78. package/vona/src/suite-vendor/a-image/modules/a-image/src/bean/meta.redlock.ts +11 -0
  79. package/vona/src/suite-vendor/a-image/modules/a-image/src/bean/meta.version.ts +40 -0
  80. package/vona/src/suite-vendor/a-image/modules/a-image/src/bean/serializerTransform.resolveView.ts +44 -0
  81. package/vona/src/suite-vendor/a-image/modules/a-image/src/bean/serializerTransform.resolveViews.ts +44 -0
  82. package/vona/src/suite-vendor/a-image/modules/a-image/src/config/config.ts +17 -0
  83. package/vona/src/suite-vendor/a-image/modules/a-image/src/config/locale/en-us.ts +1 -0
  84. package/vona/src/suite-vendor/a-image/modules/a-image/src/config/locale/zh-cn.ts +1 -0
  85. package/vona/src/suite-vendor/a-image/modules/a-image/src/controller/image.ts +165 -0
  86. package/vona/src/suite-vendor/a-image/modules/a-image/src/dto/imageDeliveryRequest.ts +20 -0
  87. package/vona/src/suite-vendor/a-image/modules/a-image/src/dto/imageDirectUploadRequest.ts +36 -0
  88. package/vona/src/suite-vendor/a-image/modules/a-image/src/dto/imageDirectUploadResponse.ts +38 -0
  89. package/vona/src/suite-vendor/a-image/modules/a-image/src/dto/imageTransformOptions.tsx +42 -0
  90. package/vona/src/suite-vendor/a-image/modules/a-image/src/dto/imageUploadResponse.ts +62 -0
  91. package/vona/src/suite-vendor/a-image/modules/a-image/src/dto/imageUploadTokenRequest.ts +24 -0
  92. package/vona/src/suite-vendor/a-image/modules/a-image/src/dto/imageUploadTokenResponse.ts +16 -0
  93. package/vona/src/suite-vendor/a-image/modules/a-image/src/dto/imageUploadUrlRequest.ts +33 -0
  94. package/vona/src/suite-vendor/a-image/modules/a-image/src/dto/imageView.ts +46 -0
  95. package/vona/src/suite-vendor/a-image/modules/a-image/src/entity/image.ts +58 -0
  96. package/vona/src/suite-vendor/a-image/modules/a-image/src/entity/imageProvider.ts +24 -0
  97. package/vona/src/suite-vendor/a-image/modules/a-image/src/index.ts +4 -0
  98. package/vona/src/suite-vendor/a-image/modules/a-image/src/lib/imageProvider.ts +9 -0
  99. package/vona/src/suite-vendor/a-image/modules/a-image/src/lib/imageScene.ts +7 -0
  100. package/vona/src/suite-vendor/a-image/modules/a-image/src/lib/imageVariant.ts +46 -0
  101. package/vona/src/suite-vendor/a-image/modules/a-image/src/lib/index.ts +3 -0
  102. package/vona/src/suite-vendor/a-image/modules/a-image/src/model/image.ts +10 -0
  103. package/vona/src/suite-vendor/a-image/modules/a-image/src/model/imageProvider.ts +10 -0
  104. package/vona/src/suite-vendor/a-image/modules/a-image/src/types/image.ts +208 -0
  105. package/vona/src/suite-vendor/a-image/modules/a-image/src/types/imageProvider.ts +110 -0
  106. package/vona/src/suite-vendor/a-image/modules/a-image/src/types/imageScene.ts +52 -0
  107. package/vona/src/suite-vendor/a-image/modules/a-image/src/types/index.ts +3 -0
  108. package/vona/src/suite-vendor/a-image/modules/a-image/tsconfig.build.json +11 -0
  109. package/vona/src/suite-vendor/a-image/modules/a-image/tsconfig.json +7 -0
  110. package/vona/src/suite-vendor/a-image/modules/image-cloudflare/package.json +49 -0
  111. package/vona/src/suite-vendor/a-image/modules/image-cloudflare/src/.metadata/index.ts +89 -0
  112. package/vona/src/suite-vendor/a-image/modules/image-cloudflare/src/.metadata/this.ts +2 -0
  113. package/vona/src/suite-vendor/a-image/modules/image-cloudflare/src/bean/imageProvider.cloudflare.ts +155 -0
  114. package/vona/src/suite-vendor/a-image/modules/image-cloudflare/src/index.ts +1 -0
  115. package/vona/src/suite-vendor/a-image/modules/image-cloudflare/src/lib/cloudflareImageUrl.ts +112 -0
  116. package/vona/src/suite-vendor/a-image/modules/image-cloudflare/src/service/imageCloudflare.ts +273 -0
  117. package/vona/src/suite-vendor/a-image/modules/image-cloudflare/tsconfig.build.json +11 -0
  118. package/vona/src/suite-vendor/a-image/modules/image-cloudflare/tsconfig.json +7 -0
  119. package/vona/src/suite-vendor/a-image/modules/image-native/package.json +63 -0
  120. package/vona/src/suite-vendor/a-image/modules/image-native/src/.metadata/index.ts +114 -0
  121. package/vona/src/suite-vendor/a-image/modules/image-native/src/.metadata/this.ts +2 -0
  122. package/vona/src/suite-vendor/a-image/modules/image-native/src/bean/imageProvider.native.ts +131 -0
  123. package/vona/src/suite-vendor/a-image/modules/image-native/src/config/config.ts +11 -0
  124. package/vona/src/suite-vendor/a-image/modules/image-native/src/index.ts +1 -0
  125. package/vona/src/suite-vendor/a-image/modules/image-native/src/monkey.ts +33 -0
  126. package/vona/src/suite-vendor/a-image/modules/image-native/src/service/imageNative.ts +291 -0
  127. package/vona/src/suite-vendor/a-image/modules/image-native/tsconfig.build.json +11 -0
  128. package/vona/src/suite-vendor/a-image/modules/image-native/tsconfig.json +7 -0
  129. package/vona/src/suite-vendor/a-image/package.json +14 -0
  130. package/vona/src/suite-vendor/a-image/tsconfig.base.json +4 -0
  131. package/vona/src/suite-vendor/a-image/tsconfig.json +16 -0
  132. package/vona/src/suite-vendor/a-vona/modules/a-core/package.json +2 -2
  133. package/vona/src/suite-vendor/a-vona/modules/a-jwt/package.json +1 -1
  134. package/vona/src/suite-vendor/a-vona/modules/a-jwt/src/service/jwtClient.ts +5 -0
  135. package/vona/src/suite-vendor/a-vona/modules/a-jwt/src/types/jwt.ts +1 -0
  136. package/vona/src/suite-vendor/a-vona/modules/a-openapiutils/package.json +1 -1
  137. package/vona/src/suite-vendor/a-vona/modules/a-openapiutils/src/lib/schema/makeSchemaLikes.ts +6 -3
  138. package/vona/src/suite-vendor/a-vona/modules/a-openapiutils/src/lib/utils.ts +13 -7
  139. package/vona/src/suite-vendor/a-vona/modules/a-orm/package.json +1 -1
  140. package/vona/src/suite-vendor/a-vona/modules/a-orm/src/types/database.ts +0 -1
  141. package/vona/src/suite-vendor/a-vona/modules/a-ormdialect/package.json +9 -1
  142. package/vona/src/suite-vendor/a-vona/modules/a-upload/package.json +1 -1
  143. package/vona/src/suite-vendor/a-vona/modules/a-upload/src/bean/interceptor.upload.ts +39 -7
  144. package/vona/src/suite-vendor/a-vona/package.json +1 -1
  145. package/zova/packages-cli/cli/package.json +3 -3
  146. package/zova/packages-cli/cli-set-front/package.json +9 -9
  147. package/zova/packages-cli/cli-set-front/src/lib/bean/cli.openapi.generate.ts +20 -10
  148. package/zova/packages-utils/babel-plugin-zova-bean-module/package.json +2 -2
  149. package/zova/packages-utils/babel-plugin-zova-bean-use/package.json +2 -2
  150. package/zova/packages-utils/babel-plugin-zova-behavior/package.json +2 -2
  151. package/zova/packages-utils/babel-plugin-zova-component/package.json +2 -2
  152. package/zova/packages-utils/zova-jsx/package.json +3 -3
  153. package/zova/packages-utils/zova-vite/package.json +7 -7
  154. package/zova/packages-zova/zova/package.json +3 -3
  155. package/zova/packages-zova/zova-core/package.json +3 -3
  156. package/zova/pnpm-lock.yaml +126 -74
  157. package/zova/src/suite/a-home/modules/home-api/src/api/captcha.ts +3 -1
  158. package/zova/src/suite/a-home/modules/home-api/src/api/home.ts +3 -1
  159. package/zova/src/suite/a-home/modules/home-api/src/api/homeBaseMenu.ts +3 -1
  160. package/zova/src/suite/a-home/modules/home-api/src/api/homeBasePermission.ts +3 -1
  161. package/zova/src/suite/a-home/modules/home-api/src/api/homeUserPassport.ts +22 -20
  162. package/zova/src/suite/a-home/modules/home-api/src/api/openapi/schemas.ts +163 -53
  163. package/zova/src/suite/a-home/modules/home-api/src/api/openapi/types.ts +2060 -675
  164. package/zova/src/suite/a-home/modules/home-api/src/api/testSsrToolOne.ts +3 -1
  165. package/zova/src/suite/a-home/modules/home-api/src/apiSchema/captcha.ts +3 -1
  166. package/zova/src/suite/a-home/modules/home-api/src/apiSchema/home.ts +3 -1
  167. package/zova/src/suite/a-home/modules/home-api/src/apiSchema/homeBaseMenu.ts +3 -1
  168. package/zova/src/suite/a-home/modules/home-api/src/apiSchema/homeBasePermission.ts +3 -1
  169. package/zova/src/suite/a-home/modules/home-api/src/apiSchema/homeUserPassport.ts +13 -11
  170. package/zova/src/suite/a-home/modules/home-api/src/apiSchema/testSsrToolOne.ts +3 -1
  171. package/zova/src/suite/a-training/modules/training-student/src/api/openapi/schemas.ts +54 -16
  172. package/zova/src/suite/a-training/modules/training-student/src/api/openapi/types.ts +468 -8
  173. package/zova/src/suite/a-training/modules/training-student/src/apiSchema/trainingStudent.ts +3 -1
  174. package/zova/src/suite/cabloy-basic/modules/basic-details/src/bean/tableCell.actionUpdate.tsx +1 -1
  175. package/zova/src/suite/cabloy-basic/modules/basic-details/src/component/actionCreate/controller.tsx +1 -1
  176. package/zova/src/suite/cabloy-basic/modules/basic-details/src/service/detail.tsx +53 -1
  177. package/zova/src/suite/cabloy-basic/modules/basic-image/cli/openapi.config.ts +9 -0
  178. package/zova/src/suite/cabloy-basic/modules/basic-image/package.json +60 -0
  179. package/zova/src/suite/cabloy-basic/modules/basic-image/src/.metadata/component/formFieldImage.ts +31 -0
  180. package/zova/src/suite/cabloy-basic/modules/basic-image/src/.metadata/index.ts +191 -0
  181. package/zova/src/suite/cabloy-basic/modules/basic-image/src/.metadata/locales.ts +7 -0
  182. package/zova/src/suite/cabloy-basic/modules/basic-image/src/.metadata/this.ts +2 -0
  183. package/zova/src/suite/cabloy-basic/modules/basic-image/src/api/image.ts +104 -0
  184. package/zova/src/suite/cabloy-basic/modules/basic-image/src/api/openapi/baseURL.ts +5 -0
  185. package/zova/src/suite/cabloy-basic/modules/basic-image/src/api/openapi/index.ts +3 -0
  186. package/zova/src/suite/cabloy-basic/modules/basic-image/src/api/openapi/schemas.ts +262 -0
  187. package/zova/src/suite/cabloy-basic/modules/basic-image/src/api/openapi/types.ts +5159 -0
  188. package/zova/src/suite/cabloy-basic/modules/basic-image/src/apiSchema/image.ts +35 -0
  189. package/zova/src/suite/cabloy-basic/modules/basic-image/src/bean/tableCell.image.tsx +200 -0
  190. package/zova/src/suite/cabloy-basic/modules/basic-image/src/component/formFieldImage/controller.tsx +781 -0
  191. package/zova/src/suite/cabloy-basic/modules/basic-image/src/config/locale/en-us.ts +18 -0
  192. package/zova/src/suite/cabloy-basic/modules/basic-image/src/config/locale/zh-cn.ts +18 -0
  193. package/zova/src/suite/cabloy-basic/modules/basic-image/src/index.ts +4 -0
  194. package/zova/src/suite/cabloy-basic/modules/basic-image/src/lib/index.ts +2 -0
  195. package/zova/src/suite/cabloy-basic/modules/basic-image/src/lib/preview.ts +105 -0
  196. package/zova/src/suite/cabloy-basic/modules/basic-image/src/lib/previewDialog.tsx +190 -0
  197. package/zova/src/suite/cabloy-basic/modules/basic-image/src/types/image.ts +5 -0
  198. package/zova/src/suite/cabloy-basic/modules/basic-image/src/types/index.ts +1 -0
  199. package/zova/src/suite/cabloy-basic/modules/basic-image/tsconfig.build.json +13 -0
  200. package/zova/src/suite/cabloy-basic/modules/basic-image/tsconfig.json +5 -0
  201. package/zova/src/suite/cabloy-basic/package.json +1 -0
  202. package/zova/src/suite-vendor/a-zova/modules/a-openapi/package.json +1 -1
  203. package/zova/src/suite-vendor/a-zova/modules/a-openapi/src/types/image.ts +1 -0
  204. package/zova/src/suite-vendor/a-zova/modules/a-openapi/src/types/index.ts +1 -0
  205. package/zova/src/suite-vendor/a-zova/modules/a-zova/package.json +5 -5
  206. package/zova/src/suite-vendor/a-zova/package.json +3 -3
  207. package/vona/packages-vona/vona-core/src/lib/utils/sqlite3.ts +0 -50
  208. /package/vona/patches/{zova-core@5.1.75.patch → zova-core@5.1.76.patch} +0 -0
@@ -400,6 +400,86 @@ export interface paths {
400
400
  patch?: never;
401
401
  trace?: never;
402
402
  };
403
+ '/api/image/upload-token': {
404
+ parameters: {
405
+ query?: never;
406
+ header?: never;
407
+ path?: never;
408
+ cookie?: never;
409
+ };
410
+ get?: never;
411
+ put?: never;
412
+ post: operations['Image_createUploadToken'];
413
+ delete?: never;
414
+ options?: never;
415
+ head?: never;
416
+ patch?: never;
417
+ trace?: never;
418
+ };
419
+ '/api/image/upload': {
420
+ parameters: {
421
+ query?: never;
422
+ header?: never;
423
+ path?: never;
424
+ cookie?: never;
425
+ };
426
+ get?: never;
427
+ put?: never;
428
+ post: operations['Image_upload'];
429
+ delete?: never;
430
+ options?: never;
431
+ head?: never;
432
+ patch?: never;
433
+ trace?: never;
434
+ };
435
+ '/api/image/direct-upload': {
436
+ parameters: {
437
+ query?: never;
438
+ header?: never;
439
+ path?: never;
440
+ cookie?: never;
441
+ };
442
+ get?: never;
443
+ put?: never;
444
+ post: operations['Image_createDirectUpload'];
445
+ delete?: never;
446
+ options?: never;
447
+ head?: never;
448
+ patch?: never;
449
+ trace?: never;
450
+ };
451
+ '/api/image/upload-url': {
452
+ parameters: {
453
+ query?: never;
454
+ header?: never;
455
+ path?: never;
456
+ cookie?: never;
457
+ };
458
+ get?: never;
459
+ put?: never;
460
+ post: operations['Image_uploadUrl'];
461
+ delete?: never;
462
+ options?: never;
463
+ head?: never;
464
+ patch?: never;
465
+ trace?: never;
466
+ };
467
+ '/api/image/delivery/{imageId}': {
468
+ parameters: {
469
+ query?: never;
470
+ header?: never;
471
+ path?: never;
472
+ cookie?: never;
473
+ };
474
+ get: operations['Image_delivery'];
475
+ put?: never;
476
+ post?: never;
477
+ delete?: never;
478
+ options?: never;
479
+ head?: never;
480
+ patch?: never;
481
+ trace?: never;
482
+ };
403
483
  '/api/paypal/getRecord/{recordId}': {
404
484
  parameters: {
405
485
  query?: never;
@@ -1337,9 +1417,9 @@ export interface components {
1337
1417
  'home-user.dto.login': {
1338
1418
  username: string;
1339
1419
  password: string;
1340
- captcha: components['schemas']['a-captcha.dto.captchaVerify_67c39cad0735f2460ecc6bef838440b07c4dcfa9_f73253d699f0fd90b98fded80a123a0a180dbca2_626802c24df1498cec99aab0854fedf90c9b6dd3'];
1420
+ captcha: components['schemas']['a-captcha.dto.captchaVerify_67c39cad0735f2460ecc6bef838440b07c4dcfa9_f73253d699f0fd90b98fded80a123a0a180dbca2_144c29cc01b745c0021a6682766a475fe639fb8f_626802c24df1498cec99aab0854fedf90c9b6dd3_9aa4df25b9311e645e1c9dfbe6b7ece6398da661'];
1341
1421
  };
1342
- 'a-captcha.dto.captchaVerify_67c39cad0735f2460ecc6bef838440b07c4dcfa9_f73253d699f0fd90b98fded80a123a0a180dbca2_626802c24df1498cec99aab0854fedf90c9b6dd3': {
1422
+ 'a-captcha.dto.captchaVerify_67c39cad0735f2460ecc6bef838440b07c4dcfa9_f73253d699f0fd90b98fded80a123a0a180dbca2_144c29cc01b745c0021a6682766a475fe639fb8f_626802c24df1498cec99aab0854fedf90c9b6dd3_9aa4df25b9311e645e1c9dfbe6b7ece6398da661': {
1343
1423
  id: string;
1344
1424
  token: string;
1345
1425
  };
@@ -1359,6 +1439,8 @@ export interface components {
1359
1439
  * @description Training Time
1360
1440
  */
1361
1441
  trainingTime?: Date;
1442
+ /** @description Scene Photos */
1443
+ sceneImageIds?: (number | string)[] | undefined;
1362
1444
  /** @description Description */
1363
1445
  description?: string | undefined;
1364
1446
  /** @description Student Training Record Details */
@@ -1440,12 +1522,47 @@ export interface components {
1440
1522
  * @description Training Time
1441
1523
  */
1442
1524
  trainingTime?: Date;
1525
+ /** @description Scene Photos */
1526
+ sceneImageIds?: (number | string)[] | undefined;
1443
1527
  /** @description Description */
1444
1528
  description?: string | undefined;
1529
+ sceneImages?: components['schemas']['a-image.dto.imageView'][] | undefined;
1445
1530
  /** @description Operations */
1446
1531
  _operationsRow?: unknown;
1447
1532
  };
1448
- 'training-record.dto.recordView_2d063d28bc7243bed02ebd8bddf1212a93c6305b':
1533
+ 'a-image.dto.imageView': {
1534
+ id: number | string;
1535
+ url: string;
1536
+ filename?: string | undefined;
1537
+ width?: number | undefined;
1538
+ height?: number | undefined;
1539
+ provider: string;
1540
+ clientName: string;
1541
+ imageScene?: unknown;
1542
+ /** Format: date-time */
1543
+ uploadedAt?: Date;
1544
+ variants?:
1545
+ | {
1546
+ [key: string]: components['schemas']['a-image.dto.imageTransformOptions'];
1547
+ }
1548
+ | undefined;
1549
+ };
1550
+ 'a-image.dto.imageTransformOptions': {
1551
+ width?: number | undefined;
1552
+ height?: number | undefined;
1553
+ /** @enum {string|null} */
1554
+ fit?: 'scale-down' | 'contain' | 'cover' | 'crop' | 'pad' | null | undefined;
1555
+ /** @enum {string|null} */
1556
+ gravity?: 'auto' | 'center' | 'top' | 'bottom' | 'left' | 'right' | null | undefined;
1557
+ background?: string | undefined;
1558
+ quality?: number | undefined;
1559
+ /** @enum {string|null} */
1560
+ format?: 'auto' | 'avif' | 'webp' | 'jpeg' | 'png' | null | undefined;
1561
+ dpr?: number | undefined;
1562
+ rotate?: number | undefined;
1563
+ sharpen?: number | undefined;
1564
+ };
1565
+ 'training-record.dto.recordView_2d063d28bc7243bed02ebd8bddf1212a93c6305b_425dbecccd52e19e24888f99e1b1670233afa875':
1449
1566
  | {
1450
1567
  /**
1451
1568
  * Format: date-time
@@ -1484,6 +1601,8 @@ export interface components {
1484
1601
  * @description Training Time
1485
1602
  */
1486
1603
  trainingTime?: Date;
1604
+ /** @description Scene Photos */
1605
+ sceneImageIds?: (number | string)[] | undefined;
1487
1606
  /** @description Description */
1488
1607
  description?: string | undefined;
1489
1608
  /** @description Student Training Record Details */
@@ -1502,6 +1621,7 @@ export interface components {
1502
1621
  /** @description Description */
1503
1622
  description?: string | undefined;
1504
1623
  }[];
1624
+ sceneImages?: components['schemas']['a-image.dto.imageView'][] | undefined;
1505
1625
  _trainingRecordSubjects?:
1506
1626
  | components['schemas']['training-record.dto.detailRecordSubjectResItem'][]
1507
1627
  | undefined;
@@ -1523,6 +1643,8 @@ export interface components {
1523
1643
  * @description Training Time
1524
1644
  */
1525
1645
  trainingTime?: Date;
1646
+ /** @description Scene Photos */
1647
+ sceneImageIds?: (number | string)[] | undefined;
1526
1648
  /** @description Description */
1527
1649
  description?: string | undefined;
1528
1650
  /** @description Student Training Record Details */
@@ -1554,6 +1676,8 @@ export interface components {
1554
1676
  description?: string | undefined;
1555
1677
  /** @description Mobile */
1556
1678
  mobile: string;
1679
+ /** @description Student Image */
1680
+ imageId?: number | string | undefined;
1557
1681
  /** @description Training Stage */
1558
1682
  level: 1 | 2 | 3;
1559
1683
  /** @description Student Training Records */
@@ -1572,6 +1696,8 @@ export interface components {
1572
1696
  * @description Training Time
1573
1697
  */
1574
1698
  trainingTime?: Date;
1699
+ /** @description Scene Photos */
1700
+ sceneImageIds?: (number | string)[] | undefined;
1575
1701
  /** @description Description */
1576
1702
  description?: string | undefined;
1577
1703
  /** @description Student Training Record Details */
@@ -1592,6 +1718,25 @@ export interface components {
1592
1718
  description?: string | undefined;
1593
1719
  }[]
1594
1720
  | undefined;
1721
+ sceneImages?:
1722
+ | {
1723
+ id?: number | string | undefined;
1724
+ url?: string | undefined;
1725
+ filename?: string | undefined;
1726
+ width?: number | undefined;
1727
+ height?: number | undefined;
1728
+ provider?: string | undefined;
1729
+ clientName?: string | undefined;
1730
+ imageScene?: unknown;
1731
+ /** Format: date-time */
1732
+ uploadedAt?: Date;
1733
+ variants?:
1734
+ | {
1735
+ [key: string]: components['schemas']['a-image.dto.imageTransformOptions'];
1736
+ }
1737
+ | undefined;
1738
+ }[]
1739
+ | undefined;
1595
1740
  _trainingRecordSubjects?:
1596
1741
  | components['schemas']['training-record.dto.detailRecordSubjectResItem'][]
1597
1742
  | undefined;
@@ -1622,10 +1767,31 @@ export interface components {
1622
1767
  * @description Training Time
1623
1768
  */
1624
1769
  trainingTime?: Date;
1770
+ /** @description Scene Photos */
1771
+ sceneImageIds?: (number | string)[] | undefined;
1625
1772
  /** @description Description */
1626
1773
  description?: string | undefined;
1627
1774
  /** @description Student Training Record Details */
1628
1775
  trainingRecordSubjects?: unknown;
1776
+ sceneImages?:
1777
+ | {
1778
+ id?: number | string | undefined;
1779
+ url?: string | undefined;
1780
+ filename?: string | undefined;
1781
+ width?: number | undefined;
1782
+ height?: number | undefined;
1783
+ provider?: string | undefined;
1784
+ clientName?: string | undefined;
1785
+ imageScene?: unknown;
1786
+ /** Format: date-time */
1787
+ uploadedAt?: Date;
1788
+ variants?:
1789
+ | {
1790
+ [key: string]: components['schemas']['a-image.dto.imageTransformOptions'];
1791
+ }
1792
+ | undefined;
1793
+ }[]
1794
+ | undefined;
1629
1795
  /** @description # */
1630
1796
  _lineNumber: number;
1631
1797
  /** @description Operations */
@@ -1667,12 +1833,34 @@ export interface components {
1667
1833
  description?: string | undefined;
1668
1834
  /** @description Mobile */
1669
1835
  mobile: string;
1836
+ /** @description Student Image */
1837
+ imageId?: number | string | undefined;
1670
1838
  /** @description Training Stage */
1671
1839
  level: 1 | 2 | 3;
1840
+ image?: components['schemas']['a-image.dto.imageView_a83c3e638bca4b30ec8675860cdc52d66f6a16d1_2d063d28bc7243bed02ebd8bddf1212a93c6305b_efb37794d7c03c65122279f90d79919f009c34e5_1816ff740d81c738ec055c7038bbd93beb9405a7_537cd6552a384183a9457fb6a920bbae337277f6'];
1672
1841
  /** @description Operations */
1673
1842
  _operationsRow?: unknown;
1674
1843
  };
1675
- 'training-student.dto.studentView_2d063d28bc7243bed02ebd8bddf1212a93c6305b':
1844
+ 'a-image.dto.imageView_a83c3e638bca4b30ec8675860cdc52d66f6a16d1_2d063d28bc7243bed02ebd8bddf1212a93c6305b_efb37794d7c03c65122279f90d79919f009c34e5_1816ff740d81c738ec055c7038bbd93beb9405a7_537cd6552a384183a9457fb6a920bbae337277f6':
1845
+ | {
1846
+ id: number | string;
1847
+ url: string;
1848
+ filename?: string | undefined;
1849
+ width?: number | undefined;
1850
+ height?: number | undefined;
1851
+ provider: string;
1852
+ clientName: string;
1853
+ imageScene?: unknown;
1854
+ /** Format: date-time */
1855
+ uploadedAt?: Date;
1856
+ variants?:
1857
+ | {
1858
+ [key: string]: components['schemas']['a-image.dto.imageTransformOptions'];
1859
+ }
1860
+ | undefined;
1861
+ }
1862
+ | undefined;
1863
+ 'training-student.dto.studentView_2d063d28bc7243bed02ebd8bddf1212a93c6305b_425dbecccd52e19e24888f99e1b1670233afa875':
1676
1864
  | {
1677
1865
  /**
1678
1866
  * Format: date-time
@@ -1702,6 +1890,8 @@ export interface components {
1702
1890
  description?: string | undefined;
1703
1891
  /** @description Mobile */
1704
1892
  mobile: string;
1893
+ /** @description Student Image */
1894
+ imageId?: number | string | undefined;
1705
1895
  /** @description Training Stage */
1706
1896
  level: 1 | 2 | 3;
1707
1897
  /** @description Student Training Records */
@@ -1726,6 +1916,8 @@ export interface components {
1726
1916
  * @description Training Time
1727
1917
  */
1728
1918
  trainingTime?: Date;
1919
+ /** @description Scene Photos */
1920
+ sceneImageIds?: (number | string)[] | undefined;
1729
1921
  /** @description Description */
1730
1922
  description?: string | undefined;
1731
1923
  /** @description Student Training Record Details */
@@ -1744,10 +1936,30 @@ export interface components {
1744
1936
  /** @description Description */
1745
1937
  description?: string | undefined;
1746
1938
  }[];
1939
+ sceneImages?:
1940
+ | {
1941
+ id?: number | string | undefined;
1942
+ url?: string | undefined;
1943
+ filename?: string | undefined;
1944
+ width?: number | undefined;
1945
+ height?: number | undefined;
1946
+ provider?: string | undefined;
1947
+ clientName?: string | undefined;
1948
+ imageScene?: unknown;
1949
+ /** Format: date-time */
1950
+ uploadedAt?: Date;
1951
+ variants?:
1952
+ | {
1953
+ [key: string]: components['schemas']['a-image.dto.imageTransformOptions'];
1954
+ }
1955
+ | undefined;
1956
+ }[]
1957
+ | undefined;
1747
1958
  _trainingRecordSubjects?:
1748
1959
  | components['schemas']['training-record.dto.detailRecordSubjectResItem'][]
1749
1960
  | undefined;
1750
1961
  }[];
1962
+ image?: components['schemas']['a-image.dto.imageView_a83c3e638bca4b30ec8675860cdc52d66f6a16d1_2d063d28bc7243bed02ebd8bddf1212a93c6305b_efb37794d7c03c65122279f90d79919f009c34e5_1816ff740d81c738ec055c7038bbd93beb9405a7_537cd6552a384183a9457fb6a920bbae337277f6'];
1751
1963
  _trainingRecords?:
1752
1964
  | components['schemas']['training-student.dto.detailRecordResItem'][]
1753
1965
  | undefined;
@@ -1760,6 +1972,8 @@ export interface components {
1760
1972
  description?: string | undefined;
1761
1973
  /** @description Mobile */
1762
1974
  mobile: string;
1975
+ /** @description Student Image */
1976
+ imageId?: number | string | undefined;
1763
1977
  /** @description Training Stage */
1764
1978
  level: 1 | 2 | 3;
1765
1979
  /** @description Student Training Records */
@@ -1785,6 +1999,8 @@ export interface components {
1785
1999
  * @description Training Time
1786
2000
  */
1787
2001
  trainingTime?: Date;
2002
+ /** @description Scene Photos */
2003
+ sceneImageIds?: (number | string)[] | undefined;
1788
2004
  /** @description Description */
1789
2005
  description?: string | undefined;
1790
2006
  /** @description Student Training Record Details */
@@ -1805,6 +2021,25 @@ export interface components {
1805
2021
  description?: string | undefined;
1806
2022
  }[]
1807
2023
  | undefined;
2024
+ sceneImages?:
2025
+ | {
2026
+ id?: number | string | undefined;
2027
+ url?: string | undefined;
2028
+ filename?: string | undefined;
2029
+ width?: number | undefined;
2030
+ height?: number | undefined;
2031
+ provider?: string | undefined;
2032
+ clientName?: string | undefined;
2033
+ imageScene?: unknown;
2034
+ /** Format: date-time */
2035
+ uploadedAt?: Date;
2036
+ variants?:
2037
+ | {
2038
+ [key: string]: components['schemas']['a-image.dto.imageTransformOptions'];
2039
+ }
2040
+ | undefined;
2041
+ }[]
2042
+ | undefined;
1808
2043
  _trainingRecordSubjects?:
1809
2044
  | components['schemas']['training-record.dto.detailRecordSubjectResItem'][]
1810
2045
  | undefined;
@@ -1833,6 +2068,85 @@ export interface components {
1833
2068
  summaryText: string;
1834
2069
  }
1835
2070
  | undefined;
2071
+ 'a-image.dto.imageUploadTokenResponse': {
2072
+ token: string;
2073
+ expiresIn?: number | undefined;
2074
+ };
2075
+ 'a-image.dto.imageUploadTokenRequest': {
2076
+ imageScene: string;
2077
+ size: number;
2078
+ mimeType: string;
2079
+ expiresIn?: number | undefined;
2080
+ };
2081
+ 'a-image.dto.imageUploadResponse': {
2082
+ id: number | string;
2083
+ provider: string;
2084
+ clientName: string;
2085
+ resourceId: string;
2086
+ filename?: string | undefined;
2087
+ contentType?: string | undefined;
2088
+ size?: number | undefined;
2089
+ width?: number | undefined;
2090
+ height?: number | undefined;
2091
+ requireSignedURLs?: boolean | undefined;
2092
+ variants?:
2093
+ | {
2094
+ [key: string]: components['schemas']['a-image.dto.imageTransformOptions'];
2095
+ }
2096
+ | undefined;
2097
+ imageScene?: string | undefined;
2098
+ /** Format: date-time */
2099
+ uploadedAt?: Date;
2100
+ url?: string | undefined;
2101
+ signed?: boolean | undefined;
2102
+ };
2103
+ 'a-image.dto.imageDirectUploadResponse': {
2104
+ id: number | string;
2105
+ provider: string;
2106
+ clientName: string;
2107
+ resourceId: string;
2108
+ uploadUrl: string;
2109
+ draft?: boolean | undefined;
2110
+ filename?: string | undefined;
2111
+ imageScene?: string | undefined;
2112
+ };
2113
+ 'a-image.dto.imageDirectUploadRequest': {
2114
+ imageScene: string;
2115
+ filename?: string | undefined;
2116
+ size: number;
2117
+ mimeType: string;
2118
+ contentType?: string | undefined;
2119
+ requireSignedURLs?: boolean | undefined;
2120
+ expiry?: string | undefined;
2121
+ customId?: string | undefined;
2122
+ };
2123
+ 'a-image.dto.imageUploadUrlRequest': {
2124
+ imageScene: string;
2125
+ /** Format: uri */
2126
+ url: string;
2127
+ size: number;
2128
+ mimeType: string;
2129
+ filename?: string | undefined;
2130
+ contentType?: string | undefined;
2131
+ requireSignedURLs?: boolean | undefined;
2132
+ };
2133
+ 'a-image.dto.imageTransformOptions_2d063d28bc7243bed02ebd8bddf1212a93c6305b':
2134
+ | {
2135
+ width?: number | undefined;
2136
+ height?: number | undefined;
2137
+ /** @enum {string|null} */
2138
+ fit?: 'scale-down' | 'contain' | 'cover' | 'crop' | 'pad' | null | undefined;
2139
+ /** @enum {string|null} */
2140
+ gravity?: 'auto' | 'center' | 'top' | 'bottom' | 'left' | 'right' | null | undefined;
2141
+ background?: string | undefined;
2142
+ quality?: number | undefined;
2143
+ /** @enum {string|null} */
2144
+ format?: 'auto' | 'avif' | 'webp' | 'jpeg' | 'png' | null | undefined;
2145
+ dpr?: number | undefined;
2146
+ rotate?: number | undefined;
2147
+ sharpen?: number | undefined;
2148
+ }
2149
+ | undefined;
1836
2150
  'a-paypal.entity.paypalRecord': {
1837
2151
  /**
1838
2152
  * Format: date-time
@@ -1943,7 +2257,7 @@ export interface components {
1943
2257
  /** @description Operations */
1944
2258
  _operationsRow?: unknown;
1945
2259
  };
1946
- 'test-rest.dto.productView_2d063d28bc7243bed02ebd8bddf1212a93c6305b':
2260
+ 'test-rest.dto.productView_2d063d28bc7243bed02ebd8bddf1212a93c6305b_425dbecccd52e19e24888f99e1b1670233afa875':
1947
2261
  | {
1948
2262
  /**
1949
2263
  * Format: date-time
@@ -2981,7 +3295,7 @@ export interface operations {
2981
3295
  'application/json': {
2982
3296
  code: string;
2983
3297
  message: string;
2984
- data?: components['schemas']['training-record.dto.recordView_2d063d28bc7243bed02ebd8bddf1212a93c6305b'];
3298
+ data?: components['schemas']['training-record.dto.recordView_2d063d28bc7243bed02ebd8bddf1212a93c6305b_425dbecccd52e19e24888f99e1b1670233afa875'];
2985
3299
  };
2986
3300
  };
2987
3301
  };
@@ -3128,7 +3442,7 @@ export interface operations {
3128
3442
  'application/json': {
3129
3443
  code: string;
3130
3444
  message: string;
3131
- data?: components['schemas']['training-student.dto.studentView_2d063d28bc7243bed02ebd8bddf1212a93c6305b'];
3445
+ data?: components['schemas']['training-student.dto.studentView_2d063d28bc7243bed02ebd8bddf1212a93c6305b_425dbecccd52e19e24888f99e1b1670233afa875'];
3132
3446
  };
3133
3447
  };
3134
3448
  };
@@ -3243,6 +3557,152 @@ export interface operations {
3243
3557
  };
3244
3558
  authToken: true;
3245
3559
  };
3560
+ Image_createUploadToken: {
3561
+ parameters: {
3562
+ query?: never;
3563
+ header?: never;
3564
+ path?: never;
3565
+ cookie?: never;
3566
+ };
3567
+ requestBody: {
3568
+ content: {
3569
+ 'application/json': components['schemas']['a-image.dto.imageUploadTokenRequest'];
3570
+ };
3571
+ };
3572
+ responses: {
3573
+ 200: {
3574
+ headers: {
3575
+ [name: string]: unknown;
3576
+ };
3577
+ content: {
3578
+ 'application/json': {
3579
+ code: string;
3580
+ message: string;
3581
+ data: components['schemas']['a-image.dto.imageUploadTokenResponse'];
3582
+ };
3583
+ };
3584
+ };
3585
+ };
3586
+ authToken: true;
3587
+ };
3588
+ Image_upload: {
3589
+ parameters: {
3590
+ query?: never;
3591
+ header?: never;
3592
+ path?: never;
3593
+ cookie?: never;
3594
+ };
3595
+ requestBody: {
3596
+ content: {
3597
+ 'multipart/form-data': {
3598
+ token: string;
3599
+ /** Format: binary */
3600
+ image: Blob;
3601
+ };
3602
+ };
3603
+ };
3604
+ responses: {
3605
+ 200: {
3606
+ headers: {
3607
+ [name: string]: unknown;
3608
+ };
3609
+ content: {
3610
+ 'application/json': {
3611
+ code: string;
3612
+ message: string;
3613
+ data: components['schemas']['a-image.dto.imageUploadResponse'];
3614
+ };
3615
+ };
3616
+ };
3617
+ };
3618
+ authToken: true;
3619
+ };
3620
+ Image_createDirectUpload: {
3621
+ parameters: {
3622
+ query?: never;
3623
+ header?: never;
3624
+ path?: never;
3625
+ cookie?: never;
3626
+ };
3627
+ requestBody: {
3628
+ content: {
3629
+ 'application/json': components['schemas']['a-image.dto.imageDirectUploadRequest'];
3630
+ };
3631
+ };
3632
+ responses: {
3633
+ 200: {
3634
+ headers: {
3635
+ [name: string]: unknown;
3636
+ };
3637
+ content: {
3638
+ 'application/json': {
3639
+ code: string;
3640
+ message: string;
3641
+ data: components['schemas']['a-image.dto.imageDirectUploadResponse'];
3642
+ };
3643
+ };
3644
+ };
3645
+ };
3646
+ authToken: true;
3647
+ };
3648
+ Image_uploadUrl: {
3649
+ parameters: {
3650
+ query?: never;
3651
+ header?: never;
3652
+ path?: never;
3653
+ cookie?: never;
3654
+ };
3655
+ requestBody: {
3656
+ content: {
3657
+ 'application/json': components['schemas']['a-image.dto.imageUploadUrlRequest'];
3658
+ };
3659
+ };
3660
+ responses: {
3661
+ 200: {
3662
+ headers: {
3663
+ [name: string]: unknown;
3664
+ };
3665
+ content: {
3666
+ 'application/json': {
3667
+ code: string;
3668
+ message: string;
3669
+ data: components['schemas']['a-image.dto.imageUploadResponse'];
3670
+ };
3671
+ };
3672
+ };
3673
+ };
3674
+ authToken: true;
3675
+ };
3676
+ Image_delivery: {
3677
+ parameters: {
3678
+ query?: {
3679
+ variantName?: string | undefined;
3680
+ transformOptions?: components['schemas']['a-image.dto.imageTransformOptions_2d063d28bc7243bed02ebd8bddf1212a93c6305b'];
3681
+ token?: string | undefined;
3682
+ };
3683
+ header?: never;
3684
+ path: {
3685
+ imageId: number | string;
3686
+ };
3687
+ cookie?: never;
3688
+ };
3689
+ requestBody?: never;
3690
+ responses: {
3691
+ 200: {
3692
+ headers: {
3693
+ [name: string]: unknown;
3694
+ };
3695
+ content: {
3696
+ 'application/json': {
3697
+ code: string;
3698
+ message: string;
3699
+ data?: unknown;
3700
+ };
3701
+ };
3702
+ };
3703
+ };
3704
+ authToken: true;
3705
+ };
3246
3706
  Paypal_getRecord: {
3247
3707
  parameters: {
3248
3708
  query?: never;
@@ -3479,7 +3939,7 @@ export interface operations {
3479
3939
  'application/json': {
3480
3940
  code: string;
3481
3941
  message: string;
3482
- data?: components['schemas']['test-rest.dto.productView_2d063d28bc7243bed02ebd8bddf1212a93c6305b'];
3942
+ data?: components['schemas']['test-rest.dto.productView_2d063d28bc7243bed02ebd8bddf1212a93c6305b_425dbecccd52e19e24888f99e1b1670233afa875'];
3483
3943
  };
3484
3944
  };
3485
3945
  };
@@ -1,5 +1,7 @@
1
+ import type { IApiSchemaOptions } from 'zova-module-a-api';
2
+
1
3
  import { BeanBase } from 'zova';
2
- import { ApiSchema, IApiSchemaOptions } from 'zova-module-a-api';
4
+ import { ApiSchema } from 'zova-module-a-api';
3
5
 
4
6
  import {
5
7
  ApiApiTrainingStudentselectPath,
@@ -56,7 +56,7 @@ export class TableCellActionUpdate extends BeanBase implements ITableCellRender
56
56
  data: TypeFormOnSubmitData<Record<string, any>>,
57
57
  dialog: AppModalItem,
58
58
  ) => {
59
- const detailItemNew = deepExtend({}, detailItem, data.value);
59
+ const detailItemNew = serverDetail.buildSubmittedDetailItem(data, detailItem);
60
60
  $$details.data = $$details.data.map((item, index) => {
61
61
  return index === detailItemIndex ? detailItemNew : item;
62
62
  });
@@ -51,7 +51,7 @@ export class ControllerActionCreate extends BeanControllerBase {
51
51
  data: TypeFormOnSubmitData<Record<string, any>>,
52
52
  dialog: AppModalItem,
53
53
  ) => {
54
- const detailItem = data.value;
54
+ const detailItem = serverDetail.buildSubmittedDetailItem(data);
55
55
  $$details.data = [...$$details.data, detailItem];
56
56
  dialog.close();
57
57
  },