@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,815 +0,0 @@
1
- import React, { useEffect, useMemo, useState } from 'react';
2
- import type {
3
- PageMenuTreeNode,
4
- PageResourceAssignment,
5
- ResourceDefinition,
6
- } from '../types';
7
- import { useModalForm } from '@refinedev/antd';
8
- import { type HttpError, type RedirectAction } from '@refinedev/core';
9
- import {
10
- Form,
11
- Input,
12
- Modal,
13
- Space,
14
- Tag,
15
- TreeSelect,
16
- Typography,
17
- Transfer,
18
- Checkbox,
19
- Table,
20
- Divider,
21
- } from 'antd';
22
- import type { TransferProps } from 'antd';
23
- import { PageFieldSelector } from '../queries';
24
-
25
- type PageFormFieldValues = {
26
- name?: string;
27
- zhName?: string;
28
- enName?: string;
29
- code?: string;
30
- path?: string | null;
31
- isVirtual?: boolean;
32
- parentId?: number | null;
33
- description?: string;
34
- iframeUrl?: string;
35
- externalRedirectUrl?: string;
36
- selectedResourceIds?: number[];
37
- resourcePermissionAssignments?: Record<number, string[]>;
38
- };
39
-
40
- const AVAILABLE_PERMISSION_ACTIONS = [
41
- 'readAny',
42
- 'createAny',
43
- 'updateAny',
44
- 'deleteAny',
45
- ];
46
-
47
- const SPECIAL_CHARACTER_VALIDATION_PATTERN = /[^\u4e00-\u9fa5a-zA-Z0-9\s\-_/]/;
48
-
49
- interface PageFormModalProps {
50
- formActionType: 'create' | 'edit';
51
- editingPageId?: number;
52
- redirectAfterSubmit?: RedirectAction;
53
- onFormSubmitSuccess?: () => void;
54
- onModalCancel?: () => void;
55
- parentPageTreeOptions?: PageMenuTreeNode[];
56
- allAvailableResources?: ResourceDefinition[];
57
- currentResourceAssignments?: PageResourceAssignment[];
58
- allPagesData?: any[]; // All pages data for duplication check
59
- defaultParentId?: number | null; // Default parent ID for create mode
60
- defaultPathPrefix?: string; // Default path prefix for create mode
61
- }
62
-
63
- const buildPageTreeNodeLookupMap = (
64
- treeNodes?: PageMenuTreeNode[],
65
- ): Map<string, PageMenuTreeNode> => {
66
- const nodeLookupMap = new Map<string, PageMenuTreeNode>();
67
-
68
- const traverseAndAddToMap = (nodes?: PageMenuTreeNode[]) => {
69
- nodes?.forEach((node) => {
70
- nodeLookupMap.set(String(node.value), node);
71
- if (node.children?.length) {
72
- traverseAndAddToMap(node.children);
73
- }
74
- });
75
- };
76
-
77
- traverseAndAddToMap(treeNodes);
78
- return nodeLookupMap;
79
- };
80
-
81
- export const PageFormModal: React.FC<PageFormModalProps> = ({
82
- formActionType,
83
- editingPageId,
84
- redirectAfterSubmit,
85
- onModalCancel,
86
- onFormSubmitSuccess,
87
- parentPageTreeOptions,
88
- allAvailableResources = [],
89
- currentResourceAssignments = [],
90
- allPagesData = [],
91
- defaultParentId,
92
- defaultPathPrefix = '',
93
- }) => {
94
- const { formProps, modalProps, onFinish, close } = useModalForm<
95
- any,
96
- HttpError,
97
- PageFormFieldValues
98
- >({
99
- resource: 'page',
100
- action: formActionType,
101
- id: editingPageId,
102
- defaultVisible: true,
103
- redirect: redirectAfterSubmit,
104
- onMutationSuccess: () => {
105
- onFormSubmitSuccess?.();
106
- },
107
- meta: {
108
- select: PageFieldSelector,
109
- },
110
- });
111
-
112
- // Watch form values for conditional field visibility
113
- const isVirtual = Form.useWatch('isVirtual', formProps.form);
114
- const iframeUrl = Form.useWatch('iframeUrl', formProps.form);
115
- const externalRedirectUrl = Form.useWatch(
116
- 'externalRedirectUrl',
117
- formProps.form,
118
- );
119
- const hasExternalUrl = !!(
120
- (iframeUrl && /^(https?:\/\/|\/\w)/.test(iframeUrl.trim())) ||
121
- (externalRedirectUrl && /^https?:\/\//.test(externalRedirectUrl.trim()))
122
- );
123
-
124
- const [selectedResourceIds, setSelectedResourceIds] = useState<string[]>([]);
125
- const [resourcePermissionMap, setResourcePermissionMap] = useState<
126
- Record<number, string[]>
127
- >({});
128
- const [permissionValidationError, setPermissionValidationError] =
129
- useState<string>('');
130
- const [initialResourceAssignments, setInitialResourceAssignments] = useState<{
131
- resourceIds: string[];
132
- permissionMap: Record<number, string[]>;
133
- }>({ resourceIds: [], permissionMap: {} });
134
- const [initialFormValues, setInitialFormValues] =
135
- useState<PageFormFieldValues>({});
136
- const [isCodeManuallyEdited, setIsCodeManuallyEdited] = useState(false);
137
- const [isPathManuallyEdited, setIsPathManuallyEdited] = useState(false);
138
-
139
- // Set default values for create mode with parent
140
- useEffect(() => {
141
- if (formActionType === 'create' && formProps.form) {
142
- const initialValues: Partial<PageFormFieldValues> = {};
143
-
144
- if (defaultParentId) {
145
- initialValues.parentId = defaultParentId;
146
- }
147
- if (defaultPathPrefix) {
148
- initialValues.path = defaultPathPrefix;
149
- }
150
-
151
- if (Object.keys(initialValues).length > 0) {
152
- formProps.form.setFieldsValue(initialValues);
153
- }
154
- }
155
- }, [formActionType, defaultParentId, defaultPathPrefix, formProps.form]);
156
-
157
- useEffect(() => {
158
- if (formActionType === 'edit' && currentResourceAssignments.length > 0) {
159
- const initialSelectedIds = currentResourceAssignments.map((assignment) =>
160
- String(assignment.resourceId),
161
- );
162
- setSelectedResourceIds(initialSelectedIds);
163
-
164
- const initialPermissionMap: Record<number, string[]> = {};
165
- currentResourceAssignments.forEach((assignment) => {
166
- initialPermissionMap[assignment.resourceId] = [
167
- ...assignment.assignedPermissions,
168
- ];
169
- });
170
- setResourcePermissionMap(initialPermissionMap);
171
-
172
- // Store initial state for comparison
173
- setInitialResourceAssignments({
174
- resourceIds: [...initialSelectedIds],
175
- permissionMap: JSON.parse(JSON.stringify(initialPermissionMap)),
176
- });
177
- }
178
- }, [formActionType, currentResourceAssignments]);
179
-
180
- // Store initial form values when form is loaded in edit mode
181
- useEffect(() => {
182
- if (formActionType === 'edit' && formProps.form) {
183
- const currentValues = formProps.form.getFieldsValue();
184
- setInitialFormValues({
185
- name: currentValues.name,
186
- zhName: currentValues.zhName,
187
- enName: currentValues.enName,
188
- code: currentValues.code,
189
- path: currentValues.path,
190
- isVirtual: currentValues.isVirtual,
191
- parentId: currentValues.parentId,
192
- description: currentValues.description,
193
- iframeUrl: currentValues.iframeUrl,
194
- externalRedirectUrl: currentValues.externalRedirectUrl,
195
- });
196
- }
197
- }, [formActionType, formProps.form, formProps.initialValues]);
198
-
199
- const resourceTransferDataSource = useMemo(() => {
200
- return allAvailableResources.map((resource) => ({
201
- key: String(resource.id),
202
- title: resource.name,
203
- description: resource.description || '',
204
- }));
205
- }, [allAvailableResources]);
206
-
207
- const handleResourceTransferChange: TransferProps['onChange'] = (
208
- newTargetKeys,
209
- ) => {
210
- setSelectedResourceIds(newTargetKeys as string[]);
211
-
212
- const newResourceIds = new Set(newTargetKeys.map((key) => Number(key)));
213
- setResourcePermissionMap((prevMap) => {
214
- const updatedMap: Record<number, string[]> = {};
215
- Object.keys(prevMap).forEach((resourceIdStr) => {
216
- const resourceId = Number(resourceIdStr);
217
- if (newResourceIds.has(resourceId)) {
218
- updatedMap[resourceId] = prevMap[resourceId];
219
- }
220
- });
221
- newTargetKeys.forEach((key) => {
222
- const resourceId = Number(key);
223
- if (!updatedMap[resourceId]) {
224
- updatedMap[resourceId] = []; // Initialize with empty array, user must select at least one permission
225
- }
226
- });
227
- return updatedMap;
228
- });
229
-
230
- // Clear validation error when user changes resource selection
231
- if (permissionValidationError) {
232
- setPermissionValidationError('');
233
- }
234
- };
235
-
236
- const handleResourcePermissionChange = (
237
- resourceId: number,
238
- permissionAction: string,
239
- isChecked: boolean,
240
- ) => {
241
- setResourcePermissionMap((prevMap) => {
242
- const currentPermissions = prevMap[resourceId] || [];
243
- let updatedPermissions: string[];
244
-
245
- if (isChecked) {
246
- updatedPermissions = [...currentPermissions, permissionAction];
247
- } else {
248
- updatedPermissions = currentPermissions.filter(
249
- (action) => action !== permissionAction,
250
- );
251
- }
252
-
253
- return {
254
- ...prevMap,
255
- [resourceId]: updatedPermissions,
256
- };
257
- });
258
-
259
- // Clear validation error when user makes changes
260
- if (permissionValidationError) {
261
- setPermissionValidationError('');
262
- }
263
- };
264
-
265
- const filteredParentPageTreeOptions = useMemo(() => {
266
- if (formActionType !== 'edit' || !editingPageId || !parentPageTreeOptions) {
267
- return parentPageTreeOptions;
268
- }
269
-
270
- const filterOutCurrentPage = (
271
- nodes: PageMenuTreeNode[],
272
- ): PageMenuTreeNode[] => {
273
- return nodes
274
- .filter((node) => String(node.value) !== String(editingPageId))
275
- .map((node) => ({
276
- ...node,
277
- children: node.children
278
- ? filterOutCurrentPage(node.children)
279
- : undefined,
280
- }));
281
- };
282
-
283
- return filterOutCurrentPage(parentPageTreeOptions);
284
- }, [parentPageTreeOptions, formActionType, editingPageId]);
285
-
286
- formProps.onFinish = (values) => {
287
- // Clear path when external URL is configured (iframe or redirect)
288
- if (!hasExternalUrl) {
289
- values.path = null;
290
- }
291
-
292
- // Validate that each selected resource has at least one permission
293
- const resourcesWithoutPermissions: string[] = [];
294
- selectedResourceIds.forEach((resourceIdStr) => {
295
- const resourceId = Number(resourceIdStr);
296
- const permissions = resourcePermissionMap[resourceId] || [];
297
- if (permissions.length === 0) {
298
- const resource = allAvailableResources.find((r) => r.id === resourceId);
299
- resourcesWithoutPermissions.push(
300
- resource?.name || `Resource ${resourceId}`,
301
- );
302
- }
303
- });
304
-
305
- if (resourcesWithoutPermissions.length > 0) {
306
- setPermissionValidationError(
307
- `The following resources must have at least one permission selected: ${resourcesWithoutPermissions.join(', ')}`,
308
- );
309
- return;
310
- }
311
-
312
- // In edit mode, check if anything has changed
313
- if (formActionType === 'edit') {
314
- // Check if form fields have changed
315
- const formFieldsChanged =
316
- values.name !== initialFormValues.name ||
317
- values.zhName !== initialFormValues.zhName ||
318
- values.enName !== initialFormValues.enName ||
319
- values.code !== initialFormValues.code ||
320
- values.path !== initialFormValues.path ||
321
- values.description !== initialFormValues.description ||
322
- values.isVirtual !== initialFormValues.isVirtual ||
323
- values.parentId !== initialFormValues.parentId ||
324
- values.iframeUrl !== initialFormValues.iframeUrl ||
325
- values.externalRedirectUrl !== initialFormValues.externalRedirectUrl;
326
-
327
- // Check if resource assignments have changed
328
- const resourceIdsChanged =
329
- selectedResourceIds.length !==
330
- initialResourceAssignments.resourceIds.length ||
331
- selectedResourceIds.some(
332
- (id) => !initialResourceAssignments.resourceIds.includes(id),
333
- );
334
-
335
- let permissionsChanged = false;
336
- if (!resourceIdsChanged) {
337
- // Check if permissions for any resource have changed
338
- for (const resourceIdStr of selectedResourceIds) {
339
- const resourceId = Number(resourceIdStr);
340
- const currentPermissions = resourcePermissionMap[resourceId] || [];
341
- const initialPermissions =
342
- initialResourceAssignments.permissionMap[resourceId] || [];
343
-
344
- if (
345
- currentPermissions.length !== initialPermissions.length ||
346
- currentPermissions.some((p) => !initialPermissions.includes(p))
347
- ) {
348
- permissionsChanged = true;
349
- break;
350
- }
351
- }
352
- }
353
-
354
- // If nothing has changed, don't submit
355
- if (!formFieldsChanged && !resourceIdsChanged && !permissionsChanged) {
356
- Modal.info({
357
- title: 'No Changes Detected',
358
- content:
359
- 'No changes have been made to the form. The form will be closed without submitting.',
360
- });
361
- close();
362
- return;
363
- }
364
-
365
- // Build the submit payload with only changed data
366
- const formattedValuesForSubmit: any = {
367
- ...values,
368
- parentId: values.parentId ? Number(values.parentId) : null,
369
- };
370
-
371
- // Only include resourceAssignments if they changed
372
- if (resourceIdsChanged || permissionsChanged) {
373
- formattedValuesForSubmit.resourceAssignments = selectedResourceIds.map(
374
- (resourceIdStr) => {
375
- const resourceId = Number(resourceIdStr);
376
- const resource = allAvailableResources.find(
377
- (r) => r.id === resourceId,
378
- );
379
- return {
380
- resourceId,
381
- resourceName: resource?.name || '',
382
- assignedPermissions: resourcePermissionMap[resourceId] || [],
383
- };
384
- },
385
- );
386
- }
387
- onFinish(formattedValuesForSubmit);
388
- } else {
389
- // In create mode, always submit all data
390
- const resourceAssignmentsForSubmit = selectedResourceIds.map(
391
- (resourceIdStr) => {
392
- const resourceId = Number(resourceIdStr);
393
- const resource = allAvailableResources.find(
394
- (r) => r.id === resourceId,
395
- );
396
- return {
397
- resourceId,
398
- resourceName: resource?.name || '',
399
- assignedPermissions: resourcePermissionMap[resourceId] || [],
400
- };
401
- },
402
- );
403
-
404
- const formattedValuesForSubmit = {
405
- ...values,
406
- parentId: values.parentId ? Number(values.parentId) : null,
407
- resourceAssignments: resourceAssignmentsForSubmit,
408
- };
409
-
410
- onFinish(formattedValuesForSubmit);
411
- }
412
- };
413
-
414
- const resourcePermissionTableColumns = [
415
- {
416
- title: 'Resource Name',
417
- dataIndex: 'resourceName',
418
- key: 'resourceName',
419
- width: '30%',
420
- },
421
- {
422
- title: 'Permissions',
423
- key: 'permissions',
424
- render: (
425
- _: any,
426
- record: { resourceId: number; resourceName: string },
427
- ) => (
428
- <Space>
429
- {AVAILABLE_PERMISSION_ACTIONS.map((permissionAction) => (
430
- <Checkbox
431
- key={`${record.resourceId}-${permissionAction}`}
432
- checked={resourcePermissionMap[record.resourceId]?.includes(
433
- permissionAction,
434
- )}
435
- onChange={(e) =>
436
- handleResourcePermissionChange(
437
- record.resourceId,
438
- permissionAction,
439
- e.target.checked,
440
- )
441
- }
442
- >
443
- {permissionAction}
444
- </Checkbox>
445
- ))}
446
- </Space>
447
- ),
448
- },
449
- ];
450
-
451
- const selectedResourcesForPermissionTable = useMemo(() => {
452
- return selectedResourceIds.map((resourceIdStr) => {
453
- const resourceId = Number(resourceIdStr);
454
- const resource = allAvailableResources.find((r) => r.id === resourceId);
455
- return {
456
- resourceId,
457
- resourceName: resource?.name || `Resource ${resourceId}`,
458
- };
459
- });
460
- }, [selectedResourceIds, allAvailableResources]);
461
-
462
- return (
463
- <Modal
464
- {...modalProps}
465
- width={800}
466
- onCancel={() => {
467
- if (onModalCancel) {
468
- onModalCancel();
469
- return;
470
- }
471
- close();
472
- }}
473
- title={formActionType === 'create' ? 'Create New Page' : 'Edit Page'}
474
- >
475
- <Form {...formProps} layout="vertical">
476
- <Form.Item
477
- rules={[
478
- { required: true, message: 'Page name is required' },
479
- {
480
- validator: (_, value) => {
481
- if (
482
- !value ||
483
- !SPECIAL_CHARACTER_VALIDATION_PATTERN.test(value)
484
- ) {
485
- return Promise.resolve();
486
- }
487
- return Promise.reject(
488
- new Error('Special characters are not allowed in page name.'),
489
- );
490
- },
491
- },
492
- {
493
- validator: async (_, value) => {
494
- if (!value) {
495
- return Promise.resolve();
496
- }
497
-
498
- const trimmedValue = value.trim();
499
-
500
- // Check if page name already exists (case-insensitive)
501
- const isDuplicate = allPagesData.some((page: any) => {
502
- // Skip current page when editing
503
- if (formActionType === 'edit' && page.id === editingPageId) {
504
- return false;
505
- }
506
- return (
507
- page.name?.toLowerCase() === trimmedValue.toLowerCase()
508
- );
509
- });
510
-
511
- if (isDuplicate) {
512
- return Promise.reject(
513
- new Error(
514
- "⚠️ Warning: Page Name already exists. It's recommended to use a unique name.",
515
- ),
516
- );
517
- }
518
-
519
- return Promise.resolve();
520
- },
521
- },
522
- ]}
523
- name="name"
524
- label="Page Name"
525
- >
526
- <Input
527
- placeholder="Enter the page name (e.g., User Management)."
528
- onChange={(e) => {
529
- const nameValue = e.target.value;
530
- // Auto-generate code from name if code hasn't been manually edited
531
- if (!isCodeManuallyEdited && nameValue) {
532
- const generatedCode = nameValue
533
- .trim()
534
- .toLowerCase()
535
- .replace(/[\s-]+/g, '_') // Replace spaces and hyphens with underscores
536
- .replace(/[^a-z0-9_]/g, ''); // Remove invalid characters
537
- formProps.form?.setFieldsValue({ code: generatedCode });
538
- }
539
- // Auto-generate path from name if path hasn't been manually edited (only in create mode)
540
- if (
541
- !isPathManuallyEdited &&
542
- nameValue &&
543
- formActionType === 'create'
544
- ) {
545
- const generatedPathSegment = nameValue
546
- .trim()
547
- .toLowerCase()
548
- .replace(/[\s_]+/g, '-') // Replace spaces and underscores with hyphens
549
- .replace(/[^a-z0-9-/]/g, ''); // Remove invalid characters
550
- const newPath = defaultPathPrefix + generatedPathSegment;
551
- formProps.form?.setFieldsValue({ path: newPath });
552
- }
553
- }}
554
- />
555
- </Form.Item>
556
- <Form.Item
557
- rules={[
558
- { required: true, message: 'Page Code is required' },
559
- {
560
- pattern: /^[a-zA-Z0-9_]+$/,
561
- message:
562
- 'Page Code can only contain letters, numbers and underscores',
563
- },
564
- {
565
- validator: async (_, value) => {
566
- if (!value) {
567
- return Promise.resolve();
568
- }
569
-
570
- const trimmedValue = value.trim();
571
-
572
- // Check if page code already exists (case-insensitive)
573
- const isDuplicate = allPagesData.some((page: any) => {
574
- // Skip current page when editing
575
- if (formActionType === 'edit' && page.id === editingPageId) {
576
- return false;
577
- }
578
- return (
579
- page.code?.toLowerCase() === trimmedValue.toLowerCase()
580
- );
581
- });
582
-
583
- if (isDuplicate) {
584
- return Promise.reject(
585
- new Error(
586
- 'Page Code already exists. Please use a different code.',
587
- ),
588
- );
589
- }
590
-
591
- return Promise.resolve();
592
- },
593
- },
594
- ]}
595
- name="code"
596
- label="Page Code(建议使用根据Page Name自动生成的值。一旦保存,不建议修改,因为前端会使用它作为菜单标识)"
597
- >
598
- <Input
599
- placeholder="Enter the page code (e.g., user_management)"
600
- onChange={() => {
601
- // Mark as manually edited when user types in this field
602
- if (!isCodeManuallyEdited) {
603
- setIsCodeManuallyEdited(true);
604
- }
605
- }}
606
- />
607
- </Form.Item>
608
- <Form.Item name="isVirtual" valuePropName="checked">
609
- <Checkbox>Is Virtual Page</Checkbox>
610
- </Form.Item>
611
- {!isVirtual && (
612
- <>
613
- <Form.Item name="parentId" label="Parent Page (Menu Position)">
614
- {filteredParentPageTreeOptions?.length ? (
615
- <TreeSelect
616
- style={{ width: '100%' }}
617
- treeData={filteredParentPageTreeOptions}
618
- treeDefaultExpandAll
619
- allowClear
620
- placeholder="Select parent page (leave empty for root level)"
621
- />
622
- ) : (
623
- <>
624
- <Typography.Text type="secondary">
625
- No parent pages available. This page will be created at root
626
- level.
627
- </Typography.Text>
628
- <Input type="hidden" />
629
- </>
630
- )}
631
- </Form.Item>
632
- <Form.Item
633
- name="zhName"
634
- label="Chinese Name (中文菜单名)"
635
- tooltip="用于菜单显示的中文名称"
636
- >
637
- <Input placeholder="输入中文菜单名 (例如: 用户管理)" />
638
- </Form.Item>
639
- <Form.Item
640
- name="enName"
641
- label="English Name (英文菜单名)"
642
- tooltip="Menu display name in English"
643
- >
644
- <Input placeholder="Enter English menu name (e.g., User Management)" />
645
- </Form.Item>
646
- <Form.Item
647
- name="iframeUrl"
648
- label={'Iframe URL'}
649
- tooltip={{
650
- title: (
651
- <div>
652
- <p style={{ marginBottom: 8 }}>
653
- 设置后,页面将以 iframe 形式加载该 URL,而非内部组件渲染。
654
- </p>
655
- <p style={{ marginBottom: 4 }}>
656
- <strong>支持的模板变量:</strong>
657
- </p>
658
- <ul style={{ margin: 0, paddingLeft: 16 }}>
659
- <li>
660
- <code>{'{{locale}}'}</code> → 当前语言 (en/zh_CN)
661
- </li>
662
- </ul>
663
- <p style={{ marginTop: 8 }}>
664
- 支持完整 URL 或相对路径(如 /path/to/page)
665
- </p>
666
- </div>
667
- ),
668
- overlayStyle: { maxWidth: 320 },
669
- }}
670
- dependencies={['externalRedirectUrl']}
671
- rules={[
672
- {
673
- validator: (_, value) => {
674
- if (value?.trim() && externalRedirectUrl?.trim()) {
675
- return Promise.reject(
676
- new Error(
677
- '不能同时填写 Iframe URL 和 External Redirect URL,请只填其中一个',
678
- ),
679
- );
680
- }
681
- return Promise.resolve();
682
- },
683
- },
684
- ]}
685
- >
686
- <Input placeholder="e.g. https://example.com/page or /relative/path" />
687
- </Form.Item>
688
- <Form.Item
689
- name="externalRedirectUrl"
690
- dependencies={['iframeUrl']}
691
- label={'External Redirect URL'}
692
- tooltip={{
693
- title: (
694
- <p style={{ marginBottom: 8 }}>
695
- 设置后,页面将打开一个新标签并跳转到指定的外部链接。
696
- </p>
697
- ),
698
- overlayStyle: { maxWidth: 320 },
699
- }}
700
- rules={[
701
- {
702
- type: 'url',
703
- message: 'Please enter a valid URL',
704
- },
705
- {
706
- validator: (_, value) => {
707
- if (value?.trim() && iframeUrl?.trim()) {
708
- return Promise.reject(
709
- new Error(
710
- '不能同时填写 Iframe URL 和 External Redirect URL,请只填其中一个',
711
- ),
712
- );
713
- }
714
- return Promise.resolve();
715
- },
716
- },
717
- ]}
718
- >
719
- <Input placeholder="e.g. https://oit-erp.woa.com" />
720
- </Form.Item>
721
- {hasExternalUrl && (
722
- <Form.Item
723
- rules={[
724
- {
725
- validator: (_, value) => {
726
- if (
727
- !value ||
728
- !SPECIAL_CHARACTER_VALIDATION_PATTERN.test(value)
729
- ) {
730
- return Promise.resolve();
731
- }
732
- return Promise.reject(
733
- new Error(
734
- 'Special characters are not allowed in path.',
735
- ),
736
- );
737
- },
738
- },
739
- ]}
740
- name="path"
741
- label="Page Path"
742
- tooltip="仅当前端 routeRegistry 中未注册该 page code 时需要填写(如 iframe/外部链接页面)。前端已注册的页面会自动匹配路径,无需手动填写。"
743
- >
744
- <Input
745
- placeholder="Enter the URL path (e.g., /administration/page-management)"
746
- onChange={() => {
747
- // Mark as manually edited when user types in this field
748
- if (!isPathManuallyEdited) {
749
- setIsPathManuallyEdited(true);
750
- }
751
- }}
752
- />
753
- </Form.Item>
754
- )}
755
- </>
756
- )}
757
- <Form.Item name="description" label="Page Description">
758
- <Input.TextArea
759
- rows={2}
760
- placeholder="Enter a brief description of this page's purpose"
761
- />
762
- </Form.Item>
763
- <Divider>Resource Assignment & Permissions</Divider>
764
- <Form.Item label="Select Resources to Assign">
765
- <Transfer
766
- dataSource={resourceTransferDataSource}
767
- titles={['Available Resources', 'Assigned Resources']}
768
- targetKeys={selectedResourceIds}
769
- onChange={handleResourceTransferChange}
770
- render={(item) => item.title}
771
- showSearch
772
- filterOption={(inputValue, item) =>
773
- item.title.toLowerCase().includes(inputValue.toLowerCase()) ||
774
- item.description.toLowerCase().includes(inputValue.toLowerCase())
775
- }
776
- listStyle={{ width: 280, height: 250 }}
777
- />
778
- </Form.Item>
779
- {selectedResourceIds.length > 0 && (
780
- <Form.Item
781
- label="Configure Permissions for Each Resource"
782
- validateStatus={permissionValidationError ? 'error' : ''}
783
- help={permissionValidationError || ''}
784
- >
785
- <Table
786
- dataSource={selectedResourcesForPermissionTable}
787
- columns={resourcePermissionTableColumns}
788
- rowKey="resourceId"
789
- pagination={false}
790
- size="small"
791
- bordered
792
- />
793
- </Form.Item>
794
- )}
795
- {formActionType === 'edit' && currentResourceAssignments.length > 0 && (
796
- <Form.Item label="Current Permission Overview">
797
- <Space wrap>
798
- {Array.from(
799
- new Set(
800
- currentResourceAssignments.flatMap(
801
- (a) => a.assignedPermissions,
802
- ),
803
- ),
804
- ).map((permissionAction) => (
805
- <Tag key={permissionAction} color="blue">
806
- {permissionAction}
807
- </Tag>
808
- ))}
809
- </Space>
810
- </Form.Item>
811
- )}
812
- </Form>
813
- </Modal>
814
- );
815
- };