@gadmin2n/schematics 0.0.68 → 0.0.70
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +2 -2
- 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/.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/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
package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useUserPageAccess.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { useMemo, useState, useEffect, useRef, useCallback } from
|
|
2
|
-
import { customRequest } from
|
|
3
|
-
import type { Role } from
|
|
1
|
+
import { useMemo, useState, useEffect, useRef, useCallback } from 'react';
|
|
2
|
+
import { customRequest } from 'helpers/http';
|
|
3
|
+
import type { Role } from 'types/role';
|
|
4
4
|
|
|
5
|
-
const RoleCacheKey =
|
|
6
|
-
const PagesCacheKey =
|
|
7
|
-
const RolePagesCacheKey =
|
|
8
|
-
const RolesDataCacheKey =
|
|
5
|
+
const RoleCacheKey = 'oiterproles';
|
|
6
|
+
const PagesCacheKey = 'oiterpages';
|
|
7
|
+
const RolePagesCacheKey = 'oiterprolepages';
|
|
8
|
+
const RolesDataCacheKey = 'oiterprolesdatacache';
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
11
|
* Base Hook: User Page Access Data
|
|
@@ -84,30 +84,30 @@ function writeCache(key: string, value: unknown): void {
|
|
|
84
84
|
export const useUserPageAccess = (): UseUserPageAccessResult => {
|
|
85
85
|
// Role names — initialise from cache so first render is non-empty
|
|
86
86
|
const [roleNames, setRoleNames] = useState<string[]>(
|
|
87
|
-
() => readCache<string[]>(RoleCacheKey) ?? []
|
|
87
|
+
() => readCache<string[]>(RoleCacheKey) ?? [],
|
|
88
88
|
);
|
|
89
89
|
// isRoleLoading only stays true while we wait for the live /userinfo response
|
|
90
90
|
const [isRoleLoading, setIsRoleLoading] = useState(true);
|
|
91
91
|
|
|
92
92
|
// Data states — initialise from cache for instant first render
|
|
93
|
-
const [rolesData, setRolesData] = useState<Role[] | null>(
|
|
94
|
-
|
|
93
|
+
const [rolesData, setRolesData] = useState<Role[] | null>(() =>
|
|
94
|
+
readCache<Role[]>(RolesDataCacheKey),
|
|
95
95
|
);
|
|
96
|
-
const [rolePagesData, setRolePagesData] = useState<RolePage[] | null>(
|
|
97
|
-
|
|
96
|
+
const [rolePagesData, setRolePagesData] = useState<RolePage[] | null>(() =>
|
|
97
|
+
readCache<RolePage[]>(RolePagesCacheKey),
|
|
98
98
|
);
|
|
99
|
-
const [pagesData, setPagesData] = useState<Page[] | null>(
|
|
100
|
-
|
|
99
|
+
const [pagesData, setPagesData] = useState<Page[] | null>(() =>
|
|
100
|
+
readCache<Page[]>(PagesCacheKey),
|
|
101
101
|
);
|
|
102
102
|
|
|
103
103
|
// Track previous roles to detect changes
|
|
104
|
-
const prevRolesRef = useRef<string>(
|
|
104
|
+
const prevRolesRef = useRef<string>('');
|
|
105
105
|
|
|
106
106
|
// Function to update roles in state and sessionStorage
|
|
107
107
|
const updateRoles = useCallback((newRoles: string[]) => {
|
|
108
108
|
const rolesKey = JSON.stringify(newRoles.sort());
|
|
109
109
|
if (rolesKey !== prevRolesRef.current) {
|
|
110
|
-
console.log(
|
|
110
|
+
console.log('[useUserPageAccess] Roles changed:', newRoles);
|
|
111
111
|
prevRolesRef.current = rolesKey;
|
|
112
112
|
setRoleNames(newRoles);
|
|
113
113
|
writeCache(RoleCacheKey, newRoles);
|
|
@@ -118,13 +118,16 @@ export const useUserPageAccess = (): UseUserPageAccessResult => {
|
|
|
118
118
|
useEffect(() => {
|
|
119
119
|
const fetchRolesFromBackend = async () => {
|
|
120
120
|
try {
|
|
121
|
-
const res = await customRequest<any>(
|
|
121
|
+
const res = await customRequest<any>('userinfo', 'GET', {});
|
|
122
122
|
const roles = res?.configPerms?.roles;
|
|
123
123
|
if (roles && Array.isArray(roles)) {
|
|
124
124
|
updateRoles(roles as string[]);
|
|
125
125
|
}
|
|
126
126
|
} catch (error) {
|
|
127
|
-
console.error(
|
|
127
|
+
console.error(
|
|
128
|
+
'[useUserPageAccess] Failed to fetch roles from backend:',
|
|
129
|
+
error,
|
|
130
|
+
);
|
|
128
131
|
// Fallback to sessionStorage if backend request fails
|
|
129
132
|
try {
|
|
130
133
|
const cached = readCache<string[]>(RoleCacheKey);
|
|
@@ -132,7 +135,7 @@ export const useUserPageAccess = (): UseUserPageAccessResult => {
|
|
|
132
135
|
updateRoles(cached);
|
|
133
136
|
}
|
|
134
137
|
} catch (e) {
|
|
135
|
-
console.error(
|
|
138
|
+
console.error('[useUserPageAccess] Failed to parse cached roles:', e);
|
|
136
139
|
}
|
|
137
140
|
} finally {
|
|
138
141
|
setIsRoleLoading(false);
|
|
@@ -146,21 +149,24 @@ export const useUserPageAccess = (): UseUserPageAccessResult => {
|
|
|
146
149
|
useEffect(() => {
|
|
147
150
|
const fetchPages = async () => {
|
|
148
151
|
try {
|
|
149
|
-
const res = await customRequest<any>(
|
|
152
|
+
const res = await customRequest<any>('page/findMany', 'post', {});
|
|
150
153
|
const pages = res?.data as Page[];
|
|
151
154
|
// Keep existing reference if page IDs haven't changed — prevents
|
|
152
155
|
// downstream memos (accessiblePageIds, dynamicResources, allResources)
|
|
153
156
|
// from rebuilding and giving Refine a new resources prop.
|
|
154
|
-
setPagesData(prev => {
|
|
155
|
-
if (
|
|
156
|
-
|
|
157
|
+
setPagesData((prev) => {
|
|
158
|
+
if (
|
|
159
|
+
prev &&
|
|
160
|
+
prev.length === pages.length &&
|
|
161
|
+
prev.every((p, i) => p.id === pages[i].id)
|
|
162
|
+
) {
|
|
157
163
|
return prev;
|
|
158
164
|
}
|
|
159
165
|
writeCache(PagesCacheKey, pages);
|
|
160
166
|
return pages;
|
|
161
167
|
});
|
|
162
168
|
} catch (error) {
|
|
163
|
-
console.error(
|
|
169
|
+
console.error('[useUserPageAccess] Failed to fetch pages:', error);
|
|
164
170
|
}
|
|
165
171
|
};
|
|
166
172
|
fetchPages();
|
|
@@ -179,21 +185,21 @@ export const useUserPageAccess = (): UseUserPageAccessResult => {
|
|
|
179
185
|
where: { name: { in: roleNames } },
|
|
180
186
|
select: { id: true, name: true },
|
|
181
187
|
};
|
|
182
|
-
const res = await customRequest<any>(
|
|
188
|
+
const res = await customRequest<any>('role/findMany', 'post', query);
|
|
183
189
|
const roles = res?.data as Role[];
|
|
184
190
|
setRolesData(roles);
|
|
185
191
|
writeCache(RolesDataCacheKey, roles);
|
|
186
192
|
} catch (error) {
|
|
187
|
-
console.error(
|
|
193
|
+
console.error('[useUserPageAccess] Failed to fetch roles:', error);
|
|
188
194
|
}
|
|
189
195
|
};
|
|
190
196
|
fetchRoles();
|
|
191
|
-
}, [roleNames.join(
|
|
197
|
+
}, [roleNames.join(',')]);
|
|
192
198
|
|
|
193
199
|
// Calculate roleIds
|
|
194
200
|
const roleIds = useMemo(() => {
|
|
195
201
|
if (!rolesData) return [];
|
|
196
|
-
return rolesData.map(role => role.id);
|
|
202
|
+
return rolesData.map((role) => role.id);
|
|
197
203
|
}, [rolesData]);
|
|
198
204
|
|
|
199
205
|
// Step 4: Fetch role-page relationships when roleIds are available
|
|
@@ -206,24 +212,31 @@ export const useUserPageAccess = (): UseUserPageAccessResult => {
|
|
|
206
212
|
const fetchRolePages = async () => {
|
|
207
213
|
try {
|
|
208
214
|
const query = { where: { roleId: { in: roleIds } } };
|
|
209
|
-
const res = await customRequest<any>(
|
|
215
|
+
const res = await customRequest<any>(
|
|
216
|
+
'rolePages/findMany',
|
|
217
|
+
'post',
|
|
218
|
+
query,
|
|
219
|
+
);
|
|
210
220
|
const rolePages = res?.data as RolePage[];
|
|
211
221
|
// Same stable-reference trick: keep existing ref if content unchanged.
|
|
212
|
-
setRolePagesData(prev => {
|
|
213
|
-
if (
|
|
214
|
-
|
|
222
|
+
setRolePagesData((prev) => {
|
|
223
|
+
if (
|
|
224
|
+
prev &&
|
|
225
|
+
prev.length === rolePages.length &&
|
|
226
|
+
prev.every((rp, i) => rp.id === rolePages[i].id)
|
|
227
|
+
) {
|
|
215
228
|
return prev;
|
|
216
229
|
}
|
|
217
230
|
writeCache(RolePagesCacheKey, rolePages);
|
|
218
231
|
return rolePages;
|
|
219
232
|
});
|
|
220
233
|
} catch (error) {
|
|
221
|
-
console.error(
|
|
234
|
+
console.error('[useUserPageAccess] Failed to fetch rolePages:', error);
|
|
222
235
|
}
|
|
223
236
|
};
|
|
224
237
|
|
|
225
238
|
fetchRolePages();
|
|
226
|
-
}, [roleIds.join(
|
|
239
|
+
}, [roleIds.join(',')]);
|
|
227
240
|
|
|
228
241
|
// Build page maps
|
|
229
242
|
const { pageMap, pageCodeMap } = useMemo(() => {
|
|
@@ -231,7 +244,7 @@ export const useUserPageAccess = (): UseUserPageAccessResult => {
|
|
|
231
244
|
const codeMap = new Map<string, Page>();
|
|
232
245
|
|
|
233
246
|
if (pagesData) {
|
|
234
|
-
pagesData.forEach(page => {
|
|
247
|
+
pagesData.forEach((page) => {
|
|
235
248
|
idMap.set(page.id, page);
|
|
236
249
|
codeMap.set(page.code, page);
|
|
237
250
|
});
|
|
@@ -252,7 +265,7 @@ export const useUserPageAccess = (): UseUserPageAccessResult => {
|
|
|
252
265
|
}
|
|
253
266
|
|
|
254
267
|
// Add directly accessible pages
|
|
255
|
-
rolePagesData.forEach(rolePage => {
|
|
268
|
+
rolePagesData.forEach((rolePage) => {
|
|
256
269
|
ids.add(rolePage.pageId);
|
|
257
270
|
});
|
|
258
271
|
|
|
@@ -272,13 +285,13 @@ export const useUserPageAccess = (): UseUserPageAccessResult => {
|
|
|
272
285
|
|
|
273
286
|
const originalIds = Array.from(ids);
|
|
274
287
|
const visited = new Set<number>();
|
|
275
|
-
originalIds.forEach(pageId => {
|
|
288
|
+
originalIds.forEach((pageId) => {
|
|
276
289
|
addAncestorPages(pageId, visited);
|
|
277
290
|
});
|
|
278
291
|
|
|
279
292
|
// Keep existing reference if IDs haven't changed
|
|
280
293
|
const prev = prevAccessiblePageIdsRef.current;
|
|
281
|
-
if (prev.size === ids.size && Array.from(ids).every(id => prev.has(id))) {
|
|
294
|
+
if (prev.size === ids.size && Array.from(ids).every((id) => prev.has(id))) {
|
|
282
295
|
return prev;
|
|
283
296
|
}
|
|
284
297
|
|
|
@@ -290,7 +303,7 @@ export const useUserPageAccess = (): UseUserPageAccessResult => {
|
|
|
290
303
|
const accessiblePageCodes = useMemo(() => {
|
|
291
304
|
const codes = new Set<string>();
|
|
292
305
|
|
|
293
|
-
accessiblePageIds.forEach(pageId => {
|
|
306
|
+
accessiblePageIds.forEach((pageId) => {
|
|
294
307
|
const page = pageMap.get(pageId);
|
|
295
308
|
if (page) {
|
|
296
309
|
codes.add(page.code);
|
|
@@ -312,7 +325,7 @@ export const useUserPageAccess = (): UseUserPageAccessResult => {
|
|
|
312
325
|
const hasCache = useMemo(
|
|
313
326
|
() => !!(readCache(PagesCacheKey) && readCache(RolePagesCacheKey)),
|
|
314
327
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
315
|
-
[]
|
|
328
|
+
[],
|
|
316
329
|
);
|
|
317
330
|
|
|
318
331
|
const isLoading = useMemo(() => {
|
|
@@ -320,7 +333,8 @@ export const useUserPageAccess = (): UseUserPageAccessResult => {
|
|
|
320
333
|
if (hasCache && pagesData && rolePagesData) return false;
|
|
321
334
|
if (isRoleLoading) return true;
|
|
322
335
|
if (!pagesData) return true;
|
|
323
|
-
if (roleNames.length > 0 && roleIds.length > 0 && !rolePagesData)
|
|
336
|
+
if (roleNames.length > 0 && roleIds.length > 0 && !rolePagesData)
|
|
337
|
+
return true;
|
|
324
338
|
return false;
|
|
325
339
|
}, [isRoleLoading, pagesData, roleNames, roleIds, rolePagesData, hasCache]);
|
|
326
340
|
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import i18n from
|
|
2
|
-
import { initReactI18next } from
|
|
3
|
-
import detector from
|
|
4
|
-
import en from
|
|
5
|
-
import zh_CN from
|
|
1
|
+
import i18n from 'i18next';
|
|
2
|
+
import { initReactI18next } from 'react-i18next';
|
|
3
|
+
import detector from 'i18next-browser-languagedetector';
|
|
4
|
+
import en from './locales/en/common.json';
|
|
5
|
+
import zh_CN from './locales/zh_CN/common.json';
|
|
6
6
|
|
|
7
7
|
i18n
|
|
8
8
|
.use(detector)
|
|
9
9
|
.use(initReactI18next)
|
|
10
10
|
.init({
|
|
11
|
-
supportedLngs: [
|
|
11
|
+
supportedLngs: ['en', 'zh_CN'],
|
|
12
12
|
resources: {
|
|
13
13
|
en: { common: en },
|
|
14
14
|
zh_CN: { common: zh_CN },
|
|
15
15
|
},
|
|
16
|
-
defaultNS:
|
|
17
|
-
fallbackLng: [
|
|
16
|
+
defaultNS: 'common',
|
|
17
|
+
fallbackLng: ['en', 'zh_CN'],
|
|
18
18
|
react: {
|
|
19
19
|
useSuspense: false,
|
|
20
20
|
},
|
|
@@ -6,6 +6,13 @@ import './i18n';
|
|
|
6
6
|
|
|
7
7
|
import { checkLogin, login } from './helpers/login';
|
|
8
8
|
|
|
9
|
+
// 屏蔽 ECharts 在 RadarChart 多 Y 轴场景下的 alignTicks 噪音警告
|
|
10
|
+
const _warn = console.warn.bind(console);
|
|
11
|
+
console.warn = (...args: any[]) => {
|
|
12
|
+
if (typeof args[0] === 'string' && args[0].includes('alignTicks')) return;
|
|
13
|
+
_warn(...args);
|
|
14
|
+
};
|
|
15
|
+
|
|
9
16
|
if (!checkLogin()) {
|
|
10
17
|
login();
|
|
11
18
|
} else {
|
|
@@ -13,8 +20,8 @@ if (!checkLogin()) {
|
|
|
13
20
|
const root = createRoot(container);
|
|
14
21
|
|
|
15
22
|
root.render(
|
|
16
|
-
<React.Suspense fallback=
|
|
23
|
+
<React.Suspense fallback="loading">
|
|
17
24
|
<App />
|
|
18
|
-
</React.Suspense
|
|
25
|
+
</React.Suspense>,
|
|
19
26
|
);
|
|
20
27
|
}
|
|
@@ -115,6 +115,18 @@
|
|
|
115
115
|
"fields":{
|
|
116
116
|
"timestamp": "OperateTime"
|
|
117
117
|
}
|
|
118
|
+
},
|
|
119
|
+
"iTActivityDay": {
|
|
120
|
+
"fields": {
|
|
121
|
+
"tags": "标签"
|
|
122
|
+
}
|
|
123
|
+
},
|
|
124
|
+
"event": {
|
|
125
|
+
"fields": {
|
|
126
|
+
"eventType": "eventType",
|
|
127
|
+
"city": "City",
|
|
128
|
+
"country": "Country"
|
|
129
|
+
}
|
|
118
130
|
}
|
|
119
131
|
},
|
|
120
132
|
"table": {
|
|
@@ -124,5 +136,186 @@
|
|
|
124
136
|
},
|
|
125
137
|
"form": {
|
|
126
138
|
"uploadPlaceholder": "Drag & drop a file in this area"
|
|
139
|
+
},
|
|
140
|
+
"canvas": {
|
|
141
|
+
"componentLib": "Components",
|
|
142
|
+
"backToList": "Back to list",
|
|
143
|
+
"save": "Save",
|
|
144
|
+
"saveDirty": "Save •",
|
|
145
|
+
"preview": "Preview",
|
|
146
|
+
"publish": "Publish",
|
|
147
|
+
"published": "Published ✓",
|
|
148
|
+
"unpublish": "Unpublish",
|
|
149
|
+
"unpublishConfirm": "Unpublish this page? It will be removed from the navigation menu.",
|
|
150
|
+
"unpublishSuccess": "Unpublished",
|
|
151
|
+
"unpublishFailed": "Unpublish failed",
|
|
152
|
+
"clickToRename": "Click to rename",
|
|
153
|
+
"emptyHint": "Drag components from the library",
|
|
154
|
+
"exitPreview": "Exit Preview",
|
|
155
|
+
"config": "Configure",
|
|
156
|
+
"editCode": "Edit Code",
|
|
157
|
+
"duplicate": "Duplicate",
|
|
158
|
+
"delete": "Delete",
|
|
159
|
+
"custom": "Custom",
|
|
160
|
+
"customAction": "Custom Action",
|
|
161
|
+
"customPlaceholder": "Describe what you want to do with this component",
|
|
162
|
+
"components": {
|
|
163
|
+
"NumCard": "Metric Card",
|
|
164
|
+
"BarChart": "Bar Chart",
|
|
165
|
+
"LineChart": "Line Chart",
|
|
166
|
+
"PieChart": "Pie Chart",
|
|
167
|
+
"RadarChart": "Radar Chart",
|
|
168
|
+
"TreemapChart": "Treemap",
|
|
169
|
+
"Table": "Table",
|
|
170
|
+
"WorldMap": "World Map"
|
|
171
|
+
},
|
|
172
|
+
"variants": {
|
|
173
|
+
"default": "Default",
|
|
174
|
+
"bar": "Bar",
|
|
175
|
+
"stackBar": "Stacked Bar",
|
|
176
|
+
"stackBarPercent": "Percent Stack",
|
|
177
|
+
"pie": "Pie",
|
|
178
|
+
"ring": "Ring",
|
|
179
|
+
"sunburst": "Sunburst",
|
|
180
|
+
"heatmap": "Heatmap",
|
|
181
|
+
"demo": "Demo",
|
|
182
|
+
"card-grid": "Card Grid",
|
|
183
|
+
"inline": "Inline",
|
|
184
|
+
"inline-right": "Inline Right"
|
|
185
|
+
},
|
|
186
|
+
"dataSource": {
|
|
187
|
+
"api": "Data Source (API)",
|
|
188
|
+
"sql": "Data Source (SQL)",
|
|
189
|
+
"apiPlaceholder": "Describe the data, e.g.: daily active users over last 14 days",
|
|
190
|
+
"sqlPlaceholder": "Describe the data, e.g.: revenue comparison over last 30 days"
|
|
191
|
+
},
|
|
192
|
+
"dataSourceModal": {
|
|
193
|
+
"title": "Data Source",
|
|
194
|
+
"ok": "OK",
|
|
195
|
+
"cancel": "Cancel",
|
|
196
|
+
"add": "Add",
|
|
197
|
+
"descLabel": "Data description:",
|
|
198
|
+
"descPlaceholder": "Describe the data you need, e.g.: query daily active users from t_daily_stats",
|
|
199
|
+
"includeChart": "Include line chart",
|
|
200
|
+
"chartRange": "Range:",
|
|
201
|
+
"chartRangePlaceholder": "e.g.: Last 7 days, Last 30 days",
|
|
202
|
+
"includeComparisons": "Include comparisons",
|
|
203
|
+
"comparedTo": "vs",
|
|
204
|
+
"comparedToPlaceholder": "Enter comparison target",
|
|
205
|
+
"columns": "Columns",
|
|
206
|
+
"columnPlaceholder": "Column name",
|
|
207
|
+
"pagination": "Pagination",
|
|
208
|
+
"pageSize": "Page size",
|
|
209
|
+
"pageSizeUnit": "rows",
|
|
210
|
+
"barDirection": "Direction",
|
|
211
|
+
"barVertical": "Vertical",
|
|
212
|
+
"barHorizontal": "Horizontal",
|
|
213
|
+
"showGrid": "Show grid",
|
|
214
|
+
"showLabel": "Show labels",
|
|
215
|
+
"showLegend": "Show legend",
|
|
216
|
+
"showAxis": "Show axis",
|
|
217
|
+
"showDots": "Show dots",
|
|
218
|
+
"showDotsLabel": "Show dot values",
|
|
219
|
+
"stacked": "Stacked",
|
|
220
|
+
"area": "Area fill",
|
|
221
|
+
"smooth": "Smooth curve",
|
|
222
|
+
"dimensionCount": "Dimensions",
|
|
223
|
+
"dimensionCountPlaceholder": "e.g.: 5",
|
|
224
|
+
"tablePlaceholder": "Describe the data, e.g.: query last 30 days from t_daily_report",
|
|
225
|
+
"barPlaceholder": "Describe the data, e.g.: query daily device counts by type from t_daily_stats",
|
|
226
|
+
"linePlaceholder": "Describe the data, e.g.: query daily metric trends from t_daily_stats",
|
|
227
|
+
"radarPlaceholder": "Describe the data, e.g.: query employee skill scores from t_employee_skills"
|
|
228
|
+
},
|
|
229
|
+
"menu": {
|
|
230
|
+
"hideLegend": "Hide Legend",
|
|
231
|
+
"showLegend": "Show Legend",
|
|
232
|
+
"editTitle": "Edit Title",
|
|
233
|
+
"addTitle": "Add Title",
|
|
234
|
+
"editChartTitle": "Edit Chart Title",
|
|
235
|
+
"addChartTitle": "Add Chart Title",
|
|
236
|
+
"titlePlaceholder": "Enter title (leave empty to remove)",
|
|
237
|
+
"removeComparisons": "Remove Comparisons",
|
|
238
|
+
"addComparisons": "Add Comparisons",
|
|
239
|
+
"removeChart": "Remove Chart",
|
|
240
|
+
"addChart": "Add Chart",
|
|
241
|
+
"changePageSize": "Change Page Size",
|
|
242
|
+
"removePagination": "Remove Pagination",
|
|
243
|
+
"addPagination": "Add Pagination",
|
|
244
|
+
"direction": "Direction",
|
|
245
|
+
"vertical": "Vertical",
|
|
246
|
+
"horizontal": "Horizontal",
|
|
247
|
+
"hideGrid": "Hide Grid",
|
|
248
|
+
"showGrid": "Show Grid",
|
|
249
|
+
"hideLabel": "Hide Labels",
|
|
250
|
+
"showLabel": "Show Labels",
|
|
251
|
+
"switchVariant": "Switch Style",
|
|
252
|
+
"pie": "Pie",
|
|
253
|
+
"ring": "Ring",
|
|
254
|
+
"topN": "Top N Items",
|
|
255
|
+
"hideAxis": "Hide Axis",
|
|
256
|
+
"showAxis": "Show Axis",
|
|
257
|
+
"hideDots": "Hide Dots",
|
|
258
|
+
"showDots": "Show Dots",
|
|
259
|
+
"hideDotsLabel": "Hide Dot Values",
|
|
260
|
+
"showDotsLabel": "Show Dot Values",
|
|
261
|
+
"disableStacked": "Disable Stacking",
|
|
262
|
+
"enableStacked": "Enable Stacking",
|
|
263
|
+
"disableArea": "Disable Area Fill",
|
|
264
|
+
"enableArea": "Enable Area Fill",
|
|
265
|
+
"disableSmooth": "Disable Smooth",
|
|
266
|
+
"enableSmooth": "Enable Smooth"
|
|
267
|
+
},
|
|
268
|
+
"list": {
|
|
269
|
+
"title": "My Canvas",
|
|
270
|
+
"create": "New Canvas",
|
|
271
|
+
"published": "Published",
|
|
272
|
+
"unpublished": "Unpublished",
|
|
273
|
+
"rename": "Rename",
|
|
274
|
+
"renameTitle": "Rename Canvas",
|
|
275
|
+
"renamePlaceholder": "Enter new name",
|
|
276
|
+
"renameEmpty": "Name cannot be empty",
|
|
277
|
+
"renameDuplicate": "Name already exists",
|
|
278
|
+
"renamed": "Renamed",
|
|
279
|
+
"renamePublishedWarning": "This Canvas is published. Renaming will also update the page name in the navigation.",
|
|
280
|
+
"renameFailed": "Rename failed",
|
|
281
|
+
"deleteBtn": "Delete",
|
|
282
|
+
"deletePublishedConfirm": "This Canvas is published. Deleting it will also remove the published page. Continue?",
|
|
283
|
+
"deleteConfirm": "Delete this Canvas?",
|
|
284
|
+
"deleted": "Deleted",
|
|
285
|
+
"deleteFailed": "Delete failed",
|
|
286
|
+
"loadFailed": "Failed to load Canvas list",
|
|
287
|
+
"createFailed": "Failed to create Canvas",
|
|
288
|
+
"ok": "OK",
|
|
289
|
+
"cancel": "Cancel"
|
|
290
|
+
},
|
|
291
|
+
"publishModal": {
|
|
292
|
+
"title": "Publish Canvas",
|
|
293
|
+
"updateBtn": "Update Page",
|
|
294
|
+
"publishBtn": "Publish",
|
|
295
|
+
"cancel": "Cancel",
|
|
296
|
+
"overwriteOption": "Update existing page",
|
|
297
|
+
"newPageOption": "Publish as new page",
|
|
298
|
+
"overwriteDesc": "Replace the published page content with the current Canvas.",
|
|
299
|
+
"pageName": "Page Name",
|
|
300
|
+
"pageNameRequired": "Please enter a page name",
|
|
301
|
+
"pageNamePlaceholder": "e.g.: Game Dashboard",
|
|
302
|
+
"parentPage": "Parent Page",
|
|
303
|
+
"parentPageRequired": "Please select a parent page",
|
|
304
|
+
"parentPagePlaceholder": "Select parent page",
|
|
305
|
+
"description": "Description (optional)",
|
|
306
|
+
"descriptionPlaceholder": "e.g.: Data from /api/game, needs loading state",
|
|
307
|
+
"rootPage": "Root (top level)",
|
|
308
|
+
"success": "Published successfully",
|
|
309
|
+
"error": "Publish failed",
|
|
310
|
+
"agentSent": "Publish request sent, AI agent is processing...",
|
|
311
|
+
"loadPagesFailed": "Failed to load page list"
|
|
312
|
+
},
|
|
313
|
+
"edit": {
|
|
314
|
+
"saved": "Saved",
|
|
315
|
+
"saveFailed": "Save failed",
|
|
316
|
+
"renamed": "Renamed",
|
|
317
|
+
"renameDuplicate": "Name already exists",
|
|
318
|
+
"renameFailed": "Rename failed"
|
|
319
|
+
}
|
|
127
320
|
}
|
|
128
321
|
}
|