@gadmin2n/schematics 0.0.70 → 0.0.72

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (28) hide show
  1. package/dist/lib/application/files/gadmin2-game-angle-demo/config/prisma/system.prisma +21 -0
  2. package/dist/lib/application/files/gadmin2-game-angle-demo/server/gadmin-cli.json +9 -1
  3. package/dist/lib/application/files/gadmin2-game-angle-demo/server/package-lock.json +15579 -0
  4. package/dist/lib/application/files/gadmin2-game-angle-demo/server/package.json +5 -3
  5. package/dist/lib/application/files/gadmin2-game-angle-demo/server/seed/permissions.ts +16 -4
  6. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/app.module.ts +2 -0
  7. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/agenda/agenda.controller.ts +106 -0
  8. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/agenda/agenda.module.ts +10 -0
  9. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/agenda/agenda.service.ts +569 -0
  10. package/dist/lib/application/files/gadmin2-game-angle-demo/server/yarn.lock +1159 -481
  11. package/dist/lib/application/files/gadmin2-game-angle-demo/web/.env +1 -0
  12. package/dist/lib/application/files/gadmin2-game-angle-demo/web/package.json +1 -1
  13. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/agentPanel/inspectorActions.ts +130 -3
  14. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/NumCard/index.tsx +5 -5
  15. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/NumLineCard/index.tsx +2 -2
  16. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/config/routeRegistry.tsx +15 -0
  17. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/DevShell.tsx +55 -43
  18. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/SkillMenu.tsx +1 -1
  19. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/locales/en/common.json +2 -4
  20. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/locales/zh_CN/common.json +2 -4
  21. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/agenda/index.tsx +536 -0
  22. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/agenda/show.tsx +671 -0
  23. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/CanvasPage.tsx +9 -60
  24. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/CanvasToolbar.tsx +2 -2
  25. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/ComponentThumbnail.tsx +3 -1
  26. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/canvasContextMenuRegistry.tsx +11 -11
  27. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/vite-env.d.ts +12 -0
  28. package/package.json +1 -1
@@ -148,7 +148,6 @@ const CanvasPage: React.FC<CanvasPageProps> = ({
148
148
  id: string;
149
149
  componentType: string;
150
150
  code: string;
151
- mode: 'api' | 'sql';
152
151
  } | null>(null);
153
152
 
154
153
  // ── PromptModal state(通用文本输入弹窗)──
@@ -178,7 +177,7 @@ const CanvasPage: React.FC<CanvasPageProps> = ({
178
177
  skill?: string,
179
178
  ) => {
180
179
  const prompt = generatePrompt({
181
- skill: skill ?? 'canvas-data-query',
180
+ skill: skill ?? 'canvas-sql-query',
182
181
  pageInfo: agent?.pageInfo ?? {
183
182
  resourceName: '',
184
183
  pageType: 'unknown',
@@ -456,7 +455,7 @@ const CanvasPage: React.FC<CanvasPageProps> = ({
456
455
  {
457
456
  key: 'data-source',
458
457
  icon: <DatabaseOutlined />,
459
- label: t('canvas.dataSource.api'),
458
+ label: t('canvas.dataSource.label'),
460
459
  onClick: () => {
461
460
  if (
462
461
  componentType === 'NumCard' ||
@@ -469,51 +468,11 @@ const CanvasPage: React.FC<CanvasPageProps> = ({
469
468
  id: itemMenu.id,
470
469
  componentType,
471
470
  code: item?.code ?? '',
472
- mode: 'api',
473
471
  });
474
472
  } else {
475
- // 其他组件:弹 modal 收集描述后触发 agent
476
473
  menuActionContext.showPrompt({
477
- label: t('canvas.dataSource.api'),
478
- placeholder: t('canvas.dataSource.apiPlaceholder'),
479
- defaultValue: '',
480
- onConfirm: (value) => {
481
- if (!value.trim()) return;
482
- triggerDataSourceAgent(
483
- itemMenu.id,
484
- componentType,
485
- item?.code ?? '',
486
- value.trim(),
487
- );
488
- },
489
- });
490
- }
491
- setItemMenu(null);
492
- },
493
- },
494
- {
495
- key: 'data-source-sql',
496
- icon: <DatabaseOutlined />,
497
- label: t('canvas.dataSource.sql'),
498
- onClick: () => {
499
- if (
500
- componentType === 'NumCard' ||
501
- componentType === 'Table' ||
502
- componentType === 'BarChart' ||
503
- componentType === 'LineChart' ||
504
- componentType === 'RadarChart'
505
- ) {
506
- setDataSourceModal({
507
- id: itemMenu.id,
508
- componentType,
509
- code: item?.code ?? '',
510
- mode: 'sql',
511
- });
512
- } else {
513
- // 其他组件:弹通用输入 modal
514
- menuActionContext.showPrompt({
515
- label: t('canvas.dataSource.sql'),
516
- placeholder: t('canvas.dataSource.sqlPlaceholder'),
474
+ label: t('canvas.dataSource.label'),
475
+ placeholder: t('canvas.dataSource.placeholder'),
517
476
  defaultValue: '',
518
477
  onConfirm: (value) => {
519
478
  if (!value.trim()) return;
@@ -973,9 +932,7 @@ const CanvasPage: React.FC<CanvasPageProps> = ({
973
932
  dataSourceModal.componentType,
974
933
  newCode,
975
934
  userPrompt || undefined,
976
- dataSourceModal.mode === 'sql'
977
- ? 'canvas-sql-query'
978
- : 'canvas-data-query',
935
+ 'canvas-sql-query',
979
936
  );
980
937
  }}
981
938
  onCancel={() => setDataSourceModal(null)}
@@ -1048,9 +1005,7 @@ const CanvasPage: React.FC<CanvasPageProps> = ({
1048
1005
  dataSourceModal.componentType,
1049
1006
  newCode,
1050
1007
  userPrompt,
1051
- dataSourceModal.mode === 'sql'
1052
- ? 'canvas-sql-query'
1053
- : 'canvas-data-query',
1008
+ 'canvas-sql-query',
1054
1009
  );
1055
1010
  }}
1056
1011
  onCancel={() => setDataSourceModal(null)}
@@ -1141,9 +1096,7 @@ const CanvasPage: React.FC<CanvasPageProps> = ({
1141
1096
  'BarChart',
1142
1097
  newCode,
1143
1098
  userPrompt,
1144
- dataSourceModal.mode === 'sql'
1145
- ? 'canvas-sql-query'
1146
- : 'canvas-data-query',
1099
+ 'canvas-sql-query',
1147
1100
  );
1148
1101
  }}
1149
1102
  onCancel={() => setDataSourceModal(null)}
@@ -1316,9 +1269,7 @@ const CanvasPage: React.FC<CanvasPageProps> = ({
1316
1269
  'LineChart',
1317
1270
  newCode,
1318
1271
  userPrompt || undefined,
1319
- dataSourceModal.mode === 'sql'
1320
- ? 'canvas-sql-query'
1321
- : 'canvas-data-query',
1272
+ 'canvas-sql-query',
1322
1273
  );
1323
1274
  }}
1324
1275
  onCancel={() => setDataSourceModal(null)}
@@ -1344,9 +1295,7 @@ const CanvasPage: React.FC<CanvasPageProps> = ({
1344
1295
  dataSourceModal.componentType,
1345
1296
  dataSourceModal.code,
1346
1297
  userPrompt,
1347
- dataSourceModal.mode === 'sql'
1348
- ? 'canvas-sql-query'
1349
- : 'canvas-data-query',
1298
+ 'canvas-sql-query',
1350
1299
  );
1351
1300
  }}
1352
1301
  onCancel={() => setDataSourceModal(null)}
@@ -36,8 +36,8 @@ const CanvasToolbar: React.FC<CanvasToolbarProps> = ({
36
36
  onPreview,
37
37
  }) => {
38
38
  const { t } = useTranslation();
39
- const [expanded, setExpanded] = useState(false);
40
- const [everExpanded, setEverExpanded] = useState(false);
39
+ const [expanded, setExpanded] = useState(true);
40
+ const [everExpanded, setEverExpanded] = useState(true);
41
41
 
42
42
  const handleToggle = useCallback(() => {
43
43
  setExpanded((prev) => {
@@ -90,7 +90,9 @@ const ComponentThumbnail: React.FC<Props> = memo(
90
90
  setTimeout(() => {
91
91
  try {
92
92
  r.unmount();
93
- } catch {}
93
+ } catch {
94
+ /* unmount may fail if already unmounted */
95
+ }
94
96
  }, 0);
95
97
  }
96
98
  if (s && s.parentNode) {
@@ -161,29 +161,29 @@ function numCardActions(
161
161
  ...(isWithChart
162
162
  ? [
163
163
  {
164
- key: 'toggle-axes',
165
- icon: /showAxes\s*=\s*\{true\}/.test(code) ? (
164
+ key: 'toggle-axis',
165
+ icon: /showAxis\s*=\s*\{true\}/.test(code) ? (
166
166
  <MinusOutlined />
167
167
  ) : (
168
168
  <PlusOutlined />
169
169
  ),
170
- danger: /showAxes\s*=\s*\{true\}/.test(code) ? true : undefined,
171
- label: /showAxes\s*=\s*\{true\}/.test(code)
172
- ? (t?.('canvas.menu.hideAxes') ?? '隐藏坐标轴')
173
- : (t?.('canvas.menu.showAxes') ?? '显示坐标轴'),
170
+ danger: /showAxis\s*=\s*\{true\}/.test(code) ? true : undefined,
171
+ label: /showAxis\s*=\s*\{true\}/.test(code)
172
+ ? (t?.('canvas.menu.hideAxis') ?? '隐藏坐标轴')
173
+ : (t?.('canvas.menu.showAxis') ?? '显示坐标轴'),
174
174
  onClick: () => {
175
175
  let newCode = code;
176
- const hasAxes = /showAxes\s*=\s*\{true\}/.test(newCode);
177
- if (hasAxes) {
178
- newCode = newCode.replace(/\s*showAxes\s*=\s*\{true\}/, '');
176
+ const hasAxis = /showAxis\s*=\s*\{true\}/.test(newCode);
177
+ if (hasAxis) {
178
+ newCode = newCode.replace(/\s*showAxis\s*=\s*\{true\}/, '');
179
179
  } else {
180
180
  if (/testId\s*=/.test(newCode)) {
181
181
  newCode = newCode.replace(
182
182
  /([ \t]*)(testId\s*=)/,
183
- `$1showAxes={true}\n$1$2`,
183
+ `$1showAxis={true}\n$1$2`,
184
184
  );
185
185
  } else {
186
- newCode = newCode.replace(/\/>/, ` showAxes={true}\n/>`);
186
+ newCode = newCode.replace(/\/>/, ` showAxis={true}\n/>`);
187
187
  }
188
188
  }
189
189
  updateCode(newCode);
@@ -1 +1,13 @@
1
1
  /// <reference types="vite/client" />
2
+
3
+ interface ImportMetaEnv {
4
+ readonly VITE_BACKEND_URL?: string;
5
+ readonly VITE_API_URL?: string;
6
+ readonly VITE_DEPLOY_NAME?: string;
7
+ readonly VITE_AGENT_ID?: string;
8
+ readonly VITE_AGENT_BASE_URL?: string;
9
+ }
10
+
11
+ interface ImportMeta {
12
+ readonly env: ImportMetaEnv;
13
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gadmin2n/schematics",
3
- "version": "0.0.70",
3
+ "version": "0.0.72",
4
4
  "description": "Gadmin - modern, fast, powerful node.js web framework (@schematics)",
5
5
  "main": "dist/index.js",
6
6
  "files": [