@flowgram-vue/minimap-plugin 0.2.0

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.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/draw.ts","../src/constant.ts","../src/service.ts","../src/component.ts","../src/wrap-layer-render.ts","../src/layer.ts","../src/create-plugin.ts"],"names":["MinimapDraw","FlowMinimapService","MouseTouchEvent","DisposableCollection","throttle","Rectangle","FlowNodeTransformData","FlowNodeBaseType","inject","FlowDocument","PlaygroundConfigEntity","injectable","defineComponent","PlaygroundVueContainerKey","shallowRef","onMounted","onBeforeUnmount","h","provide","PlaygroundVueRefKey","Playground","FlowMinimapLayer","Layer","domUtils","PlaygroundContainerFactory","observeEntityDatas","FlowNodeEntity","observeEntity","FlowDocumentTransformerEntity","definePluginCreator"],"mappings":"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","file":"index.cjs","sourcesContent":["/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport type { IPoint, Rectangle } from '@flowgram-vue/utils';\n\nexport namespace MinimapDraw {\n /** 矩形是否合法 */\n const isRectValid = (rect: Rectangle): boolean => rect.width > 0 && rect.height > 0;\n\n /** 清空画布 */\n export const clear = (params: {\n canvas: HTMLCanvasElement;\n context: CanvasRenderingContext2D;\n }) => {\n const { canvas, context } = params;\n context.clearRect(0, 0, canvas.width, canvas.height);\n };\n\n /** 设置背景色 */\n export const backgroundColor = (params: {\n canvas: HTMLCanvasElement;\n context: CanvasRenderingContext2D;\n color: string;\n }) => {\n const { canvas, context, color } = params;\n context.fillStyle = color;\n context.fillRect(0, 0, canvas.width, canvas.height);\n };\n\n /** 绘制矩形 */\n export const rectangle = (params: {\n context: CanvasRenderingContext2D;\n rect: Rectangle;\n color: string;\n }): void => {\n const { context, rect, color } = params;\n if (!isRectValid(rect)) {\n return;\n }\n context.fillStyle = color;\n context.fillRect(rect.x, rect.y, rect.width, rect.height);\n };\n\n /** 绘制圆角矩形 */\n export const roundRectangle = (params: {\n context: CanvasRenderingContext2D;\n rect: Rectangle;\n color: string;\n radius: number;\n borderColor?: string;\n borderWidth?: number;\n borderDashLength?: number;\n }): void => {\n const { context, rect, color, radius, borderColor, borderDashLength, borderWidth = 0 } = params;\n const { x, y, width, height } = rect;\n\n if (!isRectValid(rect)) {\n return;\n }\n\n // 开始新路径\n context.beginPath();\n\n // 绘制圆角矩形路径\n const drawRoundedRectPath = (): void => {\n context.moveTo(x + radius, y);\n context.lineTo(x + width - radius, y);\n context.quadraticCurveTo(x + width, y, x + width, y + radius);\n context.lineTo(x + width, y + height - radius);\n context.quadraticCurveTo(x + width, y + height, x + width - radius, y + height);\n context.lineTo(x + radius, y + height);\n context.quadraticCurveTo(x, y + height, x, y + height - radius);\n context.lineTo(x, y + radius);\n context.quadraticCurveTo(x, y, x + radius, y);\n context.closePath();\n };\n\n drawRoundedRectPath();\n\n // 填充矩形\n context.fillStyle = color;\n context.fill();\n\n // 如果设置了边框,绘制边框\n if (borderColor && borderWidth > 0) {\n context.strokeStyle = borderColor;\n context.lineWidth = borderWidth;\n\n // 设置虚线样式\n if (borderDashLength) {\n context.setLineDash([borderDashLength, borderDashLength]);\n } else {\n context.setLineDash([]);\n }\n\n context.stroke();\n\n // 重置虚线样式\n context.setLineDash([]);\n }\n };\n\n /** 绘制矩形外的蒙层 */\n export const overlay = (params: {\n canvas: HTMLCanvasElement;\n context: CanvasRenderingContext2D;\n offset: IPoint;\n scale: number;\n rect: Rectangle;\n color: string;\n }): void => {\n const { canvas, context, offset, scale, rect, color } = params;\n\n if (!isRectValid(rect)) {\n return;\n }\n\n context.fillStyle = color;\n\n // 上方蒙层\n context.fillRect(0, 0, canvas.width, (rect.y + offset.y) * scale);\n\n // 下方蒙层\n context.fillRect(\n 0,\n (rect.y + rect.height + offset.y) * scale,\n canvas.width,\n canvas.height - (rect.y + rect.height + offset.y) * scale\n );\n\n // 左侧蒙层\n context.fillRect(\n 0,\n (rect.y + offset.y) * scale,\n (rect.x + offset.x) * scale,\n rect.height * scale\n );\n\n // 右侧蒙层\n context.fillRect(\n (rect.x + rect.width + offset.x) * scale,\n (rect.y + offset.y) * scale,\n canvas.width - (rect.x + rect.width + offset.x) * scale,\n rect.height * scale\n );\n };\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport type { MinimapCanvasStyle, MinimapInactiveStyle, MinimapServiceOptions } from './type';\n\nexport const MinimapDefaultCanvasStyle: MinimapCanvasStyle = {\n canvasWidth: 250,\n canvasHeight: 250,\n canvasPadding: 50,\n canvasBackground: 'rgba(242, 243, 245, 1)',\n canvasBorderRadius: 10,\n viewportBackground: 'rgba(255, 255, 255, 1)',\n viewportBorderRadius: 4,\n viewportBorderColor: 'rgba(6, 7, 9, 0.10)',\n viewportBorderWidth: 1,\n viewportBorderDashLength: undefined,\n nodeColor: 'rgba(0, 0, 0, 0.10)',\n nodeBorderRadius: 2,\n nodeBorderWidth: 0.145,\n nodeBorderColor: 'rgba(6, 7, 9, 0.10)',\n overlayColor: 'rgba(255, 255, 255, 0.55)',\n};\n\nexport const MinimapDefaultInactiveStyle: MinimapInactiveStyle = {\n scale: 0.7,\n opacity: 1,\n translateX: 15,\n translateY: 15,\n};\n\nexport const MinimapDefaultOptions: MinimapServiceOptions = {\n canvasStyle: MinimapDefaultCanvasStyle,\n canvasClassName: 'gedit-minimap-canvas',\n enableDisplayAllNodes: false,\n activeThrottleTime: 0,\n inactiveThrottleTime: 24,\n};\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport { throttle } from 'lodash-es';\nimport { inject, injectable } from 'inversify';\nimport { Disposable, DisposableCollection, IPoint, Rectangle } from '@flowgram-vue/utils';\nimport { FlowNodeTransformData } from '@flowgram-vue/document';\nimport { FlowNodeBaseType } from '@flowgram-vue/document';\nimport { FlowDocument } from '@flowgram-vue/document';\nimport { MouseTouchEvent, PlaygroundConfigEntity } from '@flowgram-vue/core';\n\nimport type { MinimapRenderContext, MinimapServiceOptions, MinimapCanvasStyle } from './type';\nimport { MinimapDraw } from './draw';\nimport { MinimapDefaultCanvasStyle, MinimapDefaultOptions } from './constant';\n\n@injectable()\nexport class FlowMinimapService {\n @inject(FlowDocument) private readonly document: FlowDocument;\n\n @inject(PlaygroundConfigEntity)\n private readonly playgroundConfig: PlaygroundConfigEntity;\n\n public readonly canvas: HTMLCanvasElement;\n\n public readonly context2D: CanvasRenderingContext2D;\n\n public activated;\n\n private onActiveCallbacks: Set<(activated: boolean) => void>;\n\n private options: MinimapServiceOptions;\n\n private toDispose: DisposableCollection;\n\n private initialized;\n\n private visible: boolean = false;\n\n private isDragging;\n\n private style: MinimapCanvasStyle;\n\n private dragStart?: IPoint;\n\n constructor() {\n this.canvas = document.createElement('canvas');\n this.context2D = this.canvas.getContext('2d')!;\n this.initialized = !!this.context2D;\n this.onActiveCallbacks = new Set();\n this.toDispose = new DisposableCollection();\n this.render = this._render;\n this.activated = false;\n this.isDragging = false;\n }\n\n public init(options?: Partial<MinimapServiceOptions>) {\n this.options = MinimapDefaultOptions;\n Object.assign(this.options, options);\n this.setThrottle(this.options.inactiveThrottleTime);\n this.initStyle();\n }\n\n public dispose(): void {\n this.toDispose.dispose();\n this.initialized = false;\n this.activated = false;\n this.removeEventListeners();\n }\n\n setVisible(visible: boolean) {\n this.visible = visible;\n }\n\n public setActivate(activate: boolean): void {\n if (activate === this.activated) {\n return;\n }\n if (!activate && this.isDragging) {\n // 拖拽时持续激活\n return;\n }\n this.activated = activate;\n if (activate) {\n this.setThrottle(this.options.activeThrottleTime);\n this.addEventListeners();\n } else {\n this.setThrottle(this.options.inactiveThrottleTime);\n this.removeEventListeners();\n }\n this.render();\n this.onActiveCallbacks.forEach((callback) => callback(activate));\n }\n\n public onActive = (callback: (activated: boolean) => void): Disposable => {\n this.onActiveCallbacks.add(callback);\n return {\n dispose: () => {\n this.onActiveCallbacks.delete(callback);\n },\n };\n };\n\n private initStyle() {\n if (!this.initialized) {\n return;\n }\n const { canvasClassName, canvasStyle } = this.options;\n this.canvas.className = canvasClassName;\n this.style = {\n ...MinimapDefaultCanvasStyle,\n ...canvasStyle,\n };\n this.canvas.width = this.style.canvasWidth;\n this.canvas.height = this.style.canvasHeight;\n this.canvas.style.borderRadius = this.style.canvasBorderRadius\n ? `${this.style.canvasBorderRadius}px`\n : 'unset';\n }\n\n private setThrottle(throttleTime: number) {\n this.render = throttle(this._render, throttleTime);\n }\n\n /**\n * 触发渲染\n */\n public render: () => void = this._render;\n\n private _render(): void {\n if (!this.initialized || !this.visible) {\n return;\n }\n const renderContext = this.createRenderContext();\n this.renderCanvas(renderContext);\n }\n\n private createRenderContext(): MinimapRenderContext {\n const { canvas, context2D } = this;\n const nodeTransforms: FlowNodeTransformData[] = this.transformVisibles;\n const nodeRects: Rectangle[] = nodeTransforms.map((transform) => transform.bounds);\n const viewRect: Rectangle = this.viewRect();\n const renderRect: Rectangle = this.renderRect(nodeRects).withPadding({\n top: this.style.canvasPadding,\n bottom: this.style.canvasPadding,\n left: this.style.canvasPadding,\n right: this.style.canvasPadding,\n });\n const canvasRect: Rectangle = Rectangle.enlarge([viewRect, renderRect]);\n\n const { scale, offset } = this.calculateScaleAndOffset({ canvasRect });\n\n return {\n canvas,\n context2D,\n nodeRects,\n canvasRect,\n viewRect,\n renderRect,\n scale,\n offset,\n };\n }\n\n private renderCanvas(renderContext: MinimapRenderContext) {\n const { canvas, context2D, nodeRects, viewRect, scale, offset } = renderContext;\n\n // 清空画布\n MinimapDraw.clear({ canvas, context: context2D });\n\n // 设置背景色\n MinimapDraw.backgroundColor({\n canvas,\n context: context2D,\n color: this.style.canvasBackground,\n });\n\n // 绘制视窗\n MinimapDraw.roundRectangle({\n context: context2D,\n rect: this.rectOnCanvas({ rect: viewRect, scale, offset }),\n color: this.style.viewportBackground,\n radius: this.style.viewportBorderRadius as number,\n });\n\n // 绘制节点\n nodeRects.forEach((nodeRect: Rectangle) => {\n MinimapDraw.roundRectangle({\n context: context2D,\n rect: this.rectOnCanvas({ rect: nodeRect, scale, offset }),\n color: this.style.nodeColor as string,\n radius: this.style.nodeBorderRadius as number,\n borderWidth: this.style.nodeBorderWidth as number,\n borderColor: this.style.nodeBorderColor as string,\n });\n });\n\n // 绘制视窗边框\n MinimapDraw.roundRectangle({\n context: context2D,\n rect: this.rectOnCanvas({ rect: viewRect, scale, offset }),\n color: 'rgba(255, 255, 255, 0)' as string,\n radius: this.style.viewportBorderRadius as number,\n borderColor: this.style.viewportBorderColor as string,\n borderWidth: this.style.viewportBorderWidth as number,\n borderDashLength: this.style.viewportBorderDashLength as number,\n });\n\n // 绘制视窗外的蒙层\n MinimapDraw.overlay({\n canvas,\n context: context2D,\n offset,\n scale,\n rect: viewRect,\n color: this.style.overlayColor as string,\n });\n }\n\n private calculateScaleAndOffset(params: { canvasRect: Rectangle }): {\n scale: number;\n offset: IPoint;\n } {\n const { canvasRect } = params;\n const { width: canvasWidth, height: canvasHeight } = this.canvas;\n\n // 计算缩放比例\n const scaleX = canvasWidth / canvasRect.width;\n const scaleY = canvasHeight / canvasRect.height;\n const scale = Math.min(scaleX, scaleY);\n\n // 计算缩放后的渲染区域尺寸\n const scaledWidth = canvasRect.width * scale;\n const scaledHeight = canvasRect.height * scale;\n\n // 计算居中偏移量\n const centerOffsetX = (canvasWidth - scaledWidth) / 2;\n const centerOffsetY = (canvasHeight - scaledHeight) / 2;\n\n // 计算最终偏移量\n const offset = {\n x: centerOffsetX / scale - canvasRect.x,\n y: centerOffsetY / scale - canvasRect.y,\n };\n\n return { scale, offset };\n }\n\n private get transformVisibles(): FlowNodeTransformData[] {\n const transformVisible = this.document.getRenderDatas<FlowNodeTransformData>(\n FlowNodeTransformData,\n false\n );\n return transformVisible.filter((transform) => {\n const node = transform.entity;\n // 去除不可见节点\n if (node.hidden) return false;\n // 去除根节点\n if (node.flowNodeType === FlowNodeBaseType.ROOT) return;\n // 去除非一级节点\n if (\n !this.options.enableDisplayAllNodes &&\n node.parent &&\n node.parent.flowNodeType !== FlowNodeBaseType.ROOT\n )\n return;\n return true;\n });\n }\n\n private renderRect(rects: Rectangle[]): Rectangle {\n return Rectangle.enlarge(rects);\n }\n\n private viewRect(): Rectangle {\n const { width, height, scrollX, scrollY, zoom } = this.playgroundConfig.config;\n return new Rectangle(scrollX / zoom, scrollY / zoom, width / zoom, height / zoom);\n }\n\n /** 计算画布坐标系下的矩形 */\n private rectOnCanvas(params: { rect: Rectangle; scale: number; offset: IPoint }): Rectangle {\n const { rect, scale, offset } = params;\n return new Rectangle(\n (rect.x + offset.x) * scale,\n (rect.y + offset.y) * scale,\n rect.width * scale,\n rect.height * scale\n );\n }\n\n private isPointInRect(params: { point: IPoint; rect: Rectangle }): boolean {\n const { point, rect } = params;\n return (\n point.x >= rect.x &&\n point.x <= rect.x + rect.width &&\n point.y >= rect.y &&\n point.y <= rect.y + rect.height\n );\n }\n\n private addEventListeners(): void {\n this.canvas.addEventListener('wheel', this.handleWheel);\n this.canvas.addEventListener('mousedown', this.handleStartDrag);\n this.canvas.addEventListener('touchstart', this.handleStartDrag, { passive: false });\n this.canvas.addEventListener('mousemove', this.handleCursor);\n }\n\n private removeEventListeners(): void {\n this.canvas.removeEventListener('wheel', this.handleWheel);\n this.canvas.removeEventListener('mousedown', this.handleStartDrag);\n this.canvas.removeEventListener('touchstart', this.handleStartDrag);\n this.canvas.removeEventListener('mousemove', this.handleCursor);\n }\n\n private handleWheel = (event: WheelEvent): void => {};\n\n private handleStartDrag = (event: MouseEvent | TouchEvent): void => {\n MouseTouchEvent.preventDefault(event);\n event.stopPropagation();\n const renderContext = this.createRenderContext();\n const { viewRect, scale, offset } = renderContext;\n const canvasRect = this.canvas.getBoundingClientRect();\n const { clientX, clientY } = MouseTouchEvent.getEventCoord(event);\n const mousePoint: IPoint = {\n x: clientX - canvasRect.left,\n y: clientY - canvasRect.top,\n };\n\n const viewRectOnCanvas = this.rectOnCanvas({\n rect: viewRect,\n scale,\n offset,\n });\n if (!this.isPointInRect({ point: mousePoint, rect: viewRectOnCanvas })) {\n return;\n }\n this.isDragging = true;\n this.dragStart = mousePoint;\n // click\n document.addEventListener('mousemove', this.handleDragging);\n document.addEventListener('mouseup', this.handleEndDrag);\n // touch\n document.addEventListener('touchmove', this.handleDragging, { passive: false });\n document.addEventListener('touchend', this.handleEndDrag);\n document.addEventListener('touchcancel', this.handleEndDrag);\n };\n\n private handleDragging = (event: MouseEvent | TouchEvent): void => {\n if (!this.isDragging || !this.dragStart) return;\n MouseTouchEvent.preventDefault(event);\n event.stopPropagation();\n\n const renderContext = this.createRenderContext();\n const { scale } = renderContext;\n const canvasRect = this.canvas.getBoundingClientRect();\n const { clientX, clientY } = MouseTouchEvent.getEventCoord(event);\n const mouseX = clientX - canvasRect.left;\n const mouseY = clientY - canvasRect.top;\n\n const deltaX = (mouseX - this.dragStart.x) / scale;\n const deltaY = (mouseY - this.dragStart.y) / scale;\n\n this.updateScrollPosition(deltaX, deltaY);\n\n this.dragStart = { x: mouseX, y: mouseY };\n this.render();\n };\n\n private handleEndDrag = (event: MouseEvent | TouchEvent): void => {\n MouseTouchEvent.preventDefault(event);\n event.stopPropagation();\n // click\n document.removeEventListener('mousemove', this.handleDragging);\n document.removeEventListener('mouseup', this.handleEndDrag);\n // touch\n document.removeEventListener('touchmove', this.handleDragging);\n document.removeEventListener('touchend', this.handleEndDrag);\n document.removeEventListener('touchcancel', this.handleEndDrag);\n this.isDragging = false;\n this.dragStart = undefined;\n this.setActivate(this.isMouseInCanvas(event));\n };\n\n private handleCursor = (event: MouseEvent): void => {\n if (!this.activated) return;\n\n const renderContext = this.createRenderContext();\n const { viewRect, scale, offset } = renderContext;\n const canvasRect = this.canvas.getBoundingClientRect();\n const mousePoint: IPoint = {\n x: event.clientX - canvasRect.left,\n y: event.clientY - canvasRect.top,\n };\n\n const viewRectOnCanvas = this.rectOnCanvas({\n rect: viewRect,\n scale,\n offset,\n });\n\n if (this.isPointInRect({ point: mousePoint, rect: viewRectOnCanvas })) {\n // 鼠标在视窗框内\n this.canvas.style.cursor = 'grab';\n } else {\n // 鼠标在视窗框外但在画布内\n this.canvas.style.cursor = 'default';\n }\n };\n\n private isMouseInCanvas(event: MouseEvent | TouchEvent): boolean {\n const canvasRect = this.canvas.getBoundingClientRect();\n const { clientX, clientY } = MouseTouchEvent.getEventCoord(event);\n return (\n clientX >= canvasRect.left &&\n clientX <= canvasRect.right &&\n clientY >= canvasRect.top &&\n clientY <= canvasRect.bottom\n );\n }\n\n private updateScrollPosition(deltaX: number, deltaY: number): void {\n const { scrollX, scrollY, zoom } = this.playgroundConfig.config;\n this.playgroundConfig.updateConfig({\n scrollX: scrollX + deltaX * zoom,\n scrollY: scrollY + deltaY * zoom,\n });\n }\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport {\n defineComponent,\n h,\n inject,\n onBeforeUnmount,\n onMounted,\n shallowRef,\n type CSSProperties,\n type PropType,\n} from 'vue';\nimport { PlaygroundVueContainerKey } from '@flowgram-vue/core';\nimport type { Disposable } from '@flowgram-vue/utils';\n\nimport { MinimapInactiveStyle } from './type';\nimport { FlowMinimapService } from './service';\nimport { MinimapDefaultInactiveStyle } from './constant';\n\nexport const MinimapRender = defineComponent({\n name: 'MinimapRender',\n props: {\n service: { type: Object as PropType<FlowMinimapService> },\n panelStyles: { type: Object as PropType<CSSProperties>, default: () => ({}) },\n containerStyles: { type: Object as PropType<CSSProperties>, default: () => ({}) },\n inactiveStyle: {\n type: Object as PropType<Partial<MinimapInactiveStyle>>,\n default: () => ({}),\n },\n },\n setup(props) {\n const inactiveStyle = {\n ...MinimapDefaultInactiveStyle,\n ...props.inactiveStyle,\n };\n const playgroundContainer = inject(PlaygroundVueContainerKey, undefined);\n const service = (props.service ||\n playgroundContainer?.get(FlowMinimapService)) as FlowMinimapService;\n const panelRef = shallowRef<HTMLDivElement | null>(null);\n const activated = shallowRef(false);\n let disposer: Disposable | undefined;\n\n onMounted(() => {\n const canvasContainer = panelRef.value;\n if (canvasContainer && service.canvas) {\n canvasContainer.appendChild(service.canvas);\n }\n disposer = service.onActive((activate: boolean) => {\n activated.value = activate;\n });\n service.setVisible(true);\n service.render();\n });\n\n onBeforeUnmount(() => {\n disposer?.dispose();\n service.setVisible(false);\n });\n\n return () => {\n const scale: number = activated.value ? 1 : inactiveStyle.scale;\n const opacity: number = activated.value ? 1 : inactiveStyle.opacity;\n const translateX: number = activated.value ? 0 : inactiveStyle.translateX;\n const translateY: number = activated.value ? 0 : inactiveStyle.translateY;\n\n return h(\n 'div',\n {\n class: 'minimap-container',\n style: {\n position: 'fixed',\n right: '30px',\n bottom: '70px',\n transition: 'all 0.3s ease',\n transform: `scale(${scale}) translate(${translateX}px, ${translateY}px)`,\n opacity,\n transformOrigin: 'bottom right',\n ...props.containerStyles,\n },\n },\n [\n h('div', {\n class: 'minimap-panel',\n style: {\n display: 'flex',\n width: '100%',\n height: '100%',\n borderRadius: '10px',\n backgroundColor: 'rgba(255, 255, 255, 1)',\n border: '0.572px solid rgba(6, 7, 9, 0.10)',\n overflow: 'hidden',\n boxShadow:\n '0px 2.289px 6.867px 0px rgba(0, 0, 0, 0.08), 0px 4.578px 13.733px 0px rgba(0, 0, 0, 0.04)',\n boxSizing: 'border-box',\n padding: '8px',\n ...props.panelStyles,\n },\n 'data-flow-editor-selectable': 'false',\n ref: (el: unknown) => {\n panelRef.value = (el as HTMLDivElement) || null;\n },\n onMouseenter: () => {\n service.setActivate(true);\n },\n onMouseleave: () => {\n service.setActivate(false);\n },\n onTouchstartCapture: () => {\n service.setActivate(true);\n },\n onTouchendCapture: () => {\n service.setActivate(false);\n },\n }),\n ]\n );\n };\n },\n});\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport { defineComponent, h, provide, type VNodeChild } from 'vue';\nimport {\n Playground,\n PlaygroundVueContainerKey,\n PlaygroundVueRefKey,\n type PlaygroundContainerFactory,\n} from '@flowgram-vue/core';\n\nexport const LayerVueProvide = defineComponent({\n name: 'LayerVueProvide',\n props: {\n factory: {\n type: Object,\n required: true,\n },\n },\n setup(props) {\n const factory = props.factory as PlaygroundContainerFactory;\n provide(PlaygroundVueContainerKey, factory as any);\n try {\n provide(PlaygroundVueRefKey, factory.get(Playground));\n } catch {\n // 测试容器可能重复 bind PlaygroundConfig,此时仅 provide container\n }\n },\n render() {\n return this.$slots.default?.();\n },\n});\n\nexport function wrapLayerRender(factory: PlaygroundContainerFactory, children: VNodeChild) {\n return h(LayerVueProvide, { factory }, () => children);\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport { h, type VNode } from 'vue';\nimport { inject, injectable } from 'inversify';\nimport { domUtils } from '@flowgram-vue/utils';\nimport {\n FlowNodeEntity,\n FlowNodeTransformData,\n FlowDocumentTransformerEntity,\n} from '@flowgram-vue/document';\nimport {\n Layer,\n observeEntityDatas,\n observeEntity,\n PlaygroundConfigEntity,\n PlaygroundContainerFactory,\n} from '@flowgram-vue/core';\n\nimport { wrapLayerRender } from './wrap-layer-render';\nimport { MinimapLayerOptions } from './type';\nimport { FlowMinimapService } from './service';\nimport { MinimapRender } from './component';\n\n@injectable()\nexport class FlowMinimapLayer extends Layer<MinimapLayerOptions> {\n public static type = 'FlowMinimapLayer';\n\n @inject(FlowMinimapService) private readonly service: FlowMinimapService;\n\n @inject(PlaygroundContainerFactory) private readonly playgroundContainer: PlaygroundContainerFactory;\n\n @observeEntityDatas(FlowNodeEntity, FlowNodeTransformData)\n transformDatas: FlowNodeTransformData[];\n\n @observeEntity(PlaygroundConfigEntity) configEntity: PlaygroundConfigEntity;\n\n @observeEntity(FlowDocumentTransformerEntity)\n readonly documentTransformer: FlowDocumentTransformerEntity;\n\n public readonly node: HTMLElement;\n\n private readonly className = 'gedit-minimap-layer gedit-playground-layer';\n\n constructor() {\n super();\n this.node = domUtils.createDivWithClass(this.className);\n this.node.style.zIndex = '9999';\n }\n\n public render(): VNode | null {\n if (this.documentTransformer.loading) return null;\n this.documentTransformer.refresh();\n this.service.render();\n if (this.options.disableLayer) {\n return null;\n }\n return wrapLayerRender(\n this.playgroundContainer,\n h(MinimapRender, {\n service: this.service,\n panelStyles: this.options.panelStyles,\n containerStyles: this.options.containerStyles,\n inactiveStyle: this.options.inactiveStyle,\n })\n );\n }\n}\n","/**\n * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates\n * SPDX-License-Identifier: MIT\n */\n\nimport { definePluginCreator, PluginContext } from '@flowgram-vue/core';\n\nimport { CreateMinimapPluginOptions } from './type';\nimport { FlowMinimapService } from './service';\nimport { FlowMinimapLayer } from './layer';\n\nexport const createMinimapPlugin = definePluginCreator<CreateMinimapPluginOptions>({\n onBind: ({ bind }) => {\n bind(FlowMinimapService).toSelf().inSingletonScope();\n },\n onInit: (ctx: PluginContext, opts: CreateMinimapPluginOptions) => {\n ctx.playground.registerLayer(FlowMinimapLayer, opts);\n ctx.get(FlowMinimapService).init(opts);\n },\n onDispose: (ctx: PluginContext) => {\n ctx.get(FlowMinimapService).dispose();\n },\n});\n"]}
@@ -0,0 +1,183 @@
1
+ import * as vue from 'vue';
2
+ import { CSSProperties, PropType, VNode } from 'vue';
3
+ import { Rectangle, IPoint, Disposable } from '@flowgram-vue/utils';
4
+ import * as _flowgram_vue_core from '@flowgram-vue/core';
5
+ import { Layer, PlaygroundConfigEntity } from '@flowgram-vue/core';
6
+ import { FlowNodeTransformData, FlowDocumentTransformerEntity } from '@flowgram-vue/document';
7
+
8
+ /**
9
+ * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
10
+ * SPDX-License-Identifier: MIT
11
+ */
12
+
13
+ interface MinimapCanvasStyle {
14
+ canvasWidth: number;
15
+ canvasHeight: number;
16
+ canvasPadding: number;
17
+ canvasBackground: string;
18
+ canvasBorderRadius: number | undefined;
19
+ viewportBackground: string;
20
+ viewportBorderRadius: number | undefined;
21
+ viewportBorderColor: string;
22
+ viewportBorderWidth: number;
23
+ viewportBorderDashLength: number | undefined;
24
+ nodeColor: string;
25
+ nodeBorderRadius: number | undefined;
26
+ nodeBorderWidth: number;
27
+ nodeBorderColor: string | undefined;
28
+ overlayColor: string;
29
+ }
30
+ interface MinimapInactiveStyle {
31
+ scale: number;
32
+ opacity: number;
33
+ translateX: number;
34
+ translateY: number;
35
+ }
36
+ interface MinimapServiceOptions {
37
+ canvasStyle: Partial<MinimapCanvasStyle>;
38
+ canvasClassName: string;
39
+ enableDisplayAllNodes: boolean;
40
+ activeThrottleTime: number;
41
+ inactiveThrottleTime: number;
42
+ }
43
+ interface MinimapLayerOptions {
44
+ disableLayer?: boolean;
45
+ panelStyles?: CSSProperties;
46
+ containerStyles?: CSSProperties;
47
+ inactiveStyle?: Partial<MinimapInactiveStyle>;
48
+ }
49
+ interface CreateMinimapPluginOptions extends MinimapLayerOptions, Partial<MinimapServiceOptions> {
50
+ }
51
+ interface MinimapRenderContext {
52
+ canvas: HTMLCanvasElement;
53
+ context2D: CanvasRenderingContext2D;
54
+ nodeRects: Rectangle[];
55
+ viewRect: Rectangle;
56
+ renderRect: Rectangle;
57
+ canvasRect: Rectangle;
58
+ scale: number;
59
+ offset: IPoint;
60
+ }
61
+
62
+ /**
63
+ * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
64
+ * SPDX-License-Identifier: MIT
65
+ */
66
+
67
+ declare class FlowMinimapService {
68
+ private readonly document;
69
+ private readonly playgroundConfig;
70
+ readonly canvas: HTMLCanvasElement;
71
+ readonly context2D: CanvasRenderingContext2D;
72
+ activated: boolean;
73
+ private onActiveCallbacks;
74
+ private options;
75
+ private toDispose;
76
+ private initialized;
77
+ private visible;
78
+ private isDragging;
79
+ private style;
80
+ private dragStart?;
81
+ constructor();
82
+ init(options?: Partial<MinimapServiceOptions>): void;
83
+ dispose(): void;
84
+ setVisible(visible: boolean): void;
85
+ setActivate(activate: boolean): void;
86
+ onActive: (callback: (activated: boolean) => void) => Disposable;
87
+ private initStyle;
88
+ private setThrottle;
89
+ /**
90
+ * 触发渲染
91
+ */
92
+ render: () => void;
93
+ private _render;
94
+ private createRenderContext;
95
+ private renderCanvas;
96
+ private calculateScaleAndOffset;
97
+ private get transformVisibles();
98
+ private renderRect;
99
+ private viewRect;
100
+ /** 计算画布坐标系下的矩形 */
101
+ private rectOnCanvas;
102
+ private isPointInRect;
103
+ private addEventListeners;
104
+ private removeEventListeners;
105
+ private handleWheel;
106
+ private handleStartDrag;
107
+ private handleDragging;
108
+ private handleEndDrag;
109
+ private handleCursor;
110
+ private isMouseInCanvas;
111
+ private updateScrollPosition;
112
+ }
113
+
114
+ declare const MinimapRender: vue.DefineComponent<vue.ExtractPropTypes<{
115
+ service: {
116
+ type: PropType<FlowMinimapService>;
117
+ };
118
+ panelStyles: {
119
+ type: PropType<CSSProperties>;
120
+ default: () => {};
121
+ };
122
+ containerStyles: {
123
+ type: PropType<CSSProperties>;
124
+ default: () => {};
125
+ };
126
+ inactiveStyle: {
127
+ type: PropType<Partial<MinimapInactiveStyle>>;
128
+ default: () => {};
129
+ };
130
+ }>, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
131
+ [key: string]: any;
132
+ }>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
133
+ service: {
134
+ type: PropType<FlowMinimapService>;
135
+ };
136
+ panelStyles: {
137
+ type: PropType<CSSProperties>;
138
+ default: () => {};
139
+ };
140
+ containerStyles: {
141
+ type: PropType<CSSProperties>;
142
+ default: () => {};
143
+ };
144
+ inactiveStyle: {
145
+ type: PropType<Partial<MinimapInactiveStyle>>;
146
+ default: () => {};
147
+ };
148
+ }>> & Readonly<{}>, {
149
+ panelStyles: CSSProperties;
150
+ containerStyles: CSSProperties;
151
+ inactiveStyle: Partial<MinimapInactiveStyle>;
152
+ }, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
153
+
154
+ /**
155
+ * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
156
+ * SPDX-License-Identifier: MIT
157
+ */
158
+
159
+ declare const MinimapDefaultCanvasStyle: MinimapCanvasStyle;
160
+ declare const MinimapDefaultInactiveStyle: MinimapInactiveStyle;
161
+ declare const MinimapDefaultOptions: MinimapServiceOptions;
162
+
163
+ declare const createMinimapPlugin: _flowgram_vue_core.PluginCreator<CreateMinimapPluginOptions>;
164
+
165
+ /**
166
+ * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
167
+ * SPDX-License-Identifier: MIT
168
+ */
169
+
170
+ declare class FlowMinimapLayer extends Layer<MinimapLayerOptions> {
171
+ static type: string;
172
+ private readonly service;
173
+ private readonly playgroundContainer;
174
+ transformDatas: FlowNodeTransformData[];
175
+ configEntity: PlaygroundConfigEntity;
176
+ readonly documentTransformer: FlowDocumentTransformerEntity;
177
+ readonly node: HTMLElement;
178
+ private readonly className;
179
+ constructor();
180
+ render(): VNode | null;
181
+ }
182
+
183
+ export { type CreateMinimapPluginOptions, FlowMinimapLayer, FlowMinimapService, type MinimapCanvasStyle, MinimapDefaultCanvasStyle, MinimapDefaultInactiveStyle, MinimapDefaultOptions, type MinimapInactiveStyle, type MinimapLayerOptions, MinimapRender, type MinimapRenderContext, type MinimapServiceOptions, createMinimapPlugin };