@gadmin2n/schematics 0.0.69 → 0.0.70

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 (223) hide show
  1. package/dist/lib/application/files/gadmin2-game-angle-demo/config/prisma/canvas.prisma +45 -0
  2. package/dist/lib/application/files/gadmin2-game-angle-demo/config/prisma/example.prisma +24 -23
  3. package/dist/lib/application/files/gadmin2-game-angle-demo/config/prisma/system.prisma +93 -90
  4. package/dist/lib/application/files/gadmin2-game-angle-demo/config/ui/Audit.ts +70 -0
  5. package/dist/lib/application/files/gadmin2-game-angle-demo/config/ui/Event.ts +3 -3
  6. package/dist/lib/application/files/gadmin2-game-angle-demo/config/ui/Page.ts +70 -0
  7. package/dist/lib/application/files/gadmin2-game-angle-demo/config/ui/PageResource.ts +70 -0
  8. package/dist/lib/application/files/gadmin2-game-angle-demo/config/ui/Resource.ts +70 -0
  9. package/dist/lib/application/files/gadmin2-game-angle-demo/config/ui/RolePages.ts +70 -0
  10. package/dist/lib/application/files/gadmin2-game-angle-demo/config/ui/RoleResource.ts +70 -0
  11. package/dist/lib/application/files/gadmin2-game-angle-demo/config/ui/SavedQuery.ts +70 -0
  12. package/dist/lib/application/files/gadmin2-game-angle-demo/config/ui/User.ts +70 -0
  13. package/dist/lib/application/files/gadmin2-game-angle-demo/readme.md +95 -2
  14. package/dist/lib/application/files/gadmin2-game-angle-demo/server/.eslintrc.js +4 -2
  15. package/dist/lib/application/files/gadmin2-game-angle-demo/server/.prettierignore +7 -1
  16. package/dist/lib/application/files/gadmin2-game-angle-demo/server/config/index.ts +1 -3
  17. package/dist/lib/application/files/gadmin2-game-angle-demo/server/gadmin-cli.json +1 -1
  18. package/dist/lib/application/files/gadmin2-game-angle-demo/server/package.json +6 -5
  19. package/dist/lib/application/files/gadmin2-game-angle-demo/server/scripts/lib/page-helpers.ts +157 -0
  20. package/dist/lib/application/files/gadmin2-game-angle-demo/server/scripts/page-manage.ts +290 -0
  21. package/dist/lib/application/files/gadmin2-game-angle-demo/server/scripts/permission-manage.ts +184 -0
  22. package/dist/lib/application/files/gadmin2-game-angle-demo/server/scripts/prismaModels.ts +143 -0
  23. package/dist/lib/application/files/gadmin2-game-angle-demo/server/scripts/sync-resources.ts +100 -0
  24. package/dist/lib/application/files/gadmin2-game-angle-demo/server/scripts/syncDataMngtPages.ts +119 -0
  25. package/dist/lib/application/files/gadmin2-game-angle-demo/server/seed/index.ts +1 -3
  26. package/dist/lib/application/files/gadmin2-game-angle-demo/server/seed/permissions.ts +109 -143
  27. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/main.ts +5 -2
  28. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/canvas/canvas.controller.spec.ts +20 -0
  29. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/canvas/canvas.controller.ts +81 -0
  30. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/canvas/canvas.dto.ts +49 -0
  31. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/canvas/canvas.module.ts +11 -0
  32. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/canvas/canvas.service.spec.ts +334 -0
  33. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/canvas/canvas.service.ts +249 -0
  34. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/index.ts +2 -1
  35. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/page/page.service.ts +2 -2
  36. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/role/role.service.ts +17 -4
  37. package/dist/lib/application/files/gadmin2-game-angle-demo/server/yarn.lock +7737 -0
  38. package/dist/lib/application/files/gadmin2-game-angle-demo/web/.env +1 -0
  39. package/dist/lib/application/files/gadmin2-game-angle-demo/web/.eslintrc.json +38 -0
  40. package/dist/lib/application/files/gadmin2-game-angle-demo/web/.prettierignore +2 -0
  41. package/dist/lib/application/files/gadmin2-game-angle-demo/web/dev-shell-entry.html +49 -0
  42. package/dist/lib/application/files/gadmin2-game-angle-demo/web/package.json +13 -2
  43. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/App.tsx +137 -111
  44. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/auditLogProvider.ts +46 -44
  45. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/authProvider.ts +32 -12
  46. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/BulkActions.tsx +74 -23
  47. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/ListPageHeader.tsx +9 -9
  48. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/RowActions.tsx +57 -31
  49. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/SearchBar.tsx +53 -24
  50. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/SqlModal.tsx +148 -72
  51. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/agentPanel/AgentContext.tsx +190 -16
  52. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/agentPanel/ElementInspector.tsx +914 -63
  53. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/agentPanel/agentAttributes.ts +17 -8
  54. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/agentPanel/index.ts +0 -10
  55. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/agentPanel/inspectorActions.ts +969 -46
  56. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/agentPanel/pagePathUtils.ts +66 -0
  57. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/agentPanel/promptGenerator.ts +85 -25
  58. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/agentPanel/propPatcher.ts +84 -0
  59. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/auditLog/components/eventList/index.tsx +16 -20
  60. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/auditLog/components/index.ts +4 -4
  61. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/auditLog/components/logButton/index.tsx +13 -13
  62. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/auditLog/components/logList/index.tsx +15 -16
  63. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/auditLog/components/modalDiffViewer/index.tsx +15 -15
  64. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/auditLog/index.tsx +2 -2
  65. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/BarChart/index.tsx +896 -0
  66. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/ChartSwitcher/index.tsx +219 -0
  67. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/ChartViewer/index.tsx +159 -0
  68. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/Filter/index.tsx +192 -0
  69. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/LineChart/index.tsx +1034 -0
  70. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/NumCard/NumCard.module.css +8 -0
  71. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/NumCard/index.tsx +509 -0
  72. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/NumLineCard/index.tsx +66 -0
  73. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/PieChart/index.tsx +552 -0
  74. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/RadarChart/index.tsx +263 -0
  75. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/Section/index.tsx +35 -0
  76. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/Table/index.tsx +207 -0
  77. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/TreemapChart/index.tsx +382 -0
  78. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/WorldMap/index.tsx +135 -0
  79. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/chart-constants.ts +53 -0
  80. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/icon/InfoIcon.tsx +8 -0
  81. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/icon/index.ts +1 -0
  82. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/map/config.ts +31 -0
  83. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/map/nameMap.json +9 -0
  84. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/map/world.geo.json +39349 -0
  85. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/metric-info-tooltip/index.tsx +19 -0
  86. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/contexts/business/index.tsx +12 -12
  87. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/contexts/color-mode/index.tsx +22 -26
  88. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/custom-avatar.tsx +13 -9
  89. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/index.ts +4 -4
  90. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/layout/header.tsx +22 -37
  91. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/layout/index.ts +4 -4
  92. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/layout/layout.tsx +10 -10
  93. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/layout/logo.tsx +1 -1
  94. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/layout/sider.tsx +113 -65
  95. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/layout/title.tsx +14 -14
  96. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/offLayoutArea/index.tsx +1 -1
  97. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/pagination-total.tsx +2 -2
  98. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/tags/index.ts +1 -1
  99. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/tags/role-tag.tsx +21 -21
  100. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/text.tsx +17 -13
  101. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/config/http.ts +26 -5
  102. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/config/routeRegistry.tsx +221 -51
  103. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/constants/layout.ts +3 -3
  104. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/AddDataModal.tsx +199 -0
  105. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/AddPageModal.tsx +335 -0
  106. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/DeleteDataConfirm.tsx +56 -0
  107. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/DevShell.tsx +401 -0
  108. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/EditDataModal.tsx +129 -0
  109. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/SkillMenu.tsx +202 -0
  110. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/UndoConfirm.tsx +36 -0
  111. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/index.tsx +8 -0
  112. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/style.css +835 -0
  113. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/enums/audit-log.enum.ts +8 -8
  114. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/enums/index.ts +1 -1
  115. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/form.tsx +120 -70
  116. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/get-name-initials.ts +3 -3
  117. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/get-random-color.ts +11 -11
  118. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/http.ts +16 -19
  119. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/index.tsx +1 -1
  120. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/list.tsx +99 -73
  121. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/login.ts +22 -27
  122. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/page-tree.ts +74 -0
  123. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/show.tsx +95 -51
  124. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/utils.tsx +7 -3
  125. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/types.ts +15 -15
  126. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useBatchDelete.ts +10 -10
  127. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useBatchOperations.ts +8 -7
  128. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useBatchOperationsCore.ts +10 -10
  129. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useBatchUpdate.ts +10 -10
  130. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useDynamicResources.tsx +36 -27
  131. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useECharts.tsx +144 -0
  132. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useFetchData.ts +4 -4
  133. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useListPageState.ts +34 -34
  134. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useRoles.ts +8 -4
  135. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useRowSelection.ts +1 -1
  136. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useUserPageAccess.ts +55 -41
  137. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/i18n.ts +8 -8
  138. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/index.tsx +9 -2
  139. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/locales/en/common.json +193 -0
  140. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/locales/zh_CN/common.json +194 -0
  141. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/plugins/devShellPlugin.ts +81 -0
  142. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/audit/components/action-cell.tsx +37 -37
  143. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/audit/create.tsx +23 -31
  144. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/audit/edit.tsx +34 -35
  145. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/audit/index.ts +1 -1
  146. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/audit/index.tsx +4 -6
  147. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/audit/list.tsx +41 -34
  148. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/audit/show.tsx +33 -20
  149. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/CanvasCell.tsx +87 -0
  150. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/CanvasEditPage.tsx +192 -0
  151. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/CanvasListPage.tsx +409 -0
  152. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/CanvasPage.tsx +1372 -0
  153. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/CanvasToolbar.tsx +384 -0
  154. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/CodeFloatWindow.tsx +476 -0
  155. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/ComponentThumbnail.tsx +135 -0
  156. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/IsolatedLivePreview.tsx +101 -0
  157. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/LivePreview.tsx +236 -0
  158. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/PublishModal.tsx +200 -0
  159. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/canvasApi.ts +92 -0
  160. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/canvasConfigRegistry.tsx +25 -0
  161. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/canvasContextMenuRegistry.tsx +875 -0
  162. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/canvasDefaults.ts +126 -0
  163. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/canvasI18n.ts +11 -0
  164. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/BarChartDataSourceModal.tsx +115 -0
  165. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/ChartViewerConfigModal.tsx +217 -0
  166. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/LineChartDataSourceModal.tsx +153 -0
  167. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/NumCardDataSourceModal.tsx +211 -0
  168. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/PromptModal.tsx +90 -0
  169. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/RadarChartDataSourceModal.tsx +87 -0
  170. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/TableDataSourceModal.tsx +204 -0
  171. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/demos.ts +1153 -0
  172. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/index.tsx +2 -0
  173. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/sectionCompactor.ts +45 -0
  174. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/types.ts +45 -0
  175. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas-page/index.tsx +108 -0
  176. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/game/create.tsx +105 -0
  177. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/game/edit.tsx +121 -0
  178. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/game/index.tsx +4 -0
  179. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/game/list.tsx +237 -0
  180. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/game/show.tsx +74 -0
  181. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/page/Components/AssignRolesModal.tsx +29 -20
  182. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/page/Components/CreatePageModal.tsx +3 -3
  183. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/page/Components/EditPageModal.tsx +7 -3
  184. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/page/Components/PageDetailDrawer.tsx +58 -23
  185. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/page/Components/PageFormModal.tsx +206 -122
  186. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/page/hooks/usePageManagement.ts +8 -4
  187. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/page/index.ts +1 -1
  188. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/page/list.tsx +345 -190
  189. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/page/types.ts +1 -1
  190. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/permissionReadme/index.tsx +341 -340
  191. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/resource/Components/CreateModal.tsx +2 -2
  192. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/resource/Components/EditModal.tsx +2 -2
  193. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/resource/Components/ResourceDetailDrawer.tsx +41 -24
  194. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/resource/Components/modal.tsx +64 -36
  195. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/resource/index.ts +2 -2
  196. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/resource/list.tsx +78 -40
  197. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/role/Components/CreateModal.tsx +3 -3
  198. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/role/Components/EditModal.tsx +4 -4
  199. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/role/Components/RoleDetailDrawer.tsx +19 -9
  200. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/role/Components/modal.tsx +45 -47
  201. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/role/hooks/useRolePage.ts +4 -4
  202. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/role/index.ts +1 -1
  203. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/role/list.tsx +121 -147
  204. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/role/types.ts +1 -1
  205. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/user/components/create-modal.tsx +2 -2
  206. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/user/components/edit-modal.tsx +2 -2
  207. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/user/components/form-modal.tsx +25 -19
  208. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/user/components/index.ts +5 -5
  209. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/user/components/role-tag.tsx +10 -10
  210. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/user/components/show-drawer.tsx +31 -26
  211. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/user/index.ts +1 -1
  212. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/user/list.tsx +76 -71
  213. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/setupTests.ts +1 -1
  214. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/types/audit-log.ts +1 -1
  215. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/types/index.ts +3 -3
  216. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/types/role.ts +1 -1
  217. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/types/user.ts +1 -1
  218. package/dist/lib/application/files/gadmin2-game-angle-demo/web/vite.config.ts +42 -25
  219. package/dist/lib/application/files/gadmin2-game-angle-demo/web/yarn.lock +1193 -32
  220. package/package.json +1 -1
  221. package/dist/lib/application/files/gadmin2-game-angle-demo/server/seed/seedDataMngtPages.ts +0 -258
  222. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/agentPanel/AgentPanel.tsx +0 -497
  223. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/agentPanel/skills.ts +0 -464
@@ -5,4 +5,4 @@ const EmptyComponent = () => null;
5
5
  export const AuditCreate = EmptyComponent;
6
6
  export const AuditEdit = EmptyComponent;
7
7
  export const AuditList = EmptyComponent;
8
- export const AuditShow = EmptyComponent;
8
+ export const AuditShow = EmptyComponent;
@@ -1,6 +1,4 @@
1
-
2
- export * from "./list";
3
- export * from "./create";
4
- export * from "./edit";
5
- export * from "./show";
6
-
1
+ export * from './list';
2
+ export * from './create';
3
+ export * from './edit';
4
+ export * from './show';
@@ -5,10 +5,10 @@ import {
5
5
  List,
6
6
  rangePickerFilterMapper,
7
7
  useTable,
8
- } from "@refinedev/antd";
9
- import { getDefaultFilter, HttpError } from "@refinedev/core";
8
+ } from '@refinedev/antd';
9
+ import { getDefaultFilter, HttpError } from '@refinedev/core';
10
10
 
11
- import { SearchOutlined } from "@ant-design/icons";
11
+ import { SearchOutlined } from '@ant-design/icons';
12
12
  import {
13
13
  DatePicker,
14
14
  Input,
@@ -17,26 +17,25 @@ import {
17
17
  Table,
18
18
  Tag,
19
19
  type TagProps,
20
- } from "antd";
20
+ } from 'antd';
21
21
 
22
- import { CustomAvatar, PaginationTotal } from "components";
23
- import { AuditLogActionEnum, auditLogActionOptions } from "enums";
24
- import { AuditLog } from "types";
22
+ import { CustomAvatar, PaginationTotal } from 'components';
23
+ import { AuditLogActionEnum, auditLogActionOptions } from 'enums';
24
+ import { AuditLog } from 'types';
25
25
 
26
- import { ActionCell } from "./components/action-cell";
27
- import { LIST_CONTENT_PROPS } from "constants/layout";
26
+ import { ActionCell } from './components/action-cell';
27
+ import { LIST_CONTENT_PROPS } from 'constants/layout';
28
28
 
29
-
30
- const getActionColor = (action: string): TagProps["color"] => {
29
+ const getActionColor = (action: string): TagProps['color'] => {
31
30
  switch (action) {
32
31
  case AuditLogActionEnum.create:
33
- return "green";
32
+ return 'green';
34
33
  case AuditLogActionEnum.update:
35
- return "cyan";
34
+ return 'cyan';
36
35
  case AuditLogActionEnum.delete:
37
- return "red";
36
+ return 'red';
38
37
  default:
39
- return "default";
38
+ return 'default';
40
39
  }
41
40
  };
42
41
 
@@ -46,32 +45,36 @@ export const AuditLogPage = () => {
46
45
  HttpError,
47
46
  Partial<AuditLog>
48
47
  >({
49
- resource: "audit",
48
+ resource: 'audit',
50
49
  pagination: {
51
50
  pageSize: 20,
52
51
  },
53
52
  filters: {
54
53
  initial: [
55
- { field: "authorName", operator: "contains", value: "" },
56
- { field: "resource", operator: "contains", value: "" },
57
- { field: "timestamp", value: undefined as any, operator: "between" },
54
+ { field: 'authorName', operator: 'contains', value: '' },
55
+ { field: 'resource', operator: 'contains', value: '' },
56
+ { field: 'timestamp', value: undefined as any, operator: 'between' },
58
57
  ],
59
58
  },
60
59
  sorters: {
61
- initial: [{ field: "id", order: "desc" }],
60
+ initial: [{ field: 'id', order: 'desc' }],
62
61
  },
63
62
  });
64
63
 
65
64
  // fix for ant design filter dropdown contains operator
66
65
  filters.map((filter) => {
67
- if (filter.operator === "contains" && Array.isArray(filter.value)) {
68
- filter.value = filter.value.join(",");
66
+ if (filter.operator === 'contains' && Array.isArray(filter.value)) {
67
+ filter.value = filter.value.join(',');
69
68
  }
70
69
  });
71
70
 
72
71
  return (
73
72
  <div className="page-container">
74
- <List breadcrumb={false} canCreate={false} contentProps={LIST_CONTENT_PROPS}>
73
+ <List
74
+ breadcrumb={false}
75
+ canCreate={false}
76
+ contentProps={LIST_CONTENT_PROPS}
77
+ >
75
78
  <Table
76
79
  className="audit-log-table"
77
80
  {...tableProps}
@@ -96,7 +99,7 @@ export const AuditLogPage = () => {
96
99
  src={`https://rhrc.woa.com/photo/150/${record.authorName}.png`}
97
100
  name={record.authorName}
98
101
  />
99
- {record.authorName || "N/A"}
102
+ {record.authorName || 'N/A'}
100
103
  </Space>
101
104
  );
102
105
  }}
@@ -112,9 +115,9 @@ export const AuditLogPage = () => {
112
115
  </FilterDropdown>
113
116
  )}
114
117
  defaultFilteredValue={getDefaultFilter(
115
- "authorName",
118
+ 'authorName',
116
119
  filters,
117
- "contains"
120
+ 'contains',
118
121
  )}
119
122
  />
120
123
  <Table.Column
@@ -126,7 +129,7 @@ export const AuditLogPage = () => {
126
129
  <Tag color={getActionColor(record.action)}>
127
130
  {
128
131
  auditLogActionOptions.find(
129
- (option) => option.value === record.action
132
+ (option) => option.value === record.action,
130
133
  )?.label
131
134
  }
132
135
  </Tag>
@@ -150,13 +153,13 @@ export const AuditLogPage = () => {
150
153
  </Radio.Group>
151
154
  </FilterDropdown>
152
155
  )}
153
- defaultFilteredValue={getDefaultFilter("action", filters, "eq")}
156
+ defaultFilteredValue={getDefaultFilter('action', filters, 'eq')}
154
157
  />
155
158
  <Table.Column
156
159
  dataIndex="resource"
157
160
  title="Entity"
158
161
  filterIcon={<SearchOutlined />}
159
- filterDropdown={props => (
162
+ filterDropdown={(props) => (
160
163
  <FilterDropdown
161
164
  {...(props as any)}
162
165
  clearFilters={() => {
@@ -167,7 +170,11 @@ export const AuditLogPage = () => {
167
170
  <Input />
168
171
  </FilterDropdown>
169
172
  )}
170
- defaultFilteredValue={getDefaultFilter("resource", filters, "contains")}
173
+ defaultFilteredValue={getDefaultFilter(
174
+ 'resource',
175
+ filters,
176
+ 'contains',
177
+ )}
171
178
  />
172
179
  <Table.Column dataIndex="resourceId" title="Entity ID" />
173
180
  <Table.Column
@@ -181,7 +188,7 @@ export const AuditLogPage = () => {
181
188
  width="15%"
182
189
  render={(value) => (
183
190
  <DateField
184
- style={{ verticalAlign: "middle" }}
191
+ style={{ verticalAlign: 'middle' }}
185
192
  value={value}
186
193
  format="YYYY-MM-DD hh:mm:ss"
187
194
  />
@@ -200,11 +207,11 @@ export const AuditLogPage = () => {
200
207
  )}
201
208
  sorter
202
209
  defaultFilteredValue={getDefaultFilter(
203
- "timestamp",
210
+ 'timestamp',
204
211
  filters,
205
- "between"
212
+ 'between',
206
213
  )}
207
- defaultSortOrder={getDefaultSortOrder("timestamp", sorters)}
214
+ defaultSortOrder={getDefaultSortOrder('timestamp', sorters)}
208
215
  />
209
216
  </Table>
210
217
  </List>
@@ -1,23 +1,34 @@
1
-
2
- import { ModelType, getColumns, produceModel } from "@gadmin2n/react-common";
3
- import { CloneButton, DeleteButton, EditButton, ListButton, RefreshButton, Show } from "@refinedev/antd";
4
- import { IResourceComponentsProps, useShow, useTranslate } from "@refinedev/core";
5
- import React, { useState } from "react";
6
- import { getShowField } from "../../helpers";
7
- import type { Audit } from "../../generated/types/prisma.types"; //'.prisma/client/index';
1
+ import { ModelType, getColumns, produceModel } from '@gadmin2n/react-common';
2
+ import {
3
+ CloneButton,
4
+ DeleteButton,
5
+ EditButton,
6
+ ListButton,
7
+ RefreshButton,
8
+ Show,
9
+ } from '@refinedev/antd';
10
+ import {
11
+ IResourceComponentsProps,
12
+ useShow,
13
+ useTranslate,
14
+ } from '@refinedev/core';
15
+ import React, { useState } from 'react';
16
+ import { getShowField } from '../../helpers';
17
+ import type { Audit } from '../../generated/types/prisma.types'; //'.prisma/client/index';
8
18
  import {
9
19
  auditShowConfig as showConfig,
10
20
  auditShowPrismaSelect as showPrismaSelect,
11
- } from "../../generated/props/audit/config";
12
- import { auditModel } from "../../generated/props/audit/model";
13
- import { modelsMap } from "generated/models.index";
21
+ } from '../../generated/props/audit/config';
22
+ import { auditModel } from '../../generated/props/audit/model';
23
+ import { modelsMap } from 'generated/models.index';
24
+ import { agentAttrs } from '../../components/agentPanel/agentAttributes';
14
25
 
15
26
  export const AuditShow: React.FC<IResourceComponentsProps> = () => {
16
- const resourceName = "audit";
27
+ const resourceName = 'audit';
17
28
  const t = useTranslate();
18
-
29
+
19
30
  const { queryResult } = useShow<Audit>({
20
- meta: { select: showPrismaSelect},
31
+ meta: { select: showPrismaSelect },
21
32
  });
22
33
  const { data, isLoading } = queryResult;
23
34
  const record = data?.data;
@@ -28,9 +39,9 @@ export const AuditShow: React.FC<IResourceComponentsProps> = () => {
28
39
  });
29
40
 
30
41
  // getColumns is a function that returns an array of fields
31
- const fields = getColumns("Audit", showConfig.fields, {
42
+ const fields = getColumns('Audit', showConfig.fields, {
32
43
  ...modelsMap,
33
- Audit: { model, meta: modelsMap["Audit"].meta },
44
+ Audit: { model, meta: modelsMap['Audit'].meta },
34
45
  });
35
46
 
36
47
  return [fields, model] as const;
@@ -40,16 +51,19 @@ export const AuditShow: React.FC<IResourceComponentsProps> = () => {
40
51
  <Show
41
52
  isLoading={isLoading}
42
53
  headerButtons={
43
- <>
44
- <ListButton/>
54
+ <div
55
+ style={{ display: 'inline-flex', gap: 8 }}
56
+ {...agentAttrs({ type: 'show-header', resource: resourceName })}
57
+ >
58
+ <ListButton />
45
59
  <EditButton recordItemId={record?.id} />
46
60
  <CloneButton recordItemId={record?.id} />
47
61
  <DeleteButton recordItemId={record?.id} />
48
62
  <RefreshButton
49
63
  recordItemId={record?.id}
50
- meta={{ select: showPrismaSelect}}
64
+ meta={{ select: showPrismaSelect }}
51
65
  />
52
- </>
66
+ </div>
53
67
  }
54
68
  >
55
69
  {fields.map((field: any) => {
@@ -58,4 +72,3 @@ export const AuditShow: React.FC<IResourceComponentsProps> = () => {
58
72
  </Show>
59
73
  );
60
74
  };
61
-
@@ -0,0 +1,87 @@
1
+ import React from 'react';
2
+ import IsolatedLivePreview from './IsolatedLivePreview';
3
+
4
+ interface CanvasCellProps extends React.HTMLAttributes<HTMLDivElement> {
5
+ code: string;
6
+ selected: boolean;
7
+ componentType?: string;
8
+ isPreview?: boolean;
9
+ onClick: (e: React.MouseEvent) => void;
10
+ onDoubleClick: (e: React.MouseEvent) => void;
11
+ onContextMenu: (e: React.MouseEvent) => void;
12
+ className?: string;
13
+ style?: React.CSSProperties;
14
+ children?: React.ReactNode; // react-grid-layout injects resize handles here
15
+ [key: string]: any; // Forward any other props react-grid-layout injects (data-grid-id, etc.)
16
+ }
17
+
18
+ const CanvasCell = React.forwardRef<HTMLDivElement, CanvasCellProps>(
19
+ (
20
+ {
21
+ code,
22
+ selected,
23
+ componentType,
24
+ isPreview,
25
+ onClick,
26
+ onDoubleClick,
27
+ onContextMenu,
28
+ className,
29
+ style,
30
+ children,
31
+ ...rest
32
+ },
33
+ ref,
34
+ ) => {
35
+ const isSection = componentType === 'Section';
36
+
37
+ return (
38
+ <div
39
+ ref={ref}
40
+ className={className}
41
+ style={{
42
+ background: isSection ? 'transparent' : '#fff',
43
+ borderRadius: isSection ? 0 : 8,
44
+ overflow: 'hidden',
45
+ outline: !isPreview && selected ? '2px solid #087ea4' : 'none',
46
+ outlineOffset: 2,
47
+ cursor: isPreview ? 'default' : 'pointer',
48
+ ...style,
49
+ }}
50
+ onClick={(e) => {
51
+ if (isPreview) return;
52
+ e.stopPropagation();
53
+ onClick(e);
54
+ }}
55
+ onDoubleClick={(e) => {
56
+ if (isPreview) return;
57
+ e.stopPropagation();
58
+ onDoubleClick(e);
59
+ }}
60
+ onContextMenu={(e) => {
61
+ if (isPreview) return;
62
+ e.preventDefault();
63
+ e.stopPropagation();
64
+ onContextMenu(e);
65
+ }}
66
+ {...rest}
67
+ >
68
+ <div
69
+ style={{
70
+ width: '100%',
71
+ height: '100%',
72
+ pointerEvents: isPreview ? 'auto' : 'none',
73
+ overflow: 'hidden',
74
+ }}
75
+ >
76
+ <IsolatedLivePreview code={code} />
77
+ </div>
78
+ {/* Resize handles injected by react-grid-layout */}
79
+ {children}
80
+ </div>
81
+ );
82
+ },
83
+ );
84
+
85
+ CanvasCell.displayName = 'CanvasCell';
86
+
87
+ export default CanvasCell;
@@ -0,0 +1,192 @@
1
+ import React, { useState, useCallback, useRef, useEffect } from 'react';
2
+ import { useParams, useNavigate } from 'react-router-dom';
3
+ import { message, Modal, Spin } from 'antd';
4
+ import CanvasPageView from './CanvasPage';
5
+ import PublishModal from './PublishModal';
6
+ import type { SavedCanvas, CanvasItem } from './types';
7
+ import type { LayoutItem } from 'react-grid-layout';
8
+ import { fetchCanvas, updateCanvas, unpublishCanvas } from './canvasApi';
9
+ import { useTranslation } from 'react-i18next';
10
+
11
+ const CanvasEditPage: React.FC = () => {
12
+ const { id } = useParams<{ id: string }>();
13
+ const navigate = useNavigate();
14
+ const { t } = useTranslation();
15
+ const [canvas, setCanvas] = useState<SavedCanvas | null>(null);
16
+ const [loading, setLoading] = useState(true);
17
+
18
+ const [canvasItems, setCanvasItems] = useState<CanvasItem[]>([]);
19
+ const [canvasLayout, setCanvasLayout] = useState<LayoutItem[]>([]);
20
+ const [isDirty, setIsDirty] = useState(false);
21
+ const [publishModalOpen, setPublishModalOpen] = useState(false);
22
+ const [unpublishModalOpen, setUnpublishModalOpen] = useState(false);
23
+ const [unpublishing, setUnpublishing] = useState(false);
24
+
25
+ const liveRef = useRef({
26
+ canvas,
27
+ isDirty,
28
+ canvasItems,
29
+ canvasLayout,
30
+ });
31
+ liveRef.current = {
32
+ canvas,
33
+ isDirty,
34
+ canvasItems,
35
+ canvasLayout,
36
+ };
37
+
38
+ // ── Load canvas by ID ──
39
+ useEffect(() => {
40
+ if (!id) return;
41
+ console.log('[CanvasEditPage] loading canvas id:', id);
42
+ setLoading(true);
43
+ fetchCanvas(id)
44
+ .then((data) => {
45
+ console.log('[CanvasEditPage] fetchCanvas result:', data);
46
+ if (!data) {
47
+ message.error('Canvas 不存在');
48
+ navigate('/admin/canvas');
49
+ return;
50
+ }
51
+ setCanvas(data);
52
+ setCanvasItems(data.items ?? []);
53
+ setCanvasLayout(data.layout ?? []);
54
+ })
55
+ .catch((err) => {
56
+ console.error('[CanvasEditPage] load failed:', err);
57
+ message.error('加载 Canvas 失败');
58
+ navigate('/admin/canvas');
59
+ })
60
+ .finally(() => setLoading(false));
61
+ }, [id]); // eslint-disable-line react-hooks/exhaustive-deps
62
+
63
+ // ── Change handlers ──
64
+ const handleItemsChange = useCallback((items: CanvasItem[]) => {
65
+ setCanvasItems(items);
66
+ setIsDirty(true);
67
+ }, []);
68
+
69
+ const handleLayoutChange = useCallback((layout: LayoutItem[]) => {
70
+ setCanvasLayout(layout);
71
+ setIsDirty(true);
72
+ }, []);
73
+
74
+ const handleBothChange = useCallback(
75
+ (items: CanvasItem[], layout: LayoutItem[]) => {
76
+ setCanvasItems(items);
77
+ setCanvasLayout(layout);
78
+ setIsDirty(true);
79
+ },
80
+ [],
81
+ );
82
+
83
+ // ── Save ──
84
+ const handleSave = useCallback(async () => {
85
+ const { canvas, canvasItems, canvasLayout } = liveRef.current;
86
+ if (!canvas) return;
87
+ try {
88
+ await updateCanvas(canvas.id, {
89
+ items: canvasItems,
90
+ layout: canvasLayout,
91
+ });
92
+ setIsDirty(false);
93
+ message.success(t('canvas.edit.saved'));
94
+ } catch {
95
+ message.error(t('canvas.edit.saveFailed'));
96
+ }
97
+ }, []);
98
+
99
+ // ── Back to list ──
100
+ const handleBack = useCallback(() => {
101
+ navigate('/admin/canvas');
102
+ }, [navigate]);
103
+
104
+ // ── Unpublish ──
105
+ const handleUnpublish = useCallback(async () => {
106
+ const { canvas } = liveRef.current;
107
+ if (!canvas) return;
108
+ setUnpublishing(true);
109
+ try {
110
+ await unpublishCanvas(canvas.id);
111
+ setCanvas((prev) =>
112
+ prev ? { ...prev, publishedPageCode: null, publishedAt: null } : prev,
113
+ );
114
+ message.success(t('canvas.unpublishSuccess'));
115
+ setUnpublishModalOpen(false);
116
+ } catch {
117
+ message.error(t('canvas.unpublishFailed'));
118
+ } finally {
119
+ setUnpublishing(false);
120
+ }
121
+ }, [t]);
122
+
123
+ if (loading || !canvas) {
124
+ console.log(
125
+ '[CanvasEditPage] rendering loading state, loading=',
126
+ loading,
127
+ 'canvas=',
128
+ canvas,
129
+ );
130
+ return (
131
+ <div
132
+ style={{
133
+ display: 'flex',
134
+ justifyContent: 'center',
135
+ alignItems: 'center',
136
+ minHeight: 400,
137
+ }}
138
+ >
139
+ <Spin size="large" />
140
+ </div>
141
+ );
142
+ }
143
+
144
+ console.log('[CanvasEditPage] rendering editor for:', canvas.name);
145
+
146
+ return (
147
+ <>
148
+ <CanvasPageView
149
+ items={canvasItems}
150
+ layout={canvasLayout}
151
+ isDirty={isDirty}
152
+ canvasName={canvas.name}
153
+ isPublished={!!canvas.publishedPageCode}
154
+ onItemsChange={handleItemsChange}
155
+ onLayoutChange={handleLayoutChange}
156
+ onBothChange={handleBothChange}
157
+ onSave={handleSave}
158
+ onBack={handleBack}
159
+ onPublish={() => setPublishModalOpen(true)}
160
+ onUnpublish={() => setUnpublishModalOpen(true)}
161
+ />
162
+ <PublishModal
163
+ open={publishModalOpen}
164
+ onClose={() => setPublishModalOpen(false)}
165
+ activeCanvas={canvas}
166
+ onPublishSuccess={() => {
167
+ if (id) {
168
+ fetchCanvas(id)
169
+ .then((data) => {
170
+ if (data) setCanvas(data);
171
+ })
172
+ .catch(() => {});
173
+ }
174
+ }}
175
+ />
176
+ <Modal
177
+ title={t('canvas.unpublish')}
178
+ open={unpublishModalOpen}
179
+ onOk={handleUnpublish}
180
+ onCancel={() => setUnpublishModalOpen(false)}
181
+ okText={t('canvas.unpublish')}
182
+ okButtonProps={{ danger: true }}
183
+ cancelText={t('canvas.publishModal.cancel')}
184
+ confirmLoading={unpublishing}
185
+ >
186
+ <p>{t('canvas.unpublishConfirm')}</p>
187
+ </Modal>
188
+ </>
189
+ );
190
+ };
191
+
192
+ export default CanvasEditPage;