@deep-eye/core 1.2.28 → 1.2.29
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/CHANGELOG.md +10 -0
- package/dist/components/chat/ChatBot.vue.d.ts +2 -2
- package/dist/components/chat/components/ConversationList.vue.d.ts +2 -2
- package/dist/components/chat/mdoc/ContentNodes.vue.d.ts.map +1 -1
- package/dist/components/visualization/D3MindMap.vue.d.ts +46 -9
- package/dist/components/visualization/D3MindMap.vue.d.ts.map +1 -1
- package/dist/components/visualization/types.d.ts +168 -1
- package/dist/components/visualization/types.d.ts.map +1 -1
- package/dist/components/visualization/useMindMapDrag.d.ts +90 -0
- package/dist/components/visualization/useMindMapDrag.d.ts.map +1 -0
- package/dist/components/visualization/useMindMapHistory.d.ts +34 -0
- package/dist/components/visualization/useMindMapHistory.d.ts.map +1 -0
- package/dist/components/visualization/useMindMapLayoutEngine.d.ts +28 -0
- package/dist/components/visualization/useMindMapLayoutEngine.d.ts.map +1 -0
- package/dist/components/visualization/useMindMapTreeOps.d.ts +52 -0
- package/dist/components/visualization/useMindMapTreeOps.d.ts.map +1 -0
- package/dist/index.cjs +102 -102
- package/dist/index.js +18275 -17782
- package/dist/style.css +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,16 @@
|
|
|
2
2
|
|
|
3
3
|
`@deep-eye/core` 的用户可见变更(语义化版本)。
|
|
4
4
|
|
|
5
|
+
## [1.2.29] - 2026-08-06
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
- `D3MindMap`:`streaming` 热更新(`applyData` 不折叠、不强制 fit);`draggable` 节点拖拽改挂/排序与 `dragStyle`;`addNodeByDirection`、`undo` / `redo` / `isModified` 与 `modified` 事件。
|
|
10
|
+
|
|
11
|
+
### Changed
|
|
12
|
+
|
|
13
|
+
- `D3MindMap`:布局与树操作拆到 `useMindMapLayoutEngine` / `useMindMapTreeOps` / `useMindMapHistory` / `useMindMapDrag`;D3 类型用官方 Hierarchy 类型替换 `any`。
|
|
14
|
+
|
|
5
15
|
## [1.2.28] - 2026-08-06
|
|
6
16
|
|
|
7
17
|
### Fixed
|
|
@@ -62,8 +62,8 @@ type __VLS_Slots = {
|
|
|
62
62
|
};
|
|
63
63
|
declare const __VLS_base: import("vue").DefineComponent<ChatBotProps, ChatBotExpose, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
64
64
|
stop: () => any;
|
|
65
|
-
retry: (payload: ChatSendPayload | null, error: Error) => any;
|
|
66
65
|
copy: (payload: ChatActionbarCopyPayload) => any;
|
|
66
|
+
retry: (payload: ChatSendPayload | null, error: Error) => any;
|
|
67
67
|
action: (payload: ConversationUiAction) => any;
|
|
68
68
|
"tool-action": (payload: ChatToolActionPayload) => any;
|
|
69
69
|
send: (payload: ChatSendPayload) => any;
|
|
@@ -113,8 +113,8 @@ declare const __VLS_base: import("vue").DefineComponent<ChatBotProps, ChatBotExp
|
|
|
113
113
|
"response-error": (error: Error, info: ClassifiedChatError) => any;
|
|
114
114
|
}, string, import("vue").PublicProps, Readonly<ChatBotProps> & Readonly<{
|
|
115
115
|
onStop?: (() => any) | undefined;
|
|
116
|
-
onRetry?: ((payload: ChatSendPayload | null, error: Error) => any) | undefined;
|
|
117
116
|
onCopy?: ((payload: ChatActionbarCopyPayload) => any) | undefined;
|
|
117
|
+
onRetry?: ((payload: ChatSendPayload | null, error: Error) => any) | undefined;
|
|
118
118
|
onAction?: ((payload: ConversationUiAction) => any) | undefined;
|
|
119
119
|
"onTool-action"?: ((payload: ChatToolActionPayload) => any) | undefined;
|
|
120
120
|
onSend?: ((payload: ChatSendPayload) => any) | undefined;
|
|
@@ -73,8 +73,8 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
|
|
|
73
73
|
default: undefined;
|
|
74
74
|
};
|
|
75
75
|
}>, ConversationListExpose, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
76
|
-
retry: () => any;
|
|
77
76
|
copy: (payload: ChatActionbarCopyPayload) => any;
|
|
77
|
+
retry: () => any;
|
|
78
78
|
action: (payload: ConversationUiAction) => any;
|
|
79
79
|
"tool-action": (payload: ChatToolActionPayload) => any;
|
|
80
80
|
"attachment-preview": (resource: ChatResourceFile) => any;
|
|
@@ -120,8 +120,8 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
|
|
|
120
120
|
default: undefined;
|
|
121
121
|
};
|
|
122
122
|
}>> & Readonly<{
|
|
123
|
-
onRetry?: (() => any) | undefined;
|
|
124
123
|
onCopy?: ((payload: ChatActionbarCopyPayload) => any) | undefined;
|
|
124
|
+
onRetry?: (() => any) | undefined;
|
|
125
125
|
onAction?: ((payload: ConversationUiAction) => any) | undefined;
|
|
126
126
|
"onTool-action"?: ((payload: ChatToolActionPayload) => any) | undefined;
|
|
127
127
|
"onAttachment-preview"?: ((resource: ChatResourceFile) => any) | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContentNodes.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/mdoc/ContentNodes.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ContentNodes.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/mdoc/ContentNodes.vue"],"names":[],"mappings":"AAsVA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAepD,OAAO,aAAa,CAAA;AAIpB,KAAK,WAAW,GAAG;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,kCAAkC;IAClC,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,CAAA;CAChC,CAAC;AAyZF,QAAA,MAAM,YAAY;;;;kFAGhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { D3MindMapProps, MindMapData, MindMapNode, ExportOptions } from './types';
|
|
1
|
+
import type { D3MindMapProps, MindMapData, MindMapNode, MindMapAddDirection, MindMapDropPosition, MindMapDatum, MindMapPointNode, ExportOptions } from './types';
|
|
2
2
|
declare var __VLS_1: {
|
|
3
3
|
zoomIn: () => void;
|
|
4
4
|
zoomOut: () => void;
|
|
@@ -14,8 +14,9 @@ type __VLS_Slots = {} & {
|
|
|
14
14
|
toolbar?: (props: typeof __VLS_1) => any;
|
|
15
15
|
};
|
|
16
16
|
declare const __VLS_base: import("vue").DefineComponent<D3MindMapProps, {
|
|
17
|
-
getData: () =>
|
|
18
|
-
setData: (data:
|
|
17
|
+
getData: () => MindMapData | null;
|
|
18
|
+
setData: (data: MindMapData | MindMapDatum) => void;
|
|
19
|
+
applyData: (data: MindMapData | MindMapDatum) => void;
|
|
19
20
|
toCenter: () => void;
|
|
20
21
|
expandAll: (expand: boolean) => void;
|
|
21
22
|
expandNode: (nodeId: string) => void;
|
|
@@ -26,18 +27,42 @@ declare const __VLS_base: import("vue").DefineComponent<D3MindMapProps, {
|
|
|
26
27
|
getZoom: () => number;
|
|
27
28
|
setZoomEnabled: (enabled: boolean) => void;
|
|
28
29
|
getInstance: () => {
|
|
29
|
-
treeData:
|
|
30
|
-
nodeData:
|
|
30
|
+
treeData: MindMapPointNode | null;
|
|
31
|
+
nodeData: {
|
|
32
|
+
[x: string]: unknown;
|
|
33
|
+
id: string;
|
|
34
|
+
topic: string;
|
|
35
|
+
root?: boolean | undefined;
|
|
36
|
+
expanded?: boolean | undefined;
|
|
37
|
+
children?: {
|
|
38
|
+
[x: string]: unknown;
|
|
39
|
+
id: string;
|
|
40
|
+
topic: string;
|
|
41
|
+
root?: boolean | undefined;
|
|
42
|
+
expanded?: boolean | undefined;
|
|
43
|
+
children?: /*elided*/ any[] | undefined;
|
|
44
|
+
}[] | undefined;
|
|
45
|
+
_nodeWidth?: number | undefined;
|
|
46
|
+
_original?: /*elided*/ any | undefined;
|
|
47
|
+
} | null;
|
|
31
48
|
};
|
|
32
49
|
fit: () => void;
|
|
33
50
|
fitToWindow: () => void;
|
|
34
51
|
fitToNode: (nodeId: string) => void;
|
|
35
|
-
getNodeById: (nodeId: string) =>
|
|
36
|
-
updateNode: (nodeId: string, data:
|
|
52
|
+
getNodeById: (nodeId: string) => MindMapDatum | null;
|
|
53
|
+
updateNode: (nodeId: string, data: Partial<MindMapNode>) => void;
|
|
37
54
|
addNode: (parentId: string, node: Partial<MindMapNode>) => string;
|
|
55
|
+
addNodeByDirection: (referenceId: string, direction: MindMapAddDirection, node?: Partial<MindMapNode>) => string;
|
|
38
56
|
removeNode: (nodeId: string) => boolean;
|
|
57
|
+
moveNode: (nodeId: string, targetId: string, position: MindMapDropPosition) => boolean;
|
|
58
|
+
undo: () => boolean;
|
|
59
|
+
redo: () => boolean;
|
|
60
|
+
canUndo: () => boolean;
|
|
61
|
+
canRedo: () => boolean;
|
|
62
|
+
isModified: () => boolean;
|
|
63
|
+
markClean: () => void;
|
|
39
64
|
exportImage: (format?: "png" | "svg", options?: ExportOptions) => Promise<Blob>;
|
|
40
|
-
getVisibleNodes: () =>
|
|
65
|
+
getVisibleNodes: () => MindMapNode[];
|
|
41
66
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
|
|
42
67
|
change: (data: MindMapData) => any;
|
|
43
68
|
"node-click": (node: MindMapNode, event: MouseEvent) => any;
|
|
@@ -47,10 +72,15 @@ declare const __VLS_base: import("vue").DefineComponent<D3MindMapProps, {
|
|
|
47
72
|
"node-mouseleave": (node: MindMapNode, event: MouseEvent) => any;
|
|
48
73
|
"node-expand": (node: MindMapNode) => any;
|
|
49
74
|
"node-collapse": (node: MindMapNode) => any;
|
|
75
|
+
"node-drag-start": (node: MindMapNode, event: MouseEvent | PointerEvent | TouchEvent | null) => any;
|
|
76
|
+
"node-drag": (payload: import("./types").MindMapNodeDragPayload) => any;
|
|
77
|
+
"node-drag-end": (payload: import("./types").MindMapNodeDragPayload) => any;
|
|
50
78
|
zoom: (scale: number) => any;
|
|
51
79
|
pan: (transform: import("./types").TransformInfo) => any;
|
|
52
80
|
download: () => any;
|
|
53
81
|
ready: () => any;
|
|
82
|
+
modified: (isModified: boolean) => any;
|
|
83
|
+
"history-change": (state: import("./types").MindMapHistoryState) => any;
|
|
54
84
|
}, string, import("vue").PublicProps, Readonly<D3MindMapProps> & Readonly<{
|
|
55
85
|
onChange?: ((data: MindMapData) => any) | undefined;
|
|
56
86
|
"onNode-click"?: ((node: MindMapNode, event: MouseEvent) => any) | undefined;
|
|
@@ -60,21 +90,28 @@ declare const __VLS_base: import("vue").DefineComponent<D3MindMapProps, {
|
|
|
60
90
|
"onNode-mouseleave"?: ((node: MindMapNode, event: MouseEvent) => any) | undefined;
|
|
61
91
|
"onNode-expand"?: ((node: MindMapNode) => any) | undefined;
|
|
62
92
|
"onNode-collapse"?: ((node: MindMapNode) => any) | undefined;
|
|
93
|
+
"onNode-drag-start"?: ((node: MindMapNode, event: MouseEvent | PointerEvent | TouchEvent | null) => any) | undefined;
|
|
94
|
+
"onNode-drag"?: ((payload: import("./types").MindMapNodeDragPayload) => any) | undefined;
|
|
95
|
+
"onNode-drag-end"?: ((payload: import("./types").MindMapNodeDragPayload) => any) | undefined;
|
|
63
96
|
onZoom?: ((scale: number) => any) | undefined;
|
|
64
97
|
onPan?: ((transform: import("./types").TransformInfo) => any) | undefined;
|
|
65
98
|
onDownload?: (() => any) | undefined;
|
|
66
99
|
onReady?: (() => any) | undefined;
|
|
100
|
+
onModified?: ((isModified: boolean) => any) | undefined;
|
|
101
|
+
"onHistory-change"?: ((state: import("./types").MindMapHistoryState) => any) | undefined;
|
|
67
102
|
}>, {
|
|
68
103
|
width: string | number;
|
|
69
104
|
height: string | number;
|
|
70
105
|
data: MindMapData;
|
|
71
|
-
readonly: boolean;
|
|
72
106
|
expandable: boolean;
|
|
107
|
+
readonly: boolean;
|
|
73
108
|
showToolbar: boolean;
|
|
74
109
|
showDownload: boolean;
|
|
75
110
|
showCounts: boolean;
|
|
76
111
|
showScale: boolean;
|
|
77
112
|
toolbarPosition: "top" | "right" | "bottom" | "left";
|
|
113
|
+
streaming: boolean;
|
|
114
|
+
draggable: boolean;
|
|
78
115
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
79
116
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
80
117
|
declare const _default: typeof __VLS_export;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"D3MindMap.vue.d.ts","sourceRoot":"","sources":["../../../src/components/visualization/D3MindMap.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"D3MindMap.vue.d.ts","sourceRoot":"","sources":["../../../src/components/visualization/D3MindMap.vue"],"names":[],"mappings":"AAkpGA,OAAO,KAAK,EACV,cAAc,EAEd,WAAW,EACX,WAAW,EACX,mBAAmB,EACnB,mBAAmB,EAGnB,YAAY,EACZ,gBAAgB,EAShB,aAAa,EACd,MAAM,SAAS,CAAA;AAohGhB,QAAA,IAAI,OAAO;;;;;;;2BAt0BD,KAAK,GAAG,KAAK,YACX,aAAa,KACtB,OAAO,CAAC,IAAI,CAAC;;;CAo0BM,CAAE;AACxB,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,CAAC;AAS/C,QAAA,MAAM,UAAU;mBA34CI,WAAW,GAAG,IAAI;oBAqFf,WAAW,GAAG,YAAY;sBAkBxB,WAAW,GAAG,YAAY;;wBAkRxB,OAAO;yBAyXN,MAAM;2BASJ,MAAM;;;qBAvPZ,MAAM;mBAgBV,MAAM;8BAOO,OAAO;;;;;;;;;;;;;;;;;;;;;;;wBA+MT,MAAM;0BANR,MAAM,KAAG,YAAY,GAAG,IAAI;yBAuL7B,MAAM,QAAQ,OAAO,CAAC,WAAW,CAAC;wBAvJnC,MAAM,QAAQ,OAAO,CAAC,WAAW,CAAC,KAAG,MAAM;sCAgCvD,MAAM,aACR,mBAAmB,SACxB,OAAO,CAAC,WAAW,CAAC,KACzB,MAAM;yBA+CmB,MAAM,KAAG,OAAO;uBAmDlB,MAAM,YAAY,MAAM,YAAY,mBAAmB,KAAG,OAAO;;;;;;;2BA/UjF,KAAK,GAAG,KAAK,YACX,aAAa,KACtB,OAAO,CAAC,IAAI,CAAC;2BA8XY,WAAW,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6EAsdvC,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AAWzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { HierarchyPointNode, Selection } from 'd3';
|
|
1
2
|
/**
|
|
2
3
|
* 节点数据结构
|
|
3
4
|
*/
|
|
@@ -15,6 +16,104 @@ export interface MindMapNode {
|
|
|
15
16
|
export interface MindMapData {
|
|
16
17
|
nodeData: MindMapNode;
|
|
17
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* 相对参考节点按方向新增时的方向
|
|
21
|
+
* - up:同级上方
|
|
22
|
+
* - down:同级下方
|
|
23
|
+
* - right:子节点
|
|
24
|
+
* - left:与父节点同级,插在父节点后方(根下的一级节点不可用)
|
|
25
|
+
*/
|
|
26
|
+
export type MindMapAddDirection = 'up' | 'down' | 'left' | 'right';
|
|
27
|
+
/** 拖拽落点:同级前/后,或成为目标子节点 */
|
|
28
|
+
export type MindMapDropPosition = 'before' | 'after' | 'child';
|
|
29
|
+
/** 当前命中的落点 */
|
|
30
|
+
export interface MindMapDropTarget {
|
|
31
|
+
targetId: string;
|
|
32
|
+
position: MindMapDropPosition;
|
|
33
|
+
}
|
|
34
|
+
/** canDrop / 拖拽事件共用上下文 */
|
|
35
|
+
export interface MindMapDropContext {
|
|
36
|
+
/** 被拖拽的节点 */
|
|
37
|
+
node: MindMapNode;
|
|
38
|
+
/** 当前落点;无合法目标时为 null */
|
|
39
|
+
drop: MindMapDropTarget | null;
|
|
40
|
+
}
|
|
41
|
+
/** node-drag / node-drag-end 载荷 */
|
|
42
|
+
export interface MindMapNodeDragPayload extends MindMapDropContext {
|
|
43
|
+
event: MouseEvent | PointerEvent | TouchEvent | null;
|
|
44
|
+
/** 仅 end:是否已成功改树 */
|
|
45
|
+
moved?: boolean;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* 拖拽视觉反馈的自定义样式。
|
|
49
|
+
* 全部为可选项;未设置时使用组件内置默认值(绿色系)。
|
|
50
|
+
*/
|
|
51
|
+
export interface DragStyle {
|
|
52
|
+
/** 浮动卡片的边框颜色 */
|
|
53
|
+
floatBorderColor?: string;
|
|
54
|
+
/** 浮动卡片的背景色 */
|
|
55
|
+
floatBgColor?: string;
|
|
56
|
+
/** 浮动卡片上文字的字体颜色 */
|
|
57
|
+
floatTextColor?: string;
|
|
58
|
+
/** 落点缩影的填充颜色 */
|
|
59
|
+
slotColor?: string;
|
|
60
|
+
/** 落点缩影的边框颜色 */
|
|
61
|
+
slotBorderColor?: string;
|
|
62
|
+
/** 预览连线的颜色 */
|
|
63
|
+
linkColor?: string;
|
|
64
|
+
/** 目标节点高亮边框颜色 */
|
|
65
|
+
targetBorderColor?: string;
|
|
66
|
+
/** 目标连线高亮颜色 */
|
|
67
|
+
targetLinkColor?: string;
|
|
68
|
+
/** 被拖拽节点的透明度(0~1) */
|
|
69
|
+
draggingOpacity?: number;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* 撤销/重做与脏状态快照
|
|
73
|
+
*/
|
|
74
|
+
export interface MindMapHistoryState {
|
|
75
|
+
canUndo: boolean;
|
|
76
|
+
canRedo: boolean;
|
|
77
|
+
isModified: boolean;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* d3.hierarchy / d3.tree 的 Datum:业务节点 + 组件内部缓存字段
|
|
81
|
+
*/
|
|
82
|
+
export type MindMapDatum = MindMapNode & {
|
|
83
|
+
_nodeWidth?: number;
|
|
84
|
+
_original?: MindMapDatum;
|
|
85
|
+
};
|
|
86
|
+
/** convertData 外部输入兼容(simple-mind-map 等),不改变转换逻辑 */
|
|
87
|
+
export type MindMapLooseInput = {
|
|
88
|
+
data?: {
|
|
89
|
+
text?: string;
|
|
90
|
+
};
|
|
91
|
+
children?: MindMapLooseInput[];
|
|
92
|
+
nodeData?: MindMapNode;
|
|
93
|
+
topic?: string;
|
|
94
|
+
id?: string;
|
|
95
|
+
root?: boolean;
|
|
96
|
+
expanded?: boolean;
|
|
97
|
+
};
|
|
98
|
+
/**
|
|
99
|
+
* d3.tree() 布局后的节点 = 官方 HierarchyPointNode
|
|
100
|
+
* x0/y0/_prev* 为过渡动画字段(D3 官方类型没有,Bostock 示例常用)
|
|
101
|
+
*/
|
|
102
|
+
export type MindMapPointNode = HierarchyPointNode<MindMapDatum> & {
|
|
103
|
+
x0?: number;
|
|
104
|
+
y0?: number;
|
|
105
|
+
_prevX?: number;
|
|
106
|
+
_prevY?: number;
|
|
107
|
+
};
|
|
108
|
+
/**
|
|
109
|
+
* 布局后的连线(对应 d3 HierarchyPointLink,source/target 带动画字段)
|
|
110
|
+
*/
|
|
111
|
+
export interface MindMapPointLink {
|
|
112
|
+
source: MindMapPointNode;
|
|
113
|
+
target: MindMapPointNode;
|
|
114
|
+
}
|
|
115
|
+
/** 节点组 Selection(d3.Selection) */
|
|
116
|
+
export type MindMapNodeGroupSelection = Selection<SVGGElement, MindMapPointNode, SVGGElement | null, unknown>;
|
|
18
117
|
/**
|
|
19
118
|
* 节点样式配置函数类型
|
|
20
119
|
*/
|
|
@@ -221,6 +320,38 @@ export interface D3MindMapProps {
|
|
|
221
320
|
linkStyle?: LinkStyleConfig;
|
|
222
321
|
/** 布局配置 */
|
|
223
322
|
layoutConfig?: LayoutConfig;
|
|
323
|
+
/**
|
|
324
|
+
* 流式热更新模式:为 true 时 props.data 变化走 applyData(不折叠、不强制 fit)
|
|
325
|
+
* AI 边流边画时建议开启,或直接用 ref.applyData
|
|
326
|
+
*/
|
|
327
|
+
streaming?: boolean;
|
|
328
|
+
/**
|
|
329
|
+
* 是否允许拖拽节点排序/改挂(默认 false)
|
|
330
|
+
* 开启后:节点上拖 = 拖节点;空白处拖 = 画布平移
|
|
331
|
+
*/
|
|
332
|
+
draggable?: boolean;
|
|
333
|
+
/**
|
|
334
|
+
* 拖动中实时校验;返回 false 时不显示落点预览、松手不改树
|
|
335
|
+
*/
|
|
336
|
+
canDrop?: (ctx: MindMapDropContext) => boolean;
|
|
337
|
+
/**
|
|
338
|
+
* 拖拽反馈的自定义样式(浮动卡片、缩影、预览线、目标高亮等)。
|
|
339
|
+
* 不传则使用组件内置绿色系默认值。
|
|
340
|
+
*/
|
|
341
|
+
dragStyle?: DragStyle;
|
|
342
|
+
}
|
|
343
|
+
/**
|
|
344
|
+
* applyTreeData / setData / applyData 的内部选项
|
|
345
|
+
*/
|
|
346
|
+
export interface MindMapApplyTreeOptions {
|
|
347
|
+
/** 是否强制只展开根节点(冷启动) */
|
|
348
|
+
resetCollapse?: boolean;
|
|
349
|
+
/** 是否重置 undo/redo 基准并 markClean */
|
|
350
|
+
resetHistory?: boolean;
|
|
351
|
+
/** 是否记一笔历史(热更新结束时可 true) */
|
|
352
|
+
commitHistory?: boolean;
|
|
353
|
+
/** 是否适应窗口 */
|
|
354
|
+
fit?: boolean;
|
|
224
355
|
}
|
|
225
356
|
/**
|
|
226
357
|
* D3MindMap 组件 Emits
|
|
@@ -242,6 +373,12 @@ export interface D3MindMapEmits {
|
|
|
242
373
|
(e: 'node-expand', node: MindMapNode): void;
|
|
243
374
|
/** 节点折叠 */
|
|
244
375
|
(e: 'node-collapse', node: MindMapNode): void;
|
|
376
|
+
/** 开始拖拽节点(超过移动阈值后触发) */
|
|
377
|
+
(e: 'node-drag-start', node: MindMapNode, event: MouseEvent | PointerEvent | TouchEvent | null): void;
|
|
378
|
+
/** 拖拽中(落点变化时也会触发) */
|
|
379
|
+
(e: 'node-drag', payload: MindMapNodeDragPayload): void;
|
|
380
|
+
/** 拖拽结束;moved=true 表示已执行 moveNode */
|
|
381
|
+
(e: 'node-drag-end', payload: MindMapNodeDragPayload): void;
|
|
245
382
|
/** 缩放变化 */
|
|
246
383
|
(e: 'zoom', scale: number): void;
|
|
247
384
|
/** 平移变化 */
|
|
@@ -250,6 +387,10 @@ export interface D3MindMapEmits {
|
|
|
250
387
|
(e: 'download'): void;
|
|
251
388
|
/** 组件就绪 */
|
|
252
389
|
(e: 'ready'): void;
|
|
390
|
+
/** 相对基准数据是否已修改(脏状态) */
|
|
391
|
+
(e: 'modified', isModified: boolean): void;
|
|
392
|
+
/** 撤销/重做栈或脏状态变化 */
|
|
393
|
+
(e: 'history-change', state: MindMapHistoryState): void;
|
|
253
394
|
}
|
|
254
395
|
/**
|
|
255
396
|
* D3MindMap 组件暴露的方法
|
|
@@ -257,8 +398,12 @@ export interface D3MindMapEmits {
|
|
|
257
398
|
export interface D3MindMapExpose {
|
|
258
399
|
/** 获取数据 */
|
|
259
400
|
getData: () => MindMapData | null;
|
|
260
|
-
/**
|
|
401
|
+
/** 设置数据(冷重置:折叠到根、重置历史) */
|
|
261
402
|
setData: (data: MindMapData) => void;
|
|
403
|
+
/**
|
|
404
|
+
* 热更新数据(AI 流 / 同图增量):保留展开状态与节点坐标,不强制 fit、不重置历史
|
|
405
|
+
*/
|
|
406
|
+
applyData: (data: MindMapData) => void;
|
|
262
407
|
/** 居中到根节点 */
|
|
263
408
|
toCenter: () => void;
|
|
264
409
|
/** 展开/折叠所有节点 */
|
|
@@ -294,8 +439,30 @@ export interface D3MindMapExpose {
|
|
|
294
439
|
updateNode: (nodeId: string, data: Partial<MindMapNode>) => void;
|
|
295
440
|
/** 在指定父节点下新增子节点,返回新节点的 id */
|
|
296
441
|
addNode: (parentId: string, node: Partial<MindMapNode>) => string;
|
|
442
|
+
/**
|
|
443
|
+
* 相对参考节点按方向新增,返回新节点 id
|
|
444
|
+
* up/down=同级上/下;right=子节点;left=与父同级(插在父后方)
|
|
445
|
+
*/
|
|
446
|
+
addNodeByDirection: (referenceId: string, direction: MindMapAddDirection, node?: Partial<MindMapNode>) => string;
|
|
297
447
|
/** 删除指定节点(及其所有子节点),根节点不允许删除,返回是否删除成功 */
|
|
298
448
|
removeNode: (nodeId: string) => boolean;
|
|
449
|
+
/**
|
|
450
|
+
* 将节点移动到目标处:before/after=同级前/后,child=成为目标子节点
|
|
451
|
+
* 根节点不可移动;不可落到自身或子孙上
|
|
452
|
+
*/
|
|
453
|
+
moveNode: (nodeId: string, targetId: string, position: MindMapDropPosition) => boolean;
|
|
454
|
+
/** 撤销上一次结构/内容修改 */
|
|
455
|
+
undo: () => boolean;
|
|
456
|
+
/** 重做 */
|
|
457
|
+
redo: () => boolean;
|
|
458
|
+
/** 当前是否可撤销 */
|
|
459
|
+
canUndo: () => boolean;
|
|
460
|
+
/** 当前是否可重做 */
|
|
461
|
+
canRedo: () => boolean;
|
|
462
|
+
/** 相对 markClean/setData 基准是否有未保存修改 */
|
|
463
|
+
isModified: () => boolean;
|
|
464
|
+
/** 将当前数据标为干净基准(保存成功后调用),并保留历史栈 */
|
|
465
|
+
markClean: () => void;
|
|
299
466
|
/** 导出图片 */
|
|
300
467
|
exportImage: (format?: 'png' | 'svg', options?: ExportOptions) => Promise<Blob>;
|
|
301
468
|
/** 获取可见节点列表 */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/visualization/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/visualization/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import type { MindMapDropPosition, MindMapDropTarget, MindMapPointNode } from './types';
|
|
2
|
+
/** 节点在布局坐标系中的包围盒(与 D3MindMap rect 一致:x=-18,y=-27.5,h=55) */
|
|
3
|
+
export interface MindMapNodeBox {
|
|
4
|
+
id: string;
|
|
5
|
+
/** 水平:d3 tree 的 y */
|
|
6
|
+
left: number;
|
|
7
|
+
right: number;
|
|
8
|
+
/** 垂直:d3 tree 的 x */
|
|
9
|
+
top: number;
|
|
10
|
+
bottom: number;
|
|
11
|
+
width: number;
|
|
12
|
+
height: number;
|
|
13
|
+
cx: number;
|
|
14
|
+
cy: number;
|
|
15
|
+
topic: string;
|
|
16
|
+
depth: number;
|
|
17
|
+
hasParent: boolean;
|
|
18
|
+
/** 父节点布局信息(有父时),用于预览连线 */
|
|
19
|
+
parentCx?: number;
|
|
20
|
+
parentCy?: number;
|
|
21
|
+
parentRight?: number;
|
|
22
|
+
}
|
|
23
|
+
export declare const NODE_RECT: {
|
|
24
|
+
readonly offsetX: -18;
|
|
25
|
+
readonly offsetY: -27.5;
|
|
26
|
+
readonly height: 55;
|
|
27
|
+
};
|
|
28
|
+
export declare const DRAG_THRESHOLD_PX = 6;
|
|
29
|
+
/**
|
|
30
|
+
* 指针不在任何节点上时的最大吸附距离。
|
|
31
|
+
* 取得比节点高度大若干倍,跨组够用;再远就判定为无落点。
|
|
32
|
+
*/
|
|
33
|
+
export declare const DEFAULT_DROP_MAX_DISTANCE = 160;
|
|
34
|
+
export declare function getNodeLayoutBox(node: MindMapPointNode, getWidth: (n: MindMapPointNode) => number): MindMapNodeBox;
|
|
35
|
+
/** 收集 dragging 节点及其子孙 id */
|
|
36
|
+
export declare function collectSubtreeIds(node: MindMapPointNode, out?: Set<string>): Set<string>;
|
|
37
|
+
/**
|
|
38
|
+
* 相对目标包围盒判定 before / after / child
|
|
39
|
+
* - 盒内:上 30% → before;下 30% → after;中间 40% → child(不分左右,方便挂子节点)
|
|
40
|
+
* - 盒外:右侧 → child;上下 → before / after
|
|
41
|
+
*/
|
|
42
|
+
export declare function resolvePositionInBox(pointer: {
|
|
43
|
+
x: number;
|
|
44
|
+
y: number;
|
|
45
|
+
}, box: MindMapNodeBox): MindMapDropPosition;
|
|
46
|
+
export declare function resolveDropTarget(options: {
|
|
47
|
+
pointer: {
|
|
48
|
+
x: number;
|
|
49
|
+
y: number;
|
|
50
|
+
};
|
|
51
|
+
dragBox?: MindMapDragFloatBox;
|
|
52
|
+
boxes: MindMapNodeBox[];
|
|
53
|
+
draggingId: string;
|
|
54
|
+
blockedIds: Set<string>;
|
|
55
|
+
maxDistance?: number;
|
|
56
|
+
}): MindMapDropTarget | null;
|
|
57
|
+
/** 跟随指针的浮动幽灵框(布局坐标,与 mindmap-group 一致) */
|
|
58
|
+
export interface MindMapDragFloatBox {
|
|
59
|
+
x: number;
|
|
60
|
+
y: number;
|
|
61
|
+
width: number;
|
|
62
|
+
height: number;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* 幽灵框位置:保持按下时指针与节点框的相对偏移,做到「跟手」
|
|
66
|
+
*/
|
|
67
|
+
export declare function getDragFloatBox(pointer: {
|
|
68
|
+
x: number;
|
|
69
|
+
y: number;
|
|
70
|
+
}, grabOffset: {
|
|
71
|
+
x: number;
|
|
72
|
+
y: number;
|
|
73
|
+
}, width: number): MindMapDragFloatBox;
|
|
74
|
+
/** 拖拽缩影与预览连线 */
|
|
75
|
+
export interface MindMapDropPreview {
|
|
76
|
+
slot: {
|
|
77
|
+
x: number;
|
|
78
|
+
y: number;
|
|
79
|
+
width: number;
|
|
80
|
+
height: number;
|
|
81
|
+
};
|
|
82
|
+
/** 从将来的父节点连到缩影的预览线 */
|
|
83
|
+
linkPath: string;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* 落点预览:缩影跟随浮动卡片,预览线连接将来的父节点。
|
|
87
|
+
* 真实布局在松手前保持不动。
|
|
88
|
+
*/
|
|
89
|
+
export declare function getDropPreview(drop: MindMapDropTarget, boxes: MindMapNodeBox[], float: MindMapDragFloatBox): MindMapDropPreview | null;
|
|
90
|
+
//# sourceMappingURL=useMindMapDrag.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMindMapDrag.d.ts","sourceRoot":"","sources":["../../../src/components/visualization/useMindMapDrag.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { MindMapData, MindMapHistoryState, MindMapNode } from './types';
|
|
2
|
+
/** 脏检测忽略 expanded(展开折叠不算已修改),并去掉内部缓存字段 */
|
|
3
|
+
export declare function hashMindMapForDirtyCheck(data: MindMapData | null): string;
|
|
4
|
+
export interface UseMindMapHistoryOptions {
|
|
5
|
+
getData: () => MindMapData | null;
|
|
6
|
+
/** undo/redo 时把快照灌回真实树并重绘 */
|
|
7
|
+
applyHistorySnapshot: (data: MindMapData) => void;
|
|
8
|
+
onHistoryChange: (state: MindMapHistoryState) => void;
|
|
9
|
+
onModified: (isModified: boolean) => void;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* 思维导图撤销/重做与脏状态(VueUse useManualRefHistory)
|
|
13
|
+
*/
|
|
14
|
+
export declare function useMindMapHistory(options: UseMindMapHistoryOptions): {
|
|
15
|
+
historySource: import("vue").ShallowRef<MindMapData | null, MindMapData | null>;
|
|
16
|
+
isModifiedState: import("vue").Ref<boolean, boolean>;
|
|
17
|
+
canUndoRef: import("vue").ComputedRef<boolean>;
|
|
18
|
+
canRedoRef: import("vue").ComputedRef<boolean>;
|
|
19
|
+
commitHistory: () => void;
|
|
20
|
+
clearHistoryStack: () => void;
|
|
21
|
+
resetHistoryBaseline: () => void;
|
|
22
|
+
markClean: () => void;
|
|
23
|
+
recordHistoryAfterChange: () => void;
|
|
24
|
+
syncModifiedFlag: () => void;
|
|
25
|
+
emitHistoryState: () => void;
|
|
26
|
+
canUndo: () => boolean;
|
|
27
|
+
canRedo: () => boolean;
|
|
28
|
+
isModified: () => boolean;
|
|
29
|
+
undo: () => boolean;
|
|
30
|
+
redo: () => boolean;
|
|
31
|
+
};
|
|
32
|
+
/** 供外部类型复用 */
|
|
33
|
+
export type MindMapHistoryNode = MindMapNode;
|
|
34
|
+
//# sourceMappingURL=useMindMapHistory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMindMapHistory.d.ts","sourceRoot":"","sources":["../../../src/components/visualization/useMindMapHistory.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAI5E,0CAA0C;AAC1C,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,MAAM,CAiBzE;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,MAAM,WAAW,GAAG,IAAI,CAAA;IACjC,6BAA6B;IAC7B,oBAAoB,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAA;IACjD,eAAe,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAA;IACrD,UAAU,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,CAAA;CAC1C;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,wBAAwB;;;;;;;;;;;;mBAoE7C,OAAO;mBACP,OAAO;sBACJ,OAAO;gBAEb,OAAO;gBAMP,OAAO;EAwBzB;AAED,cAAc;AACd,MAAM,MAAM,kBAAkB,GAAG,WAAW,CAAA"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { MindMapDatum, MindMapPointNode } from './types';
|
|
2
|
+
export type MindMapPositionMap = Map<string, {
|
|
3
|
+
x: number;
|
|
4
|
+
y: number;
|
|
5
|
+
}>;
|
|
6
|
+
/**
|
|
7
|
+
* 重建 hierarchy 后回填旧坐标,避免已有节点从父节点飞出;
|
|
8
|
+
* 真正新增的节点记入 fromParentOnce,保留从父展开动画。
|
|
9
|
+
*/
|
|
10
|
+
export declare function restorePositionsAfterRebuild(root: MindMapPointNode | null | undefined, lastPositions: MindMapPositionMap, fromParentOnce: Set<string>): void;
|
|
11
|
+
/** 重建前把当前布局坐标写入 lastPositions,供 restore 使用 */
|
|
12
|
+
export declare function snapshotCurrentPositions(root: MindMapPointNode | null | undefined, lastPositions: MindMapPositionMap): void;
|
|
13
|
+
/** 记录动画前坐标(展开/折叠过渡用) */
|
|
14
|
+
export declare function snapshotTreePositions(root: MindMapPointNode): void;
|
|
15
|
+
/** 节点高度近似值(含内边距),用于垂直间距估算 */
|
|
16
|
+
export declare function getDefaultNodeHeight(): number;
|
|
17
|
+
export type VisibleChildrenGetter = (d: MindMapDatum) => MindMapDatum[] | null | undefined;
|
|
18
|
+
export type NodeWidthGetter = (node: MindMapPointNode) => number;
|
|
19
|
+
/**
|
|
20
|
+
* 基于可见子树做 tidy tree 水平布局,并把坐标回填到完整 hierarchy。
|
|
21
|
+
* 布局算法本身留在组件侧的大函数可逐步迁入;此处先提供定位辅助常量。
|
|
22
|
+
*/
|
|
23
|
+
export declare function createMindMapPositionHelpers(lastPositions: MindMapPositionMap, fromParentOnce: Set<string>): {
|
|
24
|
+
snapshot: (root: MindMapPointNode | null | undefined) => void;
|
|
25
|
+
restore: (root: MindMapPointNode | null | undefined) => void;
|
|
26
|
+
snapshotTree: typeof snapshotTreePositions;
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=useMindMapLayoutEngine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMindMapLayoutEngine.d.ts","sourceRoot":"","sources":["../../../src/components/visualization/useMindMapLayoutEngine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAE7D,MAAM,MAAM,kBAAkB,GAAG,GAAG,CAAC,MAAM,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAAA;AAEtE;;;GAGG;AACH,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,gBAAgB,GAAG,IAAI,GAAG,SAAS,EACzC,aAAa,EAAE,kBAAkB,EACjC,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,GAC1B,IAAI,CAcN;AAED,8CAA8C;AAC9C,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,gBAAgB,GAAG,IAAI,GAAG,SAAS,EACzC,aAAa,EAAE,kBAAkB,GAChC,IAAI,CAON;AAED,wBAAwB;AACxB,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI,CAQlE;AAED,6BAA6B;AAC7B,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAED,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,EAAE,YAAY,KAAK,YAAY,EAAE,GAAG,IAAI,GAAG,SAAS,CAAA;AAC1F,MAAM,MAAM,eAAe,GAAG,CAAC,IAAI,EAAE,gBAAgB,KAAK,MAAM,CAAA;AAEhE;;;GAGG;AACH,wBAAgB,4BAA4B,CAC1C,aAAa,EAAE,kBAAkB,EACjC,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC;qBAGR,gBAAgB,GAAG,IAAI,GAAG,SAAS;oBAEpC,gBAAgB,GAAG,IAAI,GAAG,SAAS;;EAItD"}
|