orcasvn-react-diagrams 0.2.1 → 0.2.2
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/README.md +99 -88
- package/ai/api-contract.json +257 -205
- package/ai/invariants.json +43 -41
- package/ai/manifest.json +34 -34
- package/dist/cjs/{displaybox.js → examples.js} +5974 -1413
- package/dist/cjs/index.js +3889 -1112
- package/dist/cjs/types/api/createDiagramEditor.d.ts +7 -2
- package/dist/cjs/types/api/types.d.ts +178 -0
- package/dist/cjs/types/displaybox/demos/DeletionEventsDemoTab.d.ts +3 -0
- package/dist/cjs/types/displaybox/demos/ShapeHoverControlsDemoTab.d.ts +3 -0
- package/dist/cjs/types/displaybox/demos/TextLayoutDemoTab.d.ts +3 -0
- package/dist/cjs/types/displaybox/demos/deletionEventsDemo.d.ts +2 -0
- package/dist/cjs/types/displaybox/demos/rotatedCreationDemo.d.ts +2 -0
- package/dist/cjs/types/displaybox/demos/roundedRectRadiusDemo.d.ts +2 -0
- package/dist/cjs/types/displaybox/demos/shapeBorderMovementDemo.d.ts +2 -0
- package/dist/cjs/types/displaybox/demos/shapeHoverControlsDemo.d.ts +10 -0
- package/dist/cjs/types/displaybox/demos/textDemo.d.ts +4 -0
- package/dist/cjs/types/displaybox/useDemoEditor.d.ts +5 -2
- package/dist/cjs/types/engine/AutoLayoutService.d.ts +24 -0
- package/dist/cjs/types/engine/DiagramEngine.d.ts +32 -14
- package/dist/cjs/types/engine/EngineCommands.d.ts +4 -1
- package/dist/cjs/types/engine/LinkRoutingService.d.ts +35 -0
- package/dist/cjs/types/engine/MutationPipeline.d.ts +23 -0
- package/dist/cjs/types/engine/TextLayoutService.d.ts +40 -0
- package/dist/cjs/types/examples/index.d.ts +2 -0
- package/dist/cjs/types/measure/textStyleDefaults.d.ts +9 -0
- package/dist/cjs/types/models/DiagramModel.d.ts +1 -0
- package/dist/cjs/types/models/ElementModel.d.ts +1 -0
- package/dist/cjs/types/models/PortModel.d.ts +3 -0
- package/dist/cjs/types/models/TextModel.d.ts +8 -0
- package/dist/cjs/types/renderer/RenderTypes.d.ts +34 -1
- package/dist/cjs/types/renderer/konva/KonvaHitTester.d.ts +1 -1
- package/dist/cjs/types/renderer/konva/KonvaInteraction.d.ts +53 -3
- package/dist/cjs/types/renderer/konva/KonvaNodeFactory.d.ts +18 -1
- package/dist/cjs/types/renderer/konva/KonvaRenderer.d.ts +49 -2
- package/dist/cjs/types/shapes/BuiltInShapes.d.ts +107 -0
- package/dist/cjs/types/shapes/__tests__/BuiltInShapes.test.d.ts +1 -0
- package/dist/cjs/types/shapes/index.d.ts +1 -0
- package/dist/cjs/types/utils/__tests__/borderGeometry.test.d.ts +1 -0
- package/dist/cjs/types/utils/borderGeometry.d.ts +6 -0
- package/dist/cjs/types/utils/geometry.d.ts +22 -0
- package/dist/esm/{displaybox.js → examples.js} +5969 -1414
- package/dist/esm/examples.js.map +1 -0
- package/dist/esm/index.js +3890 -1113
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types/api/createDiagramEditor.d.ts +7 -2
- package/dist/esm/types/api/types.d.ts +178 -0
- package/dist/esm/types/displaybox/demos/DeletionEventsDemoTab.d.ts +3 -0
- package/dist/esm/types/displaybox/demos/ShapeHoverControlsDemoTab.d.ts +3 -0
- package/dist/esm/types/displaybox/demos/TextLayoutDemoTab.d.ts +3 -0
- package/dist/esm/types/displaybox/demos/deletionEventsDemo.d.ts +2 -0
- package/dist/esm/types/displaybox/demos/rotatedCreationDemo.d.ts +2 -0
- package/dist/esm/types/displaybox/demos/roundedRectRadiusDemo.d.ts +2 -0
- package/dist/esm/types/displaybox/demos/shapeBorderMovementDemo.d.ts +2 -0
- package/dist/esm/types/displaybox/demos/shapeHoverControlsDemo.d.ts +10 -0
- package/dist/esm/types/displaybox/demos/textDemo.d.ts +4 -0
- package/dist/esm/types/displaybox/useDemoEditor.d.ts +5 -2
- package/dist/esm/types/engine/AutoLayoutService.d.ts +24 -0
- package/dist/esm/types/engine/DiagramEngine.d.ts +32 -14
- package/dist/esm/types/engine/EngineCommands.d.ts +4 -1
- package/dist/esm/types/engine/LinkRoutingService.d.ts +35 -0
- package/dist/esm/types/engine/MutationPipeline.d.ts +23 -0
- package/dist/esm/types/engine/TextLayoutService.d.ts +40 -0
- package/dist/esm/types/examples/index.d.ts +2 -0
- package/dist/esm/types/measure/textStyleDefaults.d.ts +9 -0
- package/dist/esm/types/models/DiagramModel.d.ts +1 -0
- package/dist/esm/types/models/ElementModel.d.ts +1 -0
- package/dist/esm/types/models/PortModel.d.ts +3 -0
- package/dist/esm/types/models/TextModel.d.ts +8 -0
- package/dist/esm/types/renderer/RenderTypes.d.ts +34 -1
- package/dist/esm/types/renderer/konva/KonvaHitTester.d.ts +1 -1
- package/dist/esm/types/renderer/konva/KonvaInteraction.d.ts +53 -3
- package/dist/esm/types/renderer/konva/KonvaNodeFactory.d.ts +18 -1
- package/dist/esm/types/renderer/konva/KonvaRenderer.d.ts +49 -2
- package/dist/esm/types/shapes/BuiltInShapes.d.ts +107 -0
- package/dist/esm/types/shapes/__tests__/BuiltInShapes.test.d.ts +1 -0
- package/dist/esm/types/shapes/index.d.ts +1 -0
- package/dist/esm/types/utils/__tests__/borderGeometry.test.d.ts +1 -0
- package/dist/esm/types/utils/borderGeometry.d.ts +6 -0
- package/dist/esm/types/utils/geometry.d.ts +22 -0
- package/dist/{displaybox.d.ts → examples.d.ts} +169 -5
- package/dist/index.d.ts +233 -2
- package/docs/API_CONTRACT.md +200 -144
- package/docs/ARCHITECTURE.md +32 -31
- package/docs/CAPABILITIES.md +40 -38
- package/docs/COMMANDS_EVENTS.md +65 -60
- package/docs/DOCUMENTATION_WORKFLOW.md +27 -29
- package/docs/INDEX.md +41 -41
- package/docs/INTEGRATION_PLAYBOOK.md +56 -54
- package/docs/PORTING_CHECKLIST.md +59 -58
- package/docs/STATE_INVARIANTS.md +60 -56
- package/docs/fixtures/basic-linked-elements.json +52 -52
- package/docs/fixtures/empty-state.json +11 -11
- package/docs/fixtures/nested-layout.json +54 -54
- package/package.json +13 -16
- package/src/displaybox/demos/AutoLayoutDemoTab.tsx +501 -0
- package/src/displaybox/demos/DeletionEventsDemoTab.tsx +147 -0
- package/src/displaybox/demos/EngineEventsDemoTab.tsx +151 -0
- package/src/displaybox/demos/EventHandlersDemoTab.tsx +110 -0
- package/src/displaybox/demos/ExternalDragDropDemoTab.tsx +261 -0
- package/src/displaybox/demos/LinkCancelDemoTab.tsx +238 -0
- package/src/displaybox/demos/ObstacleRoutingDemoTab.tsx +30 -0
- package/src/displaybox/demos/ShapeHoverControlsDemoTab.tsx +558 -0
- package/src/displaybox/demos/SimpleDemo.tsx +73 -0
- package/src/displaybox/demos/SvgPathDemoTab.tsx +327 -0
- package/src/displaybox/demos/TextLayoutDemoTab.tsx +386 -0
- package/src/displaybox/demos/autoLayoutDemo.ts +111 -0
- package/src/displaybox/demos/basicDemo.ts +131 -0
- package/src/displaybox/demos/childConstraintsDemo.ts +65 -0
- package/src/displaybox/demos/customDemo.ts +59 -0
- package/src/displaybox/demos/deletionEventsDemo.ts +91 -0
- package/src/displaybox/demos/engineEventsDemo.ts +64 -0
- package/src/displaybox/demos/eventHandlersDemo.ts +41 -0
- package/src/displaybox/demos/externalDragDropDemo.ts +28 -0
- package/src/displaybox/demos/gridOverlayDemo.ts +50 -0
- package/src/displaybox/demos/index.tsx +217 -0
- package/src/displaybox/demos/linkBendHandlesDemo.ts +143 -0
- package/src/displaybox/demos/linkCancelDemo.ts +56 -0
- package/src/displaybox/demos/linkPortCreationDemo.ts +46 -0
- package/src/displaybox/demos/multiLevelTreeDemo.ts +120 -0
- package/src/displaybox/demos/multipleElementsDemo.ts +62 -0
- package/src/displaybox/demos/nestedDemo.ts +78 -0
- package/src/displaybox/demos/obstacleRoutingDemo.ts +176 -0
- package/src/displaybox/demos/portBorderDemo.ts +98 -0
- package/src/displaybox/demos/portConstraintsDemo.ts +175 -0
- package/src/displaybox/demos/rotatedCreationDemo.ts +185 -0
- package/src/displaybox/demos/roundedRectRadiusDemo.ts +93 -0
- package/src/displaybox/demos/routingDemo.ts +57 -0
- package/src/displaybox/demos/selectionDemo.ts +49 -0
- package/src/displaybox/demos/shapeBorderMovementDemo.ts +126 -0
- package/src/displaybox/demos/shapeGalleryDemo.ts +73 -0
- package/src/displaybox/demos/shapeHoverControlsDemo.ts +172 -0
- package/src/displaybox/demos/shared.ts +161 -0
- package/src/displaybox/demos/svgPathDemo.ts +71 -0
- package/src/displaybox/demos/textDemo.ts +62 -0
- package/src/displaybox/types.ts +66 -0
- package/src/examples/index.ts +21 -0
- package/displaybox/package.json +0 -5
- package/dist/cjs/types/components/BBoxDebugger.d.ts +0 -6
- package/dist/cjs/types/components/CloseIcon.d.ts +0 -6
- package/dist/cjs/types/components/LinkDebugger.d.ts +0 -8
- package/dist/cjs/types/components/editor.d.ts +0 -9
- package/dist/cjs/types/components/elementShowbox.d.ts +0 -3
- package/dist/cjs/types/components/elements/dragDropHandlerElement.d.ts +0 -7
- package/dist/cjs/types/components/elements/element.d.ts +0 -4
- package/dist/cjs/types/components/elements/elementWrapper.d.ts +0 -18
- package/dist/cjs/types/components/links/elementLink.d.ts +0 -4
- package/dist/cjs/types/components/links/index.d.ts +0 -2
- package/dist/cjs/types/components/links/point.d.ts +0 -11
- package/dist/cjs/types/components/paper.d.ts +0 -49
- package/dist/cjs/types/components/ports/index.d.ts +0 -2
- package/dist/cjs/types/components/ports/port.d.ts +0 -3
- package/dist/cjs/types/components/shapeShowbox.d.ts +0 -3
- package/dist/cjs/types/components/shapes/circle.d.ts +0 -9
- package/dist/cjs/types/components/shapes/customShape.d.ts +0 -7
- package/dist/cjs/types/components/shapes/halfCircle.d.ts +0 -9
- package/dist/cjs/types/components/shapes/index.d.ts +0 -7
- package/dist/cjs/types/components/shapes/polygon.d.ts +0 -8
- package/dist/cjs/types/components/shapes/rectangle.d.ts +0 -10
- package/dist/cjs/types/components/shapes/rectangularFrame.d.ts +0 -12
- package/dist/cjs/types/components/shapes/shapeWrapper.d.ts +0 -8
- package/dist/cjs/types/components/svgUtilsShowbox.d.ts +0 -3
- package/dist/cjs/types/components/texts/index.d.ts +0 -2
- package/dist/cjs/types/components/texts/text.d.ts +0 -4
- package/dist/cjs/types/components/viewControls/ruler.d.ts +0 -10
- package/dist/cjs/types/components/viewControls/selectionFrame.d.ts +0 -4
- package/dist/cjs/types/contexts/editorConfigurationContext.d.ts +0 -4
- package/dist/cjs/types/contexts/paperEventEmitterContext.d.ts +0 -45
- package/dist/cjs/types/contexts/zoomContext.d.ts +0 -16
- package/dist/cjs/types/contexts/zoomPanContext.d.ts +0 -23
- package/dist/cjs/types/displaybox/index.d.ts +0 -3
- package/dist/cjs/types/hooks/useKeyboardCommands.d.ts +0 -5
- package/dist/cjs/types/hooks/useSelectionFrame.d.ts +0 -6
- package/dist/cjs/types/logs/Logger.d.ts +0 -14
- package/dist/cjs/types/logs/configureLogger.d.ts +0 -4
- package/dist/cjs/types/main.d.ts +0 -8
- package/dist/cjs/types/mocks/customPortWithBuiltinShape.d.ts +0 -2
- package/dist/cjs/types/mocks/diamondElement.d.ts +0 -11
- package/dist/cjs/types/mocks/editorContext.d.ts +0 -2
- package/dist/cjs/types/mocks/editorContextElementMoveAsPort.d.ts +0 -2
- package/dist/cjs/types/mocks/editorContextForOptimizeRerender.d.ts +0 -2
- package/dist/cjs/types/mocks/editorContextMultipleElements.d.ts +0 -2
- package/dist/cjs/types/mocks/editorContextSingleElement.d.ts +0 -2
- package/dist/cjs/types/mocks/editorContextSingleElementTestEvents.d.ts +0 -2
- package/dist/cjs/types/mocks/editorContextTriggerRenderElements.d.ts +0 -2
- package/dist/cjs/types/mocks/editorContextWithElementAnchorCenter.d.ts +0 -2
- package/dist/cjs/types/mocks/port1.d.ts +0 -5
- package/dist/cjs/types/mocks/port2.d.ts +0 -5
- package/dist/cjs/types/mocks/portIn.d.ts +0 -4
- package/dist/cjs/types/mocks/rectangularFrameElement.d.ts +0 -11
- package/dist/cjs/types/mocks/textsWithFlexBox.d.ts +0 -2
- package/dist/cjs/types/models/IEditorConfiguration.d.ts +0 -7
- package/dist/cjs/types/models/IEditorContext.d.ts +0 -56
- package/dist/cjs/types/models/IElement.d.ts +0 -46
- package/dist/cjs/types/models/IElementLink.d.ts +0 -23
- package/dist/cjs/types/models/IElementLinkProps.d.ts +0 -31
- package/dist/cjs/types/models/IElementProps.d.ts +0 -36
- package/dist/cjs/types/models/IElementSelectorProps.d.ts +0 -25
- package/dist/cjs/types/models/IFlexboxType.d.ts +0 -20
- package/dist/cjs/types/models/IPaperBounds.d.ts +0 -6
- package/dist/cjs/types/models/IPort.d.ts +0 -13
- package/dist/cjs/types/models/IPortProps.d.ts +0 -31
- package/dist/cjs/types/models/IResizability.d.ts +0 -4
- package/dist/cjs/types/models/IShape.d.ts +0 -18
- package/dist/cjs/types/models/IText.d.ts +0 -20
- package/dist/cjs/types/models/ITextProps.d.ts +0 -25
- package/dist/cjs/types/models/callbackTypes.d.ts +0 -21
- package/dist/cjs/types/models/enums/PositioningAnchor.d.ts +0 -4
- package/dist/cjs/types/models/enums/ResizingDirection.d.ts +0 -10
- package/dist/cjs/types/models/enums/SubObjectDirection.d.ts +0 -4
- package/dist/cjs/types/models/enums/TextAlign.d.ts +0 -5
- package/dist/cjs/types/models/enums/index.d.ts +0 -4
- package/dist/cjs/types/models/implementations/CustomPort.d.ts +0 -7
- package/dist/cjs/types/models/implementations/CustomPortFromJSXElement.d.ts +0 -7
- package/dist/cjs/types/models/implementations/CustomPortFromShape.d.ts +0 -7
- package/dist/cjs/types/models/implementations/EditorContext.d.ts +0 -67
- package/dist/cjs/types/models/implementations/Element.d.ts +0 -61
- package/dist/cjs/types/models/implementations/ElementLink.d.ts +0 -25
- package/dist/cjs/types/models/implementations/Port.d.ts +0 -22
- package/dist/cjs/types/models/implementations/Text.d.ts +0 -20
- package/dist/cjs/types/models/implementations/diamondElement.d.ts +0 -11
- package/dist/cjs/types/models/implementations/index.d.ts +0 -6
- package/dist/cjs/types/models/implementations/rectangularFrameElement.d.ts +0 -11
- package/dist/cjs/types/models/index.d.ts +0 -19
- package/dist/cjs/types/models/position.d.ts +0 -4
- package/dist/cjs/types/models/size.d.ts +0 -4
- package/dist/cjs/types/utils/constants.d.ts +0 -54
- package/dist/cjs/types/utils/elementLinkUtil.d.ts +0 -2
- package/dist/cjs/types/utils/generateUniqueId.d.ts +0 -1
- package/dist/cjs/types/utils/index.d.ts +0 -9
- package/dist/cjs/types/utils/lineUtil.d.ts +0 -3
- package/dist/cjs/types/utils/mathUtil.d.ts +0 -6
- package/dist/cjs/types/utils/pathUtil.d.ts +0 -13
- package/dist/cjs/types/utils/portSlideRailSVGUtil.d.ts +0 -3
- package/dist/cjs/types/utils/positionUtil.d.ts +0 -55
- package/dist/cjs/types/utils/svgUtil.d.ts +0 -3
- package/dist/esm/displaybox.js.map +0 -1
- package/dist/esm/types/components/BBoxDebugger.d.ts +0 -6
- package/dist/esm/types/components/CloseIcon.d.ts +0 -6
- package/dist/esm/types/components/LinkDebugger.d.ts +0 -8
- package/dist/esm/types/components/editor.d.ts +0 -9
- package/dist/esm/types/components/elementShowbox.d.ts +0 -3
- package/dist/esm/types/components/elements/dragDropHandlerElement.d.ts +0 -7
- package/dist/esm/types/components/elements/element.d.ts +0 -4
- package/dist/esm/types/components/elements/elementWrapper.d.ts +0 -18
- package/dist/esm/types/components/links/elementLink.d.ts +0 -4
- package/dist/esm/types/components/links/index.d.ts +0 -2
- package/dist/esm/types/components/links/point.d.ts +0 -11
- package/dist/esm/types/components/paper.d.ts +0 -49
- package/dist/esm/types/components/ports/index.d.ts +0 -2
- package/dist/esm/types/components/ports/port.d.ts +0 -3
- package/dist/esm/types/components/shapeShowbox.d.ts +0 -3
- package/dist/esm/types/components/shapes/circle.d.ts +0 -9
- package/dist/esm/types/components/shapes/customShape.d.ts +0 -7
- package/dist/esm/types/components/shapes/halfCircle.d.ts +0 -9
- package/dist/esm/types/components/shapes/index.d.ts +0 -7
- package/dist/esm/types/components/shapes/polygon.d.ts +0 -8
- package/dist/esm/types/components/shapes/rectangle.d.ts +0 -10
- package/dist/esm/types/components/shapes/rectangularFrame.d.ts +0 -12
- package/dist/esm/types/components/shapes/shapeWrapper.d.ts +0 -8
- package/dist/esm/types/components/svgUtilsShowbox.d.ts +0 -3
- package/dist/esm/types/components/texts/index.d.ts +0 -2
- package/dist/esm/types/components/texts/text.d.ts +0 -4
- package/dist/esm/types/components/viewControls/ruler.d.ts +0 -10
- package/dist/esm/types/components/viewControls/selectionFrame.d.ts +0 -4
- package/dist/esm/types/contexts/editorConfigurationContext.d.ts +0 -4
- package/dist/esm/types/contexts/paperEventEmitterContext.d.ts +0 -45
- package/dist/esm/types/contexts/zoomContext.d.ts +0 -16
- package/dist/esm/types/contexts/zoomPanContext.d.ts +0 -23
- package/dist/esm/types/displaybox/index.d.ts +0 -3
- package/dist/esm/types/hooks/useKeyboardCommands.d.ts +0 -5
- package/dist/esm/types/hooks/useSelectionFrame.d.ts +0 -6
- package/dist/esm/types/logs/Logger.d.ts +0 -14
- package/dist/esm/types/logs/configureLogger.d.ts +0 -4
- package/dist/esm/types/main.d.ts +0 -8
- package/dist/esm/types/mocks/customPortWithBuiltinShape.d.ts +0 -2
- package/dist/esm/types/mocks/diamondElement.d.ts +0 -11
- package/dist/esm/types/mocks/editorContext.d.ts +0 -2
- package/dist/esm/types/mocks/editorContextElementMoveAsPort.d.ts +0 -2
- package/dist/esm/types/mocks/editorContextForOptimizeRerender.d.ts +0 -2
- package/dist/esm/types/mocks/editorContextMultipleElements.d.ts +0 -2
- package/dist/esm/types/mocks/editorContextSingleElement.d.ts +0 -2
- package/dist/esm/types/mocks/editorContextSingleElementTestEvents.d.ts +0 -2
- package/dist/esm/types/mocks/editorContextTriggerRenderElements.d.ts +0 -2
- package/dist/esm/types/mocks/editorContextWithElementAnchorCenter.d.ts +0 -2
- package/dist/esm/types/mocks/port1.d.ts +0 -5
- package/dist/esm/types/mocks/port2.d.ts +0 -5
- package/dist/esm/types/mocks/portIn.d.ts +0 -4
- package/dist/esm/types/mocks/rectangularFrameElement.d.ts +0 -11
- package/dist/esm/types/mocks/textsWithFlexBox.d.ts +0 -2
- package/dist/esm/types/models/IEditorConfiguration.d.ts +0 -7
- package/dist/esm/types/models/IEditorContext.d.ts +0 -56
- package/dist/esm/types/models/IElement.d.ts +0 -46
- package/dist/esm/types/models/IElementLink.d.ts +0 -23
- package/dist/esm/types/models/IElementLinkProps.d.ts +0 -31
- package/dist/esm/types/models/IElementProps.d.ts +0 -36
- package/dist/esm/types/models/IElementSelectorProps.d.ts +0 -25
- package/dist/esm/types/models/IFlexboxType.d.ts +0 -20
- package/dist/esm/types/models/IPaperBounds.d.ts +0 -6
- package/dist/esm/types/models/IPort.d.ts +0 -13
- package/dist/esm/types/models/IPortProps.d.ts +0 -31
- package/dist/esm/types/models/IResizability.d.ts +0 -4
- package/dist/esm/types/models/IShape.d.ts +0 -18
- package/dist/esm/types/models/IText.d.ts +0 -20
- package/dist/esm/types/models/ITextProps.d.ts +0 -25
- package/dist/esm/types/models/callbackTypes.d.ts +0 -21
- package/dist/esm/types/models/enums/PositioningAnchor.d.ts +0 -4
- package/dist/esm/types/models/enums/ResizingDirection.d.ts +0 -10
- package/dist/esm/types/models/enums/SubObjectDirection.d.ts +0 -4
- package/dist/esm/types/models/enums/TextAlign.d.ts +0 -5
- package/dist/esm/types/models/enums/index.d.ts +0 -4
- package/dist/esm/types/models/implementations/CustomPort.d.ts +0 -7
- package/dist/esm/types/models/implementations/CustomPortFromJSXElement.d.ts +0 -7
- package/dist/esm/types/models/implementations/CustomPortFromShape.d.ts +0 -7
- package/dist/esm/types/models/implementations/EditorContext.d.ts +0 -67
- package/dist/esm/types/models/implementations/Element.d.ts +0 -61
- package/dist/esm/types/models/implementations/ElementLink.d.ts +0 -25
- package/dist/esm/types/models/implementations/Port.d.ts +0 -22
- package/dist/esm/types/models/implementations/Text.d.ts +0 -20
- package/dist/esm/types/models/implementations/diamondElement.d.ts +0 -11
- package/dist/esm/types/models/implementations/index.d.ts +0 -6
- package/dist/esm/types/models/implementations/rectangularFrameElement.d.ts +0 -11
- package/dist/esm/types/models/index.d.ts +0 -19
- package/dist/esm/types/models/position.d.ts +0 -4
- package/dist/esm/types/models/size.d.ts +0 -4
- package/dist/esm/types/utils/constants.d.ts +0 -54
- package/dist/esm/types/utils/elementLinkUtil.d.ts +0 -2
- package/dist/esm/types/utils/generateUniqueId.d.ts +0 -1
- package/dist/esm/types/utils/index.d.ts +0 -9
- package/dist/esm/types/utils/lineUtil.d.ts +0 -3
- package/dist/esm/types/utils/mathUtil.d.ts +0 -6
- package/dist/esm/types/utils/pathUtil.d.ts +0 -13
- package/dist/esm/types/utils/portSlideRailSVGUtil.d.ts +0 -3
- package/dist/esm/types/utils/positionUtil.d.ts +0 -55
- package/dist/esm/types/utils/svgUtil.d.ts +0 -3
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
declare const DisplayBox: () => React$1.JSX.Element;
|
|
1
|
+
import { CSSProperties } from 'react';
|
|
4
2
|
|
|
5
3
|
type Point = {
|
|
6
4
|
x: number;
|
|
@@ -24,6 +22,101 @@ type DiagramContainer = {
|
|
|
24
22
|
getBoundingClientRect: () => ClientRectLike;
|
|
25
23
|
};
|
|
26
24
|
type MoveConstraint = 'free' | 'inside' | 'border';
|
|
25
|
+
type BorderSide = 'left' | 'right' | 'top' | 'bottom';
|
|
26
|
+
type HostAnchorPreset = 'vertices' | 'cardinal';
|
|
27
|
+
type PortAnchor = {
|
|
28
|
+
id: string;
|
|
29
|
+
position: Point;
|
|
30
|
+
side?: BorderSide;
|
|
31
|
+
normal?: Point;
|
|
32
|
+
meta?: Record<string, unknown>;
|
|
33
|
+
};
|
|
34
|
+
type PortAnchorConstraint = {
|
|
35
|
+
preset: HostAnchorPreset;
|
|
36
|
+
fallback?: 'nearest';
|
|
37
|
+
};
|
|
38
|
+
type ResolvePortAnchorsOptions = {
|
|
39
|
+
preset: HostAnchorPreset;
|
|
40
|
+
};
|
|
41
|
+
type ShapeVertexTarget = {
|
|
42
|
+
id: string;
|
|
43
|
+
position: Point;
|
|
44
|
+
};
|
|
45
|
+
type ShapeEdgeTarget = {
|
|
46
|
+
id: string;
|
|
47
|
+
start: Point;
|
|
48
|
+
end: Point;
|
|
49
|
+
midpoint: Point;
|
|
50
|
+
};
|
|
51
|
+
declare enum EllipseMidPoint {
|
|
52
|
+
top = "top",
|
|
53
|
+
right = "right",
|
|
54
|
+
bottom = "bottom",
|
|
55
|
+
left = "left"
|
|
56
|
+
}
|
|
57
|
+
type ShapeEllipseMidPointTarget = {
|
|
58
|
+
id: EllipseMidPoint;
|
|
59
|
+
ellipseMidPoint: EllipseMidPoint;
|
|
60
|
+
position: Point;
|
|
61
|
+
};
|
|
62
|
+
type ShapeHoverGeometry = {
|
|
63
|
+
vertices: ShapeVertexTarget[];
|
|
64
|
+
edges: ShapeEdgeTarget[];
|
|
65
|
+
};
|
|
66
|
+
type HoverControlIcon = {
|
|
67
|
+
svgPath: string;
|
|
68
|
+
size?: Size;
|
|
69
|
+
style?: Record<string, unknown>;
|
|
70
|
+
};
|
|
71
|
+
type ShapeControlTargetKind = 'vertex' | 'edge' | 'midpoint' | 'ellipse-midpoint';
|
|
72
|
+
type ShapeControlVisibilityTrigger = 'element-hover' | 'target-hover';
|
|
73
|
+
type ShapeControlDefinition = {
|
|
74
|
+
id: string;
|
|
75
|
+
targetKind: ShapeControlTargetKind;
|
|
76
|
+
icon: HoverControlIcon;
|
|
77
|
+
targetIndices?: number[];
|
|
78
|
+
ellipseMidPoints?: EllipseMidPoint | EllipseMidPoint[];
|
|
79
|
+
allowAllTargets?: boolean;
|
|
80
|
+
visibilityTriggers?: ShapeControlVisibilityTrigger[];
|
|
81
|
+
lineStyle?: Record<string, unknown>;
|
|
82
|
+
tolerance?: number;
|
|
83
|
+
};
|
|
84
|
+
/**
|
|
85
|
+
* @deprecated Use ShapeControlDefinition with targetKind='edge'.
|
|
86
|
+
*/
|
|
87
|
+
type EdgeHoverControl = {
|
|
88
|
+
kind: 'edge';
|
|
89
|
+
icon: HoverControlIcon;
|
|
90
|
+
lineStyle?: Record<string, unknown>;
|
|
91
|
+
tolerance?: number;
|
|
92
|
+
};
|
|
93
|
+
/**
|
|
94
|
+
* @deprecated Use ShapeControlDefinition with targetKind='vertex'.
|
|
95
|
+
*/
|
|
96
|
+
type VertexHoverControl = {
|
|
97
|
+
kind: 'vertex';
|
|
98
|
+
icon: HoverControlIcon;
|
|
99
|
+
tolerance?: number;
|
|
100
|
+
};
|
|
101
|
+
type ElementShapeHoverControls = {
|
|
102
|
+
controls?: ShapeControlDefinition[];
|
|
103
|
+
/**
|
|
104
|
+
* @deprecated Legacy singleton edge control. Use controls[] instead.
|
|
105
|
+
*/
|
|
106
|
+
edge?: EdgeHoverControl;
|
|
107
|
+
/**
|
|
108
|
+
* @deprecated Legacy singleton vertex control. Use controls[] instead.
|
|
109
|
+
*/
|
|
110
|
+
vertex?: VertexHoverControl;
|
|
111
|
+
/**
|
|
112
|
+
* @deprecated Legacy resolution preference for singleton edge/vertex controls.
|
|
113
|
+
*/
|
|
114
|
+
priority?: 'vertex-first';
|
|
115
|
+
};
|
|
116
|
+
type ElementPortMovementPolicy = {
|
|
117
|
+
moveMode: MoveConstraint | 'anchors';
|
|
118
|
+
anchorConstraint?: PortAnchorConstraint;
|
|
119
|
+
};
|
|
27
120
|
type LinkRoutingMode = 'auto' | 'manual';
|
|
28
121
|
type AnchorReference = 'top-left' | 'center';
|
|
29
122
|
type RerouteLinksOptions = {
|
|
@@ -31,6 +124,11 @@ type RerouteLinksOptions = {
|
|
|
31
124
|
};
|
|
32
125
|
type ElementLayoutMode = 'manual' | 'horizontal' | 'vertical';
|
|
33
126
|
type ElementLayoutAlign = 'start' | 'center' | 'end';
|
|
127
|
+
type ElementLayoutChildFitMainAxis = 'none' | 'distribute';
|
|
128
|
+
type ElementLayoutChildFitCrossAxis = 'none' | 'stretch';
|
|
129
|
+
type TextLayoutBoundsMode = 'owner-width' | 'owner-box' | 'fixed';
|
|
130
|
+
type TextLayoutWrapMode = 'none' | 'word' | 'char';
|
|
131
|
+
type TextLayoutOverflowMode = 'clip' | 'ellipsis-end' | 'ellipsis-middle' | 'ellipsis-start';
|
|
34
132
|
type ElementLayout = {
|
|
35
133
|
mode: ElementLayoutMode;
|
|
36
134
|
padding?: number | {
|
|
@@ -39,6 +137,18 @@ type ElementLayout = {
|
|
|
39
137
|
};
|
|
40
138
|
gap?: number;
|
|
41
139
|
align?: ElementLayoutAlign;
|
|
140
|
+
childFitMainAxis?: ElementLayoutChildFitMainAxis;
|
|
141
|
+
childFitCrossAxis?: ElementLayoutChildFitCrossAxis;
|
|
142
|
+
childFitMinSize?: Partial<Size>;
|
|
143
|
+
childFitMaxSize?: Partial<Size>;
|
|
144
|
+
};
|
|
145
|
+
type TextLayout = {
|
|
146
|
+
boundsMode?: TextLayoutBoundsMode;
|
|
147
|
+
wrap?: TextLayoutWrapMode;
|
|
148
|
+
overflow?: TextLayoutOverflowMode;
|
|
149
|
+
padding?: number;
|
|
150
|
+
maxLines?: number;
|
|
151
|
+
fixedSize?: Size;
|
|
42
152
|
};
|
|
43
153
|
type ElementDropEvent = {
|
|
44
154
|
elementId: string;
|
|
@@ -72,6 +182,7 @@ type ElementData = {
|
|
|
72
182
|
moveMode?: MoveConstraint;
|
|
73
183
|
anchorCenter?: boolean;
|
|
74
184
|
layout?: ElementLayout;
|
|
185
|
+
portMovement?: ElementPortMovementPolicy;
|
|
75
186
|
};
|
|
76
187
|
type PortData = {
|
|
77
188
|
id: string;
|
|
@@ -83,6 +194,8 @@ type PortData = {
|
|
|
83
194
|
textIds?: string[];
|
|
84
195
|
moveMode?: MoveConstraint;
|
|
85
196
|
anchorCenter?: boolean;
|
|
197
|
+
orientToHostBorder?: boolean;
|
|
198
|
+
currentAnchorId?: string;
|
|
86
199
|
};
|
|
87
200
|
type ShapeDrawContext = {
|
|
88
201
|
ctx: CanvasRenderingContext2D;
|
|
@@ -104,6 +217,10 @@ type TextData = {
|
|
|
104
217
|
size?: Size;
|
|
105
218
|
style?: Record<string, unknown>;
|
|
106
219
|
ownerId?: string | null;
|
|
220
|
+
layout?: TextLayout;
|
|
221
|
+
displayContent?: string;
|
|
222
|
+
displayOffset?: Point;
|
|
223
|
+
displayClipSize?: Size;
|
|
107
224
|
};
|
|
108
225
|
type DiagramState = {
|
|
109
226
|
elements: ElementData[];
|
|
@@ -176,6 +293,26 @@ type ElementResizedEvent = {
|
|
|
176
293
|
type ElementDeletedEvent = {
|
|
177
294
|
elementId: string;
|
|
178
295
|
};
|
|
296
|
+
type PortDeletedEvent = {
|
|
297
|
+
portId: string;
|
|
298
|
+
elementId: string;
|
|
299
|
+
};
|
|
300
|
+
type LinkDeletedEvent = {
|
|
301
|
+
linkId: string;
|
|
302
|
+
sourcePortId: string;
|
|
303
|
+
targetPortId: string;
|
|
304
|
+
};
|
|
305
|
+
type TextDeletedEvent = {
|
|
306
|
+
textId: string;
|
|
307
|
+
ownerId?: string | null;
|
|
308
|
+
};
|
|
309
|
+
type TextUpdatedEvent = {
|
|
310
|
+
textId: string;
|
|
311
|
+
ownerId?: string | null;
|
|
312
|
+
content: string;
|
|
313
|
+
displayContent: string;
|
|
314
|
+
reason: 'content' | 'layout';
|
|
315
|
+
};
|
|
179
316
|
type ElementLinkStartedEvent = {
|
|
180
317
|
sourcePortId: string;
|
|
181
318
|
sourceElementId: string;
|
|
@@ -222,6 +359,10 @@ type EngineEventMap = {
|
|
|
222
359
|
elementMoved: ElementMovedEvent;
|
|
223
360
|
elementResized: ElementResizedEvent;
|
|
224
361
|
elementDeleted: ElementDeletedEvent;
|
|
362
|
+
portDeleted: PortDeletedEvent;
|
|
363
|
+
linkDeleted: LinkDeletedEvent;
|
|
364
|
+
textDeleted: TextDeletedEvent;
|
|
365
|
+
textUpdated: TextUpdatedEvent;
|
|
225
366
|
elementSelected: ElementSelectedEvent;
|
|
226
367
|
elementLinkStarted: ElementLinkStartedEvent;
|
|
227
368
|
elementLinkConnecting: ElementLinkConnectingEvent;
|
|
@@ -266,10 +407,16 @@ type DiagramEngineHandle = {
|
|
|
266
407
|
setSnapping: (snapper: unknown) => void;
|
|
267
408
|
registerShape: (shape: {
|
|
268
409
|
id: string;
|
|
410
|
+
baseRotation?: number;
|
|
269
411
|
draw?: (context: ShapeDrawContext) => void;
|
|
270
412
|
createNode?: (model: ElementData | PortData) => unknown;
|
|
271
413
|
svgPath?: string;
|
|
272
414
|
svgSize?: Size;
|
|
415
|
+
projectToBorder?: (point: Point, rect: Rect) => Point;
|
|
416
|
+
resolveBorderSide?: (point: Point, rect: Rect) => BorderSide;
|
|
417
|
+
resolvePortAnchors?: (rect: Rect, options: ResolvePortAnchorsOptions) => PortAnchor[];
|
|
418
|
+
resolveHoverGeometry?: (rect: Rect) => ShapeHoverGeometry | undefined;
|
|
419
|
+
resolveEllipseMidPoints?: (rect: Rect) => ShapeEllipseMidPointTarget[] | undefined;
|
|
273
420
|
}) => void;
|
|
274
421
|
render: () => void;
|
|
275
422
|
};
|
|
@@ -296,13 +443,16 @@ interface RouterStrategy {
|
|
|
296
443
|
route(source: Point, target: Point, context?: RouteContext): Point[];
|
|
297
444
|
}
|
|
298
445
|
|
|
446
|
+
type BuiltInShapeKind = 'rect' | 'circle' | 'ellipse' | 'diamond' | 'triangle' | 'pentagon' | 'hexagon';
|
|
447
|
+
|
|
299
448
|
type SimpleShape = {
|
|
300
449
|
id: string;
|
|
301
|
-
kind:
|
|
450
|
+
kind: BuiltInShapeKind;
|
|
302
451
|
style?: Record<string, unknown>;
|
|
303
452
|
};
|
|
304
453
|
type DiagramEditorHandle = DiagramEngineHandle & {
|
|
305
454
|
resize: (width: number, height: number) => void;
|
|
455
|
+
setElementShapeHoverControls: (controls?: ElementShapeHoverControls) => void;
|
|
306
456
|
destroy: () => void;
|
|
307
457
|
};
|
|
308
458
|
|
|
@@ -363,6 +513,20 @@ type DisplayBoxMetrics = {
|
|
|
363
513
|
snapEnabled: boolean;
|
|
364
514
|
};
|
|
365
515
|
|
|
516
|
+
declare const baseElementShapes: SimpleShape[];
|
|
517
|
+
declare const basePortShapes: SimpleShape[];
|
|
518
|
+
declare const customGalleryShapes: SimpleShape[];
|
|
519
|
+
declare const externalToolboxItems: ToolboxItem[];
|
|
520
|
+
declare const defaultGhostSize: {
|
|
521
|
+
width: number;
|
|
522
|
+
height: number;
|
|
523
|
+
};
|
|
524
|
+
declare const defaultSvgPath = "M10 10 H110 V90 H10 Z";
|
|
525
|
+
declare const defaultSvgPathSize: {
|
|
526
|
+
width: number;
|
|
527
|
+
height: number;
|
|
528
|
+
};
|
|
529
|
+
|
|
366
530
|
declare const demoTabs: DemoDefinition[];
|
|
367
531
|
|
|
368
|
-
export { type DemoAction, type DemoActionHelpers, type DemoConfig, type DemoDefinition, type DiagramCounts,
|
|
532
|
+
export { type DemoAction, type DemoActionHelpers, type DemoConfig, type DemoDefinition, type DiagramCounts, type DisplayBoxMetrics, type ToolboxItem, type ViewportSnapshot, baseElementShapes, basePortShapes, customGalleryShapes, defaultGhostSize, defaultSvgPath, defaultSvgPathSize, demoTabs, externalToolboxItems };
|
package/dist/index.d.ts
CHANGED
|
@@ -20,6 +20,130 @@ type DiagramContainer = {
|
|
|
20
20
|
getBoundingClientRect: () => ClientRectLike;
|
|
21
21
|
};
|
|
22
22
|
type MoveConstraint = 'free' | 'inside' | 'border';
|
|
23
|
+
type BorderSide$1 = 'left' | 'right' | 'top' | 'bottom';
|
|
24
|
+
type HostAnchorPreset = 'vertices' | 'cardinal';
|
|
25
|
+
type PortAnchor = {
|
|
26
|
+
id: string;
|
|
27
|
+
position: Point;
|
|
28
|
+
side?: BorderSide$1;
|
|
29
|
+
normal?: Point;
|
|
30
|
+
meta?: Record<string, unknown>;
|
|
31
|
+
};
|
|
32
|
+
type PortAnchorConstraint = {
|
|
33
|
+
preset: HostAnchorPreset;
|
|
34
|
+
fallback?: 'nearest';
|
|
35
|
+
};
|
|
36
|
+
type ResolvePortAnchorsOptions = {
|
|
37
|
+
preset: HostAnchorPreset;
|
|
38
|
+
};
|
|
39
|
+
type ShapeVertexTarget = {
|
|
40
|
+
id: string;
|
|
41
|
+
position: Point;
|
|
42
|
+
};
|
|
43
|
+
type ShapeEdgeTarget = {
|
|
44
|
+
id: string;
|
|
45
|
+
start: Point;
|
|
46
|
+
end: Point;
|
|
47
|
+
midpoint: Point;
|
|
48
|
+
};
|
|
49
|
+
declare enum EllipseMidPoint {
|
|
50
|
+
top = "top",
|
|
51
|
+
right = "right",
|
|
52
|
+
bottom = "bottom",
|
|
53
|
+
left = "left"
|
|
54
|
+
}
|
|
55
|
+
type ShapeEllipseMidPointTarget = {
|
|
56
|
+
id: EllipseMidPoint;
|
|
57
|
+
ellipseMidPoint: EllipseMidPoint;
|
|
58
|
+
position: Point;
|
|
59
|
+
};
|
|
60
|
+
type ShapeHoverGeometry = {
|
|
61
|
+
vertices: ShapeVertexTarget[];
|
|
62
|
+
edges: ShapeEdgeTarget[];
|
|
63
|
+
};
|
|
64
|
+
type HoverControlIcon = {
|
|
65
|
+
svgPath: string;
|
|
66
|
+
size?: Size;
|
|
67
|
+
style?: Record<string, unknown>;
|
|
68
|
+
};
|
|
69
|
+
type ShapeControlTargetKind = 'vertex' | 'edge' | 'midpoint' | 'ellipse-midpoint';
|
|
70
|
+
type ShapeControlVisibilityTrigger = 'element-hover' | 'target-hover';
|
|
71
|
+
type ShapeControlDefinition = {
|
|
72
|
+
id: string;
|
|
73
|
+
targetKind: ShapeControlTargetKind;
|
|
74
|
+
icon: HoverControlIcon;
|
|
75
|
+
targetIndices?: number[];
|
|
76
|
+
ellipseMidPoints?: EllipseMidPoint | EllipseMidPoint[];
|
|
77
|
+
allowAllTargets?: boolean;
|
|
78
|
+
visibilityTriggers?: ShapeControlVisibilityTrigger[];
|
|
79
|
+
lineStyle?: Record<string, unknown>;
|
|
80
|
+
tolerance?: number;
|
|
81
|
+
};
|
|
82
|
+
/**
|
|
83
|
+
* @deprecated Use ShapeControlDefinition with targetKind='edge'.
|
|
84
|
+
*/
|
|
85
|
+
type EdgeHoverControl = {
|
|
86
|
+
kind: 'edge';
|
|
87
|
+
icon: HoverControlIcon;
|
|
88
|
+
lineStyle?: Record<string, unknown>;
|
|
89
|
+
tolerance?: number;
|
|
90
|
+
};
|
|
91
|
+
/**
|
|
92
|
+
* @deprecated Use ShapeControlDefinition with targetKind='vertex'.
|
|
93
|
+
*/
|
|
94
|
+
type VertexHoverControl = {
|
|
95
|
+
kind: 'vertex';
|
|
96
|
+
icon: HoverControlIcon;
|
|
97
|
+
tolerance?: number;
|
|
98
|
+
};
|
|
99
|
+
type ElementShapeHoverControls = {
|
|
100
|
+
controls?: ShapeControlDefinition[];
|
|
101
|
+
/**
|
|
102
|
+
* @deprecated Legacy singleton edge control. Use controls[] instead.
|
|
103
|
+
*/
|
|
104
|
+
edge?: EdgeHoverControl;
|
|
105
|
+
/**
|
|
106
|
+
* @deprecated Legacy singleton vertex control. Use controls[] instead.
|
|
107
|
+
*/
|
|
108
|
+
vertex?: VertexHoverControl;
|
|
109
|
+
/**
|
|
110
|
+
* @deprecated Legacy resolution preference for singleton edge/vertex controls.
|
|
111
|
+
*/
|
|
112
|
+
priority?: 'vertex-first';
|
|
113
|
+
};
|
|
114
|
+
type ElementShapeControlEventType = 'click' | 'drag-start' | 'drag-move' | 'drag-end';
|
|
115
|
+
type ElementShapeControlDragEvent = {
|
|
116
|
+
sessionId: string;
|
|
117
|
+
startPointer: EnginePointerInfo;
|
|
118
|
+
delta: Point;
|
|
119
|
+
};
|
|
120
|
+
type ElementShapeHoverControlInteractionEvent = {
|
|
121
|
+
eventType: ElementShapeControlEventType;
|
|
122
|
+
controlId: string;
|
|
123
|
+
elementId: string;
|
|
124
|
+
targetKind: ShapeControlTargetKind;
|
|
125
|
+
targetIndex: number;
|
|
126
|
+
pointer: EnginePointerInfo;
|
|
127
|
+
edge?: ShapeEdgeTarget;
|
|
128
|
+
vertex?: ShapeVertexTarget;
|
|
129
|
+
ellipseMidPoint?: EllipseMidPoint;
|
|
130
|
+
drag?: ElementShapeControlDragEvent;
|
|
131
|
+
};
|
|
132
|
+
/**
|
|
133
|
+
* @deprecated Use ElementShapeHoverControlInteractionEvent with eventType='click'.
|
|
134
|
+
*/
|
|
135
|
+
type ElementShapeHoverControlActivationEvent = {
|
|
136
|
+
controlKind: 'edge' | 'vertex';
|
|
137
|
+
elementId: string;
|
|
138
|
+
targetId: string;
|
|
139
|
+
pointer: EnginePointerInfo;
|
|
140
|
+
edge?: ShapeEdgeTarget;
|
|
141
|
+
vertex?: ShapeVertexTarget;
|
|
142
|
+
};
|
|
143
|
+
type ElementPortMovementPolicy = {
|
|
144
|
+
moveMode: MoveConstraint | 'anchors';
|
|
145
|
+
anchorConstraint?: PortAnchorConstraint;
|
|
146
|
+
};
|
|
23
147
|
type LinkRoutingMode = 'auto' | 'manual';
|
|
24
148
|
type AnchorReference = 'top-left' | 'center';
|
|
25
149
|
type RerouteLinksOptions = {
|
|
@@ -27,6 +151,11 @@ type RerouteLinksOptions = {
|
|
|
27
151
|
};
|
|
28
152
|
type ElementLayoutMode = 'manual' | 'horizontal' | 'vertical';
|
|
29
153
|
type ElementLayoutAlign = 'start' | 'center' | 'end';
|
|
154
|
+
type ElementLayoutChildFitMainAxis = 'none' | 'distribute';
|
|
155
|
+
type ElementLayoutChildFitCrossAxis = 'none' | 'stretch';
|
|
156
|
+
type TextLayoutBoundsMode = 'owner-width' | 'owner-box' | 'fixed';
|
|
157
|
+
type TextLayoutWrapMode = 'none' | 'word' | 'char';
|
|
158
|
+
type TextLayoutOverflowMode = 'clip' | 'ellipsis-end' | 'ellipsis-middle' | 'ellipsis-start';
|
|
30
159
|
type ElementLayout = {
|
|
31
160
|
mode: ElementLayoutMode;
|
|
32
161
|
padding?: number | {
|
|
@@ -35,6 +164,18 @@ type ElementLayout = {
|
|
|
35
164
|
};
|
|
36
165
|
gap?: number;
|
|
37
166
|
align?: ElementLayoutAlign;
|
|
167
|
+
childFitMainAxis?: ElementLayoutChildFitMainAxis;
|
|
168
|
+
childFitCrossAxis?: ElementLayoutChildFitCrossAxis;
|
|
169
|
+
childFitMinSize?: Partial<Size>;
|
|
170
|
+
childFitMaxSize?: Partial<Size>;
|
|
171
|
+
};
|
|
172
|
+
type TextLayout = {
|
|
173
|
+
boundsMode?: TextLayoutBoundsMode;
|
|
174
|
+
wrap?: TextLayoutWrapMode;
|
|
175
|
+
overflow?: TextLayoutOverflowMode;
|
|
176
|
+
padding?: number;
|
|
177
|
+
maxLines?: number;
|
|
178
|
+
fixedSize?: Size;
|
|
38
179
|
};
|
|
39
180
|
type ElementDropEvent = {
|
|
40
181
|
elementId: string;
|
|
@@ -68,6 +209,7 @@ type ElementData = {
|
|
|
68
209
|
moveMode?: MoveConstraint;
|
|
69
210
|
anchorCenter?: boolean;
|
|
70
211
|
layout?: ElementLayout;
|
|
212
|
+
portMovement?: ElementPortMovementPolicy;
|
|
71
213
|
};
|
|
72
214
|
type PortData = {
|
|
73
215
|
id: string;
|
|
@@ -79,6 +221,8 @@ type PortData = {
|
|
|
79
221
|
textIds?: string[];
|
|
80
222
|
moveMode?: MoveConstraint;
|
|
81
223
|
anchorCenter?: boolean;
|
|
224
|
+
orientToHostBorder?: boolean;
|
|
225
|
+
currentAnchorId?: string;
|
|
82
226
|
};
|
|
83
227
|
type ShapeDrawContext = {
|
|
84
228
|
ctx: CanvasRenderingContext2D;
|
|
@@ -100,6 +244,10 @@ type TextData = {
|
|
|
100
244
|
size?: Size;
|
|
101
245
|
style?: Record<string, unknown>;
|
|
102
246
|
ownerId?: string | null;
|
|
247
|
+
layout?: TextLayout;
|
|
248
|
+
displayContent?: string;
|
|
249
|
+
displayOffset?: Point;
|
|
250
|
+
displayClipSize?: Size;
|
|
103
251
|
};
|
|
104
252
|
type DiagramState = {
|
|
105
253
|
elements: ElementData[];
|
|
@@ -172,6 +320,26 @@ type ElementResizedEvent = {
|
|
|
172
320
|
type ElementDeletedEvent = {
|
|
173
321
|
elementId: string;
|
|
174
322
|
};
|
|
323
|
+
type PortDeletedEvent = {
|
|
324
|
+
portId: string;
|
|
325
|
+
elementId: string;
|
|
326
|
+
};
|
|
327
|
+
type LinkDeletedEvent = {
|
|
328
|
+
linkId: string;
|
|
329
|
+
sourcePortId: string;
|
|
330
|
+
targetPortId: string;
|
|
331
|
+
};
|
|
332
|
+
type TextDeletedEvent = {
|
|
333
|
+
textId: string;
|
|
334
|
+
ownerId?: string | null;
|
|
335
|
+
};
|
|
336
|
+
type TextUpdatedEvent = {
|
|
337
|
+
textId: string;
|
|
338
|
+
ownerId?: string | null;
|
|
339
|
+
content: string;
|
|
340
|
+
displayContent: string;
|
|
341
|
+
reason: 'content' | 'layout';
|
|
342
|
+
};
|
|
175
343
|
type ElementLinkStartedEvent = {
|
|
176
344
|
sourcePortId: string;
|
|
177
345
|
sourceElementId: string;
|
|
@@ -218,6 +386,10 @@ type EngineEventMap = {
|
|
|
218
386
|
elementMoved: ElementMovedEvent;
|
|
219
387
|
elementResized: ElementResizedEvent;
|
|
220
388
|
elementDeleted: ElementDeletedEvent;
|
|
389
|
+
portDeleted: PortDeletedEvent;
|
|
390
|
+
linkDeleted: LinkDeletedEvent;
|
|
391
|
+
textDeleted: TextDeletedEvent;
|
|
392
|
+
textUpdated: TextUpdatedEvent;
|
|
221
393
|
elementSelected: ElementSelectedEvent;
|
|
222
394
|
elementLinkStarted: ElementLinkStartedEvent;
|
|
223
395
|
elementLinkConnecting: ElementLinkConnectingEvent;
|
|
@@ -262,10 +434,16 @@ type DiagramEngineHandle = {
|
|
|
262
434
|
setSnapping: (snapper: unknown) => void;
|
|
263
435
|
registerShape: (shape: {
|
|
264
436
|
id: string;
|
|
437
|
+
baseRotation?: number;
|
|
265
438
|
draw?: (context: ShapeDrawContext) => void;
|
|
266
439
|
createNode?: (model: ElementData | PortData) => unknown;
|
|
267
440
|
svgPath?: string;
|
|
268
441
|
svgSize?: Size;
|
|
442
|
+
projectToBorder?: (point: Point, rect: Rect) => Point;
|
|
443
|
+
resolveBorderSide?: (point: Point, rect: Rect) => BorderSide$1;
|
|
444
|
+
resolvePortAnchors?: (rect: Rect, options: ResolvePortAnchorsOptions) => PortAnchor[];
|
|
445
|
+
resolveHoverGeometry?: (rect: Rect) => ShapeHoverGeometry | undefined;
|
|
446
|
+
resolveEllipseMidPoints?: (rect: Rect) => ShapeEllipseMidPointTarget[] | undefined;
|
|
269
447
|
}) => void;
|
|
270
448
|
render: () => void;
|
|
271
449
|
};
|
|
@@ -282,6 +460,7 @@ declare class ElementModel {
|
|
|
282
460
|
moveMode?: MoveConstraint;
|
|
283
461
|
anchorCenter?: boolean;
|
|
284
462
|
layout?: ElementData['layout'];
|
|
463
|
+
portMovement?: ElementData['portMovement'];
|
|
285
464
|
constructor(data: ElementData);
|
|
286
465
|
setPosition(position: Point): void;
|
|
287
466
|
setSize(size: Size): void;
|
|
@@ -326,8 +505,11 @@ declare class PortModel {
|
|
|
326
505
|
textIds: string[];
|
|
327
506
|
moveMode?: MoveConstraint;
|
|
328
507
|
anchorCenter?: boolean;
|
|
508
|
+
orientToHostBorder: boolean;
|
|
509
|
+
currentAnchorId?: string;
|
|
329
510
|
constructor(data: PortData);
|
|
330
511
|
setPosition(position: Point): void;
|
|
512
|
+
setCurrentAnchorId(currentAnchorId?: string): void;
|
|
331
513
|
addText(textId: string): void;
|
|
332
514
|
removeText(textId: string): void;
|
|
333
515
|
toData(): PortData;
|
|
@@ -340,9 +522,17 @@ declare class TextModel {
|
|
|
340
522
|
size?: Size;
|
|
341
523
|
style?: Record<string, unknown>;
|
|
342
524
|
ownerId?: string | null;
|
|
525
|
+
layout?: TextData['layout'];
|
|
526
|
+
displayContent?: string;
|
|
527
|
+
displayOffset?: Point;
|
|
528
|
+
displayClipSize?: Size;
|
|
343
529
|
constructor(data: TextData);
|
|
344
530
|
setContent(content: string): void;
|
|
345
531
|
setSize(size: Size): void;
|
|
532
|
+
setDisplayContent(content: string): void;
|
|
533
|
+
setDisplayOffset(offset: Point | undefined): void;
|
|
534
|
+
setDisplayClipSize(size: Size | undefined): void;
|
|
535
|
+
setLayout(layout: TextData['layout']): void;
|
|
346
536
|
setPosition(position: Point): void;
|
|
347
537
|
toData(): TextData;
|
|
348
538
|
}
|
|
@@ -374,6 +564,7 @@ declare class DiagramModel {
|
|
|
374
564
|
removeElement(id: string): void;
|
|
375
565
|
addPort(data: PortData): PortModel;
|
|
376
566
|
movePort(id: string, position: Point): void;
|
|
567
|
+
setPortCurrentAnchorId(id: string, currentAnchorId?: string): void;
|
|
377
568
|
removePort(id: string): void;
|
|
378
569
|
addLink(data: LinkData): LinkModel;
|
|
379
570
|
updateLinkPoints(id: string, points: Point[]): void;
|
|
@@ -426,8 +617,32 @@ interface SnapStrategy {
|
|
|
426
617
|
snap(point: Point): Point;
|
|
427
618
|
}
|
|
428
619
|
|
|
620
|
+
type BorderSide = 'left' | 'right' | 'top' | 'bottom';
|
|
621
|
+
|
|
622
|
+
type ShapeNodeSizeUpdateContext = {
|
|
623
|
+
size: {
|
|
624
|
+
width: number;
|
|
625
|
+
height: number;
|
|
626
|
+
};
|
|
627
|
+
anchorCenter: boolean;
|
|
628
|
+
updateOffsetX: boolean;
|
|
629
|
+
updateOffsetY: boolean;
|
|
630
|
+
getNodeAttr: <T = unknown>(key: string) => T | undefined;
|
|
631
|
+
};
|
|
632
|
+
type ShapeNodeSizeUpdater = (context: ShapeNodeSizeUpdateContext) => Record<string, unknown>;
|
|
633
|
+
type ShapeResizeHandle = 'nw' | 'ne' | 'sw' | 'se';
|
|
634
|
+
type ShapeResizeNormalizeContext = {
|
|
635
|
+
element: ElementData;
|
|
636
|
+
handle: ShapeResizeHandle;
|
|
637
|
+
minSize: number;
|
|
638
|
+
proposal: {
|
|
639
|
+
width: number;
|
|
640
|
+
height: number;
|
|
641
|
+
};
|
|
642
|
+
};
|
|
429
643
|
type ShapeDefinition = {
|
|
430
644
|
id: string;
|
|
645
|
+
baseRotation?: number;
|
|
431
646
|
draw?: (context: ShapeDrawContext) => void;
|
|
432
647
|
createNode?: (model: ElementData | PortData) => unknown;
|
|
433
648
|
svgPath?: string;
|
|
@@ -435,6 +650,16 @@ type ShapeDefinition = {
|
|
|
435
650
|
width: number;
|
|
436
651
|
height: number;
|
|
437
652
|
};
|
|
653
|
+
sizeUpdater?: ShapeNodeSizeUpdater;
|
|
654
|
+
normalizeResize?: (context: ShapeResizeNormalizeContext) => {
|
|
655
|
+
width: number;
|
|
656
|
+
height: number;
|
|
657
|
+
};
|
|
658
|
+
projectToBorder?: (point: Point, rect: Rect) => Point;
|
|
659
|
+
resolveBorderSide?: (point: Point, rect: Rect) => BorderSide;
|
|
660
|
+
resolvePortAnchors?: (rect: Rect, options: ResolvePortAnchorsOptions) => PortAnchor[];
|
|
661
|
+
resolveHoverGeometry?: (rect: Rect) => ShapeHoverGeometry | undefined;
|
|
662
|
+
resolveEllipseMidPoints?: (rect: Rect) => ShapeEllipseMidPointTarget[] | undefined;
|
|
438
663
|
};
|
|
439
664
|
declare class ShapeRegistry {
|
|
440
665
|
private shapes;
|
|
@@ -457,9 +682,11 @@ type DiagramEngineConfig = {
|
|
|
457
682
|
};
|
|
458
683
|
declare const createDiagramEngine: (config: DiagramEngineConfig) => DiagramEngineHandle;
|
|
459
684
|
|
|
685
|
+
type BuiltInShapeKind = 'rect' | 'circle' | 'ellipse' | 'diamond' | 'triangle' | 'pentagon' | 'hexagon';
|
|
686
|
+
|
|
460
687
|
type SimpleShape = {
|
|
461
688
|
id: string;
|
|
462
|
-
kind:
|
|
689
|
+
kind: BuiltInShapeKind;
|
|
463
690
|
style?: Record<string, unknown>;
|
|
464
691
|
};
|
|
465
692
|
type DiagramEditorConfig = {
|
|
@@ -470,13 +697,17 @@ type DiagramEditorConfig = {
|
|
|
470
697
|
elementShapes?: SimpleShape[];
|
|
471
698
|
portShapes?: SimpleShape[];
|
|
472
699
|
panKey?: 'Control' | 'Shift' | 'Alt' | 'Meta';
|
|
700
|
+
elementShapeHoverControls?: ElementShapeHoverControls;
|
|
701
|
+
onElementShapeHoverControlInteraction?: (event: ElementShapeHoverControlInteractionEvent) => void;
|
|
702
|
+
onElementShapeHoverControlActivated?: (event: ElementShapeHoverControlActivationEvent) => void;
|
|
473
703
|
onChange?: (event: EngineChangeEvent) => void;
|
|
474
704
|
onSelection?: (event: EngineSelectionEvent) => void;
|
|
475
705
|
};
|
|
476
706
|
type DiagramEditorHandle = DiagramEngineHandle & {
|
|
477
707
|
resize: (width: number, height: number) => void;
|
|
708
|
+
setElementShapeHoverControls: (controls?: ElementShapeHoverControls) => void;
|
|
478
709
|
destroy: () => void;
|
|
479
710
|
};
|
|
480
711
|
declare const createDiagramEditor: (config: DiagramEditorConfig) => DiagramEditorHandle;
|
|
481
712
|
|
|
482
|
-
export { type AnchorReference, type ClientRectLike, type DiagramContainer, type DiagramEditorConfig, type DiagramEditorHandle, type DiagramEngineHandle, type DiagramPatch, type DiagramState, type ElementData, type ElementDeletedEvent, type ElementDropEvent, type ElementLayout, type ElementLayoutAlign, type ElementLayoutMode, type ElementLinkConnectingEvent, type ElementLinkEndedEvent, type ElementLinkStartedEvent, type ElementMovedEvent, type ElementPointerEvent, type ElementResizedEvent, type ElementSelectedEvent, type EngineChangeEvent, type EngineConfigEvent, type EngineEventMap, type EnginePointerInfo, type EngineSelectionEvent, type LinkData, type LinkRoutingMode, type MoveConstraint, type OverlayShapeConfig, type OverlayShapeHandle, type PaperClickEvent, type Point, type PortData, type PortMouseEvent, type PortMovedEvent, type PortSelectedEvent, type Rect, type RerouteLinksOptions, type ShapeDrawContext, type SimpleShape, type Size, type TextData, type TextSelectedEvent, createDiagramEditor, createDiagramEngine };
|
|
713
|
+
export { type AnchorReference, type BorderSide$1 as BorderSide, type ClientRectLike, type DiagramContainer, type DiagramEditorConfig, type DiagramEditorHandle, type DiagramEngineHandle, type DiagramPatch, type DiagramState, type EdgeHoverControl, type ElementData, type ElementDeletedEvent, type ElementDropEvent, type ElementLayout, type ElementLayoutAlign, type ElementLayoutChildFitCrossAxis, type ElementLayoutChildFitMainAxis, type ElementLayoutMode, type ElementLinkConnectingEvent, type ElementLinkEndedEvent, type ElementLinkStartedEvent, type ElementMovedEvent, type ElementPointerEvent, type ElementPortMovementPolicy, type ElementResizedEvent, type ElementSelectedEvent, type ElementShapeControlDragEvent, type ElementShapeControlEventType, type ElementShapeHoverControlActivationEvent, type ElementShapeHoverControlInteractionEvent, type ElementShapeHoverControls, EllipseMidPoint, type EngineChangeEvent, type EngineConfigEvent, type EngineEventMap, type EnginePointerInfo, type EngineSelectionEvent, type HostAnchorPreset, type HoverControlIcon, type LinkData, type LinkDeletedEvent, type LinkRoutingMode, type MoveConstraint, type OverlayShapeConfig, type OverlayShapeHandle, type PaperClickEvent, type Point, type PortAnchor, type PortAnchorConstraint, type PortData, type PortDeletedEvent, type PortMouseEvent, type PortMovedEvent, type PortSelectedEvent, type Rect, type RerouteLinksOptions, type ResolvePortAnchorsOptions, type ShapeControlDefinition, type ShapeControlTargetKind, type ShapeControlVisibilityTrigger, type ShapeDrawContext, type ShapeEdgeTarget, type ShapeEllipseMidPointTarget, type ShapeHoverGeometry, type ShapeVertexTarget, type SimpleShape, type Size, type TextData, type TextDeletedEvent, type TextLayout, type TextLayoutBoundsMode, type TextLayoutOverflowMode, type TextLayoutWrapMode, type TextSelectedEvent, type TextUpdatedEvent, type VertexHoverControl, createDiagramEditor, createDiagramEngine };
|