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