@gadmin2n/schematics 0.0.68 → 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 +2 -2
  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
@@ -1,5 +1,5 @@
1
- import React from "react";
2
- import { ResourceFormModal } from "./modal";
1
+ import React from 'react';
2
+ import { ResourceFormModal } from './modal';
3
3
 
4
4
  interface CreateModalProps {
5
5
  onClose: () => void;
@@ -1,5 +1,5 @@
1
- import React from "react";
2
- import { ResourceFormModal } from "./modal";
1
+ import React from 'react';
2
+ import { ResourceFormModal } from './modal';
3
3
 
4
4
  interface EditModalProps {
5
5
  id?: number;
@@ -1,8 +1,8 @@
1
- import React, { useEffect, useMemo } from "react";
2
- import { useTranslation } from "react-i18next";
3
- import { Descriptions, Drawer, Space, Table, Tabs, Tag } from "antd";
4
- import { useFetchData } from "@/hooks/useFetchData";
5
- import type { Resource } from "../types";
1
+ import React, { useEffect, useMemo } from 'react';
2
+ import { useTranslation } from 'react-i18next';
3
+ import { Descriptions, Drawer, Space, Table, Tabs, Tag } from 'antd';
4
+ import { useFetchData } from '@/hooks/useFetchData';
5
+ import type { Resource } from '../types';
6
6
 
7
7
  interface ResourceDetailDrawerProps {
8
8
  resource: Resource;
@@ -16,25 +16,35 @@ export const ResourceDetailDrawer: React.FC<ResourceDetailDrawerProps> = ({
16
16
  onClose,
17
17
  }) => {
18
18
  const { i18n } = useTranslation();
19
- const isChinese = i18n.language === "zh_CN" || i18n.language === "zh";
19
+ const isChinese = i18n.language === 'zh_CN' || i18n.language === 'zh';
20
20
 
21
21
  const {
22
22
  data: pageResourceData,
23
23
  loading: pageLoading,
24
24
  fetchData: fetchPageResources,
25
- } = useFetchData("pageResource/findMany", "post", undefined, true);
25
+ } = useFetchData('pageResource/findMany', 'post', undefined, true);
26
26
 
27
27
  const {
28
28
  data: roleData,
29
29
  loading: roleLoading,
30
30
  fetchData: fetchRoles,
31
- } = useFetchData("role/findMany", "post", undefined, true);
31
+ } = useFetchData('role/findMany', 'post', undefined, true);
32
32
 
33
33
  useEffect(() => {
34
34
  if (open) {
35
35
  fetchPageResources({
36
36
  where: { resourceId: resource.id },
37
- include: { page: { select: { id: true, name: true, code: true, zhName: true, enName: true } } },
37
+ include: {
38
+ page: {
39
+ select: {
40
+ id: true,
41
+ name: true,
42
+ code: true,
43
+ zhName: true,
44
+ enName: true,
45
+ },
46
+ },
47
+ },
38
48
  take: 1000,
39
49
  });
40
50
  // Query roles with filtered roleResources for this resource
@@ -61,12 +71,12 @@ export const ResourceDetailDrawer: React.FC<ResourceDetailDrawerProps> = ({
61
71
  return list.map((item: any) => {
62
72
  const page = item.page;
63
73
  const pageName = isChinese
64
- ? (page?.zhName || page?.name || "-")
65
- : (page?.enName || page?.name || "-");
74
+ ? page?.zhName || page?.name || '-'
75
+ : page?.enName || page?.name || '-';
66
76
  return {
67
77
  key: item.id,
68
78
  pageName,
69
- pageCode: page?.code || "-",
79
+ pageCode: page?.code || '-',
70
80
  actions: Array.isArray(item.actions) ? item.actions : [],
71
81
  };
72
82
  });
@@ -79,8 +89,8 @@ export const ResourceDetailDrawer: React.FC<ResourceDetailDrawerProps> = ({
79
89
  const actions = roleResource?.actions;
80
90
  return {
81
91
  key: item.id,
82
- roleName: item.name || "-",
83
- roleCode: item.code || "-",
92
+ roleName: item.name || '-',
93
+ roleCode: item.code || '-',
84
94
  actions: Array.isArray(actions) ? actions : [],
85
95
  };
86
96
  });
@@ -88,11 +98,11 @@ export const ResourceDetailDrawer: React.FC<ResourceDetailDrawerProps> = ({
88
98
 
89
99
  const permissionColumns = [
90
100
  {
91
- title: "Permissions",
92
- dataIndex: "actions",
101
+ title: 'Permissions',
102
+ dataIndex: 'actions',
93
103
  render: (actions: string[]) => (
94
104
  <Space size={[0, 4]} wrap>
95
- {actions.map(a => (
105
+ {actions.map((a) => (
96
106
  <Tag key={a}>{a}</Tag>
97
107
  ))}
98
108
  </Space>
@@ -108,18 +118,25 @@ export const ResourceDetailDrawer: React.FC<ResourceDetailDrawerProps> = ({
108
118
  width={560}
109
119
  destroyOnClose
110
120
  >
111
- <Descriptions column={1} size="small" bordered style={{ marginBottom: 16 }}>
121
+ <Descriptions
122
+ column={1}
123
+ size="small"
124
+ bordered
125
+ style={{ marginBottom: 16 }}
126
+ >
112
127
  <Descriptions.Item label="Code">{resource.code}</Descriptions.Item>
113
128
  <Descriptions.Item label="Name">{resource.name}</Descriptions.Item>
114
129
  {resource.description && (
115
- <Descriptions.Item label="Description">{resource.description}</Descriptions.Item>
130
+ <Descriptions.Item label="Description">
131
+ {resource.description}
132
+ </Descriptions.Item>
116
133
  )}
117
134
  </Descriptions>
118
135
 
119
136
  <Tabs
120
137
  items={[
121
138
  {
122
- key: "pages",
139
+ key: 'pages',
123
140
  label: `Referenced by Pages (${pages.length})`,
124
141
  children: (
125
142
  <Table
@@ -129,15 +146,15 @@ export const ResourceDetailDrawer: React.FC<ResourceDetailDrawerProps> = ({
129
146
  size="small"
130
147
  pagination={pages.length > 10 ? { pageSize: 10 } : false}
131
148
  columns={[
132
- { title: "Page Name", dataIndex: "pageName", width: "35%" },
133
- { title: "Page Code", dataIndex: "pageCode", width: "25%" },
149
+ { title: 'Page Name', dataIndex: 'pageName', width: '35%' },
150
+ { title: 'Page Code', dataIndex: 'pageCode', width: '25%' },
134
151
  ...permissionColumns,
135
152
  ]}
136
153
  />
137
154
  ),
138
155
  },
139
156
  {
140
- key: "roles",
157
+ key: 'roles',
141
158
  label: `Visible to Roles (${roles.length})`,
142
159
  children: (
143
160
  <Table
@@ -147,7 +164,7 @@ export const ResourceDetailDrawer: React.FC<ResourceDetailDrawerProps> = ({
147
164
  size="small"
148
165
  pagination={roles.length > 10 ? { pageSize: 10 } : false}
149
166
  columns={[
150
- { title: "Role Name", dataIndex: "roleName", width: "35%" },
167
+ { title: 'Role Name', dataIndex: 'roleName', width: '35%' },
151
168
  ...permissionColumns,
152
169
  ]}
153
170
  />
@@ -1,15 +1,15 @@
1
- import React from "react";
2
- import { useModalForm } from "@refinedev/antd";
3
- import { type HttpError, useList } from "@refinedev/core";
4
- import { Checkbox, Form, Input, Modal, Select } from "antd";
5
- import type { Resource } from "../types";
6
- import { ResourceSelect } from "../queries";
7
- import { PROTECTED_RESOURCES } from "../list";
1
+ import React from 'react';
2
+ import { useModalForm } from '@refinedev/antd';
3
+ import { type HttpError, useList } from '@refinedev/core';
4
+ import { Checkbox, Form, Input, Modal, Select } from 'antd';
5
+ import type { Resource } from '../types';
6
+ import { ResourceSelect } from '../queries';
7
+ import { PROTECTED_RESOURCES } from '../list';
8
8
 
9
9
  type ResourceFormFields = Partial<Resource>;
10
10
 
11
11
  type Props = {
12
- action: "create" | "edit";
12
+ action: 'create' | 'edit';
13
13
  id?: number;
14
14
  onMutationSuccess?: () => void;
15
15
  onCancel?: () => void;
@@ -18,9 +18,18 @@ type Props = {
18
18
  // Pattern to detect special characters - only allows letters, numbers, and underscores
19
19
  const SPECIAL_CHAR_PATTERN = /[^a-zA-Z0-9_]/;
20
20
 
21
- export const ResourceFormModal: React.FC<Props> = ({ action, id, onCancel, onMutationSuccess }) => {
22
- const { formProps, modalProps, close } = useModalForm<Resource, HttpError, ResourceFormFields>({
23
- resource: "resource",
21
+ export const ResourceFormModal: React.FC<Props> = ({
22
+ action,
23
+ id,
24
+ onCancel,
25
+ onMutationSuccess,
26
+ }) => {
27
+ const { formProps, modalProps, close } = useModalForm<
28
+ Resource,
29
+ HttpError,
30
+ ResourceFormFields
31
+ >({
32
+ resource: 'resource',
24
33
  action,
25
34
  id,
26
35
  defaultVisible: true,
@@ -34,14 +43,14 @@ export const ResourceFormModal: React.FC<Props> = ({ action, id, onCancel, onMut
34
43
 
35
44
  // Fetch all resources for code duplication check
36
45
  const { data: resourcesData } = useList<Resource>({
37
- resource: "resource",
46
+ resource: 'resource',
38
47
  pagination: {
39
- mode: "off",
48
+ mode: 'off',
40
49
  },
41
50
  });
42
51
 
43
52
  // Check if current resource is protected (for edit mode)
44
- const currentResource = resourcesData?.data?.find(r => r.id === id);
53
+ const currentResource = resourcesData?.data?.find((r) => r.id === id);
45
54
  const isProtectedResource = currentResource
46
55
  ? PROTECTED_RESOURCES.includes(currentResource.code.toLowerCase())
47
56
  : false;
@@ -57,18 +66,18 @@ export const ResourceFormModal: React.FC<Props> = ({ action, id, onCancel, onMut
57
66
  }
58
67
  close();
59
68
  }}
60
- title={action === "create" ? "Create Resource" : "Edit Resource"}
69
+ title={action === 'create' ? 'Create Resource' : 'Edit Resource'}
61
70
  >
62
71
  <Form {...formProps} layout="vertical">
63
72
  {isProtectedResource && (
64
73
  <div
65
74
  style={{
66
- padding: "12px",
67
- marginBottom: "16px",
68
- backgroundColor: "#fff7e6",
69
- border: "1px solid #ffd591",
70
- borderRadius: "4px",
71
- color: "#d46b08",
75
+ padding: '12px',
76
+ marginBottom: '16px',
77
+ backgroundColor: '#fff7e6',
78
+ border: '1px solid #ffd591',
79
+ borderRadius: '4px',
80
+ color: '#d46b08',
72
81
  }}
73
82
  >
74
83
  ⚠️ This is a system resource and cannot be modified.
@@ -76,10 +85,11 @@ export const ResourceFormModal: React.FC<Props> = ({ action, id, onCancel, onMut
76
85
  )}
77
86
  <Form.Item
78
87
  rules={[
79
- { required: true, message: "Resource Code is required" },
88
+ { required: true, message: 'Resource Code is required' },
80
89
  {
81
90
  pattern: /^[a-zA-Z0-9_]+$/,
82
- message: "Resource Code can only contain letters, numbers and underscores",
91
+ message:
92
+ 'Resource Code can only contain letters, numbers and underscores',
83
93
  },
84
94
  {
85
95
  validator: async (_, value) => {
@@ -91,29 +101,39 @@ export const ResourceFormModal: React.FC<Props> = ({ action, id, onCancel, onMut
91
101
  const trimmedValue = value.trim();
92
102
 
93
103
  // In edit mode, if value hasn't changed, skip validation
94
- if (action === "edit" && currentResource && trimmedValue === currentResource.code) {
104
+ if (
105
+ action === 'edit' &&
106
+ currentResource &&
107
+ trimmedValue === currentResource.code
108
+ ) {
95
109
  return Promise.resolve();
96
110
  }
97
111
 
98
112
  // Check if trying to use a protected resource code
99
113
  if (PROTECTED_RESOURCES.includes(trimmedValue.toLowerCase())) {
100
114
  return Promise.reject(
101
- new Error("This resource code is reserved for system use and cannot be used."),
115
+ new Error(
116
+ 'This resource code is reserved for system use and cannot be used.',
117
+ ),
102
118
  );
103
119
  }
104
120
 
105
121
  // Check if resource code already exists (case-insensitive)
106
- const isDuplicate = existingResources.some(resource => {
122
+ const isDuplicate = existingResources.some((resource) => {
107
123
  // Skip current resource when editing
108
- if (action === "edit" && resource.id === id) {
124
+ if (action === 'edit' && resource.id === id) {
109
125
  return false;
110
126
  }
111
- return resource.code.toLowerCase() === trimmedValue.toLowerCase();
127
+ return (
128
+ resource.code.toLowerCase() === trimmedValue.toLowerCase()
129
+ );
112
130
  });
113
131
 
114
132
  if (isDuplicate) {
115
133
  return Promise.reject(
116
- new Error("Resource code already exists. Please use a different code."),
134
+ new Error(
135
+ 'Resource code already exists. Please use a different code.',
136
+ ),
117
137
  );
118
138
  }
119
139
 
@@ -126,20 +146,22 @@ export const ResourceFormModal: React.FC<Props> = ({ action, id, onCancel, onMut
126
146
  >
127
147
  <Input
128
148
  placeholder="Enter resource code (e.g., networkincidents, pageresources)"
129
- disabled={isProtectedResource || action === "edit"}
149
+ disabled={isProtectedResource || action === 'edit'}
130
150
  />
131
151
  </Form.Item>
132
152
 
133
153
  <Form.Item
134
154
  rules={[
135
- { required: true, message: "Resource name is required" },
155
+ { required: true, message: 'Resource name is required' },
136
156
  {
137
157
  validator: (_, value) => {
138
158
  if (!value || !SPECIAL_CHAR_PATTERN.test(value)) {
139
159
  return Promise.resolve();
140
160
  }
141
161
  return Promise.reject(
142
- new Error("Special characters are not allowed in resource name."),
162
+ new Error(
163
+ 'Special characters are not allowed in resource name.',
164
+ ),
143
165
  );
144
166
  },
145
167
  },
@@ -153,17 +175,23 @@ export const ResourceFormModal: React.FC<Props> = ({ action, id, onCancel, onMut
153
175
  const trimmedValue = value.trim();
154
176
 
155
177
  // In edit mode, if value hasn't changed, skip validation
156
- if (action === "edit" && currentResource && trimmedValue === currentResource.name) {
178
+ if (
179
+ action === 'edit' &&
180
+ currentResource &&
181
+ trimmedValue === currentResource.name
182
+ ) {
157
183
  return Promise.resolve();
158
184
  }
159
185
 
160
186
  // Check if resource name already exists (case-insensitive) - warning only
161
- const isDuplicate = existingResources.some(resource => {
187
+ const isDuplicate = existingResources.some((resource) => {
162
188
  // Skip current resource when editing
163
- if (action === "edit" && resource.id === id) {
189
+ if (action === 'edit' && resource.id === id) {
164
190
  return false;
165
191
  }
166
- return resource.name.toLowerCase() === trimmedValue.toLowerCase();
192
+ return (
193
+ resource.name.toLowerCase() === trimmedValue.toLowerCase()
194
+ );
167
195
  });
168
196
 
169
197
  if (isDuplicate) {
@@ -1,2 +1,2 @@
1
- export { ResourceManagementListPage } from "./list";
2
- export type { Resource } from "./types";
1
+ export { ResourceManagementListPage } from './list';
2
+ export type { Resource } from './types';
@@ -1,17 +1,33 @@
1
- import React, { useState, useMemo } from "react";
2
- import { useTable, FilterDropdown } from "@refinedev/antd";
3
- import { Table, Button, Space, Tooltip, Input } from "antd";
4
- import { EditOutlined, EyeOutlined, SearchOutlined, CodeOutlined } from "@ant-design/icons";
5
- import { getDefaultFilter, type HttpError, useGetIdentity } from "@refinedev/core";
6
- import type { Resource } from "./types";
7
- import { EditModal } from "./Components/EditModal";
8
- import { CreateModal } from "./Components/CreateModal";
9
- import { ResourceDetailDrawer } from "./Components/ResourceDetailDrawer";
10
- import { SqlModal, generateResourceSql } from "../../components/SqlModal";
1
+ import React, { useState, useMemo } from 'react';
2
+ import { useTable, FilterDropdown } from '@refinedev/antd';
3
+ import { Table, Button, Space, Tooltip, Input } from 'antd';
4
+ import {
5
+ EditOutlined,
6
+ EyeOutlined,
7
+ SearchOutlined,
8
+ CodeOutlined,
9
+ } from '@ant-design/icons';
10
+ import {
11
+ getDefaultFilter,
12
+ type HttpError,
13
+ useGetIdentity,
14
+ } from '@refinedev/core';
15
+ import type { Resource } from './types';
16
+ import { EditModal } from './Components/EditModal';
17
+ import { CreateModal } from './Components/CreateModal';
18
+ import { ResourceDetailDrawer } from './Components/ResourceDetailDrawer';
19
+ import { SqlModal, generateResourceSql } from '../../components/SqlModal';
11
20
 
12
21
  // System resources that cannot be modified (use Set for O(1) lookup performance)
13
22
  // System resources that cannot be modified
14
- export const PROTECTED_RESOURCES = ["pageresource", "resource", "page", "rolepages", "role", "roleresource"];
23
+ export const PROTECTED_RESOURCES = [
24
+ 'pageresource',
25
+ 'resource',
26
+ 'page',
27
+ 'rolepages',
28
+ 'role',
29
+ 'roleresource',
30
+ ];
15
31
 
16
32
  export const ResourceManagementListPage: React.FC = () => {
17
33
  const { data: identity } = useGetIdentity<any>();
@@ -20,33 +36,32 @@ export const ResourceManagementListPage: React.FC = () => {
20
36
  HttpError,
21
37
  Partial<Resource>
22
38
  >({
23
- resource: "resource",
39
+ resource: 'resource',
24
40
  syncWithLocation: false, // Disable URL sync to keep URL clean
25
41
  pagination: {
26
42
  pageSize: 20,
27
43
  },
28
44
  onSearch: (values: Partial<Resource>) => {
29
45
  return Object.entries(values)
30
- .filter(([, value]) => value !== undefined && value !== "")
46
+ .filter(([, value]) => value !== undefined && value !== '')
31
47
  .map(([field, value]) => ({
32
48
  field,
33
- operator: "contains" as const,
34
- value: value || "",
49
+ operator: 'contains' as const,
50
+ value: value || '',
35
51
  }));
36
52
  },
37
53
  filters: {
38
54
  initial: [
39
- { field: "code", operator: "contains", value: "" },
40
- { field: "name", operator: "contains", value: "" },
55
+ { field: 'code', operator: 'contains', value: '' },
56
+ { field: 'name', operator: 'contains', value: '' },
41
57
  ],
42
- defaultBehavior: "merge",
43
- },
44
- sorters: {
58
+ defaultBehavior: 'merge',
45
59
  },
60
+ sorters: {},
46
61
  });
47
62
 
48
63
  const [showModal, setShowModal] = useState<{
49
- type: "edit" | "create" | null;
64
+ type: 'edit' | 'create' | null;
50
65
  id: number | null;
51
66
  }>({
52
67
  type: null,
@@ -59,18 +74,21 @@ export const ResourceManagementListPage: React.FC = () => {
59
74
  open: boolean;
60
75
  title: string;
61
76
  sql: string;
62
- }>({ open: false, title: "", sql: "" });
77
+ }>({ open: false, title: '', sql: '' });
63
78
 
64
79
  const handleShowSql = (record: Resource) => {
65
- const operator = { authorId: identity?.userid, authorName: identity?.username };
80
+ const operator = {
81
+ authorId: identity?.userid,
82
+ authorName: identity?.username,
83
+ };
66
84
  const sql = generateResourceSql(record, operator);
67
85
  setSqlModal({ open: true, title: `SQL — Resource: ${record.code}`, sql });
68
86
  };
69
87
 
70
88
  // fix for ant design filter dropdown contains operator
71
- filters.map(filter => {
72
- if (filter.operator === "contains" && Array.isArray(filter.value)) {
73
- filter.value = filter.value.join(",");
89
+ filters.map((filter) => {
90
+ if (filter.operator === 'contains' && Array.isArray(filter.value)) {
91
+ filter.value = filter.value.join(',');
74
92
  }
75
93
  });
76
94
 
@@ -80,7 +98,10 @@ export const ResourceManagementListPage: React.FC = () => {
80
98
  const dataSource = tableProps.dataSource || [];
81
99
  const map = new Map<number, boolean>();
82
100
  dataSource.forEach((record: Resource) => {
83
- map.set(record.id, PROTECTED_RESOURCES.includes(record.code.toLowerCase()));
101
+ map.set(
102
+ record.id,
103
+ PROTECTED_RESOURCES.includes(record.code.toLowerCase()),
104
+ );
84
105
  });
85
106
  return map;
86
107
  }, [tableProps.dataSource]);
@@ -101,7 +122,7 @@ export const ResourceManagementListPage: React.FC = () => {
101
122
  type="primary"
102
123
  onClick={() =>
103
124
  setShowModal({
104
- type: "create",
125
+ type: 'create',
105
126
  id: null,
106
127
  })
107
128
  }
@@ -114,8 +135,8 @@ export const ResourceManagementListPage: React.FC = () => {
114
135
  dataIndex="code"
115
136
  title="Code"
116
137
  sorter={(a: Resource, b: Resource) => a.code.localeCompare(b.code)}
117
- defaultFilteredValue={getDefaultFilter("code", filters, "contains")}
118
- filterDropdown={props => (
138
+ defaultFilteredValue={getDefaultFilter('code', filters, 'contains')}
139
+ filterDropdown={(props) => (
119
140
  <FilterDropdown
120
141
  {...props}
121
142
  clearFilters={() => {
@@ -132,8 +153,8 @@ export const ResourceManagementListPage: React.FC = () => {
132
153
  dataIndex="name"
133
154
  title="Name"
134
155
  sorter={(a: Resource, b: Resource) => a.name.localeCompare(b.name)}
135
- defaultFilteredValue={getDefaultFilter("name", filters, "contains")}
136
- filterDropdown={props => (
156
+ defaultFilteredValue={getDefaultFilter('name', filters, 'contains')}
157
+ filterDropdown={(props) => (
137
158
  <FilterDropdown
138
159
  {...props}
139
160
  clearFilters={() => {
@@ -150,7 +171,9 @@ export const ResourceManagementListPage: React.FC = () => {
150
171
  <Table.Column
151
172
  dataIndex="creator"
152
173
  title="Creator"
153
- sorter={(a: Resource, b: Resource) => (a.creator || "").localeCompare(b.creator || "")}
174
+ sorter={(a: Resource, b: Resource) =>
175
+ (a.creator || '').localeCompare(b.creator || '')
176
+ }
154
177
  />
155
178
  <Table.Column
156
179
  title="Actions"
@@ -166,13 +189,21 @@ export const ResourceManagementListPage: React.FC = () => {
166
189
  onClick={() => setDrawerResource(record)}
167
190
  />
168
191
  </Tooltip>
169
- <Tooltip title={isProtected ? "This is a system resource and cannot be modified" : "Edit"}>
192
+ <Tooltip
193
+ title={
194
+ isProtected
195
+ ? 'This is a system resource and cannot be modified'
196
+ : 'Edit'
197
+ }
198
+ >
170
199
  <Button
171
200
  type="default"
172
201
  size="small"
173
202
  icon={<EditOutlined />}
174
203
  disabled={isProtected}
175
- onClick={() => setShowModal({ type: "edit", id: record.id })}
204
+ onClick={() =>
205
+ setShowModal({ type: 'edit', id: record.id })
206
+ }
176
207
  />
177
208
  </Tooltip>
178
209
  <Tooltip title="Generate SQL">
@@ -188,11 +219,18 @@ export const ResourceManagementListPage: React.FC = () => {
188
219
  }}
189
220
  />
190
221
  </Table>
191
- {showModal.type === "edit" && showModal.id && (
192
- <EditModal id={showModal.id} onClose={handleModalClose} onSuccess={handleModalSuccess} />
222
+ {showModal.type === 'edit' && showModal.id && (
223
+ <EditModal
224
+ id={showModal.id}
225
+ onClose={handleModalClose}
226
+ onSuccess={handleModalSuccess}
227
+ />
193
228
  )}
194
- {showModal.type === "create" && (
195
- <CreateModal onClose={handleModalClose} onSuccess={handleModalSuccess} />
229
+ {showModal.type === 'create' && (
230
+ <CreateModal
231
+ onClose={handleModalClose}
232
+ onSuccess={handleModalSuccess}
233
+ />
196
234
  )}
197
235
  {drawerResource && (
198
236
  <ResourceDetailDrawer
@@ -203,7 +241,7 @@ export const ResourceManagementListPage: React.FC = () => {
203
241
  )}
204
242
  <SqlModal
205
243
  open={sqlModal.open}
206
- onClose={() => setSqlModal({ open: false, title: "", sql: "" })}
244
+ onClose={() => setSqlModal({ open: false, title: '', sql: '' })}
207
245
  title={sqlModal.title}
208
246
  sql={sqlModal.sql}
209
247
  />
@@ -1,7 +1,7 @@
1
- import React from "react";
1
+ import React from 'react';
2
2
 
3
- import { RoleFormModal } from "./modal";
4
- import type { RolePageTreeNode } from "../types";
3
+ import { RoleFormModal } from './modal';
4
+ import type { RolePageTreeNode } from '../types';
5
5
 
6
6
  interface CreateModalProps {
7
7
  onClose: () => void;
@@ -1,7 +1,7 @@
1
- import React from "react";
1
+ import React from 'react';
2
2
 
3
- import { RoleFormModal } from "./modal";
4
- import type { RolePageTreeNode } from "../types";
3
+ import { RoleFormModal } from './modal';
4
+ import type { RolePageTreeNode } from '../types';
5
5
 
6
6
  type RolePermissionSummary = {
7
7
  pageIds: number[];
@@ -25,7 +25,7 @@ export const EditModal: React.FC<EditModalProps> = ({
25
25
  rolePermissionSummary,
26
26
  }) => {
27
27
  const normalizedPageIds = rolePermissionSummary?.pageIds?.map((pageId) =>
28
- String(pageId)
28
+ String(pageId),
29
29
  );
30
30
 
31
31
  const handleMutationSuccess = () => {