@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
@@ -1,16 +1,16 @@
1
- import React from "react";
1
+ import React from 'react';
2
2
 
3
- import { TagField } from "@refinedev/antd";
4
- import { useShow } from "@refinedev/core";
3
+ import { TagField } from '@refinedev/antd';
4
+ import { useShow } from '@refinedev/core';
5
5
 
6
- import { CloseOutlined } from "@ant-design/icons";
7
- import { Button, Drawer, Space, Tag, Typography } from "antd";
8
- import dayjs from "dayjs";
6
+ import { CloseOutlined } from '@ant-design/icons';
7
+ import { Button, Drawer, Space, Tag, Typography } from 'antd';
8
+ import dayjs from 'dayjs';
9
9
 
10
- import styles from "@/styles/show-drawer.module.css";
11
- import { User } from "@/types";
10
+ import styles from '@/styles/show-drawer.module.css';
11
+ import { User } from '@/types';
12
12
 
13
- import { UserSelect } from "../queries";
13
+ import { UserSelect } from '../queries';
14
14
 
15
15
  const { Title, Text } = Typography;
16
16
 
@@ -21,7 +21,7 @@ interface ShowDrawerProps {
21
21
 
22
22
  export const ShowDrawer: React.FC<ShowDrawerProps> = ({ id, onClose }) => {
23
23
  const { query } = useShow<User>({
24
- resource: "user",
24
+ resource: 'user',
25
25
  id,
26
26
  meta: {
27
27
  select: UserSelect,
@@ -56,8 +56,8 @@ export const ShowDrawer: React.FC<ShowDrawerProps> = ({ id, onClose }) => {
56
56
  loading={isLoading}
57
57
  width={756}
58
58
  styles={{
59
- body: { background: "#f5f5f5", padding: 0 },
60
- header: { display: "none" },
59
+ body: { background: '#f5f5f5', padding: 0 },
60
+ header: { display: 'none' },
61
61
  }}
62
62
  >
63
63
  <div className={styles.header}>
@@ -74,64 +74,69 @@ export const ShowDrawer: React.FC<ShowDrawerProps> = ({ id, onClose }) => {
74
74
  </div>
75
75
  <div key="username">
76
76
  <Title level={5}>User Name</Title>
77
- <Text>{username || "-"}</Text>
77
+ <Text>{username || '-'}</Text>
78
78
  </div>
79
79
  <div key="roles">
80
80
  <Title level={5}>Roles</Title>
81
81
  <Space>
82
- {(Array.isArray(roles) ? roles : JSON.parse(roles || "[]"))?.map?.(
82
+ {(Array.isArray(roles) ? roles : JSON.parse(roles || '[]'))?.map?.(
83
83
  (v: string) => (
84
84
  <TagField key={v} value={String(v)} />
85
- )
85
+ ),
86
86
  )}
87
87
  </Space>
88
88
  </div>
89
89
  <div key="isApiKey">
90
90
  <Title level={5}>Is API Key</Title>
91
- <Tag color={isApiKey ? "blue" : "default"}>
92
- {isApiKey ? "Yes" : "No"}
91
+ <Tag color={isApiKey ? 'blue' : 'default'}>
92
+ {isApiKey ? 'Yes' : 'No'}
93
93
  </Tag>
94
94
  </div>
95
95
  {isApiKey && (
96
96
  <>
97
97
  <div key="apiKey">
98
98
  <Title level={5}>API Key</Title>
99
- <Text copyable={{ text: apiKey || "" }} style={{ fontFamily: "monospace" }}>
100
- {apiKey || "-"}
99
+ <Text
100
+ copyable={{ text: apiKey || '' }}
101
+ style={{ fontFamily: 'monospace' }}
102
+ >
103
+ {apiKey || '-'}
101
104
  </Text>
102
105
  </div>
103
106
  <div key="description">
104
107
  <Title level={5}>Description</Title>
105
- <Text>{description || "-"}</Text>
108
+ <Text>{description || '-'}</Text>
106
109
  </div>
107
110
  <div key="lastUsedAt">
108
111
  <Title level={5}>Last Used At</Title>
109
112
  <Text>
110
- {lastUsedAt ? dayjs(lastUsedAt).format("YYYY-MM-DD HH:mm:ss") : "-"}
113
+ {lastUsedAt
114
+ ? dayjs(lastUsedAt).format('YYYY-MM-DD HH:mm:ss')
115
+ : '-'}
111
116
  </Text>
112
117
  </div>
113
118
  </>
114
119
  )}
115
120
  <div key="isActive">
116
121
  <Title level={5}>Is Active</Title>
117
- <Tag color={isActive ? "green" : "red"}>
118
- {isActive ? "Active" : "Inactive"}
122
+ <Tag color={isActive ? 'green' : 'red'}>
123
+ {isActive ? 'Active' : 'Inactive'}
119
124
  </Tag>
120
125
  </div>
121
126
  <div key="creator">
122
127
  <Title level={5}>Creator</Title>
123
- <Text>{creator || "-"}</Text>
128
+ <Text>{creator || '-'}</Text>
124
129
  </div>
125
130
  <div key="createdAt">
126
131
  <Title level={5}>Created At</Title>
127
132
  <Text>
128
- {createdAt ? dayjs(createdAt).format("YYYY-MM-DD HH:mm:ss") : "-"}
133
+ {createdAt ? dayjs(createdAt).format('YYYY-MM-DD HH:mm:ss') : '-'}
129
134
  </Text>
130
135
  </div>
131
136
  <div key="updatedAt">
132
137
  <Title level={5}>Updated At</Title>
133
138
  <Text>
134
- {updatedAt ? dayjs(updatedAt).format("YYYY-MM-DD HH:mm:ss") : "-"}
139
+ {updatedAt ? dayjs(updatedAt).format('YYYY-MM-DD HH:mm:ss') : '-'}
135
140
  </Text>
136
141
  </div>
137
142
  </div>
@@ -1 +1 @@
1
- export * from "./list";
1
+ export * from './list';
@@ -1,4 +1,4 @@
1
- import React, { type PropsWithChildren, useState } from "react";
1
+ import React, { type PropsWithChildren, useState } from 'react';
2
2
 
3
3
  import {
4
4
  DeleteButton,
@@ -7,48 +7,52 @@ import {
7
7
  List,
8
8
  ShowButton,
9
9
  useTable,
10
- } from "@refinedev/antd";
11
- import { getDefaultFilter, type HttpError, useGetIdentity } from "@refinedev/core";
10
+ } from '@refinedev/antd';
11
+ import {
12
+ getDefaultFilter,
13
+ type HttpError,
14
+ useGetIdentity,
15
+ } from '@refinedev/core';
12
16
 
13
- import { PlusOutlined, CodeOutlined } from "@ant-design/icons";
14
- import { Button, Form, Input, Select, Space, Table, Tag, Tooltip } from "antd";
15
- import debounce from "lodash/debounce";
17
+ import { PlusOutlined, CodeOutlined } from '@ant-design/icons';
18
+ import { Button, Form, Input, Select, Space, Table, Tag, Tooltip } from 'antd';
19
+ import debounce from 'lodash/debounce';
16
20
 
17
21
  import {
18
22
  CustomAvatar,
19
23
  PaginationTotal,
20
24
  RoleStatusTag,
21
25
  Text,
22
- } from "@/components";
23
- import { useRoles } from "@/hooks/useRoles";
24
- import { User } from "@/types";
26
+ } from '@/components';
27
+ import { useRoles } from '@/hooks/useRoles';
28
+ import { User } from '@/types';
25
29
 
26
- import { CreateModal } from "./components/create-modal";
27
- import { EditModal } from "./components/edit-modal";
28
- import { ShowDrawer } from "./components/show-drawer";
29
- import { LIST_CONTENT_PROPS } from "@/constants/layout";
30
- import { SqlModal, generateUserSql } from "../../components/SqlModal";
30
+ import { CreateModal } from './components/create-modal';
31
+ import { EditModal } from './components/edit-modal';
32
+ import { ShowDrawer } from './components/show-drawer';
33
+ import { LIST_CONTENT_PROPS } from '@/constants/layout';
34
+ import { SqlModal, generateUserSql } from '../../components/SqlModal';
31
35
 
32
36
  export const UserListPage: React.FC<PropsWithChildren> = ({ children }) => {
33
37
  const [form] = Form.useForm();
34
38
  const { data: identity } = useGetIdentity<any>();
35
-
39
+
36
40
  // Fetch roles from backend using custom hook
37
41
  const { roleOptions, loading: rolesLoading } = useRoles();
38
-
42
+
39
43
  // We want to always parse the query string even when syncWithLocation is
40
44
  // deactivated, for hotlinking to work properly.
41
45
  // 转换布尔字段过滤器的值(从字符串 "Yes"/"No" 转为 boolean)
42
46
  const transformBooleanFilters = (filters: any[]) => {
43
47
  return filters.map((filter) => {
44
48
  if (
45
- (filter.field === "isApiKey" || filter.field === "isActive") &&
46
- filter.operator === "eq"
49
+ (filter.field === 'isApiKey' || filter.field === 'isActive') &&
50
+ filter.operator === 'eq'
47
51
  ) {
48
52
  let boolValue: boolean | undefined;
49
- if (filter.value === "Yes" || filter.value === "Active") {
53
+ if (filter.value === 'Yes' || filter.value === 'Active') {
50
54
  boolValue = true;
51
- } else if (filter.value === "No" || filter.value === "Inactive") {
55
+ } else if (filter.value === 'No' || filter.value === 'Inactive') {
52
56
  boolValue = false;
53
57
  }
54
58
  return { ...filter, value: boolValue };
@@ -64,26 +68,26 @@ export const UserListPage: React.FC<PropsWithChildren> = ({ children }) => {
64
68
  sorters,
65
69
  tableQuery: tableQueryResult,
66
70
  } = useTable<User, HttpError, Partial<User>>({
67
- resource: "user",
71
+ resource: 'user',
68
72
  pagination: {
69
73
  pageSize: 20,
70
74
  },
71
75
  onSearch: (values: Partial<User>) => {
72
76
  return Object.entries(values)
73
- .filter(([, value]) => value !== undefined && value !== "")
77
+ .filter(([, value]) => value !== undefined && value !== '')
74
78
  .map(([field, value]) => ({
75
79
  field,
76
- operator: "contains" as const,
77
- value: value || "",
80
+ operator: 'contains' as const,
81
+ value: value || '',
78
82
  }));
79
83
  },
80
84
  // https://refine.dev/docs/ui-integrations/ant-design/components/filter-dropdown/#example
81
85
  filters: {
82
86
  initial: [
83
- { field: "username", operator: "contains", value: "" },
84
- { field: "roles", operator: "contains", value: "" },
87
+ { field: 'username', operator: 'contains', value: '' },
88
+ { field: 'roles', operator: 'contains', value: '' },
85
89
  ],
86
- defaultBehavior: "merge",
90
+ defaultBehavior: 'merge',
87
91
  },
88
92
  sorters: {
89
93
  initial: [],
@@ -104,14 +108,14 @@ export const UserListPage: React.FC<PropsWithChildren> = ({ children }) => {
104
108
 
105
109
  // fix for ant design filter dropdown contains operator
106
110
  filters.map((filter) => {
107
- if (filter.operator === "contains" && Array.isArray(filter.value)) {
108
- filter.value = filter.value.join(",");
111
+ if (filter.operator === 'contains' && Array.isArray(filter.value)) {
112
+ filter.value = filter.value.join(',');
109
113
  }
110
114
  });
111
115
 
112
116
  // 修改modal状态类型
113
117
  const [showModal, setShowModal] = useState<{
114
- type: "show" | "edit" | "create" | null;
118
+ type: 'show' | 'edit' | 'create' | null;
115
119
  id: number | null;
116
120
  }>({
117
121
  type: null,
@@ -122,10 +126,13 @@ export const UserListPage: React.FC<PropsWithChildren> = ({ children }) => {
122
126
  open: boolean;
123
127
  title: string;
124
128
  sql: string;
125
- }>({ open: false, title: "", sql: "" });
129
+ }>({ open: false, title: '', sql: '' });
126
130
 
127
131
  const handleShowSql = (record: any) => {
128
- const operator = { authorId: identity?.userid, authorName: identity?.username };
132
+ const operator = {
133
+ authorId: identity?.userid,
134
+ authorName: identity?.username,
135
+ };
129
136
  const sql = generateUserSql(record, operator);
130
137
  setSqlModal({ open: true, title: `SQL — User: ${record.userid}`, sql });
131
138
  };
@@ -145,7 +152,7 @@ export const UserListPage: React.FC<PropsWithChildren> = ({ children }) => {
145
152
  <Button
146
153
  type="primary"
147
154
  icon={<PlusOutlined />}
148
- onClick={() => setShowModal({ type: "create", id: null })}
155
+ onClick={() => setShowModal({ type: 'create', id: null })}
149
156
  >
150
157
  Add User
151
158
  </Button>
@@ -170,10 +177,10 @@ export const UserListPage: React.FC<PropsWithChildren> = ({ children }) => {
170
177
  <Space>
171
178
  <CustomAvatar
172
179
  shape="square"
173
- name={record.userid || ""}
180
+ name={record.userid || ''}
174
181
  src={`https://rhrc.woa.com/photo/150/${record.userid}.png`}
175
182
  />
176
- <Text style={{ whiteSpace: "nowrap" }}>{record.userid}</Text>
183
+ <Text style={{ whiteSpace: 'nowrap' }}>{record.userid}</Text>
177
184
  </Space>
178
185
  );
179
186
  }}
@@ -193,9 +200,9 @@ export const UserListPage: React.FC<PropsWithChildren> = ({ children }) => {
193
200
  </FilterDropdown>
194
201
  )}
195
202
  defaultFilteredValue={getDefaultFilter(
196
- "username",
203
+ 'username',
197
204
  filters,
198
- "contains"
205
+ 'contains',
199
206
  )}
200
207
  /*filterIcon={<SearchOutlined />}*/
201
208
  />
@@ -203,9 +210,9 @@ export const UserListPage: React.FC<PropsWithChildren> = ({ children }) => {
203
210
  dataIndex="roles"
204
211
  title="Roles"
205
212
  defaultFilteredValue={getDefaultFilter(
206
- "roles",
213
+ 'roles',
207
214
  filters,
208
- "contains"
215
+ 'contains',
209
216
  )}
210
217
  filterDropdown={(props) => (
211
218
  <FilterDropdown
@@ -217,30 +224,28 @@ export const UserListPage: React.FC<PropsWithChildren> = ({ children }) => {
217
224
  >
218
225
  <Select
219
226
  options={roleOptions}
220
- style={{ width: "150px" }}
227
+ style={{ width: '150px' }}
221
228
  placeholder="Select Role"
222
229
  loading={rolesLoading}
223
230
  />
224
231
  </FilterDropdown>
225
232
  )}
226
233
  render={(value) => {
227
- return JSON.parse(value || "[]").map(
228
- (role: string) => (
229
- <RoleStatusTag key={role} role={role} />
230
- )
231
- );
234
+ return JSON.parse(value || '[]').map((role: string) => (
235
+ <RoleStatusTag key={role} role={role} />
236
+ ));
232
237
  }}
233
238
  />
234
239
  <Table.Column
235
240
  dataIndex="isApiKey"
236
241
  title="API Key"
237
- defaultFilteredValue={getDefaultFilter("isApiKey", filters, "eq")}
242
+ defaultFilteredValue={getDefaultFilter('isApiKey', filters, 'eq')}
238
243
  filterDropdown={(props) => (
239
244
  <FilterDropdown
240
245
  {...props}
241
246
  mapValue={(selectedKeys) => {
242
- if (selectedKeys?.[0] === "Yes") return true;
243
- if (selectedKeys?.[0] === "No") return false;
247
+ if (selectedKeys?.[0] === 'Yes') return true;
248
+ if (selectedKeys?.[0] === 'No') return false;
244
249
  return selectedKeys;
245
250
  }}
246
251
  clearFilters={() => {
@@ -249,32 +254,32 @@ export const UserListPage: React.FC<PropsWithChildren> = ({ children }) => {
249
254
  }}
250
255
  >
251
256
  <Select
252
- style={{ width: "120px" }}
257
+ style={{ width: '120px' }}
253
258
  placeholder="Select"
254
259
  allowClear
255
260
  options={[
256
- { label: "Yes", value: "Yes" },
257
- { label: "No", value: "No" },
261
+ { label: 'Yes', value: 'Yes' },
262
+ { label: 'No', value: 'No' },
258
263
  ]}
259
264
  />
260
265
  </FilterDropdown>
261
266
  )}
262
267
  render={(value) => (
263
- <Tag color={value ? "blue" : "default"}>
264
- {value ? "Yes" : "No"}
268
+ <Tag color={value ? 'blue' : 'default'}>
269
+ {value ? 'Yes' : 'No'}
265
270
  </Tag>
266
271
  )}
267
272
  />
268
273
  <Table.Column
269
274
  dataIndex="isActive"
270
275
  title="Active"
271
- defaultFilteredValue={getDefaultFilter("isActive", filters, "eq")}
276
+ defaultFilteredValue={getDefaultFilter('isActive', filters, 'eq')}
272
277
  filterDropdown={(props) => (
273
278
  <FilterDropdown
274
279
  {...props}
275
280
  mapValue={(selectedKeys) => {
276
- if (selectedKeys?.[0] === "Active") return true;
277
- if (selectedKeys?.[0] === "Inactive") return false;
281
+ if (selectedKeys?.[0] === 'Active') return true;
282
+ if (selectedKeys?.[0] === 'Inactive') return false;
278
283
  return selectedKeys;
279
284
  }}
280
285
  clearFilters={() => {
@@ -283,19 +288,19 @@ export const UserListPage: React.FC<PropsWithChildren> = ({ children }) => {
283
288
  }}
284
289
  >
285
290
  <Select
286
- style={{ width: "120px" }}
291
+ style={{ width: '120px' }}
287
292
  placeholder="Select"
288
293
  allowClear
289
294
  options={[
290
- { label: "Active", value: "Active" },
291
- { label: "Inactive", value: "Inactive" },
295
+ { label: 'Active', value: 'Active' },
296
+ { label: 'Inactive', value: 'Inactive' },
292
297
  ]}
293
298
  />
294
299
  </FilterDropdown>
295
300
  )}
296
301
  render={(value) => (
297
- <Tag color={value ? "green" : "red"}>
298
- {value ? "Active" : "Inactive"}
302
+ <Tag color={value ? 'green' : 'red'}>
303
+ {value ? 'Active' : 'Inactive'}
299
304
  </Tag>
300
305
  )}
301
306
  />
@@ -309,24 +314,24 @@ export const UserListPage: React.FC<PropsWithChildren> = ({ children }) => {
309
314
  <ShowButton
310
315
  hideText
311
316
  size="small"
312
- style={{ backgroundColor: "transparent" }}
317
+ style={{ backgroundColor: 'transparent' }}
313
318
  onClick={() =>
314
- setShowModal({ type: "show", id: record.id })
319
+ setShowModal({ type: 'show', id: record.id })
315
320
  }
316
321
  />
317
322
  <EditButton
318
323
  hideText
319
324
  size="small"
320
- style={{ backgroundColor: "transparent" }}
325
+ style={{ backgroundColor: 'transparent' }}
321
326
  onClick={() =>
322
- setShowModal({ type: "edit", id: record.id })
327
+ setShowModal({ type: 'edit', id: record.id })
323
328
  }
324
329
  />
325
330
  <Tooltip title="Generate SQL">
326
331
  <Button
327
332
  size="small"
328
333
  icon={<CodeOutlined />}
329
- style={{ backgroundColor: "transparent" }}
334
+ style={{ backgroundColor: 'transparent' }}
330
335
  onClick={() => handleShowSql(record)}
331
336
  />
332
337
  </Tooltip>
@@ -334,7 +339,7 @@ export const UserListPage: React.FC<PropsWithChildren> = ({ children }) => {
334
339
  hideText
335
340
  size="small"
336
341
  recordItemId={record.id}
337
- style={{ backgroundColor: "transparent" }}
342
+ style={{ backgroundColor: 'transparent' }}
338
343
  />
339
344
  </Space>
340
345
  );
@@ -344,24 +349,24 @@ export const UserListPage: React.FC<PropsWithChildren> = ({ children }) => {
344
349
  </List>
345
350
 
346
351
  {/* Show Drawer */}
347
- {showModal.type === "show" && showModal.id && (
352
+ {showModal.type === 'show' && showModal.id && (
348
353
  <ShowDrawer id={showModal.id} onClose={handleModalClose} />
349
354
  )}
350
355
 
351
356
  {/* Edit Modal */}
352
- {showModal.type === "edit" && showModal.id && (
357
+ {showModal.type === 'edit' && showModal.id && (
353
358
  <EditModal id={showModal.id} onClose={handleModalClose} />
354
359
  )}
355
360
 
356
361
  {/* Create Modal */}
357
- {showModal.type === "create" && (
362
+ {showModal.type === 'create' && (
358
363
  <CreateModal onClose={handleModalClose} />
359
364
  )}
360
365
 
361
366
  {/* SQL Modal */}
362
367
  <SqlModal
363
368
  open={sqlModal.open}
364
- onClose={() => setSqlModal({ open: false, title: "", sql: "" })}
369
+ onClose={() => setSqlModal({ open: false, title: '', sql: '' })}
365
370
  title={sqlModal.title}
366
371
  sql={sqlModal.sql}
367
372
  />
@@ -2,4 +2,4 @@
2
2
  // allows you to do things like:
3
3
  // expect(element).toHaveTextContent(/react/i)
4
4
  // learn more: https://github.com/testing-library/jest-dom
5
- import "@testing-library/jest-dom";
5
+ import '@testing-library/jest-dom';
@@ -1 +1 @@
1
- export type { Audit as AuditLog } from "generated/types/prisma.types";
1
+ export type { Audit as AuditLog } from 'generated/types/prisma.types';
@@ -1,3 +1,3 @@
1
- export * from "./user";
2
- export * from "./role";
3
- export * from "./audit-log";
1
+ export * from './user';
2
+ export * from './role';
3
+ export * from './audit-log';
@@ -1,4 +1,4 @@
1
- import type { Role as PrismaRole } from "generated/types/prisma.types";
1
+ import type { Role as PrismaRole } from 'generated/types/prisma.types';
2
2
 
3
3
  // Extend Prisma Role with virtual fields used in role management forms
4
4
  export type Role = PrismaRole & {
@@ -1 +1 @@
1
- export type { User } from "generated/types/prisma.types";
1
+ export type { User } from 'generated/types/prisma.types';
@@ -1,31 +1,48 @@
1
- import react from "@vitejs/plugin-react";
2
- import tsconfigPaths from "vite-tsconfig-paths";
3
- import { defineConfig } from "vite";
1
+ import react from '@vitejs/plugin-react';
2
+ import { defineConfig, loadEnv } from 'vite';
3
+ import tsconfigPaths from 'vite-tsconfig-paths';
4
+ import { devShellPlugin } from './src/plugins/devShellPlugin';
4
5
 
5
- export default defineConfig({
6
- plugins: [tsconfigPaths({ root: __dirname }), react()],
7
- define: {
8
- "process.env": {},
9
- "process.argv": [],
10
- "process.version": JSON.stringify(""),
11
- "process.platform": JSON.stringify(""),
12
- },
13
- optimizeDeps: {
14
- esbuildOptions: {
15
- loader: { ".js": "jsx" },
6
+ export default defineConfig(({ mode }) => {
7
+ const env = loadEnv(mode, process.cwd(), '');
8
+
9
+ const backendUrl = env.VITE_BACKEND_URL;
10
+ const proxyConfig = backendUrl
11
+ ? {
12
+ '/api': {
13
+ target: backendUrl,
14
+ changeOrigin: true,
15
+ secure: false,
16
+ },
17
+ }
18
+ : undefined;
19
+
20
+ return {
21
+ plugins: [tsconfigPaths({ root: __dirname }), react(), devShellPlugin()],
22
+ define: {
23
+ 'process.env': {},
24
+ 'process.argv': [],
25
+ 'process.version': JSON.stringify(''),
26
+ 'process.platform': JSON.stringify(''),
27
+ },
28
+ optimizeDeps: {
29
+ esbuildOptions: {
30
+ loader: { '.js': 'jsx' },
31
+ },
32
+ },
33
+ server: {
34
+ host: true,
35
+ proxy: proxyConfig,
16
36
  },
17
- },
18
- server: {
19
- host: true,
20
- },
21
- build: {
22
- sourcemap: true,
23
- rollupOptions: {
24
- output: {
25
- manualChunks: {
26
- antd: ["antd"],
37
+ build: {
38
+ sourcemap: true,
39
+ rollupOptions: {
40
+ output: {
41
+ manualChunks: {
42
+ antd: ['antd'],
43
+ },
27
44
  },
28
45
  },
29
46
  },
30
- },
47
+ };
31
48
  });