@tumaet/apollon 4.3.0 → 4.5.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.
- package/README.md +206 -34
- package/dist/assets/style.css +1 -1
- package/dist/index.d.ts +897 -7
- package/dist/index.js +7988 -73543
- package/dist/internals.d.ts +868 -0
- package/dist/internals.js +40 -0
- package/dist/react/App.d.ts +9 -0
- package/dist/react/apollon-editor.d.ts +112 -0
- package/dist/react/components/AlignmentGuides.d.ts +1 -0
- package/dist/react/components/AssessmentSelectionDebug.d.ts +1 -0
- package/dist/react/components/CustomBackground.d.ts +1 -0
- package/dist/react/components/CustomControls.d.ts +1 -0
- package/dist/react/components/CustomMiniMap.d.ts +1 -0
- package/dist/{components → react/components}/Icon/ArrowBackIcon.d.ts +1 -1
- package/dist/{components → react/components}/Icon/ArrowForwardIcon.d.ts +1 -1
- package/dist/{components → react/components}/Icon/CheckIcon.d.ts +1 -1
- package/dist/{components → react/components}/Icon/CrossIcon.d.ts +1 -1
- package/dist/{components → react/components}/Icon/DeleteIcon.d.ts +1 -1
- package/dist/react/components/Icon/DragHandleIcon.d.ts +4 -0
- package/dist/{components → react/components}/Icon/EditIcon.d.ts +1 -1
- package/dist/{components → react/components}/Icon/ExclamationIcon.d.ts +1 -1
- package/dist/{components → react/components}/Icon/InfiniteIcon.d.ts +1 -1
- package/dist/{components → react/components}/Icon/MapIcon.d.ts +1 -1
- package/dist/{components → react/components}/Icon/PaintRollerIcon.d.ts +1 -1
- package/dist/{components → react/components}/Icon/RedoIcon.d.ts +1 -1
- package/dist/{components → react/components}/Icon/SouthEastArrowIcon.d.ts +1 -1
- package/dist/{components → react/components}/Icon/SwapHorizIcon.d.ts +1 -1
- package/dist/{components → react/components}/Icon/UndoIcon.d.ts +1 -1
- package/dist/{components → react/components}/Icon/index.d.ts +1 -0
- package/dist/react/components/ReconnectConnectionLine.d.ts +2 -0
- package/dist/react/components/Sidebar.d.ts +1 -0
- package/dist/react/components/collaboration/CollaborationLayer.d.ts +25 -0
- package/dist/{components → react/components}/index.d.ts +2 -0
- package/dist/{components → react/components}/popovers/DefaultNodeGiveFeedbackPopover.d.ts +1 -1
- package/dist/{components → react/components}/popovers/DefaultNodeSeeFeedbackPopover.d.ts +1 -1
- package/dist/{components → react/components}/popovers/GiveFeedbackAssessmentBox.d.ts +1 -1
- package/dist/{components → react/components}/popovers/PopoverManager.d.ts +1 -1
- package/dist/{components → react/components}/popovers/SeeFeedbackAssessmentBox.d.ts +1 -1
- package/dist/{components → react/components}/popovers/bpmnDiagram/BPMNPoolEditPopover.d.ts +1 -1
- package/dist/{components → react/components}/popovers/classDiagram/ClassGiveFeedbackPopover.d.ts +1 -1
- package/dist/{components → react/components}/popovers/classDiagram/ClassSeeFeedbackPopover.d.ts +1 -1
- package/dist/{components → react/components}/popovers/communicationDiagram/CommunicationObjectNameGiveFeedbackPopover.d.ts +1 -1
- package/dist/{components → react/components}/popovers/communicationDiagram/CommunicationObjectNameSeeFeedbackPopover.d.ts +1 -1
- package/dist/{components → react/components}/popovers/edgePopovers/EdgeGiveFeedbackPopover.d.ts +1 -1
- package/dist/{components → react/components}/popovers/edgePopovers/EdgeSeeFeedbackPopover.d.ts +1 -1
- package/dist/{components → react/components}/popovers/objectDiagram/ObjectGiveFeedbackPopover.d.ts +1 -1
- package/dist/{components → react/components}/popovers/objectDiagram/ObjectSeeFeedbackPopover.d.ts +1 -1
- package/dist/react/components/react/Apollon.d.ts +45 -0
- package/dist/react/components/react/context.d.ts +16 -0
- package/dist/react/components/react/useApollonSubscription.d.ts +17 -0
- package/dist/{components → react/components}/svgs/edges/InlineMarker.d.ts +2 -2
- package/dist/react/components/svgs/nodes/CustomText.d.ts +10 -0
- package/dist/{components → react/components}/svgs/nodes/classDiagram/ClassSVG.d.ts +1 -1
- package/dist/{components → react/components}/svgs/nodes/classDiagram/ColorDescriptionSVG.d.ts +1 -1
- package/dist/{components → react/components}/svgs/nodes/communicationDiagram/CommunicationObjectNameSVG.d.ts +1 -1
- package/dist/{components → react/components}/svgs/nodes/objectDiagram/ObjectNameSVG.d.ts +1 -1
- package/dist/{components → react/components}/toolbars/edgeToolBar/CustomEdgeToolBar.d.ts +2 -0
- package/dist/{components → react/components}/ui/StyleEditor/ColorButtons.d.ts +1 -1
- package/dist/{constants.d.ts → react/constants.d.ts} +43 -6
- package/dist/react/edges/GenericEdge.d.ts +79 -0
- package/dist/{edges → react/edges}/edgeTypes/ActivityDiagramEdge.d.ts +1 -1
- package/dist/{edges → react/edges}/edgeTypes/BPMNDiagramEdge.d.ts +1 -1
- package/dist/{edges → react/edges}/edgeTypes/ClassDiagramEdge.d.ts +1 -1
- package/dist/{edges → react/edges}/edgeTypes/CommunicationDiagramEdge.d.ts +1 -1
- package/dist/{edges → react/edges}/edgeTypes/ComponentDiagramEdge.d.ts +1 -1
- package/dist/{edges → react/edges}/edgeTypes/DeploymentDiagramEdge.d.ts +1 -1
- package/dist/{edges → react/edges}/edgeTypes/FlowChartEdge.d.ts +1 -1
- package/dist/{edges → react/edges}/edgeTypes/ObjectDiagramEdge.d.ts +1 -1
- package/dist/{edges → react/edges}/edgeTypes/PetriNetEdge.d.ts +1 -1
- package/dist/{edges → react/edges}/edgeTypes/ReachabilityGraphArc.d.ts +1 -1
- package/dist/{edges → react/edges}/edgeTypes/SfcDiagramEdge.d.ts +1 -1
- package/dist/{edges → react/edges}/edgeTypes/SyntaxTreeEdge.d.ts +1 -1
- package/dist/{edges → react/edges}/edgeTypes/UseCaseDiagramEdge.d.ts +1 -1
- package/dist/{edges → react/edges}/labelTypes/EdgeEndLabels.d.ts +1 -1
- package/dist/{edges → react/edges}/labelTypes/EdgeIncludeExtendLabel.d.ts +1 -1
- package/dist/{edges → react/edges}/labelTypes/EdgeMiddleLabels.d.ts +2 -1
- package/dist/{edges → react/edges}/labelTypes/EdgeMultipleLabels.d.ts +2 -2
- package/dist/{edges → react/edges}/types.d.ts +34 -34
- package/dist/react/enums/index.d.ts +1 -0
- package/dist/react/hooks/useEdgeLineJumps.d.ts +25 -0
- package/dist/{hooks → react/hooks}/useHandleFinder.d.ts +1 -0
- package/dist/{hooks → react/hooks}/useReconnect.d.ts +1 -1
- package/dist/{hooks → react/hooks}/useStepPathEdge.d.ts +10 -6
- package/dist/react/hooks/useStraightPathEdge.d.ts +23 -0
- package/dist/react/index.d.ts +7 -0
- package/dist/react/internals.d.ts +5 -0
- package/dist/{nodes → react/nodes}/TitleAndDescriptionNode.d.ts +1 -1
- package/dist/{nodes → react/nodes}/activityDiagram/Activity.d.ts +1 -1
- package/dist/{nodes → react/nodes}/activityDiagram/ActivityActionNode.d.ts +1 -1
- package/dist/{nodes → react/nodes}/activityDiagram/ActivityFinalNode.d.ts +1 -1
- package/dist/{nodes → react/nodes}/activityDiagram/ActivityForkNode.d.ts +1 -1
- package/dist/{nodes → react/nodes}/activityDiagram/ActivityForkNodeHorizontal.d.ts +1 -1
- package/dist/{nodes → react/nodes}/activityDiagram/ActivityInitialNode.d.ts +1 -1
- package/dist/{nodes → react/nodes}/activityDiagram/ActivityMergeNode.d.ts +1 -1
- package/dist/{nodes → react/nodes}/activityDiagram/ActivityObjectNode.d.ts +1 -1
- package/dist/{nodes → react/nodes}/bpmn/BPMNAnnotation.d.ts +1 -1
- package/dist/{nodes → react/nodes}/bpmn/BPMNCallActivity.d.ts +1 -1
- package/dist/{nodes → react/nodes}/bpmn/BPMNDataObject.d.ts +1 -1
- package/dist/{nodes → react/nodes}/bpmn/BPMNDataStore.d.ts +1 -1
- package/dist/{nodes → react/nodes}/bpmn/BPMNEndEvent.d.ts +1 -1
- package/dist/{nodes → react/nodes}/bpmn/BPMNGateway.d.ts +1 -1
- package/dist/{nodes → react/nodes}/bpmn/BPMNGroup.d.ts +1 -1
- package/dist/{nodes → react/nodes}/bpmn/BPMNIntermediateEvent.d.ts +1 -1
- package/dist/{nodes → react/nodes}/bpmn/BPMNPool.d.ts +1 -1
- package/dist/{nodes → react/nodes}/bpmn/BPMNStartEvent.d.ts +1 -1
- package/dist/{nodes → react/nodes}/bpmn/BPMNSubprocess.d.ts +1 -1
- package/dist/{nodes → react/nodes}/bpmn/BPMNTask.d.ts +1 -1
- package/dist/{nodes → react/nodes}/bpmn/BPMNTransaction.d.ts +1 -1
- package/dist/{nodes → react/nodes}/classDiagram/Class.d.ts +1 -1
- package/dist/{nodes → react/nodes}/classDiagram/ColorDescription.d.ts +1 -1
- package/dist/{nodes → react/nodes}/classDiagram/Package.d.ts +1 -1
- package/dist/{nodes → react/nodes}/communicationDiagram/CommunicationObjectName.d.ts +1 -1
- package/dist/{nodes → react/nodes}/componentDiagram/Component.d.ts +1 -1
- package/dist/{nodes → react/nodes}/componentDiagram/ComponentInterface.d.ts +1 -1
- package/dist/{nodes → react/nodes}/componentDiagram/ComponentSubsystem.d.ts +1 -1
- package/dist/{nodes → react/nodes}/deploymentDiagram/DeploymentArtifact.d.ts +1 -1
- package/dist/{nodes → react/nodes}/deploymentDiagram/DeploymentComponent.d.ts +1 -1
- package/dist/{nodes → react/nodes}/deploymentDiagram/DeploymentInterface.d.ts +1 -1
- package/dist/{nodes → react/nodes}/deploymentDiagram/DeploymentNode.d.ts +1 -1
- package/dist/{nodes → react/nodes}/flowchart/FlowchartDecision.d.ts +1 -1
- package/dist/{nodes → react/nodes}/flowchart/FlowchartFunctionCall.d.ts +1 -1
- package/dist/{nodes → react/nodes}/flowchart/FlowchartInputOutput.d.ts +1 -1
- package/dist/{nodes → react/nodes}/flowchart/FlowchartProcess.d.ts +1 -1
- package/dist/{nodes → react/nodes}/flowchart/FlowchartTerminal.d.ts +1 -1
- package/dist/{nodes → react/nodes}/objectDiagram/ObjectName.d.ts +1 -1
- package/dist/{nodes → react/nodes}/petriNetDiagram/PetriNetPlace.d.ts +1 -1
- package/dist/{nodes → react/nodes}/petriNetDiagram/PetriNetTransition.d.ts +1 -1
- package/dist/{nodes → react/nodes}/reachabilityGraphDiagram/ReachabilityGraphMarking.d.ts +1 -1
- package/dist/{nodes → react/nodes}/sfcDiagram/SfcActionTable.d.ts +1 -1
- package/dist/{nodes → react/nodes}/sfcDiagram/SfcJump.d.ts +1 -1
- package/dist/{nodes → react/nodes}/sfcDiagram/SfcStart.d.ts +1 -1
- package/dist/{nodes → react/nodes}/sfcDiagram/SfcStep.d.ts +1 -1
- package/dist/{nodes → react/nodes}/sfcDiagram/SfcTransitionBranch.d.ts +1 -1
- package/dist/{nodes → react/nodes}/syntaxTreeDiagram/SyntaxTreeNonterminal.d.ts +1 -1
- package/dist/{nodes → react/nodes}/syntaxTreeDiagram/SyntaxTreeTerminal.d.ts +1 -1
- package/dist/{nodes → react/nodes}/useCaseDiagram/UseCase.d.ts +1 -1
- package/dist/{nodes → react/nodes}/useCaseDiagram/UseCaseActor.d.ts +1 -1
- package/dist/{nodes → react/nodes}/useCaseDiagram/UseCaseSystem.d.ts +1 -1
- package/dist/react/nodes/wrappers/DefaultNodeWrapper.d.ts +49 -0
- package/dist/react/react.d.ts +4 -0
- package/dist/react/react.js +34580 -0
- package/dist/react/services/migration/EdgeTransformer.d.ts +11 -0
- package/dist/{store → react/store}/context.d.ts +3 -0
- package/dist/{store → react/store}/diagramStore.d.ts +8 -0
- package/dist/react/store/edgeGeometryStore.d.ts +18 -0
- package/dist/{store → react/store}/index.d.ts +2 -1
- package/dist/{store → react/store}/metadataStore.d.ts +12 -1
- package/dist/react/sync/headless.d.ts +16 -0
- package/dist/react/sync/yjsSync.d.ts +62 -0
- package/dist/{typings.d.ts → react/typings.d.ts} +44 -9
- package/dist/{utils → react/utils}/alignmentUtils.d.ts +2 -2
- package/dist/react/utils/collaboration.d.ts +10 -0
- package/dist/react/utils/edgeUtils.d.ts +167 -0
- package/dist/{utils → react/utils}/exportUtils.d.ts +0 -1
- package/dist/react/utils/geometry/bendHandles.d.ts +42 -0
- package/dist/{utils → react/utils}/index.d.ts +2 -2
- package/dist/{utils → react/utils}/interactiveUtils.d.ts +0 -1
- package/dist/{utils → react/utils}/nodeUtils.d.ts +1 -1
- package/dist/react/utils/storeUtils.d.ts +1 -0
- package/dist/react/utils/textUtils.d.ts +1 -0
- package/dist/yjsSync-hZSPGLEP.js +70938 -0
- package/package.json +95 -35
- package/dist/App.d.ts +0 -6
- package/dist/apollon-editor.d.ts +0 -56
- package/dist/components/AlignmentGuides.d.ts +0 -1
- package/dist/components/AssessmentSelectionDebug.d.ts +0 -1
- package/dist/components/CustomBackground.d.ts +0 -1
- package/dist/components/CustomControls.d.ts +0 -1
- package/dist/components/CustomMiniMap.d.ts +0 -1
- package/dist/components/Sidebar.d.ts +0 -1
- package/dist/components/debug/AssessmentSelectionDebug.d.ts +0 -6
- package/dist/components/svgs/nodes/CustomText.d.ts +0 -16
- package/dist/components/theme/styles.d.ts +0 -22
- package/dist/edges/GenericEdge.d.ts +0 -43
- package/dist/enums/ExportFileFormat.d.ts +0 -6
- package/dist/enums/index.d.ts +0 -2
- package/dist/hooks/useClipboard.d.ts +0 -11
- package/dist/hooks/useDragContext.d.ts +0 -0
- package/dist/hooks/useStraightPathEdge.d.ts +0 -31
- package/dist/initialElements.d.ts +0 -3
- package/dist/nodes/syntaxTreeDiagram/index.d.ts +0 -0
- package/dist/nodes/wrappers/DefaultNodeWrapper.d.ts +0 -33
- package/dist/sync/index.d.ts +0 -1
- package/dist/sync/yjsSyncClass.d.ts +0 -31
- package/dist/utils/edgeUtils.d.ts +0 -90
- package/dist/utils/labelUtils.d.ts +0 -16
- package/dist/utils/storeUtils.d.ts +0 -1
- package/dist/utils/textUtils.d.ts +0 -7
- package/dist/utils/v2Typings.d.ts +0 -127
- /package/dist/{components → react/components}/AssessmentSelectableElement.d.ts +0 -0
- /package/dist/{components → react/components}/DraggableGhost.d.ts +0 -0
- /package/dist/{components → react/components}/ScrollOverlay.d.ts +0 -0
- /package/dist/{components → react/components}/popovers/DefaultNodeEditPopover.d.ts +0 -0
- /package/dist/{components → react/components}/popovers/GenericPopover.d.ts +0 -0
- /package/dist/{components → react/components}/popovers/bpmnDiagram/BPMNEndEventEditPopover.d.ts +0 -0
- /package/dist/{components → react/components}/popovers/bpmnDiagram/BPMNGatewayEditPopover.d.ts +0 -0
- /package/dist/{components → react/components}/popovers/bpmnDiagram/BPMNIntermediateEventEditPopover.d.ts +0 -0
- /package/dist/{components → react/components}/popovers/bpmnDiagram/BPMNStartEventEditPopover.d.ts +0 -0
- /package/dist/{components → react/components}/popovers/bpmnDiagram/BPMNTaskEditPopover.d.ts +0 -0
- /package/dist/{components → react/components}/popovers/bpmnDiagram/index.d.ts +0 -0
- /package/dist/{components → react/components}/popovers/classDiagram/ClassEditPopover.d.ts +0 -0
- /package/dist/{components → react/components}/popovers/classDiagram/EditableAttributesList.d.ts +0 -0
- /package/dist/{components → react/components}/popovers/classDiagram/EditableMethodsList.d.ts +0 -0
- /package/dist/{components → react/components}/popovers/classDiagram/index.d.ts +0 -0
- /package/dist/{components → react/components}/popovers/communicationDiagram/CommunicationObjectNameEditPopover.d.ts +0 -0
- /package/dist/{components → react/components}/popovers/communicationDiagram/index.d.ts +0 -0
- /package/dist/{components → react/components}/popovers/componentDiagram/ComponentEditPopover.d.ts +0 -0
- /package/dist/{components → react/components}/popovers/componentDiagram/ComponentSubsystemEditPopover.d.ts +0 -0
- /package/dist/{components → react/components}/popovers/componentDiagram/index.d.ts +0 -0
- /package/dist/{components → react/components}/popovers/deploymentDiagram/DeploymentComponentEditPopover.d.ts +0 -0
- /package/dist/{components → react/components}/popovers/deploymentDiagram/DeploymentNodeEditPopover.d.ts +0 -0
- /package/dist/{components → react/components}/popovers/deploymentDiagram/index.d.ts +0 -0
- /package/dist/{components → react/components}/popovers/edgePopovers/ActivityDiagramEdgeEditPopover.d.ts +0 -0
- /package/dist/{components → react/components}/popovers/edgePopovers/BPMNDiagramEdgeEditPopover.d.ts +0 -0
- /package/dist/{components → react/components}/popovers/edgePopovers/ClassDiagramEdgeEditPopover.d.ts +0 -0
- /package/dist/{components → react/components}/popovers/edgePopovers/CommunicationDiagramEdgeEditPopover.d.ts +0 -0
- /package/dist/{components → react/components}/popovers/edgePopovers/ComponentDiagramEdgeEditPopover.d.ts +0 -0
- /package/dist/{components → react/components}/popovers/edgePopovers/DeploymentDiagramEdgeEditPopover.d.ts +0 -0
- /package/dist/{components → react/components}/popovers/edgePopovers/FlowChartEdgeEditPopover.d.ts +0 -0
- /package/dist/{components → react/components}/popovers/edgePopovers/ObjectDiagramEdgeEditPopover.d.ts +0 -0
- /package/dist/{components → react/components}/popovers/edgePopovers/PetriNetEdgeEditPopover.d.ts +0 -0
- /package/dist/{components → react/components}/popovers/edgePopovers/ReachabilityGraphEdgeEditPopover.d.ts +0 -0
- /package/dist/{components → react/components}/popovers/edgePopovers/SyntaxTreeEdgeEditPopover.d.ts +0 -0
- /package/dist/{components → react/components}/popovers/edgePopovers/UseCaseDiagramEdgeEditPopover.d.ts +0 -0
- /package/dist/{components → react/components}/popovers/edgePopovers/index.d.ts +0 -0
- /package/dist/{components → react/components}/popovers/index.d.ts +0 -0
- /package/dist/{components → react/components}/popovers/objectDiagram/ObjectEditPopover.d.ts +0 -0
- /package/dist/{components → react/components}/popovers/objectDiagram/index.d.ts +0 -0
- /package/dist/{components → react/components}/popovers/petriNetDiagram/PetriNetPlaceEditPopover.d.ts +0 -0
- /package/dist/{components → react/components}/popovers/petriNetDiagram/index.d.ts +0 -0
- /package/dist/{components → react/components}/popovers/reachabilityGraphDiagram/ReachabilityGraphMarkingEditPopover.d.ts +0 -0
- /package/dist/{components → react/components}/popovers/reachabilityGraphDiagram/index.d.ts +0 -0
- /package/dist/{components → react/components}/popovers/sfcDiagram/SfcActionTableEditPopover.d.ts +0 -0
- /package/dist/{components → react/components}/popovers/sfcDiagram/SfcEdgeEditPopover.d.ts +0 -0
- /package/dist/{components → react/components}/popovers/sfcDiagram/index.d.ts +0 -0
- /package/dist/{components → react/components}/popovers/syntaxTreeDiagram/SyntaxTreeNonterminalEditPopover.d.ts +0 -0
- /package/dist/{components → react/components}/popovers/syntaxTreeDiagram/SyntaxTreeTerminalEditPopover.d.ts +0 -0
- /package/dist/{components → react/components}/popovers/syntaxTreeDiagram/index.d.ts +0 -0
- /package/dist/{components → react/components}/popovers/types.d.ts +0 -0
- /package/dist/{components → react/components}/svgs/AssessmentIcon.d.ts +0 -0
- /package/dist/{components → react/components}/svgs/StyledElements.d.ts +0 -0
- /package/dist/{components → react/components}/svgs/edges/index.d.ts +0 -0
- /package/dist/{components → react/components}/svgs/index.d.ts +0 -0
- /package/dist/{components → react/components}/svgs/nodes/HeaderSection.d.ts +0 -0
- /package/dist/{components → react/components}/svgs/nodes/MultilineText.d.ts +0 -0
- /package/dist/{components → react/components}/svgs/nodes/RowBlockSection.d.ts +0 -0
- /package/dist/{components → react/components}/svgs/nodes/SeparationLine.d.ts +0 -0
- /package/dist/{components → react/components}/svgs/nodes/StereotypeAndName.d.ts +0 -0
- /package/dist/{components → react/components}/svgs/nodes/activityDiagram/ActivityActionNodeSVG.d.ts +0 -0
- /package/dist/{components → react/components}/svgs/nodes/activityDiagram/ActivityFinalNodeSVG.d.ts +0 -0
- /package/dist/{components → react/components}/svgs/nodes/activityDiagram/ActivityForkNodeHorizontalSVG.d.ts +0 -0
- /package/dist/{components → react/components}/svgs/nodes/activityDiagram/ActivityForkNodeSVG.d.ts +0 -0
- /package/dist/{components → react/components}/svgs/nodes/activityDiagram/ActivityInitialNodeSVG.d.ts +0 -0
- /package/dist/{components → react/components}/svgs/nodes/activityDiagram/ActivityMergeNodeSVG.d.ts +0 -0
- /package/dist/{components → react/components}/svgs/nodes/activityDiagram/ActivityObjectNodeSVG.d.ts +0 -0
- /package/dist/{components → react/components}/svgs/nodes/activityDiagram/ActivitySVG.d.ts +0 -0
- /package/dist/{components → react/components}/svgs/nodes/activityDiagram/index.d.ts +0 -0
- /package/dist/{components → react/components}/svgs/nodes/bpmnDiagram/BPMNAnnotationNodeSVG.d.ts +0 -0
- /package/dist/{components → react/components}/svgs/nodes/bpmnDiagram/BPMNDataObjectNodeSVG.d.ts +0 -0
- /package/dist/{components → react/components}/svgs/nodes/bpmnDiagram/BPMNDataStoreNodeSVG.d.ts +0 -0
- /package/dist/{components → react/components}/svgs/nodes/bpmnDiagram/BPMNEventNodeSVG.d.ts +0 -0
- /package/dist/{components → react/components}/svgs/nodes/bpmnDiagram/BPMNGatewayNodeSVG.d.ts +0 -0
- /package/dist/{components → react/components}/svgs/nodes/bpmnDiagram/BPMNGroupNodeSVG.d.ts +0 -0
- /package/dist/{components → react/components}/svgs/nodes/bpmnDiagram/BPMNPoolNodeSVG.d.ts +0 -0
- /package/dist/{components → react/components}/svgs/nodes/bpmnDiagram/BPMNSubprocessNodeSVG.d.ts +0 -0
- /package/dist/{components → react/components}/svgs/nodes/bpmnDiagram/BPMNTaskNodeSVG.d.ts +0 -0
- /package/dist/{components → react/components}/svgs/nodes/bpmnDiagram/index.d.ts +0 -0
- /package/dist/{components → react/components}/svgs/nodes/classDiagram/PackageSVG.d.ts +0 -0
- /package/dist/{components → react/components}/svgs/nodes/classDiagram/TitleAndDescriptionSVG.d.ts +0 -0
- /package/dist/{components → react/components}/svgs/nodes/classDiagram/index.d.ts +0 -0
- /package/dist/{components → react/components}/svgs/nodes/communicationDiagram/index.d.ts +0 -0
- /package/dist/{components → react/components}/svgs/nodes/componentDiagram/ComponentInterfaceNodeSVG.d.ts +0 -0
- /package/dist/{components → react/components}/svgs/nodes/componentDiagram/ComponentNodeSVG.d.ts +0 -0
- /package/dist/{components → react/components}/svgs/nodes/componentDiagram/ComponentSubsystemNodeSVG.d.ts +0 -0
- /package/dist/{components → react/components}/svgs/nodes/componentDiagram/index.d.ts +0 -0
- /package/dist/{components → react/components}/svgs/nodes/deploymentDiagram/DeploymentArtifactSVG.d.ts +0 -0
- /package/dist/{components → react/components}/svgs/nodes/deploymentDiagram/DeploymentComponentSVG.d.ts +0 -0
- /package/dist/{components → react/components}/svgs/nodes/deploymentDiagram/DeploymentInterfaceSVG.d.ts +0 -0
- /package/dist/{components → react/components}/svgs/nodes/deploymentDiagram/DeploymentNodeSVG.d.ts +0 -0
- /package/dist/{components → react/components}/svgs/nodes/deploymentDiagram/index.d.ts +0 -0
- /package/dist/{components → react/components}/svgs/nodes/flowchartDiagram/FlowchartDecisionNodeSVG.d.ts +0 -0
- /package/dist/{components → react/components}/svgs/nodes/flowchartDiagram/FlowchartFunctionCallNodeSVG.d.ts +0 -0
- /package/dist/{components → react/components}/svgs/nodes/flowchartDiagram/FlowchartInputOutputNodeSVG.d.ts +0 -0
- /package/dist/{components → react/components}/svgs/nodes/flowchartDiagram/FlowchartProcessNodeSVG.d.ts +0 -0
- /package/dist/{components → react/components}/svgs/nodes/flowchartDiagram/FlowchartTerminalNodeSVG.d.ts +0 -0
- /package/dist/{components → react/components}/svgs/nodes/flowchartDiagram/index.d.ts +0 -0
- /package/dist/{components → react/components}/svgs/nodes/index.d.ts +0 -0
- /package/dist/{components → react/components}/svgs/nodes/objectDiagram/index.d.ts +0 -0
- /package/dist/{components → react/components}/svgs/nodes/petriNetDiagram/PetriNetPlaceSVG.d.ts +0 -0
- /package/dist/{components → react/components}/svgs/nodes/petriNetDiagram/PetriNetTransitionSVG.d.ts +0 -0
- /package/dist/{components → react/components}/svgs/nodes/petriNetDiagram/index.d.ts +0 -0
- /package/dist/{components → react/components}/svgs/nodes/reachabilityGraphDiagram/ReachabilityGraphMarkingSVG.d.ts +0 -0
- /package/dist/{components → react/components}/svgs/nodes/reachabilityGraphDiagram/index.d.ts +0 -0
- /package/dist/{components → react/components}/svgs/nodes/sfcDiagram/SfcActionTableNodeSVG.d.ts +0 -0
- /package/dist/{components → react/components}/svgs/nodes/sfcDiagram/SfcJumpNodeSVG.d.ts +0 -0
- /package/dist/{components → react/components}/svgs/nodes/sfcDiagram/SfcStartNodeSVG.d.ts +0 -0
- /package/dist/{components → react/components}/svgs/nodes/sfcDiagram/SfcStepNodeSVG.d.ts +0 -0
- /package/dist/{components → react/components}/svgs/nodes/sfcDiagram/SfcTransitionBranchNodeSVG.d.ts +0 -0
- /package/dist/{components → react/components}/svgs/nodes/sfcDiagram/index.d.ts +0 -0
- /package/dist/{components → react/components}/svgs/nodes/syntaxTreeDiagram/SyntaxTreeNonterminalNodeSVG.d.ts +0 -0
- /package/dist/{components → react/components}/svgs/nodes/syntaxTreeDiagram/SyntaxTreeTerminalNodeSVG.d.ts +0 -0
- /package/dist/{components → react/components}/svgs/nodes/syntaxTreeDiagram/index.d.ts +0 -0
- /package/dist/{components → react/components}/svgs/nodes/useCaseDiagram/UseCaseActorNodeSVG.d.ts +0 -0
- /package/dist/{components → react/components}/svgs/nodes/useCaseDiagram/UseCaseNodeSVG.d.ts +0 -0
- /package/dist/{components → react/components}/svgs/nodes/useCaseDiagram/UseCaseSystemNodeSVG.d.ts +0 -0
- /package/dist/{components → react/components}/svgs/nodes/useCaseDiagram/index.d.ts +0 -0
- /package/dist/{components → react/components}/toolbars/NodeToolbar.d.ts +0 -0
- /package/dist/{components → react/components}/toolbars/edgeToolBar/index.d.ts +0 -0
- /package/dist/{components → react/components}/toolbars/index.d.ts +0 -0
- /package/dist/{components → react/components}/ui/DividerLine.d.ts +0 -0
- /package/dist/{components → react/components}/ui/HeaderSwitchElement.d.ts +0 -0
- /package/dist/{components → react/components}/ui/PrimaryButton.d.ts +0 -0
- /package/dist/{components → react/components}/ui/StereotypeButtonGroup.d.ts +0 -0
- /package/dist/{components → react/components}/ui/StyleEditor/EdgeStyleEditor.d.ts +0 -0
- /package/dist/{components → react/components}/ui/StyleEditor/NodeStyleEditor.d.ts +0 -0
- /package/dist/{components → react/components}/ui/StyleEditor/index.d.ts +0 -0
- /package/dist/{components → react/components}/ui/TextField.d.ts +0 -0
- /package/dist/{components → react/components}/ui/Typography.d.ts +0 -0
- /package/dist/{components → react/components}/ui/index.d.ts +0 -0
- /package/dist/{components → react/components}/wrapper/AssessmentSelectableWrapper.d.ts +0 -0
- /package/dist/{components → react/components}/wrapper/FeedbackDropzone.d.ts +0 -0
- /package/dist/{components → react/components}/wrapper/index.d.ts +0 -0
- /package/dist/{edges → react/edges}/Connection.d.ts +0 -0
- /package/dist/{edges → react/edges}/EdgeProps.d.ts +0 -0
- /package/dist/{edges → react/edges}/edgeTypes/index.d.ts +0 -0
- /package/dist/{edges → react/edges}/index.d.ts +0 -0
- /package/dist/{enums → react/enums}/Quadrant.d.ts +0 -0
- /package/dist/{hooks → react/hooks}/index.d.ts +0 -0
- /package/dist/{hooks → react/hooks}/useAssessmentSelection.d.ts +0 -0
- /package/dist/{hooks → react/hooks}/useConnect.d.ts +0 -0
- /package/dist/{hooks → react/hooks}/useDiagramModifiable.d.ts +0 -0
- /package/dist/{hooks → react/hooks}/useDragOver.d.ts +0 -0
- /package/dist/{hooks → react/hooks}/useDropFeedback.d.ts +0 -0
- /package/dist/{hooks → react/hooks}/useEdgeConfig.d.ts +0 -0
- /package/dist/{hooks → react/hooks}/useEdgeToolbar.d.ts +0 -0
- /package/dist/{hooks → react/hooks}/useEdges.d.ts +0 -0
- /package/dist/{hooks → react/hooks}/useElementInteractions.d.ts +0 -0
- /package/dist/{hooks → react/hooks}/useGoToNextAssessment.d.ts +0 -0
- /package/dist/{hooks → react/hooks}/useHandleDelete.d.ts +0 -0
- /package/dist/{hooks → react/hooks}/useHandleOnResize.d.ts +0 -0
- /package/dist/{hooks → react/hooks}/useIsOnlyThisElementSelected.d.ts +0 -0
- /package/dist/{hooks → react/hooks}/useKeyboardShortcuts.d.ts +0 -0
- /package/dist/{hooks → react/hooks}/useMessagePositioning.d.ts +0 -0
- /package/dist/{hooks → react/hooks}/useNodeDrag.d.ts +0 -0
- /package/dist/{hooks → react/hooks}/useNodeDragStop.d.ts +0 -0
- /package/dist/{hooks → react/hooks}/usePaneClicked.d.ts +0 -0
- /package/dist/{hooks → react/hooks}/useSelectionForCopyPaste.d.ts +0 -0
- /package/dist/{hooks → react/hooks}/useViewPointCenter.d.ts +0 -0
- /package/dist/{logger.d.ts → react/logger.d.ts} +0 -0
- /package/dist/{nodes → react/nodes}/activityDiagram/index.d.ts +0 -0
- /package/dist/{nodes → react/nodes}/bpmn/index.d.ts +0 -0
- /package/dist/{nodes → react/nodes}/classDiagram/index.d.ts +0 -0
- /package/dist/{nodes → react/nodes}/communicationDiagram/index.d.ts +0 -0
- /package/dist/{nodes → react/nodes}/componentDiagram/index.d.ts +0 -0
- /package/dist/{nodes → react/nodes}/deploymentDiagram/index.d.ts +0 -0
- /package/dist/{nodes → react/nodes}/flowchart/index.d.ts +0 -0
- /package/dist/{nodes → react/nodes}/index.d.ts +0 -0
- /package/dist/{nodes → react/nodes}/objectDiagram/index.d.ts +0 -0
- /package/dist/{nodes → react/nodes}/petriNetDiagram/index.d.ts +0 -0
- /package/dist/{nodes → react/nodes}/reachabilityGraphDiagram/index.d.ts +0 -0
- /package/dist/{nodes → react/nodes}/sfcDiagram/index.d.ts +0 -0
- /package/dist/{nodes → react/nodes}/types.d.ts +0 -0
- /package/dist/{nodes → react/nodes}/useCaseDiagram/index.d.ts +0 -0
- /package/dist/{nodes → react/nodes}/wrappers/index.d.ts +0 -0
- /package/dist/{store → react/store}/alignmentGuidesStore.d.ts +0 -0
- /package/dist/{store → react/store}/assessmentSelectionStore.d.ts +0 -0
- /package/dist/{store → react/store}/popoverStore.d.ts +0 -0
- /package/dist/{styles → react/styles}/theme.d.ts +0 -0
- /package/dist/{sync → react/sync}/ydoc.d.ts +0 -0
- /package/dist/{types → react/types}/DiagramType.d.ts +0 -0
- /package/dist/{types → react/types}/SVG.d.ts +0 -0
- /package/dist/{types → react/types}/index.d.ts +0 -0
- /package/dist/{types → react/types}/locationPopover.d.ts +0 -0
- /package/dist/{types → react/types}/nodes/DropNodeDate.d.ts +0 -0
- /package/dist/{types → react/types}/nodes/NodeProps.d.ts +0 -0
- /package/dist/{types → react/types}/nodes/enums/ClassType.d.ts +0 -0
- /package/dist/{types → react/types}/nodes/enums/index.d.ts +0 -0
- /package/dist/{types → react/types}/nodes/index.d.ts +0 -0
- /package/dist/{utils → react/utils}/bpmnConstraints.d.ts +0 -0
- /package/dist/{utils → react/utils}/copyPasteUtils.d.ts +0 -0
- /package/dist/{utils → react/utils}/deepPartial.d.ts +0 -0
- /package/dist/{utils → react/utils}/diagramTypeUtils.d.ts +0 -0
- /package/dist/{utils → react/utils}/helpers.d.ts +0 -0
- /package/dist/{utils → react/utils}/layoutUtils.d.ts +0 -0
- /package/dist/{utils → react/utils}/pathParsing.d.ts +0 -0
- /package/dist/{utils → react/utils}/popoverUtils.d.ts +0 -0
- /package/dist/{utils → react/utils}/quadrantUtils.d.ts +0 -0
- /package/dist/{utils → react/utils}/requiredInterfaceUtils.d.ts +0 -0
- /package/dist/{utils → react/utils}/svgTextLayout.d.ts +0 -0
- /package/dist/{utils → react/utils}/v3Typings.d.ts +0 -0
- /package/dist/{utils → react/utils}/versionConverter.d.ts +0 -0
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ApollonEdge, UMLModel } from '../../typings';
|
|
2
|
+
/**
|
|
3
|
+
* Returns a new edge whose data is free of stale runtime geometry. Does NOT
|
|
4
|
+
* mutate the input. A null/absent `data` is normalized to an empty object.
|
|
5
|
+
*/
|
|
6
|
+
export declare function hydrateEdgeData(edge: ApollonEdge): ApollonEdge;
|
|
7
|
+
/**
|
|
8
|
+
* Transforms all edges in a `UMLModel`, ensuring every edge satisfies
|
|
9
|
+
* the `OrthogonalEdgeData` interface. Returns a new model object.
|
|
10
|
+
*/
|
|
11
|
+
export declare function transformEdges(model: UMLModel): UMLModel;
|
|
@@ -4,13 +4,16 @@ import { MetadataStore } from './metadataStore';
|
|
|
4
4
|
import { PopoverStore } from './popoverStore';
|
|
5
5
|
import { AssessmentSelectionStore } from './assessmentSelectionStore';
|
|
6
6
|
import { AlignmentGuidesStore } from './alignmentGuidesStore';
|
|
7
|
+
import { EdgeGeometryStore } from './edgeGeometryStore';
|
|
7
8
|
export declare const DiagramStoreContext: import('react').Context<StoreApi<DiagramStore> | null>;
|
|
8
9
|
export declare const MetadataStoreContext: import('react').Context<StoreApi<MetadataStore> | null>;
|
|
9
10
|
export declare const PopoverStoreContext: import('react').Context<StoreApi<PopoverStore> | null>;
|
|
10
11
|
export declare const AssessmentSelectionStoreContext: import('react').Context<StoreApi<AssessmentSelectionStore> | null>;
|
|
11
12
|
export declare const AlignmentGuidesStoreContext: import('react').Context<StoreApi<AlignmentGuidesStore> | null>;
|
|
13
|
+
export declare const EdgeGeometryStoreContext: import('react').Context<StoreApi<EdgeGeometryStore> | null>;
|
|
12
14
|
export declare const useDiagramStore: <T>(selector: (state: DiagramStore) => T) => T;
|
|
13
15
|
export declare const useMetadataStore: <T>(selector: (state: MetadataStore) => T) => T;
|
|
14
16
|
export declare const usePopoverStore: <T>(selector: (state: PopoverStore) => T) => T;
|
|
15
17
|
export declare const useAssessmentSelectionStore: <T>(selector: (state: AssessmentSelectionStore) => T) => T;
|
|
16
18
|
export declare const useAlignmentGuidesStore: <T>(selector: (state: AlignmentGuidesStore) => T) => T;
|
|
19
|
+
export declare const useEdgeGeometryStore: <T>(selector: (state: EdgeGeometryStore) => T) => T;
|
|
@@ -18,6 +18,7 @@ export type DiagramStore = {
|
|
|
18
18
|
canUndo: boolean;
|
|
19
19
|
canRedo: boolean;
|
|
20
20
|
undoManager: Y.UndoManager | null;
|
|
21
|
+
previewMode: boolean;
|
|
21
22
|
setDiagramId: (diagramId: string) => void;
|
|
22
23
|
setNodes: (payload: Node[] | ((nodes: Node[]) => Node[])) => void;
|
|
23
24
|
setEdges: (payload: Edge[] | ((edges: Edge[]) => Edge[])) => void;
|
|
@@ -42,5 +43,12 @@ export type DiagramStore = {
|
|
|
42
43
|
getInteractiveForSerialization: () => InteractiveElements | undefined;
|
|
43
44
|
setInteractive: (interactive: InteractiveElements | undefined) => void;
|
|
44
45
|
isElementInteractive: (elementId: string) => boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Toggle the preview overlay. When entering, the Yjs doc is left
|
|
48
|
+
* untouched by store mutators and observers. When exiting, the local
|
|
49
|
+
* Zustand state is rebuilt from the (peer-augmented) Yjs maps so the
|
|
50
|
+
* canvas catches up to everything that arrived during preview.
|
|
51
|
+
*/
|
|
52
|
+
setPreviewMode: (active: boolean) => void;
|
|
45
53
|
};
|
|
46
54
|
export declare const createDiagramStore: (ydoc: Y.Doc) => UseBoundStore<StoreApi<DiagramStore>>;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { StoreApi, UseBoundStore } from 'zustand';
|
|
2
|
+
import { IPoint } from '../edges/Connection';
|
|
3
|
+
/**
|
|
4
|
+
* Runtime-only registry of each edge's ACTUAL rendered polyline (jump-free),
|
|
5
|
+
* keyed by edge id. Line jumps read other edges' geometry from here instead of
|
|
6
|
+
* re-deriving it, so a bridge always centers on the crossing the user actually
|
|
7
|
+
* sees — regardless of edge type, routing (step / straight-path), handle, or
|
|
8
|
+
* container offset. Each edge publishes on render and removes on unmount.
|
|
9
|
+
*
|
|
10
|
+
* Not persisted (Yjs never sees it) — it is ephemeral view geometry, exactly
|
|
11
|
+
* the kind of "computed segments" the model deliberately does not store.
|
|
12
|
+
*/
|
|
13
|
+
export type EdgeGeometryStore = {
|
|
14
|
+
geometryById: Record<string, IPoint[]>;
|
|
15
|
+
publishEdgeGeometry: (id: string, points: IPoint[]) => void;
|
|
16
|
+
removeEdgeGeometry: (id: string) => void;
|
|
17
|
+
};
|
|
18
|
+
export declare const createEdgeGeometryStore: () => UseBoundStore<StoreApi<EdgeGeometryStore>>;
|
|
@@ -3,4 +3,5 @@ export { createMetadataStore } from './metadataStore';
|
|
|
3
3
|
export { createPopoverStore } from './popoverStore';
|
|
4
4
|
export { createAssessmentSelectionStore } from './assessmentSelectionStore';
|
|
5
5
|
export { createAlignmentGuidesStore } from './alignmentGuidesStore';
|
|
6
|
-
export {
|
|
6
|
+
export { createEdgeGeometryStore } from './edgeGeometryStore';
|
|
7
|
+
export { DiagramStoreContext, MetadataStoreContext, PopoverStoreContext, AssessmentSelectionStoreContext, AlignmentGuidesStoreContext, EdgeGeometryStoreContext, useDiagramStore, useMetadataStore, usePopoverStore, useAssessmentSelectionStore, useAlignmentGuidesStore, useEdgeGeometryStore, } from './context';
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { StoreApi, UseBoundStore } from 'zustand';
|
|
2
2
|
import { UMLDiagramType } from '../types';
|
|
3
3
|
import { ApollonMode, ApollonView } from '../typings';
|
|
4
|
+
import { IPoint } from '../edges/Connection';
|
|
4
5
|
import * as Y from "yjs";
|
|
5
6
|
export type MetadataStore = {
|
|
6
7
|
diagramTitle: string;
|
|
@@ -12,12 +13,22 @@ export type MetadataStore = {
|
|
|
12
13
|
debug: boolean;
|
|
13
14
|
scrollLock: boolean;
|
|
14
15
|
scrollEnabled: boolean;
|
|
16
|
+
connectionGuidanceActive: boolean;
|
|
17
|
+
connectionGuidanceSourceNodeId: string | null;
|
|
18
|
+
connectionGuidanceSourceHandleId: string | null;
|
|
19
|
+
reconnectPreviewEdgeId: string | null;
|
|
20
|
+
reconnectPreviewHandleType: "source" | "target" | null;
|
|
21
|
+
reconnectPreviewBasePoints: IPoint[];
|
|
15
22
|
setMode: (mode: ApollonMode) => void;
|
|
16
23
|
setView: (view: ApollonView) => void;
|
|
17
24
|
setAvailableViews: (availableViews: ApollonView[]) => void;
|
|
18
25
|
setReadonly: (readonly: boolean) => void;
|
|
19
26
|
setScrollLock: (scrollLock: boolean) => void;
|
|
20
27
|
setScrollEnabled: (scrollEnabled: boolean) => void;
|
|
28
|
+
startConnectionGuidance: (sourceNodeId: string | null, sourceHandleId: string | null) => void;
|
|
29
|
+
stopConnectionGuidance: () => void;
|
|
30
|
+
startReconnectPreview: (edgeId: string, handleType: "source" | "target", basePoints: IPoint[]) => void;
|
|
31
|
+
stopReconnectPreview: () => void;
|
|
21
32
|
updateDiagramTitle: (diagramTitle: string) => void;
|
|
22
33
|
updateDiagramType: (diagramType: UMLDiagramType) => void;
|
|
23
34
|
updateMetaData: (diagramTitle: string, diagramType: UMLDiagramType) => void;
|
|
@@ -25,4 +36,4 @@ export type MetadataStore = {
|
|
|
25
36
|
reset: () => void;
|
|
26
37
|
setDebug: (debug: boolean) => void;
|
|
27
38
|
};
|
|
28
|
-
export declare const createMetadataStore: (ydoc: Y.Doc) => UseBoundStore<StoreApi<MetadataStore>>;
|
|
39
|
+
export declare const createMetadataStore: (ydoc: Y.Doc, isPreviewMode?: () => boolean) => UseBoundStore<StoreApi<MetadataStore>>;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { YjsSync } from './yjsSync';
|
|
2
|
+
import * as Y from "yjs";
|
|
3
|
+
/**
|
|
4
|
+
* Construct a `YjsSync` against minimal stub stores. Intended for
|
|
5
|
+
* tests that exercise the wire protocol (sync/awareness handshake,
|
|
6
|
+
* incremental updates, reconnect behaviour) without dragging the React
|
|
7
|
+
* editor / React-Flow / zustand-with-middleware setup into the harness.
|
|
8
|
+
*
|
|
9
|
+
* Stores expose only the methods the sync class actually invokes. The
|
|
10
|
+
* Yjs observers will call them, but their bodies are no-ops because the
|
|
11
|
+
* test asserts directly against the `Y.Doc` that's returned.
|
|
12
|
+
*/
|
|
13
|
+
export declare function createHeadlessSync(ydoc?: Y.Doc): {
|
|
14
|
+
ydoc: Y.Doc;
|
|
15
|
+
sync: YjsSync;
|
|
16
|
+
};
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { DiagramStore } from '../store/diagramStore';
|
|
2
|
+
import { MetadataStore } from '../store/metadataStore';
|
|
3
|
+
import { CollaborationState, CollaborationUser, CollaborationViewport, CollaboratorInfo } from '../typings';
|
|
4
|
+
import { StoreApi } from 'zustand';
|
|
5
|
+
import * as Y from "yjs";
|
|
6
|
+
export declare enum MessageType {
|
|
7
|
+
YjsSYNC = 0,
|
|
8
|
+
YjsUpdate = 1,
|
|
9
|
+
AwarenessSync = 2,
|
|
10
|
+
AwarenessUpdate = 3
|
|
11
|
+
}
|
|
12
|
+
export type SendBroadcastMessage = (base64data: string) => void;
|
|
13
|
+
export declare class YjsSync {
|
|
14
|
+
private readonly stopYjsObserver;
|
|
15
|
+
private sendBroadcastMessage;
|
|
16
|
+
private readonly ydoc;
|
|
17
|
+
private readonly diagramStore;
|
|
18
|
+
private readonly metadataStore;
|
|
19
|
+
private readonly awareness;
|
|
20
|
+
constructor(ydoc: Y.Doc, diagramStore: StoreApi<DiagramStore>, metadataStore: StoreApi<MetadataStore>);
|
|
21
|
+
stopSync(): void;
|
|
22
|
+
/**
|
|
23
|
+
* Push the entire local Yjs document as a single `YjsUpdate`. Callers should
|
|
24
|
+
* invoke this after a (re)connect so peers absorb any edits made while we
|
|
25
|
+
* were disconnected — those updates fire while `readyState !== OPEN`, are
|
|
26
|
+
* silently dropped by the send callback, and never replayed otherwise.
|
|
27
|
+
* Yjs CRDTs converge on merge, so peers that already have these ops just
|
|
28
|
+
* no-op.
|
|
29
|
+
*/
|
|
30
|
+
broadcastFullState: () => void;
|
|
31
|
+
setSendBroadcastMessage: (sendFn: SendBroadcastMessage) => void;
|
|
32
|
+
setLocalAwarenessUser: (user: CollaborationUser) => void;
|
|
33
|
+
setLocalAwarenessCursor: (cursor: {
|
|
34
|
+
x: number;
|
|
35
|
+
y: number;
|
|
36
|
+
} | null) => void;
|
|
37
|
+
setLocalAwarenessViewport: (viewport: CollaborationViewport | null) => void;
|
|
38
|
+
setLocalAwarenessFollowing: (followingClientId: number | null) => void;
|
|
39
|
+
setLocalAwarenessSelectedElement: (selectedElementId: string | null) => void;
|
|
40
|
+
setLocalAwarenessState: (state: Partial<CollaborationState>) => void;
|
|
41
|
+
subscribeToAwarenessChanges: (callback: (states: Map<number, CollaborationState>) => void) => () => void;
|
|
42
|
+
getAwarenessStates: () => Map<number, CollaborationState>;
|
|
43
|
+
getCollaborators: () => CollaboratorInfo[];
|
|
44
|
+
subscribeToCollaboratorChanges: (callback: (collaborators: CollaboratorInfo[]) => void) => () => void;
|
|
45
|
+
getLocalAwarenessClientId: () => number;
|
|
46
|
+
private static narrowState;
|
|
47
|
+
private getTypedStates;
|
|
48
|
+
private computeParticipantSignature;
|
|
49
|
+
private sendFramedMessage;
|
|
50
|
+
private applyUpdate;
|
|
51
|
+
handleReceivedData: (base64Data: string) => void;
|
|
52
|
+
private startYjsObserver;
|
|
53
|
+
private isUndoRedoTransaction;
|
|
54
|
+
/**
|
|
55
|
+
* Convert Uint8Array to Base64 string
|
|
56
|
+
*/
|
|
57
|
+
static uint8ToBase64(uint8: Uint8Array): string;
|
|
58
|
+
/**
|
|
59
|
+
* Convert Base64 string to Uint8Array
|
|
60
|
+
*/
|
|
61
|
+
private base64ToUint8;
|
|
62
|
+
}
|
|
@@ -2,7 +2,6 @@ import { DiagramEdgeType, IPoint } from './edges/types';
|
|
|
2
2
|
import { DiagramNodeType } from './nodes/types';
|
|
3
3
|
import { UMLDiagramType } from './types/DiagramType';
|
|
4
4
|
import { Styles } from './styles/theme';
|
|
5
|
-
import { DeepPartial } from './utils';
|
|
6
5
|
export { UMLDiagramType, type DiagramNodeType, type DiagramEdgeType };
|
|
7
6
|
export { type Styles };
|
|
8
7
|
export type Unsubscriber = () => void;
|
|
@@ -10,6 +9,44 @@ export type Subscribers = {
|
|
|
10
9
|
[key: number]: Unsubscriber;
|
|
11
10
|
};
|
|
12
11
|
export type UMLModelElementType = DiagramNodeType | DiagramEdgeType;
|
|
12
|
+
export type CollaborationUser = {
|
|
13
|
+
name: string;
|
|
14
|
+
color: string;
|
|
15
|
+
id?: string;
|
|
16
|
+
imageUrl?: string;
|
|
17
|
+
};
|
|
18
|
+
export type CollaborationCursor = {
|
|
19
|
+
x: number;
|
|
20
|
+
y: number;
|
|
21
|
+
};
|
|
22
|
+
export type CollaborationViewport = {
|
|
23
|
+
x: number;
|
|
24
|
+
y: number;
|
|
25
|
+
zoom: number;
|
|
26
|
+
};
|
|
27
|
+
export type CollaborationState = {
|
|
28
|
+
user?: CollaborationUser;
|
|
29
|
+
cursor?: CollaborationCursor | null;
|
|
30
|
+
viewport?: CollaborationViewport | null;
|
|
31
|
+
followingClientId?: number | null;
|
|
32
|
+
selectedElementId?: string | null;
|
|
33
|
+
};
|
|
34
|
+
export type CollaboratorInfo = {
|
|
35
|
+
id: string;
|
|
36
|
+
name: string;
|
|
37
|
+
color: string;
|
|
38
|
+
imageUrl?: string;
|
|
39
|
+
clientIds: number[];
|
|
40
|
+
isLocal: boolean;
|
|
41
|
+
};
|
|
42
|
+
export type ApollonCollaborationOptions = {
|
|
43
|
+
enabled?: boolean;
|
|
44
|
+
user?: CollaborationUser;
|
|
45
|
+
showPresence?: boolean;
|
|
46
|
+
showCursors?: boolean;
|
|
47
|
+
showSelectionHighlights?: boolean;
|
|
48
|
+
showFollow?: boolean;
|
|
49
|
+
};
|
|
13
50
|
export declare enum Locale {
|
|
14
51
|
en = "en",
|
|
15
52
|
de = "de"
|
|
@@ -37,6 +74,10 @@ export type ApollonNode = {
|
|
|
37
74
|
height: number;
|
|
38
75
|
};
|
|
39
76
|
};
|
|
77
|
+
export interface OrthogonalEdgeData {
|
|
78
|
+
[key: string]: unknown;
|
|
79
|
+
points: IPoint[];
|
|
80
|
+
}
|
|
40
81
|
export type ApollonEdge = {
|
|
41
82
|
id: string;
|
|
42
83
|
source: string;
|
|
@@ -44,10 +85,7 @@ export type ApollonEdge = {
|
|
|
44
85
|
type: DiagramEdgeType;
|
|
45
86
|
sourceHandle: string;
|
|
46
87
|
targetHandle: string;
|
|
47
|
-
data:
|
|
48
|
-
[key: string]: unknown;
|
|
49
|
-
points: IPoint[];
|
|
50
|
-
};
|
|
88
|
+
data: OrthogonalEdgeData;
|
|
51
89
|
};
|
|
52
90
|
export type InteractiveElements = {
|
|
53
91
|
elements: Record<string, boolean>;
|
|
@@ -79,13 +117,10 @@ export type ApollonOptions = {
|
|
|
79
117
|
readonly?: boolean;
|
|
80
118
|
enablePopups?: boolean;
|
|
81
119
|
model?: UMLModel;
|
|
82
|
-
theme?: DeepPartial<Styles>;
|
|
83
120
|
locale?: Locale;
|
|
84
|
-
copyPasteToClipboard?: boolean;
|
|
85
|
-
colorEnabled?: boolean;
|
|
86
|
-
scale?: number;
|
|
87
121
|
debug?: boolean;
|
|
88
122
|
collaborationEnabled?: boolean;
|
|
123
|
+
collaboration?: ApollonCollaborationOptions;
|
|
89
124
|
scrollLock?: boolean;
|
|
90
125
|
};
|
|
91
126
|
export type FeedbackCorrectionStatus = {
|
|
@@ -11,7 +11,7 @@ export type AlignmentInfo = {
|
|
|
11
11
|
/**
|
|
12
12
|
* Get the bounds of a node (considering its position and dimensions)
|
|
13
13
|
*/
|
|
14
|
-
export declare const getNodeBounds: (node: Node) => {
|
|
14
|
+
export declare const getNodeBounds: (node: Node, allNodes?: Node[]) => {
|
|
15
15
|
left: number;
|
|
16
16
|
right: number;
|
|
17
17
|
top: number;
|
|
@@ -26,7 +26,7 @@ export declare const calculateAlignmentGuides: (draggedNode: Node, allNodes: Nod
|
|
|
26
26
|
/**
|
|
27
27
|
* Snap node position to nearby nodes
|
|
28
28
|
*/
|
|
29
|
-
export declare const snapNodeToGuides: (draggedNode: Node, guides: AlignmentGuide[], threshold?: number) => {
|
|
29
|
+
export declare const snapNodeToGuides: (draggedNode: Node, guides: AlignmentGuide[], threshold?: number, allNodes?: Node[]) => {
|
|
30
30
|
x?: number;
|
|
31
31
|
y?: number;
|
|
32
32
|
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { CollaborationViewport } from '../typings';
|
|
2
|
+
export declare const randomCollabName: () => string;
|
|
3
|
+
export declare const collabColorFromName: (name: string) => string;
|
|
4
|
+
/**
|
|
5
|
+
* Narrow an untrusted, peer-supplied viewport before it reaches React Flow's
|
|
6
|
+
* `setViewport`. A `NaN`/`Infinity`/non-positive zoom corrupts the canvas
|
|
7
|
+
* transform, so every field must be a finite number and zoom must be positive.
|
|
8
|
+
* Returns `null` for anything malformed.
|
|
9
|
+
*/
|
|
10
|
+
export declare const sanitizeCollaborationViewport: (raw: unknown) => CollaborationViewport | null;
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
import { IPoint } from '../edges/Connection';
|
|
2
|
+
import { DiagramEdgeType, UMLDiagramType } from '../typings';
|
|
3
|
+
import { Position, Rect, XYPosition, ConnectionLineType } from '@xyflow/react';
|
|
4
|
+
/**
|
|
5
|
+
* Adjusts the target coordinates based on the position and marker padding.
|
|
6
|
+
*/
|
|
7
|
+
export declare const adjustTargetCoordinates: (targetX: number, targetY: number, targetPosition: Position, markerPadding: number) => {
|
|
8
|
+
targetX: number;
|
|
9
|
+
targetY: number;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Adjusts the source coordinates based on the position and marker padding.
|
|
13
|
+
*/
|
|
14
|
+
export declare const adjustSourceCoordinates: (sourceX: number, sourceY: number, sourcePosition: Position, sourcePadding: number) => {
|
|
15
|
+
sourceX: number;
|
|
16
|
+
sourceY: number;
|
|
17
|
+
};
|
|
18
|
+
export declare const calculateDynamicEdgeLabels: (x: number, y: number, direction: string) => {
|
|
19
|
+
roleX: number;
|
|
20
|
+
roleY: number;
|
|
21
|
+
roleTextAnchor: "end";
|
|
22
|
+
multiplicityX: number;
|
|
23
|
+
multiplicityY: number;
|
|
24
|
+
multiplicityTextAnchor: "start";
|
|
25
|
+
} | {
|
|
26
|
+
roleX: number;
|
|
27
|
+
roleY: number;
|
|
28
|
+
roleTextAnchor: "end";
|
|
29
|
+
multiplicityX: number;
|
|
30
|
+
multiplicityY: number;
|
|
31
|
+
multiplicityTextAnchor: "end";
|
|
32
|
+
} | {
|
|
33
|
+
roleX: number;
|
|
34
|
+
roleY: number;
|
|
35
|
+
roleTextAnchor: "start";
|
|
36
|
+
multiplicityX: number;
|
|
37
|
+
multiplicityY: number;
|
|
38
|
+
multiplicityTextAnchor: "start";
|
|
39
|
+
} | {
|
|
40
|
+
roleX: number;
|
|
41
|
+
roleY: number;
|
|
42
|
+
roleTextAnchor: "middle";
|
|
43
|
+
multiplicityX: number;
|
|
44
|
+
multiplicityY: number;
|
|
45
|
+
multiplicityTextAnchor: "middle";
|
|
46
|
+
};
|
|
47
|
+
export interface EdgeMarkerStyles {
|
|
48
|
+
markerEnd?: string;
|
|
49
|
+
markerStart?: string;
|
|
50
|
+
markerPadding?: number;
|
|
51
|
+
strokeDashArray?: string;
|
|
52
|
+
offset?: number;
|
|
53
|
+
}
|
|
54
|
+
export declare function getEdgeMarkerStyles(edgeType: string): EdgeMarkerStyles;
|
|
55
|
+
interface FindClosestHandleParams {
|
|
56
|
+
point: XYPosition;
|
|
57
|
+
rect: Rect;
|
|
58
|
+
useFourHandles?: boolean;
|
|
59
|
+
}
|
|
60
|
+
export declare function getNormalizedHandleOffset(axisLength: number, ratio: number): number;
|
|
61
|
+
export declare function getNormalizedHandleOffsetPercent(axisLength: number, ratio: number): string;
|
|
62
|
+
export type AxisHandlePlan = {
|
|
63
|
+
offsets: [
|
|
64
|
+
number,
|
|
65
|
+
number,
|
|
66
|
+
number,
|
|
67
|
+
number,
|
|
68
|
+
number,
|
|
69
|
+
number,
|
|
70
|
+
number,
|
|
71
|
+
number,
|
|
72
|
+
number
|
|
73
|
+
];
|
|
74
|
+
visibleArcCount: 1 | 3 | 5;
|
|
75
|
+
};
|
|
76
|
+
export declare function getAxisHandlePlan(axisLength: number): AxisHandlePlan;
|
|
77
|
+
/**
|
|
78
|
+
* Reduce how many arcs a side actually shows so adjacent visible arcs never
|
|
79
|
+
* overlap ON SCREEN. The slot offsets stay fixed (handles don't move); we just
|
|
80
|
+
* hide arcs when, at the current zoom, two neighbours would be closer than an
|
|
81
|
+
* arc's on-screen length apart. Arcs counter-scale to a constant on-screen size
|
|
82
|
+
* when zoomed out and grow when zoomed in, so the required flow spacing is
|
|
83
|
+
* ARC_LENGTH_PX / min(zoom, 1): bigger (fewer arcs) when zoomed out, constant
|
|
84
|
+
* at and above 1x.
|
|
85
|
+
*
|
|
86
|
+
* Returns 5, 3, or 1 — always <= the size-based `baseVisibleArcCount`.
|
|
87
|
+
*/
|
|
88
|
+
export declare function reduceVisibleArcCountForZoom(offsets: AxisHandlePlan["offsets"], baseVisibleArcCount: 1 | 3 | 5, zoom: number): 1 | 3 | 5;
|
|
89
|
+
export declare function getDistributedHandleOffsets(axisLength: number): number[];
|
|
90
|
+
export declare function getDistributedHandleOffsetPercents(axisLength: number): [string, string, string, string, string, string, string, string, string];
|
|
91
|
+
type HandleSide = "top" | "right" | "bottom" | "left";
|
|
92
|
+
export declare function getHandleIdForSideSlot(side: HandleSide, slotIndex: number, slotCount: number): string;
|
|
93
|
+
export declare function findClosestHandle({ point, rect, useFourHandles, }: FindClosestHandleParams): string;
|
|
94
|
+
/**
|
|
95
|
+
* Helper function to get handle position on ellipse perimeter
|
|
96
|
+
*/
|
|
97
|
+
export declare function getEllipseHandlePosition(centerX: number, centerY: number, radiusX: number, radiusY: number, handle: string): {
|
|
98
|
+
x: number;
|
|
99
|
+
y: number;
|
|
100
|
+
};
|
|
101
|
+
export type Orientation = "horizontal" | "vertical";
|
|
102
|
+
export type AxisAlignedSegment = {
|
|
103
|
+
index: number;
|
|
104
|
+
start: IPoint;
|
|
105
|
+
end: IPoint;
|
|
106
|
+
orientation: Orientation;
|
|
107
|
+
fixed: number;
|
|
108
|
+
min: number;
|
|
109
|
+
max: number;
|
|
110
|
+
};
|
|
111
|
+
export declare function getAxisAlignedSegments(points: IPoint[], tolerance?: number): AxisAlignedSegment[];
|
|
112
|
+
export type LineJumpHit = {
|
|
113
|
+
segmentIndex: number;
|
|
114
|
+
point: IPoint;
|
|
115
|
+
orientation: Orientation;
|
|
116
|
+
};
|
|
117
|
+
export declare function findLineJumpIntersections(baseSegments: AxisAlignedSegment[], otherSegments: AxisAlignedSegment[], jumpWidth: number, preferredOrientation?: Orientation | "any", tolerance?: number): LineJumpHit[];
|
|
118
|
+
export declare function buildPathWithLineJumps(points: IPoint[], jumps: LineJumpHit[], jumpHeight: number, jumpWidth?: number): string;
|
|
119
|
+
/**
|
|
120
|
+
* Collects the crossings an edge should bridge over. Uses the layout-stable
|
|
121
|
+
* "horizontal hops vertical" convention (yEd / yFiles' `BridgeManager` default
|
|
122
|
+
* `HORIZONTAL_BRIDGES_VERTICAL`): the bridge is always drawn on the HORIZONTAL
|
|
123
|
+
* segment of a crossing. Consequences that make this the right default for a
|
|
124
|
+
* declarative editor:
|
|
125
|
+
* - exactly one edge of any H×V pair hops (the horizontal one),
|
|
126
|
+
* - the assignment is independent of edge array order / z-index, so it never
|
|
127
|
+
* flips when an edge is selected (React Flow's `elevateEdgesOnSelect`) or
|
|
128
|
+
* reordered — unlike a render-order rule.
|
|
129
|
+
* Diagonal segments yield no axis-aligned segments, so they neither hop nor are
|
|
130
|
+
* hopped (line jumps are orthogonal-only, matching mxGraph/ELK/yFiles).
|
|
131
|
+
*
|
|
132
|
+
* @param geometryMap each OTHER edge's actual rendered polyline, keyed by id
|
|
133
|
+
* (from the edge-geometry registry)
|
|
134
|
+
*/
|
|
135
|
+
export declare function computeLineJumpsForEdge(edgeId: string, basePoints: IPoint[], edges: ReadonlyArray<{
|
|
136
|
+
id: string;
|
|
137
|
+
}>, geometryMap: ReadonlyMap<string, IPoint[]>): LineJumpHit[];
|
|
138
|
+
export declare function calculateOverlayPath(sourceX: number, sourceY: number, targetX: number, targetY: number, type: string): string;
|
|
139
|
+
export declare function calculateStraightPath(sourceX: number, sourceY: number, targetX: number, targetY: number, type: string): string;
|
|
140
|
+
export declare function simplifySvgPath(path: string): string;
|
|
141
|
+
export declare function simplifyPoints(points: IPoint[]): IPoint[];
|
|
142
|
+
export declare function parseSvgPath(path: string): IPoint[];
|
|
143
|
+
export declare function removeDuplicatePoints(points: IPoint[]): IPoint[];
|
|
144
|
+
export declare function resolveReconnectPreviewBasePoints(storedPoints: IPoint[] | undefined, localPoints: IPoint[] | undefined, fallbackPoints: IPoint[]): IPoint[];
|
|
145
|
+
/**
|
|
146
|
+
* Returns true when source and target stubs point toward each other and would
|
|
147
|
+
* overlap or leave no room between them. This catches the "narrow U" case —
|
|
148
|
+
* where the two arms of a U-shape almost touch — before the geometry has
|
|
149
|
+
* actually inverted (which hasCollapsingSegments catches too late).
|
|
150
|
+
*
|
|
151
|
+
* Only applies to facing-stub configurations where both stubs exit into the
|
|
152
|
+
* same space and can collide. Diverging pairs are handled by later validation.
|
|
153
|
+
*/
|
|
154
|
+
export declare const stubsWouldOverlap: (sourcePoint: IPoint, targetPoint: IPoint, sourcePosition: Position, targetPosition: Position, stubLength: number) => boolean;
|
|
155
|
+
export declare function isInvalidOrthogonalEdgeRelease(points: IPoint[], sourcePoint: IPoint, targetPoint: IPoint, sourcePosition: Position, targetPosition: Position): boolean;
|
|
156
|
+
export declare function normalizeOrthogonalEdgePoints(points: IPoint[], sourcePoint: IPoint, targetPoint: IPoint, sourcePosition: Position, targetPosition: Position): IPoint[];
|
|
157
|
+
export declare function resolveOrthogonalEdgeReleasePoints(releasedPoints: IPoint[], lastValidPoints: IPoint[], sourcePoint: IPoint, targetPoint: IPoint, sourcePosition: Position, targetPosition: Position): IPoint[];
|
|
158
|
+
export declare function preserveOrthogonalEdgePoints(points: IPoint[], sourcePoint: IPoint, targetPoint: IPoint, sourcePosition: Position, targetPosition: Position): IPoint[];
|
|
159
|
+
export declare function getMarkerSegmentPath(points: IPoint[], offset: number, targetPosition: "top" | "bottom" | "left" | "right"): string;
|
|
160
|
+
export declare const getDefaultEdgeType: (diagramType: UMLDiagramType) => DiagramEdgeType;
|
|
161
|
+
/**
|
|
162
|
+
* Determines the appropriate connection line type based on the diagram type
|
|
163
|
+
* @param diagramType - The type of diagram being rendered
|
|
164
|
+
* @returns The corresponding ConnectionLineType
|
|
165
|
+
*/
|
|
166
|
+
export declare function getConnectionLineType(diagramType: UMLDiagramType): ConnectionLineType;
|
|
167
|
+
export {};
|
|
@@ -34,7 +34,6 @@ declare function getNodeBoundsFromDOM(container: HTMLElement, reactFlow?: ReactF
|
|
|
34
34
|
*/
|
|
35
35
|
declare function getNodeOverflowBoundsFromDOM(container: HTMLElement): Rect | undefined;
|
|
36
36
|
declare function mergeBounds(a: Rect, b: Rect): Rect;
|
|
37
|
-
export declare function getDiagramBounds(reactFlow: ReactFlowInstance<Node, Edge>, container?: HTMLElement | null): Rect;
|
|
38
37
|
export declare function getRenderedDiagramBounds(reactFlow: ReactFlowInstance<Node, Edge>, container: HTMLElement): Rect;
|
|
39
38
|
declare function extractStyles(styleString: string): {
|
|
40
39
|
transform: {
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { Position } from '@xyflow/react';
|
|
2
|
+
import { IPoint } from '../../edges/Connection';
|
|
3
|
+
export declare function collapseCollinearPoints(points: IPoint[]): IPoint[];
|
|
4
|
+
export type SegmentKind = "source-terminal" | "target-terminal" | "inner";
|
|
5
|
+
export interface BendHandle {
|
|
6
|
+
segmentIndex: number;
|
|
7
|
+
position: IPoint;
|
|
8
|
+
orientation: "H" | "V";
|
|
9
|
+
kind: SegmentKind;
|
|
10
|
+
}
|
|
11
|
+
export declare function hasArmCollapse(points: IPoint[], proximityPx: number): boolean;
|
|
12
|
+
export declare function getSegmentOrientation(points: IPoint[], segmentIndex: number): "H" | "V";
|
|
13
|
+
export declare function getSegmentKind(segmentIndex: number, totalPoints: number): SegmentKind;
|
|
14
|
+
export declare function getSegmentEffectiveLength(points: IPoint[], segmentIndex: number, stubLength: number): number;
|
|
15
|
+
/**
|
|
16
|
+
* Whether a flow-space length is long enough to host an interactive handle,
|
|
17
|
+
* judged by its ON-SCREEN size. Screen-based so the rule matches what the user
|
|
18
|
+
* sees: zooming in always reveals more handles (a short segment becomes
|
|
19
|
+
* editable once it is `minScreenLength` px long on screen) and never hides
|
|
20
|
+
* them. `minScreenLength` is a screen-px budget (handle size + clearance).
|
|
21
|
+
*/
|
|
22
|
+
export declare function isLengthEditableAtZoom(canvasLength: number, minScreenLength: number, zoom: number): boolean;
|
|
23
|
+
export declare function getStubExit(nodePoint: IPoint, position: Position, stubLength: number): IPoint;
|
|
24
|
+
export declare function getBendHandlePosition(points: IPoint[], segmentIndex: number): IPoint;
|
|
25
|
+
/**
|
|
26
|
+
* Bend handles for every segment with enough ON-SCREEN room to host one.
|
|
27
|
+
*
|
|
28
|
+
* The "safe area" next to each node (`safeAreaPx`) is excluded: a terminal
|
|
29
|
+
* segment loses that length at its node end, both for deciding whether a handle
|
|
30
|
+
* fits AND for where the handle sits. The handle is placed at the midpoint of
|
|
31
|
+
* the *bendable* region (past the safe area), never inside the locked stub —
|
|
32
|
+
* so dragging always grabs a real, bendable slice instead of a detached sliver
|
|
33
|
+
* hugging the node.
|
|
34
|
+
*
|
|
35
|
+
* Availability is judged on the bendable region's ON-SCREEN length
|
|
36
|
+
* (bendable * zoom >= `minSegmentScreenLength`), so zooming in reveals handles
|
|
37
|
+
* on shorter segments and never hides them.
|
|
38
|
+
*/
|
|
39
|
+
export declare function getBendableSegments(points: IPoint[], _sourcePosition: Position, _targetPosition: Position, safeAreaPx: number, minSegmentScreenLength: number, zoom?: number): BendHandle[];
|
|
40
|
+
export declare function applyInnerSegmentBend(points: IPoint[], segmentIndex: number, delta: IPoint, snapGrid: number): IPoint[];
|
|
41
|
+
export declare function computeToolbarPosition(pathMiddlePosition: IPoint, isMiddlePathHorizontal: boolean): IPoint;
|
|
42
|
+
export declare function applyTerminalSegmentBend(points: IPoint[], handle: BendHandle, delta: IPoint, sourcePosition: Position, targetPosition: Position, stubLength: number, snapGrid: number): IPoint[];
|
|
@@ -10,9 +10,9 @@ export * from './diagramTypeUtils';
|
|
|
10
10
|
export * from './storeUtils';
|
|
11
11
|
export * from './deepPartial';
|
|
12
12
|
export * from './bpmnConstraints';
|
|
13
|
-
export
|
|
14
|
-
export * from './labelUtils';
|
|
13
|
+
export { importDiagram } from './versionConverter';
|
|
15
14
|
export * from './alignmentUtils';
|
|
16
15
|
export * from './requiredInterfaceUtils';
|
|
16
|
+
export * from './collaboration';
|
|
17
17
|
export { wrapTextInRect, layoutTextInEllipse, layoutTextInDiamond, maxLinesForHeight, } from './svgTextLayout';
|
|
18
18
|
export type { WrappedText, ShapeLayout, SvgFontSpec, WhiteSpaceMode, } from './svgTextLayout';
|
|
@@ -3,5 +3,4 @@ type InteractivePruneNode = Pick<ApollonNode, "id"> & Partial<Pick<ApollonNode,
|
|
|
3
3
|
export declare function getNestedNodeElementIds(nodes: InteractivePruneNode[]): Set<string>;
|
|
4
4
|
export declare function pruneInteractiveElements(interactive: InteractiveElements | undefined, nodes: InteractivePruneNode[], edges: Array<Pick<ApollonEdge, "id">>): InteractiveElements | undefined;
|
|
5
5
|
export declare function toggleInteractiveRecord(record: Record<string, boolean>, id: string): Record<string, boolean>;
|
|
6
|
-
export declare function hasInteractiveSelections(interactive: InteractiveElements | undefined): boolean;
|
|
7
6
|
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { XYPosition, Node } from '@xyflow/react';
|
|
2
|
-
export declare const getPositionOnCanvas: (node: Node, allNodes: Node
|
|
2
|
+
export declare const getPositionOnCanvas: (node: Node, allNodes: ReadonlyArray<Node>) => XYPosition;
|
|
3
3
|
export declare const resizeAllParents: (node: Node, allNodes: Node[]) => Node[];
|
|
4
4
|
export declare function sortNodesTopologically(nodes: Node[]): Node[];
|
|
5
5
|
/**
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const deepEqual: (a: unknown, b: unknown) => boolean;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const measureTextWidth: (text: string, font?: string) => number;
|