@gadmin2n/schematics 0.0.71 → 0.0.74

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 (640) hide show
  1. package/dist/index.d.ts +2 -0
  2. package/dist/index.js +2 -0
  3. package/dist/lib/application/files/gadmin2-game-angle-demo/config/prisma/job.prisma +62 -0
  4. package/dist/lib/application/files/gadmin2-game-angle-demo/config/prisma/workflow.prisma +171 -0
  5. package/{src/lib/application/files/gadmin2-game-angle-demo/config/ui/ITActivityDay.ts → dist/lib/application/files/gadmin2-game-angle-demo/config/ui/AgendaJob.ts} +11 -21
  6. package/dist/lib/application/files/gadmin2-game-angle-demo/config/ui/Event.ts +1 -1
  7. package/{src/lib/application/files/gadmin2-game-angle-demo/config/ui/User.ts → dist/lib/application/files/gadmin2-game-angle-demo/config/ui/WorkflowEventOutbox.ts} +9 -17
  8. package/{src/lib/application/files/gadmin2-game-angle-demo/config/ui/Audit.ts → dist/lib/application/files/gadmin2-game-angle-demo/config/ui/WorkflowNodeInstance.ts} +4 -12
  9. package/{src/lib/application/files/gadmin2-game-angle-demo/config/ui/SavedQuery.ts → dist/lib/application/files/gadmin2-game-angle-demo/config/ui/WorkflowNodeType.ts} +4 -12
  10. package/dist/lib/application/files/gadmin2-game-angle-demo/server/.env +5 -0
  11. package/dist/lib/application/files/gadmin2-game-angle-demo/server/gadmin-cli.json +9 -1
  12. package/dist/lib/application/files/gadmin2-game-angle-demo/server/package-lock.json +15579 -0
  13. package/dist/lib/application/files/gadmin2-game-angle-demo/server/package.json +7 -4
  14. package/dist/lib/application/files/gadmin2-game-angle-demo/server/prisma.config.ts +14 -7
  15. package/dist/lib/application/files/gadmin2-game-angle-demo/server/seed/index.ts +4 -0
  16. package/dist/lib/application/files/gadmin2-game-angle-demo/server/seed/permissions.ts +60 -2
  17. package/dist/lib/application/files/gadmin2-game-angle-demo/server/seed/workflow-node-types.ts +746 -0
  18. package/dist/lib/application/files/gadmin2-game-angle-demo/server/seed/workflows.ts +786 -0
  19. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/app.module.ts +2 -0
  20. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/agenda/agenda.controller.ts +112 -0
  21. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/agenda/agenda.module.ts +10 -0
  22. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/agenda/agenda.service.ts +648 -0
  23. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/agendaJob/agendaJob.controller.spec.ts +20 -0
  24. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/agendaJob/agendaJob.controller.ts +145 -0
  25. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/agendaJob/agendaJob.module.ts +10 -0
  26. package/{src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/canvas/canvas.service.spec.ts → dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/agendaJob/agendaJob.service.spec.ts} +71 -65
  27. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/agendaJob/agendaJob.service.ts +83 -0
  28. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/index.ts +2 -1
  29. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/temporal.module.ts +9 -0
  30. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/temporal.service.ts +100 -0
  31. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow-execution.dto.ts +19 -0
  32. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow-export.dto.ts +43 -0
  33. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow-export.service.ts +317 -0
  34. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow-node-type.controller.ts +16 -0
  35. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow-node-type.service.ts +13 -0
  36. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow.controller.ts +220 -0
  37. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow.dto.ts +82 -0
  38. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow.module.ts +16 -0
  39. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow.service.ts +505 -0
  40. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowEventOutbox/workflowEventOutbox.controller.spec.ts +22 -0
  41. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowEventOutbox/workflowEventOutbox.controller.ts +147 -0
  42. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowEventOutbox/workflowEventOutbox.module.ts +10 -0
  43. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowEventOutbox/workflowEventOutbox.service.spec.ts +356 -0
  44. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowEventOutbox/workflowEventOutbox.service.ts +110 -0
  45. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowNodeInstance/workflowNodeInstance.controller.spec.ts +22 -0
  46. package/{src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/pageResource/pageResource.controller.ts → dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowNodeInstance/workflowNodeInstance.controller.ts} +62 -42
  47. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowNodeInstance/workflowNodeInstance.module.ts +10 -0
  48. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/{canvas/canvas.service.spec.ts → workflowNodeInstance/workflowNodeInstance.service.spec.ts} +98 -76
  49. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowNodeInstance/workflowNodeInstance.service.ts +168 -0
  50. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowNodeType/workflowNodeType.controller.spec.ts +22 -0
  51. package/{src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/roleResource/roleResource.controller.ts → dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowNodeType/workflowNodeType.controller.ts} +44 -41
  52. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowNodeType/workflowNodeType.module.ts +10 -0
  53. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowNodeType/workflowNodeType.service.spec.ts +348 -0
  54. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowNodeType/workflowNodeType.service.ts +106 -0
  55. package/dist/lib/application/files/gadmin2-game-angle-demo/server/yarn.lock +191 -16
  56. package/dist/lib/application/files/gadmin2-game-angle-demo/temporal/README.md +278 -0
  57. package/dist/lib/application/files/gadmin2-game-angle-demo/temporal/config/development-sql.yaml +5 -0
  58. package/dist/lib/application/files/gadmin2-game-angle-demo/temporal/docker-compose.yml +25 -0
  59. package/dist/lib/application/files/gadmin2-game-angle-demo/temporal/package.json +13 -0
  60. package/dist/lib/application/files/gadmin2-game-angle-demo/temporal/sql/create-event-trigger.sql +87 -0
  61. package/dist/lib/application/files/gadmin2-game-angle-demo/temporal/worker/.env +7 -0
  62. package/dist/lib/application/files/gadmin2-game-angle-demo/temporal/worker/SANDBOX.md +122 -0
  63. package/dist/lib/application/files/gadmin2-game-angle-demo/temporal/worker/package-lock.json +4285 -0
  64. package/dist/lib/application/files/gadmin2-game-angle-demo/temporal/worker/package.json +28 -0
  65. package/dist/lib/application/files/gadmin2-game-angle-demo/temporal/worker/src/__tests__/activities/code-execute.test.ts +44 -0
  66. package/dist/lib/application/files/gadmin2-game-angle-demo/temporal/worker/src/__tests__/activities/http-request.test.ts +87 -0
  67. package/dist/lib/application/files/gadmin2-game-angle-demo/temporal/worker/src/__tests__/helpers.test.ts +225 -0
  68. package/dist/lib/application/files/gadmin2-game-angle-demo/temporal/worker/src/__tests__/node-type-consistency.test.ts +101 -0
  69. package/dist/lib/application/files/gadmin2-game-angle-demo/temporal/worker/src/activities/code-execute.ts +51 -0
  70. package/dist/lib/application/files/gadmin2-game-angle-demo/temporal/worker/src/activities/db-execute.ts +85 -0
  71. package/dist/lib/application/files/gadmin2-game-angle-demo/temporal/worker/src/activities/db-query.ts +35 -0
  72. package/dist/lib/application/files/gadmin2-game-angle-demo/temporal/worker/src/activities/http-request.ts +54 -0
  73. package/dist/lib/application/files/gadmin2-game-angle-demo/temporal/worker/src/activities/index.ts +6 -0
  74. package/dist/lib/application/files/gadmin2-game-angle-demo/temporal/worker/src/activities/reporting.ts +62 -0
  75. package/dist/lib/application/files/gadmin2-game-angle-demo/temporal/worker/src/activities/send-notification.ts +47 -0
  76. package/dist/lib/application/files/gadmin2-game-angle-demo/temporal/worker/src/config.ts +13 -0
  77. package/dist/lib/application/files/gadmin2-game-angle-demo/temporal/worker/src/dsl/condition.ts +101 -0
  78. package/dist/lib/application/files/gadmin2-game-angle-demo/temporal/worker/src/dsl/context.ts +58 -0
  79. package/dist/lib/application/files/gadmin2-game-angle-demo/temporal/worker/src/dsl/graph.ts +184 -0
  80. package/dist/lib/application/files/gadmin2-game-angle-demo/temporal/worker/src/dsl/helpers.ts +133 -0
  81. package/dist/lib/application/files/gadmin2-game-angle-demo/temporal/worker/src/dsl/node-types.ts +57 -0
  82. package/dist/lib/application/files/gadmin2-game-angle-demo/temporal/worker/src/dsl/types.ts +77 -0
  83. package/dist/lib/application/files/gadmin2-game-angle-demo/temporal/worker/src/index.ts +36 -0
  84. package/dist/lib/application/files/gadmin2-game-angle-demo/temporal/worker/src/outbox-poller.ts +226 -0
  85. package/dist/lib/application/files/gadmin2-game-angle-demo/temporal/worker/src/workflows/dsl-workflow.ts +411 -0
  86. package/dist/lib/application/files/gadmin2-game-angle-demo/temporal/worker/tsconfig.json +19 -0
  87. package/dist/lib/application/files/gadmin2-game-angle-demo/temporal/worker/vitest.config.ts +8 -0
  88. package/dist/lib/application/files/gadmin2-game-angle-demo/temporal/worker/yarn.lock +1905 -0
  89. package/dist/lib/application/files/gadmin2-game-angle-demo/web/.env +1 -0
  90. package/dist/lib/application/files/gadmin2-game-angle-demo/web/package-lock.json +17555 -0
  91. package/dist/lib/application/files/gadmin2-game-angle-demo/web/package.json +5 -2
  92. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/App.tsx +1 -0
  93. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/agentPanel/inspectorActions.ts +130 -3
  94. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/layout/sider.tsx +5 -1
  95. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/layout/title.tsx +1 -1
  96. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/config/routeRegistry.tsx +78 -0
  97. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/DevShell.tsx +146 -45
  98. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/SkillMenu.tsx +1 -1
  99. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/list.tsx +48 -2
  100. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/show.tsx +43 -2
  101. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/locales/en/common.json +15 -12
  102. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/locales/zh_CN/common.json +15 -12
  103. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/agenda/index.tsx +789 -0
  104. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/agenda/show.tsx +669 -0
  105. package/{src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/game → dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/agendaJob}/create.tsx +13 -10
  106. package/{src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/audit → dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/agendaJob}/edit.tsx +13 -10
  107. package/{src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/game → dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/agendaJob}/list.tsx +29 -21
  108. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/agendaJob/show.tsx +70 -0
  109. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/CanvasListPage.tsx +0 -1
  110. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/CanvasPage.tsx +169 -62
  111. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/CanvasToolbar.tsx +120 -148
  112. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/CodeFloatWindow.tsx +74 -181
  113. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/ComponentThumbnail.tsx +3 -1
  114. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/LivePreview.tsx +15 -13
  115. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/canvasConfigRegistry.tsx +2 -2
  116. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/canvasContextMenuRegistry.tsx +349 -14
  117. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/canvasDefaults.ts +18 -17
  118. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/BarChartDataSourceModal.tsx +10 -4
  119. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/LineChartDataSourceModal.tsx +10 -4
  120. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/{ChartViewerConfigModal.tsx → MultiChartConfigModal.tsx} +30 -18
  121. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/MultiChartDataSourceModal.tsx +427 -0
  122. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/NumCardDataSourceModal.tsx +10 -4
  123. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/PromptModal.tsx +6 -14
  124. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/RadarChartDataSourceModal.tsx +10 -4
  125. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/TableDataSourceModal.tsx +10 -4
  126. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/canvasModalProps.ts +24 -0
  127. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/demos.ts +45 -63
  128. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/CustomNode.tsx +99 -0
  129. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/ExportModal.tsx +87 -0
  130. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/FlowRenderer.tsx +322 -0
  131. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/ImportModal.tsx +175 -0
  132. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/NodeEditModal.tsx +60 -0
  133. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/NodePropertyPanel.tsx +1150 -0
  134. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/RunWorkflowModal.tsx +101 -0
  135. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/StatusCards.tsx +198 -0
  136. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/VersionPanel.tsx +81 -0
  137. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/editor.tsx +566 -0
  138. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/hooks/useWorkflowAgent.ts +224 -0
  139. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/index.tsx +524 -0
  140. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/instance-detail.tsx +343 -0
  141. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/instances.tsx +243 -0
  142. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/components/CreateNodeInstanceModal.tsx +363 -0
  143. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/components/DynamicConfigForm.tsx +154 -0
  144. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/components/NodeInstanceForm.tsx +176 -0
  145. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/create.tsx +77 -0
  146. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/edit.tsx +112 -0
  147. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/index.tsx +305 -0
  148. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/show.tsx +282 -0
  149. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/show.tsx +469 -0
  150. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/types.ts +92 -0
  151. package/{src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/audit → dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflowEventOutbox}/create.tsx +18 -12
  152. package/{src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/game → dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflowEventOutbox}/edit.tsx +18 -12
  153. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflowEventOutbox/list.tsx +254 -0
  154. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflowEventOutbox/show.tsx +74 -0
  155. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/vite-env.d.ts +12 -0
  156. package/dist/lib/application/files/gadmin2-game-angle-demo/web/yarn.lock +1501 -1199
  157. package/package.json +1 -1
  158. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/app.controller.spec.ts +0 -22
  159. package/dist/lib/application/files/gadmin2-game-angle-demo/web/.npmrc +0 -1
  160. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/BarChart/index.tsx +0 -896
  161. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/ChartSwitcher/index.tsx +0 -219
  162. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/ChartViewer/index.tsx +0 -159
  163. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/Filter/index.tsx +0 -192
  164. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/LineChart/index.tsx +0 -1034
  165. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/NumCard/NumCard.module.css +0 -8
  166. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/NumCard/index.tsx +0 -509
  167. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/NumLineCard/index.tsx +0 -66
  168. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/PieChart/index.tsx +0 -552
  169. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/RadarChart/index.tsx +0 -263
  170. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/Section/index.tsx +0 -35
  171. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/Table/index.tsx +0 -207
  172. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/TreemapChart/index.tsx +0 -382
  173. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/WorldMap/index.tsx +0 -135
  174. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/chart-constants.ts +0 -53
  175. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/icon/InfoIcon.tsx +0 -8
  176. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/icon/index.ts +0 -1
  177. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/map/config.ts +0 -31
  178. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/map/nameMap.json +0 -9
  179. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/map/world.geo.json +0 -39349
  180. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/metric-info-tooltip/index.tsx +0 -19
  181. package/src/lib/application/application.schema.d.ts +0 -59
  182. package/src/lib/application/files/gadmin2-game-angle-demo/.dockerignore +0 -33
  183. package/src/lib/application/files/gadmin2-game-angle-demo/.gitignore +0 -46
  184. package/src/lib/application/files/gadmin2-game-angle-demo/.husky/_/.gitignore +0 -1
  185. package/src/lib/application/files/gadmin2-game-angle-demo/.husky/_/husky.sh +0 -36
  186. package/src/lib/application/files/gadmin2-game-angle-demo/.husky/pre-commit +0 -10
  187. package/src/lib/application/files/gadmin2-game-angle-demo/Dockerfile +0 -63
  188. package/src/lib/application/files/gadmin2-game-angle-demo/Jenkinsfile +0 -70
  189. package/src/lib/application/files/gadmin2-game-angle-demo/config/.types.d.ts +0 -143
  190. package/src/lib/application/files/gadmin2-game-angle-demo/config/prisma/canvas.prisma +0 -45
  191. package/src/lib/application/files/gadmin2-game-angle-demo/config/prisma/example.prisma +0 -34
  192. package/src/lib/application/files/gadmin2-game-angle-demo/config/prisma/system.prisma +0 -173
  193. package/src/lib/application/files/gadmin2-game-angle-demo/config/ui/Event.ts +0 -70
  194. package/src/lib/application/files/gadmin2-game-angle-demo/config/ui/Game.ts +0 -58
  195. package/src/lib/application/files/gadmin2-game-angle-demo/config/ui/Log.ts +0 -56
  196. package/src/lib/application/files/gadmin2-game-angle-demo/config/ui/Page.ts +0 -70
  197. package/src/lib/application/files/gadmin2-game-angle-demo/config/ui/PageResource.ts +0 -70
  198. package/src/lib/application/files/gadmin2-game-angle-demo/config/ui/Resource.ts +0 -70
  199. package/src/lib/application/files/gadmin2-game-angle-demo/config/ui/Role.ts +0 -58
  200. package/src/lib/application/files/gadmin2-game-angle-demo/config/ui/RolePages.ts +0 -70
  201. package/src/lib/application/files/gadmin2-game-angle-demo/config/ui/RoleResource.ts +0 -70
  202. package/src/lib/application/files/gadmin2-game-angle-demo/config/ui/_common.ts +0 -16
  203. package/src/lib/application/files/gadmin2-game-angle-demo/readme.md +0 -142
  204. package/src/lib/application/files/gadmin2-game-angle-demo/server/.env +0 -31
  205. package/src/lib/application/files/gadmin2-game-angle-demo/server/.env.local +0 -1
  206. package/src/lib/application/files/gadmin2-game-angle-demo/server/.eslintrc.js +0 -28
  207. package/src/lib/application/files/gadmin2-game-angle-demo/server/.prettierignore +0 -7
  208. package/src/lib/application/files/gadmin2-game-angle-demo/server/.prettierrc +0 -4
  209. package/src/lib/application/files/gadmin2-game-angle-demo/server/README.md +0 -55
  210. package/src/lib/application/files/gadmin2-game-angle-demo/server/config/ac.config.ts +0 -24
  211. package/src/lib/application/files/gadmin2-game-angle-demo/server/config/index.ts +0 -58
  212. package/src/lib/application/files/gadmin2-game-angle-demo/server/gadmin-cli.json +0 -25
  213. package/src/lib/application/files/gadmin2-game-angle-demo/server/migrate-between-pg-schemas.js +0 -1232
  214. package/src/lib/application/files/gadmin2-game-angle-demo/server/package.json +0 -143
  215. package/src/lib/application/files/gadmin2-game-angle-demo/server/prisma/.generator.prisma +0 -34
  216. package/src/lib/application/files/gadmin2-game-angle-demo/server/prisma.config.ts +0 -16
  217. package/src/lib/application/files/gadmin2-game-angle-demo/server/scripts/lib/page-helpers.ts +0 -157
  218. package/src/lib/application/files/gadmin2-game-angle-demo/server/scripts/page-manage.ts +0 -290
  219. package/src/lib/application/files/gadmin2-game-angle-demo/server/scripts/permission-manage.ts +0 -184
  220. package/src/lib/application/files/gadmin2-game-angle-demo/server/scripts/prismaModels.ts +0 -143
  221. package/src/lib/application/files/gadmin2-game-angle-demo/server/scripts/sync-resources.ts +0 -100
  222. package/src/lib/application/files/gadmin2-game-angle-demo/server/scripts/syncDataMngtPages.ts +0 -119
  223. package/src/lib/application/files/gadmin2-game-angle-demo/server/seed/games.ts +0 -1
  224. package/src/lib/application/files/gadmin2-game-angle-demo/server/seed/index.ts +0 -21
  225. package/src/lib/application/files/gadmin2-game-angle-demo/server/seed/permissions.ts +0 -244
  226. package/src/lib/application/files/gadmin2-game-angle-demo/server/seed/users.ts +0 -7
  227. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/alias.config.ts +0 -7
  228. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/app.controller.spec.ts +0 -22
  229. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/app.controller.ts +0 -192
  230. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/app.module.ts +0 -91
  231. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/app.service.ts +0 -189
  232. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/lib/auth.guard.ts +0 -154
  233. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/lib/http-cache.interceptor.ts +0 -21
  234. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/lib/logger.ts +0 -19
  235. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/lib/roles.guard.ts +0 -47
  236. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/lib/safe-log.util.ts +0 -176
  237. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/lib/taihu.ts +0 -175
  238. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/lib/tracing.ts +0 -174
  239. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/lib/trim.pipe.ts +0 -51
  240. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/lib/utils.ts +0 -145
  241. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/lib/woaAuth.ts +0 -95
  242. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/main.ts +0 -132
  243. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/audit/audit.controller.spec.ts +0 -20
  244. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/audit/audit.controller.ts +0 -190
  245. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/audit/audit.module.ts +0 -10
  246. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/audit/audit.service.spec.ts +0 -338
  247. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/audit/audit.service.ts +0 -83
  248. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/canvas/canvas.controller.spec.ts +0 -20
  249. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/canvas/canvas.controller.ts +0 -81
  250. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/canvas/canvas.dto.ts +0 -49
  251. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/canvas/canvas.module.ts +0 -11
  252. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/canvas/canvas.service.ts +0 -249
  253. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/game/game.controller.spec.ts +0 -20
  254. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/game/game.controller.ts +0 -188
  255. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/game/game.module.ts +0 -10
  256. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/game/game.service.spec.ts +0 -18
  257. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/game/game.service.ts +0 -83
  258. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/index.ts +0 -4
  259. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/page/page.controller.spec.ts +0 -20
  260. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/page/page.controller.ts +0 -250
  261. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/page/page.module.ts +0 -10
  262. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/page/page.service.spec.ts +0 -18
  263. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/page/page.service.ts +0 -1051
  264. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/pageResource/pageResource.controller.spec.ts +0 -20
  265. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/pageResource/pageResource.module.ts +0 -13
  266. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/pageResource/pageResource.service.spec.ts +0 -18
  267. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/pageResource/pageResource.service.ts +0 -219
  268. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/resource/resource.controller.spec.ts +0 -20
  269. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/resource/resource.controller.ts +0 -196
  270. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/resource/resource.module.ts +0 -10
  271. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/resource/resource.service.spec.ts +0 -18
  272. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/resource/resource.service.ts +0 -199
  273. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/role/role.controller.spec.ts +0 -20
  274. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/role/role.controller.ts +0 -210
  275. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/role/role.module.ts +0 -12
  276. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/role/role.service.spec.ts +0 -18
  277. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/role/role.service.ts +0 -862
  278. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/role/roles-refresher.service.ts +0 -133
  279. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/rolePages/rolePages.controller.spec.ts +0 -20
  280. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/rolePages/rolePages.controller.ts +0 -196
  281. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/rolePages/rolePages.module.ts +0 -10
  282. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/rolePages/rolePages.service.spec.ts +0 -18
  283. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/rolePages/rolePages.service.ts +0 -201
  284. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/roleResource/roleResource.controller.spec.ts +0 -20
  285. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/roleResource/roleResource.module.ts +0 -10
  286. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/roleResource/roleResource.service.spec.ts +0 -18
  287. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/roleResource/roleResource.service.ts +0 -216
  288. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/user/user.controller.spec.ts +0 -20
  289. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/user/user.controller.ts +0 -198
  290. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/user/user.module.ts +0 -10
  291. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/user/user.service.spec.ts +0 -18
  292. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/user/user.service.ts +0 -104
  293. package/src/lib/application/files/gadmin2-game-angle-demo/server/start-prod.sh +0 -130
  294. package/src/lib/application/files/gadmin2-game-angle-demo/server/test/app.e2e-spec.ts +0 -24
  295. package/src/lib/application/files/gadmin2-game-angle-demo/server/test/jest-e2e.json +0 -9
  296. package/src/lib/application/files/gadmin2-game-angle-demo/server/tsconfig.build.json +0 -4
  297. package/src/lib/application/files/gadmin2-game-angle-demo/server/tsconfig.json +0 -36
  298. package/src/lib/application/files/gadmin2-game-angle-demo/server/yarn.lock +0 -7737
  299. package/src/lib/application/files/gadmin2-game-angle-demo/web/.env +0 -2
  300. package/src/lib/application/files/gadmin2-game-angle-demo/web/.eslintrc.json +0 -38
  301. package/src/lib/application/files/gadmin2-game-angle-demo/web/.npmrc +0 -1
  302. package/src/lib/application/files/gadmin2-game-angle-demo/web/.prettierignore +0 -2
  303. package/src/lib/application/files/gadmin2-game-angle-demo/web/.prettierrc +0 -4
  304. package/src/lib/application/files/gadmin2-game-angle-demo/web/README.MD +0 -48
  305. package/src/lib/application/files/gadmin2-game-angle-demo/web/dev-shell-entry.html +0 -49
  306. package/src/lib/application/files/gadmin2-game-angle-demo/web/index.html +0 -19
  307. package/src/lib/application/files/gadmin2-game-angle-demo/web/package.json +0 -92
  308. package/src/lib/application/files/gadmin2-game-angle-demo/web/postcss.config.cjs +0 -6
  309. package/src/lib/application/files/gadmin2-game-angle-demo/web/public/favicon.ico +0 -0
  310. package/src/lib/application/files/gadmin2-game-angle-demo/web/public/images/flags/en.svg +0 -1
  311. package/src/lib/application/files/gadmin2-game-angle-demo/web/public/images/flags/zh_CN.svg +0 -11
  312. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/App.tsx +0 -137
  313. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/auditLogProvider.ts +0 -89
  314. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/authProvider.ts +0 -144
  315. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/BulkActions.tsx +0 -287
  316. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/ListPageHeader.tsx +0 -56
  317. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/RowActions.tsx +0 -318
  318. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/SearchBar.tsx +0 -323
  319. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/SqlModal.tsx +0 -495
  320. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/VanillaJSONEditor/index.css +0 -10
  321. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/VanillaJSONEditor/index.jsx +0 -53
  322. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/agentPanel/AgentContext.tsx +0 -375
  323. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/agentPanel/ElementInspector.tsx +0 -1133
  324. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/agentPanel/agentAttributes.ts +0 -70
  325. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/agentPanel/index.ts +0 -8
  326. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/agentPanel/inspectorActions.ts +0 -1034
  327. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/agentPanel/pagePathUtils.ts +0 -66
  328. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/agentPanel/promptGenerator.ts +0 -135
  329. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/agentPanel/propPatcher.ts +0 -84
  330. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/auditLog/components/eventList/index.tsx +0 -58
  331. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/auditLog/components/index.ts +0 -4
  332. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/auditLog/components/logButton/index.tsx +0 -96
  333. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/auditLog/components/logList/index.tsx +0 -72
  334. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/auditLog/components/modalDiffViewer/index.tsx +0 -104
  335. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/auditLog/index.tsx +0 -2
  336. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/BarChart/index.tsx +0 -896
  337. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/ChartSwitcher/index.tsx +0 -219
  338. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/ChartViewer/index.tsx +0 -159
  339. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/Filter/index.tsx +0 -192
  340. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/LineChart/index.tsx +0 -1034
  341. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/NumCard/NumCard.module.css +0 -8
  342. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/NumCard/index.tsx +0 -509
  343. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/NumLineCard/index.tsx +0 -66
  344. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/PieChart/index.tsx +0 -552
  345. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/RadarChart/index.tsx +0 -263
  346. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/Section/index.tsx +0 -35
  347. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/Table/index.tsx +0 -207
  348. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/TreemapChart/index.tsx +0 -382
  349. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/WorldMap/index.tsx +0 -135
  350. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/chart-constants.ts +0 -53
  351. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/icon/InfoIcon.tsx +0 -8
  352. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/icon/index.ts +0 -1
  353. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/map/config.ts +0 -31
  354. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/map/nameMap.json +0 -9
  355. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/map/world.geo.json +0 -39349
  356. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/metric-info-tooltip/index.tsx +0 -19
  357. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/contexts/business/index.tsx +0 -65
  358. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/contexts/color-mode/index.tsx +0 -54
  359. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/custom-avatar.tsx +0 -42
  360. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/index.ts +0 -8
  361. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/layout/header.tsx +0 -106
  362. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/layout/index.ts +0 -4
  363. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/layout/layout.tsx +0 -32
  364. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/layout/logo.tsx +0 -19
  365. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/layout/sider.tsx +0 -431
  366. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/layout/title.tsx +0 -61
  367. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/offLayoutArea/index.tsx +0 -5
  368. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/pagination-total.tsx +0 -21
  369. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/tags/index.ts +0 -1
  370. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/tags/role-tag.tsx +0 -44
  371. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/text.tsx +0 -78
  372. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/config/http.ts +0 -49
  373. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/config/routeRegistry.tsx +0 -428
  374. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/constants/layout.ts +0 -16
  375. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/AddDataModal.tsx +0 -199
  376. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/AddPageModal.tsx +0 -335
  377. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/DeleteDataConfirm.tsx +0 -56
  378. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/DevShell.tsx +0 -401
  379. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/EditDataModal.tsx +0 -129
  380. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/SkillMenu.tsx +0 -202
  381. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/UndoConfirm.tsx +0 -36
  382. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/index.tsx +0 -8
  383. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/style.css +0 -835
  384. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/enums/audit-log.enum.ts +0 -13
  385. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/enums/index.ts +0 -1
  386. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/form.tsx +0 -471
  387. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/get-name-initials.ts +0 -8
  388. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/get-random-color.ts +0 -27
  389. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/http.ts +0 -84
  390. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/index.tsx +0 -8
  391. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/list.tsx +0 -491
  392. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/login.ts +0 -82
  393. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/page-tree.ts +0 -74
  394. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/show.tsx +0 -226
  395. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/utils.tsx +0 -9
  396. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/index.ts +0 -7
  397. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/types.ts +0 -138
  398. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useBatchDelete.ts +0 -191
  399. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useBatchOperations.ts +0 -153
  400. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useBatchOperationsCore.ts +0 -193
  401. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useBatchUpdate.ts +0 -182
  402. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useDynamicResources.tsx +0 -220
  403. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useECharts.tsx +0 -144
  404. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useFetchData.ts +0 -33
  405. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useListPageState.ts +0 -303
  406. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useRoles.ts +0 -34
  407. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useRowSelection.ts +0 -38
  408. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useUserPageAccess.ts +0 -353
  409. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/i18n.ts +0 -23
  410. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/index.tsx +0 -27
  411. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/locales/en/common.json +0 -321
  412. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/locales/zh_CN/common.json +0 -324
  413. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/meta.json +0 -4
  414. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/plugins/devShellPlugin.ts +0 -81
  415. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/audit/components/action-cell.css +0 -3
  416. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/audit/components/action-cell.tsx +0 -134
  417. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/audit/index.ts +0 -8
  418. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/audit/list.tsx +0 -220
  419. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/audit/show.tsx +0 -74
  420. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/CanvasCell.tsx +0 -87
  421. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/CanvasEditPage.tsx +0 -192
  422. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/CanvasListPage.tsx +0 -409
  423. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/CanvasPage.tsx +0 -1372
  424. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/CanvasToolbar.tsx +0 -384
  425. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/CodeFloatWindow.tsx +0 -476
  426. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/ComponentThumbnail.tsx +0 -137
  427. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/IsolatedLivePreview.tsx +0 -101
  428. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/LivePreview.tsx +0 -236
  429. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/PublishModal.tsx +0 -200
  430. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/canvasApi.ts +0 -92
  431. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/canvasConfigRegistry.tsx +0 -25
  432. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/canvasContextMenuRegistry.tsx +0 -875
  433. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/canvasDefaults.ts +0 -126
  434. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/canvasI18n.ts +0 -11
  435. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/BarChartDataSourceModal.tsx +0 -115
  436. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/ChartViewerConfigModal.tsx +0 -217
  437. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/LineChartDataSourceModal.tsx +0 -153
  438. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/NumCardDataSourceModal.tsx +0 -211
  439. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/PromptModal.tsx +0 -90
  440. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/RadarChartDataSourceModal.tsx +0 -87
  441. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/TableDataSourceModal.tsx +0 -204
  442. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/demos.ts +0 -1153
  443. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/index.tsx +0 -2
  444. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/sectionCompactor.ts +0 -45
  445. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/types.ts +0 -45
  446. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas-page/index.tsx +0 -108
  447. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/game/show.tsx +0 -74
  448. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/page/Components/AssignRolesModal.tsx +0 -177
  449. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/page/Components/CreatePageModal.tsx +0 -42
  450. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/page/Components/EditPageModal.tsx +0 -46
  451. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/page/Components/PageDetailDrawer.tsx +0 -136
  452. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/page/Components/PageFormModal.tsx +0 -815
  453. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/page/hooks/usePageManagement.ts +0 -40
  454. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/page/index.ts +0 -1
  455. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/page/list.tsx +0 -1370
  456. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/page/queries.ts +0 -17
  457. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/page/types.ts +0 -45
  458. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/permissionReadme/index.tsx +0 -1090
  459. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/resource/Components/CreateModal.tsx +0 -25
  460. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/resource/Components/EditModal.tsx +0 -28
  461. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/resource/Components/ResourceDetailDrawer.tsx +0 -177
  462. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/resource/Components/modal.tsx +0 -230
  463. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/resource/index.ts +0 -2
  464. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/resource/list.tsx +0 -250
  465. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/resource/queries.ts +0 -10
  466. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/resource/types.ts +0 -9
  467. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/role/Components/CreateModal.tsx +0 -30
  468. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/role/Components/EditModal.tsx +0 -47
  469. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/role/Components/RoleDetailDrawer.tsx +0 -66
  470. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/role/Components/modal.tsx +0 -300
  471. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/role/hooks/useRolePage.ts +0 -35
  472. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/role/index.ts +0 -1
  473. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/role/list.tsx +0 -405
  474. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/role/queries.ts +0 -8
  475. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/role/types.ts +0 -8
  476. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/user/components/create-modal.tsx +0 -17
  477. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/user/components/edit-modal.tsx +0 -19
  478. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/user/components/form-modal.tsx +0 -194
  479. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/user/components/index.ts +0 -5
  480. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/user/components/role-tag.tsx +0 -48
  481. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/user/components/show-drawer.tsx +0 -145
  482. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/user/index.ts +0 -1
  483. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/user/list.tsx +0 -377
  484. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/user/queries.ts +0 -14
  485. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/setupTests.ts +0 -5
  486. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/styles/antd.css +0 -132
  487. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/styles/fc.css +0 -58
  488. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/styles/index.css +0 -128
  489. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/styles/show-drawer.module.css +0 -18
  490. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/styles/show-page.module.css +0 -21
  491. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/types/audit-log.ts +0 -1
  492. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/types/index.ts +0 -3
  493. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/types/role.ts +0 -7
  494. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/types/user.ts +0 -1
  495. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/vite-env.d.ts +0 -13
  496. package/src/lib/application/files/gadmin2-game-angle-demo/web/tsconfig.json +0 -28
  497. package/src/lib/application/files/gadmin2-game-angle-demo/web/vite.config.ts +0 -48
  498. package/src/lib/application/files/gadmin2-game-angle-demo/web/yarn.lock +0 -9482
  499. package/src/lib/class/class.schema.d.ts +0 -32
  500. package/src/lib/class/files/js/__name__.js +0 -1
  501. package/src/lib/class/files/js/__name__.spec.js +0 -7
  502. package/src/lib/class/files/ts/__name__.spec.ts +0 -7
  503. package/src/lib/class/files/ts/__name__.ts +0 -1
  504. package/src/lib/client-app/angular/angular.schema.d.ts +0 -32
  505. package/src/lib/client-app/angular/files/angular.constants.ts +0 -4
  506. package/src/lib/client-app/angular/files/angular.module.ts +0 -41
  507. package/src/lib/client-app/angular/files/angular.providers.ts +0 -27
  508. package/src/lib/client-app/angular/files/angular.utils.ts +0 -19
  509. package/src/lib/client-app/angular/files/interfaces/angular-options.interface.ts +0 -87
  510. package/src/lib/client-app/angular/files/loaders/abstract.loader.ts +0 -16
  511. package/src/lib/client-app/angular/files/loaders/express.loader.ts +0 -25
  512. package/src/lib/client-app/angular/files/loaders/fastify.loader.ts +0 -34
  513. package/src/lib/client-app/angular/files/loaders/noop.loader.ts +0 -12
  514. package/src/lib/configuration/configuration.schema.d.ts +0 -18
  515. package/src/lib/configuration/files/js/nest-cli.json +0 -6
  516. package/src/lib/configuration/files/ts/nest-cli.json +0 -5
  517. package/src/lib/controller/controller.schema.d.ts +0 -45
  518. package/src/lib/controller/files/js/__name__.controller.js +0 -4
  519. package/src/lib/controller/files/js/__name__.controller.spec.js +0 -18
  520. package/src/lib/controller/files/ts/__name__.controller.spec.ts +0 -18
  521. package/src/lib/controller/files/ts/__name__.controller.ts +0 -137
  522. package/src/lib/decorator/decorator.schema.d.ts +0 -24
  523. package/src/lib/decorator/files/js/__name__.decorator.js +0 -3
  524. package/src/lib/decorator/files/ts/__name__.decorator.ts +0 -3
  525. package/src/lib/filter/files/js/__name__.filter.js +0 -6
  526. package/src/lib/filter/files/js/__name__.filter.spec.js +0 -7
  527. package/src/lib/filter/files/ts/__name__.filter.spec.ts +0 -7
  528. package/src/lib/filter/files/ts/__name__.filter.ts +0 -6
  529. package/src/lib/filter/filter.schema.d.ts +0 -28
  530. package/src/lib/gateway/files/js/__name__.gateway.js +0 -9
  531. package/src/lib/gateway/files/js/__name__.gateway.spec.js +0 -18
  532. package/src/lib/gateway/files/ts/__name__.gateway.spec.ts +0 -18
  533. package/src/lib/gateway/files/ts/__name__.gateway.ts +0 -9
  534. package/src/lib/gateway/gateway.schema.d.ts +0 -36
  535. package/src/lib/guard/files/js/__name__.guard.js +0 -8
  536. package/src/lib/guard/files/js/__name__.guard.spec.js +0 -7
  537. package/src/lib/guard/files/ts/__name__.guard.spec.ts +0 -7
  538. package/src/lib/guard/files/ts/__name__.guard.ts +0 -11
  539. package/src/lib/guard/guard.schema.d.ts +0 -28
  540. package/src/lib/interceptor/files/js/__name__.interceptor.js +0 -8
  541. package/src/lib/interceptor/files/js/__name__.interceptor.spec.js +0 -7
  542. package/src/lib/interceptor/files/ts/default/__name__.interceptor.spec.ts +0 -7
  543. package/src/lib/interceptor/files/ts/default/__name__.interceptor.ts +0 -9
  544. package/src/lib/interceptor/files/ts/generated/__name__.interceptor.spec.ts +0 -7
  545. package/src/lib/interceptor/files/ts/generated/__name__.interceptor.ts +0 -13
  546. package/src/lib/interceptor/interceptor.schema.d.ts +0 -35
  547. package/src/lib/interface/files/__name__.interface.ts +0 -1
  548. package/src/lib/interface/interface.schema.d.ts +0 -20
  549. package/src/lib/library/files/js/.babelrc +0 -4
  550. package/src/lib/library/files/js/jsconfig.json +0 -9
  551. package/src/lib/library/files/js/src/__name__.module.js +0 -8
  552. package/src/lib/library/files/js/src/__name__.service.js +0 -4
  553. package/src/lib/library/files/js/src/__name__.service.spec.js +0 -18
  554. package/src/lib/library/files/js/src/index.js +0 -2
  555. package/src/lib/library/files/ts/src/__name__.module.ts +0 -8
  556. package/src/lib/library/files/ts/src/__name__.service.spec.ts +0 -18
  557. package/src/lib/library/files/ts/src/__name__.service.ts +0 -4
  558. package/src/lib/library/files/ts/src/index.ts +0 -2
  559. package/src/lib/library/files/ts/tsconfig.lib.json +0 -9
  560. package/src/lib/library/library.schema.d.ts +0 -24
  561. package/src/lib/middleware/files/js/__name__.middleware.js +0 -8
  562. package/src/lib/middleware/files/js/__name__.middleware.spec.js +0 -7
  563. package/src/lib/middleware/files/ts/__name__.middleware.spec.ts +0 -7
  564. package/src/lib/middleware/files/ts/__name__.middleware.ts +0 -8
  565. package/src/lib/middleware/middleware.schema.d.ts +0 -28
  566. package/src/lib/module/files/js/__name__.module.js +0 -4
  567. package/src/lib/module/files/ts/__name__.module.ts +0 -4
  568. package/src/lib/module/module.schema.d.ts +0 -40
  569. package/src/lib/pipe/files/js/__name__.pipe.js +0 -8
  570. package/src/lib/pipe/files/js/__name__.pipe.spec.js +0 -7
  571. package/src/lib/pipe/files/ts/__name__.pipe.spec.ts +0 -7
  572. package/src/lib/pipe/files/ts/__name__.pipe.ts +0 -8
  573. package/src/lib/pipe/pipe.schema.d.ts +0 -28
  574. package/src/lib/prisma-resource/files/ts/__name__.controller.spec.ts +0 -20
  575. package/src/lib/prisma-resource/files/ts/__name__.controller.ts +0 -63
  576. package/src/lib/prisma-resource/files/ts/__name__.module.ts +0 -9
  577. package/src/lib/prisma-resource/files/ts/__name__.service.spec.ts +0 -18
  578. package/src/lib/prisma-resource/files/ts/__name__.service.ts +0 -28
  579. package/src/lib/prisma-resource/files/ts/dto/create-__name@singular__.dto.ts +0 -1
  580. package/src/lib/prisma-resource/files/ts/dto/create-__name@singular__.input.ts +0 -7
  581. package/src/lib/prisma-resource/files/ts/dto/update-__name@singular__.dto.ts +0 -6
  582. package/src/lib/prisma-resource/files/ts/dto/update-__name@singular__.input.ts +0 -13
  583. package/src/lib/prisma-resource/files/ts/entities/__name@singular@ent__.ts +0 -7
  584. package/src/lib/prisma-resource/prisma-resource.schema.d.ts +0 -57
  585. package/src/lib/provider/files/js/__name__.js +0 -4
  586. package/src/lib/provider/files/js/__name__.spec.js +0 -18
  587. package/src/lib/provider/files/ts/__name__.spec.ts +0 -18
  588. package/src/lib/provider/files/ts/__name__.ts +0 -4
  589. package/src/lib/provider/provider.schema.d.ts +0 -48
  590. package/src/lib/resolver/files/js/__name__.resolver.js +0 -4
  591. package/src/lib/resolver/files/js/__name__.resolver.spec.js +0 -18
  592. package/src/lib/resolver/files/ts/__name__.resolver.spec.ts +0 -18
  593. package/src/lib/resolver/files/ts/__name__.resolver.ts +0 -4
  594. package/src/lib/resolver/resolver.schema.d.ts +0 -36
  595. package/src/lib/resource/files/ts/__name__.controller.spec.ts +0 -20
  596. package/src/lib/resource/files/ts/__name__.controller.ts +0 -63
  597. package/src/lib/resource/files/ts/__name__.gateway.spec.ts +0 -19
  598. package/src/lib/resource/files/ts/__name__.gateway.ts +0 -34
  599. package/src/lib/resource/files/ts/__name__.graphql +0 -24
  600. package/src/lib/resource/files/ts/__name__.module.ts +0 -9
  601. package/src/lib/resource/files/ts/__name__.resolver.spec.ts +0 -19
  602. package/src/lib/resource/files/ts/__name__.resolver.ts +0 -60
  603. package/src/lib/resource/files/ts/__name__.service.spec.ts +0 -18
  604. package/src/lib/resource/files/ts/__name__.service.ts +0 -28
  605. package/src/lib/resource/files/ts/dto/create-__name@singular__.dto.ts +0 -1
  606. package/src/lib/resource/files/ts/dto/create-__name@singular__.input.ts +0 -7
  607. package/src/lib/resource/files/ts/dto/update-__name@singular__.dto.ts +0 -6
  608. package/src/lib/resource/files/ts/dto/update-__name@singular__.input.ts +0 -13
  609. package/src/lib/resource/files/ts/entities/__name@singular@ent__.ts +0 -7
  610. package/src/lib/resource/resource.schema.d.ts +0 -57
  611. package/src/lib/service/files/js/__name__.service.js +0 -4
  612. package/src/lib/service/files/js/__name__.service.spec.js +0 -18
  613. package/src/lib/service/files/ts/__name__.service.spec.ts +0 -18
  614. package/src/lib/service/files/ts/__name__.service.ts +0 -4
  615. package/src/lib/service/service.schema.d.ts +0 -44
  616. package/src/lib/sub-app/files/js/.babelrc +0 -4
  617. package/src/lib/sub-app/files/js/index.js +0 -2
  618. package/src/lib/sub-app/files/js/jsconfig.json +0 -10
  619. package/src/lib/sub-app/files/js/src/app.controller.js +0 -15
  620. package/src/lib/sub-app/files/js/src/app.controller.spec.js +0 -22
  621. package/src/lib/sub-app/files/js/src/app.module.js +0 -10
  622. package/src/lib/sub-app/files/js/src/app.service.js +0 -8
  623. package/src/lib/sub-app/files/js/src/main.js +0 -8
  624. package/src/lib/sub-app/files/js/test/app.e2e-spec.js +0 -23
  625. package/src/lib/sub-app/files/js/test/jest-e2e.json +0 -5
  626. package/src/lib/sub-app/files/ts/src/__name__.controller.spec.ts +0 -22
  627. package/src/lib/sub-app/files/ts/src/__name__.controller.ts +0 -12
  628. package/src/lib/sub-app/files/ts/src/__name__.module.ts +0 -10
  629. package/src/lib/sub-app/files/ts/src/__name__.service.ts +0 -8
  630. package/src/lib/sub-app/files/ts/src/main.ts +0 -8
  631. package/src/lib/sub-app/files/ts/test/app.e2e-spec.ts +0 -24
  632. package/src/lib/sub-app/files/ts/test/jest-e2e.json +0 -9
  633. package/src/lib/sub-app/files/ts/tsconfig.app.json +0 -9
  634. package/src/lib/sub-app/sub-app.schema.d.ts +0 -21
  635. package/src/lib/sub-app/workspace/js/.babelrc +0 -4
  636. package/src/lib/sub-app/workspace/js/index.js +0 -2
  637. package/src/lib/sub-app/workspace/js/jsconfig.json +0 -10
  638. package/src/lib/sub-app/workspace/ts/tsconfig.app.json +0 -9
  639. /package/{src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/audit → dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/agendaJob}/index.tsx +0 -0
  640. /package/{src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/game → dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflowEventOutbox}/index.tsx +0 -0
@@ -1,1370 +0,0 @@
1
- import React, {
2
- useCallback,
3
- useEffect,
4
- useMemo,
5
- useRef,
6
- useState,
7
- } from 'react';
8
- import { DeleteButton, EditButton, useTable } from '@refinedev/antd';
9
- import { useGetIdentity } from '@refinedev/core';
10
- import {
11
- Table,
12
- Button,
13
- Space,
14
- Tooltip,
15
- Tag,
16
- Alert,
17
- Modal,
18
- message,
19
- Tabs,
20
- } from 'antd';
21
- import {
22
- SaveOutlined,
23
- UndoOutlined,
24
- HolderOutlined,
25
- RightOutlined,
26
- DownOutlined,
27
- PlusOutlined,
28
- EyeOutlined,
29
- TeamOutlined,
30
- CodeOutlined,
31
- } from '@ant-design/icons';
32
- import {
33
- DndContext,
34
- closestCenter,
35
- KeyboardSensor,
36
- PointerSensor,
37
- useSensor,
38
- useSensors,
39
- DragEndEvent,
40
- DragOverEvent,
41
- } from '@dnd-kit/core';
42
- import {
43
- SortableContext,
44
- arrayMove,
45
- sortableKeyboardCoordinates,
46
- useSortable,
47
- verticalListSortingStrategy,
48
- } from '@dnd-kit/sortable';
49
- import { CSS } from '@dnd-kit/utilities';
50
- import { restrictToVerticalAxis } from '@dnd-kit/modifiers';
51
-
52
- import { customRequest } from '@/helpers/http';
53
-
54
- import { AssignRolesModal } from './Components/AssignRolesModal';
55
- import { EditPageModal } from './Components/EditPageModal';
56
- import { CreatePageModal } from './Components/CreatePageModal';
57
- import { PageDetailDrawer } from './Components/PageDetailDrawer';
58
- import type {
59
- PageMenuTreeNode,
60
- PageResourceAssignment,
61
- PageResourcePermissionSummary,
62
- ResourceDefinition,
63
- } from './types';
64
- import { usePageManagement } from './hooks/usePageManagement';
65
- import { useTranslation } from 'react-i18next';
66
- import { SqlModal, generatePageSql } from '../../components/SqlModal';
67
-
68
- const RESOURCE_NAME_DISPLAY_TRUNCATION_LIMIT = 40;
69
-
70
- // Sparse number gap for sortOrder (allows inserting items between existing ones)
71
- const SORT_ORDER_GAP = 10000;
72
-
73
- // API function for updating page order (sortOrder and parentId)
74
- const updatePageOrder = async (
75
- pageId: number,
76
- updateData: { sortOrder?: number; parentId?: number | null },
77
- ): Promise<any> => {
78
- return customRequest(`page/updateUnique/${pageId}`, 'PATCH', updateData);
79
- };
80
-
81
- const safelyConvertToNumber = (value: unknown): number | null => {
82
- if (typeof value === 'number' && !Number.isNaN(value)) {
83
- return value;
84
- }
85
- if (typeof value === 'string' && value.trim().length > 0) {
86
- const parsedNumericValue = Number(value);
87
- return Number.isNaN(parsedNumericValue) ? null : parsedNumericValue;
88
- }
89
- return null;
90
- };
91
-
92
- const extractPermissionActionsFromAssociation = (
93
- associationRecord: any,
94
- resourceRecord: any,
95
- ): string[] => {
96
- const aggregatedPermissionActions = new Set<string>();
97
-
98
- const associationActions =
99
- associationRecord?.actions ??
100
- associationRecord?.actionList ??
101
- associationRecord?.permissions;
102
-
103
- if (Array.isArray(associationActions)) {
104
- associationActions.forEach((action: any) => {
105
- if (typeof action === 'string' && action) {
106
- aggregatedPermissionActions.add(action);
107
- } else if (typeof action === 'object' && action?.name) {
108
- aggregatedPermissionActions.add(action.name);
109
- } else if (typeof action === 'object' && action?.code) {
110
- aggregatedPermissionActions.add(action.code);
111
- }
112
- });
113
- } else if (typeof associationActions === 'string') {
114
- associationActions
115
- .split(',')
116
- .map((action: string) => action.trim())
117
- .filter(Boolean)
118
- .forEach((action) => aggregatedPermissionActions.add(action));
119
- }
120
-
121
- return Array.from(aggregatedPermissionActions);
122
- };
123
-
124
- // Draggable row component for dnd-kit
125
- interface DraggableRowProps extends React.HTMLAttributes<HTMLTableRowElement> {
126
- 'data-row-key': string;
127
- }
128
-
129
- const DraggableRow: React.FC<DraggableRowProps> = ({ children, ...props }) => {
130
- const id = props['data-row-key'];
131
- const {
132
- attributes,
133
- listeners,
134
- setNodeRef,
135
- transform,
136
- transition,
137
- isDragging,
138
- } = useSortable({
139
- id,
140
- });
141
-
142
- const style: React.CSSProperties = {
143
- ...props.style,
144
- transform: CSS.Transform.toString(transform && { ...transform, scaleY: 1 }),
145
- transition: transition ?? 'transform 200ms ease',
146
- ...(isDragging
147
- ? {
148
- position: 'relative',
149
- zIndex: 9999,
150
- background: '#bae0ff',
151
- boxShadow: '0 8px 24px rgba(22, 119, 255, 0.25)',
152
- borderLeft: '3px solid #1677ff',
153
- opacity: 0.95,
154
- outline: '1px solid #1677ff',
155
- }
156
- : {}),
157
- };
158
-
159
- return (
160
- <tr {...props} ref={setNodeRef} style={style} {...attributes}>
161
- {React.Children.map(children, (child) => {
162
- if ((child as React.ReactElement).key === 'drag-handle') {
163
- return React.cloneElement(child as React.ReactElement, {
164
- children: (
165
- <HolderOutlined
166
- {...listeners}
167
- style={{ cursor: 'grab', color: '#999', touchAction: 'none' }}
168
- />
169
- ),
170
- });
171
- }
172
- return child;
173
- })}
174
- </tr>
175
- );
176
- };
177
-
178
- export const PageManagementListPage: React.FC = () => {
179
- const { i18n } = useTranslation();
180
- const { data: identity } = useGetIdentity<any>();
181
- const { tableProps } = useTable({
182
- resource: 'page',
183
- pagination: {
184
- pageSize: 20,
185
- },
186
- });
187
-
188
- const {
189
- pageListData,
190
- refetchPageList,
191
- pageListRequestQuery,
192
- availableResourcesData,
193
- refetchAvailableResources,
194
- resourceListRequestQuery,
195
- pageResourceAssociationsData,
196
- refetchPageResourceAssociations,
197
- pageResourceAssociationRequestQuery,
198
- } = usePageManagement();
199
-
200
- const resourceLookupByIdMap = useMemo<
201
- Record<number, ResourceDefinition>
202
- >(() => {
203
- const resourcesArray: any[] = Array.isArray(availableResourcesData?.data)
204
- ? availableResourcesData.data
205
- : [];
206
- const lookupMap: Record<number, ResourceDefinition> = {};
207
-
208
- resourcesArray.forEach((resource: any) => {
209
- const resourceId = safelyConvertToNumber(resource?.id);
210
- if (resourceId !== null) {
211
- lookupMap[resourceId] = {
212
- id: resourceId,
213
- code: resource?.code ?? String(resourceId),
214
- name: resource?.name || resource?.code || `Resource ${resourceId}`,
215
- description: resource?.description,
216
- type: resource?.type,
217
- };
218
- }
219
- });
220
-
221
- return lookupMap;
222
- }, [availableResourcesData]);
223
-
224
- const availableResourcesListForModal = useMemo<ResourceDefinition[]>(() => {
225
- return Object.values(resourceLookupByIdMap);
226
- }, [resourceLookupByIdMap]);
227
-
228
- const pageMenuTreeOptionsData = useMemo<PageMenuTreeNode[]>(() => {
229
- const pagesArray: any[] = Array.isArray(pageListData?.data)
230
- ? pageListData.data
231
- : [];
232
- const nodeMapByPageId = new Map<
233
- number,
234
- { treeNode: PageMenuTreeNode; parentPageId: number | null }
235
- >();
236
-
237
- pagesArray.forEach((page: any) => {
238
- const pageId = safelyConvertToNumber(
239
- page?.id ?? page?.pageId ?? page?.page_id,
240
- );
241
- if (pageId === null) {
242
- return;
243
- }
244
-
245
- const parentPageId =
246
- safelyConvertToNumber(
247
- page?.parentId ?? page?.parent_id ?? page?.parent?.id,
248
- ) ?? null;
249
- const pageDisplayTitle = page?.name || page?.code || `Page ${pageId}`;
250
-
251
- nodeMapByPageId.set(pageId, {
252
- treeNode: {
253
- title: pageDisplayTitle,
254
- value: String(pageId),
255
- key: String(pageId),
256
- children: [],
257
- },
258
- parentPageId,
259
- });
260
- });
261
-
262
- const rootLevelNodes: PageMenuTreeNode[] = [];
263
-
264
- nodeMapByPageId.forEach(({ treeNode, parentPageId }) => {
265
- if (parentPageId !== null && nodeMapByPageId.has(parentPageId)) {
266
- nodeMapByPageId.get(parentPageId)?.treeNode.children?.push(treeNode);
267
- } else {
268
- rootLevelNodes.push(treeNode);
269
- }
270
- });
271
-
272
- const sortTreeNodesAlphabetically = (nodes: PageMenuTreeNode[]) => {
273
- nodes.sort((nodeA, nodeB) => {
274
- const titleA =
275
- typeof nodeA.title === 'string' ? nodeA.title : String(nodeA.key);
276
- const titleB =
277
- typeof nodeB.title === 'string' ? nodeB.title : String(nodeB.key);
278
- return titleA.localeCompare(titleB);
279
- });
280
- nodes.forEach((node) => {
281
- if (node.children && node.children.length) {
282
- sortTreeNodesAlphabetically(node.children);
283
- }
284
- });
285
- };
286
-
287
- const removeEmptyChildrenArrays = (
288
- nodes: PageMenuTreeNode[],
289
- ): PageMenuTreeNode[] =>
290
- nodes.map((node) => {
291
- if (node.children && node.children.length) {
292
- return {
293
- ...node,
294
- children: removeEmptyChildrenArrays(node.children),
295
- };
296
- }
297
- const { children, ...nodeWithoutChildren } = node;
298
- return nodeWithoutChildren as PageMenuTreeNode;
299
- });
300
-
301
- sortTreeNodesAlphabetically(rootLevelNodes);
302
- return removeEmptyChildrenArrays(rootLevelNodes);
303
- }, [pageListData]);
304
-
305
- const pageResourcePermissionSummaryMap = useMemo<
306
- Record<number, PageResourcePermissionSummary>
307
- >(() => {
308
- const associationsArray: any[] = Array.isArray(
309
- pageResourceAssociationsData?.data,
310
- )
311
- ? pageResourceAssociationsData.data
312
- : [];
313
- const summaryMapByPageId: Record<number, PageResourcePermissionSummary> =
314
- {};
315
-
316
- associationsArray.forEach((association: any) => {
317
- const pageId = safelyConvertToNumber(association?.pageId);
318
- const resourceId = safelyConvertToNumber(association?.resourceId);
319
-
320
- if (pageId === null || resourceId === null) {
321
- return;
322
- }
323
-
324
- if (!summaryMapByPageId[pageId]) {
325
- summaryMapByPageId[pageId] = {
326
- resourceIds: [],
327
- resourceNames: [],
328
- allPermissionActions: [],
329
- };
330
- }
331
-
332
- const pageSummary = summaryMapByPageId[pageId];
333
-
334
- if (!pageSummary.resourceIds.includes(resourceId)) {
335
- pageSummary.resourceIds.push(resourceId);
336
- }
337
-
338
- const resourceRecord =
339
- association?.resource ?? resourceLookupByIdMap[resourceId];
340
- const resourceDisplayName =
341
- resourceRecord?.name ||
342
- resourceRecord?.code ||
343
- `Resource ${resourceId}`;
344
-
345
- if (
346
- resourceDisplayName &&
347
- !pageSummary.resourceNames.includes(resourceDisplayName)
348
- ) {
349
- pageSummary.resourceNames.push(resourceDisplayName);
350
- }
351
-
352
- extractPermissionActionsFromAssociation(
353
- association,
354
- resourceRecord,
355
- ).forEach((permissionAction) => {
356
- if (
357
- permissionAction &&
358
- !pageSummary.allPermissionActions.includes(permissionAction)
359
- ) {
360
- pageSummary.allPermissionActions.push(permissionAction);
361
- }
362
- });
363
- });
364
-
365
- return summaryMapByPageId;
366
- }, [pageResourceAssociationsData, resourceLookupByIdMap]);
367
-
368
- const getPageResourceAssignmentsForModal = useCallback(
369
- (pageId: number): PageResourceAssignment[] => {
370
- console.log(
371
- 'Getting resource assignments for page ID:',
372
- pageId,
373
- pageResourceAssociationsData,
374
- );
375
- const associationsArray: any[] = Array.isArray(
376
- pageResourceAssociationsData?.data,
377
- )
378
- ? pageResourceAssociationsData.data
379
- : [];
380
-
381
- const pageAssignments: PageResourceAssignment[] = [];
382
-
383
- associationsArray.forEach((association: any) => {
384
- const associationPageId = safelyConvertToNumber(association?.pageId);
385
- const resourceId = safelyConvertToNumber(association?.resourceId);
386
-
387
- if (associationPageId !== pageId || resourceId === null) {
388
- return;
389
- }
390
-
391
- const resourceRecord =
392
- association?.resource ?? resourceLookupByIdMap[resourceId];
393
- const resourceDisplayName =
394
- resourceRecord?.name ||
395
- resourceRecord?.code ||
396
- `Resource ${resourceId}`;
397
-
398
- pageAssignments.push({
399
- resourceId,
400
- resourceName: resourceDisplayName,
401
- assignedPermissions: extractPermissionActionsFromAssociation(
402
- association,
403
- resourceRecord,
404
- ),
405
- });
406
- });
407
-
408
- return pageAssignments;
409
- },
410
- [pageResourceAssociationsData, resourceLookupByIdMap],
411
- );
412
-
413
- const [activeModalState, setActiveModalState] = useState<{
414
- modalType: 'view' | 'edit' | 'create' | null;
415
- targetPageId: number | null;
416
- defaultParentId?: number | null;
417
- defaultPathPrefix?: string;
418
- }>({
419
- modalType: null,
420
- targetPageId: null,
421
- defaultParentId: null,
422
- defaultPathPrefix: '',
423
- });
424
-
425
- // State for draggable table
426
- const [pendingChanges, setPendingChanges] = useState<
427
- Map<number, { sortOrder?: number; parentId?: number | null }>
428
- >(new Map());
429
- const [isSavingOrder, setIsSavingOrder] = useState(false);
430
-
431
- // State for tree expand/collapse
432
- const [expandedKeys, setExpandedKeys] = useState<Set<number>>(new Set());
433
-
434
- // State for detail drawer
435
- const [drawerPage, setDrawerPage] = useState<any>(null);
436
-
437
- // State for assign roles modal
438
- const [assignRolesTarget, setAssignRolesTarget] = useState<{
439
- pageId: number;
440
- pageName: string;
441
- } | null>(null);
442
-
443
- // State for active tab
444
- const [activeTab, setActiveTab] = useState<string>('regular');
445
-
446
- // State for SQL modal
447
- const [sqlModal, setSqlModal] = useState<{
448
- open: boolean;
449
- title: string;
450
- sql: string;
451
- }>({ open: false, title: '', sql: '' });
452
-
453
- const handleShowSql = useCallback(
454
- (record: any, hasChildren: boolean) => {
455
- const pagesArray: any[] = Array.isArray(pageListData?.data)
456
- ? pageListData.data
457
- : [];
458
-
459
- // Build pageResources for the given page
460
- const buildPageResources = (pageId: number) => {
461
- const associationsArray: any[] = Array.isArray(
462
- pageResourceAssociationsData?.data,
463
- )
464
- ? pageResourceAssociationsData.data
465
- : [];
466
- return associationsArray
467
- .filter(
468
- (assoc: any) => safelyConvertToNumber(assoc?.pageId) === pageId,
469
- )
470
- .map((assoc: any) => {
471
- const resourceId = safelyConvertToNumber(assoc?.resourceId);
472
- // Prefer nested resource object, then fall back to the id-keyed lookup map (which includes code).
473
- // The final fallback `String(resourceId)` should never be reached if availableResourcesData is loaded.
474
- const resourceRecord =
475
- assoc?.resource ??
476
- (resourceId !== null ? resourceLookupByIdMap[resourceId] : null);
477
- const resourceCode =
478
- resourceRecord?.code ??
479
- (resourceId !== null ? String(resourceId) : 'unknown');
480
- const resourceName =
481
- resourceRecord?.name ||
482
- resourceRecord?.code ||
483
- `Resource ${resourceId}`;
484
- const actions = extractPermissionActionsFromAssociation(
485
- assoc,
486
- resourceRecord,
487
- );
488
- return { resourceCode, resourceName, actions };
489
- });
490
- };
491
-
492
- const pageResources = buildPageResources(record.id);
493
-
494
- // Collect child pages if this is a parent
495
- const children: Array<{
496
- page: any;
497
- pageResources: Array<{
498
- resourceCode: string;
499
- resourceName: string;
500
- actions: string[];
501
- }>;
502
- }> = [];
503
- if (hasChildren) {
504
- const childPages = pagesArray.filter(
505
- (p: any) =>
506
- safelyConvertToNumber(p?.parentId ?? p?.parent_id) === record.id,
507
- );
508
- for (const child of childPages) {
509
- const childId = safelyConvertToNumber(child?.id);
510
- if (childId === null) continue;
511
- children.push({
512
- page: child,
513
- pageResources: buildPageResources(childId),
514
- });
515
- }
516
- }
517
-
518
- // Resolve parent's code from the in-memory page list so the SQL uses a
519
- // portable subquery (SELECT id … WHERE code = '…') instead of a raw
520
- // numeric parentId that differs between environments.
521
- const parentId = safelyConvertToNumber(
522
- record?.parentId ?? record?.parent_id,
523
- );
524
- const parentPage =
525
- parentId !== null
526
- ? pagesArray.find(
527
- (p: any) => safelyConvertToNumber(p?.id) === parentId,
528
- )
529
- : null;
530
- const recordWithParentCode = {
531
- ...record,
532
- parentCode: parentPage?.code ?? null,
533
- };
534
-
535
- const sql = generatePageSql(
536
- recordWithParentCode,
537
- pageResources,
538
- children,
539
- { authorId: identity?.userid, authorName: identity?.username },
540
- );
541
- setSqlModal({ open: true, title: `SQL — Page: ${record.name}`, sql });
542
- },
543
- [pageListData, pageResourceAssociationsData, resourceLookupByIdMap],
544
- );
545
-
546
- // Ref for expand button click/double-click disambiguation
547
- const expandClickTimer = useRef<number | null>(null);
548
-
549
- const refreshAllPageRelatedData = useCallback(() => {
550
- refetchPageList(pageListRequestQuery ?? {});
551
- refetchAvailableResources(resourceListRequestQuery ?? {});
552
- refetchPageResourceAssociations(pageResourceAssociationRequestQuery ?? {});
553
- }, [
554
- refetchPageList,
555
- pageListRequestQuery,
556
- refetchAvailableResources,
557
- resourceListRequestQuery,
558
- refetchPageResourceAssociations,
559
- pageResourceAssociationRequestQuery,
560
- ]);
561
-
562
- const handleModalClose = useCallback(() => {
563
- setActiveModalState({
564
- modalType: null,
565
- targetPageId: null,
566
- defaultParentId: null,
567
- defaultPathPrefix: '',
568
- });
569
- }, []);
570
-
571
- const handleModalOperationSuccess = useCallback(() => {
572
- handleModalClose();
573
- refreshAllPageRelatedData();
574
- }, [refreshAllPageRelatedData, handleModalClose]);
575
-
576
- // Calculate new sortOrder when dropping a node
577
- const calculateNewSortOrder = useCallback(
578
- (siblings: any[], dropIndex: number, dragNodeId: number): number => {
579
- // Filter out the dragged node from siblings
580
- const filteredSiblings = siblings.filter(
581
- (s) => safelyConvertToNumber(s.id) !== dragNodeId,
582
- );
583
-
584
- if (filteredSiblings.length === 0) {
585
- // First item in this parent
586
- return SORT_ORDER_GAP;
587
- }
588
-
589
- if (dropIndex === 0) {
590
- // Dropped at the beginning
591
- const firstSibling = filteredSiblings[0];
592
- const firstOrder = firstSibling?.sortOrder ?? SORT_ORDER_GAP;
593
- return Math.max(1, Math.floor(firstOrder / 2));
594
- }
595
-
596
- if (dropIndex >= filteredSiblings.length) {
597
- // Dropped at the end
598
- const lastSibling = filteredSiblings[filteredSiblings.length - 1];
599
- const lastOrder = lastSibling?.sortOrder ?? 0;
600
- return lastOrder + SORT_ORDER_GAP;
601
- }
602
-
603
- // Dropped in the middle
604
- const prevSibling = filteredSiblings[dropIndex - 1];
605
- const nextSibling = filteredSiblings[dropIndex];
606
- const prevOrder = prevSibling?.sortOrder ?? 0;
607
- const nextOrder =
608
- nextSibling?.sortOrder ?? prevOrder + SORT_ORDER_GAP * 2;
609
-
610
- // Calculate middle value
611
- const newOrder = Math.floor((prevOrder + nextOrder) / 2);
612
-
613
- // If there's no room (gap too small), we need to redistribute
614
- if (newOrder <= prevOrder || newOrder >= nextOrder) {
615
- // Return a value that signals we need redistribution
616
- // For now, just use prevOrder + 1 and let batch save handle redistribution
617
- return prevOrder + 1;
618
- }
619
-
620
- return newOrder;
621
- },
622
- [],
623
- );
624
-
625
- // Toggle expand/collapse for a node
626
- const handleToggleExpand = useCallback((pageId: number) => {
627
- setExpandedKeys((prev) => {
628
- const newSet = new Set(prev);
629
- if (newSet.has(pageId)) {
630
- newSet.delete(pageId);
631
- } else {
632
- newSet.add(pageId);
633
- }
634
- return newSet;
635
- });
636
- }, []);
637
-
638
- // Separate regular pages and virtual pages
639
- const { regularPagesData, virtualPagesData } = useMemo(() => {
640
- const pagesArray: any[] = Array.isArray(pageListData?.data)
641
- ? pageListData.data
642
- : [];
643
- const regular: any[] = [];
644
- const virtual: any[] = [];
645
-
646
- pagesArray.forEach((page: any) => {
647
- if (page.isVirtual) {
648
- virtual.push(page);
649
- } else {
650
- regular.push(page);
651
- }
652
- });
653
-
654
- return { regularPagesData: regular, virtualPagesData: virtual };
655
- }, [pageListData]);
656
-
657
- // Flatten tree data for table display (with depth info for indentation) - only for regular (non-virtual) pages
658
- const flattenedTableData = useMemo(() => {
659
- const nodeMapById = new Map<number, any>();
660
-
661
- // First pass: create all nodes with pending changes applied (only regular pages)
662
- regularPagesData.forEach((page: any) => {
663
- const pageId = safelyConvertToNumber(page?.id);
664
- if (pageId === null) return;
665
-
666
- const pendingChange = pendingChanges.get(pageId);
667
- const sortOrder = pendingChange?.sortOrder ?? page.sortOrder;
668
- const parentId =
669
- pendingChange?.parentId !== undefined
670
- ? pendingChange.parentId
671
- : (page.parentId ?? null);
672
-
673
- nodeMapById.set(pageId, {
674
- ...page,
675
- id: pageId,
676
- sortOrder,
677
- parentId,
678
- children: [],
679
- });
680
- });
681
-
682
- // Second pass: build tree structure
683
- const rootNodes: any[] = [];
684
- nodeMapById.forEach((node) => {
685
- const parentId = node.parentId;
686
- if (parentId !== null && nodeMapById.has(parentId)) {
687
- nodeMapById.get(parentId).children.push(node);
688
- } else {
689
- rootNodes.push(node);
690
- }
691
- });
692
-
693
- // Sort children by sortOrder
694
- const sortNodes = (nodes: any[]) => {
695
- nodes.sort(
696
- (a, b) => (a.sortOrder ?? Infinity) - (b.sortOrder ?? Infinity),
697
- );
698
- nodes.forEach((node) => {
699
- if (node.children?.length > 0) {
700
- sortNodes(node.children);
701
- }
702
- });
703
- };
704
- sortNodes(rootNodes);
705
-
706
- // Flatten tree to array with depth info (respecting expanded state)
707
- const result: any[] = [];
708
- const flatten = (nodes: any[], depth: number, parentExpanded: boolean) => {
709
- nodes.forEach((node) => {
710
- // Only show node if its parent is expanded (or it's a root node)
711
- if (!parentExpanded && depth > 0) return;
712
-
713
- const { children, ...nodeWithoutChildren } = node;
714
- const hasChildren = children?.length > 0;
715
- const isExpanded = expandedKeys.has(node.id);
716
-
717
- result.push({
718
- ...nodeWithoutChildren,
719
- _depth: depth,
720
- _hasChildren: hasChildren,
721
- _isExpanded: isExpanded,
722
- _isModified: pendingChanges.has(node.id),
723
- });
724
-
725
- if (hasChildren) {
726
- flatten(children, depth + 1, isExpanded);
727
- }
728
- });
729
- };
730
- flatten(rootNodes, 0, true);
731
-
732
- return result;
733
- }, [regularPagesData, pendingChanges, expandedKeys]);
734
-
735
- // Get sortable item IDs for dnd-kit
736
- const sortableIds = useMemo(() => {
737
- return flattenedTableData.map((item) => String(item.id));
738
- }, [flattenedTableData]);
739
-
740
- // Live-reordered IDs during drag (for visual feedback)
741
- const [activeSortableIds, setActiveSortableIds] = useState<string[]>([]);
742
-
743
- // Sync activeSortableIds when base list changes (e.g. after save/refresh)
744
- useEffect(() => {
745
- setActiveSortableIds(sortableIds);
746
- }, [sortableIds]);
747
-
748
- // dnd-kit sensors
749
- const sensors = useSensors(
750
- useSensor(PointerSensor, {
751
- activationConstraint: {
752
- distance: 1,
753
- },
754
- }),
755
- useSensor(KeyboardSensor, {
756
- coordinateGetter: sortableKeyboardCoordinates,
757
- }),
758
- );
759
-
760
- // Reorder the visual list live during drag for smooth feedback
761
- const handleDragOver = useCallback((event: DragOverEvent) => {
762
- const { active, over } = event;
763
- if (!over || active.id === over.id) return;
764
- setActiveSortableIds((prev) => {
765
- const oldIndex = prev.indexOf(String(active.id));
766
- const newIndex = prev.indexOf(String(over.id));
767
- if (oldIndex === -1 || newIndex === -1) return prev;
768
- return arrayMove(prev, oldIndex, newIndex);
769
- });
770
- }, []);
771
-
772
- // Handle drag end for dnd-kit
773
- const handleDragEnd = useCallback(
774
- (event: DragEndEvent) => {
775
- const { active, over } = event;
776
-
777
- if (!over || active.id === over.id) return;
778
-
779
- const draggedId = safelyConvertToNumber(active.id);
780
- const overId = safelyConvertToNumber(over.id);
781
-
782
- if (draggedId === null || overId === null) return;
783
-
784
- const pagesArray: any[] = Array.isArray(pageListData?.data)
785
- ? pageListData.data
786
- : [];
787
- const draggedPage = pagesArray.find(
788
- (p) => safelyConvertToNumber(p.id) === draggedId,
789
- );
790
- const overPage = pagesArray.find(
791
- (p) => safelyConvertToNumber(p.id) === overId,
792
- );
793
-
794
- if (!draggedPage || !overPage) return;
795
-
796
- // Get target's parentId (with pending changes applied)
797
- const overPendingChange = pendingChanges.get(overId);
798
- const targetParentId =
799
- overPendingChange?.parentId !== undefined
800
- ? overPendingChange.parentId
801
- : (overPage.parentId ?? null);
802
-
803
- // Get dragged item's current parentId
804
- const draggedPendingChange = pendingChanges.get(draggedId);
805
- const currentParentId =
806
- draggedPendingChange?.parentId !== undefined
807
- ? draggedPendingChange.parentId
808
- : (draggedPage.parentId ?? null);
809
-
810
- // Determine new parentId - when dropping on an item, take its parentId (same level)
811
- const newParentId = targetParentId;
812
-
813
- // Get all siblings at the target parent level (with pending changes)
814
- const getSiblingsWithPendingChanges = (parentId: number | null) => {
815
- return pagesArray
816
- .map((page) => {
817
- const pageId = safelyConvertToNumber(page.id);
818
- if (pageId === null) return null;
819
- const pending = pendingChanges.get(pageId);
820
- return {
821
- ...page,
822
- id: pageId,
823
- parentId:
824
- pending?.parentId !== undefined
825
- ? pending.parentId
826
- : (page.parentId ?? null),
827
- sortOrder: pending?.sortOrder ?? page.sortOrder ?? 0,
828
- };
829
- })
830
- .filter(
831
- (page): page is NonNullable<typeof page> =>
832
- page !== null && page.parentId === parentId,
833
- )
834
- .sort((a, b) => a.sortOrder - b.sortOrder);
835
- };
836
-
837
- const siblings = getSiblingsWithPendingChanges(newParentId);
838
-
839
- // Find the position of the over item in siblings
840
- const overIndex = siblings.findIndex((s) => s.id === overId);
841
- const dragIndex = siblings.findIndex((s) => s.id === draggedId);
842
-
843
- // Calculate drop index
844
- let dropIndex: number;
845
- if (dragIndex === -1) {
846
- // Dragged item is not in this parent group (moving to new parent)
847
- dropIndex = overIndex;
848
- } else if (dragIndex < overIndex) {
849
- // Moving down
850
- dropIndex = overIndex;
851
- } else {
852
- // Moving up
853
- dropIndex = overIndex;
854
- }
855
-
856
- // Calculate new sort order
857
- const newSortOrder = calculateNewSortOrder(
858
- siblings,
859
- dropIndex,
860
- draggedId,
861
- );
862
-
863
- // Check if anything changed
864
- const parentChanged = newParentId !== currentParentId;
865
- const orderChanged =
866
- newSortOrder !==
867
- (draggedPendingChange?.sortOrder ?? draggedPage.sortOrder ?? 0);
868
-
869
- if (!parentChanged && !orderChanged) return;
870
-
871
- // Update pending changes
872
- setPendingChanges((prev) => {
873
- const newChanges = new Map(prev);
874
- const existingChange = newChanges.get(draggedId) || {};
875
-
876
- newChanges.set(draggedId, {
877
- ...existingChange,
878
- ...(parentChanged && { parentId: newParentId }),
879
- sortOrder: newSortOrder,
880
- });
881
-
882
- return newChanges;
883
- });
884
-
885
- message.info(
886
- `Page "${draggedPage.name}" moved. Click "Save Order" to apply changes.`,
887
- );
888
- },
889
- [pageListData, pendingChanges, calculateNewSortOrder],
890
- );
891
-
892
- // Discard all pending changes
893
- const handleDiscardChanges = useCallback(() => {
894
- if (pendingChanges.size === 0) return;
895
-
896
- Modal.confirm({
897
- title: 'Discard Changes',
898
- content: `Are you sure you want to discard ${pendingChanges.size} pending change(s)?`,
899
- okText: 'Discard',
900
- okType: 'danger',
901
- styles: { body: { padding: '16px 24px' } },
902
- onOk: () => {
903
- setPendingChanges(new Map());
904
- message.success('Changes discarded');
905
- },
906
- });
907
- }, [pendingChanges]);
908
-
909
- // Save all pending changes
910
- const handleSaveOrder = useCallback(async () => {
911
- if (pendingChanges.size === 0) {
912
- message.info('No changes to save');
913
- return;
914
- }
915
-
916
- setIsSavingOrder(true);
917
-
918
- try {
919
- const updatePromises: Promise<any>[] = [];
920
-
921
- pendingChanges.forEach((change, pageId) => {
922
- const updateData: { sortOrder?: number; parentId?: number | null } = {};
923
-
924
- if (change.sortOrder !== undefined) {
925
- updateData.sortOrder = change.sortOrder;
926
- }
927
- if (change.parentId !== undefined) {
928
- updateData.parentId = change.parentId;
929
- }
930
-
931
- if (Object.keys(updateData).length > 0) {
932
- updatePromises.push(updatePageOrder(pageId, updateData));
933
- }
934
- });
935
-
936
- await Promise.all(updatePromises);
937
-
938
- message.success(`Successfully updated ${pendingChanges.size} page(s)`);
939
- setPendingChanges(new Map());
940
- refreshAllPageRelatedData();
941
- } catch (error) {
942
- console.error('Failed to save order:', error);
943
- message.error('Failed to save some changes. Please try again.');
944
- } finally {
945
- setIsSavingOrder(false);
946
- }
947
- }, [pendingChanges, refreshAllPageRelatedData]);
948
-
949
- // Build parent-children lookup for expand operations
950
- const parentChildrenMap = useMemo(() => {
951
- const childrenOf = new Map<number | null, number[]>(); // parentId -> childIds
952
- for (const page of regularPagesData) {
953
- const pageId = safelyConvertToNumber(page?.id);
954
- if (pageId === null) continue;
955
- const pendingChange = pendingChanges.get(pageId);
956
- const parentId =
957
- pendingChange?.parentId !== undefined
958
- ? pendingChange.parentId
959
- : (page.parentId ?? null);
960
- if (!childrenOf.has(parentId)) childrenOf.set(parentId, []);
961
- childrenOf.get(parentId)!.push(pageId);
962
- }
963
- return childrenOf;
964
- }, [regularPagesData, pendingChanges]);
965
-
966
- // Expand to N levels (single click = 2 levels)
967
- const handleExpandLevels = useCallback(
968
- (maxDepth: number) => {
969
- const keysToExpand = new Set<number>();
970
- const expand = (parentId: number | null, depth: number) => {
971
- if (depth >= maxDepth) return;
972
- const children = parentChildrenMap.get(parentId);
973
- if (!children) return;
974
- for (const childId of children) {
975
- // Only expand nodes that have children
976
- if (parentChildrenMap.has(childId)) {
977
- keysToExpand.add(childId);
978
- expand(childId, depth + 1);
979
- }
980
- }
981
- };
982
- expand(null, 0);
983
- setExpandedKeys(keysToExpand);
984
- },
985
- [parentChildrenMap],
986
- );
987
-
988
- // Expand all nodes (double click)
989
- const handleExpandAll = useCallback(() => {
990
- // Expand every node that has children
991
- const keysToExpand = new Set<number>();
992
- for (const [parentId] of parentChildrenMap) {
993
- if (parentId !== null) keysToExpand.add(parentId);
994
- }
995
- setExpandedKeys(keysToExpand);
996
- }, [parentChildrenMap]);
997
-
998
- // Collapse all nodes
999
- const handleCollapseAll = useCallback(() => {
1000
- setExpandedKeys(new Set());
1001
- }, []);
1002
-
1003
- // Common column renderers for both tables
1004
- const renderAssignedResourcesColumn = (record: any) => {
1005
- const permissionSummary = pageResourcePermissionSummaryMap[record.id];
1006
-
1007
- if (!permissionSummary?.resourceNames.length) {
1008
- return <span style={{ color: '#999' }}>No resources assigned</span>;
1009
- }
1010
-
1011
- const joinedResourceNames = permissionSummary.resourceNames.join(', ');
1012
- const shouldTruncateDisplay =
1013
- joinedResourceNames.length > RESOURCE_NAME_DISPLAY_TRUNCATION_LIMIT;
1014
- const truncatedDisplayValue = shouldTruncateDisplay
1015
- ? `${joinedResourceNames.slice(0, RESOURCE_NAME_DISPLAY_TRUNCATION_LIMIT)}...`
1016
- : joinedResourceNames;
1017
-
1018
- return (
1019
- <Tooltip title={joinedResourceNames}>
1020
- <span>{truncatedDisplayValue}</span>
1021
- </Tooltip>
1022
- );
1023
- };
1024
-
1025
- const renderPermissionActionsColumn = (record: any) => {
1026
- const permissionSummary = pageResourcePermissionSummaryMap[record.id];
1027
-
1028
- if (!permissionSummary?.allPermissionActions.length) {
1029
- return <span style={{ color: '#999' }}>-</span>;
1030
- }
1031
-
1032
- return (
1033
- <Space size={[4, 4]} wrap>
1034
- {permissionSummary.allPermissionActions.map((permissionAction) => (
1035
- <Tag key={`${record.id}-${permissionAction}`} color="blue">
1036
- {permissionAction}
1037
- </Tag>
1038
- ))}
1039
- </Space>
1040
- );
1041
- };
1042
-
1043
- // Handle click on add child page button
1044
- const handleAddChildPage = useCallback((parentPage: any) => {
1045
- const parentPath = parentPage.path || '';
1046
- const pathPrefix = parentPath.endsWith('/') ? parentPath : `${parentPath}/`;
1047
- setActiveModalState({
1048
- modalType: 'create',
1049
- targetPageId: null,
1050
- defaultParentId: parentPage.id,
1051
- defaultPathPrefix: pathPrefix,
1052
- });
1053
- }, []);
1054
-
1055
- const renderActionsColumn = (record: any, hasChildren: boolean = false) => (
1056
- <Space>
1057
- <Tooltip title="Add child page">
1058
- <Button
1059
- type="default"
1060
- size="small"
1061
- icon={<PlusOutlined />}
1062
- onClick={() => handleAddChildPage(record)}
1063
- />
1064
- </Tooltip>
1065
- <EditButton
1066
- hideText
1067
- size="small"
1068
- recordItemId={record.id}
1069
- onClick={() =>
1070
- setActiveModalState({ modalType: 'edit', targetPageId: record.id })
1071
- }
1072
- />
1073
- <Tooltip title="Generate SQL">
1074
- <Button
1075
- type="default"
1076
- size="small"
1077
- icon={<CodeOutlined />}
1078
- onClick={() => handleShowSql(record, hasChildren)}
1079
- />
1080
- </Tooltip>
1081
- {/* Only show delete button for leaf nodes (pages without children) */}
1082
- {!hasChildren && (
1083
- <>
1084
- <Tooltip title="Assign roles">
1085
- <Button
1086
- type="default"
1087
- size="small"
1088
- icon={<TeamOutlined />}
1089
- onClick={() =>
1090
- setAssignRolesTarget({
1091
- pageId: record.id,
1092
- pageName: record.name,
1093
- })
1094
- }
1095
- />
1096
- </Tooltip>
1097
- <Tooltip title="View details">
1098
- <Button
1099
- type="default"
1100
- size="small"
1101
- icon={<EyeOutlined />}
1102
- onClick={() => setDrawerPage(record)}
1103
- />
1104
- </Tooltip>
1105
- <DeleteButton
1106
- hideText
1107
- size="small"
1108
- recordItemId={record.id}
1109
- resource="page"
1110
- onSuccess={() => refreshAllPageRelatedData()}
1111
- />
1112
- </>
1113
- )}
1114
- </Space>
1115
- );
1116
-
1117
- // Render regular pages table with drag-drop
1118
- const renderRegularPagesTable = () => (
1119
- <>
1120
- <Space style={{ marginBottom: 16 }}>
1121
- <Tooltip title="Click: expand 2 levels / Double-click: expand all">
1122
- <Button
1123
- onClick={() => {
1124
- expandClickTimer.current = window.setTimeout(
1125
- () => handleExpandLevels(1),
1126
- 200,
1127
- );
1128
- }}
1129
- onDoubleClick={() => {
1130
- if (expandClickTimer.current)
1131
- clearTimeout(expandClickTimer.current);
1132
- handleExpandAll();
1133
- }}
1134
- >
1135
- Expand All
1136
- </Button>
1137
- </Tooltip>
1138
- <Button onClick={handleCollapseAll}>Collapse All</Button>
1139
- {pendingChanges.size > 0 && (
1140
- <>
1141
- <Button
1142
- type="primary"
1143
- icon={<SaveOutlined />}
1144
- onClick={handleSaveOrder}
1145
- loading={isSavingOrder}
1146
- >
1147
- Save Order ({pendingChanges.size} change
1148
- {pendingChanges.size > 1 ? 's' : ''})
1149
- </Button>
1150
- <Button
1151
- icon={<UndoOutlined />}
1152
- onClick={handleDiscardChanges}
1153
- disabled={isSavingOrder}
1154
- >
1155
- Discard Changes
1156
- </Button>
1157
- </>
1158
- )}
1159
- </Space>
1160
-
1161
- {/* Info alert about drag and drop */}
1162
- <Alert
1163
- message="Drag and drop rows using the handle (⋮⋮) to reorder pages. Changes are saved in batch when you click 'Save Order'."
1164
- type="info"
1165
- showIcon
1166
- style={{ marginBottom: 16 }}
1167
- closable
1168
- />
1169
-
1170
- {/* Table with dnd-kit drag and drop */}
1171
- <DndContext
1172
- sensors={sensors}
1173
- collisionDetection={closestCenter}
1174
- modifiers={[restrictToVerticalAxis]}
1175
- onDragOver={handleDragOver}
1176
- onDragEnd={handleDragEnd}
1177
- >
1178
- <SortableContext
1179
- items={activeSortableIds}
1180
- strategy={verticalListSortingStrategy}
1181
- >
1182
- <Table
1183
- {...tableProps}
1184
- rowKey="id"
1185
- dataSource={flattenedTableData}
1186
- pagination={false}
1187
- components={{
1188
- body: {
1189
- row: DraggableRow,
1190
- },
1191
- }}
1192
- >
1193
- {/* Drag handle column */}
1194
- <Table.Column key="drag-handle" width={50} render={() => null} />
1195
- <Table.Column
1196
- dataIndex="name"
1197
- title="Page Name"
1198
- render={(text, record: any) => (
1199
- <span
1200
- style={{
1201
- paddingLeft: record._depth * 20,
1202
- display: 'inline-flex',
1203
- alignItems: 'center',
1204
- }}
1205
- >
1206
- {record._hasChildren ? (
1207
- <span
1208
- onClick={(e) => {
1209
- e.stopPropagation();
1210
- handleToggleExpand(record.id);
1211
- }}
1212
- style={{
1213
- cursor: 'pointer',
1214
- marginRight: 8,
1215
- display: 'inline-flex',
1216
- alignItems: 'center',
1217
- }}
1218
- >
1219
- {record._isExpanded ? (
1220
- <DownOutlined style={{ fontSize: 10 }} />
1221
- ) : (
1222
- <RightOutlined style={{ fontSize: 10 }} />
1223
- )}
1224
- </span>
1225
- ) : (
1226
- <span style={{ width: 18 }} />
1227
- )}
1228
- {i18n.language === 'zh_CN'
1229
- ? record.zhName || text
1230
- : record.enName || text}
1231
- {record._isModified && (
1232
- <Tag color="orange" style={{ marginLeft: 8, fontSize: 10 }}>
1233
- Modified
1234
- </Tag>
1235
- )}
1236
- </span>
1237
- )}
1238
- />
1239
- <Table.Column dataIndex="path" title="Page Path" />
1240
- <Table.Column
1241
- dataIndex="description"
1242
- title="Description"
1243
- ellipsis={{ showTitle: true }}
1244
- onCell={() => ({ style: { maxWidth: 200 } })}
1245
- />
1246
- <Table.Column dataIndex="creator" title="Creator" />
1247
- <Table.Column
1248
- title="Actions"
1249
- render={(_, record: any) =>
1250
- renderActionsColumn(record, record._hasChildren)
1251
- }
1252
- />
1253
- </Table>
1254
- </SortableContext>
1255
- </DndContext>
1256
- </>
1257
- );
1258
-
1259
- // Render virtual pages table (simple table without drag-drop and tree structure)
1260
- const renderVirtualPagesTable = () => (
1261
- <Table
1262
- rowKey="id"
1263
- dataSource={virtualPagesData}
1264
- pagination={{ pageSize: 20 }}
1265
- >
1266
- <Table.Column dataIndex="name" title="Page Name" />
1267
- <Table.Column dataIndex="creator" title="Creator" />
1268
- <Table.Column
1269
- dataIndex="description"
1270
- title="Description"
1271
- ellipsis={{ showTitle: true }}
1272
- onCell={() => ({ style: { maxWidth: 200 } })}
1273
- />
1274
- <Table.Column
1275
- title="Actions"
1276
- render={(_, record: any) => renderActionsColumn(record, false)}
1277
- />
1278
- </Table>
1279
- );
1280
-
1281
- return (
1282
- <div>
1283
- <Space style={{ marginBottom: 16 }}>
1284
- <Button
1285
- type="primary"
1286
- onClick={() =>
1287
- setActiveModalState({
1288
- modalType: 'create',
1289
- targetPageId: null,
1290
- })
1291
- }
1292
- >
1293
- Create Page
1294
- </Button>
1295
- </Space>
1296
-
1297
- <Tabs
1298
- activeKey={activeTab}
1299
- onChange={setActiveTab}
1300
- items={[
1301
- {
1302
- key: 'regular',
1303
- label: `Regular Pages (${regularPagesData.length})`,
1304
- children: renderRegularPagesTable(),
1305
- },
1306
- {
1307
- key: 'virtual',
1308
- label: `Virtual Pages (${virtualPagesData.length})`,
1309
- children: renderVirtualPagesTable(),
1310
- },
1311
- ]}
1312
- />
1313
-
1314
- {activeModalState.modalType === 'edit' &&
1315
- activeModalState.targetPageId && (
1316
- <EditPageModal
1317
- pageIdToEdit={activeModalState.targetPageId}
1318
- onModalClose={handleModalClose}
1319
- onPageEditSuccess={handleModalOperationSuccess}
1320
- parentPageTreeOptions={pageMenuTreeOptionsData}
1321
- allAvailableResources={availableResourcesListForModal}
1322
- currentPageResourceAssignments={getPageResourceAssignmentsForModal(
1323
- activeModalState.targetPageId,
1324
- )}
1325
- allPagesData={pageListData?.data || []}
1326
- />
1327
- )}
1328
-
1329
- {drawerPage && (
1330
- <PageDetailDrawer
1331
- page={drawerPage}
1332
- open={!!drawerPage}
1333
- onClose={() => setDrawerPage(null)}
1334
- />
1335
- )}
1336
-
1337
- {assignRolesTarget && (
1338
- <AssignRolesModal
1339
- pageId={assignRolesTarget.pageId}
1340
- pageName={assignRolesTarget.pageName}
1341
- open={!!assignRolesTarget}
1342
- onClose={() => setAssignRolesTarget(null)}
1343
- onSuccess={() => {
1344
- setAssignRolesTarget(null);
1345
- refreshAllPageRelatedData();
1346
- }}
1347
- />
1348
- )}
1349
-
1350
- {activeModalState.modalType === 'create' && (
1351
- <CreatePageModal
1352
- onModalClose={handleModalClose}
1353
- onPageCreationSuccess={handleModalOperationSuccess}
1354
- parentPageTreeOptions={pageMenuTreeOptionsData}
1355
- allAvailableResources={availableResourcesListForModal}
1356
- allPagesData={pageListData?.data || []}
1357
- defaultParentId={activeModalState.defaultParentId}
1358
- defaultPathPrefix={activeModalState.defaultPathPrefix}
1359
- />
1360
- )}
1361
-
1362
- <SqlModal
1363
- open={sqlModal.open}
1364
- onClose={() => setSqlModal({ open: false, title: '', sql: '' })}
1365
- title={sqlModal.title}
1366
- sql={sqlModal.sql}
1367
- />
1368
- </div>
1369
- );
1370
- };