@grafloria/element 0.3.20 → 0.3.21
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/package.json +1 -1
- package/src/libs/element/src/index.d.ts +0 -92
- package/src/libs/element/src/index.js +0 -576
- package/src/libs/element/src/lib/dashboard-kit/dashboard.d.ts +0 -345
- package/src/libs/element/src/lib/dashboard-kit/dashboard.js +0 -594
- package/src/libs/element/src/lib/dashboard-kit/grid-binder.d.ts +0 -277
- package/src/libs/element/src/lib/dashboard-kit/grid-binder.js +0 -1636
- package/src/libs/element/src/lib/dashboard-kit/grid-mapping.d.ts +0 -141
- package/src/libs/element/src/lib/dashboard-kit/grid-mapping.js +0 -176
- package/src/libs/element/src/lib/dashboard-kit/index.d.ts +0 -5
- package/src/libs/element/src/lib/dashboard-kit/index.js +0 -33
- package/src/libs/element/src/lib/dashboard-kit/styles.d.ts +0 -25
- package/src/libs/element/src/lib/dashboard-kit/styles.js +0 -209
- package/src/libs/element/src/lib/dashboard-kit/widgets.d.ts +0 -112
- package/src/libs/element/src/lib/dashboard-kit/widgets.js +0 -389
- package/src/libs/element/src/lib/diagram-kit/card.d.ts +0 -75
- package/src/libs/element/src/lib/diagram-kit/card.js +0 -209
- package/src/libs/element/src/lib/diagram-kit/editing.d.ts +0 -58
- package/src/libs/element/src/lib/diagram-kit/editing.js +0 -453
- package/src/libs/element/src/lib/diagram-kit/er.d.ts +0 -73
- package/src/libs/element/src/lib/diagram-kit/er.js +0 -163
- package/src/libs/element/src/lib/diagram-kit/handles.d.ts +0 -181
- package/src/libs/element/src/lib/diagram-kit/handles.js +0 -325
- package/src/libs/element/src/lib/diagram-kit/index.d.ts +0 -10
- package/src/libs/element/src/lib/diagram-kit/index.js +0 -55
- package/src/libs/element/src/lib/diagram-kit/join-guidance.d.ts +0 -116
- package/src/libs/element/src/lib/diagram-kit/join-guidance.js +0 -331
- package/src/libs/element/src/lib/diagram-kit/rows.d.ts +0 -53
- package/src/libs/element/src/lib/diagram-kit/rows.js +0 -147
- package/src/libs/element/src/lib/diagram-kit/styles.d.ts +0 -18
- package/src/libs/element/src/lib/diagram-kit/styles.js +0 -122
- package/src/libs/element/src/lib/diagram-kit/uml.d.ts +0 -59
- package/src/libs/element/src/lib/diagram-kit/uml.js +0 -138
- package/src/libs/element/src/lib/diagram-kit/update.d.ts +0 -133
- package/src/libs/element/src/lib/diagram-kit/update.js +0 -251
- package/src/libs/element/src/lib/grafloria-flow-element.d.ts +0 -48
- package/src/libs/element/src/lib/grafloria-flow-element.js +0 -271
- package/src/libs/element/src/lib/grafloria.d.ts +0 -72
- package/src/libs/element/src/lib/grafloria.js +0 -74
- package/src/libs/element/src/lib/load.d.ts +0 -72
- package/src/libs/element/src/lib/load.js +0 -255
- package/src/libs/element/src/lib/node-type-registry.d.ts +0 -39
- package/src/libs/element/src/lib/node-type-registry.js +0 -50
- package/src/libs/element/src/lib/stencil-kit/builders.d.ts +0 -45
- package/src/libs/element/src/lib/stencil-kit/builders.js +0 -24
- package/src/libs/element/src/lib/stencil-kit/card-builders.d.ts +0 -2
- package/src/libs/element/src/lib/stencil-kit/card-builders.js +0 -108
- package/src/libs/element/src/lib/stencil-kit/index.d.ts +0 -7
- package/src/libs/element/src/lib/stencil-kit/index.js +0 -19
- package/src/libs/element/src/lib/stencil-kit/palette.d.ts +0 -93
- package/src/libs/element/src/lib/stencil-kit/palette.js +0 -430
- package/src/libs/element/src/lib/stencil-kit/shape-data.d.ts +0 -28
- package/src/libs/element/src/lib/stencil-kit/shape-data.js +0 -540
- package/src/libs/element/src/lib/stencil-kit/styles.d.ts +0 -2
- package/src/libs/element/src/lib/stencil-kit/styles.js +0 -129
- package/src/libs/engine/src/adapters/component-adapter.interface.d.ts +0 -302
- package/src/libs/engine/src/adapters/component-adapter.interface.js +0 -84
- package/src/libs/engine/src/adapters/index.d.ts +0 -7
- package/src/libs/engine/src/adapters/index.js +0 -11
- package/src/libs/engine/src/clipboard/ClipboardManager.d.ts +0 -81
- package/src/libs/engine/src/clipboard/ClipboardManager.js +0 -108
- package/src/libs/engine/src/clipboard/index.d.ts +0 -1
- package/src/libs/engine/src/clipboard/index.js +0 -6
- package/src/libs/engine/src/collab/apply-op.d.ts +0 -42
- package/src/libs/engine/src/collab/apply-op.js +0 -939
- package/src/libs/engine/src/collab/capture.d.ts +0 -147
- package/src/libs/engine/src/collab/capture.js +0 -510
- package/src/libs/engine/src/collab/index.d.ts +0 -12
- package/src/libs/engine/src/collab/index.js +0 -84
- package/src/libs/engine/src/collab/integrity.d.ts +0 -178
- package/src/libs/engine/src/collab/integrity.js +0 -438
- package/src/libs/engine/src/collab/lww.d.ts +0 -47
- package/src/libs/engine/src/collab/lww.js +0 -188
- package/src/libs/engine/src/collab/op-log.d.ts +0 -50
- package/src/libs/engine/src/collab/op-log.js +0 -167
- package/src/libs/engine/src/collab/op.d.ts +0 -120
- package/src/libs/engine/src/collab/op.js +0 -118
- package/src/libs/engine/src/collab/replica.d.ts +0 -188
- package/src/libs/engine/src/collab/replica.js +0 -526
- package/src/libs/engine/src/collab/undo.d.ts +0 -106
- package/src/libs/engine/src/collab/undo.js +0 -388
- package/src/libs/engine/src/commands/Command.d.ts +0 -66
- package/src/libs/engine/src/commands/Command.js +0 -64
- package/src/libs/engine/src/commands/CommandManager.d.ts +0 -161
- package/src/libs/engine/src/commands/CommandManager.js +0 -417
- package/src/libs/engine/src/commands/basic/AddGroupCommand.d.ts +0 -13
- package/src/libs/engine/src/commands/basic/AddGroupCommand.js +0 -50
- package/src/libs/engine/src/commands/basic/AddLinkCommand.d.ts +0 -13
- package/src/libs/engine/src/commands/basic/AddLinkCommand.js +0 -50
- package/src/libs/engine/src/commands/basic/AddNodeCommand.d.ts +0 -13
- package/src/libs/engine/src/commands/basic/AddNodeCommand.js +0 -65
- package/src/libs/engine/src/commands/basic/AddToGroupCommand.d.ts +0 -12
- package/src/libs/engine/src/commands/basic/AddToGroupCommand.js +0 -73
- package/src/libs/engine/src/commands/basic/AlignCommands.d.ts +0 -42
- package/src/libs/engine/src/commands/basic/AlignCommands.js +0 -138
- package/src/libs/engine/src/commands/basic/CollapseGroupCommand.d.ts +0 -14
- package/src/libs/engine/src/commands/basic/CollapseGroupCommand.js +0 -70
- package/src/libs/engine/src/commands/basic/CopyCommand.d.ts +0 -29
- package/src/libs/engine/src/commands/basic/CopyCommand.js +0 -131
- package/src/libs/engine/src/commands/basic/CutCommand.d.ts +0 -49
- package/src/libs/engine/src/commands/basic/CutCommand.js +0 -68
- package/src/libs/engine/src/commands/basic/DeleteSelectionCommand.d.ts +0 -58
- package/src/libs/engine/src/commands/basic/DeleteSelectionCommand.js +0 -309
- package/src/libs/engine/src/commands/basic/DuplicateCommand.d.ts +0 -31
- package/src/libs/engine/src/commands/basic/DuplicateCommand.js +0 -232
- package/src/libs/engine/src/commands/basic/ExpandGroupCommand.d.ts +0 -12
- package/src/libs/engine/src/commands/basic/ExpandGroupCommand.js +0 -69
- package/src/libs/engine/src/commands/basic/MoveGroupCommand.d.ts +0 -46
- package/src/libs/engine/src/commands/basic/MoveGroupCommand.js +0 -77
- package/src/libs/engine/src/commands/basic/MoveNodeCommand.d.ts +0 -30
- package/src/libs/engine/src/commands/basic/MoveNodeCommand.js +0 -87
- package/src/libs/engine/src/commands/basic/NodeZOrderCommands.d.ts +0 -39
- package/src/libs/engine/src/commands/basic/NodeZOrderCommands.js +0 -120
- package/src/libs/engine/src/commands/basic/PasteCommand.d.ts +0 -33
- package/src/libs/engine/src/commands/basic/PasteCommand.js +0 -228
- package/src/libs/engine/src/commands/basic/PortCommands.d.ts +0 -22
- package/src/libs/engine/src/commands/basic/PortCommands.js +0 -85
- package/src/libs/engine/src/commands/basic/ReconnectLinkCommand.d.ts +0 -15
- package/src/libs/engine/src/commands/basic/ReconnectLinkCommand.js +0 -59
- package/src/libs/engine/src/commands/basic/RemoveFromGroupCommand.d.ts +0 -12
- package/src/libs/engine/src/commands/basic/RemoveFromGroupCommand.js +0 -64
- package/src/libs/engine/src/commands/basic/RemoveGroupCommand.d.ts +0 -12
- package/src/libs/engine/src/commands/basic/RemoveGroupCommand.js +0 -56
- package/src/libs/engine/src/commands/basic/RemoveLinkCommand.d.ts +0 -12
- package/src/libs/engine/src/commands/basic/RemoveLinkCommand.js +0 -57
- package/src/libs/engine/src/commands/basic/RemoveNodeCommand.d.ts +0 -23
- package/src/libs/engine/src/commands/basic/RemoveNodeCommand.js +0 -108
- package/src/libs/engine/src/commands/basic/ResizeNodeCommand.d.ts +0 -16
- package/src/libs/engine/src/commands/basic/ResizeNodeCommand.js +0 -81
- package/src/libs/engine/src/commands/basic/RotateNodeCommand.d.ts +0 -37
- package/src/libs/engine/src/commands/basic/RotateNodeCommand.js +0 -88
- package/src/libs/engine/src/commands/basic/SetFlexItemCommand.d.ts +0 -14
- package/src/libs/engine/src/commands/basic/SetFlexItemCommand.js +0 -74
- package/src/libs/engine/src/commands/basic/SetGridItemCommand.d.ts +0 -14
- package/src/libs/engine/src/commands/basic/SetGridItemCommand.js +0 -74
- package/src/libs/engine/src/commands/basic/SetLayoutCommand.d.ts +0 -16
- package/src/libs/engine/src/commands/basic/SetLayoutCommand.js +0 -80
- package/src/libs/engine/src/commands/basic/SetLinkDisplayLabelCommand.d.ts +0 -28
- package/src/libs/engine/src/commands/basic/SetLinkDisplayLabelCommand.js +0 -83
- package/src/libs/engine/src/commands/basic/SetLinkLabelCommand.d.ts +0 -24
- package/src/libs/engine/src/commands/basic/SetLinkLabelCommand.js +0 -81
- package/src/libs/engine/src/commands/basic/SetLinkLabelsCommand.d.ts +0 -14
- package/src/libs/engine/src/commands/basic/SetLinkLabelsCommand.js +0 -75
- package/src/libs/engine/src/commands/basic/SetLinkPathTypeCommand.d.ts +0 -14
- package/src/libs/engine/src/commands/basic/SetLinkPathTypeCommand.js +0 -77
- package/src/libs/engine/src/commands/basic/SetLinkPointsCommand.d.ts +0 -32
- package/src/libs/engine/src/commands/basic/SetLinkPointsCommand.js +0 -87
- package/src/libs/engine/src/commands/basic/SetNodeDataCommand.d.ts +0 -14
- package/src/libs/engine/src/commands/basic/SetNodeDataCommand.js +0 -93
- package/src/libs/engine/src/commands/basic/SetNodeLabelCommand.d.ts +0 -26
- package/src/libs/engine/src/commands/basic/SetNodeLabelCommand.js +0 -81
- package/src/libs/engine/src/commands/basic/SetNodeShapeConfigCommand.d.ts +0 -14
- package/src/libs/engine/src/commands/basic/SetNodeShapeConfigCommand.js +0 -69
- package/src/libs/engine/src/commands/basic/SetNodeStyleCommand.d.ts +0 -15
- package/src/libs/engine/src/commands/basic/SetNodeStyleCommand.js +0 -88
- package/src/libs/engine/src/commands/basic/SetParentCommand.d.ts +0 -13
- package/src/libs/engine/src/commands/basic/SetParentCommand.js +0 -109
- package/src/libs/engine/src/commands/basic/SetStrokePointsCommand.d.ts +0 -34
- package/src/libs/engine/src/commands/basic/SetStrokePointsCommand.js +0 -86
- package/src/libs/engine/src/commands/basic/StrokeLifecycleCommands.d.ts +0 -31
- package/src/libs/engine/src/commands/basic/StrokeLifecycleCommands.js +0 -88
- package/src/libs/engine/src/commands/basic/UpdateLinkStyleCommand.d.ts +0 -15
- package/src/libs/engine/src/commands/basic/UpdateLinkStyleCommand.js +0 -72
- package/src/libs/engine/src/commands/basic/index.d.ts +0 -41
- package/src/libs/engine/src/commands/basic/index.js +0 -52
- package/src/libs/engine/src/commands/basic/remapNodePortIds.d.ts +0 -23
- package/src/libs/engine/src/commands/basic/remapNodePortIds.js +0 -46
- package/src/libs/engine/src/commands/basic/resolveLinkNodeIds.d.ts +0 -31
- package/src/libs/engine/src/commands/basic/resolveLinkNodeIds.js +0 -49
- package/src/libs/engine/src/commands/composite/BatchCommand.d.ts +0 -19
- package/src/libs/engine/src/commands/composite/BatchCommand.js +0 -61
- package/src/libs/engine/src/commands/composite/MacroCommand.d.ts +0 -35
- package/src/libs/engine/src/commands/composite/MacroCommand.js +0 -87
- package/src/libs/engine/src/commands/composite/index.d.ts +0 -2
- package/src/libs/engine/src/commands/composite/index.js +0 -7
- package/src/libs/engine/src/commands/index.d.ts +0 -4
- package/src/libs/engine/src/commands/index.js +0 -9
- package/src/libs/engine/src/comments/comment-store.d.ts +0 -238
- package/src/libs/engine/src/comments/comment-store.js +0 -538
- package/src/libs/engine/src/comments/index.d.ts +0 -4
- package/src/libs/engine/src/comments/index.js +0 -31
- package/src/libs/engine/src/comments/mentions.d.ts +0 -52
- package/src/libs/engine/src/comments/mentions.js +0 -94
- package/src/libs/engine/src/comments/read-state.d.ts +0 -37
- package/src/libs/engine/src/comments/read-state.js +0 -105
- package/src/libs/engine/src/comments/types.d.ts +0 -154
- package/src/libs/engine/src/comments/types.js +0 -107
- package/src/libs/engine/src/config/InteractionConfig.d.ts +0 -330
- package/src/libs/engine/src/config/InteractionConfig.js +0 -154
- package/src/libs/engine/src/config/index.d.ts +0 -1
- package/src/libs/engine/src/config/index.js +0 -6
- package/src/libs/engine/src/dsl/DSL.d.ts +0 -197
- package/src/libs/engine/src/dsl/DSL.js +0 -564
- package/src/libs/engine/src/dsl/advanced/StyleParser.d.ts +0 -75
- package/src/libs/engine/src/dsl/advanced/StyleParser.js +0 -166
- package/src/libs/engine/src/dsl/advanced/TemplateParser.d.ts +0 -88
- package/src/libs/engine/src/dsl/advanced/TemplateParser.js +0 -226
- package/src/libs/engine/src/dsl/advanced/index.d.ts +0 -9
- package/src/libs/engine/src/dsl/advanced/index.js +0 -13
- package/src/libs/engine/src/dsl/detector/LayoutDetector.d.ts +0 -80
- package/src/libs/engine/src/dsl/detector/LayoutDetector.js +0 -333
- package/src/libs/engine/src/dsl/extended/BPMNGenerator.d.ts +0 -38
- package/src/libs/engine/src/dsl/extended/BPMNGenerator.js +0 -90
- package/src/libs/engine/src/dsl/extended/BPMNParser.d.ts +0 -83
- package/src/libs/engine/src/dsl/extended/BPMNParser.js +0 -198
- package/src/libs/engine/src/dsl/extended/ERDGenerator.d.ts +0 -38
- package/src/libs/engine/src/dsl/extended/ERDGenerator.js +0 -126
- package/src/libs/engine/src/dsl/extended/ERDParser.d.ts +0 -81
- package/src/libs/engine/src/dsl/extended/ERDParser.js +0 -161
- package/src/libs/engine/src/dsl/extended/ERDTransformer.d.ts +0 -43
- package/src/libs/engine/src/dsl/extended/ERDTransformer.js +0 -105
- package/src/libs/engine/src/dsl/extended/UMLGenerator.d.ts +0 -42
- package/src/libs/engine/src/dsl/extended/UMLGenerator.js +0 -157
- package/src/libs/engine/src/dsl/extended/UMLParser.d.ts +0 -99
- package/src/libs/engine/src/dsl/extended/UMLParser.js +0 -200
- package/src/libs/engine/src/dsl/extended/index.d.ts +0 -13
- package/src/libs/engine/src/dsl/extended/index.js +0 -27
- package/src/libs/engine/src/dsl/generator/DSLFormatter.d.ts +0 -87
- package/src/libs/engine/src/dsl/generator/DSLFormatter.js +0 -261
- package/src/libs/engine/src/dsl/generator/DSLGenerator.d.ts +0 -96
- package/src/libs/engine/src/dsl/generator/DSLGenerator.js +0 -328
- package/src/libs/engine/src/dsl/generator/DiagramAnalyzer.d.ts +0 -111
- package/src/libs/engine/src/dsl/generator/DiagramAnalyzer.js +0 -361
- package/src/libs/engine/src/dsl/index.d.ts +0 -35
- package/src/libs/engine/src/dsl/index.js +0 -64
- package/src/libs/engine/src/dsl/lexer/Lexer.d.ts +0 -117
- package/src/libs/engine/src/dsl/lexer/Lexer.js +0 -521
- package/src/libs/engine/src/dsl/mermaid/MermaidClass.d.ts +0 -136
- package/src/libs/engine/src/dsl/mermaid/MermaidClass.js +0 -429
- package/src/libs/engine/src/dsl/mermaid/MermaidER.d.ts +0 -118
- package/src/libs/engine/src/dsl/mermaid/MermaidER.js +0 -338
- package/src/libs/engine/src/dsl/mermaid/MermaidState.d.ts +0 -89
- package/src/libs/engine/src/dsl/mermaid/MermaidState.js +0 -613
- package/src/libs/engine/src/dsl/mermaid/index.d.ts +0 -10
- package/src/libs/engine/src/dsl/mermaid/index.js +0 -33
- package/src/libs/engine/src/dsl/mermaid/layout.d.ts +0 -70
- package/src/libs/engine/src/dsl/mermaid/layout.js +0 -162
- package/src/libs/engine/src/dsl/mermaid/lines.d.ts +0 -25
- package/src/libs/engine/src/dsl/mermaid/lines.js +0 -74
- package/src/libs/engine/src/dsl/parser/Parser.d.ts +0 -131
- package/src/libs/engine/src/dsl/parser/Parser.js +0 -725
- package/src/libs/engine/src/dsl/sync/BidirectionalSync.d.ts +0 -154
- package/src/libs/engine/src/dsl/sync/BidirectionalSync.js +0 -389
- package/src/libs/engine/src/dsl/sync/IntegratedSyncManager.d.ts +0 -128
- package/src/libs/engine/src/dsl/sync/IntegratedSyncManager.js +0 -244
- package/src/libs/engine/src/dsl/sync/LayoutApplicator.d.ts +0 -140
- package/src/libs/engine/src/dsl/sync/LayoutApplicator.js +0 -271
- package/src/libs/engine/src/dsl/sync/SyncStateManager.d.ts +0 -145
- package/src/libs/engine/src/dsl/sync/SyncStateManager.js +0 -253
- package/src/libs/engine/src/dsl/sync/index.d.ts +0 -13
- package/src/libs/engine/src/dsl/sync/index.js +0 -21
- package/src/libs/engine/src/dsl/transformer/ASTTransformer.d.ts +0 -150
- package/src/libs/engine/src/dsl/transformer/ASTTransformer.js +0 -605
- package/src/libs/engine/src/dsl/types/ASTNode.d.ts +0 -159
- package/src/libs/engine/src/dsl/types/ASTNode.js +0 -31
- package/src/libs/engine/src/dsl/types/Token.d.ts +0 -79
- package/src/libs/engine/src/dsl/types/Token.js +0 -84
- package/src/libs/engine/src/engine/DiagramEngine.d.ts +0 -917
- package/src/libs/engine/src/engine/DiagramEngine.js +0 -2190
- package/src/libs/engine/src/engine/DiagramMode.d.ts +0 -51
- package/src/libs/engine/src/engine/DiagramMode.js +0 -53
- package/src/libs/engine/src/engine/DiagramModeTypes.d.ts +0 -73
- package/src/libs/engine/src/engine/DiagramModeTypes.js +0 -4
- package/src/libs/engine/src/engine/ModeManager.d.ts +0 -155
- package/src/libs/engine/src/engine/ModeManager.js +0 -387
- package/src/libs/engine/src/engine/index.d.ts +0 -2
- package/src/libs/engine/src/engine/index.js +0 -7
- package/src/libs/engine/src/events/EventBus.d.ts +0 -106
- package/src/libs/engine/src/events/EventBus.js +0 -226
- package/src/libs/engine/src/events/index.d.ts +0 -1
- package/src/libs/engine/src/events/index.js +0 -6
- package/src/libs/engine/src/index.d.ts +0 -43
- package/src/libs/engine/src/index.js +0 -142
- package/src/libs/engine/src/interaction/GroupCollapseService.d.ts +0 -53
- package/src/libs/engine/src/interaction/GroupCollapseService.js +0 -274
- package/src/libs/engine/src/interaction/GroupMembershipService.d.ts +0 -107
- package/src/libs/engine/src/interaction/GroupMembershipService.js +0 -245
- package/src/libs/engine/src/interaction/SemanticMembershipService.d.ts +0 -28
- package/src/libs/engine/src/interaction/SemanticMembershipService.js +0 -168
- package/src/libs/engine/src/interaction/SwimlaneService.d.ts +0 -62
- package/src/libs/engine/src/interaction/SwimlaneService.js +0 -180
- package/src/libs/engine/src/interaction/index.d.ts +0 -4
- package/src/libs/engine/src/interaction/index.js +0 -9
- package/src/libs/engine/src/interop/drawio/importDrawio.d.ts +0 -52
- package/src/libs/engine/src/interop/drawio/importDrawio.js +0 -940
- package/src/libs/engine/src/interop/drawio/index.d.ts +0 -1
- package/src/libs/engine/src/interop/drawio/index.js +0 -12
- package/src/libs/engine/src/interop/drawio/xml.d.ts +0 -26
- package/src/libs/engine/src/interop/drawio/xml.js +0 -213
- package/src/libs/engine/src/layout/CompoundLayoutService.d.ts +0 -121
- package/src/libs/engine/src/layout/CompoundLayoutService.js +0 -616
- package/src/libs/engine/src/layout/ILayoutAlgorithm.d.ts +0 -120
- package/src/libs/engine/src/layout/ILayoutAlgorithm.js +0 -88
- package/src/libs/engine/src/layout/LayoutManager.d.ts +0 -155
- package/src/libs/engine/src/layout/LayoutManager.js +0 -640
- package/src/libs/engine/src/layout/SmartSpacingCalculator.d.ts +0 -62
- package/src/libs/engine/src/layout/SmartSpacingCalculator.js +0 -134
- package/src/libs/engine/src/layout/ViewportTransform.d.ts +0 -55
- package/src/libs/engine/src/layout/ViewportTransform.js +0 -118
- package/src/libs/engine/src/layout/algorithms/ForceDirectedLayoutAlgorithm.d.ts +0 -34
- package/src/libs/engine/src/layout/algorithms/ForceDirectedLayoutAlgorithm.js +0 -317
- package/src/libs/engine/src/layout/algorithms/GridLayoutAlgorithm.d.ts +0 -56
- package/src/libs/engine/src/layout/algorithms/GridLayoutAlgorithm.js +0 -223
- package/src/libs/engine/src/layout/algorithms/HierarchicalLayoutAlgorithm.d.ts +0 -60
- package/src/libs/engine/src/layout/algorithms/HierarchicalLayoutAlgorithm.js +0 -307
- package/src/libs/engine/src/layout/algorithms/HybridLayoutAlgorithm.d.ts +0 -62
- package/src/libs/engine/src/layout/algorithms/HybridLayoutAlgorithm.js +0 -324
- package/src/libs/engine/src/layout/community-layout-adapter.d.ts +0 -107
- package/src/libs/engine/src/layout/community-layout-adapter.js +0 -486
- package/src/libs/engine/src/layout/component-packing.d.ts +0 -98
- package/src/libs/engine/src/layout/component-packing.js +0 -307
- package/src/libs/engine/src/layout/dagre-layout-adapter.d.ts +0 -122
- package/src/libs/engine/src/layout/dagre-layout-adapter.js +0 -697
- package/src/libs/engine/src/layout/edge-bundling.interface.d.ts +0 -159
- package/src/libs/engine/src/layout/edge-bundling.interface.js +0 -379
- package/src/libs/engine/src/layout/elk-layout-adapter.d.ts +0 -121
- package/src/libs/engine/src/layout/elk-layout-adapter.js +0 -586
- package/src/libs/engine/src/layout/elk-loader.d.ts +0 -1
- package/src/libs/engine/src/layout/elk-loader.js +0 -24
- package/src/libs/engine/src/layout/force-layout-adapter.d.ts +0 -167
- package/src/libs/engine/src/layout/force-layout-adapter.js +0 -790
- package/src/libs/engine/src/layout/grid-pack/grid-pack-engine.d.ts +0 -323
- package/src/libs/engine/src/layout/grid-pack/grid-pack-engine.js +0 -685
- package/src/libs/engine/src/layout/incremental/mental-map.d.ts +0 -98
- package/src/libs/engine/src/layout/incremental/mental-map.js +0 -221
- package/src/libs/engine/src/layout/incremental-layout.interface.d.ts +0 -145
- package/src/libs/engine/src/layout/incremental-layout.interface.js +0 -300
- package/src/libs/engine/src/layout/index.d.ts +0 -83
- package/src/libs/engine/src/layout/index.js +0 -116
- package/src/libs/engine/src/layout/layout-adapter.interface.d.ts +0 -185
- package/src/libs/engine/src/layout/layout-adapter.interface.js +0 -10
- package/src/libs/engine/src/layout/layout-auto-select.d.ts +0 -160
- package/src/libs/engine/src/layout/layout-auto-select.js +0 -621
- package/src/libs/engine/src/layout/layout-constraints.interface.d.ts +0 -117
- package/src/libs/engine/src/layout/layout-constraints.interface.js +0 -138
- package/src/libs/engine/src/layout/layout-graph.d.ts +0 -70
- package/src/libs/engine/src/layout/layout-graph.js +0 -119
- package/src/libs/engine/src/layout/layout-history.d.ts +0 -147
- package/src/libs/engine/src/layout/layout-history.js +0 -258
- package/src/libs/engine/src/layout/layout-host.d.ts +0 -172
- package/src/libs/engine/src/layout/layout-host.js +0 -523
- package/src/libs/engine/src/layout/layout-presets.d.ts +0 -91
- package/src/libs/engine/src/layout/layout-presets.js +0 -333
- package/src/libs/engine/src/layout/layout-quality-extended.d.ts +0 -66
- package/src/libs/engine/src/layout/layout-quality-extended.js +0 -246
- package/src/libs/engine/src/layout/layout-quality-metrics.d.ts +0 -127
- package/src/libs/engine/src/layout/layout-quality-metrics.js +0 -466
- package/src/libs/engine/src/layout/layout-registry.d.ts +0 -309
- package/src/libs/engine/src/layout/layout-registry.js +0 -414
- package/src/libs/engine/src/layout/layout.service.d.ts +0 -100
- package/src/libs/engine/src/layout/layout.service.js +0 -216
- package/src/libs/engine/src/layout/overlap-removal.d.ts +0 -20
- package/src/libs/engine/src/layout/overlap-removal.js +0 -117
- package/src/libs/engine/src/layout/port-aware-layout.interface.d.ts +0 -232
- package/src/libs/engine/src/layout/port-aware-layout.interface.js +0 -413
- package/src/libs/engine/src/layout/port-label-bridge.d.ts +0 -77
- package/src/libs/engine/src/layout/port-label-bridge.js +0 -250
- package/src/libs/engine/src/layout/portfolio-layouts.d.ts +0 -53
- package/src/libs/engine/src/layout/portfolio-layouts.js +0 -388
- package/src/libs/engine/src/layout/rng.d.ts +0 -34
- package/src/libs/engine/src/layout/rng.js +0 -71
- package/src/libs/engine/src/layout/spectral-layout-adapter.d.ts +0 -72
- package/src/libs/engine/src/layout/spectral-layout-adapter.js +0 -379
- package/src/libs/engine/src/layout/steppable-layout.d.ts +0 -40
- package/src/libs/engine/src/layout/steppable-layout.js +0 -34
- package/src/libs/engine/src/layout/subgraph-layout.interface.d.ts +0 -269
- package/src/libs/engine/src/layout/subgraph-layout.interface.js +0 -452
- package/src/libs/engine/src/layout/sugiyama/layered-layout.d.ts +0 -9
- package/src/libs/engine/src/layout/sugiyama/layered-layout.js +0 -83
- package/src/libs/engine/src/layout/sugiyama/sugiyama.d.ts +0 -91
- package/src/libs/engine/src/layout/sugiyama/sugiyama.js +0 -797
- package/src/libs/engine/src/layout/tree-layout.d.ts +0 -43
- package/src/libs/engine/src/layout/tree-layout.js +0 -426
- package/src/libs/engine/src/layout/types.d.ts +0 -263
- package/src/libs/engine/src/layout/types.js +0 -6
- package/src/libs/engine/src/lib/performance/mobile-performance.service.d.ts +0 -43
- package/src/libs/engine/src/lib/performance/mobile-performance.service.js +0 -95
- package/src/libs/engine/src/models/DiagramEntity.d.ts +0 -174
- package/src/libs/engine/src/models/DiagramEntity.js +0 -366
- package/src/libs/engine/src/models/DiagramModel.d.ts +0 -960
- package/src/libs/engine/src/models/DiagramModel.js +0 -2416
- package/src/libs/engine/src/models/GroupModel.d.ts +0 -573
- package/src/libs/engine/src/models/GroupModel.js +0 -1373
- package/src/libs/engine/src/models/LinkModel.d.ts +0 -395
- package/src/libs/engine/src/models/LinkModel.js +0 -1045
- package/src/libs/engine/src/models/NodeModel.d.ts +0 -666
- package/src/libs/engine/src/models/NodeModel.js +0 -1512
- package/src/libs/engine/src/models/PortModel.d.ts +0 -292
- package/src/libs/engine/src/models/PortModel.js +0 -637
- package/src/libs/engine/src/models/StrokeModel.d.ts +0 -160
- package/src/libs/engine/src/models/StrokeModel.js +0 -387
- package/src/libs/engine/src/models/index.d.ts +0 -7
- package/src/libs/engine/src/models/index.js +0 -12
- package/src/libs/engine/src/models/readonly-lock.d.ts +0 -108
- package/src/libs/engine/src/models/readonly-lock.js +0 -125
- package/src/libs/engine/src/performance/LRUCache.d.ts +0 -78
- package/src/libs/engine/src/performance/LRUCache.js +0 -179
- package/src/libs/engine/src/performance/PerformanceMonitor.d.ts +0 -47
- package/src/libs/engine/src/performance/PerformanceMonitor.js +0 -112
- package/src/libs/engine/src/performance/SpatialIndex.d.ts +0 -157
- package/src/libs/engine/src/performance/SpatialIndex.js +0 -306
- package/src/libs/engine/src/performance/index.d.ts +0 -2
- package/src/libs/engine/src/performance/index.js +0 -7
- package/src/libs/engine/src/plugins/PluginManager.d.ts +0 -95
- package/src/libs/engine/src/plugins/PluginManager.js +0 -388
- package/src/libs/engine/src/plugins/index.d.ts +0 -1
- package/src/libs/engine/src/plugins/index.js +0 -6
- package/src/libs/engine/src/ports/connection-rules.d.ts +0 -32
- package/src/libs/engine/src/ports/connection-rules.js +0 -131
- package/src/libs/engine/src/ports/dynamic-ports.d.ts +0 -27
- package/src/libs/engine/src/ports/dynamic-ports.js +0 -135
- package/src/libs/engine/src/ports/index.d.ts +0 -5
- package/src/libs/engine/src/ports/index.js +0 -16
- package/src/libs/engine/src/ports/port-groups.d.ts +0 -43
- package/src/libs/engine/src/ports/port-groups.js +0 -185
- package/src/libs/engine/src/ports/port-type-registry.d.ts +0 -34
- package/src/libs/engine/src/ports/port-type-registry.js +0 -87
- package/src/libs/engine/src/ports/port-types.d.ts +0 -266
- package/src/libs/engine/src/ports/port-types.js +0 -30
- package/src/libs/engine/src/rendering/HtmlTemplateRenderer.d.ts +0 -136
- package/src/libs/engine/src/rendering/HtmlTemplateRenderer.js +0 -292
- package/src/libs/engine/src/rendering/LemonadeJSRenderer.d.ts +0 -160
- package/src/libs/engine/src/rendering/LemonadeJSRenderer.js +0 -362
- package/src/libs/engine/src/rendering/index.d.ts +0 -2
- package/src/libs/engine/src/rendering/index.js +0 -7
- package/src/libs/engine/src/routing/LiveReroutingEngine.d.ts +0 -75
- package/src/libs/engine/src/routing/LiveReroutingEngine.js +0 -173
- package/src/libs/engine/src/routing/ObstacleIndex.d.ts +0 -42
- package/src/libs/engine/src/routing/ObstacleIndex.js +0 -215
- package/src/libs/engine/src/routing/ObstacleMap.d.ts +0 -68
- package/src/libs/engine/src/routing/ObstacleMap.js +0 -312
- package/src/libs/engine/src/routing/ObstacleMapBuilder.d.ts +0 -28
- package/src/libs/engine/src/routing/ObstacleMapBuilder.js +0 -76
- package/src/libs/engine/src/routing/PathSimplifier.d.ts +0 -119
- package/src/libs/engine/src/routing/PathSimplifier.js +0 -224
- package/src/libs/engine/src/routing/RoutingEngine.d.ts +0 -118
- package/src/libs/engine/src/routing/RoutingEngine.js +0 -546
- package/src/libs/engine/src/routing/algorithms/AStarRouter.d.ts +0 -90
- package/src/libs/engine/src/routing/algorithms/AStarRouter.js +0 -331
- package/src/libs/engine/src/routing/algorithms/DijkstraRouter.d.ts +0 -74
- package/src/libs/engine/src/routing/algorithms/DijkstraRouter.js +0 -297
- package/src/libs/engine/src/routing/algorithms/ElkRouter.d.ts +0 -34
- package/src/libs/engine/src/routing/algorithms/ElkRouter.js +0 -210
- package/src/libs/engine/src/routing/algorithms/ManhattanRouter.d.ts +0 -18
- package/src/libs/engine/src/routing/algorithms/ManhattanRouter.js +0 -224
- package/src/libs/engine/src/routing/algorithms/OrthogonalRouter.d.ts +0 -173
- package/src/libs/engine/src/routing/algorithms/OrthogonalRouter.js +0 -1092
- package/src/libs/engine/src/routing/algorithms/StraightRouter.d.ts +0 -8
- package/src/libs/engine/src/routing/algorithms/StraightRouter.js +0 -53
- package/src/libs/engine/src/routing/algorithms/VisibilityGraphRouter.d.ts +0 -59
- package/src/libs/engine/src/routing/algorithms/VisibilityGraphRouter.js +0 -258
- package/src/libs/engine/src/routing/global/GlobalRouteSolver.d.ts +0 -64
- package/src/libs/engine/src/routing/global/GlobalRouteSolver.js +0 -334
- package/src/libs/engine/src/routing/global/solver-host.d.ts +0 -65
- package/src/libs/engine/src/routing/global/solver-host.js +0 -87
- package/src/libs/engine/src/routing/index.d.ts +0 -15
- package/src/libs/engine/src/routing/index.js +0 -20
- package/src/libs/engine/src/routing/types.d.ts +0 -161
- package/src/libs/engine/src/routing/types.js +0 -4
- package/src/libs/engine/src/selection/SelectionManager.d.ts +0 -161
- package/src/libs/engine/src/selection/SelectionManager.js +0 -483
- package/src/libs/engine/src/selection/index.d.ts +0 -1
- package/src/libs/engine/src/selection/index.js +0 -6
- package/src/libs/engine/src/serialization/DiagramMigrations.d.ts +0 -41
- package/src/libs/engine/src/serialization/DiagramMigrations.js +0 -124
- package/src/libs/engine/src/serialization/DiagramValidator.d.ts +0 -20
- package/src/libs/engine/src/serialization/DiagramValidator.js +0 -136
- package/src/libs/engine/src/serialization/DocumentEnvelope.d.ts +0 -53
- package/src/libs/engine/src/serialization/DocumentEnvelope.js +0 -111
- package/src/libs/engine/src/serialization/Incremental.d.ts +0 -77
- package/src/libs/engine/src/serialization/Incremental.js +0 -227
- package/src/libs/engine/src/serialization/Serializer.d.ts +0 -29
- package/src/libs/engine/src/serialization/Serializer.js +0 -45
- package/src/libs/engine/src/serialization/Subgraph.d.ts +0 -51
- package/src/libs/engine/src/serialization/Subgraph.js +0 -172
- package/src/libs/engine/src/serialization/TextFormat.d.ts +0 -71
- package/src/libs/engine/src/serialization/TextFormat.js +0 -261
- package/src/libs/engine/src/state/ConnectionStateManager.d.ts +0 -178
- package/src/libs/engine/src/state/ConnectionStateManager.js +0 -319
- package/src/libs/engine/src/state/DiagramStore.d.ts +0 -134
- package/src/libs/engine/src/state/DiagramStore.js +0 -372
- package/src/libs/engine/src/state/index.d.ts +0 -2
- package/src/libs/engine/src/state/index.js +0 -7
- package/src/libs/engine/src/sync/awareness.d.ts +0 -91
- package/src/libs/engine/src/sync/awareness.js +0 -221
- package/src/libs/engine/src/sync/batcher.d.ts +0 -84
- package/src/libs/engine/src/sync/batcher.js +0 -0
- package/src/libs/engine/src/sync/causal-buffer.d.ts +0 -81
- package/src/libs/engine/src/sync/causal-buffer.js +0 -199
- package/src/libs/engine/src/sync/index.d.ts +0 -20
- package/src/libs/engine/src/sync/index.js +0 -41
- package/src/libs/engine/src/sync/protocol.d.ts +0 -74
- package/src/libs/engine/src/sync/protocol.js +0 -39
- package/src/libs/engine/src/sync/sync-adapter.d.ts +0 -243
- package/src/libs/engine/src/sync/sync-adapter.js +0 -524
- package/src/libs/engine/src/sync/transport.d.ts +0 -30
- package/src/libs/engine/src/sync/transport.js +0 -28
- package/src/libs/engine/src/sync/transports/broadcast-channel.d.ts +0 -39
- package/src/libs/engine/src/sync/transports/broadcast-channel.js +0 -117
- package/src/libs/engine/src/sync/transports/memory.d.ts +0 -38
- package/src/libs/engine/src/sync/transports/memory.js +0 -111
- package/src/libs/engine/src/sync/transports/unreliable.d.ts +0 -59
- package/src/libs/engine/src/sync/transports/unreliable.js +0 -153
- package/src/libs/engine/src/sync/transports/websocket.d.ts +0 -60
- package/src/libs/engine/src/sync/transports/websocket.js +0 -210
- package/src/libs/engine/src/sync/version-vector.d.ts +0 -47
- package/src/libs/engine/src/sync/version-vector.js +0 -218
- package/src/libs/engine/src/template-library/common-templates.d.ts +0 -46
- package/src/libs/engine/src/template-library/common-templates.js +0 -395
- package/src/libs/engine/src/template-library/data-viz-templates.d.ts +0 -52
- package/src/libs/engine/src/template-library/data-viz-templates.js +0 -471
- package/src/libs/engine/src/template-library/erd-templates.d.ts +0 -71
- package/src/libs/engine/src/template-library/erd-templates.js +0 -773
- package/src/libs/engine/src/template-library/index.d.ts +0 -141
- package/src/libs/engine/src/template-library/index.js +0 -271
- package/src/libs/engine/src/template-library/integration.d.ts +0 -80
- package/src/libs/engine/src/template-library/integration.js +0 -141
- package/src/libs/engine/src/template-library/workflow-templates.d.ts +0 -52
- package/src/libs/engine/src/template-library/workflow-templates.js +0 -438
- package/src/libs/engine/src/templates/NodeFactory.d.ts +0 -118
- package/src/libs/engine/src/templates/NodeFactory.js +0 -436
- package/src/libs/engine/src/templates/NodeTemplate.d.ts +0 -342
- package/src/libs/engine/src/templates/NodeTemplate.js +0 -13
- package/src/libs/engine/src/templates/TemplateLoader.d.ts +0 -46
- package/src/libs/engine/src/templates/TemplateLoader.js +0 -114
- package/src/libs/engine/src/templates/TemplateRegistry.d.ts +0 -70
- package/src/libs/engine/src/templates/TemplateRegistry.js +0 -128
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-business-rule-task.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-business-rule-task.template.js +0 -123
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-end-event.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-end-event.template.js +0 -123
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-error-event.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-error-event.template.js +0 -123
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-exclusive-gateway.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-exclusive-gateway.template.js +0 -124
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-inclusive-gateway.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-inclusive-gateway.template.js +0 -123
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-intermediate-event.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-intermediate-event.template.js +0 -124
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-manual-task.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-manual-task.template.js +0 -123
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-message-event.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-message-event.template.js +0 -122
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-parallel-gateway.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-parallel-gateway.template.js +0 -125
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-script-task.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-script-task.template.js +0 -123
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-service-task.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-service-task.template.js +0 -123
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-start-event.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-start-event.template.js +0 -123
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-task.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-task.template.js +0 -152
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-timer-event.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-timer-event.template.js +0 -123
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-user-task.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-user-task.template.js +0 -123
- package/src/libs/engine/src/templates/generated/bpmn/index.d.ts +0 -15
- package/src/libs/engine/src/templates/generated/bpmn/index.js +0 -34
- package/src/libs/engine/src/templates/generated/erd/erd-associative-entity.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/erd/erd-associative-entity.template.js +0 -152
- package/src/libs/engine/src/templates/generated/erd/erd-attribute.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/erd/erd-attribute.template.js +0 -122
- package/src/libs/engine/src/templates/generated/erd/erd-bridge-entity.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/erd/erd-bridge-entity.template.js +0 -151
- package/src/libs/engine/src/templates/generated/erd/erd-composite-attribute.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/erd/erd-composite-attribute.template.js +0 -122
- package/src/libs/engine/src/templates/generated/erd/erd-derived-attribute.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/erd/erd-derived-attribute.template.js +0 -122
- package/src/libs/engine/src/templates/generated/erd/erd-discriminator.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/erd/erd-discriminator.template.js +0 -123
- package/src/libs/engine/src/templates/generated/erd/erd-entity.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/erd/erd-entity.template.js +0 -149
- package/src/libs/engine/src/templates/generated/erd/erd-isa.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/erd/erd-isa.template.js +0 -123
- package/src/libs/engine/src/templates/generated/erd/erd-key-attribute.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/erd/erd-key-attribute.template.js +0 -122
- package/src/libs/engine/src/templates/generated/erd/erd-multivalued-attribute.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/erd/erd-multivalued-attribute.template.js +0 -122
- package/src/libs/engine/src/templates/generated/erd/erd-optional-attribute.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/erd/erd-optional-attribute.template.js +0 -122
- package/src/libs/engine/src/templates/generated/erd/erd-partial-key.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/erd/erd-partial-key.template.js +0 -123
- package/src/libs/engine/src/templates/generated/erd/erd-relationship.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/erd/erd-relationship.template.js +0 -121
- package/src/libs/engine/src/templates/generated/erd/erd-subtype.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/erd/erd-subtype.template.js +0 -123
- package/src/libs/engine/src/templates/generated/erd/erd-supertype.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/erd/erd-supertype.template.js +0 -123
- package/src/libs/engine/src/templates/generated/erd/erd-table.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/erd/erd-table.template.js +0 -123
- package/src/libs/engine/src/templates/generated/erd/erd-view.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/erd/erd-view.template.js +0 -123
- package/src/libs/engine/src/templates/generated/erd/erd-weak-entity.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/erd/erd-weak-entity.template.js +0 -149
- package/src/libs/engine/src/templates/generated/erd/erd-weak-relationship.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/erd/erd-weak-relationship.template.js +0 -122
- package/src/libs/engine/src/templates/generated/erd/index.d.ts +0 -19
- package/src/libs/engine/src/templates/generated/erd/index.js +0 -42
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-connector.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-connector.template.js +0 -123
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-data.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-data.template.js +0 -123
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-decision.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-decision.template.js +0 -123
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-delay.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-delay.template.js +0 -124
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-display.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-display.template.js +0 -124
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-document.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-document.template.js +0 -123
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-manual-input.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-manual-input.template.js +0 -123
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-manual-operation.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-manual-operation.template.js +0 -122
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-merge.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-merge.template.js +0 -122
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-or.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-or.template.js +0 -123
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-predefined-process.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-predefined-process.template.js +0 -123
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-preparation.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-preparation.template.js +0 -123
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-process.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-process.template.js +0 -122
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-stored-data.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-stored-data.template.js +0 -123
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-summing-junction.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-summing-junction.template.js +0 -124
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-terminal.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-terminal.template.js +0 -124
- package/src/libs/engine/src/templates/generated/flowchart/index.d.ts +0 -16
- package/src/libs/engine/src/templates/generated/flowchart/index.js +0 -36
- package/src/libs/engine/src/templates/generated/index.d.ts +0 -9
- package/src/libs/engine/src/templates/generated/index.js +0 -13
- package/src/libs/engine/src/templates/generated/register.d.ts +0 -23
- package/src/libs/engine/src/templates/generated/register.js +0 -31
- package/src/libs/engine/src/templates/generated/uml/index.d.ts +0 -30
- package/src/libs/engine/src/templates/generated/uml/index.js +0 -64
- package/src/libs/engine/src/templates/generated/uml/uml-abstract-class.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/uml/uml-abstract-class.template.js +0 -204
- package/src/libs/engine/src/templates/generated/uml/uml-activation.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/uml/uml-activation.template.js +0 -124
- package/src/libs/engine/src/templates/generated/uml/uml-activity-partition.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/uml/uml-activity-partition.template.js +0 -124
- package/src/libs/engine/src/templates/generated/uml/uml-activity.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/uml/uml-activity.template.js +0 -123
- package/src/libs/engine/src/templates/generated/uml/uml-actor.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/uml/uml-actor.template.js +0 -123
- package/src/libs/engine/src/templates/generated/uml/uml-class.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/uml/uml-class.template.js +0 -204
- package/src/libs/engine/src/templates/generated/uml/uml-collaboration.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/uml/uml-collaboration.template.js +0 -122
- package/src/libs/engine/src/templates/generated/uml/uml-component.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/uml/uml-component.template.js +0 -122
- package/src/libs/engine/src/templates/generated/uml/uml-datatype.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/uml/uml-datatype.template.js +0 -204
- package/src/libs/engine/src/templates/generated/uml/uml-decision.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/uml/uml-decision.template.js +0 -124
- package/src/libs/engine/src/templates/generated/uml/uml-enum.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/uml/uml-enum.template.js +0 -204
- package/src/libs/engine/src/templates/generated/uml/uml-final-node.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/uml/uml-final-node.template.js +0 -124
- package/src/libs/engine/src/templates/generated/uml/uml-final-state.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/uml/uml-final-state.template.js +0 -124
- package/src/libs/engine/src/templates/generated/uml/uml-fork.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/uml/uml-fork.template.js +0 -125
- package/src/libs/engine/src/templates/generated/uml/uml-initial-node.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/uml/uml-initial-node.template.js +0 -123
- package/src/libs/engine/src/templates/generated/uml/uml-initial-state.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/uml/uml-initial-state.template.js +0 -123
- package/src/libs/engine/src/templates/generated/uml/uml-interface.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/uml/uml-interface.template.js +0 -204
- package/src/libs/engine/src/templates/generated/uml/uml-join.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/uml/uml-join.template.js +0 -125
- package/src/libs/engine/src/templates/generated/uml/uml-lifeline.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/uml/uml-lifeline.template.js +0 -123
- package/src/libs/engine/src/templates/generated/uml/uml-merge.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/uml/uml-merge.template.js +0 -122
- package/src/libs/engine/src/templates/generated/uml/uml-node.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/uml/uml-node.template.js +0 -122
- package/src/libs/engine/src/templates/generated/uml/uml-note.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/uml/uml-note.template.js +0 -123
- package/src/libs/engine/src/templates/generated/uml/uml-object.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/uml/uml-object.template.js +0 -204
- package/src/libs/engine/src/templates/generated/uml/uml-package.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/uml/uml-package.template.js +0 -123
- package/src/libs/engine/src/templates/generated/uml/uml-part.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/uml/uml-part.template.js +0 -122
- package/src/libs/engine/src/templates/generated/uml/uml-port.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/uml/uml-port.template.js +0 -123
- package/src/libs/engine/src/templates/generated/uml/uml-primitive-type.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/uml/uml-primitive-type.template.js +0 -204
- package/src/libs/engine/src/templates/generated/uml/uml-signal.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/uml/uml-signal.template.js +0 -123
- package/src/libs/engine/src/templates/generated/uml/uml-state.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/uml/uml-state.template.js +0 -123
- package/src/libs/engine/src/templates/generated/uml/uml-use-case.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/uml/uml-use-case.template.js +0 -122
- package/src/libs/engine/src/templates/index.d.ts +0 -12
- package/src/libs/engine/src/templates/index.js +0 -27
- package/src/libs/engine/src/templates/stencils.d.ts +0 -45
- package/src/libs/engine/src/templates/stencils.js +0 -85
- package/src/libs/engine/src/types/domain/bpmn.d.ts +0 -25
- package/src/libs/engine/src/types/domain/bpmn.js +0 -313
- package/src/libs/engine/src/types/domain/erd.d.ts +0 -29
- package/src/libs/engine/src/types/domain/erd.js +0 -394
- package/src/libs/engine/src/types/domain/flowchart.d.ts +0 -26
- package/src/libs/engine/src/types/domain/flowchart.js +0 -434
- package/src/libs/engine/src/types/domain/index.d.ts +0 -4
- package/src/libs/engine/src/types/domain/index.js +0 -9
- package/src/libs/engine/src/types/domain/uml.d.ts +0 -40
- package/src/libs/engine/src/types/domain/uml.js +0 -758
- package/src/libs/engine/src/types/event.types.d.ts +0 -142
- package/src/libs/engine/src/types/event.types.js +0 -96
- package/src/libs/engine/src/types/geometry.types.d.ts +0 -84
- package/src/libs/engine/src/types/geometry.types.js +0 -16
- package/src/libs/engine/src/types/index.d.ts +0 -7
- package/src/libs/engine/src/types/index.js +0 -14
- package/src/libs/engine/src/types/layout.types.d.ts +0 -148
- package/src/libs/engine/src/types/layout.types.js +0 -28
- package/src/libs/engine/src/types/model.types.d.ts +0 -378
- package/src/libs/engine/src/types/model.types.js +0 -4
- package/src/libs/engine/src/types/performance.types.d.ts +0 -109
- package/src/libs/engine/src/types/performance.types.js +0 -122
- package/src/libs/engine/src/types/plugin.types.d.ts +0 -30
- package/src/libs/engine/src/types/plugin.types.js +0 -4
- package/src/libs/engine/src/utils/deep-clone.d.ts +0 -9
- package/src/libs/engine/src/utils/deep-clone.js +0 -123
- package/src/libs/engine/src/utils/geometry.d.ts +0 -45
- package/src/libs/engine/src/utils/geometry.js +0 -241
- package/src/libs/engine/src/utils/id.d.ts +0 -22
- package/src/libs/engine/src/utils/id.js +0 -44
- package/src/libs/engine/src/utils/index.d.ts +0 -3
- package/src/libs/engine/src/utils/index.js +0 -8
- package/src/libs/engine/src/utils/transform.d.ts +0 -84
- package/src/libs/engine/src/utils/transform.js +0 -200
- package/src/libs/engine/src/validation/ConnectionGroupValidator.d.ts +0 -22
- package/src/libs/engine/src/validation/ConnectionGroupValidator.js +0 -56
- package/src/libs/engine/src/validation/TypeRegistry.d.ts +0 -179
- package/src/libs/engine/src/validation/TypeRegistry.js +0 -358
- package/src/libs/engine/src/validation/ValidationEngine.d.ts +0 -79
- package/src/libs/engine/src/validation/ValidationEngine.js +0 -1150
- package/src/libs/engine/src/validation/index.d.ts +0 -3
- package/src/libs/engine/src/validation/index.js +0 -8
- package/src/libs/renderer/src/a11y/diagram-outline.d.ts +0 -93
- package/src/libs/renderer/src/a11y/diagram-outline.js +0 -0
- package/src/libs/renderer/src/a11y/focus-containment.d.ts +0 -90
- package/src/libs/renderer/src/a11y/focus-containment.js +0 -173
- package/src/libs/renderer/src/a11y/graph-topology.d.ts +0 -70
- package/src/libs/renderer/src/a11y/graph-topology.js +0 -0
- package/src/libs/renderer/src/a11y/index.d.ts +0 -26
- package/src/libs/renderer/src/a11y/index.js +0 -30
- package/src/libs/renderer/src/a11y/live-region.d.ts +0 -83
- package/src/libs/renderer/src/a11y/live-region.js +0 -170
- package/src/libs/renderer/src/a11y/outline-view.d.ts +0 -62
- package/src/libs/renderer/src/a11y/outline-view.js +0 -158
- package/src/libs/renderer/src/a11y/reduced-motion.d.ts +0 -48
- package/src/libs/renderer/src/a11y/reduced-motion.js +0 -223
- package/src/libs/renderer/src/a11y/semantics.d.ts +0 -76
- package/src/libs/renderer/src/a11y/semantics.js +0 -229
- package/src/libs/renderer/src/canvas/canvas-context.d.ts +0 -167
- package/src/libs/renderer/src/canvas/canvas-context.js +0 -267
- package/src/libs/renderer/src/canvas/canvas-renderer.d.ts +0 -194
- package/src/libs/renderer/src/canvas/canvas-renderer.js +0 -600
- package/src/libs/renderer/src/canvas/dirty-region.d.ts +0 -56
- package/src/libs/renderer/src/canvas/dirty-region.js +0 -171
- package/src/libs/renderer/src/canvas/index.d.ts +0 -16
- package/src/libs/renderer/src/canvas/index.js +0 -79
- package/src/libs/renderer/src/canvas/path-geometry.d.ts +0 -112
- package/src/libs/renderer/src/canvas/path-geometry.js +0 -673
- package/src/libs/renderer/src/canvas/render-backend.d.ts +0 -133
- package/src/libs/renderer/src/canvas/render-backend.js +0 -339
- package/src/libs/renderer/src/canvas/style-resolution.d.ts +0 -101
- package/src/libs/renderer/src/canvas/style-resolution.js +0 -466
- package/src/libs/renderer/src/canvas/tier-policy.d.ts +0 -33
- package/src/libs/renderer/src/canvas/tier-policy.js +0 -89
- package/src/libs/renderer/src/canvas/vnode-painter.d.ts +0 -154
- package/src/libs/renderer/src/canvas/vnode-painter.js +0 -649
- package/src/libs/renderer/src/comments/comment-overlay.d.ts +0 -56
- package/src/libs/renderer/src/comments/comment-overlay.js +0 -127
- package/src/libs/renderer/src/comments/comment-panel.d.ts +0 -45
- package/src/libs/renderer/src/comments/comment-panel.js +0 -287
- package/src/libs/renderer/src/comments/comment-pins.d.ts +0 -34
- package/src/libs/renderer/src/comments/comment-pins.js +0 -227
- package/src/libs/renderer/src/comments/index.d.ts +0 -3
- package/src/libs/renderer/src/comments/index.js +0 -17
- package/src/libs/renderer/src/export/assets.d.ts +0 -96
- package/src/libs/renderer/src/export/assets.js +0 -350
- package/src/libs/renderer/src/export/batch.d.ts +0 -49
- package/src/libs/renderer/src/export/batch.js +0 -95
- package/src/libs/renderer/src/export/bounds.d.ts +0 -81
- package/src/libs/renderer/src/export/bounds.js +0 -367
- package/src/libs/renderer/src/export/capture-host.d.ts +0 -39
- package/src/libs/renderer/src/export/capture-host.js +0 -1259
- package/src/libs/renderer/src/export/custom-nodes.d.ts +0 -88
- package/src/libs/renderer/src/export/custom-nodes.js +0 -237
- package/src/libs/renderer/src/export/index.d.ts +0 -14
- package/src/libs/renderer/src/export/index.js +0 -30
- package/src/libs/renderer/src/export/node-raster.d.ts +0 -60
- package/src/libs/renderer/src/export/node-raster.js +0 -161
- package/src/libs/renderer/src/export/pagination.d.ts +0 -116
- package/src/libs/renderer/src/export/pagination.js +0 -245
- package/src/libs/renderer/src/export/pdf/flate.d.ts +0 -13
- package/src/libs/renderer/src/export/pdf/flate.js +0 -287
- package/src/libs/renderer/src/export/pdf/index.d.ts +0 -4
- package/src/libs/renderer/src/export/pdf/index.js +0 -15
- package/src/libs/renderer/src/export/pdf/pdf-export.d.ts +0 -64
- package/src/libs/renderer/src/export/pdf/pdf-export.js +0 -1076
- package/src/libs/renderer/src/export/pdf/pdf-path.d.ts +0 -17
- package/src/libs/renderer/src/export/pdf/pdf-path.js +0 -85
- package/src/libs/renderer/src/export/pdf/pdf-primitives.d.ts +0 -115
- package/src/libs/renderer/src/export/pdf/pdf-primitives.js +0 -338
- package/src/libs/renderer/src/export/pdf/png.d.ts +0 -25
- package/src/libs/renderer/src/export/pdf/png.js +0 -596
- package/src/libs/renderer/src/export/raster.d.ts +0 -42
- package/src/libs/renderer/src/export/raster.js +0 -126
- package/src/libs/renderer/src/export/round-trip.d.ts +0 -83
- package/src/libs/renderer/src/export/round-trip.js +0 -432
- package/src/libs/renderer/src/export/scope.d.ts +0 -16
- package/src/libs/renderer/src/export/scope.js +0 -69
- package/src/libs/renderer/src/export/style-flattener.d.ts +0 -23
- package/src/libs/renderer/src/export/style-flattener.js +0 -144
- package/src/libs/renderer/src/export/svg-export.d.ts +0 -123
- package/src/libs/renderer/src/export/svg-export.js +0 -178
- package/src/libs/renderer/src/export/vnode-serializer.d.ts +0 -75
- package/src/libs/renderer/src/export/vnode-serializer.js +0 -344
- package/src/libs/renderer/src/ext/capabilities.d.ts +0 -178
- package/src/libs/renderer/src/ext/capabilities.js +0 -22
- package/src/libs/renderer/src/ext/capability-factory.d.ts +0 -44
- package/src/libs/renderer/src/ext/capability-factory.js +0 -194
- package/src/libs/renderer/src/ext/components/attach.d.ts +0 -66
- package/src/libs/renderer/src/ext/components/attach.js +0 -112
- package/src/libs/renderer/src/ext/components/background.d.ts +0 -84
- package/src/libs/renderer/src/ext/components/background.js +0 -202
- package/src/libs/renderer/src/ext/components/controls.d.ts +0 -49
- package/src/libs/renderer/src/ext/components/controls.js +0 -144
- package/src/libs/renderer/src/ext/components/minimap.d.ts +0 -78
- package/src/libs/renderer/src/ext/components/minimap.js +0 -326
- package/src/libs/renderer/src/ext/diagram-registry.d.ts +0 -109
- package/src/libs/renderer/src/ext/diagram-registry.js +0 -303
- package/src/libs/renderer/src/ext/disposable.d.ts +0 -51
- package/src/libs/renderer/src/ext/disposable.js +0 -104
- package/src/libs/renderer/src/ext/extension-host.d.ts +0 -144
- package/src/libs/renderer/src/ext/extension-host.js +0 -272
- package/src/libs/renderer/src/ext/index.d.ts +0 -62
- package/src/libs/renderer/src/ext/index.js +0 -91
- package/src/libs/renderer/src/ext/link-pipeline.d.ts +0 -195
- package/src/libs/renderer/src/ext/link-pipeline.js +0 -431
- package/src/libs/renderer/src/ext/manifest.d.ts +0 -73
- package/src/libs/renderer/src/ext/manifest.js +0 -149
- package/src/libs/renderer/src/ext/node-component.d.ts +0 -114
- package/src/libs/renderer/src/ext/node-component.js +0 -290
- package/src/libs/renderer/src/ext/plugins-loader.d.ts +0 -1
- package/src/libs/renderer/src/ext/plugins-loader.js +0 -18
- package/src/libs/renderer/src/ext/portal.d.ts +0 -129
- package/src/libs/renderer/src/ext/portal.js +0 -267
- package/src/libs/renderer/src/ext/public-api.d.ts +0 -101
- package/src/libs/renderer/src/ext/public-api.js +0 -201
- package/src/libs/renderer/src/ext/registry-scope.d.ts +0 -93
- package/src/libs/renderer/src/ext/registry-scope.js +0 -142
- package/src/libs/renderer/src/ext/tools.d.ts +0 -164
- package/src/libs/renderer/src/ext/tools.js +0 -170
- package/src/libs/renderer/src/index.d.ts +0 -34
- package/src/libs/renderer/src/index.js +0 -108
- package/src/libs/renderer/src/instance/create-diagram.d.ts +0 -385
- package/src/libs/renderer/src/instance/create-diagram.js +0 -1150
- package/src/libs/renderer/src/instance/diagram-instance.d.ts +0 -48
- package/src/libs/renderer/src/instance/diagram-instance.js +0 -51
- package/src/libs/renderer/src/instance/dom-event-binder.d.ts +0 -394
- package/src/libs/renderer/src/instance/dom-event-binder.js +0 -2104
- package/src/libs/renderer/src/instance/index.d.ts +0 -5
- package/src/libs/renderer/src/instance/index.js +0 -13
- package/src/libs/renderer/src/instance/layers.d.ts +0 -31
- package/src/libs/renderer/src/instance/layers.js +0 -43
- package/src/libs/renderer/src/instance/model-input.d.ts +0 -229
- package/src/libs/renderer/src/instance/model-input.js +0 -325
- package/src/libs/renderer/src/instance/render-scheduler.d.ts +0 -79
- package/src/libs/renderer/src/instance/render-scheduler.js +0 -96
- package/src/libs/renderer/src/instance/wheel-scroll-yield.d.ts +0 -38
- package/src/libs/renderer/src/instance/wheel-scroll-yield.js +0 -118
- package/src/libs/renderer/src/interaction/ControlPointEditor.d.ts +0 -160
- package/src/libs/renderer/src/interaction/ControlPointEditor.js +0 -360
- package/src/libs/renderer/src/interaction/WaypointEditor.d.ts +0 -133
- package/src/libs/renderer/src/interaction/WaypointEditor.js +0 -263
- package/src/libs/renderer/src/interaction/highlighters.d.ts +0 -88
- package/src/libs/renderer/src/interaction/highlighters.js +0 -212
- package/src/libs/renderer/src/interaction/in-place-editor.d.ts +0 -63
- package/src/libs/renderer/src/interaction/in-place-editor.js +0 -141
- package/src/libs/renderer/src/interaction/index.d.ts +0 -11
- package/src/libs/renderer/src/interaction/index.js +0 -29
- package/src/libs/renderer/src/interaction/ink-overlay.d.ts +0 -53
- package/src/libs/renderer/src/interaction/ink-overlay.js +0 -154
- package/src/libs/renderer/src/interaction/interaction-controller.d.ts +0 -555
- package/src/libs/renderer/src/interaction/interaction-controller.js +0 -1733
- package/src/libs/renderer/src/interaction/keyboard-navigation.d.ts +0 -223
- package/src/libs/renderer/src/interaction/keyboard-navigation.js +0 -885
- package/src/libs/renderer/src/interaction/selection-tools.d.ts +0 -343
- package/src/libs/renderer/src/interaction/selection-tools.js +0 -918
- package/src/libs/renderer/src/interaction/snapping.d.ts +0 -210
- package/src/libs/renderer/src/interaction/snapping.js +0 -569
- package/src/libs/renderer/src/interaction/touch-gestures.d.ts +0 -160
- package/src/libs/renderer/src/interaction/touch-gestures.js +0 -549
- package/src/libs/renderer/src/interaction/whiteboard-tools.d.ts +0 -171
- package/src/libs/renderer/src/interaction/whiteboard-tools.js +0 -476
- package/src/libs/renderer/src/lazy/host-culling.d.ts +0 -116
- package/src/libs/renderer/src/lazy/host-culling.js +0 -135
- package/src/libs/renderer/src/lazy/index.d.ts +0 -7
- package/src/libs/renderer/src/lazy/index.js +0 -28
- package/src/libs/renderer/src/lazy/progressive-mounter.d.ts +0 -80
- package/src/libs/renderer/src/lazy/progressive-mounter.js +0 -264
- package/src/libs/renderer/src/lazy/types.d.ts +0 -43
- package/src/libs/renderer/src/lazy/types.js +0 -14
- package/src/libs/renderer/src/lazy/view-lifecycle.d.ts +0 -97
- package/src/libs/renderer/src/lazy/view-lifecycle.js +0 -221
- package/src/libs/renderer/src/perf/index.d.ts +0 -2
- package/src/libs/renderer/src/perf/index.js +0 -7
- package/src/libs/renderer/src/perf/perf-hud.d.ts +0 -46
- package/src/libs/renderer/src/perf/perf-hud.js +0 -105
- package/src/libs/renderer/src/perf/quality-governor.d.ts +0 -77
- package/src/libs/renderer/src/perf/quality-governor.js +0 -154
- package/src/libs/renderer/src/platform/index.d.ts +0 -1
- package/src/libs/renderer/src/platform/index.js +0 -5
- package/src/libs/renderer/src/platform/platform.d.ts +0 -34
- package/src/libs/renderer/src/platform/platform.js +0 -64
- package/src/libs/renderer/src/presence/bind-presence.d.ts +0 -51
- package/src/libs/renderer/src/presence/bind-presence.js +0 -144
- package/src/libs/renderer/src/presence/index.d.ts +0 -4
- package/src/libs/renderer/src/presence/index.js +0 -18
- package/src/libs/renderer/src/presence/presence-overlay.d.ts +0 -121
- package/src/libs/renderer/src/presence/presence-overlay.js +0 -465
- package/src/libs/renderer/src/presentation/index.d.ts +0 -3
- package/src/libs/renderer/src/presentation/index.js +0 -14
- package/src/libs/renderer/src/presentation/presentation.d.ts +0 -94
- package/src/libs/renderer/src/presentation/presentation.js +0 -158
- package/src/libs/renderer/src/presentation/viewport-channel.d.ts +0 -78
- package/src/libs/renderer/src/presentation/viewport-channel.js +0 -86
- package/src/libs/renderer/src/services/animation-lifecycle.d.ts +0 -153
- package/src/libs/renderer/src/services/animation-lifecycle.js +0 -326
- package/src/libs/renderer/src/services/animation-performance.service.d.ts +0 -191
- package/src/libs/renderer/src/services/animation-performance.service.js +0 -371
- package/src/libs/renderer/src/services/animation-sequencer.d.ts +0 -226
- package/src/libs/renderer/src/services/animation-sequencer.js +0 -379
- package/src/libs/renderer/src/services/animation.service.d.ts +0 -182
- package/src/libs/renderer/src/services/animation.service.js +0 -858
- package/src/libs/renderer/src/services/custom-animation-registry.d.ts +0 -182
- package/src/libs/renderer/src/services/custom-animation-registry.js +0 -361
- package/src/libs/renderer/src/ssr/index.d.ts +0 -1
- package/src/libs/renderer/src/ssr/index.js +0 -6
- package/src/libs/renderer/src/ssr/render-to-static.d.ts +0 -91
- package/src/libs/renderer/src/ssr/render-to-static.js +0 -81
- package/src/libs/renderer/src/svg/ArrowRenderer.d.ts +0 -159
- package/src/libs/renderer/src/svg/ArrowRenderer.js +0 -723
- package/src/libs/renderer/src/svg/JumpPointDetector.d.ts +0 -79
- package/src/libs/renderer/src/svg/JumpPointDetector.js +0 -176
- package/src/libs/renderer/src/svg/JumpPointRenderer.d.ts +0 -59
- package/src/libs/renderer/src/svg/JumpPointRenderer.js +0 -309
- package/src/libs/renderer/src/svg/LabelRenderer.d.ts +0 -76
- package/src/libs/renderer/src/svg/LabelRenderer.js +0 -273
- package/src/libs/renderer/src/svg/auto-size.d.ts +0 -76
- package/src/libs/renderer/src/svg/auto-size.js +0 -142
- package/src/libs/renderer/src/svg/channel-nudging.d.ts +0 -34
- package/src/libs/renderer/src/svg/channel-nudging.js +0 -226
- package/src/libs/renderer/src/svg/edge-optimizer.d.ts +0 -228
- package/src/libs/renderer/src/svg/edge-optimizer.js +0 -606
- package/src/libs/renderer/src/svg/edge-templates.d.ts +0 -152
- package/src/libs/renderer/src/svg/edge-templates.js +0 -233
- package/src/libs/renderer/src/svg/html-node.d.ts +0 -50
- package/src/libs/renderer/src/svg/html-node.js +0 -214
- package/src/libs/renderer/src/svg/index.d.ts +0 -25
- package/src/libs/renderer/src/svg/index.js +0 -32
- package/src/libs/renderer/src/svg/link-fanout.d.ts +0 -127
- package/src/libs/renderer/src/svg/link-fanout.js +0 -333
- package/src/libs/renderer/src/svg/link-hit-test.d.ts +0 -142
- package/src/libs/renderer/src/svg/link-hit-test.js +0 -182
- package/src/libs/renderer/src/svg/motion-tracker.d.ts +0 -18
- package/src/libs/renderer/src/svg/motion-tracker.js +0 -71
- package/src/libs/renderer/src/svg/node-sizing.d.ts +0 -51
- package/src/libs/renderer/src/svg/node-sizing.js +0 -65
- package/src/libs/renderer/src/svg/node-toolbar.d.ts +0 -30
- package/src/libs/renderer/src/svg/node-toolbar.js +0 -45
- package/src/libs/renderer/src/svg/notation-shapes.d.ts +0 -2
- package/src/libs/renderer/src/svg/notation-shapes.js +0 -126
- package/src/libs/renderer/src/svg/paint-servers.d.ts +0 -49
- package/src/libs/renderer/src/svg/paint-servers.js +0 -225
- package/src/libs/renderer/src/svg/panel.d.ts +0 -115
- package/src/libs/renderer/src/svg/panel.js +0 -353
- package/src/libs/renderer/src/svg/path-outline.d.ts +0 -35
- package/src/libs/renderer/src/svg/path-outline.js +0 -134
- package/src/libs/renderer/src/svg/port-glyph.d.ts +0 -27
- package/src/libs/renderer/src/svg/port-glyph.js +0 -97
- package/src/libs/renderer/src/svg/port-label.d.ts +0 -74
- package/src/libs/renderer/src/svg/port-label.js +0 -201
- package/src/libs/renderer/src/svg/port-layout.d.ts +0 -50
- package/src/libs/renderer/src/svg/port-layout.js +0 -212
- package/src/libs/renderer/src/svg/port-positioning.d.ts +0 -33
- package/src/libs/renderer/src/svg/port-positioning.js +0 -101
- package/src/libs/renderer/src/svg/port-spots.d.ts +0 -69
- package/src/libs/renderer/src/svg/port-spots.js +0 -154
- package/src/libs/renderer/src/svg/route-memo.d.ts +0 -63
- package/src/libs/renderer/src/svg/route-memo.js +0 -206
- package/src/libs/renderer/src/svg/route-solver-bridge.d.ts +0 -48
- package/src/libs/renderer/src/svg/route-solver-bridge.js +0 -151
- package/src/libs/renderer/src/svg/shape-registry.d.ts +0 -189
- package/src/libs/renderer/src/svg/shape-registry.js +0 -1104
- package/src/libs/renderer/src/svg/stroke-layer.d.ts +0 -36
- package/src/libs/renderer/src/svg/stroke-layer.js +0 -183
- package/src/libs/renderer/src/svg/svg-renderer.d.ts +0 -1737
- package/src/libs/renderer/src/svg/svg-renderer.js +0 -7772
- package/src/libs/renderer/src/svg/text-block.d.ts +0 -54
- package/src/libs/renderer/src/svg/text-block.js +0 -171
- package/src/libs/renderer/src/themes/color-mode.d.ts +0 -81
- package/src/libs/renderer/src/themes/color-mode.js +0 -158
- package/src/libs/renderer/src/themes/contrast.d.ts +0 -67
- package/src/libs/renderer/src/themes/contrast.js +0 -215
- package/src/libs/renderer/src/themes/default-dark-theme.d.ts +0 -6
- package/src/libs/renderer/src/themes/default-dark-theme.js +0 -126
- package/src/libs/renderer/src/themes/default-light-theme.d.ts +0 -6
- package/src/libs/renderer/src/themes/default-light-theme.js +0 -168
- package/src/libs/renderer/src/themes/default-theme-set.d.ts +0 -10
- package/src/libs/renderer/src/themes/default-theme-set.js +0 -25
- package/src/libs/renderer/src/themes/high-contrast-theme.d.ts +0 -5
- package/src/libs/renderer/src/themes/high-contrast-theme.js +0 -170
- package/src/libs/renderer/src/themes/index.d.ts +0 -22
- package/src/libs/renderer/src/themes/index.js +0 -93
- package/src/libs/renderer/src/themes/style-cascade.d.ts +0 -23
- package/src/libs/renderer/src/themes/style-cascade.js +0 -194
- package/src/libs/renderer/src/themes/style-registry.d.ts +0 -40
- package/src/libs/renderer/src/themes/style-registry.js +0 -129
- package/src/libs/renderer/src/themes/theme-a11y.d.ts +0 -65
- package/src/libs/renderer/src/themes/theme-a11y.js +0 -256
- package/src/libs/renderer/src/themes/theme-css.d.ts +0 -30
- package/src/libs/renderer/src/themes/theme-css.js +0 -304
- package/src/libs/renderer/src/themes/theme-ref.d.ts +0 -63
- package/src/libs/renderer/src/themes/theme-ref.js +0 -206
- package/src/libs/renderer/src/themes/theme-vars.d.ts +0 -49
- package/src/libs/renderer/src/themes/theme-vars.js +0 -112
- package/src/libs/renderer/src/themes/token-bridge.d.ts +0 -62
- package/src/libs/renderer/src/themes/token-bridge.js +0 -354
- package/src/libs/renderer/src/types/geometry.types.d.ts +0 -10
- package/src/libs/renderer/src/types/geometry.types.js +0 -3
- package/src/libs/renderer/src/types/index.d.ts +0 -5
- package/src/libs/renderer/src/types/index.js +0 -14
- package/src/libs/renderer/src/types/property-schema/conditions.d.ts +0 -96
- package/src/libs/renderer/src/types/property-schema/conditions.js +0 -8
- package/src/libs/renderer/src/types/property-schema/editor-types.d.ts +0 -310
- package/src/libs/renderer/src/types/property-schema/editor-types.js +0 -8
- package/src/libs/renderer/src/types/property-schema/groups.d.ts +0 -58
- package/src/libs/renderer/src/types/property-schema/groups.js +0 -8
- package/src/libs/renderer/src/types/property-schema/index.d.ts +0 -101
- package/src/libs/renderer/src/types/property-schema/index.js +0 -98
- package/src/libs/renderer/src/types/property-schema/property-definition.d.ts +0 -117
- package/src/libs/renderer/src/types/property-schema/property-definition.js +0 -8
- package/src/libs/renderer/src/types/property-schema/schema.d.ts +0 -108
- package/src/libs/renderer/src/types/property-schema/schema.js +0 -8
- package/src/libs/renderer/src/types/property-schema/validation.d.ts +0 -181
- package/src/libs/renderer/src/types/property-schema/validation.js +0 -8
- package/src/libs/renderer/src/types/renderer.interface.d.ts +0 -623
- package/src/libs/renderer/src/types/renderer.interface.js +0 -3
- package/src/libs/renderer/src/types/theme.types.d.ts +0 -305
- package/src/libs/renderer/src/types/theme.types.js +0 -3
- package/src/libs/renderer/src/types/vnode.types.d.ts +0 -139
- package/src/libs/renderer/src/types/vnode.types.js +0 -3
- package/src/libs/renderer/src/utils/animation-presets.d.ts +0 -310
- package/src/libs/renderer/src/utils/animation-presets.js +0 -406
- package/src/libs/renderer/src/utils/animation-priority.d.ts +0 -118
- package/src/libs/renderer/src/utils/animation-priority.js +0 -258
- package/src/libs/renderer/src/utils/animation-utils.d.ts +0 -159
- package/src/libs/renderer/src/utils/animation-utils.js +0 -323
- package/src/libs/renderer/src/utils/lru-cache.d.ts +0 -34
- package/src/libs/renderer/src/utils/lru-cache.js +0 -72
- package/src/libs/renderer/src/viewport/index.d.ts +0 -1
- package/src/libs/renderer/src/viewport/index.js +0 -6
- package/src/libs/renderer/src/viewport/viewport-controller.d.ts +0 -198
- package/src/libs/renderer/src/viewport/viewport-controller.js +0 -315
- package/src/libs/renderer/src/vnode/container-id-generator.d.ts +0 -94
- package/src/libs/renderer/src/vnode/container-id-generator.js +0 -110
- package/src/libs/renderer/src/vnode/foreign-object.d.ts +0 -157
- package/src/libs/renderer/src/vnode/foreign-object.js +0 -167
- package/src/libs/renderer/src/vnode/index.d.ts +0 -56
- package/src/libs/renderer/src/vnode/index.js +0 -78
- package/src/libs/renderer/src/vnode/patch.d.ts +0 -189
- package/src/libs/renderer/src/vnode/patch.js +0 -564
|
@@ -1,1092 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// OrthogonalRouter - Right-angle routing with obstacle avoidance
|
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.OrthogonalRouter = void 0;
|
|
5
|
-
const ObstacleIndex_1 = require("../ObstacleIndex");
|
|
6
|
-
/**
|
|
7
|
-
* Wave 8 — Card 6. Below this many obstacles a linear scan beats a hash lookup,
|
|
8
|
-
* and building an index would cost more than it saves. Above it, the scan is
|
|
9
|
-
* what made a one-node drag take 5.5 seconds.
|
|
10
|
-
*/
|
|
11
|
-
const INDEX_THRESHOLD = 24;
|
|
12
|
-
/**
|
|
13
|
-
* OrthogonalRouter creates paths with only 90-degree angles
|
|
14
|
-
* Supports obstacle avoidance using A* on a grid
|
|
15
|
-
*/
|
|
16
|
-
class OrthogonalRouter {
|
|
17
|
-
/**
|
|
18
|
-
* The index for this obstacle set: the caller's if it prepared one (the
|
|
19
|
-
* engine does), otherwise ours. Returns null for a set small enough that
|
|
20
|
-
* scanning it is genuinely cheaper.
|
|
21
|
-
*/
|
|
22
|
-
static indexFor(obstacles, provided) {
|
|
23
|
-
if (provided)
|
|
24
|
-
return provided;
|
|
25
|
-
if (obstacles.length < INDEX_THRESHOLD)
|
|
26
|
-
return null;
|
|
27
|
-
let idx = OrthogonalRouter.indexCache.get(obstacles);
|
|
28
|
-
if (!idx) {
|
|
29
|
-
idx = new ObstacleIndex_1.ObstacleIndex(obstacles);
|
|
30
|
-
OrthogonalRouter.indexCache.set(obstacles, idx);
|
|
31
|
-
}
|
|
32
|
-
return idx;
|
|
33
|
-
}
|
|
34
|
-
getName() {
|
|
35
|
-
return 'orthogonal';
|
|
36
|
-
}
|
|
37
|
-
route(request) {
|
|
38
|
-
var _a, _b;
|
|
39
|
-
const { start, end, obstacles = [], options = {}, sourceDirection, targetDirection } = request;
|
|
40
|
-
const index = OrthogonalRouter.indexFor(obstacles, request.obstacleIndex);
|
|
41
|
-
// Handle same start and end point
|
|
42
|
-
if (start.x === end.x && start.y === end.y) {
|
|
43
|
-
return {
|
|
44
|
-
points: [{ x: start.x, y: start.y }],
|
|
45
|
-
totalLength: 0,
|
|
46
|
-
bendCount: 0,
|
|
47
|
-
cost: 0,
|
|
48
|
-
segments: [],
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
const bendCost = (_b = (_a = options.costs) === null || _a === void 0 ? void 0 : _a.bends) !== null && _b !== void 0 ? _b : 10;
|
|
52
|
-
// Card 1: an explicit jetty upgrades the stub contract from best-effort to
|
|
53
|
-
// GUARANTEED — and lets floating (direction-less) anchors derive exit sides
|
|
54
|
-
// from the geometry instead of taking the stub-less midline fallback.
|
|
55
|
-
const jetty = options.jetty;
|
|
56
|
-
let srcDir = sourceDirection;
|
|
57
|
-
let tgtDir = targetDirection;
|
|
58
|
-
if (jetty !== undefined) {
|
|
59
|
-
if (!srcDir)
|
|
60
|
-
srcDir = OrthogonalRouter.deriveExitSide(start, end);
|
|
61
|
-
if (!tgtDir)
|
|
62
|
-
tgtDir = OrthogonalRouter.deriveExitSide(end, start);
|
|
63
|
-
}
|
|
64
|
-
// The jetty guarantee holds on WHICHEVER branch produced the route: simple,
|
|
65
|
-
// A*-avoidance, or the collision fallback.
|
|
66
|
-
const withJetty = (path) => jetty !== undefined ? this.enforceJetty(path, start, end, srcDir, tgtDir, jetty, bendCost) : path;
|
|
67
|
-
// SMART ROUTING: Always calculate a simple orthogonal path first
|
|
68
|
-
const simplePath = this.simpleOrthogonalRoute(start, end, options.gridSize, bendCost, srcDir, tgtDir, jetty);
|
|
69
|
-
// If no obstacles provided, return the simple path
|
|
70
|
-
if (obstacles.length === 0) {
|
|
71
|
-
return withJetty(simplePath);
|
|
72
|
-
}
|
|
73
|
-
// Check if the simple path intersects any obstacles
|
|
74
|
-
const hasCollision = this.pathIntersectsObstacles(simplePath.points, obstacles, index);
|
|
75
|
-
if (!hasCollision) {
|
|
76
|
-
// Path is clear, use the simple routing
|
|
77
|
-
return withJetty(simplePath);
|
|
78
|
-
}
|
|
79
|
-
// Path has collisions - use A* pathfinding for obstacle avoidance
|
|
80
|
-
if (options.avoidObstacles) {
|
|
81
|
-
const avoidancePath = this.avoidObstaclesRoute(start, end, obstacles, options, srcDir, tgtDir, index);
|
|
82
|
-
if (avoidancePath) {
|
|
83
|
-
return withJetty(avoidancePath);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
// Fallback: return simple path even with collisions
|
|
87
|
-
// (visual indicator that routing needs manual waypoints)
|
|
88
|
-
return withJetty(simplePath);
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Card 1: the exit side a FLOATING anchor should use, derived from where the
|
|
92
|
-
* other endpoint is — dominant axis first, ties break horizontal (matching
|
|
93
|
-
* the midline fallback's own axis choice, so the derived route agrees with
|
|
94
|
-
* what the undirected route would have preferred).
|
|
95
|
-
*/
|
|
96
|
-
static deriveExitSide(from, toward) {
|
|
97
|
-
const dx = toward.x - from.x;
|
|
98
|
-
const dy = toward.y - from.y;
|
|
99
|
-
if (Math.abs(dx) >= Math.abs(dy))
|
|
100
|
-
return dx >= 0 ? 'right' : 'left';
|
|
101
|
-
return dy >= 0 ? 'bottom' : 'top';
|
|
102
|
-
}
|
|
103
|
-
/**
|
|
104
|
-
* Card 1: guarantee the route leaves/enters PERPENDICULAR to the port side
|
|
105
|
-
* for at least `jetty` px before the first/after the last bend.
|
|
106
|
-
*
|
|
107
|
-
* The simple route's gap logic shrinks stubs on short links (its gapOffset
|
|
108
|
-
* clamp), and the A* grid can snap the first elbow closer than the stub — so
|
|
109
|
-
* the guarantee is enforced as a post-pass: if the first segment along the
|
|
110
|
-
* port direction is shorter than the jetty (or points the wrong way), a stub
|
|
111
|
-
* point is inserted at start + dir·jetty and the joint is re-orthogonalised
|
|
112
|
-
* by routing the old interior through the stub's far ordinate. Same for the
|
|
113
|
-
* target end, mirrored.
|
|
114
|
-
*/
|
|
115
|
-
enforceJetty(path, start, end, sourceDirection, targetDirection, jetty, bendCost) {
|
|
116
|
-
if (jetty <= 0 || path.points.length < 2)
|
|
117
|
-
return path;
|
|
118
|
-
const fixEnd = (pts, anchor, dir) => {
|
|
119
|
-
if (!dir || pts.length < 2)
|
|
120
|
-
return pts;
|
|
121
|
-
const v = dir === 'left' ? { x: -1, y: 0 }
|
|
122
|
-
: dir === 'right' ? { x: 1, y: 0 }
|
|
123
|
-
: dir === 'top' ? { x: 0, y: -1 }
|
|
124
|
-
: { x: 0, y: 1 };
|
|
125
|
-
const stub = { x: anchor.x + v.x * jetty, y: anchor.y + v.y * jetty };
|
|
126
|
-
const first = pts[0];
|
|
127
|
-
const second = pts[1];
|
|
128
|
-
// Does the existing first segment already satisfy the contract?
|
|
129
|
-
const seg = { x: second.x - first.x, y: second.y - first.y };
|
|
130
|
-
const along = seg.x * v.x + seg.y * v.y; // signed length along the port normal
|
|
131
|
-
const perpendicular = v.x !== 0 ? seg.y === 0 : seg.x === 0;
|
|
132
|
-
if (perpendicular && along >= jetty)
|
|
133
|
-
return pts;
|
|
134
|
-
// Insert the stub, then re-orthogonalise the joint. Points of the old
|
|
135
|
-
// route lying ON the anchor→stub segment are SUBSUMED by the stub, not
|
|
136
|
-
// detoured around — otherwise a collinear-but-short stub would rebuild as
|
|
137
|
-
// an out-and-back run on the same line, which the collinear merge then
|
|
138
|
-
// collapses straight back to the too-short original (the exact failure
|
|
139
|
-
// mode the obstacle-avoidance test caught: A* grid-snaps its last elbow
|
|
140
|
-
// inside the jetty window).
|
|
141
|
-
let rest = pts.slice(1);
|
|
142
|
-
const onStubSegment = (q) => {
|
|
143
|
-
if (v.x !== 0) {
|
|
144
|
-
if (q.y !== anchor.y)
|
|
145
|
-
return false;
|
|
146
|
-
const t = (q.x - anchor.x) * v.x; // signed distance along the stub
|
|
147
|
-
return t >= 0 && t <= jetty;
|
|
148
|
-
}
|
|
149
|
-
if (q.x !== anchor.x)
|
|
150
|
-
return false;
|
|
151
|
-
const t = (q.y - anchor.y) * v.y;
|
|
152
|
-
return t >= 0 && t <= jetty;
|
|
153
|
-
};
|
|
154
|
-
// never subsume the far anchor itself — a fully-collinear straight link
|
|
155
|
-
// must keep its endpoint.
|
|
156
|
-
while (rest.length > 1 && onStubSegment(rest[0]))
|
|
157
|
-
rest = rest.slice(1);
|
|
158
|
-
const joint = v.x !== 0
|
|
159
|
-
? { x: stub.x, y: rest[0].y } // horizontal stub: drop vertically to the old route
|
|
160
|
-
: { x: rest[0].x, y: stub.y }; // vertical stub: run horizontally to the old route
|
|
161
|
-
const rebuilt = [first, stub, joint, ...rest];
|
|
162
|
-
// Collapse duplicates/collinear runs the insertion may have created.
|
|
163
|
-
return this.mergeCollinearPoints(this.removeDuplicatePoints(rebuilt));
|
|
164
|
-
};
|
|
165
|
-
let pts = fixEnd(path.points.map((p) => (Object.assign({}, p))), start, sourceDirection);
|
|
166
|
-
pts = fixEnd(pts.slice().reverse(), end, targetDirection).reverse();
|
|
167
|
-
const totalLength = this.calculatePathLength(pts);
|
|
168
|
-
const bendCount = Math.max(0, pts.length - 2);
|
|
169
|
-
return {
|
|
170
|
-
points: pts,
|
|
171
|
-
totalLength,
|
|
172
|
-
bendCount,
|
|
173
|
-
cost: totalLength + bendCount * bendCost,
|
|
174
|
-
segments: this.calculateSegments(pts),
|
|
175
|
-
};
|
|
176
|
-
}
|
|
177
|
-
/**
|
|
178
|
-
* Simple orthogonal route - exact implementation of React Flow's getSmoothStepPath
|
|
179
|
-
* Based on React Flow's smoothstep-edge.ts getPoints() function
|
|
180
|
-
* Handles all edge cases: opposite ports, same ports, mixed ports
|
|
181
|
-
*
|
|
182
|
-
* CRITICAL: The offset determines how far the line moves away from the port
|
|
183
|
-
* before making turns. A larger offset creates more spacing from nodes.
|
|
184
|
-
*/
|
|
185
|
-
simpleOrthogonalRoute(start, end, gridSize, bendCost = 10, sourceDirection, targetDirection, jetty) {
|
|
186
|
-
// No port directions at all: route through the midline (classic HVH/VHV,
|
|
187
|
-
// the React Flow default for undirected points). The gap-point logic below
|
|
188
|
-
// assumes port directions and emits stub artifacts without them.
|
|
189
|
-
if (!sourceDirection && !targetDirection) {
|
|
190
|
-
let pts;
|
|
191
|
-
if (start.x === end.x || start.y === end.y) {
|
|
192
|
-
pts = [Object.assign({}, start), Object.assign({}, end)];
|
|
193
|
-
}
|
|
194
|
-
else if (Math.abs(end.x - start.x) >= Math.abs(end.y - start.y)) {
|
|
195
|
-
const midX = (start.x + end.x) / 2;
|
|
196
|
-
pts = [Object.assign({}, start), { x: midX, y: start.y }, { x: midX, y: end.y }, Object.assign({}, end)];
|
|
197
|
-
}
|
|
198
|
-
else {
|
|
199
|
-
const midY = (start.y + end.y) / 2;
|
|
200
|
-
pts = [Object.assign({}, start), { x: start.x, y: midY }, { x: end.x, y: midY }, Object.assign({}, end)];
|
|
201
|
-
}
|
|
202
|
-
if (gridSize && gridSize > 1) {
|
|
203
|
-
// Interior points share one snapped ordinate, so segments stay orthogonal
|
|
204
|
-
for (let i = 1; i < pts.length - 1; i++) {
|
|
205
|
-
pts[i] = {
|
|
206
|
-
x: Math.round(pts[i].x / gridSize) * gridSize,
|
|
207
|
-
y: Math.round(pts[i].y / gridSize) * gridSize,
|
|
208
|
-
};
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
const merged = this.mergeCollinearPoints(this.removeDuplicatePoints(pts));
|
|
212
|
-
const totalLength = this.calculatePathLength(merged);
|
|
213
|
-
const bendCount = Math.max(0, merged.length - 2);
|
|
214
|
-
return {
|
|
215
|
-
points: merged,
|
|
216
|
-
totalLength,
|
|
217
|
-
bendCount,
|
|
218
|
-
cost: totalLength + bendCount * bendCost,
|
|
219
|
-
segments: this.calculateSegments(merged),
|
|
220
|
-
};
|
|
221
|
-
}
|
|
222
|
-
// CRITICAL OFFSET: This determines the "breathing room" around nodes
|
|
223
|
-
// Match React Flow's exact offset value for visual consistency.
|
|
224
|
-
// Card 1: an explicit jetty replaces it (enforceJetty then GUARANTEES it).
|
|
225
|
-
const offset = jetty !== null && jetty !== void 0 ? jetty : 20;
|
|
226
|
-
// Get direction vectors for source and target
|
|
227
|
-
const sourceDir = this.getDirectionVector(sourceDirection);
|
|
228
|
-
const targetDir = this.getDirectionVector(targetDirection);
|
|
229
|
-
// Calculate gapped points (moved away from port in port direction)
|
|
230
|
-
const sourceGapped = {
|
|
231
|
-
x: start.x + sourceDir.x * offset,
|
|
232
|
-
y: start.y + sourceDir.y * offset
|
|
233
|
-
};
|
|
234
|
-
const targetGapped = {
|
|
235
|
-
x: end.x + targetDir.x * offset,
|
|
236
|
-
y: end.y + targetDir.y * offset
|
|
237
|
-
};
|
|
238
|
-
// Determine primary routing direction (React Flow line 86-92)
|
|
239
|
-
const dir = this.getRoutingDirection(sourceGapped, sourceDirection, targetGapped);
|
|
240
|
-
const dirAccessor = dir.x !== 0 ? 'x' : 'y';
|
|
241
|
-
const currDir = dir[dirAccessor];
|
|
242
|
-
let points = [];
|
|
243
|
-
const sourceGapOffset = { x: 0, y: 0 };
|
|
244
|
-
const targetGapOffset = { x: 0, y: 0 };
|
|
245
|
-
// React Flow line 107: Check if handles are opposite
|
|
246
|
-
if (sourceDir[dirAccessor] * targetDir[dirAccessor] === -1) {
|
|
247
|
-
// CASE 1: Opposite handle positions (e.g., Left -> Right, Top -> Bottom)
|
|
248
|
-
// Use Z-shape routing with center point
|
|
249
|
-
//
|
|
250
|
-
// SMART ROUTING: When ports are opposite, we create a "bent" path that routes
|
|
251
|
-
// around potential node collisions. The bend happens at the midpoint, creating
|
|
252
|
-
// a visual "elbow" that clearly shows the connection path.
|
|
253
|
-
let centerX, centerY;
|
|
254
|
-
if (dirAccessor === 'x') {
|
|
255
|
-
// Horizontal routing (e.g., Left -> Right, Right -> Left)
|
|
256
|
-
// CRITICAL FIX: Detect overshoot scenario
|
|
257
|
-
// When routing right-to-left but sourceGapped is already to the right of targetGapped,
|
|
258
|
-
// using the midpoint would cause the path to overshoot and penetrate the target node.
|
|
259
|
-
// Instead, clamp the bend to the source edge to route around the side.
|
|
260
|
-
const isOvershooting = (sourceDir.x > 0 && sourceGapped.x > targetGapped.x) ||
|
|
261
|
-
(sourceDir.x < 0 && sourceGapped.x < targetGapped.x);
|
|
262
|
-
if (isOvershooting) {
|
|
263
|
-
// Overshoot detected: Place bend at source edge, not midpoint
|
|
264
|
-
// This makes the path exit the source, turn immediately, and route around the side
|
|
265
|
-
centerX = sourceGapped.x;
|
|
266
|
-
}
|
|
267
|
-
else {
|
|
268
|
-
// Normal case: Use midpoint
|
|
269
|
-
centerX = (sourceGapped.x + targetGapped.x) / 2;
|
|
270
|
-
}
|
|
271
|
-
// For horizontal routing, we keep Y at source/target levels to create clear steps
|
|
272
|
-
centerY = (sourceGapped.y + targetGapped.y) / 2;
|
|
273
|
-
}
|
|
274
|
-
else {
|
|
275
|
-
// Vertical routing (e.g., Top -> Bottom, Bottom -> Top)
|
|
276
|
-
// CRITICAL FIX: Detect overshoot scenario for vertical routing
|
|
277
|
-
const isOvershooting = (sourceDir.y > 0 && sourceGapped.y > targetGapped.y) ||
|
|
278
|
-
(sourceDir.y < 0 && sourceGapped.y < targetGapped.y);
|
|
279
|
-
if (isOvershooting) {
|
|
280
|
-
// Overshoot detected: Place bend at source edge
|
|
281
|
-
centerY = sourceGapped.y;
|
|
282
|
-
}
|
|
283
|
-
else {
|
|
284
|
-
// Normal case: Use midpoint
|
|
285
|
-
centerY = (sourceGapped.y + targetGapped.y) / 2;
|
|
286
|
-
}
|
|
287
|
-
// For vertical routing, we keep X at source/target levels to create clear steps
|
|
288
|
-
centerX = (sourceGapped.x + targetGapped.x) / 2;
|
|
289
|
-
}
|
|
290
|
-
// React Flow lines 123-140: Choose between vertical and horizontal split
|
|
291
|
-
// This creates the characteristic "step" pattern
|
|
292
|
-
const verticalSplit = [
|
|
293
|
-
{ x: centerX, y: sourceGapped.y },
|
|
294
|
-
{ x: centerX, y: targetGapped.y },
|
|
295
|
-
];
|
|
296
|
-
const horizontalSplit = [
|
|
297
|
-
{ x: sourceGapped.x, y: centerY },
|
|
298
|
-
{ x: targetGapped.x, y: centerY },
|
|
299
|
-
];
|
|
300
|
-
if (sourceDir[dirAccessor] === currDir) {
|
|
301
|
-
points = dirAccessor === 'x' ? verticalSplit : horizontalSplit;
|
|
302
|
-
}
|
|
303
|
-
else {
|
|
304
|
-
points = dirAccessor === 'x' ? horizontalSplit : verticalSplit;
|
|
305
|
-
}
|
|
306
|
-
}
|
|
307
|
-
else {
|
|
308
|
-
// CASE 2: Same or perpendicular handle positions
|
|
309
|
-
// Use L-shape routing
|
|
310
|
-
// React Flow lines 144-145: Define the two L-shape options
|
|
311
|
-
const sourceTarget = [{ x: sourceGapped.x, y: targetGapped.y }];
|
|
312
|
-
const targetSource = [{ x: targetGapped.x, y: sourceGapped.y }];
|
|
313
|
-
// React Flow lines 147-151: Choose L-shape direction
|
|
314
|
-
if (dirAccessor === 'x') {
|
|
315
|
-
points = sourceDir.x === currDir ? targetSource : sourceTarget;
|
|
316
|
-
}
|
|
317
|
-
else {
|
|
318
|
-
points = sourceDir.y === currDir ? sourceTarget : targetSource;
|
|
319
|
-
}
|
|
320
|
-
// React Flow lines 153-165: Handle same position ports that are too close
|
|
321
|
-
if (sourceDirection === targetDirection) {
|
|
322
|
-
const diff = Math.abs(start[dirAccessor] - end[dirAccessor]);
|
|
323
|
-
if (diff <= offset) {
|
|
324
|
-
const gapOffset = Math.min(offset - 1, offset - diff);
|
|
325
|
-
if (sourceDir[dirAccessor] === currDir) {
|
|
326
|
-
sourceGapOffset[dirAccessor] = (sourceGapped[dirAccessor] > start[dirAccessor] ? -1 : 1) * gapOffset;
|
|
327
|
-
}
|
|
328
|
-
else {
|
|
329
|
-
targetGapOffset[dirAccessor] = (targetGapped[dirAccessor] > end[dirAccessor] ? -1 : 1) * gapOffset;
|
|
330
|
-
}
|
|
331
|
-
}
|
|
332
|
-
}
|
|
333
|
-
// React Flow lines 168-180: Handle mixed handle positions (e.g., Right -> Bottom)
|
|
334
|
-
if (sourceDirection !== targetDirection) {
|
|
335
|
-
const dirAccessorOpposite = dirAccessor === 'x' ? 'y' : 'x';
|
|
336
|
-
const isSameDir = sourceDir[dirAccessor] === targetDir[dirAccessorOpposite];
|
|
337
|
-
const sourceGtTargetOppo = sourceGapped[dirAccessorOpposite] > targetGapped[dirAccessorOpposite];
|
|
338
|
-
const sourceLtTargetOppo = sourceGapped[dirAccessorOpposite] < targetGapped[dirAccessorOpposite];
|
|
339
|
-
const flipSourceTarget = (sourceDir[dirAccessor] === 1 && ((!isSameDir && sourceGtTargetOppo) || (isSameDir && sourceLtTargetOppo))) ||
|
|
340
|
-
(sourceDir[dirAccessor] !== 1 && ((!isSameDir && sourceLtTargetOppo) || (isSameDir && sourceGtTargetOppo)));
|
|
341
|
-
if (flipSourceTarget) {
|
|
342
|
-
points = dirAccessor === 'x' ? sourceTarget : targetSource;
|
|
343
|
-
}
|
|
344
|
-
}
|
|
345
|
-
}
|
|
346
|
-
// Build path points
|
|
347
|
-
const sourceGapPoint = { x: sourceGapped.x + sourceGapOffset.x, y: sourceGapped.y + sourceGapOffset.y };
|
|
348
|
-
const targetGapPoint = { x: targetGapped.x + targetGapOffset.x, y: targetGapped.y + targetGapOffset.y };
|
|
349
|
-
// CRITICAL FIX: Ensure first and last segments are orthogonal
|
|
350
|
-
// Check if start->sourceGapPoint creates a diagonal (non-orthogonal) segment
|
|
351
|
-
const firstSegmentIsOrthogonal = (start.x === sourceGapPoint.x) || (start.y === sourceGapPoint.y);
|
|
352
|
-
const lastSegmentIsOrthogonal = (end.x === targetGapPoint.x) || (end.y === targetGapPoint.y);
|
|
353
|
-
// Build path: only include start/end if they create orthogonal segments
|
|
354
|
-
const pathPoints = [];
|
|
355
|
-
if (firstSegmentIsOrthogonal) {
|
|
356
|
-
pathPoints.push(start);
|
|
357
|
-
}
|
|
358
|
-
pathPoints.push(sourceGapPoint);
|
|
359
|
-
pathPoints.push(...points);
|
|
360
|
-
pathPoints.push(targetGapPoint);
|
|
361
|
-
if (lastSegmentIsOrthogonal) {
|
|
362
|
-
pathPoints.push(end);
|
|
363
|
-
}
|
|
364
|
-
// Snap to grid if specified
|
|
365
|
-
// CRITICAL FIX: Do NOT snap the first and last points (port positions)
|
|
366
|
-
// Only snap intermediate waypoints to prevent mismatch with port positions
|
|
367
|
-
if (gridSize && gridSize > 1) {
|
|
368
|
-
pathPoints.forEach((p, index) => {
|
|
369
|
-
// Skip first and last points - they must stay at exact port positions
|
|
370
|
-
if (index === 0 || index === pathPoints.length - 1) {
|
|
371
|
-
return;
|
|
372
|
-
}
|
|
373
|
-
p.x = Math.round(p.x / gridSize) * gridSize;
|
|
374
|
-
p.y = Math.round(p.y / gridSize) * gridSize;
|
|
375
|
-
});
|
|
376
|
-
// CRITICAL FIX: After grid snapping, ensure first and last segments remain orthogonal
|
|
377
|
-
// Grid snapping intermediate points can create diagonal segments with unsnapped endpoints
|
|
378
|
-
if (pathPoints.length >= 2) {
|
|
379
|
-
// Fix first segment: ensure point[1] is orthogonal to point[0] (start)
|
|
380
|
-
const start = pathPoints[0];
|
|
381
|
-
const firstIntermediate = pathPoints[1];
|
|
382
|
-
const firstIsHorizontal = start.y === firstIntermediate.y;
|
|
383
|
-
const firstIsVertical = start.x === firstIntermediate.x;
|
|
384
|
-
if (!firstIsHorizontal && !firstIsVertical) {
|
|
385
|
-
// Determine which direction to align based on source direction or infer from geometry
|
|
386
|
-
let alignedHorizontally = false;
|
|
387
|
-
let alignedVertically = false;
|
|
388
|
-
if (sourceDirection === 'left' || sourceDirection === 'right') {
|
|
389
|
-
// Horizontal port - make first segment horizontal
|
|
390
|
-
firstIntermediate.y = start.y;
|
|
391
|
-
alignedHorizontally = true;
|
|
392
|
-
}
|
|
393
|
-
else if (sourceDirection === 'top' || sourceDirection === 'bottom') {
|
|
394
|
-
// Vertical port - make first segment vertical
|
|
395
|
-
firstIntermediate.x = start.x;
|
|
396
|
-
alignedVertically = true;
|
|
397
|
-
}
|
|
398
|
-
else {
|
|
399
|
-
// Direction unknown - infer from start/end relative positions
|
|
400
|
-
const deltaX = Math.abs(end.x - start.x);
|
|
401
|
-
const deltaY = Math.abs(end.y - start.y);
|
|
402
|
-
if (deltaX > deltaY) {
|
|
403
|
-
firstIntermediate.y = start.y;
|
|
404
|
-
alignedHorizontally = true;
|
|
405
|
-
}
|
|
406
|
-
else {
|
|
407
|
-
firstIntermediate.x = start.x;
|
|
408
|
-
alignedVertically = true;
|
|
409
|
-
}
|
|
410
|
-
}
|
|
411
|
-
// CRITICAL FIX: Propagate alignment to all intermediate points (not just first one)
|
|
412
|
-
// This fixes the issue where point 2, 3, etc. still have wrong coordinates after grid snap
|
|
413
|
-
if (pathPoints.length > 3) {
|
|
414
|
-
for (let i = 2; i < pathPoints.length - 1; i++) {
|
|
415
|
-
if (alignedHorizontally && pathPoints[i].y !== start.y) {
|
|
416
|
-
pathPoints[i].y = start.y;
|
|
417
|
-
}
|
|
418
|
-
else if (alignedVertically && pathPoints[i].x !== start.x) {
|
|
419
|
-
pathPoints[i].x = start.x;
|
|
420
|
-
}
|
|
421
|
-
}
|
|
422
|
-
}
|
|
423
|
-
}
|
|
424
|
-
// Fix last segment: ensure point[n-2] is orthogonal to point[n-1] (end)
|
|
425
|
-
if (pathPoints.length >= 3) {
|
|
426
|
-
const end = pathPoints[pathPoints.length - 1];
|
|
427
|
-
const lastIntermediate = pathPoints[pathPoints.length - 2];
|
|
428
|
-
const lastIsHorizontal = lastIntermediate.y === end.y;
|
|
429
|
-
const lastIsVertical = lastIntermediate.x === end.x;
|
|
430
|
-
if (!lastIsHorizontal && !lastIsVertical) {
|
|
431
|
-
// Determine which direction to align based on target direction or infer from geometry
|
|
432
|
-
if (targetDirection === 'left' || targetDirection === 'right') {
|
|
433
|
-
// Horizontal port - make last segment horizontal
|
|
434
|
-
lastIntermediate.y = end.y;
|
|
435
|
-
}
|
|
436
|
-
else if (targetDirection === 'top' || targetDirection === 'bottom') {
|
|
437
|
-
// Vertical port - make last segment vertical
|
|
438
|
-
lastIntermediate.x = end.x;
|
|
439
|
-
}
|
|
440
|
-
else {
|
|
441
|
-
// Direction unknown - infer from start/end relative positions
|
|
442
|
-
const deltaX = Math.abs(end.x - start.x);
|
|
443
|
-
const deltaY = Math.abs(end.y - start.y);
|
|
444
|
-
if (deltaX > deltaY) {
|
|
445
|
-
// Endpoints are more horizontally separated - likely horizontal port
|
|
446
|
-
lastIntermediate.y = end.y;
|
|
447
|
-
}
|
|
448
|
-
else {
|
|
449
|
-
// Endpoints are more vertically separated - likely vertical port
|
|
450
|
-
lastIntermediate.x = end.x;
|
|
451
|
-
}
|
|
452
|
-
}
|
|
453
|
-
}
|
|
454
|
-
}
|
|
455
|
-
}
|
|
456
|
-
}
|
|
457
|
-
// Remove duplicate consecutive points, then merge collinear runs — the
|
|
458
|
-
// gap-point construction can emit out-and-back stubs (A→B→A) and split
|
|
459
|
-
// straight lines into multiple segments
|
|
460
|
-
const uniquePoints = this.mergeCollinearPoints(this.removeDuplicatePoints(pathPoints));
|
|
461
|
-
const totalLength = this.calculatePathLength(uniquePoints);
|
|
462
|
-
const bendCount = uniquePoints.length - 2;
|
|
463
|
-
return {
|
|
464
|
-
points: uniquePoints,
|
|
465
|
-
totalLength,
|
|
466
|
-
bendCount: Math.max(0, bendCount),
|
|
467
|
-
cost: totalLength + bendCount * bendCost,
|
|
468
|
-
segments: this.calculateSegments(uniquePoints),
|
|
469
|
-
};
|
|
470
|
-
}
|
|
471
|
-
/**
|
|
472
|
-
* Merge collinear consecutive points. Because the kept path lies on the
|
|
473
|
-
* same line the removed points did, this also collapses out-and-back
|
|
474
|
-
* excursions (backtracking stubs) without changing route coverage.
|
|
475
|
-
*/
|
|
476
|
-
mergeCollinearPoints(points) {
|
|
477
|
-
if (points.length <= 2)
|
|
478
|
-
return points;
|
|
479
|
-
const out = [points[0]];
|
|
480
|
-
for (let i = 1; i < points.length; i++) {
|
|
481
|
-
const q = points[i];
|
|
482
|
-
while (out.length >= 2) {
|
|
483
|
-
const a = out[out.length - 2];
|
|
484
|
-
const b = out[out.length - 1];
|
|
485
|
-
const cross = (b.x - a.x) * (q.y - b.y) - (b.y - a.y) * (q.x - b.x);
|
|
486
|
-
if (Math.abs(cross) < 1e-6)
|
|
487
|
-
out.pop();
|
|
488
|
-
else
|
|
489
|
-
break;
|
|
490
|
-
}
|
|
491
|
-
const tail = out[out.length - 1];
|
|
492
|
-
if (Math.abs(q.x - tail.x) > 1e-9 || Math.abs(q.y - tail.y) > 1e-9) {
|
|
493
|
-
out.push(q);
|
|
494
|
-
}
|
|
495
|
-
}
|
|
496
|
-
return out;
|
|
497
|
-
}
|
|
498
|
-
/**
|
|
499
|
-
* Check if we can use a direct straight line between ports
|
|
500
|
-
* This happens when ports are aligned and facing each other directly
|
|
501
|
-
*/
|
|
502
|
-
canUseDirectLine(start, end, sourceDirection, targetDirection, _sourceOffset, _targetOffset) {
|
|
503
|
-
if (!sourceDirection || !targetDirection)
|
|
504
|
-
return false;
|
|
505
|
-
const tolerance = 2; // pixels
|
|
506
|
-
// Check if horizontally aligned (same Y)
|
|
507
|
-
const horizontallyAligned = Math.abs(start.y - end.y) < tolerance;
|
|
508
|
-
// Check if vertically aligned (same X)
|
|
509
|
-
const verticallyAligned = Math.abs(start.x - end.x) < tolerance;
|
|
510
|
-
// For horizontal alignment, ports should face left/right
|
|
511
|
-
if (horizontallyAligned) {
|
|
512
|
-
const horizontalPorts = ((sourceDirection === 'left' || sourceDirection === 'right') &&
|
|
513
|
-
(targetDirection === 'left' || targetDirection === 'right'));
|
|
514
|
-
// Check if they face each other
|
|
515
|
-
const facingEachOther = ((sourceDirection === 'right' && targetDirection === 'left' && start.x < end.x) ||
|
|
516
|
-
(sourceDirection === 'left' && targetDirection === 'right' && start.x > end.x));
|
|
517
|
-
return horizontalPorts && facingEachOther;
|
|
518
|
-
}
|
|
519
|
-
// For vertical alignment, ports should face top/bottom
|
|
520
|
-
if (verticallyAligned) {
|
|
521
|
-
const verticalPorts = ((sourceDirection === 'top' || sourceDirection === 'bottom') &&
|
|
522
|
-
(targetDirection === 'top' || targetDirection === 'bottom'));
|
|
523
|
-
// Check if they face each other
|
|
524
|
-
const facingEachOther = ((sourceDirection === 'bottom' && targetDirection === 'top' && start.y < end.y) ||
|
|
525
|
-
(sourceDirection === 'top' && targetDirection === 'bottom' && start.y > end.y));
|
|
526
|
-
return verticalPorts && facingEachOther;
|
|
527
|
-
}
|
|
528
|
-
return false;
|
|
529
|
-
}
|
|
530
|
-
/**
|
|
531
|
-
* Simplify orthogonal path by removing redundant collinear points
|
|
532
|
-
* ONLY removes points that are on the same straight line (horizontal or vertical)
|
|
533
|
-
* This preserves proper orthogonal (right-angle) routing
|
|
534
|
-
*/
|
|
535
|
-
simplifyOrthogonalPath(points) {
|
|
536
|
-
if (points.length <= 2)
|
|
537
|
-
return points;
|
|
538
|
-
const simplified = [points[0]];
|
|
539
|
-
const tolerance = 0.1; // Very tight tolerance for orthogonal alignment
|
|
540
|
-
for (let i = 1; i < points.length - 1; i++) {
|
|
541
|
-
const prev = simplified[simplified.length - 1]; // Use last point in simplified array
|
|
542
|
-
const curr = points[i];
|
|
543
|
-
const next = points[i + 1];
|
|
544
|
-
// Check if prev, curr, next are collinear (on same horizontal or vertical line)
|
|
545
|
-
const isHorizontalLine = Math.abs(prev.y - curr.y) < tolerance &&
|
|
546
|
-
Math.abs(curr.y - next.y) < tolerance;
|
|
547
|
-
const isVerticalLine = Math.abs(prev.x - curr.x) < tolerance &&
|
|
548
|
-
Math.abs(curr.x - next.x) < tolerance;
|
|
549
|
-
// Only skip this point if it's truly collinear (on same straight line)
|
|
550
|
-
// This removes redundant intermediate points but keeps all bends
|
|
551
|
-
if (!isHorizontalLine && !isVerticalLine) {
|
|
552
|
-
simplified.push(curr);
|
|
553
|
-
}
|
|
554
|
-
}
|
|
555
|
-
simplified.push(points[points.length - 1]);
|
|
556
|
-
return simplified;
|
|
557
|
-
}
|
|
558
|
-
/**
|
|
559
|
-
* Apply gap offset in the direction the port points
|
|
560
|
-
*/
|
|
561
|
-
applyGapOffset(point, direction, offset) {
|
|
562
|
-
if (!direction)
|
|
563
|
-
return point;
|
|
564
|
-
switch (direction) {
|
|
565
|
-
case 'left':
|
|
566
|
-
return { x: point.x - offset, y: point.y };
|
|
567
|
-
case 'right':
|
|
568
|
-
return { x: point.x + offset, y: point.y };
|
|
569
|
-
case 'top':
|
|
570
|
-
return { x: point.x, y: point.y - offset };
|
|
571
|
-
case 'bottom':
|
|
572
|
-
return { x: point.x, y: point.y + offset };
|
|
573
|
-
}
|
|
574
|
-
}
|
|
575
|
-
/**
|
|
576
|
-
* Get direction vector for a port direction (React Flow style)
|
|
577
|
-
*/
|
|
578
|
-
getDirectionVector(direction) {
|
|
579
|
-
if (!direction)
|
|
580
|
-
return { x: 0, y: 0 };
|
|
581
|
-
switch (direction) {
|
|
582
|
-
case 'left':
|
|
583
|
-
return { x: -1, y: 0 };
|
|
584
|
-
case 'right':
|
|
585
|
-
return { x: 1, y: 0 };
|
|
586
|
-
case 'top':
|
|
587
|
-
return { x: 0, y: -1 };
|
|
588
|
-
case 'bottom':
|
|
589
|
-
return { x: 0, y: 1 };
|
|
590
|
-
}
|
|
591
|
-
}
|
|
592
|
-
/**
|
|
593
|
-
* Determine routing direction based on source/target positions (React Flow logic)
|
|
594
|
-
*/
|
|
595
|
-
getRoutingDirection(source, sourcePosition, target) {
|
|
596
|
-
if (!sourcePosition)
|
|
597
|
-
return { x: 1, y: 0 };
|
|
598
|
-
// For horizontal ports (left/right), determine X direction
|
|
599
|
-
if (sourcePosition === 'left' || sourcePosition === 'right') {
|
|
600
|
-
return source.x < target.x ? { x: 1, y: 0 } : { x: -1, y: 0 };
|
|
601
|
-
}
|
|
602
|
-
// For vertical ports (top/bottom), determine Y direction
|
|
603
|
-
return source.y < target.y ? { x: 0, y: 1 } : { x: 0, y: -1 };
|
|
604
|
-
}
|
|
605
|
-
/**
|
|
606
|
-
* Determine if we need Z-shape routing (vs L-shape)
|
|
607
|
-
* Z-shape is needed when ports point toward each other or in same direction
|
|
608
|
-
*/
|
|
609
|
-
needsZShape(sourceDir, targetDir, sourceOffset, targetOffset) {
|
|
610
|
-
if (!sourceDir || !targetDir)
|
|
611
|
-
return false;
|
|
612
|
-
// Ports pointing opposite directions (toward each other)
|
|
613
|
-
const oppositeDirections = ((sourceDir === 'left' && targetDir === 'right') ||
|
|
614
|
-
(sourceDir === 'right' && targetDir === 'left') ||
|
|
615
|
-
(sourceDir === 'top' && targetDir === 'bottom') ||
|
|
616
|
-
(sourceDir === 'bottom' && targetDir === 'top'));
|
|
617
|
-
// Ports pointing same direction
|
|
618
|
-
const sameDirection = sourceDir === targetDir;
|
|
619
|
-
return oppositeDirections || sameDirection;
|
|
620
|
-
}
|
|
621
|
-
/**
|
|
622
|
-
* Calculate L-shape midpoint (one bend)
|
|
623
|
-
*/
|
|
624
|
-
calculateLShapeMidpoint(sourceOffset, targetOffset, sourceDir, targetDir) {
|
|
625
|
-
// For L-shape, decide whether to go horizontal-then-vertical or vertical-then-horizontal
|
|
626
|
-
// Based on which port direction is dominant
|
|
627
|
-
const isSourceHorizontal = sourceDir === 'left' || sourceDir === 'right';
|
|
628
|
-
const isTargetHorizontal = targetDir === 'left' || targetDir === 'right';
|
|
629
|
-
if (isSourceHorizontal && !isTargetHorizontal) {
|
|
630
|
-
// Source is horizontal, target is vertical: horizontal first
|
|
631
|
-
return { x: targetOffset.x, y: sourceOffset.y };
|
|
632
|
-
}
|
|
633
|
-
else if (!isSourceHorizontal && isTargetHorizontal) {
|
|
634
|
-
// Source is vertical, target is horizontal: vertical first
|
|
635
|
-
return { x: sourceOffset.x, y: targetOffset.y };
|
|
636
|
-
}
|
|
637
|
-
else {
|
|
638
|
-
// Both same orientation - choose based on distance
|
|
639
|
-
const dx = Math.abs(targetOffset.x - sourceOffset.x);
|
|
640
|
-
const dy = Math.abs(targetOffset.y - sourceOffset.y);
|
|
641
|
-
if (dx > dy) {
|
|
642
|
-
return { x: targetOffset.x, y: sourceOffset.y };
|
|
643
|
-
}
|
|
644
|
-
else {
|
|
645
|
-
return { x: sourceOffset.x, y: targetOffset.y };
|
|
646
|
-
}
|
|
647
|
-
}
|
|
648
|
-
}
|
|
649
|
-
/**
|
|
650
|
-
* Calculate Z-shape midpoints (two bends)
|
|
651
|
-
*/
|
|
652
|
-
calculateZShapeMidpoints(sourceOffset, targetOffset, sourceDir, targetDir) {
|
|
653
|
-
const isSourceHorizontal = sourceDir === 'left' || sourceDir === 'right';
|
|
654
|
-
if (isSourceHorizontal) {
|
|
655
|
-
// Horizontal source: H-V-H routing
|
|
656
|
-
const midX = (sourceOffset.x + targetOffset.x) / 2;
|
|
657
|
-
return [
|
|
658
|
-
{ x: midX, y: sourceOffset.y },
|
|
659
|
-
{ x: midX, y: targetOffset.y }
|
|
660
|
-
];
|
|
661
|
-
}
|
|
662
|
-
else {
|
|
663
|
-
// Vertical source: V-H-V routing
|
|
664
|
-
const midY = (sourceOffset.y + targetOffset.y) / 2;
|
|
665
|
-
return [
|
|
666
|
-
{ x: sourceOffset.x, y: midY },
|
|
667
|
-
{ x: targetOffset.x, y: midY }
|
|
668
|
-
];
|
|
669
|
-
}
|
|
670
|
-
}
|
|
671
|
-
/**
|
|
672
|
-
* Orthogonal routing with obstacle avoidance using A*
|
|
673
|
-
*/
|
|
674
|
-
avoidObstaclesRoute(start, end, obstacles, options, sourceDirection, targetDirection, index) {
|
|
675
|
-
var _a, _b, _c, _d, _e, _f, _g;
|
|
676
|
-
const gridSize = (_a = options.gridSize) !== null && _a !== void 0 ? _a : 10;
|
|
677
|
-
const margin = (_b = options.obstacleMargin) !== null && _b !== void 0 ? _b : 20; // Margin around obstacles
|
|
678
|
-
const maxIterations = (_c = options.maxIterations) !== null && _c !== void 0 ? _c : 10000;
|
|
679
|
-
const gapOffset = 30; // Distance to move away from port (must be > margin to clear obstacle boundary)
|
|
680
|
-
// Apply gap offset to move away from ports before pathfinding
|
|
681
|
-
// This ensures paths don't start/end directly on node borders
|
|
682
|
-
const sourceOffset = this.applyGapOffset(start, sourceDirection, gapOffset);
|
|
683
|
-
const targetOffset = this.applyGapOffset(end, targetDirection, gapOffset);
|
|
684
|
-
// Snap offset points to grid for A* pathfinding
|
|
685
|
-
let gridStart = this.snapToGrid(sourceOffset, gridSize);
|
|
686
|
-
let gridEnd = this.snapToGrid(targetOffset, gridSize);
|
|
687
|
-
// CRITICAL FIX: Validate start/end points are not inside obstacles
|
|
688
|
-
// If grid snapping moved them into an obstacle, adjust outward
|
|
689
|
-
if (this.collidesWithObstacles(gridStart, obstacles, margin, index)) {
|
|
690
|
-
console.debug(`⚠️ Grid start point inside obstacle, adjusting...`);
|
|
691
|
-
gridStart = this.findNearestValidPoint(gridStart, sourceDirection, obstacles, margin, gridSize, index);
|
|
692
|
-
}
|
|
693
|
-
if (this.collidesWithObstacles(gridEnd, obstacles, margin, index)) {
|
|
694
|
-
console.debug(`⚠️ Grid end point inside obstacle, adjusting...`);
|
|
695
|
-
gridEnd = this.findNearestValidPoint(gridEnd, targetDirection, obstacles, margin, gridSize, index);
|
|
696
|
-
}
|
|
697
|
-
// Use A* to find path between offset points
|
|
698
|
-
const path = this.aStarPathfinding(gridStart, gridEnd, obstacles, gridSize, margin, maxIterations, index);
|
|
699
|
-
if (!path || path.length === 0) {
|
|
700
|
-
// IMPROVED: Log why pathfinding failed and what we're doing
|
|
701
|
-
console.debug(`⚠️ A* pathfinding failed for link routing:`, {
|
|
702
|
-
start: gridStart,
|
|
703
|
-
end: gridEnd,
|
|
704
|
-
obstacleCount: obstacles.length,
|
|
705
|
-
gridSize,
|
|
706
|
-
margin
|
|
707
|
-
});
|
|
708
|
-
console.debug(` Falling back to simple orthogonal route (no obstacle avoidance)`);
|
|
709
|
-
// Fallback to simple route if pathfinding fails
|
|
710
|
-
return this.simpleOrthogonalRoute(start, end, gridSize, (_e = (_d = options.costs) === null || _d === void 0 ? void 0 : _d.bends) !== null && _e !== void 0 ? _e : 10, sourceDirection, targetDirection);
|
|
711
|
-
}
|
|
712
|
-
// Prepend actual start point and append actual end point
|
|
713
|
-
// This ensures the path connects to the exact port positions
|
|
714
|
-
const fullPath = [
|
|
715
|
-
{ x: start.x, y: start.y },
|
|
716
|
-
...path,
|
|
717
|
-
{ x: end.x, y: end.y }
|
|
718
|
-
];
|
|
719
|
-
// Remove duplicate consecutive points
|
|
720
|
-
const uniquePath = this.mergeCollinearPoints(this.removeDuplicatePoints(fullPath));
|
|
721
|
-
const totalLength = this.calculatePathLength(uniquePath);
|
|
722
|
-
const bendCount = this.countBends(uniquePath);
|
|
723
|
-
const bendCost = (_g = (_f = options.costs) === null || _f === void 0 ? void 0 : _f.bends) !== null && _g !== void 0 ? _g : 10;
|
|
724
|
-
return {
|
|
725
|
-
points: uniquePath,
|
|
726
|
-
totalLength,
|
|
727
|
-
bendCount,
|
|
728
|
-
cost: totalLength + bendCount * bendCost,
|
|
729
|
-
segments: this.calculateSegments(uniquePath),
|
|
730
|
-
};
|
|
731
|
-
}
|
|
732
|
-
/**
|
|
733
|
-
* A* pathfinding on a grid with improved obstacle avoidance
|
|
734
|
-
*/
|
|
735
|
-
aStarPathfinding(start, end, obstacles, gridSize, margin, maxIterations, index) {
|
|
736
|
-
var _a, _b, _c;
|
|
737
|
-
const openSet = new Set();
|
|
738
|
-
const closedSet = new Set();
|
|
739
|
-
const cameFrom = new Map();
|
|
740
|
-
const gScore = new Map();
|
|
741
|
-
const fScore = new Map();
|
|
742
|
-
const startKey = this.pointToKey(start);
|
|
743
|
-
const endKey = this.pointToKey(end);
|
|
744
|
-
openSet.add(startKey);
|
|
745
|
-
gScore.set(startKey, 0);
|
|
746
|
-
fScore.set(startKey, this.heuristic(start, end));
|
|
747
|
-
let iterations = 0;
|
|
748
|
-
while (openSet.size > 0 && iterations < maxIterations) {
|
|
749
|
-
iterations++;
|
|
750
|
-
// Find node with lowest fScore
|
|
751
|
-
let currentKey = '';
|
|
752
|
-
let lowestF = Infinity;
|
|
753
|
-
for (const key of openSet) {
|
|
754
|
-
const f = (_a = fScore.get(key)) !== null && _a !== void 0 ? _a : Infinity;
|
|
755
|
-
if (f < lowestF) {
|
|
756
|
-
lowestF = f;
|
|
757
|
-
currentKey = key;
|
|
758
|
-
}
|
|
759
|
-
}
|
|
760
|
-
if (!currentKey)
|
|
761
|
-
break;
|
|
762
|
-
const current = this.keyToPoint(currentKey);
|
|
763
|
-
// Reached goal
|
|
764
|
-
if (currentKey === endKey) {
|
|
765
|
-
const path = this.reconstructPath(cameFrom, current);
|
|
766
|
-
// Simplify the A* path to remove unnecessary waypoints
|
|
767
|
-
return this.simplifyOrthogonalPath(path);
|
|
768
|
-
}
|
|
769
|
-
openSet.delete(currentKey);
|
|
770
|
-
closedSet.add(currentKey);
|
|
771
|
-
// Check neighbors (4-directional: up, down, left, right)
|
|
772
|
-
const neighbors = this.getOrthogonalNeighbors(current, gridSize);
|
|
773
|
-
for (const neighbor of neighbors) {
|
|
774
|
-
const neighborKey = this.pointToKey(neighbor);
|
|
775
|
-
if (closedSet.has(neighborKey))
|
|
776
|
-
continue;
|
|
777
|
-
// Check if neighbor collides with obstacle
|
|
778
|
-
if (this.collidesWithObstacles(neighbor, obstacles, margin, index)) {
|
|
779
|
-
closedSet.add(neighborKey);
|
|
780
|
-
continue;
|
|
781
|
-
}
|
|
782
|
-
// Calculate movement cost with penalty for direction changes
|
|
783
|
-
let movementCost = gridSize;
|
|
784
|
-
// Add bend penalty if direction changed from previous segment
|
|
785
|
-
const parent = cameFrom.get(currentKey);
|
|
786
|
-
if (parent) {
|
|
787
|
-
const prevDir = this.getDirection(parent, current);
|
|
788
|
-
const nextDir = this.getDirection(current, neighbor);
|
|
789
|
-
if (prevDir !== nextDir) {
|
|
790
|
-
movementCost += gridSize * 0.5; // Penalty for bends to favor straighter paths
|
|
791
|
-
}
|
|
792
|
-
}
|
|
793
|
-
const tentativeG = ((_b = gScore.get(currentKey)) !== null && _b !== void 0 ? _b : Infinity) + movementCost;
|
|
794
|
-
if (!openSet.has(neighborKey)) {
|
|
795
|
-
openSet.add(neighborKey);
|
|
796
|
-
}
|
|
797
|
-
else if (tentativeG >= ((_c = gScore.get(neighborKey)) !== null && _c !== void 0 ? _c : Infinity)) {
|
|
798
|
-
continue;
|
|
799
|
-
}
|
|
800
|
-
cameFrom.set(neighborKey, current);
|
|
801
|
-
gScore.set(neighborKey, tentativeG);
|
|
802
|
-
fScore.set(neighborKey, tentativeG + this.heuristic(neighbor, end));
|
|
803
|
-
}
|
|
804
|
-
}
|
|
805
|
-
// No path found
|
|
806
|
-
return null;
|
|
807
|
-
}
|
|
808
|
-
/**
|
|
809
|
-
* Reconstruct path from A* came-from map
|
|
810
|
-
*/
|
|
811
|
-
reconstructPath(cameFrom, current) {
|
|
812
|
-
const path = [current];
|
|
813
|
-
let currentKey = this.pointToKey(current);
|
|
814
|
-
while (cameFrom.has(currentKey)) {
|
|
815
|
-
const point = cameFrom.get(currentKey);
|
|
816
|
-
path.unshift(point);
|
|
817
|
-
currentKey = this.pointToKey(point);
|
|
818
|
-
}
|
|
819
|
-
return path;
|
|
820
|
-
}
|
|
821
|
-
/**
|
|
822
|
-
* Manhattan distance heuristic
|
|
823
|
-
*/
|
|
824
|
-
heuristic(a, b) {
|
|
825
|
-
return Math.abs(a.x - b.x) + Math.abs(a.y - b.y);
|
|
826
|
-
}
|
|
827
|
-
/**
|
|
828
|
-
* Get 4-directional orthogonal neighbors
|
|
829
|
-
*/
|
|
830
|
-
getOrthogonalNeighbors(point, gridSize) {
|
|
831
|
-
return [
|
|
832
|
-
{ x: point.x + gridSize, y: point.y }, // Right
|
|
833
|
-
{ x: point.x - gridSize, y: point.y }, // Left
|
|
834
|
-
{ x: point.x, y: point.y + gridSize }, // Down
|
|
835
|
-
{ x: point.x, y: point.y - gridSize }, // Up
|
|
836
|
-
];
|
|
837
|
-
}
|
|
838
|
-
/**
|
|
839
|
-
* Check if point collides with any obstacle
|
|
840
|
-
* FIXED: Use inclusive bounds to prevent paths grazing obstacle edges
|
|
841
|
-
*/
|
|
842
|
-
collidesWithObstacles(point, obstacles, margin, index) {
|
|
843
|
-
// Wave 8 — Card 6: THE hot path. A* asks this once per neighbour of every
|
|
844
|
-
// cell it expands, and the linear scan below made that O(scene) — 1.87
|
|
845
|
-
// BILLION aabb tests in one measured 5k-node drag frame. The index answers
|
|
846
|
-
// with the identical predicate, looking only at obstacles near the point.
|
|
847
|
-
if (index)
|
|
848
|
-
return index.collides(point.x, point.y, margin);
|
|
849
|
-
for (const obstacle of obstacles) {
|
|
850
|
-
// Expand obstacle boundaries by margin to create safe zone around obstacles
|
|
851
|
-
const minX = obstacle.x - margin;
|
|
852
|
-
const maxX = obstacle.x + obstacle.width + margin;
|
|
853
|
-
const minY = obstacle.y - margin;
|
|
854
|
-
const maxY = obstacle.y + obstacle.height + margin;
|
|
855
|
-
// FIXED: Use >= and <= (inclusive) instead of > and < (exclusive)
|
|
856
|
-
// This ensures points ON the boundary are also considered colliding
|
|
857
|
-
if (point.x >= minX &&
|
|
858
|
-
point.x <= maxX &&
|
|
859
|
-
point.y >= minY &&
|
|
860
|
-
point.y <= maxY) {
|
|
861
|
-
return true;
|
|
862
|
-
}
|
|
863
|
-
}
|
|
864
|
-
return false;
|
|
865
|
-
}
|
|
866
|
-
/**
|
|
867
|
-
* Check if any segment of the path intersects with obstacles
|
|
868
|
-
* This determines if we need to use A* pathfinding
|
|
869
|
-
*/
|
|
870
|
-
pathIntersectsObstacles(points, obstacles, index) {
|
|
871
|
-
if (obstacles.length === 0)
|
|
872
|
-
return false;
|
|
873
|
-
// Check each line segment of the path
|
|
874
|
-
for (let i = 1; i < points.length; i++) {
|
|
875
|
-
const p1 = points[i - 1];
|
|
876
|
-
const p2 = points[i];
|
|
877
|
-
// Wave 8 — Card 6: only obstacles whose rect can reach this segment's
|
|
878
|
-
// bounding box are candidates; the exact test below is unchanged, so the
|
|
879
|
-
// answer is unchanged. (A segment can only meet a rect inside the
|
|
880
|
-
// segment's own bbox, so the narrowing loses nothing.)
|
|
881
|
-
const candidates = index
|
|
882
|
-
? index.queryBox(Math.min(p1.x, p2.x), Math.min(p1.y, p2.y), Math.max(p1.x, p2.x), Math.max(p1.y, p2.y))
|
|
883
|
-
: obstacles;
|
|
884
|
-
// Check if this segment intersects any obstacle
|
|
885
|
-
for (const obstacle of candidates) {
|
|
886
|
-
const rect = {
|
|
887
|
-
x: obstacle.x,
|
|
888
|
-
y: obstacle.y,
|
|
889
|
-
width: obstacle.width,
|
|
890
|
-
height: obstacle.height
|
|
891
|
-
};
|
|
892
|
-
if (this.lineIntersectsRectangle(p1, p2, rect)) {
|
|
893
|
-
return true;
|
|
894
|
-
}
|
|
895
|
-
}
|
|
896
|
-
}
|
|
897
|
-
return false;
|
|
898
|
-
}
|
|
899
|
-
/**
|
|
900
|
-
* Check if a line segment intersects with a rectangle
|
|
901
|
-
*/
|
|
902
|
-
lineIntersectsRectangle(p1, p2, rect) {
|
|
903
|
-
const left = rect.x;
|
|
904
|
-
const right = rect.x + rect.width;
|
|
905
|
-
const top = rect.y;
|
|
906
|
-
const bottom = rect.y + rect.height;
|
|
907
|
-
// Check if either endpoint is inside the rectangle
|
|
908
|
-
if (this.pointInRectangle(p1, rect) || this.pointInRectangle(p2, rect)) {
|
|
909
|
-
return true;
|
|
910
|
-
}
|
|
911
|
-
// Check intersection with each edge of the rectangle
|
|
912
|
-
const edges = [
|
|
913
|
-
{ x1: left, y1: top, x2: right, y2: top }, // top edge
|
|
914
|
-
{ x1: right, y1: top, x2: right, y2: bottom }, // right edge
|
|
915
|
-
{ x1: left, y1: bottom, x2: right, y2: bottom }, // bottom edge
|
|
916
|
-
{ x1: left, y1: top, x2: left, y2: bottom }, // left edge
|
|
917
|
-
];
|
|
918
|
-
for (const edge of edges) {
|
|
919
|
-
if (this.lineSegmentsIntersect(p1, p2, { x: edge.x1, y: edge.y1 }, { x: edge.x2, y: edge.y2 })) {
|
|
920
|
-
return true;
|
|
921
|
-
}
|
|
922
|
-
}
|
|
923
|
-
return false;
|
|
924
|
-
}
|
|
925
|
-
/**
|
|
926
|
-
* Check if a point is inside a rectangle
|
|
927
|
-
*/
|
|
928
|
-
pointInRectangle(p, rect) {
|
|
929
|
-
return (p.x >= rect.x &&
|
|
930
|
-
p.x <= rect.x + rect.width &&
|
|
931
|
-
p.y >= rect.y &&
|
|
932
|
-
p.y <= rect.y + rect.height);
|
|
933
|
-
}
|
|
934
|
-
/**
|
|
935
|
-
* Check if two line segments intersect
|
|
936
|
-
* Using the cross product method
|
|
937
|
-
*/
|
|
938
|
-
lineSegmentsIntersect(p1, p2, p3, p4) {
|
|
939
|
-
const ccw = (a, b, c) => {
|
|
940
|
-
return (c.y - a.y) * (b.x - a.x) > (b.y - a.y) * (c.x - a.x);
|
|
941
|
-
};
|
|
942
|
-
return ccw(p1, p3, p4) !== ccw(p2, p3, p4) && ccw(p1, p2, p3) !== ccw(p1, p2, p4);
|
|
943
|
-
}
|
|
944
|
-
/**
|
|
945
|
-
* Snap point to grid
|
|
946
|
-
*/
|
|
947
|
-
snapToGrid(point, gridSize) {
|
|
948
|
-
return {
|
|
949
|
-
x: Math.round(point.x / gridSize) * gridSize,
|
|
950
|
-
y: Math.round(point.y / gridSize) * gridSize,
|
|
951
|
-
};
|
|
952
|
-
}
|
|
953
|
-
/**
|
|
954
|
-
* Find nearest valid point outside obstacles
|
|
955
|
-
* Searches outward from point in the given direction until finding a valid position
|
|
956
|
-
*/
|
|
957
|
-
findNearestValidPoint(point, direction, obstacles, margin, gridSize, index) {
|
|
958
|
-
// Try moving outward in the port direction to find a valid point
|
|
959
|
-
const maxAttempts = 10;
|
|
960
|
-
let current = Object.assign({}, point);
|
|
961
|
-
for (let i = 1; i <= maxAttempts; i++) {
|
|
962
|
-
// Move one grid step in the port direction
|
|
963
|
-
switch (direction) {
|
|
964
|
-
case 'left':
|
|
965
|
-
current.x -= gridSize;
|
|
966
|
-
break;
|
|
967
|
-
case 'right':
|
|
968
|
-
current.x += gridSize;
|
|
969
|
-
break;
|
|
970
|
-
case 'top':
|
|
971
|
-
current.y -= gridSize;
|
|
972
|
-
break;
|
|
973
|
-
case 'bottom':
|
|
974
|
-
current.y += gridSize;
|
|
975
|
-
break;
|
|
976
|
-
default:
|
|
977
|
-
// No direction specified, try moving in all directions
|
|
978
|
-
const candidates = [
|
|
979
|
-
{ x: point.x + i * gridSize, y: point.y },
|
|
980
|
-
{ x: point.x - i * gridSize, y: point.y },
|
|
981
|
-
{ x: point.x, y: point.y + i * gridSize },
|
|
982
|
-
{ x: point.x, y: point.y - i * gridSize },
|
|
983
|
-
];
|
|
984
|
-
for (const candidate of candidates) {
|
|
985
|
-
if (!this.collidesWithObstacles(candidate, obstacles, margin, index)) {
|
|
986
|
-
return candidate;
|
|
987
|
-
}
|
|
988
|
-
}
|
|
989
|
-
continue;
|
|
990
|
-
}
|
|
991
|
-
// Check if this position is valid
|
|
992
|
-
if (!this.collidesWithObstacles(current, obstacles, margin, index)) {
|
|
993
|
-
return current;
|
|
994
|
-
}
|
|
995
|
-
}
|
|
996
|
-
// If all attempts failed, return original point (pathfinding will fail, but at least we tried)
|
|
997
|
-
console.debug(` ✗ Could not find valid point after ${maxAttempts} attempts, using original`);
|
|
998
|
-
return point;
|
|
999
|
-
}
|
|
1000
|
-
/**
|
|
1001
|
-
* Convert point to map key
|
|
1002
|
-
*/
|
|
1003
|
-
pointToKey(point) {
|
|
1004
|
-
return `${point.x},${point.y}`;
|
|
1005
|
-
}
|
|
1006
|
-
/**
|
|
1007
|
-
* Convert map key to point
|
|
1008
|
-
*/
|
|
1009
|
-
keyToPoint(key) {
|
|
1010
|
-
const [x, y] = key.split(',').map(Number);
|
|
1011
|
-
return { x, y };
|
|
1012
|
-
}
|
|
1013
|
-
/**
|
|
1014
|
-
* Calculate total path length
|
|
1015
|
-
*/
|
|
1016
|
-
calculatePathLength(points) {
|
|
1017
|
-
let length = 0;
|
|
1018
|
-
for (let i = 0; i < points.length - 1; i++) {
|
|
1019
|
-
const dx = points[i + 1].x - points[i].x;
|
|
1020
|
-
const dy = points[i + 1].y - points[i].y;
|
|
1021
|
-
length += Math.sqrt(dx * dx + dy * dy);
|
|
1022
|
-
}
|
|
1023
|
-
return length;
|
|
1024
|
-
}
|
|
1025
|
-
/**
|
|
1026
|
-
* Count bends in path
|
|
1027
|
-
*/
|
|
1028
|
-
countBends(points) {
|
|
1029
|
-
if (points.length < 3)
|
|
1030
|
-
return 0;
|
|
1031
|
-
let bends = 0;
|
|
1032
|
-
for (let i = 1; i < points.length - 1; i++) {
|
|
1033
|
-
const prev = points[i - 1];
|
|
1034
|
-
const curr = points[i];
|
|
1035
|
-
const next = points[i + 1];
|
|
1036
|
-
// Check if direction changed
|
|
1037
|
-
const dir1 = this.getDirection(prev, curr);
|
|
1038
|
-
const dir2 = this.getDirection(curr, next);
|
|
1039
|
-
if (dir1 !== dir2) {
|
|
1040
|
-
bends++;
|
|
1041
|
-
}
|
|
1042
|
-
}
|
|
1043
|
-
return bends;
|
|
1044
|
-
}
|
|
1045
|
-
/**
|
|
1046
|
-
* Get direction between two points ('h' or 'v')
|
|
1047
|
-
*/
|
|
1048
|
-
getDirection(a, b) {
|
|
1049
|
-
return Math.abs(b.x - a.x) > Math.abs(b.y - a.y) ? 'h' : 'v';
|
|
1050
|
-
}
|
|
1051
|
-
/**
|
|
1052
|
-
* Remove duplicate consecutive points
|
|
1053
|
-
*/
|
|
1054
|
-
removeDuplicatePoints(points) {
|
|
1055
|
-
const result = [];
|
|
1056
|
-
for (let i = 0; i < points.length; i++) {
|
|
1057
|
-
if (i === 0 || points[i].x !== points[i - 1].x || points[i].y !== points[i - 1].y) {
|
|
1058
|
-
result.push(Object.assign({}, points[i]));
|
|
1059
|
-
}
|
|
1060
|
-
}
|
|
1061
|
-
return result;
|
|
1062
|
-
}
|
|
1063
|
-
/**
|
|
1064
|
-
* Calculate segments from points
|
|
1065
|
-
*/
|
|
1066
|
-
calculateSegments(points) {
|
|
1067
|
-
const segments = [];
|
|
1068
|
-
for (let i = 0; i < points.length - 1; i++) {
|
|
1069
|
-
const start = points[i];
|
|
1070
|
-
const end = points[i + 1];
|
|
1071
|
-
const dx = end.x - start.x;
|
|
1072
|
-
const dy = end.y - start.y;
|
|
1073
|
-
const length = Math.sqrt(dx * dx + dy * dy);
|
|
1074
|
-
const angle = (Math.atan2(dy, dx) * 180) / Math.PI;
|
|
1075
|
-
segments.push({
|
|
1076
|
-
start: Object.assign({}, start),
|
|
1077
|
-
end: Object.assign({}, end),
|
|
1078
|
-
length,
|
|
1079
|
-
angle,
|
|
1080
|
-
});
|
|
1081
|
-
}
|
|
1082
|
-
return segments;
|
|
1083
|
-
}
|
|
1084
|
-
}
|
|
1085
|
-
exports.OrthogonalRouter = OrthogonalRouter;
|
|
1086
|
-
/**
|
|
1087
|
-
* Wave 8 — Card 6: indexes memoised on the obstacle ARRAY's identity, so the
|
|
1088
|
-
* whole frame's links share one index instead of rebuilding it per link.
|
|
1089
|
-
* Weak, so an obstacle set dies with the frame that made it.
|
|
1090
|
-
*/
|
|
1091
|
-
OrthogonalRouter.indexCache = new WeakMap();
|
|
1092
|
-
//# sourceMappingURL=OrthogonalRouter.js.map
|