@grafloria/element 0.3.20 → 0.3.22
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 +2 -2
- 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,939 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// Wave 9 — Card 0: applyOp(model, op).
|
|
3
|
-
//
|
|
4
|
-
// The reducer the old command stream never had. `Command.serialize()` exists on every
|
|
5
|
-
// command in this codebase and NOTHING can deserialize it — the stream is write-only.
|
|
6
|
-
// This file is the other half: given a model and an op, produce the next model state,
|
|
7
|
-
// deterministically, with no reference to wall time, no random ids, and no dependence
|
|
8
|
-
// on anything outside (model, op).
|
|
9
|
-
//
|
|
10
|
-
// THE CONTRACT, and every later card leans on it:
|
|
11
|
-
//
|
|
12
|
-
// Replaying the same ORDERED log from the same start state, on any peer, any
|
|
13
|
-
// number of times, yields a BYTE-IDENTICAL diagram. (serialize() equality — not
|
|
14
|
-
// "looks the same".)
|
|
15
|
-
//
|
|
16
|
-
// Two disciplines make that true, and both are easy to lose:
|
|
17
|
-
//
|
|
18
|
-
// 1. NO AMBIENT INPUT. An op carries everything it needs. If a reducer ever reaches
|
|
19
|
-
// for Date.now(), Math.random() or a fresh uuid, replay stops being deterministic
|
|
20
|
-
// and every downstream guarantee dies with it. (This engine has been bitten by
|
|
21
|
-
// exactly that before: three layout adapters seeded from Math.random(), which
|
|
22
|
-
// made layouts untestable and saved diagrams move on reload.)
|
|
23
|
-
//
|
|
24
|
-
// 2. APPLYING AN OP MUST NOT EMIT AN OP. The capture layer listens to the same model
|
|
25
|
-
// mutations this reducer performs. Without a re-entrancy guard, applying a remote
|
|
26
|
-
// op would capture it as a *local* op, re-broadcast it, and the two peers would
|
|
27
|
-
// ping-pong forever. `applyOps` takes the guard; see OpCapture.
|
|
28
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.OpApplyError = void 0;
|
|
30
|
-
exports.applyOp = applyOp;
|
|
31
|
-
exports.applyEntitySet = applyEntitySet;
|
|
32
|
-
exports.readProp = readProp;
|
|
33
|
-
const tslib_1 = require("tslib");
|
|
34
|
-
const NodeModel_1 = require("../models/NodeModel");
|
|
35
|
-
const LinkModel_1 = require("../models/LinkModel");
|
|
36
|
-
const GroupModel_1 = require("../models/GroupModel");
|
|
37
|
-
const StrokeModel_1 = require("../models/StrokeModel");
|
|
38
|
-
const PortModel_1 = require("../models/PortModel");
|
|
39
|
-
const op_1 = require("./op");
|
|
40
|
-
/** Thrown only for a MALFORMED op — never for a merely-losing one. */
|
|
41
|
-
class OpApplyError extends Error {
|
|
42
|
-
constructor(message, op) {
|
|
43
|
-
super(message);
|
|
44
|
-
this.op = op;
|
|
45
|
-
this.name = 'OpApplyError';
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
exports.OpApplyError = OpApplyError;
|
|
49
|
-
/**
|
|
50
|
-
* Write a dotted path into a plain object, creating intermediate objects.
|
|
51
|
-
* `metadata.label` → obj.metadata.label.
|
|
52
|
-
*/
|
|
53
|
-
function setPath(obj, path, value) {
|
|
54
|
-
const parts = path.split('.');
|
|
55
|
-
let cur = obj;
|
|
56
|
-
for (let i = 0; i < parts.length - 1; i++) {
|
|
57
|
-
const k = parts[i];
|
|
58
|
-
const next = cur[k];
|
|
59
|
-
if (typeof next !== 'object' || next === null || Array.isArray(next)) {
|
|
60
|
-
cur[k] = {};
|
|
61
|
-
}
|
|
62
|
-
cur = cur[k];
|
|
63
|
-
}
|
|
64
|
-
cur[parts[parts.length - 1]] = value;
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Apply ONE op. Returns true if it changed anything.
|
|
68
|
-
*
|
|
69
|
-
* A NO-OP IS NOT AN ERROR, and this is load-bearing rather than lenient. In a
|
|
70
|
-
* distributed log you will legitimately receive:
|
|
71
|
-
* • a `set` on an entity a concurrent `remove` already deleted,
|
|
72
|
-
* • a `remove` for something already removed (duplicate delivery, or two peers
|
|
73
|
-
* deleting the same node),
|
|
74
|
-
* • an `add` for an id that already exists (the same op delivered twice).
|
|
75
|
-
* Every one of those is normal traffic, not corruption. Throwing on them would mean a
|
|
76
|
-
* single duplicated packet takes down the session. So we IGNORE them and say so by
|
|
77
|
-
* returning false — while still throwing loudly on an op that is genuinely malformed
|
|
78
|
-
* (unknown kind, missing id), because that IS a bug and hiding it helps nobody.
|
|
79
|
-
*/
|
|
80
|
-
function applyOp(diagram, op) {
|
|
81
|
-
switch (op.op) {
|
|
82
|
-
case 'add':
|
|
83
|
-
return applyAdd(diagram, op.target, op.id, op.data);
|
|
84
|
-
case 'remove':
|
|
85
|
-
return applyRemove(diagram, op.target, op.id);
|
|
86
|
-
case 'set':
|
|
87
|
-
return applySet(diagram, op);
|
|
88
|
-
default: {
|
|
89
|
-
const bad = op;
|
|
90
|
-
throw new OpApplyError(`unknown op kind: ${String(bad.op)}`, op);
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
function applyAdd(diagram, target, id, data) {
|
|
95
|
-
if (!id)
|
|
96
|
-
throw new OpApplyError('add op has no id', { op: 'add' });
|
|
97
|
-
if (!data)
|
|
98
|
-
throw new OpApplyError(`add op for ${target} ${id} has no data`, { op: 'add' });
|
|
99
|
-
switch (target) {
|
|
100
|
-
case 'node': {
|
|
101
|
-
const existing = diagram.getNode(id);
|
|
102
|
-
if (existing) {
|
|
103
|
-
if (sameContent(existing.serialize(), data))
|
|
104
|
-
return false; // duplicate delivery
|
|
105
|
-
diagram.removeNode(id); // a NEW INCARNATION — see reincarnate() below
|
|
106
|
-
}
|
|
107
|
-
diagram.addNode(NodeModel_1.NodeModel.fromJSON(data));
|
|
108
|
-
return true;
|
|
109
|
-
}
|
|
110
|
-
case 'link': {
|
|
111
|
-
const existing = diagram.getLink(id);
|
|
112
|
-
if (existing) {
|
|
113
|
-
if (sameContent(existing.serialize(), data))
|
|
114
|
-
return false;
|
|
115
|
-
diagram.removeLink(id);
|
|
116
|
-
}
|
|
117
|
-
diagram.addLink(LinkModel_1.LinkModel.fromJSON(data));
|
|
118
|
-
return true;
|
|
119
|
-
}
|
|
120
|
-
case 'group': {
|
|
121
|
-
const existing = diagram.getGroup(id);
|
|
122
|
-
if (existing) {
|
|
123
|
-
if (sameContent(existing.serialize(), data))
|
|
124
|
-
return false;
|
|
125
|
-
diagram.removeGroup(id);
|
|
126
|
-
}
|
|
127
|
-
diagram.addGroup(GroupModel_1.GroupModel.fromJSON(data));
|
|
128
|
-
return true;
|
|
129
|
-
}
|
|
130
|
-
case 'stroke': {
|
|
131
|
-
// wave10/whiteboard: a stroke `add` is the whole ink, minted once at pointerup. It is
|
|
132
|
-
// an INCARNATION like every other add — an already-present stroke is replaced, not
|
|
133
|
-
// ignored — so the presence barrier (older writes void) is coherent for ink too.
|
|
134
|
-
const existing = diagram.getStroke(id);
|
|
135
|
-
if (existing) {
|
|
136
|
-
if (sameContent(existing.serialize(), data))
|
|
137
|
-
return false;
|
|
138
|
-
diagram.removeStroke(id);
|
|
139
|
-
}
|
|
140
|
-
diagram.addStroke(StrokeModel_1.StrokeModel.fromJSON(data));
|
|
141
|
-
return true;
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
/**
|
|
146
|
-
* WHY AN `add` FOR AN ENTITY THAT ALREADY EXISTS REPLACES IT INSTEAD OF BEING IGNORED.
|
|
147
|
-
*
|
|
148
|
-
* The fuzz found this one and it is the subtlest bug in the wave. It needs a resurrection
|
|
149
|
-
* and an out-of-order delivery, which is to say: a Tuesday.
|
|
150
|
-
*
|
|
151
|
-
* Alice deletes node C → remove C @X
|
|
152
|
-
* Alice presses Ctrl-Z → add C @Y, carrying her SNAPSHOT of C
|
|
153
|
-
* Bob receives the ADD before the REMOVE (partial delivery — entirely normal)
|
|
154
|
-
*
|
|
155
|
-
* Bob still has C. The old reducer said "already here: duplicate delivery" and returned
|
|
156
|
-
* false, THROWING THE SNAPSHOT AWAY. The gate, meanwhile, had admitted the add and moved
|
|
157
|
-
* C's presence stamp to Y — so the presence barrier then refused every write older than Y,
|
|
158
|
-
* and Bob's C was frozen in whatever state Bob happened to have it in. When the remove @X
|
|
159
|
-
* finally arrived it was refused as superseded, so Bob never rebuilt C either.
|
|
160
|
-
*
|
|
161
|
-
* Result: Alice's C is her snapshot, Bob's C is a state that exists nowhere else in the
|
|
162
|
-
* system, both peers have seen every op, and nothing anywhere reports a problem.
|
|
163
|
-
*
|
|
164
|
-
* An `add` is not "create if absent". It ESTABLISHES AN INCARNATION: after it, the entity is
|
|
165
|
-
* exactly `data`, and (by the presence barrier) every write older than it is void. That is
|
|
166
|
-
* the only reading under which the barrier is coherent, and it is order-independent, which
|
|
167
|
-
* is the property that actually matters.
|
|
168
|
-
*
|
|
169
|
-
* Identical content is still a no-op, because a duplicate delivery must not bump `version`
|
|
170
|
-
* or fire a re-render — and `version` is precisely what must be ignored when comparing, since
|
|
171
|
-
* it is a per-replica mutation counter and two peers legitimately disagree about it.
|
|
172
|
-
*/
|
|
173
|
-
function sameContent(a, b) {
|
|
174
|
-
return deepEqual(stripVersion(a), stripVersion(b));
|
|
175
|
-
}
|
|
176
|
-
function stripVersion(v) {
|
|
177
|
-
if (Array.isArray(v))
|
|
178
|
-
return v.map(stripVersion);
|
|
179
|
-
if (v && typeof v === 'object') {
|
|
180
|
-
return Object.fromEntries(Object.entries(v)
|
|
181
|
-
.filter(([k]) => k !== 'version')
|
|
182
|
-
.map(([k, val]) => [k, stripVersion(val)]));
|
|
183
|
-
}
|
|
184
|
-
return v;
|
|
185
|
-
}
|
|
186
|
-
function applyRemove(diagram, target, id) {
|
|
187
|
-
switch (target) {
|
|
188
|
-
case 'node':
|
|
189
|
-
return diagram.removeNode(id) !== undefined;
|
|
190
|
-
case 'link':
|
|
191
|
-
return diagram.removeLink(id) !== undefined;
|
|
192
|
-
case 'group':
|
|
193
|
-
return diagram.removeGroup(id) !== undefined;
|
|
194
|
-
case 'stroke':
|
|
195
|
-
return diagram.removeStroke(id) !== undefined;
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
function applySet(diagram, op) {
|
|
199
|
-
const { target, id, path } = op;
|
|
200
|
-
// Clears are normalised to `undefined` HERE, in one place: an explicit `clear: true`
|
|
201
|
-
// (wave14) and an absent value key (every pre-wave14 log — JSON dropped the undefined)
|
|
202
|
-
// apply identically. See setValueOf.
|
|
203
|
-
const value = (0, op_1.setValueOf)(op);
|
|
204
|
-
if (target === 'diagram') {
|
|
205
|
-
// The redundant-write guard applies HERE TOO. It did not, and that was a bug: this
|
|
206
|
-
// branch used to return before ever reaching the check below, which made the diagram
|
|
207
|
-
// the one object in the system where re-applying an identical op still bumped the
|
|
208
|
-
// version counter and fired a spurious repaint on every duplicate packet.
|
|
209
|
-
if (deepEqual(readDiagramProp(diagram, path), value))
|
|
210
|
-
return false;
|
|
211
|
-
return setDiagramProp(diagram, path, value);
|
|
212
|
-
}
|
|
213
|
-
const entity = target === 'node'
|
|
214
|
-
? diagram.getNode(id)
|
|
215
|
-
: target === 'link'
|
|
216
|
-
? diagram.getLink(id)
|
|
217
|
-
: target === 'group'
|
|
218
|
-
? diagram.getGroup(id)
|
|
219
|
-
: diagram.getStroke(id);
|
|
220
|
-
// The entity is gone — a concurrent remove won, or this set arrived before its add.
|
|
221
|
-
// Dropping the write is correct under remove-wins (see CONVERGENCE in op-log.ts):
|
|
222
|
-
// resurrecting an entity from a stray property write would be far worse than losing
|
|
223
|
-
// one property write on a node that no longer exists.
|
|
224
|
-
//
|
|
225
|
-
// Card 4 note: "dropped" is right for a REMOVED entity and WRONG for one that has
|
|
226
|
-
// merely not arrived yet, or that referential integrity is holding in quarantine. Those
|
|
227
|
-
// two cases are caught ABOVE this function, by the Replica — see integrity.ts. applyOp
|
|
228
|
-
// itself stays a pure function of (model, op) and keeps no memory of its own.
|
|
229
|
-
if (!entity)
|
|
230
|
-
return false;
|
|
231
|
-
return applyEntitySet(entity, path, value);
|
|
232
|
-
}
|
|
233
|
-
/**
|
|
234
|
-
* Write one property register of an entity that is ALREADY RESOLVED.
|
|
235
|
-
*
|
|
236
|
-
* Split out of applySet so that referential integrity can drive the identical write into
|
|
237
|
-
* an entity it is holding OUTSIDE the diagram (a link quarantined because its endpoint
|
|
238
|
-
* node is gone, see integrity.ts). Same mutators, same idempotence guard, same everything —
|
|
239
|
-
* a quarantined entity that took a DIFFERENT write path would drift from a live one, and
|
|
240
|
-
* that drift would only surface on resurrection, long after the cause.
|
|
241
|
-
*/
|
|
242
|
-
function applyEntitySet(entity, path, value) {
|
|
243
|
-
// A WRITE THAT CHANGES NOTHING MUST DO NOTHING. This is not an optimisation, it is
|
|
244
|
-
// what makes applyOp IDEMPOTENT, and idempotence is not optional here: redundant sets
|
|
245
|
-
// are ROUTINE traffic (a duplicate delivery, a reconnect replaying the log, a peer
|
|
246
|
-
// catching up from a snapshot that already contains the op).
|
|
247
|
-
//
|
|
248
|
-
// Without this guard, re-applying an identical op still calls setPosition(), which
|
|
249
|
-
// bumps `version`, marks the entity dirty and fires a change event — because
|
|
250
|
-
// trackChange() compares with `===`, and {x:50,y:120} is never `===` to another
|
|
251
|
-
// {x:50,y:120}. So replaying a log twice drifts every version number (caught by the
|
|
252
|
-
// byte-identical replay test, which is the entire reason it demands BYTES and not
|
|
253
|
-
// "looks the same"), and every duplicate packet would trigger a spurious re-render
|
|
254
|
-
// forever.
|
|
255
|
-
if (deepEqual(readEntityProp(entity, path), value))
|
|
256
|
-
return false;
|
|
257
|
-
return setEntityProp(entity, path, value);
|
|
258
|
-
}
|
|
259
|
-
/** Read the register an op path names. Exported for undo, which needs the value a
|
|
260
|
-
* register held before an op overwrote it. */
|
|
261
|
-
function readProp(entity, path) {
|
|
262
|
-
return readEntityProp(entity, path);
|
|
263
|
-
}
|
|
264
|
-
/** Read the register an op path names, so we can tell a real write from a redundant one. */
|
|
265
|
-
function readEntityProp(entity, path) {
|
|
266
|
-
if (path.startsWith('metadata.')) {
|
|
267
|
-
return entity.getMetadata(path.slice('metadata.'.length));
|
|
268
|
-
}
|
|
269
|
-
// A PER-PORT register (wave14): `ports.<portId>` holds one serialized port, minus
|
|
270
|
-
// `version` — which is a per-replica mutation counter, excluded from the wire value at
|
|
271
|
-
// capture for the same reason the convergence oracle exempts it. Strip it here too, or
|
|
272
|
-
// the idempotence guard would compare a local counter against a remote one and never
|
|
273
|
-
// fire. An absent port reads as undefined: the register is empty.
|
|
274
|
-
if (path.startsWith('ports.') && entity instanceof NodeModel_1.NodeModel) {
|
|
275
|
-
const port = entity.getPort(path.slice('ports.'.length));
|
|
276
|
-
if (!port)
|
|
277
|
-
return undefined;
|
|
278
|
-
const _a = port.serialize(), { version: _version } = _a, data = tslib_1.__rest(_a, ["version"]);
|
|
279
|
-
return data;
|
|
280
|
-
}
|
|
281
|
-
// LEGACY: the whole-collection `ports` register. Held as a Map but travels as a
|
|
282
|
-
// serialized array — compare like with like, or the idempotence guard never fires and
|
|
283
|
-
// every duplicate delivery rebuilds the collection and bumps `version`, which the
|
|
284
|
-
// byte-identical replay oracle would then catch.
|
|
285
|
-
if (path === 'ports' && entity instanceof NodeModel_1.NodeModel) {
|
|
286
|
-
return entity.getPorts().map((p) => p.serialize());
|
|
287
|
-
}
|
|
288
|
-
// A group's `members` is a Set held in memory and an ARRAY on the wire (serialize()
|
|
289
|
-
// writes Array.from(members)) — compare like with like, exactly as `ports` above. Read
|
|
290
|
-
// raw, this returns the live Set, and deepEqual(Set, ['n1']) is false for every value
|
|
291
|
-
// any op could ever carry: the idempotence guard would never fire, so every duplicate
|
|
292
|
-
// delivery would rebuild the collection and bump `version`.
|
|
293
|
-
if (path === 'members' && entity instanceof GroupModel_1.GroupModel) {
|
|
294
|
-
return [...entity.members];
|
|
295
|
-
}
|
|
296
|
-
let cur = entity;
|
|
297
|
-
for (const part of path.split('.')) {
|
|
298
|
-
if (cur === null || typeof cur !== 'object')
|
|
299
|
-
return undefined;
|
|
300
|
-
cur = cur[part];
|
|
301
|
-
}
|
|
302
|
-
return cur;
|
|
303
|
-
}
|
|
304
|
-
/**
|
|
305
|
-
* Structural equality over JSON-shaped values.
|
|
306
|
-
*
|
|
307
|
-
* `undefined` and `null` are NOT the same thing here, and the old `a == b` on the line
|
|
308
|
-
* below said they were. `undefined` means THE REGISTER IS EMPTY (a cleared metadata
|
|
309
|
-
* key, an absent port); `null` is a VALUE a user can store. Conflating them made the
|
|
310
|
-
* idempotence guard drop a peer's `set(metadata.note, null)` as "redundant" against an
|
|
311
|
-
* empty register — the value never landed, and only on the RECEIVING side, the one
|
|
312
|
-
* place a single-process test never looks. Storing null and clearing must stay
|
|
313
|
-
* distinguishable end to end (op.ts's clear is explicit for the same reason).
|
|
314
|
-
*/
|
|
315
|
-
function deepEqual(a, b) {
|
|
316
|
-
if (a === b)
|
|
317
|
-
return true;
|
|
318
|
-
if (a === undefined || b === undefined || a === null || b === null)
|
|
319
|
-
return false;
|
|
320
|
-
if (typeof a !== 'object' || typeof b !== 'object')
|
|
321
|
-
return false;
|
|
322
|
-
if (Array.isArray(a) !== Array.isArray(b))
|
|
323
|
-
return false;
|
|
324
|
-
if (Array.isArray(a) && Array.isArray(b)) {
|
|
325
|
-
if (a.length !== b.length)
|
|
326
|
-
return false;
|
|
327
|
-
return a.every((v, i) => deepEqual(v, b[i]));
|
|
328
|
-
}
|
|
329
|
-
const ao = a;
|
|
330
|
-
const bo = b;
|
|
331
|
-
const ak = Object.keys(ao);
|
|
332
|
-
const bk = Object.keys(bo);
|
|
333
|
-
if (ak.length !== bk.length)
|
|
334
|
-
return false;
|
|
335
|
-
return ak.every((k) => Object.prototype.hasOwnProperty.call(bo, k) && deepEqual(ao[k], bo[k]));
|
|
336
|
-
}
|
|
337
|
-
/**
|
|
338
|
-
* Property writes go through the model's REAL mutators wherever one exists, and only
|
|
339
|
-
* fall back to a generic path write otherwise.
|
|
340
|
-
*
|
|
341
|
-
* That is deliberate and it matters: setPosition() does not merely assign x/y — it
|
|
342
|
-
* updates the spatial index, bumps the version, marks the entity dirty and fires
|
|
343
|
-
* change events. A reducer that reached in and assigned `node.position.x = 4` would
|
|
344
|
-
* produce a model that *looks* right, serializes right, and is invisible to culling,
|
|
345
|
-
* routing and the renderer. It would pass every test in this file and be broken on
|
|
346
|
-
* screen.
|
|
347
|
-
*/
|
|
348
|
-
function setEntityProp(entity, path, value) {
|
|
349
|
-
// A CLEAR (value normalised to undefined — explicit `clear: true`, or the absent value
|
|
350
|
-
// key every old log encodes). The register is EMPTIED, not set to a value: the
|
|
351
|
-
// metadata KEY is deleted (a Map that keeps the key with an undefined value only looks
|
|
352
|
-
// identical until someone calls `has()` — the receiving side used to diverge exactly
|
|
353
|
-
// there), and a cleared port register means the port is REMOVED, through the real
|
|
354
|
-
// mutator.
|
|
355
|
-
if (value === undefined)
|
|
356
|
-
return clearEntityProp(entity, path);
|
|
357
|
-
// METADATA IS A Map, NOT AN OBJECT. This is the trap in this file. A generic
|
|
358
|
-
// `entity.metadata = {...}` assignment produces a model that serializes correctly,
|
|
359
|
-
// passes every replay test, and is quietly broken everywhere else — every
|
|
360
|
-
// getMetadata() call in the engine would hit a plain object and return undefined.
|
|
361
|
-
// The model's own funnel already speaks this exact vocabulary (setMetadata emits
|
|
362
|
-
// trackChange(`metadata.${key}`)), so the op path and the mutator line up 1:1.
|
|
363
|
-
if (path.startsWith('metadata.')) {
|
|
364
|
-
entity.setMetadata(path.slice('metadata.'.length), structuredClone(value));
|
|
365
|
-
return true;
|
|
366
|
-
}
|
|
367
|
-
// A PER-PORT register (wave14): add if absent, update IN PLACE if present.
|
|
368
|
-
//
|
|
369
|
-
// THROUGH THE REAL MUTATORS, never a raw field write — node.ports is a Map and the
|
|
370
|
-
// original whole-collection bug replaced it with a plain object, after which
|
|
371
|
-
// getPorts() returned nothing and serialize() threw. addPort/removePort also emit
|
|
372
|
-
// port:added/port:removed, which is what keeps DiagramModel's portIndex current on
|
|
373
|
-
// the receiving peer.
|
|
374
|
-
//
|
|
375
|
-
// IN PLACE matters for a reason that is easy to miss: serialize() writes ports in Map
|
|
376
|
-
// insertion order, and order is part of the document. The AUTHOR of a port edit
|
|
377
|
-
// mutated the port where it stood; a receiver that did remove+add would move it to
|
|
378
|
-
// the end and the two would save byte-different files. (It would also drop the port's
|
|
379
|
-
// live connection state, which a rebuilt instance does not carry.)
|
|
380
|
-
if (path.startsWith('ports.') && entity instanceof NodeModel_1.NodeModel) {
|
|
381
|
-
const portId = path.slice('ports.'.length);
|
|
382
|
-
const data = value;
|
|
383
|
-
const existing = entity.getPort(portId);
|
|
384
|
-
if (!existing) {
|
|
385
|
-
// addPort() stamps fresh.nodeId with the owning node's id, and that stamp STANDS —
|
|
386
|
-
// see the nodeId note in updatePortInPlace for why apply never writes this field
|
|
387
|
-
// from the wire (the fuzz found both wrong answers: seeds 1062 and 33).
|
|
388
|
-
entity.addPort(PortModel_1.PortModel.fromJSON(structuredClone(data)));
|
|
389
|
-
return true;
|
|
390
|
-
}
|
|
391
|
-
return updatePortInPlace(existing, data);
|
|
392
|
-
}
|
|
393
|
-
// A GROUP'S `members` IS A Set — the third collection in this file, and the one that was
|
|
394
|
-
// missed. Everything the `metadata` and `ports` comments above warn about happened here,
|
|
395
|
-
// in production traffic, on the most ordinary edit a group has:
|
|
396
|
-
//
|
|
397
|
-
// • `addMember('node-1')` reached writeGeneric, which found no setMembers() and
|
|
398
|
-
// ASSIGNED THE RAW WIRE VALUE. The peer's `members` became the STRING 'node-1', and
|
|
399
|
-
// serialize()'s Array.from() split it per character: six phantom members
|
|
400
|
-
// ['n','o','d','e','-','1'], every one of them a node id that does not exist.
|
|
401
|
-
// • `removeMember()` travelled as `null`, so the peer's `members` became null and
|
|
402
|
-
// Array.from(null) THREW — the receiving peer could no longer serialize the document
|
|
403
|
-
// at all. Save, autosave and every further op broke, on the one peer that made no
|
|
404
|
-
// edit.
|
|
405
|
-
//
|
|
406
|
-
// Both were invisible to the author (their own Set is fine) and to every single-process
|
|
407
|
-
// test, which is exactly the shape of bug this file exists to prevent.
|
|
408
|
-
//
|
|
409
|
-
// THROUGH THE REAL MUTATORS — addMember/removeMember — never a raw Set write. They
|
|
410
|
-
// maintain the `parentGroupId` back-pointer that IS the nesting tree (a receiver that
|
|
411
|
-
// wrote the Set directly would hold the right membership and the wrong containment
|
|
412
|
-
// graph), they emit member:added/member:removed, and they reflow a layout container.
|
|
413
|
-
// The one thing they do that a raw write would not is consult `memberValidation` — a
|
|
414
|
-
// deliberately non-serialized LOCAL predicate; a peer that installed one has asked for
|
|
415
|
-
// candidates to be gated, and gating a remote membership is the same answer it gives a
|
|
416
|
-
// local one.
|
|
417
|
-
if (entity instanceof GroupModel_1.GroupModel && path === 'members') {
|
|
418
|
-
// A non-array is REFUSED rather than read as "no members" — same reasoning as `ports`.
|
|
419
|
-
// This also makes the fix safe against LOGS PERSISTED BEFORE IT: a pre-fix op carries
|
|
420
|
-
// the bare member id ('node-1') or null, and refusing both leaves the collection alone
|
|
421
|
-
// instead of corrupting it, so replaying an old log degrades rather than explodes.
|
|
422
|
-
if (!Array.isArray(value))
|
|
423
|
-
return false;
|
|
424
|
-
const wanted = new Set(value.filter((m) => typeof m === 'string'));
|
|
425
|
-
let changed = false;
|
|
426
|
-
for (const m of [...entity.members]) {
|
|
427
|
-
if (!wanted.has(m)) {
|
|
428
|
-
entity.removeMember(m);
|
|
429
|
-
changed = true;
|
|
430
|
-
}
|
|
431
|
-
}
|
|
432
|
-
for (const m of wanted) {
|
|
433
|
-
if (!entity.members.has(m)) {
|
|
434
|
-
entity.addMember(m);
|
|
435
|
-
changed = true;
|
|
436
|
-
}
|
|
437
|
-
}
|
|
438
|
-
// Same SET, possibly a different ORDER — and order is in serialize()
|
|
439
|
-
// (Array.from(members)), so two peers that converged on the same membership by
|
|
440
|
-
// different routes would otherwise save byte-different files. Align with the incoming
|
|
441
|
-
// collection, which every peer has. Direct Set surgery, exactly as the `ports` branch
|
|
442
|
-
// reorders its Map: this reorders nothing the model considers a change.
|
|
443
|
-
//
|
|
444
|
-
// Guarded by size: the removal loop leaves members ⊆ wanted and the add loop only adds
|
|
445
|
-
// from wanted, so equal sizes here means the two sets are EQUAL — and an addMember the
|
|
446
|
-
// group refused (capacity, a cycle, memberValidation) shows up as a size mismatch and
|
|
447
|
-
// correctly leaves the order alone.
|
|
448
|
-
if (entity.members.size === wanted.size) {
|
|
449
|
-
entity.members.clear();
|
|
450
|
-
for (const m of wanted)
|
|
451
|
-
entity.members.add(m);
|
|
452
|
-
}
|
|
453
|
-
return changed;
|
|
454
|
-
}
|
|
455
|
-
if (entity instanceof NodeModel_1.NodeModel) {
|
|
456
|
-
switch (path) {
|
|
457
|
-
case 'ports': {
|
|
458
|
-
// PORTS ARE A Map, exactly like metadata, and exactly as dangerous. There is no
|
|
459
|
-
// setPorts() mutator, so writeGeneric would fall through to a direct assignment and
|
|
460
|
-
// REPLACE THE Map WITH A PLAIN OBJECT — after which getPorts() returns nothing and
|
|
461
|
-
// serialize() throws on ports.values(). Rebuild it the way fromJSON does.
|
|
462
|
-
//
|
|
463
|
-
// A non-array is REFUSED rather than read as "no ports". `ports` always serializes as
|
|
464
|
-
// an array, so a missing value means a bug upstream, and the cost of guessing is a
|
|
465
|
-
// node stripped of every port it has and every link into it orphaned — which is
|
|
466
|
-
// exactly what an undo of the first port-add used to do.
|
|
467
|
-
if (!Array.isArray(value))
|
|
468
|
-
return false;
|
|
469
|
-
const incoming = value;
|
|
470
|
-
const wanted = new Map(incoming.map((p) => [p.id, p]));
|
|
471
|
-
// THROUGH THE REAL MUTATORS — addPort/removePort — and NOT by rewriting the Map.
|
|
472
|
-
//
|
|
473
|
-
// This file's own header says property writes must go through the model's mutators,
|
|
474
|
-
// and the first version of this branch broke that rule and paid for it. Rewriting
|
|
475
|
-
// `entity.ports` directly produces a node that serializes perfectly and is invisible
|
|
476
|
-
// to trackChange — which is to say invisible to CAPTURE. So a peer UNDOING its own
|
|
477
|
-
// port-add reverted its screen and BROADCAST NOTHING: every other peer kept the port
|
|
478
|
-
// forever. Two documents, identical logs, no error. The fuzz found it as a node with
|
|
479
|
-
// seven ports on one peer and six on the other.
|
|
480
|
-
//
|
|
481
|
-
// Live PortModels are kept where the id already exists: a port carries connection
|
|
482
|
-
// state and identity that a rebuilt instance would drop on the floor.
|
|
483
|
-
let changed = false;
|
|
484
|
-
for (const p of entity.getPorts()) {
|
|
485
|
-
if (!wanted.has(p.id)) {
|
|
486
|
-
entity.removePort(p.id);
|
|
487
|
-
changed = true;
|
|
488
|
-
}
|
|
489
|
-
}
|
|
490
|
-
for (const p of incoming) {
|
|
491
|
-
if (!entity.ports.has(p.id)) {
|
|
492
|
-
entity.addPort(PortModel_1.PortModel.fromJSON(p));
|
|
493
|
-
changed = true;
|
|
494
|
-
}
|
|
495
|
-
}
|
|
496
|
-
// Same SET, possibly a different ORDER — and order is in serialize(). Align it with
|
|
497
|
-
// the incoming collection, which every peer has. No mutator, and none wanted: this
|
|
498
|
-
// reorders nothing the model considers a change.
|
|
499
|
-
if (entity.ports.size === incoming.length) {
|
|
500
|
-
const reordered = incoming
|
|
501
|
-
.map((p) => entity.ports.get(p.id))
|
|
502
|
-
.filter((p) => p !== undefined);
|
|
503
|
-
if (reordered.length === incoming.length) {
|
|
504
|
-
entity.ports.clear();
|
|
505
|
-
for (const p of reordered)
|
|
506
|
-
entity.ports.set(p.id, p);
|
|
507
|
-
}
|
|
508
|
-
}
|
|
509
|
-
return changed;
|
|
510
|
-
}
|
|
511
|
-
case 'position': {
|
|
512
|
-
const p = value;
|
|
513
|
-
entity.setPosition(p.x, p.y, p.z);
|
|
514
|
-
return true;
|
|
515
|
-
}
|
|
516
|
-
case 'size': {
|
|
517
|
-
const s = value;
|
|
518
|
-
entity.setSize(s.width, s.height, s.depth);
|
|
519
|
-
return true;
|
|
520
|
-
}
|
|
521
|
-
case 'state':
|
|
522
|
-
// REPLACE the durable half, KEEP this viewer's own view half — never merge.
|
|
523
|
-
//
|
|
524
|
-
// `setState` MERGES, and `state` is a value register: the op carries the whole
|
|
525
|
-
// projected object the author now holds. So a peer could gain a key and never
|
|
526
|
-
// lose one — `error`, `warning`, `status` and `animateStatus` are optional, so
|
|
527
|
-
// the author clears an error badge and every OTHER peer keeps it forever, with
|
|
528
|
-
// no later edit able to correct it. Exactly the `style` defect, on the register
|
|
529
|
-
// next to it.
|
|
530
|
-
//
|
|
531
|
-
// It is not a bare wholesale replace either: capture strips the per-viewer keys
|
|
532
|
-
// (selected/hovered/highlighted/focused), so the incoming value never carries
|
|
533
|
-
// them and replacing wholesale would blank the RECEIVING user's own selection on
|
|
534
|
-
// every remote state edit. replaceState() draws exactly that line — including
|
|
535
|
-
// why it deliberately does NOT copy setState's read-only filter.
|
|
536
|
-
entity.replaceState(structuredClone(value));
|
|
537
|
-
return true;
|
|
538
|
-
case 'style':
|
|
539
|
-
// REPLACE, not merge. `style` is a value register: the op carries the whole
|
|
540
|
-
// object the author now holds, so applying it with the merging `setStyle` means
|
|
541
|
-
// a peer can gain a key but can NEVER LOSE ONE. Undo a fill and the author goes
|
|
542
|
-
// back to plain while every peer keeps the fill — the register is write-only in
|
|
543
|
-
// one direction. (Links never had this: they fall through to the generic writer,
|
|
544
|
-
// which assigns wholesale. Only the NodeModel branch merged.)
|
|
545
|
-
entity.replaceStyle(structuredClone(value));
|
|
546
|
-
return true;
|
|
547
|
-
}
|
|
548
|
-
}
|
|
549
|
-
if (entity instanceof LinkModel_1.LinkModel && path === 'points') {
|
|
550
|
-
entity.setPoints(structuredClone(value));
|
|
551
|
-
return true;
|
|
552
|
-
}
|
|
553
|
-
// A LINK'S `labels` IS AN ARRAY held behind tracked mutators, and it was the third
|
|
554
|
-
// collection to repeat the `members` mistake: addLabel/updateLabel reported the ONE
|
|
555
|
-
// label that moved and removeLabel reported `null`, so a peer assigned a bare object
|
|
556
|
-
// (or null) over its array and `serialize()` threw — the receiving peer could no longer
|
|
557
|
-
// save the document at all. setLabels() is the wholesale tracked write, and it refuses
|
|
558
|
-
// the non-array shapes a pre-fix log carries.
|
|
559
|
-
if (entity instanceof LinkModel_1.LinkModel && path === 'labels') {
|
|
560
|
-
if (!Array.isArray(value))
|
|
561
|
-
return false;
|
|
562
|
-
entity.setLabels(structuredClone(value));
|
|
563
|
-
return true;
|
|
564
|
-
}
|
|
565
|
-
// A NODE'S `children` AND `classes` ARE Sets — rebuilt through their real mutators, never
|
|
566
|
-
// assigned. `children` is serialized, so the bare-string write this replaced turned one
|
|
567
|
-
// child id into one phantom child PER CHARACTER.
|
|
568
|
-
if (entity instanceof NodeModel_1.NodeModel && (path === 'children' || path === 'classes')) {
|
|
569
|
-
if (!Array.isArray(value))
|
|
570
|
-
return false;
|
|
571
|
-
const ids = structuredClone(value);
|
|
572
|
-
if (path === 'children')
|
|
573
|
-
entity.setChildren(ids);
|
|
574
|
-
else
|
|
575
|
-
entity.setClasses(ids);
|
|
576
|
-
return true;
|
|
577
|
-
}
|
|
578
|
-
// A STROKE'S `style`: REPLACE, not merge — setStyle() merges, so a cleared key would
|
|
579
|
-
// never clear on a peer. replaceStyle() also keeps the bounds invalidation a plain
|
|
580
|
-
// assignment would skip.
|
|
581
|
-
if (entity instanceof StrokeModel_1.StrokeModel && path === 'style') {
|
|
582
|
-
entity.replaceStyle(structuredClone(value));
|
|
583
|
-
return true;
|
|
584
|
-
}
|
|
585
|
-
return writeGeneric(entity, path, value);
|
|
586
|
-
}
|
|
587
|
-
/**
|
|
588
|
-
* EMPTY a register — the apply half of an explicit clear (and of every old log's
|
|
589
|
-
* clear-by-omission).
|
|
590
|
-
*/
|
|
591
|
-
function clearEntityProp(entity, path) {
|
|
592
|
-
// The KEY is deleted. setMetadata(key, undefined) — which is what the old
|
|
593
|
-
// missing-as-undefined accident amounted to — leaves the key in the Map holding
|
|
594
|
-
// undefined: serialize() happens to drop it (JSON), so every byte oracle stayed green,
|
|
595
|
-
// but `metadata.has(key)` answered true on the receiver and false on the author.
|
|
596
|
-
if (path.startsWith('metadata.')) {
|
|
597
|
-
entity.deleteMetadata(path.slice('metadata.'.length));
|
|
598
|
-
return true;
|
|
599
|
-
}
|
|
600
|
-
// A cleared per-port register is the port's REMOVAL — through the real mutator, which
|
|
601
|
-
// fires port:removed and keeps the diagram's portIndex honest.
|
|
602
|
-
if (path.startsWith('ports.') && entity instanceof NodeModel_1.NodeModel) {
|
|
603
|
-
return entity.removePort(path.slice('ports.'.length)) !== undefined;
|
|
604
|
-
}
|
|
605
|
-
// The legacy whole-collection register is never cleared — no version of capture ever
|
|
606
|
-
// emitted that — so a clear here is malformed traffic; refuse it rather than strip a
|
|
607
|
-
// node of every port it has on a guess.
|
|
608
|
-
if (path === 'ports' && entity instanceof NodeModel_1.NodeModel)
|
|
609
|
-
return false;
|
|
610
|
-
// Nor is `members`: an emptied group travels as `[]` — a value, not a clear. Refuse a
|
|
611
|
-
// clear rather than strip a group of every member it has on a guess. (The pre-fix
|
|
612
|
-
// `removeMember` put a literal `null` on the wire, which is a VALUE and is refused one
|
|
613
|
-
// level up by the non-array guard in setEntityProp; this is the same refusal for the
|
|
614
|
-
// explicit-clear shape.)
|
|
615
|
-
if (path === 'members' && entity instanceof GroupModel_1.GroupModel)
|
|
616
|
-
return false;
|
|
617
|
-
// Generic: empty the slot the way the author's clear did (clearFlexItem assigns
|
|
618
|
-
// undefined and fires trackChange; there is no removeFlexConfig mutator to prefer).
|
|
619
|
-
//
|
|
620
|
-
// AND REPORT IT THROUGH THE FUNNEL — for exactly the reason writeGeneric does. A raw
|
|
621
|
-
// `holder[head] = undefined` does not pass trackChange, so an UNDO whose inverse is a
|
|
622
|
-
// clear (setFlexItem then undo → clear flexConfig) minted no op and reached no peer:
|
|
623
|
-
// measured flexConfig execute → 1 op, undo → 0 ops. clearFlexItem itself fires
|
|
624
|
-
// trackChange, but the reducer never calls it — it assigns — so the clear has to report
|
|
625
|
-
// on its own.
|
|
626
|
-
const [head, ...rest] = path.split('.');
|
|
627
|
-
const holder = entity;
|
|
628
|
-
if (rest.length === 0) {
|
|
629
|
-
const before = holder[head];
|
|
630
|
-
holder[head] = undefined;
|
|
631
|
-
entity.reportRegisterWrite(path, before, undefined);
|
|
632
|
-
return true;
|
|
633
|
-
}
|
|
634
|
-
const current = holder[head];
|
|
635
|
-
const next = typeof current === 'object' && current !== null && !Array.isArray(current)
|
|
636
|
-
? structuredClone(current)
|
|
637
|
-
: {};
|
|
638
|
-
const before = readEntityProp(entity, path);
|
|
639
|
-
setPath(next, rest.join('.'), undefined);
|
|
640
|
-
holder[head] = next;
|
|
641
|
-
entity.reportRegisterWrite(path, before, undefined);
|
|
642
|
-
return true;
|
|
643
|
-
}
|
|
644
|
-
/**
|
|
645
|
-
* Update a LIVE port from its register value, in place.
|
|
646
|
-
*
|
|
647
|
-
* The live instance is KEPT — it carries connection state and its position in the
|
|
648
|
-
* node's ports Map (which is serialize() order, i.e. part of the document) — and its
|
|
649
|
-
* fields are brought to the register value. Geometry goes through the port's REAL
|
|
650
|
-
* mutators (setPosition/setAlignment/setOffset fire trackChange, which is what lets a
|
|
651
|
-
* peer's capture re-emit when this runs under a LIVE capture — the undo path — and what
|
|
652
|
-
* keeps renderers listening on the port informed). Registry-backed fields go through
|
|
653
|
-
* their mutators for the same reason. The remaining declarative config is plain data
|
|
654
|
-
* with no mutator to prefer; it is assigned, cloned, exactly as fromJSON does.
|
|
655
|
-
*
|
|
656
|
-
* `version` is deliberately untouched: it is a per-replica counter, excluded from the
|
|
657
|
-
* wire value at capture, and the mutators below advance it as a real mutation should.
|
|
658
|
-
*/
|
|
659
|
-
function updatePortInPlace(port, data) {
|
|
660
|
-
var _a, _b, _c, _d, _e;
|
|
661
|
-
let changed = false;
|
|
662
|
-
if (!deepEqual(Object.assign({}, port.position), data.position)) {
|
|
663
|
-
port.setPosition(structuredClone(data.position));
|
|
664
|
-
changed = true;
|
|
665
|
-
}
|
|
666
|
-
if (!deepEqual(Object.assign({}, port.alignment), data.alignment)) {
|
|
667
|
-
port.setAlignment(structuredClone(data.alignment));
|
|
668
|
-
changed = true;
|
|
669
|
-
}
|
|
670
|
-
if (!deepEqual(Object.assign({}, port.offset), data.offset)) {
|
|
671
|
-
port.setOffset(structuredClone(data.offset));
|
|
672
|
-
changed = true;
|
|
673
|
-
}
|
|
674
|
-
// AFTER setAlignment, which forces explicitSide=true — the register value decides.
|
|
675
|
-
if (port.explicitSide !== (data.explicitSide === true)) {
|
|
676
|
-
port.explicitSide = data.explicitSide === true;
|
|
677
|
-
changed = true;
|
|
678
|
-
}
|
|
679
|
-
// allowedTypes is a Set; its mutators are the funnel (and they trackChange).
|
|
680
|
-
const wantTypes = new Set((_a = data.allowedTypes) !== null && _a !== void 0 ? _a : []);
|
|
681
|
-
for (const t of [...port.allowedTypes]) {
|
|
682
|
-
if (!wantTypes.has(t)) {
|
|
683
|
-
port.removeAllowedType(t);
|
|
684
|
-
changed = true;
|
|
685
|
-
}
|
|
686
|
-
}
|
|
687
|
-
for (const t of wantTypes) {
|
|
688
|
-
if (!port.allowedTypes.has(t)) {
|
|
689
|
-
port.addAllowedType(t);
|
|
690
|
-
changed = true;
|
|
691
|
-
}
|
|
692
|
-
}
|
|
693
|
-
// metadata is a Map — same discipline as every other Map in this file.
|
|
694
|
-
const wantMeta = ((_b = data.metadata) !== null && _b !== void 0 ? _b : {});
|
|
695
|
-
for (const k of [...port.metadata.keys()]) {
|
|
696
|
-
if (!(k in wantMeta)) {
|
|
697
|
-
port.deleteMetadata(k);
|
|
698
|
-
changed = true;
|
|
699
|
-
}
|
|
700
|
-
}
|
|
701
|
-
for (const [k, v] of Object.entries(wantMeta)) {
|
|
702
|
-
if (!deepEqual(port.getMetadata(k), v)) {
|
|
703
|
-
port.setMetadata(k, structuredClone(v));
|
|
704
|
-
changed = true;
|
|
705
|
-
}
|
|
706
|
-
}
|
|
707
|
-
if (!deepEqual(port.renderingConfig, data.renderingConfig)) {
|
|
708
|
-
port.setRenderingConfig(structuredClone(data.renderingConfig));
|
|
709
|
-
changed = true;
|
|
710
|
-
}
|
|
711
|
-
// The serialize() sentinel: null means unlimited (Infinity is not JSON-representable).
|
|
712
|
-
const wantMax = data.maxConnections === null || data.maxConnections === undefined
|
|
713
|
-
? Infinity
|
|
714
|
-
: data.maxConnections;
|
|
715
|
-
if (port.maxConnections !== wantMax) {
|
|
716
|
-
port.maxConnections = wantMax;
|
|
717
|
-
changed = true;
|
|
718
|
-
}
|
|
719
|
-
// Declarative config: plain values, assigned as fromJSON assigns them. `undefined`
|
|
720
|
-
// incoming means the author UNSET the field, and unset must travel too.
|
|
721
|
-
const assign = (key, want) => {
|
|
722
|
-
if (deepEqual(port[key], want))
|
|
723
|
-
return;
|
|
724
|
-
port[key] = typeof want === 'object' && want !== null ? structuredClone(want) : want;
|
|
725
|
-
changed = true;
|
|
726
|
-
};
|
|
727
|
-
// `nodeId` is deliberately NOT written from the wire. It is STRUCTURAL — the engine's
|
|
728
|
-
// own invariant is that a port's nodeId is its owning node's id (addPort stamps it,
|
|
729
|
-
// initializeDefaultPorts stamps it), and the register path already names the owner.
|
|
730
|
-
// The fuzz proved both wrong answers: taking the wire value while the add path let
|
|
731
|
-
// addPort stamp the owner diverged the update-path peers from the add-path peers
|
|
732
|
-
// (seed 1062), and forcing the wire value onto the add path diverged the UNDO AUTHOR
|
|
733
|
-
// from everyone — capture serializes the op inside addPort's trackChange, i.e. AFTER
|
|
734
|
-
// the stamp, so the wire said "owner" while the author's model had been reset to the
|
|
735
|
-
// wire's stale value (seed 33). The stamp is deterministic on every path; let it stand.
|
|
736
|
-
assign('type', data.type);
|
|
737
|
-
assign('systemType', data.systemType);
|
|
738
|
-
assign('index', (_c = data.index) !== null && _c !== void 0 ? _c : 0);
|
|
739
|
-
assign('visible', data.visible);
|
|
740
|
-
assign('style', ((_d = data.style) !== null && _d !== void 0 ? _d : {}));
|
|
741
|
-
assign('data', ((_e = data.data) !== null && _e !== void 0 ? _e : {}));
|
|
742
|
-
assign('group', data.group);
|
|
743
|
-
assign('shape', data.shape);
|
|
744
|
-
assign('label', data.label);
|
|
745
|
-
assign('layout', data.layout);
|
|
746
|
-
assign('fromSpot', data.fromSpot);
|
|
747
|
-
assign('toSpot', data.toSpot);
|
|
748
|
-
assign('spread', data.spread);
|
|
749
|
-
assign('dataType', data.dataType);
|
|
750
|
-
assign('isConnectableStart', data.isConnectableStart);
|
|
751
|
-
assign('isConnectableEnd', data.isConnectableEnd);
|
|
752
|
-
assign('fromMaxLinks', data.fromMaxLinks);
|
|
753
|
-
assign('toMaxLinks', data.toMaxLinks);
|
|
754
|
-
assign('allowSelfLink', data.allowSelfLink);
|
|
755
|
-
assign('allowDuplicateLinks', data.allowDuplicateLinks);
|
|
756
|
-
assign('dynamic', data.dynamic);
|
|
757
|
-
return changed;
|
|
758
|
-
}
|
|
759
|
-
/**
|
|
760
|
-
* Registers whose write MUST go through a named model mutator, and only those.
|
|
761
|
-
*
|
|
762
|
-
* ---------------------------------------------------------------------------
|
|
763
|
-
* WHY THIS IS A LIST AND NOT A NAME LOOKUP
|
|
764
|
-
* ---------------------------------------------------------------------------
|
|
765
|
-
*
|
|
766
|
-
* This used to be `entity['set' + Prop]` — call whatever method the register's name
|
|
767
|
-
* happens to spell. That is a GUESS, and it silently assumed every such method is a
|
|
768
|
-
* single-argument whole-value writer. Three in this engine are not, and each produced a
|
|
769
|
-
* different corruption on the receiving peer and nowhere else:
|
|
770
|
-
*
|
|
771
|
-
* setData(key, value) called as setData({color:'red'}) → the peer stored a key
|
|
772
|
-
* literally named "[object Object]" and NEVER received
|
|
773
|
-
* `data` at all. Every setData edit was lost on every peer.
|
|
774
|
-
* setScale(x, y) called with the point → peer got {x:{x:2,y:3}}.
|
|
775
|
-
* setTransformOrigin(x, y) → peer got {x:{x:0.25,y:0.75}}.
|
|
776
|
-
*
|
|
777
|
-
* And arity is not the whole test, because a one-argument setter can still be the WRONG
|
|
778
|
-
* KIND of write: `setBehavior` and `StrokeModel.setStyle` both MERGE, so applying a value
|
|
779
|
-
* register with them let a peer gain a key and never lose one. A guess cannot tell those
|
|
780
|
-
* apart from `setRotation`. An explicit list can, and it makes each decision reviewable
|
|
781
|
-
* instead of emergent — the same reason the read-only lock keeps its bypass greppable.
|
|
782
|
-
*
|
|
783
|
-
* The rule for admission: the method takes the register's value as its ONE argument and
|
|
784
|
-
* writes it WHOLESALE. Everything else falls through to the tracked assignment below,
|
|
785
|
-
* which is wholesale by construction.
|
|
786
|
-
*/
|
|
787
|
-
const REGISTER_MUTATORS = {
|
|
788
|
-
// NodeModel — position/size/state/style/ports/metadata are handled upstream.
|
|
789
|
-
node: new Set([
|
|
790
|
-
'rotation', // setRotation(degrees)
|
|
791
|
-
'zIndex', // setZIndex(z)
|
|
792
|
-
'portRenderingConfig', // setPortRenderingConfig(config)
|
|
793
|
-
'dragHandlerConfig', // setDragHandlerConfig(config)
|
|
794
|
-
'connectionGroup', // setConnectionGroup(group)
|
|
795
|
-
]),
|
|
796
|
-
// LinkModel — points/labels/style handled upstream (style has no mutator: wholesale).
|
|
797
|
-
link: new Set([
|
|
798
|
-
'pathType', // setPathType(t)
|
|
799
|
-
'router', // setRouter(name)
|
|
800
|
-
'connector', // setConnector(name)
|
|
801
|
-
]),
|
|
802
|
-
// GroupModel — members handled upstream.
|
|
803
|
-
group: new Set([
|
|
804
|
-
'capacity', // setCapacity(n)
|
|
805
|
-
'collapsedState', // setCollapsedState(state)
|
|
806
|
-
'zIndex', // setZIndex(z)
|
|
807
|
-
]),
|
|
808
|
-
// StrokeModel — style handled upstream (it merges).
|
|
809
|
-
stroke: new Set([
|
|
810
|
-
'points', // setPoints(points)
|
|
811
|
-
'label', // setLabel(label)
|
|
812
|
-
]),
|
|
813
|
-
};
|
|
814
|
-
function mutatorKind(entity) {
|
|
815
|
-
if (entity instanceof NodeModel_1.NodeModel)
|
|
816
|
-
return 'node';
|
|
817
|
-
if (entity instanceof LinkModel_1.LinkModel)
|
|
818
|
-
return 'link';
|
|
819
|
-
if (entity instanceof GroupModel_1.GroupModel)
|
|
820
|
-
return 'group';
|
|
821
|
-
return 'stroke';
|
|
822
|
-
}
|
|
823
|
-
/**
|
|
824
|
-
* Anything without a dedicated mutator: a link's `style`, `flexConfig`, `parentId`,
|
|
825
|
-
* `isCollapsed`, `layoutConfig`, `bounds`, an author's own field.
|
|
826
|
-
*
|
|
827
|
-
* Uses a real mutator ONLY where {@link REGISTER_MUTATORS} says one exists, because a
|
|
828
|
-
* mutator does more than assign — it updates the spatial index, bumps the version, marks
|
|
829
|
-
* dirty and emits change events.
|
|
830
|
-
*
|
|
831
|
-
* ---------------------------------------------------------------------------
|
|
832
|
-
* THE ASSIGNMENT FALLBACK REPORTS THROUGH THE FUNNEL, AND THAT IS LOAD-BEARING
|
|
833
|
-
* ---------------------------------------------------------------------------
|
|
834
|
-
*
|
|
835
|
-
* A plain `holder[head] = value` does not pass `trackChange()`. That looked harmless — the
|
|
836
|
-
* model is correct afterwards, it serializes correctly, every replay test is green — and
|
|
837
|
-
* it silently broke UNDO for every register on this path.
|
|
838
|
-
*
|
|
839
|
-
* `UndoStack.undo()` applies the inverse THROUGH THE MODEL WITH CAPTURE LIVE and then
|
|
840
|
-
* reads back whatever capture minted. No trackChange, no op, and the undo reaches NOBODY:
|
|
841
|
-
*
|
|
842
|
-
* link style execute → 1 op undo → 0 ops Bob stayed red forever
|
|
843
|
-
* flexConfig execute → 1 op undo → 0 ops
|
|
844
|
-
* isCollapsed execute → 1 op undo → 0 ops
|
|
845
|
-
* position execute → 1 op undo → 1 op ← a real mutator: always worked
|
|
846
|
-
*
|
|
847
|
-
* That is the `UpdateLinkStyleCommand` defect (style-undo.spec.ts) one layer down, hitting
|
|
848
|
-
* every mutator-less register at once, and invisible to the author every time. So the
|
|
849
|
-
* assignment path reports what it wrote. `reportRegisterWrite` is DiagramEntity's seam
|
|
850
|
-
* onto the one funnel — not a second source of truth.
|
|
851
|
-
*
|
|
852
|
-
* structuredClone stays, so two entities can never end up aliasing one mutable object — a
|
|
853
|
-
* bug that only appears under concurrency and is then almost impossible to find.
|
|
854
|
-
*/
|
|
855
|
-
function writeGeneric(entity, path, value) {
|
|
856
|
-
var _a;
|
|
857
|
-
const [head, ...rest] = path.split('.');
|
|
858
|
-
const holder = entity;
|
|
859
|
-
const cloned = structuredClone(value);
|
|
860
|
-
const viaMutator = ((_a = REGISTER_MUTATORS[mutatorKind(entity)]) === null || _a === void 0 ? void 0 : _a.has(head)) === true;
|
|
861
|
-
if (rest.length === 0) {
|
|
862
|
-
if (viaMutator) {
|
|
863
|
-
holder[`set${head[0].toUpperCase()}${head.slice(1)}`].call(entity, cloned);
|
|
864
|
-
return true;
|
|
865
|
-
}
|
|
866
|
-
const before = holder[head];
|
|
867
|
-
holder[head] = cloned;
|
|
868
|
-
entity.reportRegisterWrite(path, before, cloned);
|
|
869
|
-
return true;
|
|
870
|
-
}
|
|
871
|
-
// A DOTTED path (`data.color`): the register is the LEAF, but the field that holds it is
|
|
872
|
-
// the head, so the whole holder is rebuilt with the leaf replaced. The change is reported
|
|
873
|
-
// under the FULL path — that is the vocabulary capture emitted it with, so an undo of a
|
|
874
|
-
// `data.color` edit mints a `data.color` op and not a whole-`data` one.
|
|
875
|
-
const current = holder[head];
|
|
876
|
-
const next = typeof current === 'object' && current !== null && !Array.isArray(current)
|
|
877
|
-
? structuredClone(current)
|
|
878
|
-
: {};
|
|
879
|
-
setPath(next, rest.join('.'), cloned);
|
|
880
|
-
const before = readEntityProp(entity, path);
|
|
881
|
-
holder[head] = next;
|
|
882
|
-
entity.reportRegisterWrite(path, before, cloned);
|
|
883
|
-
return true;
|
|
884
|
-
}
|
|
885
|
-
/** Read a diagram-level register, so a redundant write can be recognised as one. */
|
|
886
|
-
function readDiagramProp(diagram, path) {
|
|
887
|
-
if (path.startsWith('metadata.')) {
|
|
888
|
-
return diagram.getMetadata(path.slice('metadata.'.length));
|
|
889
|
-
}
|
|
890
|
-
let cur = diagram;
|
|
891
|
-
for (const part of path.split('.')) {
|
|
892
|
-
if (cur === null || typeof cur !== 'object')
|
|
893
|
-
return undefined;
|
|
894
|
-
cur = cur[part];
|
|
895
|
-
}
|
|
896
|
-
return cur;
|
|
897
|
-
}
|
|
898
|
-
function setDiagramProp(diagram, path, value) {
|
|
899
|
-
// THE DIAGRAM'S metadata IS A Map TOO — and I wrote the comment above warning about
|
|
900
|
-
// exactly this, fixed it for entities, and left the identical bug six lines away. The
|
|
901
|
-
// generic branch below would replace the Map with a plain object: getMetadata() returns
|
|
902
|
-
// undefined forever after, and serialize()'s Object.fromEntries(this.metadata) breaks.
|
|
903
|
-
// Silent, permanent, and it only bites the peer RECEIVING the edit — the one place a
|
|
904
|
-
// single-process test can never look.
|
|
905
|
-
if (path.startsWith('metadata.')) {
|
|
906
|
-
// A clear DELETES the key (see clearEntityProp — the Map must not keep a key
|
|
907
|
-
// holding undefined); a value is stored through the mutator.
|
|
908
|
-
if (value === undefined)
|
|
909
|
-
diagram.deleteMetadata(path.slice('metadata.'.length));
|
|
910
|
-
else
|
|
911
|
-
diagram.setMetadata(path.slice('metadata.'.length), structuredClone(value));
|
|
912
|
-
return true;
|
|
913
|
-
}
|
|
914
|
-
switch (path) {
|
|
915
|
-
case 'name':
|
|
916
|
-
// A name is never cleared — no capture path emits that — so a clear here is
|
|
917
|
-
// malformed traffic; refuse it rather than store the string "undefined".
|
|
918
|
-
if (value === undefined)
|
|
919
|
-
return false;
|
|
920
|
-
diagram.name = String(value);
|
|
921
|
-
return true;
|
|
922
|
-
default: {
|
|
923
|
-
const holder = diagram;
|
|
924
|
-
const [head, ...rest] = path.split('.');
|
|
925
|
-
if (rest.length === 0) {
|
|
926
|
-
holder[head] = structuredClone(value);
|
|
927
|
-
return true;
|
|
928
|
-
}
|
|
929
|
-
const current = holder[head];
|
|
930
|
-
const next = typeof current === 'object' && current !== null && !Array.isArray(current)
|
|
931
|
-
? structuredClone(current)
|
|
932
|
-
: {};
|
|
933
|
-
setPath(next, rest.join('.'), structuredClone(value));
|
|
934
|
-
holder[head] = next;
|
|
935
|
-
return true;
|
|
936
|
-
}
|
|
937
|
-
}
|
|
938
|
-
}
|
|
939
|
-
//# sourceMappingURL=apply-op.js.map
|