@gadmin2n/schematics 0.0.71 → 0.0.72

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 (501) hide show
  1. package/dist/lib/application/files/gadmin2-game-angle-demo/config/prisma/system.prisma +21 -0
  2. package/dist/lib/application/files/gadmin2-game-angle-demo/server/gadmin-cli.json +9 -1
  3. package/dist/lib/application/files/gadmin2-game-angle-demo/server/package-lock.json +15579 -0
  4. package/dist/lib/application/files/gadmin2-game-angle-demo/server/package.json +5 -3
  5. package/dist/lib/application/files/gadmin2-game-angle-demo/server/seed/permissions.ts +16 -4
  6. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/app.module.ts +2 -0
  7. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/agenda/agenda.controller.ts +106 -0
  8. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/agenda/agenda.module.ts +10 -0
  9. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/agenda/agenda.service.ts +569 -0
  10. package/dist/lib/application/files/gadmin2-game-angle-demo/server/yarn.lock +1159 -481
  11. package/dist/lib/application/files/gadmin2-game-angle-demo/web/.env +1 -0
  12. package/dist/lib/application/files/gadmin2-game-angle-demo/web/package.json +1 -1
  13. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/agentPanel/inspectorActions.ts +130 -3
  14. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/NumCard/index.tsx +5 -5
  15. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/NumLineCard/index.tsx +2 -2
  16. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/config/routeRegistry.tsx +15 -0
  17. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/DevShell.tsx +55 -43
  18. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/SkillMenu.tsx +1 -1
  19. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/locales/en/common.json +2 -4
  20. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/locales/zh_CN/common.json +2 -4
  21. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/agenda/index.tsx +536 -0
  22. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/agenda/show.tsx +671 -0
  23. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/CanvasPage.tsx +9 -60
  24. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/CanvasToolbar.tsx +2 -2
  25. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/ComponentThumbnail.tsx +3 -1
  26. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/canvasContextMenuRegistry.tsx +11 -11
  27. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/vite-env.d.ts +12 -0
  28. package/package.json +1 -1
  29. package/dist/lib/application/files/gadmin2-game-angle-demo/web/.npmrc +0 -1
  30. package/src/lib/application/application.schema.d.ts +0 -59
  31. package/src/lib/application/files/gadmin2-game-angle-demo/.dockerignore +0 -33
  32. package/src/lib/application/files/gadmin2-game-angle-demo/.gitignore +0 -46
  33. package/src/lib/application/files/gadmin2-game-angle-demo/.husky/_/.gitignore +0 -1
  34. package/src/lib/application/files/gadmin2-game-angle-demo/.husky/_/husky.sh +0 -36
  35. package/src/lib/application/files/gadmin2-game-angle-demo/.husky/pre-commit +0 -10
  36. package/src/lib/application/files/gadmin2-game-angle-demo/Dockerfile +0 -63
  37. package/src/lib/application/files/gadmin2-game-angle-demo/Jenkinsfile +0 -70
  38. package/src/lib/application/files/gadmin2-game-angle-demo/config/.types.d.ts +0 -143
  39. package/src/lib/application/files/gadmin2-game-angle-demo/config/prisma/canvas.prisma +0 -45
  40. package/src/lib/application/files/gadmin2-game-angle-demo/config/prisma/example.prisma +0 -34
  41. package/src/lib/application/files/gadmin2-game-angle-demo/config/prisma/system.prisma +0 -173
  42. package/src/lib/application/files/gadmin2-game-angle-demo/config/ui/Audit.ts +0 -70
  43. package/src/lib/application/files/gadmin2-game-angle-demo/config/ui/Event.ts +0 -70
  44. package/src/lib/application/files/gadmin2-game-angle-demo/config/ui/Game.ts +0 -58
  45. package/src/lib/application/files/gadmin2-game-angle-demo/config/ui/ITActivityDay.ts +0 -70
  46. package/src/lib/application/files/gadmin2-game-angle-demo/config/ui/Log.ts +0 -56
  47. package/src/lib/application/files/gadmin2-game-angle-demo/config/ui/Page.ts +0 -70
  48. package/src/lib/application/files/gadmin2-game-angle-demo/config/ui/PageResource.ts +0 -70
  49. package/src/lib/application/files/gadmin2-game-angle-demo/config/ui/Resource.ts +0 -70
  50. package/src/lib/application/files/gadmin2-game-angle-demo/config/ui/Role.ts +0 -58
  51. package/src/lib/application/files/gadmin2-game-angle-demo/config/ui/RolePages.ts +0 -70
  52. package/src/lib/application/files/gadmin2-game-angle-demo/config/ui/RoleResource.ts +0 -70
  53. package/src/lib/application/files/gadmin2-game-angle-demo/config/ui/SavedQuery.ts +0 -70
  54. package/src/lib/application/files/gadmin2-game-angle-demo/config/ui/User.ts +0 -70
  55. package/src/lib/application/files/gadmin2-game-angle-demo/config/ui/_common.ts +0 -16
  56. package/src/lib/application/files/gadmin2-game-angle-demo/readme.md +0 -142
  57. package/src/lib/application/files/gadmin2-game-angle-demo/server/.env +0 -31
  58. package/src/lib/application/files/gadmin2-game-angle-demo/server/.env.local +0 -1
  59. package/src/lib/application/files/gadmin2-game-angle-demo/server/.eslintrc.js +0 -28
  60. package/src/lib/application/files/gadmin2-game-angle-demo/server/.prettierignore +0 -7
  61. package/src/lib/application/files/gadmin2-game-angle-demo/server/.prettierrc +0 -4
  62. package/src/lib/application/files/gadmin2-game-angle-demo/server/README.md +0 -55
  63. package/src/lib/application/files/gadmin2-game-angle-demo/server/config/ac.config.ts +0 -24
  64. package/src/lib/application/files/gadmin2-game-angle-demo/server/config/index.ts +0 -58
  65. package/src/lib/application/files/gadmin2-game-angle-demo/server/gadmin-cli.json +0 -25
  66. package/src/lib/application/files/gadmin2-game-angle-demo/server/migrate-between-pg-schemas.js +0 -1232
  67. package/src/lib/application/files/gadmin2-game-angle-demo/server/package.json +0 -143
  68. package/src/lib/application/files/gadmin2-game-angle-demo/server/prisma/.generator.prisma +0 -34
  69. package/src/lib/application/files/gadmin2-game-angle-demo/server/prisma.config.ts +0 -16
  70. package/src/lib/application/files/gadmin2-game-angle-demo/server/scripts/lib/page-helpers.ts +0 -157
  71. package/src/lib/application/files/gadmin2-game-angle-demo/server/scripts/page-manage.ts +0 -290
  72. package/src/lib/application/files/gadmin2-game-angle-demo/server/scripts/permission-manage.ts +0 -184
  73. package/src/lib/application/files/gadmin2-game-angle-demo/server/scripts/prismaModels.ts +0 -143
  74. package/src/lib/application/files/gadmin2-game-angle-demo/server/scripts/sync-resources.ts +0 -100
  75. package/src/lib/application/files/gadmin2-game-angle-demo/server/scripts/syncDataMngtPages.ts +0 -119
  76. package/src/lib/application/files/gadmin2-game-angle-demo/server/seed/games.ts +0 -1
  77. package/src/lib/application/files/gadmin2-game-angle-demo/server/seed/index.ts +0 -21
  78. package/src/lib/application/files/gadmin2-game-angle-demo/server/seed/permissions.ts +0 -244
  79. package/src/lib/application/files/gadmin2-game-angle-demo/server/seed/users.ts +0 -7
  80. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/alias.config.ts +0 -7
  81. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/app.controller.spec.ts +0 -22
  82. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/app.controller.ts +0 -192
  83. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/app.module.ts +0 -91
  84. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/app.service.ts +0 -189
  85. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/lib/auth.guard.ts +0 -154
  86. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/lib/http-cache.interceptor.ts +0 -21
  87. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/lib/logger.ts +0 -19
  88. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/lib/roles.guard.ts +0 -47
  89. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/lib/safe-log.util.ts +0 -176
  90. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/lib/taihu.ts +0 -175
  91. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/lib/tracing.ts +0 -174
  92. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/lib/trim.pipe.ts +0 -51
  93. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/lib/utils.ts +0 -145
  94. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/lib/woaAuth.ts +0 -95
  95. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/main.ts +0 -132
  96. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/audit/audit.controller.spec.ts +0 -20
  97. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/audit/audit.controller.ts +0 -190
  98. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/audit/audit.module.ts +0 -10
  99. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/audit/audit.service.spec.ts +0 -338
  100. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/audit/audit.service.ts +0 -83
  101. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/canvas/canvas.controller.spec.ts +0 -20
  102. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/canvas/canvas.controller.ts +0 -81
  103. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/canvas/canvas.dto.ts +0 -49
  104. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/canvas/canvas.module.ts +0 -11
  105. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/canvas/canvas.service.spec.ts +0 -334
  106. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/canvas/canvas.service.ts +0 -249
  107. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/game/game.controller.spec.ts +0 -20
  108. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/game/game.controller.ts +0 -188
  109. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/game/game.module.ts +0 -10
  110. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/game/game.service.spec.ts +0 -18
  111. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/game/game.service.ts +0 -83
  112. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/index.ts +0 -4
  113. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/page/page.controller.spec.ts +0 -20
  114. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/page/page.controller.ts +0 -250
  115. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/page/page.module.ts +0 -10
  116. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/page/page.service.spec.ts +0 -18
  117. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/page/page.service.ts +0 -1051
  118. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/pageResource/pageResource.controller.spec.ts +0 -20
  119. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/pageResource/pageResource.controller.ts +0 -196
  120. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/pageResource/pageResource.module.ts +0 -13
  121. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/pageResource/pageResource.service.spec.ts +0 -18
  122. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/pageResource/pageResource.service.ts +0 -219
  123. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/resource/resource.controller.spec.ts +0 -20
  124. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/resource/resource.controller.ts +0 -196
  125. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/resource/resource.module.ts +0 -10
  126. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/resource/resource.service.spec.ts +0 -18
  127. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/resource/resource.service.ts +0 -199
  128. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/role/role.controller.spec.ts +0 -20
  129. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/role/role.controller.ts +0 -210
  130. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/role/role.module.ts +0 -12
  131. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/role/role.service.spec.ts +0 -18
  132. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/role/role.service.ts +0 -862
  133. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/role/roles-refresher.service.ts +0 -133
  134. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/rolePages/rolePages.controller.spec.ts +0 -20
  135. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/rolePages/rolePages.controller.ts +0 -196
  136. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/rolePages/rolePages.module.ts +0 -10
  137. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/rolePages/rolePages.service.spec.ts +0 -18
  138. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/rolePages/rolePages.service.ts +0 -201
  139. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/roleResource/roleResource.controller.spec.ts +0 -20
  140. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/roleResource/roleResource.controller.ts +0 -196
  141. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/roleResource/roleResource.module.ts +0 -10
  142. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/roleResource/roleResource.service.spec.ts +0 -18
  143. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/roleResource/roleResource.service.ts +0 -216
  144. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/user/user.controller.spec.ts +0 -20
  145. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/user/user.controller.ts +0 -198
  146. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/user/user.module.ts +0 -10
  147. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/user/user.service.spec.ts +0 -18
  148. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/user/user.service.ts +0 -104
  149. package/src/lib/application/files/gadmin2-game-angle-demo/server/start-prod.sh +0 -130
  150. package/src/lib/application/files/gadmin2-game-angle-demo/server/test/app.e2e-spec.ts +0 -24
  151. package/src/lib/application/files/gadmin2-game-angle-demo/server/test/jest-e2e.json +0 -9
  152. package/src/lib/application/files/gadmin2-game-angle-demo/server/tsconfig.build.json +0 -4
  153. package/src/lib/application/files/gadmin2-game-angle-demo/server/tsconfig.json +0 -36
  154. package/src/lib/application/files/gadmin2-game-angle-demo/server/yarn.lock +0 -7737
  155. package/src/lib/application/files/gadmin2-game-angle-demo/web/.env +0 -2
  156. package/src/lib/application/files/gadmin2-game-angle-demo/web/.eslintrc.json +0 -38
  157. package/src/lib/application/files/gadmin2-game-angle-demo/web/.npmrc +0 -1
  158. package/src/lib/application/files/gadmin2-game-angle-demo/web/.prettierignore +0 -2
  159. package/src/lib/application/files/gadmin2-game-angle-demo/web/.prettierrc +0 -4
  160. package/src/lib/application/files/gadmin2-game-angle-demo/web/README.MD +0 -48
  161. package/src/lib/application/files/gadmin2-game-angle-demo/web/dev-shell-entry.html +0 -49
  162. package/src/lib/application/files/gadmin2-game-angle-demo/web/index.html +0 -19
  163. package/src/lib/application/files/gadmin2-game-angle-demo/web/package.json +0 -92
  164. package/src/lib/application/files/gadmin2-game-angle-demo/web/postcss.config.cjs +0 -6
  165. package/src/lib/application/files/gadmin2-game-angle-demo/web/public/favicon.ico +0 -0
  166. package/src/lib/application/files/gadmin2-game-angle-demo/web/public/images/flags/en.svg +0 -1
  167. package/src/lib/application/files/gadmin2-game-angle-demo/web/public/images/flags/zh_CN.svg +0 -11
  168. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/App.tsx +0 -137
  169. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/auditLogProvider.ts +0 -89
  170. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/authProvider.ts +0 -144
  171. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/BulkActions.tsx +0 -287
  172. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/ListPageHeader.tsx +0 -56
  173. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/RowActions.tsx +0 -318
  174. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/SearchBar.tsx +0 -323
  175. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/SqlModal.tsx +0 -495
  176. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/VanillaJSONEditor/index.css +0 -10
  177. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/VanillaJSONEditor/index.jsx +0 -53
  178. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/agentPanel/AgentContext.tsx +0 -375
  179. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/agentPanel/ElementInspector.tsx +0 -1133
  180. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/agentPanel/agentAttributes.ts +0 -70
  181. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/agentPanel/index.ts +0 -8
  182. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/agentPanel/inspectorActions.ts +0 -1034
  183. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/agentPanel/pagePathUtils.ts +0 -66
  184. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/agentPanel/promptGenerator.ts +0 -135
  185. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/agentPanel/propPatcher.ts +0 -84
  186. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/auditLog/components/eventList/index.tsx +0 -58
  187. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/auditLog/components/index.ts +0 -4
  188. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/auditLog/components/logButton/index.tsx +0 -96
  189. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/auditLog/components/logList/index.tsx +0 -72
  190. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/auditLog/components/modalDiffViewer/index.tsx +0 -104
  191. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/auditLog/index.tsx +0 -2
  192. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/BarChart/index.tsx +0 -896
  193. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/ChartSwitcher/index.tsx +0 -219
  194. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/ChartViewer/index.tsx +0 -159
  195. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/Filter/index.tsx +0 -192
  196. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/LineChart/index.tsx +0 -1034
  197. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/NumCard/NumCard.module.css +0 -8
  198. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/NumCard/index.tsx +0 -509
  199. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/NumLineCard/index.tsx +0 -66
  200. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/PieChart/index.tsx +0 -552
  201. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/RadarChart/index.tsx +0 -263
  202. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/Section/index.tsx +0 -35
  203. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/Table/index.tsx +0 -207
  204. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/TreemapChart/index.tsx +0 -382
  205. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/WorldMap/index.tsx +0 -135
  206. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/chart-constants.ts +0 -53
  207. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/icon/InfoIcon.tsx +0 -8
  208. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/icon/index.ts +0 -1
  209. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/map/config.ts +0 -31
  210. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/map/nameMap.json +0 -9
  211. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/map/world.geo.json +0 -39349
  212. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/metric-info-tooltip/index.tsx +0 -19
  213. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/contexts/business/index.tsx +0 -65
  214. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/contexts/color-mode/index.tsx +0 -54
  215. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/custom-avatar.tsx +0 -42
  216. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/index.ts +0 -8
  217. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/layout/header.tsx +0 -106
  218. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/layout/index.ts +0 -4
  219. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/layout/layout.tsx +0 -32
  220. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/layout/logo.tsx +0 -19
  221. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/layout/sider.tsx +0 -431
  222. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/layout/title.tsx +0 -61
  223. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/offLayoutArea/index.tsx +0 -5
  224. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/pagination-total.tsx +0 -21
  225. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/tags/index.ts +0 -1
  226. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/tags/role-tag.tsx +0 -44
  227. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/text.tsx +0 -78
  228. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/config/http.ts +0 -49
  229. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/config/routeRegistry.tsx +0 -428
  230. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/constants/layout.ts +0 -16
  231. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/AddDataModal.tsx +0 -199
  232. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/AddPageModal.tsx +0 -335
  233. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/DeleteDataConfirm.tsx +0 -56
  234. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/DevShell.tsx +0 -401
  235. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/EditDataModal.tsx +0 -129
  236. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/SkillMenu.tsx +0 -202
  237. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/UndoConfirm.tsx +0 -36
  238. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/index.tsx +0 -8
  239. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/style.css +0 -835
  240. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/enums/audit-log.enum.ts +0 -13
  241. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/enums/index.ts +0 -1
  242. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/form.tsx +0 -471
  243. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/get-name-initials.ts +0 -8
  244. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/get-random-color.ts +0 -27
  245. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/http.ts +0 -84
  246. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/index.tsx +0 -8
  247. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/list.tsx +0 -491
  248. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/login.ts +0 -82
  249. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/page-tree.ts +0 -74
  250. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/show.tsx +0 -226
  251. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/utils.tsx +0 -9
  252. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/index.ts +0 -7
  253. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/types.ts +0 -138
  254. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useBatchDelete.ts +0 -191
  255. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useBatchOperations.ts +0 -153
  256. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useBatchOperationsCore.ts +0 -193
  257. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useBatchUpdate.ts +0 -182
  258. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useDynamicResources.tsx +0 -220
  259. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useECharts.tsx +0 -144
  260. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useFetchData.ts +0 -33
  261. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useListPageState.ts +0 -303
  262. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useRoles.ts +0 -34
  263. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useRowSelection.ts +0 -38
  264. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useUserPageAccess.ts +0 -353
  265. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/i18n.ts +0 -23
  266. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/index.tsx +0 -27
  267. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/locales/en/common.json +0 -321
  268. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/locales/zh_CN/common.json +0 -324
  269. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/meta.json +0 -4
  270. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/plugins/devShellPlugin.ts +0 -81
  271. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/audit/components/action-cell.css +0 -3
  272. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/audit/components/action-cell.tsx +0 -134
  273. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/audit/create.tsx +0 -105
  274. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/audit/edit.tsx +0 -121
  275. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/audit/index.ts +0 -8
  276. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/audit/index.tsx +0 -4
  277. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/audit/list.tsx +0 -220
  278. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/audit/show.tsx +0 -74
  279. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/CanvasCell.tsx +0 -87
  280. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/CanvasEditPage.tsx +0 -192
  281. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/CanvasListPage.tsx +0 -409
  282. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/CanvasPage.tsx +0 -1372
  283. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/CanvasToolbar.tsx +0 -384
  284. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/CodeFloatWindow.tsx +0 -476
  285. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/ComponentThumbnail.tsx +0 -137
  286. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/IsolatedLivePreview.tsx +0 -101
  287. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/LivePreview.tsx +0 -236
  288. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/PublishModal.tsx +0 -200
  289. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/canvasApi.ts +0 -92
  290. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/canvasConfigRegistry.tsx +0 -25
  291. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/canvasContextMenuRegistry.tsx +0 -875
  292. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/canvasDefaults.ts +0 -126
  293. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/canvasI18n.ts +0 -11
  294. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/BarChartDataSourceModal.tsx +0 -115
  295. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/ChartViewerConfigModal.tsx +0 -217
  296. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/LineChartDataSourceModal.tsx +0 -153
  297. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/NumCardDataSourceModal.tsx +0 -211
  298. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/PromptModal.tsx +0 -90
  299. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/RadarChartDataSourceModal.tsx +0 -87
  300. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/TableDataSourceModal.tsx +0 -204
  301. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/demos.ts +0 -1153
  302. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/index.tsx +0 -2
  303. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/sectionCompactor.ts +0 -45
  304. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/types.ts +0 -45
  305. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas-page/index.tsx +0 -108
  306. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/game/create.tsx +0 -105
  307. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/game/edit.tsx +0 -121
  308. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/game/index.tsx +0 -4
  309. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/game/list.tsx +0 -237
  310. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/game/show.tsx +0 -74
  311. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/page/Components/AssignRolesModal.tsx +0 -177
  312. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/page/Components/CreatePageModal.tsx +0 -42
  313. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/page/Components/EditPageModal.tsx +0 -46
  314. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/page/Components/PageDetailDrawer.tsx +0 -136
  315. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/page/Components/PageFormModal.tsx +0 -815
  316. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/page/hooks/usePageManagement.ts +0 -40
  317. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/page/index.ts +0 -1
  318. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/page/list.tsx +0 -1370
  319. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/page/queries.ts +0 -17
  320. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/page/types.ts +0 -45
  321. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/permissionReadme/index.tsx +0 -1090
  322. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/resource/Components/CreateModal.tsx +0 -25
  323. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/resource/Components/EditModal.tsx +0 -28
  324. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/resource/Components/ResourceDetailDrawer.tsx +0 -177
  325. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/resource/Components/modal.tsx +0 -230
  326. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/resource/index.ts +0 -2
  327. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/resource/list.tsx +0 -250
  328. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/resource/queries.ts +0 -10
  329. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/resource/types.ts +0 -9
  330. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/role/Components/CreateModal.tsx +0 -30
  331. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/role/Components/EditModal.tsx +0 -47
  332. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/role/Components/RoleDetailDrawer.tsx +0 -66
  333. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/role/Components/modal.tsx +0 -300
  334. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/role/hooks/useRolePage.ts +0 -35
  335. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/role/index.ts +0 -1
  336. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/role/list.tsx +0 -405
  337. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/role/queries.ts +0 -8
  338. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/role/types.ts +0 -8
  339. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/user/components/create-modal.tsx +0 -17
  340. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/user/components/edit-modal.tsx +0 -19
  341. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/user/components/form-modal.tsx +0 -194
  342. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/user/components/index.ts +0 -5
  343. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/user/components/role-tag.tsx +0 -48
  344. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/user/components/show-drawer.tsx +0 -145
  345. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/user/index.ts +0 -1
  346. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/user/list.tsx +0 -377
  347. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/user/queries.ts +0 -14
  348. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/setupTests.ts +0 -5
  349. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/styles/antd.css +0 -132
  350. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/styles/fc.css +0 -58
  351. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/styles/index.css +0 -128
  352. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/styles/show-drawer.module.css +0 -18
  353. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/styles/show-page.module.css +0 -21
  354. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/types/audit-log.ts +0 -1
  355. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/types/index.ts +0 -3
  356. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/types/role.ts +0 -7
  357. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/types/user.ts +0 -1
  358. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/vite-env.d.ts +0 -13
  359. package/src/lib/application/files/gadmin2-game-angle-demo/web/tsconfig.json +0 -28
  360. package/src/lib/application/files/gadmin2-game-angle-demo/web/vite.config.ts +0 -48
  361. package/src/lib/application/files/gadmin2-game-angle-demo/web/yarn.lock +0 -9482
  362. package/src/lib/class/class.schema.d.ts +0 -32
  363. package/src/lib/class/files/js/__name__.js +0 -1
  364. package/src/lib/class/files/js/__name__.spec.js +0 -7
  365. package/src/lib/class/files/ts/__name__.spec.ts +0 -7
  366. package/src/lib/class/files/ts/__name__.ts +0 -1
  367. package/src/lib/client-app/angular/angular.schema.d.ts +0 -32
  368. package/src/lib/client-app/angular/files/angular.constants.ts +0 -4
  369. package/src/lib/client-app/angular/files/angular.module.ts +0 -41
  370. package/src/lib/client-app/angular/files/angular.providers.ts +0 -27
  371. package/src/lib/client-app/angular/files/angular.utils.ts +0 -19
  372. package/src/lib/client-app/angular/files/interfaces/angular-options.interface.ts +0 -87
  373. package/src/lib/client-app/angular/files/loaders/abstract.loader.ts +0 -16
  374. package/src/lib/client-app/angular/files/loaders/express.loader.ts +0 -25
  375. package/src/lib/client-app/angular/files/loaders/fastify.loader.ts +0 -34
  376. package/src/lib/client-app/angular/files/loaders/noop.loader.ts +0 -12
  377. package/src/lib/configuration/configuration.schema.d.ts +0 -18
  378. package/src/lib/configuration/files/js/nest-cli.json +0 -6
  379. package/src/lib/configuration/files/ts/nest-cli.json +0 -5
  380. package/src/lib/controller/controller.schema.d.ts +0 -45
  381. package/src/lib/controller/files/js/__name__.controller.js +0 -4
  382. package/src/lib/controller/files/js/__name__.controller.spec.js +0 -18
  383. package/src/lib/controller/files/ts/__name__.controller.spec.ts +0 -18
  384. package/src/lib/controller/files/ts/__name__.controller.ts +0 -137
  385. package/src/lib/decorator/decorator.schema.d.ts +0 -24
  386. package/src/lib/decorator/files/js/__name__.decorator.js +0 -3
  387. package/src/lib/decorator/files/ts/__name__.decorator.ts +0 -3
  388. package/src/lib/filter/files/js/__name__.filter.js +0 -6
  389. package/src/lib/filter/files/js/__name__.filter.spec.js +0 -7
  390. package/src/lib/filter/files/ts/__name__.filter.spec.ts +0 -7
  391. package/src/lib/filter/files/ts/__name__.filter.ts +0 -6
  392. package/src/lib/filter/filter.schema.d.ts +0 -28
  393. package/src/lib/gateway/files/js/__name__.gateway.js +0 -9
  394. package/src/lib/gateway/files/js/__name__.gateway.spec.js +0 -18
  395. package/src/lib/gateway/files/ts/__name__.gateway.spec.ts +0 -18
  396. package/src/lib/gateway/files/ts/__name__.gateway.ts +0 -9
  397. package/src/lib/gateway/gateway.schema.d.ts +0 -36
  398. package/src/lib/guard/files/js/__name__.guard.js +0 -8
  399. package/src/lib/guard/files/js/__name__.guard.spec.js +0 -7
  400. package/src/lib/guard/files/ts/__name__.guard.spec.ts +0 -7
  401. package/src/lib/guard/files/ts/__name__.guard.ts +0 -11
  402. package/src/lib/guard/guard.schema.d.ts +0 -28
  403. package/src/lib/interceptor/files/js/__name__.interceptor.js +0 -8
  404. package/src/lib/interceptor/files/js/__name__.interceptor.spec.js +0 -7
  405. package/src/lib/interceptor/files/ts/default/__name__.interceptor.spec.ts +0 -7
  406. package/src/lib/interceptor/files/ts/default/__name__.interceptor.ts +0 -9
  407. package/src/lib/interceptor/files/ts/generated/__name__.interceptor.spec.ts +0 -7
  408. package/src/lib/interceptor/files/ts/generated/__name__.interceptor.ts +0 -13
  409. package/src/lib/interceptor/interceptor.schema.d.ts +0 -35
  410. package/src/lib/interface/files/__name__.interface.ts +0 -1
  411. package/src/lib/interface/interface.schema.d.ts +0 -20
  412. package/src/lib/library/files/js/.babelrc +0 -4
  413. package/src/lib/library/files/js/jsconfig.json +0 -9
  414. package/src/lib/library/files/js/src/__name__.module.js +0 -8
  415. package/src/lib/library/files/js/src/__name__.service.js +0 -4
  416. package/src/lib/library/files/js/src/__name__.service.spec.js +0 -18
  417. package/src/lib/library/files/js/src/index.js +0 -2
  418. package/src/lib/library/files/ts/src/__name__.module.ts +0 -8
  419. package/src/lib/library/files/ts/src/__name__.service.spec.ts +0 -18
  420. package/src/lib/library/files/ts/src/__name__.service.ts +0 -4
  421. package/src/lib/library/files/ts/src/index.ts +0 -2
  422. package/src/lib/library/files/ts/tsconfig.lib.json +0 -9
  423. package/src/lib/library/library.schema.d.ts +0 -24
  424. package/src/lib/middleware/files/js/__name__.middleware.js +0 -8
  425. package/src/lib/middleware/files/js/__name__.middleware.spec.js +0 -7
  426. package/src/lib/middleware/files/ts/__name__.middleware.spec.ts +0 -7
  427. package/src/lib/middleware/files/ts/__name__.middleware.ts +0 -8
  428. package/src/lib/middleware/middleware.schema.d.ts +0 -28
  429. package/src/lib/module/files/js/__name__.module.js +0 -4
  430. package/src/lib/module/files/ts/__name__.module.ts +0 -4
  431. package/src/lib/module/module.schema.d.ts +0 -40
  432. package/src/lib/pipe/files/js/__name__.pipe.js +0 -8
  433. package/src/lib/pipe/files/js/__name__.pipe.spec.js +0 -7
  434. package/src/lib/pipe/files/ts/__name__.pipe.spec.ts +0 -7
  435. package/src/lib/pipe/files/ts/__name__.pipe.ts +0 -8
  436. package/src/lib/pipe/pipe.schema.d.ts +0 -28
  437. package/src/lib/prisma-resource/files/ts/__name__.controller.spec.ts +0 -20
  438. package/src/lib/prisma-resource/files/ts/__name__.controller.ts +0 -63
  439. package/src/lib/prisma-resource/files/ts/__name__.module.ts +0 -9
  440. package/src/lib/prisma-resource/files/ts/__name__.service.spec.ts +0 -18
  441. package/src/lib/prisma-resource/files/ts/__name__.service.ts +0 -28
  442. package/src/lib/prisma-resource/files/ts/dto/create-__name@singular__.dto.ts +0 -1
  443. package/src/lib/prisma-resource/files/ts/dto/create-__name@singular__.input.ts +0 -7
  444. package/src/lib/prisma-resource/files/ts/dto/update-__name@singular__.dto.ts +0 -6
  445. package/src/lib/prisma-resource/files/ts/dto/update-__name@singular__.input.ts +0 -13
  446. package/src/lib/prisma-resource/files/ts/entities/__name@singular@ent__.ts +0 -7
  447. package/src/lib/prisma-resource/prisma-resource.schema.d.ts +0 -57
  448. package/src/lib/provider/files/js/__name__.js +0 -4
  449. package/src/lib/provider/files/js/__name__.spec.js +0 -18
  450. package/src/lib/provider/files/ts/__name__.spec.ts +0 -18
  451. package/src/lib/provider/files/ts/__name__.ts +0 -4
  452. package/src/lib/provider/provider.schema.d.ts +0 -48
  453. package/src/lib/resolver/files/js/__name__.resolver.js +0 -4
  454. package/src/lib/resolver/files/js/__name__.resolver.spec.js +0 -18
  455. package/src/lib/resolver/files/ts/__name__.resolver.spec.ts +0 -18
  456. package/src/lib/resolver/files/ts/__name__.resolver.ts +0 -4
  457. package/src/lib/resolver/resolver.schema.d.ts +0 -36
  458. package/src/lib/resource/files/ts/__name__.controller.spec.ts +0 -20
  459. package/src/lib/resource/files/ts/__name__.controller.ts +0 -63
  460. package/src/lib/resource/files/ts/__name__.gateway.spec.ts +0 -19
  461. package/src/lib/resource/files/ts/__name__.gateway.ts +0 -34
  462. package/src/lib/resource/files/ts/__name__.graphql +0 -24
  463. package/src/lib/resource/files/ts/__name__.module.ts +0 -9
  464. package/src/lib/resource/files/ts/__name__.resolver.spec.ts +0 -19
  465. package/src/lib/resource/files/ts/__name__.resolver.ts +0 -60
  466. package/src/lib/resource/files/ts/__name__.service.spec.ts +0 -18
  467. package/src/lib/resource/files/ts/__name__.service.ts +0 -28
  468. package/src/lib/resource/files/ts/dto/create-__name@singular__.dto.ts +0 -1
  469. package/src/lib/resource/files/ts/dto/create-__name@singular__.input.ts +0 -7
  470. package/src/lib/resource/files/ts/dto/update-__name@singular__.dto.ts +0 -6
  471. package/src/lib/resource/files/ts/dto/update-__name@singular__.input.ts +0 -13
  472. package/src/lib/resource/files/ts/entities/__name@singular@ent__.ts +0 -7
  473. package/src/lib/resource/resource.schema.d.ts +0 -57
  474. package/src/lib/service/files/js/__name__.service.js +0 -4
  475. package/src/lib/service/files/js/__name__.service.spec.js +0 -18
  476. package/src/lib/service/files/ts/__name__.service.spec.ts +0 -18
  477. package/src/lib/service/files/ts/__name__.service.ts +0 -4
  478. package/src/lib/service/service.schema.d.ts +0 -44
  479. package/src/lib/sub-app/files/js/.babelrc +0 -4
  480. package/src/lib/sub-app/files/js/index.js +0 -2
  481. package/src/lib/sub-app/files/js/jsconfig.json +0 -10
  482. package/src/lib/sub-app/files/js/src/app.controller.js +0 -15
  483. package/src/lib/sub-app/files/js/src/app.controller.spec.js +0 -22
  484. package/src/lib/sub-app/files/js/src/app.module.js +0 -10
  485. package/src/lib/sub-app/files/js/src/app.service.js +0 -8
  486. package/src/lib/sub-app/files/js/src/main.js +0 -8
  487. package/src/lib/sub-app/files/js/test/app.e2e-spec.js +0 -23
  488. package/src/lib/sub-app/files/js/test/jest-e2e.json +0 -5
  489. package/src/lib/sub-app/files/ts/src/__name__.controller.spec.ts +0 -22
  490. package/src/lib/sub-app/files/ts/src/__name__.controller.ts +0 -12
  491. package/src/lib/sub-app/files/ts/src/__name__.module.ts +0 -10
  492. package/src/lib/sub-app/files/ts/src/__name__.service.ts +0 -8
  493. package/src/lib/sub-app/files/ts/src/main.ts +0 -8
  494. package/src/lib/sub-app/files/ts/test/app.e2e-spec.ts +0 -24
  495. package/src/lib/sub-app/files/ts/test/jest-e2e.json +0 -9
  496. package/src/lib/sub-app/files/ts/tsconfig.app.json +0 -9
  497. package/src/lib/sub-app/sub-app.schema.d.ts +0 -21
  498. package/src/lib/sub-app/workspace/js/.babelrc +0 -4
  499. package/src/lib/sub-app/workspace/js/index.js +0 -2
  500. package/src/lib/sub-app/workspace/js/jsconfig.json +0 -10
  501. package/src/lib/sub-app/workspace/ts/tsconfig.app.json +0 -9
@@ -1,1133 +0,0 @@
1
- import {
2
- CheckCircleOutlined,
3
- EditOutlined,
4
- ExclamationCircleOutlined,
5
- FormOutlined,
6
- } from '@ant-design/icons';
7
- import { Dropdown, Input, message, Modal, Select, theme } from 'antd';
8
- import { modelsMap } from 'generated/models.index';
9
- import React, { useCallback, useEffect, useRef, useState } from 'react';
10
- import { useAgent } from './AgentContext';
11
- import { AgentType } from './agentAttributes';
12
- import {
13
- getInspectorActions,
14
- InspectedElementInfo,
15
- InspectorAction,
16
- } from './inspectorActions';
17
- import { generatePrompt } from './promptGenerator';
18
- import {
19
- patchBooleanProp,
20
- patchEnumProp,
21
- patchStringProp,
22
- readBooleanProp,
23
- } from './propPatcher';
24
-
25
- const TYPE_LABELS: Record<AgentType, string> = {
26
- 'list-column': '表格列',
27
- 'form-field': '表单字段',
28
- 'show-field': '详情字段',
29
- 'list-search-bar': '搜索栏',
30
- 'list-header': '列表头部',
31
- 'list-row-actions': '行操作',
32
- 'list-bulk-actions': '批量操作',
33
- 'canvas-component': '画布组件',
34
- 'show-header': '详情页工具栏',
35
- 'app-header': 'App 顶部导航',
36
- 'app-title': 'Logo 和标题',
37
- };
38
-
39
- /** Get all field names for a resource from the generated models map. */
40
- function getModelFields(resource: string): { name: string; type: string }[] {
41
- // modelsMap keys are PascalCase (e.g. "Event"), resource is camelCase (e.g. "event")
42
- const key = resource.charAt(0).toUpperCase() + resource.slice(1);
43
- const entry = (modelsMap as Record<string, { model: Record<string, any> }>)[
44
- key
45
- ];
46
- if (!entry?.model) return [];
47
- return Object.values(entry.model).map((f) => ({
48
- name: f.name as string,
49
- type: f.type as string,
50
- }));
51
- }
52
-
53
- /** Collect fields already rendered on the current page. */
54
- function getVisibleFields(type: AgentType): string[] {
55
- const selector =
56
- type === 'list-column'
57
- ? '[data-agent-type="list-column"][data-agent-field]'
58
- : type === 'form-field'
59
- ? '[data-agent-type="form-field"][data-agent-field]'
60
- : '[data-agent-type="show-field"][data-agent-field]';
61
- return Array.from(document.querySelectorAll<HTMLElement>(selector))
62
- .map((el) => el.dataset.agentField!)
63
- .filter(Boolean);
64
- }
65
-
66
- /** Returns fields that exist in the model but are not currently displayed. */
67
- function getHiddenFields(
68
- resource: string,
69
- type: AgentType,
70
- ): { name: string; type: string }[] {
71
- const visible = new Set(getVisibleFields(type));
72
- return getModelFields(resource).filter((f) => !visible.has(f.name));
73
- }
74
-
75
- /** Confirm modal shown after user picks a field from the sub-menu. */
76
- interface FieldConfirmModalProps {
77
- open: boolean;
78
- actionLabel: string;
79
- fieldName: string;
80
- onOk: () => void;
81
- onCancel: () => void;
82
- }
83
-
84
- const FieldConfirmModal: React.FC<FieldConfirmModalProps> = ({
85
- open,
86
- actionLabel,
87
- fieldName,
88
- onOk,
89
- onCancel,
90
- }) => {
91
- const { token } = theme.useToken();
92
- return (
93
- <Modal
94
- title={
95
- <span style={{ display: 'flex', alignItems: 'center', gap: 8 }}>
96
- <span
97
- style={{
98
- display: 'inline-flex',
99
- alignItems: 'center',
100
- justifyContent: 'center',
101
- width: 28,
102
- height: 28,
103
- borderRadius: '50%',
104
- background: token.colorSuccessBg,
105
- color: token.colorSuccess,
106
- fontSize: 14,
107
- flexShrink: 0,
108
- }}
109
- >
110
- <CheckCircleOutlined />
111
- </span>
112
- <span style={{ fontWeight: 600, fontSize: 15 }}>确认操作</span>
113
- </span>
114
- }
115
- open={open}
116
- onOk={onOk}
117
- onCancel={onCancel}
118
- okText="确认"
119
- cancelText="取消"
120
- zIndex={10010}
121
- width={400}
122
- styles={{
123
- header: {
124
- padding: '16px 20px 12px',
125
- borderBottom: `1px solid ${token.colorBorderSecondary}`,
126
- marginBottom: 0,
127
- },
128
- body: { padding: '16px 20px 8px' },
129
- footer: { padding: '12px 20px 16px' },
130
- }}
131
- okButtonProps={{ style: { borderRadius: 6 } }}
132
- cancelButtonProps={{ style: { borderRadius: 6 } }}
133
- >
134
- <div style={{ display: 'flex', flexDirection: 'column', gap: 12 }}>
135
- <div
136
- style={{
137
- padding: '8px 12px',
138
- background: token.colorFillQuaternary,
139
- borderRadius: token.borderRadiusLG,
140
- border: `1px solid ${token.colorBorderSecondary}`,
141
- }}
142
- >
143
- <div
144
- style={{
145
- fontSize: 11,
146
- fontWeight: 500,
147
- color: token.colorTextTertiary,
148
- letterSpacing: '0.02em',
149
- textTransform: 'uppercase',
150
- marginBottom: 4,
151
- }}
152
- >
153
- 操作
154
- </div>
155
- <div style={{ fontSize: 13, color: token.colorText }}>
156
- {actionLabel}
157
- </div>
158
- </div>
159
- <div
160
- style={{
161
- padding: '8px 12px',
162
- background: token.colorPrimaryBg,
163
- borderRadius: token.borderRadiusLG,
164
- border: `1px solid ${token.colorPrimaryBorder}`,
165
- }}
166
- >
167
- <div
168
- style={{
169
- fontSize: 11,
170
- fontWeight: 500,
171
- color: token.colorTextTertiary,
172
- letterSpacing: '0.02em',
173
- textTransform: 'uppercase',
174
- marginBottom: 4,
175
- }}
176
- >
177
- 选中字段
178
- </div>
179
- <div
180
- style={{
181
- fontSize: 14,
182
- fontWeight: 600,
183
- color: token.colorPrimary,
184
- fontFamily: 'monospace',
185
- }}
186
- >
187
- {fieldName}
188
- </div>
189
- </div>
190
- </div>
191
- </Modal>
192
- );
193
- };
194
-
195
- interface ConfirmModalProps {
196
- open: boolean;
197
- action: InspectorAction | null;
198
- onOk: () => void;
199
- onCancel: () => void;
200
- }
201
-
202
- const ConfirmModal: React.FC<ConfirmModalProps> = ({
203
- open,
204
- action,
205
- onOk,
206
- onCancel,
207
- }) => {
208
- const { token } = theme.useToken();
209
- return (
210
- <Modal
211
- title={
212
- <span style={{ display: 'flex', alignItems: 'center', gap: 8 }}>
213
- <ExclamationCircleOutlined style={{ color: token.colorWarning }} />
214
- <span style={{ fontWeight: 600, fontSize: 15 }}>{action?.label}</span>
215
- </span>
216
- }
217
- open={open}
218
- onOk={onOk}
219
- onCancel={onCancel}
220
- okText="确认"
221
- cancelText="取消"
222
- zIndex={10010}
223
- width={360}
224
- styles={{
225
- header: { borderBottom: 'none', paddingBottom: 8 },
226
- body: { padding: '4px 20px 8px' },
227
- footer: { borderTop: 'none' },
228
- }}
229
- >
230
- {action?.confirmDescription && (
231
- <p
232
- style={{
233
- margin: 0,
234
- fontSize: 13,
235
- color: token.colorTextSecondary,
236
- lineHeight: '1.6',
237
- }}
238
- >
239
- {action.confirmDescription}
240
- </p>
241
- )}
242
- </Modal>
243
- );
244
- };
245
-
246
- interface FreeInputModalProps {
247
- open: boolean;
248
- mode: 'freeInput' | 'requiresInput';
249
- action: InspectorAction | null;
250
- value: string;
251
- onChange: (v: string) => void;
252
- onOk: () => void;
253
- onCancel: () => void;
254
- }
255
-
256
- const FreeInputModal: React.FC<FreeInputModalProps> = ({
257
- open,
258
- mode,
259
- action,
260
- value,
261
- onChange,
262
- onOk,
263
- onCancel,
264
- }) => {
265
- const { token } = theme.useToken();
266
- const isRequiresInput = mode === 'requiresInput';
267
- const Icon = isRequiresInput ? EditOutlined : FormOutlined;
268
- const actionLabel = action?.label;
269
-
270
- return (
271
- <Modal
272
- title={
273
- <span style={{ display: 'flex', alignItems: 'center', gap: 8 }}>
274
- <span
275
- style={{
276
- display: 'inline-flex',
277
- alignItems: 'center',
278
- justifyContent: 'center',
279
- width: 28,
280
- height: 28,
281
- borderRadius: '50%',
282
- background: isRequiresInput
283
- ? token.colorPrimaryBg
284
- : token.colorInfoBg,
285
- color: isRequiresInput ? token.colorPrimary : token.colorInfo,
286
- fontSize: 14,
287
- flexShrink: 0,
288
- }}
289
- >
290
- <Icon />
291
- </span>
292
- <span style={{ fontWeight: 600, fontSize: 15 }}>
293
- {isRequiresInput ? '补充说明' : '输入自定义需求'}
294
- </span>
295
- </span>
296
- }
297
- open={open}
298
- onOk={onOk}
299
- onCancel={onCancel}
300
- okText="确认发送"
301
- cancelText="取消"
302
- zIndex={10010}
303
- width={480}
304
- styles={{
305
- header: {
306
- padding: '16px 20px 12px',
307
- borderBottom: `1px solid ${token.colorBorderSecondary}`,
308
- marginBottom: 0,
309
- },
310
- body: { padding: '16px 20px 8px' },
311
- footer: { padding: '12px 20px 16px' },
312
- }}
313
- okButtonProps={{
314
- style: { borderRadius: 6 },
315
- disabled: mode === 'requiresInput' && !value.trim(),
316
- }}
317
- cancelButtonProps={{ style: { borderRadius: 6 } }}
318
- >
319
- <div style={{ display: 'flex', flexDirection: 'column', gap: 12 }}>
320
- {/* 操作上下文提示区 */}
321
- {actionLabel && (
322
- <div
323
- style={{
324
- display: 'flex',
325
- alignItems: 'flex-start',
326
- gap: 8,
327
- padding: '8px 12px',
328
- background: token.colorFillQuaternary,
329
- borderRadius: token.borderRadiusLG,
330
- border: `1px solid ${token.colorBorderSecondary}`,
331
- }}
332
- >
333
- <span
334
- style={{
335
- fontSize: 11,
336
- fontWeight: 500,
337
- color: token.colorTextTertiary,
338
- whiteSpace: 'nowrap',
339
- marginTop: 1,
340
- letterSpacing: '0.02em',
341
- textTransform: 'uppercase',
342
- }}
343
- >
344
- 当前操作
345
- </span>
346
- <span
347
- style={{
348
- fontSize: 13,
349
- color: token.colorTextSecondary,
350
- fontWeight: 500,
351
- lineHeight: '20px',
352
- }}
353
- >
354
- {actionLabel}
355
- </span>
356
- </div>
357
- )}
358
-
359
- {/* 说明文字 */}
360
- <p
361
- style={{
362
- margin: 0,
363
- fontSize: 13,
364
- color: token.colorTextTertiary,
365
- lineHeight: '20px',
366
- }}
367
- >
368
- {isRequiresInput
369
- ? '请补充具体要求,AI 将在执行操作时参考你的说明。'
370
- : '请描述你希望 AI 执行的自定义操作。'}
371
- </p>
372
-
373
- {/* TextArea */}
374
- <Input.TextArea
375
- autoFocus
376
- rows={4}
377
- value={value}
378
- onChange={(e) => onChange(e.target.value)}
379
- placeholder={
380
- isRequiresInput
381
- ? action?.inputPlaceholder || '请补充具体要求...'
382
- : '请描述你想要的自定义操作...'
383
- }
384
- style={{
385
- borderRadius: token.borderRadiusLG,
386
- fontSize: 13,
387
- lineHeight: '1.6',
388
- resize: 'none',
389
- }}
390
- styles={{ textarea: { padding: '10px 12px' } }}
391
- onPressEnter={(e) => {
392
- if (e.metaKey || e.ctrlKey) {
393
- if (mode === 'requiresInput' && !value.trim()) return;
394
- onOk();
395
- }
396
- }}
397
- />
398
-
399
- {/* 快捷键提示 */}
400
- <p
401
- style={{
402
- margin: 0,
403
- fontSize: 12,
404
- color: token.colorTextQuaternary,
405
- textAlign: 'right',
406
- }}
407
- >
408
- 按 ⌘ Enter 快速确认
409
- </p>
410
- </div>
411
- </Modal>
412
- );
413
- };
414
-
415
- // ── QuickSelectModal ───────────────────────────────────────────────────────────────────
416
-
417
- interface QuickSelectModalProps {
418
- open: boolean;
419
- action: InspectorAction | null;
420
- onOk: (value: string) => void;
421
- onCancel: () => void;
422
- }
423
-
424
- const QuickSelectModal: React.FC<QuickSelectModalProps> = ({
425
- open,
426
- action,
427
- onOk,
428
- onCancel,
429
- }) => {
430
- const { token } = theme.useToken();
431
- const [value, setValue] = useState<string>('');
432
-
433
- useEffect(() => {
434
- if (open) setValue('');
435
- }, [open]);
436
-
437
- return (
438
- <Modal
439
- title={
440
- <span style={{ display: 'flex', alignItems: 'center', gap: 8 }}>
441
- <span style={{ fontWeight: 600, fontSize: 15 }}>
442
- {action?.label ?? '选择'}
443
- </span>
444
- </span>
445
- }
446
- open={open}
447
- onOk={() => value && onOk(value)}
448
- onCancel={onCancel}
449
- okText="确认"
450
- cancelText="取消"
451
- okButtonProps={{
452
- disabled: !value,
453
- style: { borderRadius: token.borderRadius },
454
- }}
455
- cancelButtonProps={{ style: { borderRadius: token.borderRadius } }}
456
- zIndex={10010}
457
- width={400}
458
- styles={{
459
- body: { padding: '16px 20px 8px' },
460
- footer: { padding: '12px 20px 16px' },
461
- }}
462
- >
463
- <Select
464
- autoFocus
465
- style={{ width: '100%' }}
466
- placeholder="请选择..."
467
- value={value || undefined}
468
- onChange={setValue}
469
- options={action?.quickSelectOptions?.map((o) => ({
470
- label: o.label,
471
- value: o.value,
472
- }))}
473
- size="large"
474
- />
475
- </Modal>
476
- );
477
- };
478
-
479
- // ── QuickInputModal ───────────────────────────────────────────────────────────────────
480
-
481
- interface QuickInputModalProps {
482
- open: boolean;
483
- action: InspectorAction | null;
484
- onOk: (value: string) => void;
485
- onCancel: () => void;
486
- }
487
-
488
- const QuickInputModal: React.FC<QuickInputModalProps> = ({
489
- open,
490
- action,
491
- onOk,
492
- onCancel,
493
- }) => {
494
- const { token } = theme.useToken();
495
- const [value, setValue] = useState('');
496
-
497
- useEffect(() => {
498
- if (open) setValue('');
499
- }, [open]);
500
-
501
- return (
502
- <Modal
503
- title={
504
- <span style={{ fontWeight: 600, fontSize: 15 }}>
505
- {action?.label ?? '修改'}
506
- </span>
507
- }
508
- open={open}
509
- onOk={() => onOk(value.trim())}
510
- onCancel={onCancel}
511
- okText="确认"
512
- cancelText="取消"
513
- okButtonProps={{ style: { borderRadius: token.borderRadius } }}
514
- cancelButtonProps={{ style: { borderRadius: token.borderRadius } }}
515
- zIndex={10010}
516
- width={400}
517
- styles={{
518
- body: { padding: '16px 20px 8px' },
519
- footer: { padding: '12px 20px 16px' },
520
- }}
521
- >
522
- <Input
523
- autoFocus
524
- size="large"
525
- value={value}
526
- onChange={(e) => setValue(e.target.value)}
527
- placeholder={action?.quickInputPlaceholder ?? '输入新值'}
528
- onPressEnter={() => onOk(value.trim())}
529
- />
530
- </Modal>
531
- );
532
- };
533
-
534
- function buildMenuItems(
535
- actions: InspectorAction[],
536
- handleAction: (a: InspectorAction) => void,
537
- hiddenFields: { name: string; type: string }[],
538
- onFieldPick: (action: InspectorAction, field: string) => void,
539
- ): any[] {
540
- return actions.map((action) => {
541
- if (action.fieldSubMenu) {
542
- const fieldChildren =
543
- hiddenFields.length > 0
544
- ? [
545
- {
546
- key: `${action.label}::__header`,
547
- label: (
548
- <span
549
- style={{
550
- fontSize: 11,
551
- color: '#8c8c8c',
552
- fontWeight: 500,
553
- letterSpacing: '0.02em',
554
- }}
555
- >
556
- 选择需要添加的字段
557
- </span>
558
- ),
559
- disabled: true,
560
- },
561
- ...hiddenFields.map((f) => ({
562
- key: `${action.label}::${f.name}`,
563
- label: (
564
- <span
565
- style={{
566
- display: 'flex',
567
- alignItems: 'center',
568
- justifyContent: 'space-between',
569
- gap: 12,
570
- }}
571
- >
572
- <span>{f.name}</span>
573
- <span
574
- style={{
575
- fontSize: 11,
576
- color: '#1677ff',
577
- background: '#e6f4ff',
578
- padding: '1px 6px',
579
- borderRadius: 4,
580
- fontFamily: 'monospace',
581
- flexShrink: 0,
582
- }}
583
- >
584
- {f.type}
585
- </span>
586
- </span>
587
- ),
588
- onClick: () => onFieldPick(action, f.name),
589
- })),
590
- ]
591
- : [{ key: '__empty', label: '(无可添加字段)', disabled: true }];
592
- return {
593
- key: action.label,
594
- label: action.label,
595
- children: fieldChildren,
596
- };
597
- }
598
- if (action.children && action.children.length > 0) {
599
- return {
600
- key: action.label,
601
- label: action.label,
602
- children: buildMenuItems(
603
- action.children,
604
- handleAction,
605
- hiddenFields,
606
- onFieldPick,
607
- ),
608
- };
609
- }
610
- return {
611
- key: action.label,
612
- label: action.label,
613
- onClick: () => handleAction(action),
614
- };
615
- });
616
- }
617
-
618
- function findAgentElement(x: number, y: number): HTMLElement | null {
619
- const elements = document.elementsFromPoint(x, y);
620
- for (const el of elements) {
621
- if (el instanceof HTMLElement && el.dataset.agentType) {
622
- return el;
623
- }
624
- }
625
- return null;
626
- }
627
-
628
- function parseElementInfo(
629
- el: HTMLElement,
630
- x: number,
631
- y: number,
632
- ): InspectedElementInfo {
633
- return {
634
- type: el.dataset.agentType as AgentType,
635
- field: el.dataset.agentField,
636
- resource: el.dataset.agentResource || '',
637
- file: el.dataset.agentFile,
638
- meta: el.dataset.agentMeta ? JSON.parse(el.dataset.agentMeta) : undefined,
639
- x,
640
- y,
641
- };
642
- }
643
-
644
- export const ElementInspector: React.FC = () => {
645
- const agent = useAgent();
646
- const [highlight, setHighlight] = useState<DOMRect | null>(null);
647
- const [label, setLabel] = useState('');
648
- const [menuInfo, setMenuInfo] = useState<InspectedElementInfo | null>(null);
649
- const [menuRect, setMenuRect] = useState<DOMRect | null>(null);
650
- const [menuOpen, setMenuOpen] = useState(false);
651
- const [freeInputVisible, setFreeInputVisible] = useState(false);
652
- const [freeInputValue, setFreeInputValue] = useState('');
653
- const [freeInputMode, setFreeInputMode] = useState<
654
- 'freeInput' | 'requiresInput'
655
- >('freeInput');
656
- const pendingActionRef = useRef<InspectorAction | null>(null);
657
- const pendingMenuInfoRef = useRef<InspectedElementInfo | null>(null);
658
-
659
- // requiresConfirm state
660
- const [confirmVisible, setConfirmVisible] = useState(false);
661
-
662
- // Field sub-menu state
663
- const [fieldConfirmVisible, setFieldConfirmVisible] = useState(false);
664
- const [fieldConfirmField, setFieldConfirmField] = useState('');
665
- const pendingFieldActionRef = useRef<InspectorAction | null>(null);
666
-
667
- const inspecting = agent?.inspecting ?? false;
668
-
669
- // Fetch hidden fields when menu opens
670
- const hiddenFields = menuOpen
671
- ? getHiddenFields(menuInfo?.resource ?? '', menuInfo?.type ?? 'list-column')
672
- : [];
673
-
674
- const handleMouseMove = useCallback((e: MouseEvent) => {
675
- const el = findAgentElement(e.clientX, e.clientY);
676
- if (el) {
677
- const rect = el.getBoundingClientRect();
678
- setHighlight(rect);
679
- const type = el.dataset.agentType as AgentType;
680
- const field = el.dataset.agentField;
681
- setLabel(`${TYPE_LABELS[type] || type}${field ? ': ' + field : ''}`);
682
- } else {
683
- setHighlight(null);
684
- setLabel('');
685
- }
686
- }, []);
687
-
688
- const handleClick = useCallback(
689
- (e: MouseEvent) => {
690
- e.preventDefault();
691
- e.stopPropagation();
692
- const el = findAgentElement(e.clientX, e.clientY);
693
- if (!el) return;
694
-
695
- const rect = el.getBoundingClientRect();
696
- const info = parseElementInfo(el, e.clientX, e.clientY);
697
- // keep highlight visible while menu is open
698
- setHighlight(rect);
699
- setMenuRect(rect);
700
- setMenuInfo(info);
701
- setMenuOpen(true);
702
- },
703
- [agent],
704
- );
705
-
706
- const handleKeyDown = useCallback(
707
- (e: KeyboardEvent) => {
708
- if (e.key === 'Escape') {
709
- agent?.stopInspecting();
710
- setHighlight(null);
711
- }
712
- },
713
- [agent],
714
- );
715
-
716
- useEffect(() => {
717
- if (!inspecting || menuOpen) return;
718
- document.addEventListener('mousemove', handleMouseMove, true);
719
- document.addEventListener('click', handleClick, true);
720
- document.addEventListener('keydown', handleKeyDown, true);
721
- return () => {
722
- document.removeEventListener('mousemove', handleMouseMove, true);
723
- document.removeEventListener('click', handleClick, true);
724
- document.removeEventListener('keydown', handleKeyDown, true);
725
- };
726
- }, [inspecting, menuOpen, handleMouseMove, handleClick, handleKeyDown]);
727
-
728
- // Clear transient UI state when inspect mode is stopped externally
729
- // (e.g. dev-shell toggle button calls agent.stopInspecting() directly,
730
- // bypassing all the individual event handlers that normally reset state).
731
- useEffect(() => {
732
- if (!inspecting) {
733
- setHighlight(null);
734
- setLabel('');
735
- setMenuOpen(false);
736
- setMenuInfo(null);
737
- setMenuRect(null);
738
- }
739
- }, [inspecting]);
740
-
741
- const applyAction = useCallback(
742
- (action: InspectorAction, prompt?: string) => {
743
- if (!agent) return;
744
- const resolvedMenuInfo = pendingMenuInfoRef.current || menuInfo;
745
- if (!resolvedMenuInfo) return;
746
- const userPrompt = prompt || action.promptTemplate || '';
747
- const finalPrompt = generatePrompt({
748
- skill: action.skill,
749
- pageInfo: agent.pageInfo,
750
- userPrompt,
751
- inspectedElement: resolvedMenuInfo,
752
- });
753
- agent.setSelectedSkillId(action.skill);
754
- agent.setSelectedSubSkillId(null);
755
- agent.setUserPrompt(userPrompt);
756
- agent.setInspectedElement(resolvedMenuInfo);
757
- agent.sendPrompt(finalPrompt);
758
- agent.stopInspecting();
759
- setMenuOpen(false);
760
- setMenuInfo(null);
761
- setMenuRect(null);
762
- setHighlight(null);
763
- pendingMenuInfoRef.current = null;
764
- },
765
- [agent, menuInfo],
766
- );
767
-
768
- // 快捷操作:直接替换 code 中的 prop,通过 canvas-patch 推送
769
- const applyPatch = useCallback(
770
- async (newCode: string) => {
771
- const resolvedMenuInfo = pendingMenuInfoRef.current || menuInfo;
772
- if (!resolvedMenuInfo) return;
773
- const itemId = resolvedMenuInfo.meta?.canvasItemId;
774
- if (!itemId) {
775
- message.error('找不到 Canvas Item ID');
776
- return;
777
- }
778
- try {
779
- const res = await fetch('/canvas-patch', {
780
- method: 'POST',
781
- headers: { 'Content-Type': 'application/json' },
782
- body: JSON.stringify({ itemId, code: newCode }),
783
- });
784
- if (!res.ok) throw new Error('请求失败');
785
- } catch {
786
- message.error('画布更新失败,请确认 dev server 是否运行');
787
- }
788
- agent?.stopInspecting();
789
- setMenuOpen(false);
790
- setMenuInfo(null);
791
- setMenuRect(null);
792
- setHighlight(null);
793
- pendingMenuInfoRef.current = null;
794
- pendingActionRef.current = null;
795
- },
796
- [agent, menuInfo],
797
- );
798
-
799
- const handleMenuAction = useCallback(
800
- (action: InspectorAction) => {
801
- // quickToggle: 直接切换 boolean prop,无需弹框
802
- if (action.quickToggle && action.propName) {
803
- const currentCode = menuInfo?.meta?.code ?? '';
804
- pendingMenuInfoRef.current = menuInfo;
805
- const currentVal = readBooleanProp(
806
- currentCode,
807
- action.propName,
808
- action.defaultValue ?? true,
809
- );
810
- const newCode = patchBooleanProp(
811
- currentCode,
812
- action.propName,
813
- !currentVal,
814
- );
815
- setMenuOpen(false);
816
- applyPatch(newCode);
817
- return;
818
- }
819
-
820
- // quickSelect: 弹出下拉选择框
821
- if (action.quickSelect) {
822
- pendingActionRef.current = action;
823
- pendingMenuInfoRef.current = menuInfo;
824
- setMenuOpen(false);
825
- setQuickSelectVisible(true);
826
- return;
827
- }
828
-
829
- // quickInput: 弹出输入框
830
- if (action.quickInput) {
831
- pendingActionRef.current = action;
832
- pendingMenuInfoRef.current = menuInfo;
833
- setMenuOpen(false);
834
- setQuickInputVisible(true);
835
- return;
836
- }
837
-
838
- // openDialog: 弹出自由对话框(复用 freeInput 逻辑)
839
- if (action.openDialog) {
840
- pendingActionRef.current = { ...action, freeInput: true, skill: null };
841
- pendingMenuInfoRef.current = menuInfo;
842
- setFreeInputValue('');
843
- setFreeInputMode('freeInput');
844
- setFreeInputVisible(true);
845
- setMenuOpen(false);
846
- return;
847
- }
848
-
849
- if (action.freeInput) {
850
- pendingActionRef.current = action;
851
- pendingMenuInfoRef.current = menuInfo;
852
- setFreeInputValue('');
853
- setFreeInputMode('freeInput');
854
- setFreeInputVisible(true);
855
- setMenuOpen(false);
856
- return;
857
- }
858
- if (action.requiresInput) {
859
- pendingActionRef.current = action;
860
- pendingMenuInfoRef.current = menuInfo;
861
- setFreeInputValue('');
862
- setFreeInputMode('requiresInput');
863
- setFreeInputVisible(true);
864
- setMenuOpen(false);
865
- return;
866
- }
867
- if (action.requiresConfirm) {
868
- pendingActionRef.current = action;
869
- pendingMenuInfoRef.current = menuInfo;
870
- setConfirmVisible(true);
871
- setMenuOpen(false);
872
- return;
873
- }
874
- applyAction(action);
875
- },
876
- [applyAction, menuInfo],
877
- );
878
-
879
- const handleConfirmOk = useCallback(() => {
880
- const action = pendingActionRef.current;
881
- if (action) applyAction(action);
882
- setConfirmVisible(false);
883
- pendingActionRef.current = null;
884
- }, [applyAction]);
885
-
886
- const handleConfirmCancel = useCallback(() => {
887
- agent?.stopInspecting();
888
- setConfirmVisible(false);
889
- pendingActionRef.current = null;
890
- pendingMenuInfoRef.current = null;
891
- setMenuInfo(null);
892
- setMenuRect(null);
893
- setHighlight(null);
894
- }, [agent]);
895
-
896
- const handleFieldPick = useCallback(
897
- (action: InspectorAction, field: string) => {
898
- pendingFieldActionRef.current = action;
899
- pendingMenuInfoRef.current = menuInfo;
900
- setFieldConfirmField(field);
901
- setFieldConfirmVisible(true);
902
- setMenuOpen(false);
903
- },
904
- [menuInfo],
905
- );
906
-
907
- const handleFieldConfirmOk = useCallback(() => {
908
- const action = pendingFieldActionRef.current;
909
- if (action) {
910
- const prompt = `${action.promptTemplate}:${fieldConfirmField}`;
911
- applyAction(action, prompt);
912
- }
913
- setFieldConfirmVisible(false);
914
- pendingFieldActionRef.current = null;
915
- }, [applyAction, fieldConfirmField]);
916
-
917
- const handleFieldConfirmCancel = useCallback(() => {
918
- agent?.stopInspecting();
919
- setFieldConfirmVisible(false);
920
- pendingFieldActionRef.current = null;
921
- pendingMenuInfoRef.current = null;
922
- setMenuInfo(null);
923
- setMenuRect(null);
924
- setHighlight(null);
925
- }, [agent]);
926
-
927
- const handleFreeInputOk = useCallback(() => {
928
- const action = pendingActionRef.current;
929
- if (action) {
930
- if (freeInputMode === 'requiresInput') {
931
- const userInput = freeInputValue.trim();
932
- const parts = [action.promptTemplate || ''];
933
- const prefix =
934
- 'promptPrefix' in action
935
- ? action.promptPrefix
936
- : action.promptSuffix
937
- ? ''
938
- : '修改为:';
939
- if (userInput)
940
- parts.push(prefix ? `${prefix}\n${userInput}` : userInput);
941
- if (action.promptSuffix) parts.push(action.promptSuffix);
942
- const combined = parts.filter(Boolean).join('\n\n');
943
- applyAction(action, combined);
944
- } else {
945
- applyAction(action, freeInputValue);
946
- }
947
- }
948
- setFreeInputVisible(false);
949
- pendingActionRef.current = null;
950
- }, [applyAction, freeInputValue, freeInputMode]);
951
-
952
- const handleFreeInputCancel = useCallback(() => {
953
- agent?.stopInspecting();
954
- setFreeInputVisible(false);
955
- pendingActionRef.current = null;
956
- pendingMenuInfoRef.current = null;
957
- setMenuInfo(null);
958
- setMenuRect(null);
959
- setHighlight(null);
960
- }, [agent]);
961
-
962
- const handleQuickSelectOk = useCallback(
963
- (value: string) => {
964
- const action = pendingActionRef.current;
965
- const currentCode = pendingMenuInfoRef.current?.meta?.code ?? '';
966
- if (action?.propName) {
967
- const newCode = patchEnumProp(currentCode, action.propName, value);
968
- applyPatch(newCode);
969
- }
970
- setQuickSelectVisible(false);
971
- },
972
- [applyPatch],
973
- );
974
-
975
- const handleQuickSelectCancel = useCallback(() => {
976
- setQuickSelectVisible(false);
977
- pendingActionRef.current = null;
978
- pendingMenuInfoRef.current = null;
979
- agent?.stopInspecting();
980
- setHighlight(null);
981
- }, [agent]);
982
-
983
- const handleQuickInputOk = useCallback(
984
- (value: string) => {
985
- const action = pendingActionRef.current;
986
- const currentCode = pendingMenuInfoRef.current?.meta?.code ?? '';
987
- if (action?.propName) {
988
- const newCode = patchStringProp(currentCode, action.propName, value);
989
- applyPatch(newCode);
990
- }
991
- setQuickInputVisible(false);
992
- },
993
- [applyPatch],
994
- );
995
- const handleQuickInputCancel = useCallback(() => {
996
- setQuickInputVisible(false);
997
- pendingActionRef.current = null;
998
- pendingMenuInfoRef.current = null;
999
- agent?.stopInspecting();
1000
- setHighlight(null);
1001
- }, [agent]);
1002
-
1003
- const handleMenuOpenChange = useCallback(
1004
- (open: boolean) => {
1005
- if (!open) {
1006
- agent?.stopInspecting();
1007
- setMenuOpen(false);
1008
- setMenuInfo(null);
1009
- setMenuRect(null);
1010
- setHighlight(null);
1011
- }
1012
- },
1013
- [agent],
1014
- );
1015
-
1016
- if (!agent) return null;
1017
-
1018
- const actions = menuInfo ? getInspectorActions(menuInfo) : [];
1019
-
1020
- const menuItems = buildMenuItems(
1021
- actions,
1022
- handleMenuAction,
1023
- hiddenFields,
1024
- handleFieldPick,
1025
- );
1026
-
1027
- return (
1028
- <>
1029
- {/* Overlay — captures mouse events during inspect mode */}
1030
- {inspecting && !menuOpen && (
1031
- <div
1032
- style={{
1033
- position: 'fixed',
1034
- inset: 0,
1035
- zIndex: 10000,
1036
- cursor: 'crosshair',
1037
- }}
1038
- />
1039
- )}
1040
-
1041
- {/* Highlight box — rendered independently so it persists while menu is open */}
1042
- {highlight && (
1043
- <>
1044
- <div
1045
- style={{
1046
- position: 'fixed',
1047
- left: highlight.left,
1048
- top: highlight.top,
1049
- width: highlight.width,
1050
- height: highlight.height,
1051
- border: '2px solid #1890ff',
1052
- background: 'rgba(24,144,255,0.1)',
1053
- pointerEvents: 'none',
1054
- zIndex: 10001,
1055
- borderRadius: 2,
1056
- }}
1057
- />
1058
- {/* Label */}
1059
- {label && (
1060
- <div
1061
- style={{
1062
- position: 'fixed',
1063
- left: highlight.left,
1064
- top: Math.max(0, highlight.top - 26),
1065
- background: '#1890ff',
1066
- color: '#fff',
1067
- fontSize: 12,
1068
- padding: '2px 8px',
1069
- borderRadius: '4px 4px 0 0',
1070
- pointerEvents: 'none',
1071
- zIndex: 10002,
1072
- whiteSpace: 'nowrap',
1073
- }}
1074
- >
1075
- {label}
1076
- </div>
1077
- )}
1078
- </>
1079
- )}
1080
-
1081
- {/* Action menu — anchor positioned at the clicked element's right-bottom */}
1082
- <Dropdown
1083
- menu={{ items: menuItems }}
1084
- open={menuOpen}
1085
- onOpenChange={handleMenuOpenChange}
1086
- placement="bottomRight"
1087
- trigger={['click']}
1088
- >
1089
- <div
1090
- style={{
1091
- position: 'fixed',
1092
- left: menuRect ? menuRect.right : 0,
1093
- top: menuRect ? menuRect.bottom : 0,
1094
- width: 1,
1095
- height: 1,
1096
- zIndex: menuOpen ? 10003 : -1,
1097
- pointerEvents: menuOpen ? 'auto' : 'none',
1098
- }}
1099
- />
1100
- </Dropdown>
1101
-
1102
- {/* Free input modal */}
1103
- <FreeInputModal
1104
- open={freeInputVisible}
1105
- mode={freeInputMode}
1106
- action={pendingActionRef.current}
1107
- value={freeInputValue}
1108
- onChange={setFreeInputValue}
1109
- onOk={handleFreeInputOk}
1110
- onCancel={handleFreeInputCancel}
1111
- />
1112
-
1113
- {/* requiresConfirm modal */}
1114
- <ConfirmModal
1115
- open={confirmVisible}
1116
- action={pendingActionRef.current}
1117
- onOk={handleConfirmOk}
1118
- onCancel={handleConfirmCancel}
1119
- />
1120
-
1121
- {/* Field sub-menu confirm modal */}
1122
- <FieldConfirmModal
1123
- open={fieldConfirmVisible}
1124
- actionLabel={pendingFieldActionRef.current?.label ?? ''}
1125
- fieldName={fieldConfirmField}
1126
- onOk={handleFieldConfirmOk}
1127
- onCancel={handleFieldConfirmCancel}
1128
- />
1129
- </>
1130
- );
1131
- };
1132
-
1133
- export default ElementInspector;