diff --git a/simple-mind-map/types/index.d.ts b/simple-mind-map/types/index.d.ts index 3d9e4572..60afdeff 100644 --- a/simple-mind-map/types/index.d.ts +++ b/simple-mind-map/types/index.d.ts @@ -1,325 +1,338 @@ -export default MindMap; +import { MiniMap } from './src/plugins/MiniMap' + +export default MindMap declare class MindMap { - /** - * - * @param {defaultOpt} opt - */ - constructor(opt?:{ - el?:any; - data?:any; - viewData?:any; - readonly?:boolean; - layout?:string; - fishboneDeg?:number; - theme?:string; - themeConfig?:{}; - scaleRatio?:number; - translateRatio?:number; - minZoomRatio?:number; - maxZoomRatio?:number; - customCheckIsTouchPad?:any; - mouseScaleCenterUseMousePosition?:boolean; - maxTag?:number; - expandBtnSize?:number; - imgTextMargin?:number; - textContentMargin?:number; - customNoteContentShow?:any; - textAutoWrapWidth?:number; - customHandleMousewheel?:any; - mousewheelAction?:string; - mousewheelMoveStep?:number; - mousewheelZoomActionReverse?:boolean; - defaultInsertSecondLevelNodeText?:string; - defaultInsertBelowSecondLevelNodeText?:string; - expandBtnStyle?:{ - color?:string; - fill?:string; - fontSize?:number; - strokeColor?:string; - }; - expandBtnIcon?:{ - open?:string; - close?:string; - }; - expandBtnNumHandler?:any; - isShowExpandNum?:boolean; - enableShortcutOnlyWhenMouseInSvg?:boolean; - customCheckEnableShortcut?:any; - initRootNodePosition?:any; - nodeTextEditZIndex?:number; - nodeNoteTooltipZIndex?:number; - isEndNodeTextEditOnClickOuter?:boolean; - maxHistoryCount?:number; - alwaysShowExpandBtn?:boolean; - notShowExpandBtn?:boolean; - iconList?:any[]; - maxNodeCacheCount?:number; - fitPadding?:number; - enableCtrlKeyNodeSelection?:boolean; - useLeftKeySelectionRightKeyDrag?:boolean; - beforeTextEdit?:any; - isUseCustomNodeContent?:boolean; - customCreateNodeContent?:any; - customInnerElsAppendTo?:any; - enableAutoEnterTextEditWhenKeydown?:boolean; - autoEmptyTextWhenKeydownEnterEdit?:boolean; - customHandleClipboardText?:any; - disableMouseWheelZoom?:boolean; - errorHandler?:(code?:any, error?:any) => void; - enableDblclickBackToRootNode?:boolean; - hoverRectColor?:string; - hoverRectPadding?:number; - selectTextOnEnterEditText?:boolean; - deleteNodeActive?:boolean; - fit?:boolean; - tagsColorMap?:{}; - cooperateStyle?:{ - avatarSize?:number; - fontSize?:number; - }; - onlyOneEnableActiveNodeOnCooperate?:boolean; - defaultGeneralizationText?:string; - handleIsSplitByWrapOnPasteCreateNewNode?:any; - addHistoryTime?:number; - isDisableDrag?:boolean; - createNewNodeBehavior?:string; - defaultNodeImage?:string; - isLimitMindMapInCanvas?:boolean; - handleNodePasteImg?:any; - customCreateNodePath?:any; - customCreateNodePolygon?:any; - customTransformNodeLinePath?:any; - beforeShortcutRun?:any; - resetScaleOnMoveNodeToCenter?:boolean; - createNodePrefixContent?:any; - createNodePostfixContent?:any; - disabledClipboard?:boolean; - customHyperlinkJump?:any; - openPerformance?:boolean; - performanceConfig?:{ - time?:number; - padding?:number; - removeNodeWhenOutCanvas?:boolean; - }; - emptyTextMeasureHeightText?:string; - openRealtimeRenderOnNodeTextEdit?:boolean; - mousedownEventPreventDefault?:boolean; - onlyPasteTextWhenHasImgAndText?:boolean; - enableDragModifyNodeWidth?:boolean; - minNodeTextModifyWidth?:number; - maxNodeTextModifyWidth?:number; - customHandleLine?:any; - addHistoryOnInit?:boolean; - noteIcon?:{ - icon?:string; - style?:{}; - }; - hyperlinkIcon?:{ - icon?:string; - style?:{}; - }; - attachmentIcon?:{ - icon?:string; - style?:{}; - }; - isShowCreateChildBtnIcon?:boolean; - quickCreateChildBtnIcon?:{ - icon?:string; - style?:{}; - }; - customQuickCreateChildBtnClick?:any; - addCustomContentToNode?:any; - enableInheritAncestorLineStyle?:boolean; - selectTranslateStep?:number; - selectTranslateLimit?:number; - enableFreeDrag?:boolean; - autoMoveWhenMouseInEdgeOnDrag?:boolean; - dragMultiNodeRectConfig?:{ - width?:number; - height?:number; - fill?:string; - }; - dragPlaceholderRectFill?:string; - dragPlaceholderLineConfig?:{ - color?:string; - width?:number; - }; - dragOpacityConfig?:{ - cloneNodeOpacity?:number; - beingDragNodeOpacity?:number; - }; - handleDragCloneNode?:any; - beforeDragEnd?:any; - beforeDragStart?:any; - watermarkConfig?:{ - onlyExport?:boolean; - text?:string; - lineSpacing?:number; - textSpacing?:number; - angle?:number; - textStyle?:{ - color?:string; - opacity?:number; - fontSize?:number; - }; - belowNode?:boolean; - }; - exportPaddingX?:number; - exportPaddingY?:number; - resetCss?:string; - minExportImgCanvasScale?:number; - addContentToHeader?:any; - addContentToFooter?:any; - handleBeingExportSvg?:any; - maxCanvasSize?:number; - defaultAssociativeLineText?:string; - associativeLineIsAlwaysAboveNode?:boolean; - associativeLineInitPointsPosition?:{ - from?:string; - to?:string; - }; - enableAdjustAssociativeLinePoints?:boolean; - beforeAssociativeLineConnection?:any; - disableTouchZoom?:boolean; - minTouchZoomScale?:number; - maxTouchZoomScale?:number; - isLimitMindMapInCanvasWhenHasScrollbar?:boolean; - isOnlySearchCurrentRenderNodes?:boolean; - beforeCooperateUpdate?:any; - rainbowLinesConfig?:{ - open?:boolean; - colorsList?:any[]; - }; - demonstrateConfig?:any; - enableEditFormulaInRichTextEdit?:boolean; - katexFontPath?:string; - getKatexOutputType?:any; - transformRichTextOnEnterEdit?:any; - beforeHideRichTextEdit?:any; - outerFramePaddingX?:number; - outerFramePaddingY?:number; - defaultOuterFrameText?:string; - onlyPainterNodeCustomStyles?:boolean; - beforeDeleteNodeImg?:any; - imgResizeBtnSize?:number; - minImgResizeWidth?:number; - minImgResizeHeight?:number; - maxImgResizeWidthInheritTheme?:boolean; - maxImgResizeWidth?:number; - maxImgResizeHeight?:number; - customDeleteBtnInnerHTML?:string; - customResizeBtnInnerHTML?:string; - }); - opt?:any; - el?:any; - initWidth?:any; - initHeight?:any; - cssEl?:HTMLStyleElement; - cssTextMap?:{}; - nodeInnerPrefixList?:any[]; - nodeInnerPostfixList?:any[]; - editNodeClassList?:any[]; - extendShapeList?:any[]; - event?:Event; - keyCommand?:KeyCommand; - command?:Command; - renderer?:Render; - view?:View; - batchExecution?:BatchExecution; - handleOpt(opt?:any):any; - handleData(data?:any):any; - initContainer():void; - associativeLineDraw?:any; - svg?:any; - draw?:any; - lineDraw?:any; - nodeDraw?:any; - otherDraw?:any; - clearDraw():void; - appendCss(key?:any, str?:any):void; - removeAppendCss(key?:any):void; - joinCss():string; - addCss():void; - removeCss():void; - checkEditNodeClassIndex(className?:any):number; - addEditNodeClass(className?:any):void; - deleteEditNodeClass(className?:any):void; - render(callback?:any, source?:string):void; - reRender(callback?:any, source?:string):void; - getElRectInfo():void; - elRect?:any; - width?:any; - height?:any; - resize():void; - on(event?:any, fn?:any):void; - emit(event?:any, ...args?:any[]):void; - off(event?:any, fn?:any):void; - initCache():void; - commonCaches?:{ - measureCustomNodeContentSizeEl?:any; - measureRichtextNodeTextSizeEl?:any; - }; - initTheme():void; - themeConfig?:any; - setTheme(theme?:any, notRender?:boolean):void; - getTheme():any; - setThemeConfig(config?:any, notRender?:boolean):void; - getCustomThemeConfig():any; - getThemeConfig(prop?:any):any; - getConfig(prop?:any):any; - updateConfig(opt?:{}):void; - getLayout():any; - setLayout(layout?:any, notRender?:boolean):void; - execCommand(...args?:any[]):void; - updateData(data?:any):void; - setData(data?:any):void; - setFullData(data?:any):void; - getData(withConfig?:any):any; - export(...args?:any[]):Promise; - toPos(x?:any, y?:any):{ - x?:number; - y?:number; - }; - setMode(mode?:any):void; - getSvgData({ paddingX, paddingY, ignoreWatermark, addContentToHeader, addContentToFooter, node }?:{ - paddingX?:number; - paddingY?:number; - ignoreWatermark?:boolean; - }):{ - svg?:any; - svgHTML?:any; - clipData?:any; - rect?:any; - origWidth?:any; - origHeight?:any; - scaleX?:any; - scaleY?:any; - }; - addShape(shape?:any):void; - removeShape(name?:any):void; - getSvgObjects():{ - SVG?:any; - G?:any; - Rect?:any; - }; - addPlugin(plugin?:any, opt?:any):void; - removePlugin(plugin?:any):void; - initPlugin(plugin?:any):void; - destroy():void; + /** + * + * @param {defaultOpt} opt + */ + constructor(opt?: { + el?: any + data?: any + viewData?: any + readonly?: boolean + layout?: string + fishboneDeg?: number + theme?: string + themeConfig?: {} + scaleRatio?: number + translateRatio?: number + minZoomRatio?: number + maxZoomRatio?: number + customCheckIsTouchPad?: any + mouseScaleCenterUseMousePosition?: boolean + maxTag?: number + expandBtnSize?: number + imgTextMargin?: number + textContentMargin?: number + customNoteContentShow?: any + textAutoWrapWidth?: number + customHandleMousewheel?: any + mousewheelAction?: string + mousewheelMoveStep?: number + mousewheelZoomActionReverse?: boolean + defaultInsertSecondLevelNodeText?: string + defaultInsertBelowSecondLevelNodeText?: string + expandBtnStyle?: { + color?: string + fill?: string + fontSize?: number + strokeColor?: string + } + expandBtnIcon?: { + open?: string + close?: string + } + expandBtnNumHandler?: any + isShowExpandNum?: boolean + enableShortcutOnlyWhenMouseInSvg?: boolean + customCheckEnableShortcut?: any + initRootNodePosition?: any + nodeTextEditZIndex?: number + nodeNoteTooltipZIndex?: number + isEndNodeTextEditOnClickOuter?: boolean + maxHistoryCount?: number + alwaysShowExpandBtn?: boolean + notShowExpandBtn?: boolean + iconList?: any[] + maxNodeCacheCount?: number + fitPadding?: number + enableCtrlKeyNodeSelection?: boolean + useLeftKeySelectionRightKeyDrag?: boolean + beforeTextEdit?: any + isUseCustomNodeContent?: boolean + customCreateNodeContent?: any + customInnerElsAppendTo?: any + enableAutoEnterTextEditWhenKeydown?: boolean + autoEmptyTextWhenKeydownEnterEdit?: boolean + customHandleClipboardText?: any + disableMouseWheelZoom?: boolean + errorHandler?: (code?: any, error?: any) => void + enableDblclickBackToRootNode?: boolean + hoverRectColor?: string + hoverRectPadding?: number + selectTextOnEnterEditText?: boolean + deleteNodeActive?: boolean + fit?: boolean + tagsColorMap?: {} + cooperateStyle?: { + avatarSize?: number + fontSize?: number + } + onlyOneEnableActiveNodeOnCooperate?: boolean + defaultGeneralizationText?: string + handleIsSplitByWrapOnPasteCreateNewNode?: any + addHistoryTime?: number + isDisableDrag?: boolean + createNewNodeBehavior?: string + defaultNodeImage?: string + isLimitMindMapInCanvas?: boolean + handleNodePasteImg?: any + customCreateNodePath?: any + customCreateNodePolygon?: any + customTransformNodeLinePath?: any + beforeShortcutRun?: any + resetScaleOnMoveNodeToCenter?: boolean + createNodePrefixContent?: any + createNodePostfixContent?: any + disabledClipboard?: boolean + customHyperlinkJump?: any + openPerformance?: boolean + performanceConfig?: { + time?: number + padding?: number + removeNodeWhenOutCanvas?: boolean + } + emptyTextMeasureHeightText?: string + openRealtimeRenderOnNodeTextEdit?: boolean + mousedownEventPreventDefault?: boolean + onlyPasteTextWhenHasImgAndText?: boolean + enableDragModifyNodeWidth?: boolean + minNodeTextModifyWidth?: number + maxNodeTextModifyWidth?: number + customHandleLine?: any + addHistoryOnInit?: boolean + noteIcon?: { + icon?: string + style?: {} + } + hyperlinkIcon?: { + icon?: string + style?: {} + } + attachmentIcon?: { + icon?: string + style?: {} + } + isShowCreateChildBtnIcon?: boolean + quickCreateChildBtnIcon?: { + icon?: string + style?: {} + } + customQuickCreateChildBtnClick?: any + addCustomContentToNode?: any + enableInheritAncestorLineStyle?: boolean + selectTranslateStep?: number + selectTranslateLimit?: number + enableFreeDrag?: boolean + autoMoveWhenMouseInEdgeOnDrag?: boolean + dragMultiNodeRectConfig?: { + width?: number + height?: number + fill?: string + } + dragPlaceholderRectFill?: string + dragPlaceholderLineConfig?: { + color?: string + width?: number + } + dragOpacityConfig?: { + cloneNodeOpacity?: number + beingDragNodeOpacity?: number + } + handleDragCloneNode?: any + beforeDragEnd?: any + beforeDragStart?: any + watermarkConfig?: { + onlyExport?: boolean + text?: string + lineSpacing?: number + textSpacing?: number + angle?: number + textStyle?: { + color?: string + opacity?: number + fontSize?: number + } + belowNode?: boolean + } + exportPaddingX?: number + exportPaddingY?: number + resetCss?: string + minExportImgCanvasScale?: number + addContentToHeader?: any + addContentToFooter?: any + handleBeingExportSvg?: any + maxCanvasSize?: number + defaultAssociativeLineText?: string + associativeLineIsAlwaysAboveNode?: boolean + associativeLineInitPointsPosition?: { + from?: string + to?: string + } + enableAdjustAssociativeLinePoints?: boolean + beforeAssociativeLineConnection?: any + disableTouchZoom?: boolean + minTouchZoomScale?: number + maxTouchZoomScale?: number + isLimitMindMapInCanvasWhenHasScrollbar?: boolean + isOnlySearchCurrentRenderNodes?: boolean + beforeCooperateUpdate?: any + rainbowLinesConfig?: { + open?: boolean + colorsList?: any[] + } + demonstrateConfig?: any + enableEditFormulaInRichTextEdit?: boolean + katexFontPath?: string + getKatexOutputType?: any + transformRichTextOnEnterEdit?: any + beforeHideRichTextEdit?: any + outerFramePaddingX?: number + outerFramePaddingY?: number + defaultOuterFrameText?: string + onlyPainterNodeCustomStyles?: boolean + beforeDeleteNodeImg?: any + imgResizeBtnSize?: number + minImgResizeWidth?: number + minImgResizeHeight?: number + maxImgResizeWidthInheritTheme?: boolean + maxImgResizeWidth?: number + maxImgResizeHeight?: number + customDeleteBtnInnerHTML?: string + customResizeBtnInnerHTML?: string + }) + opt?: any + el?: any + initWidth?: any + initHeight?: any + cssEl?: HTMLStyleElement + cssTextMap?: {} + nodeInnerPrefixList?: any[] + nodeInnerPostfixList?: any[] + editNodeClassList?: any[] + extendShapeList?: any[] + event?: Event + keyCommand?: KeyCommand + command?: Command + renderer?: Render + view?: View + batchExecution?: BatchExecution + handleOpt(opt?: any): any + handleData(data?: any): any + initContainer(): void + associativeLineDraw?: any + svg?: any + draw?: any + lineDraw?: any + nodeDraw?: any + otherDraw?: any + clearDraw(): void + appendCss(key?: any, str?: any): void + removeAppendCss(key?: any): void + joinCss(): string + addCss(): void + removeCss(): void + checkEditNodeClassIndex(className?: any): number + addEditNodeClass(className?: any): void + deleteEditNodeClass(className?: any): void + render(callback?: any, source?: string): void + reRender(callback?: any, source?: string): void + getElRectInfo(): void + elRect?: any + width?: any + height?: any + resize(): void + on(event?: any, fn?: any): void + emit(event?: any, ...args: any[]): void + off(event?: any, fn?: any): void + initCache(): void + commonCaches?: { + measureCustomNodeContentSizeEl?: any + measureRichtextNodeTextSizeEl?: any + } + initTheme(): void + themeConfig?: any + setTheme(theme?: any, notRender?: boolean): void + getTheme(): any + setThemeConfig(config?: any, notRender?: boolean): void + getCustomThemeConfig(): any + getThemeConfig(prop?: any): any + getConfig(prop?: any): any + updateConfig(opt?: {}): void + getLayout(): any + setLayout(layout?: any, notRender?: boolean): void + execCommand(...args: any[]): void + updateData(data?: any): void + setData(data?: any): void + setFullData(data?: any): void + getData(withConfig?: any): any + export(...args: any[]): Promise + toPos( + x?: any, + y?: any + ): { + x?: number + y?: number + } + setMode(mode?: any): void + getSvgData({ + paddingX, + paddingY, + ignoreWatermark, + addContentToHeader, + addContentToFooter, + node + }?: { + paddingX?: number + paddingY?: number + ignoreWatermark?: boolean + }): { + svg?: any + svgHTML?: any + clipData?: any + rect?: any + origWidth?: any + origHeight?: any + scaleX?: any + scaleY?: any + } + addShape(shape?: any): void + removeShape(name?: any): void + getSvgObjects(): { + SVG?: any + G?: any + Rect?: any + } + addPlugin(plugin?: any, opt?: any): void + removePlugin(plugin?: any): void + initPlugin(plugin?: any): void + destroy(): void + miniMap?: MiniMap } declare namespace MindMap { - function extendNodeDataNoStylePropList(list?:any[]):void; - function resetNodeDataNoStylePropList():void; - let pluginList:any[]; - function usePlugin(plugin?:any, opt?:{}):typeof MindMap; - function hasPlugin(plugin?:any):number; - let instanceCount:number; - function defineTheme(name?:any, config?:{}):Error; - function removeTheme(name?:any):void; + function extendNodeDataNoStylePropList(list?: any[]): void + function resetNodeDataNoStylePropList(): void + let pluginList: any[] + function usePlugin(plugin?: any, opt?: {}): typeof MindMap + function hasPlugin(plugin?: any): number + let instanceCount: number + function defineTheme(name?: any, config?: {}): Error + function removeTheme(name?: any): void } -import Event from './src/core/event/Event'; -import KeyCommand from './src/core/command/KeyCommand'; -import Command from './src/core/command/Command'; -import Render from './src/core/render/Render'; -import View from './src/core/view/View'; -import BatchExecution from './src/utils/BatchExecution'; +import Event from './src/core/event/Event' +import KeyCommand from './src/core/command/KeyCommand' +import Command from './src/core/command/Command' +import Render from './src/core/render/Render' +import View from './src/core/view/View' +import BatchExecution from './src/utils/BatchExecution' diff --git a/web3/packages/mind-map/src/components/MindMap.vue b/web3/packages/mind-map/src/components/MindMap.vue index 5f7b7f7e..fc3831bc 100644 --- a/web3/packages/mind-map/src/components/MindMap.vue +++ b/web3/packages/mind-map/src/components/MindMap.vue @@ -10,20 +10,28 @@ const { getMindMapInstance } = mindMapStore; const { isDark, showMiniMap } = storeToRefs(mindMapStore); // 使用防抖函数处理画布更新 -const debouncedDrawMiniMap = debounce(() => { - drawMiniMap(); -}, 500); +const debouncedDrawMiniMap = debounce( + () => { + drawMiniMap(); + }, + 500, + null +); // 使用防抖函数处理窗口大小变化 -const debouncedSetSize = debounce(() => { - width.value = Math.min(window.innerWidth - 80, 370); - nextTick(() => { - if (showMiniMap.value && navigatorBoxRef.value) { - init(); - drawMiniMap(); - } - }); -}, 300); +const debouncedSetSize = debounce( + () => { + width.value = Math.min(window.innerWidth - 80, 370); + nextTick(() => { + if (showMiniMap.value && navigatorBoxRef.value) { + init(); + drawMiniMap(); + } + }); + }, + 300, + null +); const svgBoxScale = ref(1); @@ -51,9 +59,12 @@ async function init() { const mindMapInstance = getMindMapInstance(); // mini_map_view_box_position_change - mindMapInstance?.on("mini_map_view_box_position_change", (e) => { - onViewBoxPositionChange(e); - }); + mindMapInstance?.on( + "mini_map_view_box_position_change", + (e: { left: string; right: string; top: string; bottom: string }) => { + onViewBoxPositionChange(e); + } + ); // view_data_change mindMapInstance?.on("view_data_change", dataChange); @@ -115,7 +126,7 @@ function setSize() { debouncedSetSize(); } -function onMousedown(e) { +function onMousedown(e: MouseEvent) { const mindMapInstance = getMindMapInstance(); if ( mindMapInstance && @@ -126,7 +137,7 @@ function onMousedown(e) { } } -function onMousemove(e) { +function onMousemove(e: MouseEvent) { const mindMapInstance = getMindMapInstance(); if ( mindMapInstance && @@ -137,7 +148,7 @@ function onMousemove(e) { } } -function onMouseup(e) { +function onMouseup(e: MouseEvent) { if (!withTransition.value) withTransition.value = true; const mindMapInstance = getMindMapInstance(); @@ -151,7 +162,7 @@ function onMouseup(e) { } } -function onViewBoxMousedown(e) { +function onViewBoxMousedown(e: MouseEvent) { const mindMapInstance = getMindMapInstance(); if ( mindMapInstance && @@ -162,7 +173,7 @@ function onViewBoxMousedown(e) { } } -function onViewBoxMousemove(e) { +function onViewBoxMousemove(e: MouseEvent) { const mindMapInstance = getMindMapInstance(); if ( mindMapInstance && @@ -173,7 +184,17 @@ function onViewBoxMousemove(e) { } } -function onViewBoxPositionChange({ left, right, top, bottom }) { +function onViewBoxPositionChange({ + left, + right, + top, + bottom, +}: { + left: string; + right: string; + top: string; + bottom: string; +}) { withTransition.value = false; viewBoxStyle.value.left = left; viewBoxStyle.value.right = right;