@grafloria/element 0.3.18 → 0.3.20
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/esm/src/index.js +295 -0
- package/esm/src/lib/dashboard-kit/dashboard.js +590 -0
- package/esm/src/lib/dashboard-kit/grid-binder.js +1633 -0
- package/esm/src/lib/dashboard-kit/grid-mapping.js +164 -0
- package/esm/src/lib/dashboard-kit/index.js +8 -0
- package/esm/src/lib/dashboard-kit/styles.js +205 -0
- package/esm/src/lib/dashboard-kit/widgets.js +379 -0
- package/esm/src/lib/diagram-kit/card.js +199 -0
- package/esm/src/lib/diagram-kit/editing.js +448 -0
- package/esm/src/lib/diagram-kit/er.js +160 -0
- package/esm/src/lib/diagram-kit/handles.js +312 -0
- package/esm/src/lib/diagram-kit/index.js +15 -0
- package/esm/src/lib/diagram-kit/join-guidance.js +322 -0
- package/esm/src/lib/diagram-kit/rows.js +144 -0
- package/esm/src/lib/diagram-kit/styles.js +118 -0
- package/esm/src/lib/diagram-kit/uml.js +135 -0
- package/esm/src/lib/diagram-kit/update.js +244 -0
- package/esm/src/lib/grafloria-flow-element.js +266 -0
- package/esm/src/lib/grafloria.js +69 -0
- package/esm/src/lib/load.js +252 -0
- package/esm/src/lib/node-type-registry.js +42 -0
- package/esm/src/lib/stencil-kit/builders.js +18 -0
- package/esm/src/lib/stencil-kit/card-builders.js +105 -0
- package/esm/src/lib/stencil-kit/index.js +9 -0
- package/esm/src/lib/stencil-kit/palette.js +427 -0
- package/esm/src/lib/stencil-kit/shape-data.js +537 -0
- package/esm/src/lib/stencil-kit/styles.js +126 -0
- package/package.json +13 -4
- package/src/index.d.ts +2 -1
- package/src/index.js +11 -2
- package/src/lib/dashboard-kit/grid-binder.js +16 -15
- package/src/lib/dashboard-kit/styles.js +9 -3
- package/src/lib/diagram-kit/index.d.ts +1 -0
- package/src/lib/diagram-kit/index.js +11 -1
- package/src/lib/diagram-kit/join-guidance.d.ts +116 -0
- package/src/lib/diagram-kit/join-guidance.js +331 -0
- package/src/lib/stencil-kit/palette.js +60 -6
- package/src/lib/stencil-kit/shape-data.d.ts +3 -2
- package/src/lib/stencil-kit/shape-data.js +323 -31
- package/src/lib/stencil-kit/styles.js +15 -0
- package/src/libs/element/src/index.d.ts +92 -0
- package/src/libs/element/src/index.js +576 -0
- package/src/libs/element/src/lib/dashboard-kit/dashboard.d.ts +345 -0
- package/src/libs/element/src/lib/dashboard-kit/dashboard.js +594 -0
- package/src/libs/element/src/lib/dashboard-kit/grid-binder.d.ts +277 -0
- package/src/libs/element/src/lib/dashboard-kit/grid-binder.js +1636 -0
- package/src/libs/element/src/lib/dashboard-kit/grid-mapping.d.ts +141 -0
- package/src/libs/element/src/lib/dashboard-kit/grid-mapping.js +176 -0
- package/src/libs/element/src/lib/dashboard-kit/index.d.ts +5 -0
- package/src/libs/element/src/lib/dashboard-kit/index.js +33 -0
- package/src/libs/element/src/lib/dashboard-kit/styles.d.ts +25 -0
- package/src/libs/element/src/lib/dashboard-kit/styles.js +209 -0
- package/src/libs/element/src/lib/dashboard-kit/widgets.d.ts +112 -0
- package/src/libs/element/src/lib/dashboard-kit/widgets.js +389 -0
- package/src/libs/element/src/lib/diagram-kit/card.d.ts +75 -0
- package/src/libs/element/src/lib/diagram-kit/card.js +209 -0
- package/src/libs/element/src/lib/diagram-kit/editing.d.ts +58 -0
- package/src/libs/element/src/lib/diagram-kit/editing.js +453 -0
- package/src/libs/element/src/lib/diagram-kit/er.d.ts +73 -0
- package/src/libs/element/src/lib/diagram-kit/er.js +163 -0
- package/src/libs/element/src/lib/diagram-kit/handles.d.ts +181 -0
- package/src/libs/element/src/lib/diagram-kit/handles.js +325 -0
- package/src/libs/element/src/lib/diagram-kit/index.d.ts +10 -0
- package/src/libs/element/src/lib/diagram-kit/index.js +55 -0
- package/src/libs/element/src/lib/diagram-kit/join-guidance.d.ts +116 -0
- package/src/libs/element/src/lib/diagram-kit/join-guidance.js +331 -0
- package/src/libs/element/src/lib/diagram-kit/rows.d.ts +53 -0
- package/src/libs/element/src/lib/diagram-kit/rows.js +147 -0
- package/src/libs/element/src/lib/diagram-kit/styles.d.ts +18 -0
- package/src/libs/element/src/lib/diagram-kit/styles.js +122 -0
- package/src/libs/element/src/lib/diagram-kit/uml.d.ts +59 -0
- package/src/libs/element/src/lib/diagram-kit/uml.js +138 -0
- package/src/libs/element/src/lib/diagram-kit/update.d.ts +133 -0
- package/src/libs/element/src/lib/diagram-kit/update.js +251 -0
- package/src/libs/element/src/lib/grafloria-flow-element.d.ts +48 -0
- package/src/libs/element/src/lib/grafloria-flow-element.js +271 -0
- package/src/libs/element/src/lib/grafloria.d.ts +72 -0
- package/src/libs/element/src/lib/grafloria.js +74 -0
- package/src/libs/element/src/lib/load.d.ts +72 -0
- package/src/libs/element/src/lib/load.js +255 -0
- package/src/libs/element/src/lib/node-type-registry.d.ts +39 -0
- package/src/libs/element/src/lib/node-type-registry.js +50 -0
- package/src/libs/element/src/lib/stencil-kit/builders.d.ts +45 -0
- package/src/libs/element/src/lib/stencil-kit/builders.js +24 -0
- package/src/libs/element/src/lib/stencil-kit/card-builders.d.ts +2 -0
- package/src/libs/element/src/lib/stencil-kit/card-builders.js +108 -0
- package/src/libs/element/src/lib/stencil-kit/index.d.ts +7 -0
- package/src/libs/element/src/lib/stencil-kit/index.js +19 -0
- package/src/libs/element/src/lib/stencil-kit/palette.d.ts +93 -0
- package/src/libs/element/src/lib/stencil-kit/palette.js +430 -0
- package/src/libs/element/src/lib/stencil-kit/shape-data.d.ts +28 -0
- package/src/libs/element/src/lib/stencil-kit/shape-data.js +540 -0
- package/src/libs/element/src/lib/stencil-kit/styles.d.ts +2 -0
- package/src/libs/element/src/lib/stencil-kit/styles.js +129 -0
- package/src/libs/engine/src/adapters/component-adapter.interface.d.ts +302 -0
- package/src/libs/engine/src/adapters/component-adapter.interface.js +84 -0
- package/src/libs/engine/src/adapters/index.d.ts +7 -0
- package/src/libs/engine/src/adapters/index.js +11 -0
- package/src/libs/engine/src/clipboard/ClipboardManager.d.ts +81 -0
- package/src/libs/engine/src/clipboard/ClipboardManager.js +108 -0
- package/src/libs/engine/src/clipboard/index.d.ts +1 -0
- package/src/libs/engine/src/clipboard/index.js +6 -0
- package/src/libs/engine/src/collab/apply-op.d.ts +42 -0
- package/src/libs/engine/src/collab/apply-op.js +939 -0
- package/src/libs/engine/src/collab/capture.d.ts +147 -0
- package/src/libs/engine/src/collab/capture.js +510 -0
- package/src/libs/engine/src/collab/index.d.ts +12 -0
- package/src/libs/engine/src/collab/index.js +84 -0
- package/src/libs/engine/src/collab/integrity.d.ts +178 -0
- package/src/libs/engine/src/collab/integrity.js +438 -0
- package/src/libs/engine/src/collab/lww.d.ts +47 -0
- package/src/libs/engine/src/collab/lww.js +188 -0
- package/src/libs/engine/src/collab/op-log.d.ts +50 -0
- package/src/libs/engine/src/collab/op-log.js +167 -0
- package/src/libs/engine/src/collab/op.d.ts +120 -0
- package/src/libs/engine/src/collab/op.js +118 -0
- package/src/libs/engine/src/collab/replica.d.ts +188 -0
- package/src/libs/engine/src/collab/replica.js +526 -0
- package/src/libs/engine/src/collab/undo.d.ts +106 -0
- package/src/libs/engine/src/collab/undo.js +388 -0
- package/src/libs/engine/src/commands/Command.d.ts +66 -0
- package/src/libs/engine/src/commands/Command.js +64 -0
- package/src/libs/engine/src/commands/CommandManager.d.ts +161 -0
- package/src/libs/engine/src/commands/CommandManager.js +417 -0
- package/src/libs/engine/src/commands/basic/AddGroupCommand.d.ts +13 -0
- package/src/libs/engine/src/commands/basic/AddGroupCommand.js +50 -0
- package/src/libs/engine/src/commands/basic/AddLinkCommand.d.ts +13 -0
- package/src/libs/engine/src/commands/basic/AddLinkCommand.js +50 -0
- package/src/libs/engine/src/commands/basic/AddNodeCommand.d.ts +13 -0
- package/src/libs/engine/src/commands/basic/AddNodeCommand.js +65 -0
- package/src/libs/engine/src/commands/basic/AddToGroupCommand.d.ts +12 -0
- package/src/libs/engine/src/commands/basic/AddToGroupCommand.js +73 -0
- package/src/libs/engine/src/commands/basic/AlignCommands.d.ts +42 -0
- package/src/libs/engine/src/commands/basic/AlignCommands.js +138 -0
- package/src/libs/engine/src/commands/basic/CollapseGroupCommand.d.ts +14 -0
- package/src/libs/engine/src/commands/basic/CollapseGroupCommand.js +70 -0
- package/src/libs/engine/src/commands/basic/CopyCommand.d.ts +29 -0
- package/src/libs/engine/src/commands/basic/CopyCommand.js +131 -0
- package/src/libs/engine/src/commands/basic/CutCommand.d.ts +49 -0
- package/src/libs/engine/src/commands/basic/CutCommand.js +68 -0
- package/src/libs/engine/src/commands/basic/DeleteSelectionCommand.d.ts +58 -0
- package/src/libs/engine/src/commands/basic/DeleteSelectionCommand.js +309 -0
- package/src/libs/engine/src/commands/basic/DuplicateCommand.d.ts +31 -0
- package/src/libs/engine/src/commands/basic/DuplicateCommand.js +232 -0
- package/src/libs/engine/src/commands/basic/ExpandGroupCommand.d.ts +12 -0
- package/src/libs/engine/src/commands/basic/ExpandGroupCommand.js +69 -0
- package/src/libs/engine/src/commands/basic/MoveGroupCommand.d.ts +46 -0
- package/src/libs/engine/src/commands/basic/MoveGroupCommand.js +77 -0
- package/src/libs/engine/src/commands/basic/MoveNodeCommand.d.ts +30 -0
- package/src/libs/engine/src/commands/basic/MoveNodeCommand.js +87 -0
- package/src/libs/engine/src/commands/basic/NodeZOrderCommands.d.ts +39 -0
- package/src/libs/engine/src/commands/basic/NodeZOrderCommands.js +120 -0
- package/src/libs/engine/src/commands/basic/PasteCommand.d.ts +33 -0
- package/src/libs/engine/src/commands/basic/PasteCommand.js +228 -0
- package/src/libs/engine/src/commands/basic/PortCommands.d.ts +22 -0
- package/src/libs/engine/src/commands/basic/PortCommands.js +85 -0
- package/src/libs/engine/src/commands/basic/ReconnectLinkCommand.d.ts +15 -0
- package/src/libs/engine/src/commands/basic/ReconnectLinkCommand.js +59 -0
- package/src/libs/engine/src/commands/basic/RemoveFromGroupCommand.d.ts +12 -0
- package/src/libs/engine/src/commands/basic/RemoveFromGroupCommand.js +64 -0
- package/src/libs/engine/src/commands/basic/RemoveGroupCommand.d.ts +12 -0
- package/src/libs/engine/src/commands/basic/RemoveGroupCommand.js +56 -0
- package/src/libs/engine/src/commands/basic/RemoveLinkCommand.d.ts +12 -0
- package/src/libs/engine/src/commands/basic/RemoveLinkCommand.js +57 -0
- package/src/libs/engine/src/commands/basic/RemoveNodeCommand.d.ts +23 -0
- package/src/libs/engine/src/commands/basic/RemoveNodeCommand.js +108 -0
- package/src/libs/engine/src/commands/basic/ResizeNodeCommand.d.ts +16 -0
- package/src/libs/engine/src/commands/basic/ResizeNodeCommand.js +81 -0
- package/src/libs/engine/src/commands/basic/RotateNodeCommand.d.ts +37 -0
- package/src/libs/engine/src/commands/basic/RotateNodeCommand.js +88 -0
- package/src/libs/engine/src/commands/basic/SetFlexItemCommand.d.ts +14 -0
- package/src/libs/engine/src/commands/basic/SetFlexItemCommand.js +74 -0
- package/src/libs/engine/src/commands/basic/SetGridItemCommand.d.ts +14 -0
- package/src/libs/engine/src/commands/basic/SetGridItemCommand.js +74 -0
- package/src/libs/engine/src/commands/basic/SetLayoutCommand.d.ts +16 -0
- package/src/libs/engine/src/commands/basic/SetLayoutCommand.js +80 -0
- package/src/libs/engine/src/commands/basic/SetLinkDisplayLabelCommand.d.ts +28 -0
- package/src/libs/engine/src/commands/basic/SetLinkDisplayLabelCommand.js +83 -0
- package/src/libs/engine/src/commands/basic/SetLinkLabelCommand.d.ts +24 -0
- package/src/libs/engine/src/commands/basic/SetLinkLabelCommand.js +81 -0
- package/src/libs/engine/src/commands/basic/SetLinkLabelsCommand.d.ts +14 -0
- package/src/libs/engine/src/commands/basic/SetLinkLabelsCommand.js +75 -0
- package/src/libs/engine/src/commands/basic/SetLinkPathTypeCommand.d.ts +14 -0
- package/src/libs/engine/src/commands/basic/SetLinkPathTypeCommand.js +77 -0
- package/src/libs/engine/src/commands/basic/SetLinkPointsCommand.d.ts +32 -0
- package/src/libs/engine/src/commands/basic/SetLinkPointsCommand.js +87 -0
- package/src/libs/engine/src/commands/basic/SetNodeDataCommand.d.ts +14 -0
- package/src/libs/engine/src/commands/basic/SetNodeDataCommand.js +93 -0
- package/src/libs/engine/src/commands/basic/SetNodeLabelCommand.d.ts +26 -0
- package/src/libs/engine/src/commands/basic/SetNodeLabelCommand.js +81 -0
- package/src/libs/engine/src/commands/basic/SetNodeShapeConfigCommand.d.ts +14 -0
- package/src/libs/engine/src/commands/basic/SetNodeShapeConfigCommand.js +69 -0
- package/src/libs/engine/src/commands/basic/SetNodeStyleCommand.d.ts +15 -0
- package/src/libs/engine/src/commands/basic/SetNodeStyleCommand.js +88 -0
- package/src/libs/engine/src/commands/basic/SetParentCommand.d.ts +13 -0
- package/src/libs/engine/src/commands/basic/SetParentCommand.js +109 -0
- package/src/libs/engine/src/commands/basic/SetStrokePointsCommand.d.ts +34 -0
- package/src/libs/engine/src/commands/basic/SetStrokePointsCommand.js +86 -0
- package/src/libs/engine/src/commands/basic/StrokeLifecycleCommands.d.ts +31 -0
- package/src/libs/engine/src/commands/basic/StrokeLifecycleCommands.js +88 -0
- package/src/libs/engine/src/commands/basic/UpdateLinkStyleCommand.d.ts +15 -0
- package/src/libs/engine/src/commands/basic/UpdateLinkStyleCommand.js +72 -0
- package/src/libs/engine/src/commands/basic/index.d.ts +41 -0
- package/src/libs/engine/src/commands/basic/index.js +52 -0
- package/src/libs/engine/src/commands/basic/remapNodePortIds.d.ts +23 -0
- package/src/libs/engine/src/commands/basic/remapNodePortIds.js +46 -0
- package/src/libs/engine/src/commands/basic/resolveLinkNodeIds.d.ts +31 -0
- package/src/libs/engine/src/commands/basic/resolveLinkNodeIds.js +49 -0
- package/src/libs/engine/src/commands/composite/BatchCommand.d.ts +19 -0
- package/src/libs/engine/src/commands/composite/BatchCommand.js +61 -0
- package/src/libs/engine/src/commands/composite/MacroCommand.d.ts +35 -0
- package/src/libs/engine/src/commands/composite/MacroCommand.js +87 -0
- package/src/libs/engine/src/commands/composite/index.d.ts +2 -0
- package/src/libs/engine/src/commands/composite/index.js +7 -0
- package/src/libs/engine/src/commands/index.d.ts +4 -0
- package/src/libs/engine/src/commands/index.js +9 -0
- package/src/libs/engine/src/comments/comment-store.d.ts +238 -0
- package/src/libs/engine/src/comments/comment-store.js +538 -0
- package/src/libs/engine/src/comments/index.d.ts +4 -0
- package/src/libs/engine/src/comments/index.js +31 -0
- package/src/libs/engine/src/comments/mentions.d.ts +52 -0
- package/src/libs/engine/src/comments/mentions.js +94 -0
- package/src/libs/engine/src/comments/read-state.d.ts +37 -0
- package/src/libs/engine/src/comments/read-state.js +105 -0
- package/src/libs/engine/src/comments/types.d.ts +154 -0
- package/src/libs/engine/src/comments/types.js +107 -0
- package/src/libs/engine/src/config/InteractionConfig.d.ts +330 -0
- package/src/libs/engine/src/config/InteractionConfig.js +154 -0
- package/src/libs/engine/src/config/index.d.ts +1 -0
- package/src/libs/engine/src/config/index.js +6 -0
- package/src/libs/engine/src/dsl/DSL.d.ts +197 -0
- package/src/libs/engine/src/dsl/DSL.js +564 -0
- package/src/libs/engine/src/dsl/advanced/StyleParser.d.ts +75 -0
- package/src/libs/engine/src/dsl/advanced/StyleParser.js +166 -0
- package/src/libs/engine/src/dsl/advanced/TemplateParser.d.ts +88 -0
- package/src/libs/engine/src/dsl/advanced/TemplateParser.js +226 -0
- package/src/libs/engine/src/dsl/advanced/index.d.ts +9 -0
- package/src/libs/engine/src/dsl/advanced/index.js +13 -0
- package/src/libs/engine/src/dsl/detector/LayoutDetector.d.ts +80 -0
- package/src/libs/engine/src/dsl/detector/LayoutDetector.js +333 -0
- package/src/libs/engine/src/dsl/extended/BPMNGenerator.d.ts +38 -0
- package/src/libs/engine/src/dsl/extended/BPMNGenerator.js +90 -0
- package/src/libs/engine/src/dsl/extended/BPMNParser.d.ts +83 -0
- package/src/libs/engine/src/dsl/extended/BPMNParser.js +198 -0
- package/src/libs/engine/src/dsl/extended/ERDGenerator.d.ts +38 -0
- package/src/libs/engine/src/dsl/extended/ERDGenerator.js +126 -0
- package/src/libs/engine/src/dsl/extended/ERDParser.d.ts +81 -0
- package/src/libs/engine/src/dsl/extended/ERDParser.js +161 -0
- package/src/libs/engine/src/dsl/extended/ERDTransformer.d.ts +43 -0
- package/src/libs/engine/src/dsl/extended/ERDTransformer.js +105 -0
- package/src/libs/engine/src/dsl/extended/UMLGenerator.d.ts +42 -0
- package/src/libs/engine/src/dsl/extended/UMLGenerator.js +157 -0
- package/src/libs/engine/src/dsl/extended/UMLParser.d.ts +99 -0
- package/src/libs/engine/src/dsl/extended/UMLParser.js +200 -0
- package/src/libs/engine/src/dsl/extended/index.d.ts +13 -0
- package/src/libs/engine/src/dsl/extended/index.js +27 -0
- package/src/libs/engine/src/dsl/generator/DSLFormatter.d.ts +87 -0
- package/src/libs/engine/src/dsl/generator/DSLFormatter.js +261 -0
- package/src/libs/engine/src/dsl/generator/DSLGenerator.d.ts +96 -0
- package/src/libs/engine/src/dsl/generator/DSLGenerator.js +328 -0
- package/src/libs/engine/src/dsl/generator/DiagramAnalyzer.d.ts +111 -0
- package/src/libs/engine/src/dsl/generator/DiagramAnalyzer.js +361 -0
- package/src/libs/engine/src/dsl/index.d.ts +35 -0
- package/src/libs/engine/src/dsl/index.js +64 -0
- package/src/libs/engine/src/dsl/lexer/Lexer.d.ts +117 -0
- package/src/libs/engine/src/dsl/lexer/Lexer.js +521 -0
- package/src/libs/engine/src/dsl/mermaid/MermaidClass.d.ts +136 -0
- package/src/libs/engine/src/dsl/mermaid/MermaidClass.js +429 -0
- package/src/libs/engine/src/dsl/mermaid/MermaidER.d.ts +118 -0
- package/src/libs/engine/src/dsl/mermaid/MermaidER.js +338 -0
- package/src/libs/engine/src/dsl/mermaid/MermaidState.d.ts +89 -0
- package/src/libs/engine/src/dsl/mermaid/MermaidState.js +613 -0
- package/src/libs/engine/src/dsl/mermaid/index.d.ts +10 -0
- package/src/libs/engine/src/dsl/mermaid/index.js +33 -0
- package/src/libs/engine/src/dsl/mermaid/layout.d.ts +70 -0
- package/src/libs/engine/src/dsl/mermaid/layout.js +162 -0
- package/src/libs/engine/src/dsl/mermaid/lines.d.ts +25 -0
- package/src/libs/engine/src/dsl/mermaid/lines.js +74 -0
- package/src/libs/engine/src/dsl/parser/Parser.d.ts +131 -0
- package/src/libs/engine/src/dsl/parser/Parser.js +725 -0
- package/src/libs/engine/src/dsl/sync/BidirectionalSync.d.ts +154 -0
- package/src/libs/engine/src/dsl/sync/BidirectionalSync.js +389 -0
- package/src/libs/engine/src/dsl/sync/IntegratedSyncManager.d.ts +128 -0
- package/src/libs/engine/src/dsl/sync/IntegratedSyncManager.js +244 -0
- package/src/libs/engine/src/dsl/sync/LayoutApplicator.d.ts +140 -0
- package/src/libs/engine/src/dsl/sync/LayoutApplicator.js +271 -0
- package/src/libs/engine/src/dsl/sync/SyncStateManager.d.ts +145 -0
- package/src/libs/engine/src/dsl/sync/SyncStateManager.js +253 -0
- package/src/libs/engine/src/dsl/sync/index.d.ts +13 -0
- package/src/libs/engine/src/dsl/sync/index.js +21 -0
- package/src/libs/engine/src/dsl/transformer/ASTTransformer.d.ts +150 -0
- package/src/libs/engine/src/dsl/transformer/ASTTransformer.js +605 -0
- package/src/libs/engine/src/dsl/types/ASTNode.d.ts +159 -0
- package/src/libs/engine/src/dsl/types/ASTNode.js +31 -0
- package/src/libs/engine/src/dsl/types/Token.d.ts +79 -0
- package/src/libs/engine/src/dsl/types/Token.js +84 -0
- package/src/libs/engine/src/engine/DiagramEngine.d.ts +917 -0
- package/src/libs/engine/src/engine/DiagramEngine.js +2190 -0
- package/src/libs/engine/src/engine/DiagramMode.d.ts +51 -0
- package/src/libs/engine/src/engine/DiagramMode.js +53 -0
- package/src/libs/engine/src/engine/DiagramModeTypes.d.ts +73 -0
- package/src/libs/engine/src/engine/DiagramModeTypes.js +4 -0
- package/src/libs/engine/src/engine/ModeManager.d.ts +155 -0
- package/src/libs/engine/src/engine/ModeManager.js +387 -0
- package/src/libs/engine/src/engine/index.d.ts +2 -0
- package/src/libs/engine/src/engine/index.js +7 -0
- package/src/libs/engine/src/events/EventBus.d.ts +106 -0
- package/src/libs/engine/src/events/EventBus.js +226 -0
- package/src/libs/engine/src/events/index.d.ts +1 -0
- package/src/libs/engine/src/events/index.js +6 -0
- package/src/libs/engine/src/index.d.ts +43 -0
- package/src/libs/engine/src/index.js +142 -0
- package/src/libs/engine/src/interaction/GroupCollapseService.d.ts +53 -0
- package/src/libs/engine/src/interaction/GroupCollapseService.js +274 -0
- package/src/libs/engine/src/interaction/GroupMembershipService.d.ts +107 -0
- package/src/libs/engine/src/interaction/GroupMembershipService.js +245 -0
- package/src/libs/engine/src/interaction/SemanticMembershipService.d.ts +28 -0
- package/src/libs/engine/src/interaction/SemanticMembershipService.js +168 -0
- package/src/libs/engine/src/interaction/SwimlaneService.d.ts +62 -0
- package/src/libs/engine/src/interaction/SwimlaneService.js +180 -0
- package/src/libs/engine/src/interaction/index.d.ts +4 -0
- package/src/libs/engine/src/interaction/index.js +9 -0
- package/src/libs/engine/src/interop/drawio/importDrawio.d.ts +52 -0
- package/src/libs/engine/src/interop/drawio/importDrawio.js +940 -0
- package/src/libs/engine/src/interop/drawio/index.d.ts +1 -0
- package/src/libs/engine/src/interop/drawio/index.js +12 -0
- package/src/libs/engine/src/interop/drawio/xml.d.ts +26 -0
- package/src/libs/engine/src/interop/drawio/xml.js +213 -0
- package/src/libs/engine/src/layout/CompoundLayoutService.d.ts +121 -0
- package/src/libs/engine/src/layout/CompoundLayoutService.js +616 -0
- package/src/libs/engine/src/layout/ILayoutAlgorithm.d.ts +120 -0
- package/src/libs/engine/src/layout/ILayoutAlgorithm.js +88 -0
- package/src/libs/engine/src/layout/LayoutManager.d.ts +155 -0
- package/src/libs/engine/src/layout/LayoutManager.js +640 -0
- package/src/libs/engine/src/layout/SmartSpacingCalculator.d.ts +62 -0
- package/src/libs/engine/src/layout/SmartSpacingCalculator.js +134 -0
- package/src/libs/engine/src/layout/ViewportTransform.d.ts +55 -0
- package/src/libs/engine/src/layout/ViewportTransform.js +118 -0
- package/src/libs/engine/src/layout/algorithms/ForceDirectedLayoutAlgorithm.d.ts +34 -0
- package/src/libs/engine/src/layout/algorithms/ForceDirectedLayoutAlgorithm.js +317 -0
- package/src/libs/engine/src/layout/algorithms/GridLayoutAlgorithm.d.ts +56 -0
- package/src/libs/engine/src/layout/algorithms/GridLayoutAlgorithm.js +223 -0
- package/src/libs/engine/src/layout/algorithms/HierarchicalLayoutAlgorithm.d.ts +60 -0
- package/src/libs/engine/src/layout/algorithms/HierarchicalLayoutAlgorithm.js +307 -0
- package/src/libs/engine/src/layout/algorithms/HybridLayoutAlgorithm.d.ts +62 -0
- package/src/libs/engine/src/layout/algorithms/HybridLayoutAlgorithm.js +324 -0
- package/src/libs/engine/src/layout/community-layout-adapter.d.ts +107 -0
- package/src/libs/engine/src/layout/community-layout-adapter.js +486 -0
- package/src/libs/engine/src/layout/component-packing.d.ts +98 -0
- package/src/libs/engine/src/layout/component-packing.js +307 -0
- package/src/libs/engine/src/layout/dagre-layout-adapter.d.ts +122 -0
- package/src/libs/engine/src/layout/dagre-layout-adapter.js +697 -0
- package/src/libs/engine/src/layout/edge-bundling.interface.d.ts +159 -0
- package/src/libs/engine/src/layout/edge-bundling.interface.js +379 -0
- package/src/libs/engine/src/layout/elk-layout-adapter.d.ts +121 -0
- package/src/libs/engine/src/layout/elk-layout-adapter.js +586 -0
- package/src/libs/engine/src/layout/elk-loader.d.ts +1 -0
- package/src/libs/engine/src/layout/elk-loader.js +24 -0
- package/src/libs/engine/src/layout/force-layout-adapter.d.ts +167 -0
- package/src/libs/engine/src/layout/force-layout-adapter.js +790 -0
- package/src/libs/engine/src/layout/grid-pack/grid-pack-engine.d.ts +323 -0
- package/src/libs/engine/src/layout/grid-pack/grid-pack-engine.js +685 -0
- package/src/libs/engine/src/layout/incremental/mental-map.d.ts +98 -0
- package/src/libs/engine/src/layout/incremental/mental-map.js +221 -0
- package/src/libs/engine/src/layout/incremental-layout.interface.d.ts +145 -0
- package/src/libs/engine/src/layout/incremental-layout.interface.js +300 -0
- package/src/libs/engine/src/layout/index.d.ts +83 -0
- package/src/libs/engine/src/layout/index.js +116 -0
- package/src/libs/engine/src/layout/layout-adapter.interface.d.ts +185 -0
- package/src/libs/engine/src/layout/layout-adapter.interface.js +10 -0
- package/src/libs/engine/src/layout/layout-auto-select.d.ts +160 -0
- package/src/libs/engine/src/layout/layout-auto-select.js +621 -0
- package/src/libs/engine/src/layout/layout-constraints.interface.d.ts +117 -0
- package/src/libs/engine/src/layout/layout-constraints.interface.js +138 -0
- package/src/libs/engine/src/layout/layout-graph.d.ts +70 -0
- package/src/libs/engine/src/layout/layout-graph.js +119 -0
- package/src/libs/engine/src/layout/layout-history.d.ts +147 -0
- package/src/libs/engine/src/layout/layout-history.js +258 -0
- package/src/libs/engine/src/layout/layout-host.d.ts +172 -0
- package/src/libs/engine/src/layout/layout-host.js +523 -0
- package/src/libs/engine/src/layout/layout-presets.d.ts +91 -0
- package/src/libs/engine/src/layout/layout-presets.js +333 -0
- package/src/libs/engine/src/layout/layout-quality-extended.d.ts +66 -0
- package/src/libs/engine/src/layout/layout-quality-extended.js +246 -0
- package/src/libs/engine/src/layout/layout-quality-metrics.d.ts +127 -0
- package/src/libs/engine/src/layout/layout-quality-metrics.js +466 -0
- package/src/libs/engine/src/layout/layout-registry.d.ts +309 -0
- package/src/libs/engine/src/layout/layout-registry.js +414 -0
- package/src/libs/engine/src/layout/layout.service.d.ts +100 -0
- package/src/libs/engine/src/layout/layout.service.js +216 -0
- package/src/libs/engine/src/layout/overlap-removal.d.ts +20 -0
- package/src/libs/engine/src/layout/overlap-removal.js +117 -0
- package/src/libs/engine/src/layout/port-aware-layout.interface.d.ts +232 -0
- package/src/libs/engine/src/layout/port-aware-layout.interface.js +413 -0
- package/src/libs/engine/src/layout/port-label-bridge.d.ts +77 -0
- package/src/libs/engine/src/layout/port-label-bridge.js +250 -0
- package/src/libs/engine/src/layout/portfolio-layouts.d.ts +53 -0
- package/src/libs/engine/src/layout/portfolio-layouts.js +388 -0
- package/src/libs/engine/src/layout/rng.d.ts +34 -0
- package/src/libs/engine/src/layout/rng.js +71 -0
- package/src/libs/engine/src/layout/spectral-layout-adapter.d.ts +72 -0
- package/src/libs/engine/src/layout/spectral-layout-adapter.js +379 -0
- package/src/libs/engine/src/layout/steppable-layout.d.ts +40 -0
- package/src/libs/engine/src/layout/steppable-layout.js +34 -0
- package/src/libs/engine/src/layout/subgraph-layout.interface.d.ts +269 -0
- package/src/libs/engine/src/layout/subgraph-layout.interface.js +452 -0
- package/src/libs/engine/src/layout/sugiyama/layered-layout.d.ts +9 -0
- package/src/libs/engine/src/layout/sugiyama/layered-layout.js +83 -0
- package/src/libs/engine/src/layout/sugiyama/sugiyama.d.ts +91 -0
- package/src/libs/engine/src/layout/sugiyama/sugiyama.js +797 -0
- package/src/libs/engine/src/layout/tree-layout.d.ts +43 -0
- package/src/libs/engine/src/layout/tree-layout.js +426 -0
- package/src/libs/engine/src/layout/types.d.ts +263 -0
- package/src/libs/engine/src/layout/types.js +6 -0
- package/src/libs/engine/src/lib/performance/mobile-performance.service.d.ts +43 -0
- package/src/libs/engine/src/lib/performance/mobile-performance.service.js +95 -0
- package/src/libs/engine/src/models/DiagramEntity.d.ts +174 -0
- package/src/libs/engine/src/models/DiagramEntity.js +366 -0
- package/src/libs/engine/src/models/DiagramModel.d.ts +960 -0
- package/src/libs/engine/src/models/DiagramModel.js +2416 -0
- package/src/libs/engine/src/models/GroupModel.d.ts +573 -0
- package/src/libs/engine/src/models/GroupModel.js +1373 -0
- package/src/libs/engine/src/models/LinkModel.d.ts +395 -0
- package/src/libs/engine/src/models/LinkModel.js +1045 -0
- package/src/libs/engine/src/models/NodeModel.d.ts +666 -0
- package/src/libs/engine/src/models/NodeModel.js +1512 -0
- package/src/libs/engine/src/models/PortModel.d.ts +292 -0
- package/src/libs/engine/src/models/PortModel.js +637 -0
- package/src/libs/engine/src/models/StrokeModel.d.ts +160 -0
- package/src/libs/engine/src/models/StrokeModel.js +387 -0
- package/src/libs/engine/src/models/index.d.ts +7 -0
- package/src/libs/engine/src/models/index.js +12 -0
- package/src/libs/engine/src/models/readonly-lock.d.ts +108 -0
- package/src/libs/engine/src/models/readonly-lock.js +125 -0
- package/src/libs/engine/src/performance/LRUCache.d.ts +78 -0
- package/src/libs/engine/src/performance/LRUCache.js +179 -0
- package/src/libs/engine/src/performance/PerformanceMonitor.d.ts +47 -0
- package/src/libs/engine/src/performance/PerformanceMonitor.js +112 -0
- package/src/libs/engine/src/performance/SpatialIndex.d.ts +157 -0
- package/src/libs/engine/src/performance/SpatialIndex.js +306 -0
- package/src/libs/engine/src/performance/index.d.ts +2 -0
- package/src/libs/engine/src/performance/index.js +7 -0
- package/src/libs/engine/src/plugins/PluginManager.d.ts +95 -0
- package/src/libs/engine/src/plugins/PluginManager.js +388 -0
- package/src/libs/engine/src/plugins/index.d.ts +1 -0
- package/src/libs/engine/src/plugins/index.js +6 -0
- package/src/libs/engine/src/ports/connection-rules.d.ts +32 -0
- package/src/libs/engine/src/ports/connection-rules.js +131 -0
- package/src/libs/engine/src/ports/dynamic-ports.d.ts +27 -0
- package/src/libs/engine/src/ports/dynamic-ports.js +135 -0
- package/src/libs/engine/src/ports/index.d.ts +5 -0
- package/src/libs/engine/src/ports/index.js +16 -0
- package/src/libs/engine/src/ports/port-groups.d.ts +43 -0
- package/src/libs/engine/src/ports/port-groups.js +185 -0
- package/src/libs/engine/src/ports/port-type-registry.d.ts +34 -0
- package/src/libs/engine/src/ports/port-type-registry.js +87 -0
- package/src/libs/engine/src/ports/port-types.d.ts +266 -0
- package/src/libs/engine/src/ports/port-types.js +30 -0
- package/src/libs/engine/src/rendering/HtmlTemplateRenderer.d.ts +136 -0
- package/src/libs/engine/src/rendering/HtmlTemplateRenderer.js +292 -0
- package/src/libs/engine/src/rendering/LemonadeJSRenderer.d.ts +160 -0
- package/src/libs/engine/src/rendering/LemonadeJSRenderer.js +362 -0
- package/src/libs/engine/src/rendering/index.d.ts +2 -0
- package/src/libs/engine/src/rendering/index.js +7 -0
- package/src/libs/engine/src/routing/LiveReroutingEngine.d.ts +75 -0
- package/src/libs/engine/src/routing/LiveReroutingEngine.js +173 -0
- package/src/libs/engine/src/routing/ObstacleIndex.d.ts +42 -0
- package/src/libs/engine/src/routing/ObstacleIndex.js +215 -0
- package/src/libs/engine/src/routing/ObstacleMap.d.ts +68 -0
- package/src/libs/engine/src/routing/ObstacleMap.js +312 -0
- package/src/libs/engine/src/routing/ObstacleMapBuilder.d.ts +28 -0
- package/src/libs/engine/src/routing/ObstacleMapBuilder.js +76 -0
- package/src/libs/engine/src/routing/PathSimplifier.d.ts +119 -0
- package/src/libs/engine/src/routing/PathSimplifier.js +224 -0
- package/src/libs/engine/src/routing/RoutingEngine.d.ts +118 -0
- package/src/libs/engine/src/routing/RoutingEngine.js +546 -0
- package/src/libs/engine/src/routing/algorithms/AStarRouter.d.ts +90 -0
- package/src/libs/engine/src/routing/algorithms/AStarRouter.js +331 -0
- package/src/libs/engine/src/routing/algorithms/DijkstraRouter.d.ts +74 -0
- package/src/libs/engine/src/routing/algorithms/DijkstraRouter.js +297 -0
- package/src/libs/engine/src/routing/algorithms/ElkRouter.d.ts +34 -0
- package/src/libs/engine/src/routing/algorithms/ElkRouter.js +210 -0
- package/src/libs/engine/src/routing/algorithms/ManhattanRouter.d.ts +18 -0
- package/src/libs/engine/src/routing/algorithms/ManhattanRouter.js +224 -0
- package/src/libs/engine/src/routing/algorithms/OrthogonalRouter.d.ts +173 -0
- package/src/libs/engine/src/routing/algorithms/OrthogonalRouter.js +1092 -0
- package/src/libs/engine/src/routing/algorithms/StraightRouter.d.ts +8 -0
- package/src/libs/engine/src/routing/algorithms/StraightRouter.js +53 -0
- package/src/libs/engine/src/routing/algorithms/VisibilityGraphRouter.d.ts +59 -0
- package/src/libs/engine/src/routing/algorithms/VisibilityGraphRouter.js +258 -0
- package/src/libs/engine/src/routing/global/GlobalRouteSolver.d.ts +64 -0
- package/src/libs/engine/src/routing/global/GlobalRouteSolver.js +334 -0
- package/src/libs/engine/src/routing/global/solver-host.d.ts +65 -0
- package/src/libs/engine/src/routing/global/solver-host.js +87 -0
- package/src/libs/engine/src/routing/index.d.ts +15 -0
- package/src/libs/engine/src/routing/index.js +20 -0
- package/src/libs/engine/src/routing/types.d.ts +161 -0
- package/src/libs/engine/src/routing/types.js +4 -0
- package/src/libs/engine/src/selection/SelectionManager.d.ts +161 -0
- package/src/libs/engine/src/selection/SelectionManager.js +483 -0
- package/src/libs/engine/src/selection/index.d.ts +1 -0
- package/src/libs/engine/src/selection/index.js +6 -0
- package/src/libs/engine/src/serialization/DiagramMigrations.d.ts +41 -0
- package/src/libs/engine/src/serialization/DiagramMigrations.js +124 -0
- package/src/libs/engine/src/serialization/DiagramValidator.d.ts +20 -0
- package/src/libs/engine/src/serialization/DiagramValidator.js +136 -0
- package/src/libs/engine/src/serialization/DocumentEnvelope.d.ts +53 -0
- package/src/libs/engine/src/serialization/DocumentEnvelope.js +111 -0
- package/src/libs/engine/src/serialization/Incremental.d.ts +77 -0
- package/src/libs/engine/src/serialization/Incremental.js +227 -0
- package/src/libs/engine/src/serialization/Serializer.d.ts +29 -0
- package/src/libs/engine/src/serialization/Serializer.js +45 -0
- package/src/libs/engine/src/serialization/Subgraph.d.ts +51 -0
- package/src/libs/engine/src/serialization/Subgraph.js +172 -0
- package/src/libs/engine/src/serialization/TextFormat.d.ts +71 -0
- package/src/libs/engine/src/serialization/TextFormat.js +261 -0
- package/src/libs/engine/src/state/ConnectionStateManager.d.ts +178 -0
- package/src/libs/engine/src/state/ConnectionStateManager.js +319 -0
- package/src/libs/engine/src/state/DiagramStore.d.ts +134 -0
- package/src/libs/engine/src/state/DiagramStore.js +372 -0
- package/src/libs/engine/src/state/index.d.ts +2 -0
- package/src/libs/engine/src/state/index.js +7 -0
- package/src/libs/engine/src/sync/awareness.d.ts +91 -0
- package/src/libs/engine/src/sync/awareness.js +221 -0
- package/src/libs/engine/src/sync/batcher.d.ts +84 -0
- package/src/libs/engine/src/sync/batcher.js +0 -0
- package/src/libs/engine/src/sync/causal-buffer.d.ts +81 -0
- package/src/libs/engine/src/sync/causal-buffer.js +199 -0
- package/src/libs/engine/src/sync/index.d.ts +20 -0
- package/src/libs/engine/src/sync/index.js +41 -0
- package/src/libs/engine/src/sync/protocol.d.ts +74 -0
- package/src/libs/engine/src/sync/protocol.js +39 -0
- package/src/libs/engine/src/sync/sync-adapter.d.ts +243 -0
- package/src/libs/engine/src/sync/sync-adapter.js +524 -0
- package/src/libs/engine/src/sync/transport.d.ts +30 -0
- package/src/libs/engine/src/sync/transport.js +28 -0
- package/src/libs/engine/src/sync/transports/broadcast-channel.d.ts +39 -0
- package/src/libs/engine/src/sync/transports/broadcast-channel.js +117 -0
- package/src/libs/engine/src/sync/transports/memory.d.ts +38 -0
- package/src/libs/engine/src/sync/transports/memory.js +111 -0
- package/src/libs/engine/src/sync/transports/unreliable.d.ts +59 -0
- package/src/libs/engine/src/sync/transports/unreliable.js +153 -0
- package/src/libs/engine/src/sync/transports/websocket.d.ts +60 -0
- package/src/libs/engine/src/sync/transports/websocket.js +210 -0
- package/src/libs/engine/src/sync/version-vector.d.ts +47 -0
- package/src/libs/engine/src/sync/version-vector.js +218 -0
- package/src/libs/engine/src/template-library/common-templates.d.ts +46 -0
- package/src/libs/engine/src/template-library/common-templates.js +395 -0
- package/src/libs/engine/src/template-library/data-viz-templates.d.ts +52 -0
- package/src/libs/engine/src/template-library/data-viz-templates.js +471 -0
- package/src/libs/engine/src/template-library/erd-templates.d.ts +71 -0
- package/src/libs/engine/src/template-library/erd-templates.js +773 -0
- package/src/libs/engine/src/template-library/index.d.ts +141 -0
- package/src/libs/engine/src/template-library/index.js +271 -0
- package/src/libs/engine/src/template-library/integration.d.ts +80 -0
- package/src/libs/engine/src/template-library/integration.js +141 -0
- package/src/libs/engine/src/template-library/workflow-templates.d.ts +52 -0
- package/src/libs/engine/src/template-library/workflow-templates.js +438 -0
- package/src/libs/engine/src/templates/NodeFactory.d.ts +118 -0
- package/src/libs/engine/src/templates/NodeFactory.js +436 -0
- package/src/libs/engine/src/templates/NodeTemplate.d.ts +342 -0
- package/src/libs/engine/src/templates/NodeTemplate.js +13 -0
- package/src/libs/engine/src/templates/TemplateLoader.d.ts +46 -0
- package/src/libs/engine/src/templates/TemplateLoader.js +114 -0
- package/src/libs/engine/src/templates/TemplateRegistry.d.ts +70 -0
- package/src/libs/engine/src/templates/TemplateRegistry.js +128 -0
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-business-rule-task.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-business-rule-task.template.js +123 -0
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-end-event.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-end-event.template.js +123 -0
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-error-event.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-error-event.template.js +123 -0
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-exclusive-gateway.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-exclusive-gateway.template.js +124 -0
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-inclusive-gateway.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-inclusive-gateway.template.js +123 -0
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-intermediate-event.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-intermediate-event.template.js +124 -0
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-manual-task.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-manual-task.template.js +123 -0
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-message-event.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-message-event.template.js +122 -0
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-parallel-gateway.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-parallel-gateway.template.js +125 -0
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-script-task.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-script-task.template.js +123 -0
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-service-task.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-service-task.template.js +123 -0
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-start-event.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-start-event.template.js +123 -0
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-task.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-task.template.js +152 -0
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-timer-event.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-timer-event.template.js +123 -0
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-user-task.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-user-task.template.js +123 -0
- package/src/libs/engine/src/templates/generated/bpmn/index.d.ts +15 -0
- package/src/libs/engine/src/templates/generated/bpmn/index.js +34 -0
- package/src/libs/engine/src/templates/generated/erd/erd-associative-entity.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/erd/erd-associative-entity.template.js +152 -0
- package/src/libs/engine/src/templates/generated/erd/erd-attribute.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/erd/erd-attribute.template.js +122 -0
- package/src/libs/engine/src/templates/generated/erd/erd-bridge-entity.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/erd/erd-bridge-entity.template.js +151 -0
- package/src/libs/engine/src/templates/generated/erd/erd-composite-attribute.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/erd/erd-composite-attribute.template.js +122 -0
- package/src/libs/engine/src/templates/generated/erd/erd-derived-attribute.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/erd/erd-derived-attribute.template.js +122 -0
- package/src/libs/engine/src/templates/generated/erd/erd-discriminator.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/erd/erd-discriminator.template.js +123 -0
- package/src/libs/engine/src/templates/generated/erd/erd-entity.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/erd/erd-entity.template.js +149 -0
- package/src/libs/engine/src/templates/generated/erd/erd-isa.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/erd/erd-isa.template.js +123 -0
- package/src/libs/engine/src/templates/generated/erd/erd-key-attribute.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/erd/erd-key-attribute.template.js +122 -0
- package/src/libs/engine/src/templates/generated/erd/erd-multivalued-attribute.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/erd/erd-multivalued-attribute.template.js +122 -0
- package/src/libs/engine/src/templates/generated/erd/erd-optional-attribute.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/erd/erd-optional-attribute.template.js +122 -0
- package/src/libs/engine/src/templates/generated/erd/erd-partial-key.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/erd/erd-partial-key.template.js +123 -0
- package/src/libs/engine/src/templates/generated/erd/erd-relationship.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/erd/erd-relationship.template.js +121 -0
- package/src/libs/engine/src/templates/generated/erd/erd-subtype.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/erd/erd-subtype.template.js +123 -0
- package/src/libs/engine/src/templates/generated/erd/erd-supertype.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/erd/erd-supertype.template.js +123 -0
- package/src/libs/engine/src/templates/generated/erd/erd-table.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/erd/erd-table.template.js +123 -0
- package/src/libs/engine/src/templates/generated/erd/erd-view.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/erd/erd-view.template.js +123 -0
- package/src/libs/engine/src/templates/generated/erd/erd-weak-entity.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/erd/erd-weak-entity.template.js +149 -0
- package/src/libs/engine/src/templates/generated/erd/erd-weak-relationship.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/erd/erd-weak-relationship.template.js +122 -0
- package/src/libs/engine/src/templates/generated/erd/index.d.ts +19 -0
- package/src/libs/engine/src/templates/generated/erd/index.js +42 -0
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-connector.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-connector.template.js +123 -0
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-data.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-data.template.js +123 -0
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-decision.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-decision.template.js +123 -0
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-delay.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-delay.template.js +124 -0
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-display.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-display.template.js +124 -0
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-document.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-document.template.js +123 -0
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-manual-input.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-manual-input.template.js +123 -0
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-manual-operation.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-manual-operation.template.js +122 -0
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-merge.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-merge.template.js +122 -0
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-or.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-or.template.js +123 -0
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-predefined-process.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-predefined-process.template.js +123 -0
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-preparation.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-preparation.template.js +123 -0
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-process.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-process.template.js +122 -0
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-stored-data.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-stored-data.template.js +123 -0
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-summing-junction.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-summing-junction.template.js +124 -0
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-terminal.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-terminal.template.js +124 -0
- package/src/libs/engine/src/templates/generated/flowchart/index.d.ts +16 -0
- package/src/libs/engine/src/templates/generated/flowchart/index.js +36 -0
- package/src/libs/engine/src/templates/generated/index.d.ts +9 -0
- package/src/libs/engine/src/templates/generated/index.js +13 -0
- package/src/libs/engine/src/templates/generated/register.d.ts +23 -0
- package/src/libs/engine/src/templates/generated/register.js +31 -0
- package/src/libs/engine/src/templates/generated/uml/index.d.ts +30 -0
- package/src/libs/engine/src/templates/generated/uml/index.js +64 -0
- package/src/libs/engine/src/templates/generated/uml/uml-abstract-class.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/uml/uml-abstract-class.template.js +204 -0
- package/src/libs/engine/src/templates/generated/uml/uml-activation.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/uml/uml-activation.template.js +124 -0
- package/src/libs/engine/src/templates/generated/uml/uml-activity-partition.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/uml/uml-activity-partition.template.js +124 -0
- package/src/libs/engine/src/templates/generated/uml/uml-activity.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/uml/uml-activity.template.js +123 -0
- package/src/libs/engine/src/templates/generated/uml/uml-actor.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/uml/uml-actor.template.js +123 -0
- package/src/libs/engine/src/templates/generated/uml/uml-class.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/uml/uml-class.template.js +204 -0
- package/src/libs/engine/src/templates/generated/uml/uml-collaboration.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/uml/uml-collaboration.template.js +122 -0
- package/src/libs/engine/src/templates/generated/uml/uml-component.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/uml/uml-component.template.js +122 -0
- package/src/libs/engine/src/templates/generated/uml/uml-datatype.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/uml/uml-datatype.template.js +204 -0
- package/src/libs/engine/src/templates/generated/uml/uml-decision.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/uml/uml-decision.template.js +124 -0
- package/src/libs/engine/src/templates/generated/uml/uml-enum.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/uml/uml-enum.template.js +204 -0
- package/src/libs/engine/src/templates/generated/uml/uml-final-node.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/uml/uml-final-node.template.js +124 -0
- package/src/libs/engine/src/templates/generated/uml/uml-final-state.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/uml/uml-final-state.template.js +124 -0
- package/src/libs/engine/src/templates/generated/uml/uml-fork.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/uml/uml-fork.template.js +125 -0
- package/src/libs/engine/src/templates/generated/uml/uml-initial-node.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/uml/uml-initial-node.template.js +123 -0
- package/src/libs/engine/src/templates/generated/uml/uml-initial-state.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/uml/uml-initial-state.template.js +123 -0
- package/src/libs/engine/src/templates/generated/uml/uml-interface.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/uml/uml-interface.template.js +204 -0
- package/src/libs/engine/src/templates/generated/uml/uml-join.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/uml/uml-join.template.js +125 -0
- package/src/libs/engine/src/templates/generated/uml/uml-lifeline.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/uml/uml-lifeline.template.js +123 -0
- package/src/libs/engine/src/templates/generated/uml/uml-merge.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/uml/uml-merge.template.js +122 -0
- package/src/libs/engine/src/templates/generated/uml/uml-node.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/uml/uml-node.template.js +122 -0
- package/src/libs/engine/src/templates/generated/uml/uml-note.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/uml/uml-note.template.js +123 -0
- package/src/libs/engine/src/templates/generated/uml/uml-object.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/uml/uml-object.template.js +204 -0
- package/src/libs/engine/src/templates/generated/uml/uml-package.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/uml/uml-package.template.js +123 -0
- package/src/libs/engine/src/templates/generated/uml/uml-part.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/uml/uml-part.template.js +122 -0
- package/src/libs/engine/src/templates/generated/uml/uml-port.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/uml/uml-port.template.js +123 -0
- package/src/libs/engine/src/templates/generated/uml/uml-primitive-type.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/uml/uml-primitive-type.template.js +204 -0
- package/src/libs/engine/src/templates/generated/uml/uml-signal.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/uml/uml-signal.template.js +123 -0
- package/src/libs/engine/src/templates/generated/uml/uml-state.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/uml/uml-state.template.js +123 -0
- package/src/libs/engine/src/templates/generated/uml/uml-use-case.template.d.ts +11 -0
- package/src/libs/engine/src/templates/generated/uml/uml-use-case.template.js +122 -0
- package/src/libs/engine/src/templates/index.d.ts +12 -0
- package/src/libs/engine/src/templates/index.js +27 -0
- package/src/libs/engine/src/templates/stencils.d.ts +45 -0
- package/src/libs/engine/src/templates/stencils.js +85 -0
- package/src/libs/engine/src/types/domain/bpmn.d.ts +25 -0
- package/src/libs/engine/src/types/domain/bpmn.js +313 -0
- package/src/libs/engine/src/types/domain/erd.d.ts +29 -0
- package/src/libs/engine/src/types/domain/erd.js +394 -0
- package/src/libs/engine/src/types/domain/flowchart.d.ts +26 -0
- package/src/libs/engine/src/types/domain/flowchart.js +434 -0
- package/src/libs/engine/src/types/domain/index.d.ts +4 -0
- package/src/libs/engine/src/types/domain/index.js +9 -0
- package/src/libs/engine/src/types/domain/uml.d.ts +40 -0
- package/src/libs/engine/src/types/domain/uml.js +758 -0
- package/src/libs/engine/src/types/event.types.d.ts +142 -0
- package/src/libs/engine/src/types/event.types.js +96 -0
- package/src/libs/engine/src/types/geometry.types.d.ts +84 -0
- package/src/libs/engine/src/types/geometry.types.js +16 -0
- package/src/libs/engine/src/types/index.d.ts +7 -0
- package/src/libs/engine/src/types/index.js +14 -0
- package/src/libs/engine/src/types/layout.types.d.ts +148 -0
- package/src/libs/engine/src/types/layout.types.js +28 -0
- package/src/libs/engine/src/types/model.types.d.ts +378 -0
- package/src/libs/engine/src/types/model.types.js +4 -0
- package/src/libs/engine/src/types/performance.types.d.ts +109 -0
- package/src/libs/engine/src/types/performance.types.js +122 -0
- package/src/libs/engine/src/types/plugin.types.d.ts +30 -0
- package/src/libs/engine/src/types/plugin.types.js +4 -0
- package/src/libs/engine/src/utils/deep-clone.d.ts +9 -0
- package/src/libs/engine/src/utils/deep-clone.js +123 -0
- package/src/libs/engine/src/utils/geometry.d.ts +45 -0
- package/src/libs/engine/src/utils/geometry.js +241 -0
- package/src/libs/engine/src/utils/id.d.ts +22 -0
- package/src/libs/engine/src/utils/id.js +44 -0
- package/src/libs/engine/src/utils/index.d.ts +3 -0
- package/src/libs/engine/src/utils/index.js +8 -0
- package/src/libs/engine/src/utils/transform.d.ts +84 -0
- package/src/libs/engine/src/utils/transform.js +200 -0
- package/src/libs/engine/src/validation/ConnectionGroupValidator.d.ts +22 -0
- package/src/libs/engine/src/validation/ConnectionGroupValidator.js +56 -0
- package/src/libs/engine/src/validation/TypeRegistry.d.ts +179 -0
- package/src/libs/engine/src/validation/TypeRegistry.js +358 -0
- package/src/libs/engine/src/validation/ValidationEngine.d.ts +79 -0
- package/src/libs/engine/src/validation/ValidationEngine.js +1150 -0
- package/src/libs/engine/src/validation/index.d.ts +3 -0
- package/src/libs/engine/src/validation/index.js +8 -0
- package/src/libs/renderer/src/a11y/diagram-outline.d.ts +93 -0
- package/src/libs/renderer/src/a11y/diagram-outline.js +0 -0
- package/src/libs/renderer/src/a11y/focus-containment.d.ts +90 -0
- package/src/libs/renderer/src/a11y/focus-containment.js +173 -0
- package/src/libs/renderer/src/a11y/graph-topology.d.ts +70 -0
- package/src/libs/renderer/src/a11y/graph-topology.js +0 -0
- package/src/libs/renderer/src/a11y/index.d.ts +26 -0
- package/src/libs/renderer/src/a11y/index.js +30 -0
- package/src/libs/renderer/src/a11y/live-region.d.ts +83 -0
- package/src/libs/renderer/src/a11y/live-region.js +170 -0
- package/src/libs/renderer/src/a11y/outline-view.d.ts +62 -0
- package/src/libs/renderer/src/a11y/outline-view.js +158 -0
- package/src/libs/renderer/src/a11y/reduced-motion.d.ts +48 -0
- package/src/libs/renderer/src/a11y/reduced-motion.js +223 -0
- package/src/libs/renderer/src/a11y/semantics.d.ts +76 -0
- package/src/libs/renderer/src/a11y/semantics.js +229 -0
- package/src/libs/renderer/src/canvas/canvas-context.d.ts +167 -0
- package/src/libs/renderer/src/canvas/canvas-context.js +267 -0
- package/src/libs/renderer/src/canvas/canvas-renderer.d.ts +194 -0
- package/src/libs/renderer/src/canvas/canvas-renderer.js +600 -0
- package/src/libs/renderer/src/canvas/dirty-region.d.ts +56 -0
- package/src/libs/renderer/src/canvas/dirty-region.js +171 -0
- package/src/libs/renderer/src/canvas/index.d.ts +16 -0
- package/src/libs/renderer/src/canvas/index.js +79 -0
- package/src/libs/renderer/src/canvas/path-geometry.d.ts +112 -0
- package/src/libs/renderer/src/canvas/path-geometry.js +673 -0
- package/src/libs/renderer/src/canvas/render-backend.d.ts +133 -0
- package/src/libs/renderer/src/canvas/render-backend.js +339 -0
- package/src/libs/renderer/src/canvas/style-resolution.d.ts +101 -0
- package/src/libs/renderer/src/canvas/style-resolution.js +466 -0
- package/src/libs/renderer/src/canvas/tier-policy.d.ts +33 -0
- package/src/libs/renderer/src/canvas/tier-policy.js +89 -0
- package/src/libs/renderer/src/canvas/vnode-painter.d.ts +154 -0
- package/src/libs/renderer/src/canvas/vnode-painter.js +649 -0
- package/src/libs/renderer/src/comments/comment-overlay.d.ts +56 -0
- package/src/libs/renderer/src/comments/comment-overlay.js +127 -0
- package/src/libs/renderer/src/comments/comment-panel.d.ts +45 -0
- package/src/libs/renderer/src/comments/comment-panel.js +287 -0
- package/src/libs/renderer/src/comments/comment-pins.d.ts +34 -0
- package/src/libs/renderer/src/comments/comment-pins.js +227 -0
- package/src/libs/renderer/src/comments/index.d.ts +3 -0
- package/src/libs/renderer/src/comments/index.js +17 -0
- package/src/libs/renderer/src/export/assets.d.ts +96 -0
- package/src/libs/renderer/src/export/assets.js +350 -0
- package/src/libs/renderer/src/export/batch.d.ts +49 -0
- package/src/libs/renderer/src/export/batch.js +95 -0
- package/src/libs/renderer/src/export/bounds.d.ts +81 -0
- package/src/libs/renderer/src/export/bounds.js +367 -0
- package/src/libs/renderer/src/export/capture-host.d.ts +39 -0
- package/src/libs/renderer/src/export/capture-host.js +1259 -0
- package/src/libs/renderer/src/export/custom-nodes.d.ts +88 -0
- package/src/libs/renderer/src/export/custom-nodes.js +237 -0
- package/src/libs/renderer/src/export/index.d.ts +14 -0
- package/src/libs/renderer/src/export/index.js +30 -0
- package/src/libs/renderer/src/export/node-raster.d.ts +60 -0
- package/src/libs/renderer/src/export/node-raster.js +161 -0
- package/src/libs/renderer/src/export/pagination.d.ts +116 -0
- package/src/libs/renderer/src/export/pagination.js +245 -0
- package/src/libs/renderer/src/export/pdf/flate.d.ts +13 -0
- package/src/libs/renderer/src/export/pdf/flate.js +287 -0
- package/src/libs/renderer/src/export/pdf/index.d.ts +4 -0
- package/src/libs/renderer/src/export/pdf/index.js +15 -0
- package/src/libs/renderer/src/export/pdf/pdf-export.d.ts +64 -0
- package/src/libs/renderer/src/export/pdf/pdf-export.js +1076 -0
- package/src/libs/renderer/src/export/pdf/pdf-path.d.ts +17 -0
- package/src/libs/renderer/src/export/pdf/pdf-path.js +85 -0
- package/src/libs/renderer/src/export/pdf/pdf-primitives.d.ts +115 -0
- package/src/libs/renderer/src/export/pdf/pdf-primitives.js +338 -0
- package/src/libs/renderer/src/export/pdf/png.d.ts +25 -0
- package/src/libs/renderer/src/export/pdf/png.js +596 -0
- package/src/libs/renderer/src/export/raster.d.ts +42 -0
- package/src/libs/renderer/src/export/raster.js +126 -0
- package/src/libs/renderer/src/export/round-trip.d.ts +83 -0
- package/src/libs/renderer/src/export/round-trip.js +432 -0
- package/src/libs/renderer/src/export/scope.d.ts +16 -0
- package/src/libs/renderer/src/export/scope.js +69 -0
- package/src/libs/renderer/src/export/style-flattener.d.ts +23 -0
- package/src/libs/renderer/src/export/style-flattener.js +144 -0
- package/src/libs/renderer/src/export/svg-export.d.ts +123 -0
- package/src/libs/renderer/src/export/svg-export.js +178 -0
- package/src/libs/renderer/src/export/vnode-serializer.d.ts +75 -0
- package/src/libs/renderer/src/export/vnode-serializer.js +344 -0
- package/src/libs/renderer/src/ext/capabilities.d.ts +178 -0
- package/src/libs/renderer/src/ext/capabilities.js +22 -0
- package/src/libs/renderer/src/ext/capability-factory.d.ts +44 -0
- package/src/libs/renderer/src/ext/capability-factory.js +194 -0
- package/src/libs/renderer/src/ext/components/attach.d.ts +66 -0
- package/src/libs/renderer/src/ext/components/attach.js +112 -0
- package/src/libs/renderer/src/ext/components/background.d.ts +84 -0
- package/src/libs/renderer/src/ext/components/background.js +202 -0
- package/src/libs/renderer/src/ext/components/controls.d.ts +49 -0
- package/src/libs/renderer/src/ext/components/controls.js +144 -0
- package/src/libs/renderer/src/ext/components/minimap.d.ts +78 -0
- package/src/libs/renderer/src/ext/components/minimap.js +326 -0
- package/src/libs/renderer/src/ext/diagram-registry.d.ts +109 -0
- package/src/libs/renderer/src/ext/diagram-registry.js +303 -0
- package/src/libs/renderer/src/ext/disposable.d.ts +51 -0
- package/src/libs/renderer/src/ext/disposable.js +104 -0
- package/src/libs/renderer/src/ext/extension-host.d.ts +144 -0
- package/src/libs/renderer/src/ext/extension-host.js +272 -0
- package/src/libs/renderer/src/ext/index.d.ts +62 -0
- package/src/libs/renderer/src/ext/index.js +91 -0
- package/src/libs/renderer/src/ext/link-pipeline.d.ts +195 -0
- package/src/libs/renderer/src/ext/link-pipeline.js +431 -0
- package/src/libs/renderer/src/ext/manifest.d.ts +73 -0
- package/src/libs/renderer/src/ext/manifest.js +149 -0
- package/src/libs/renderer/src/ext/node-component.d.ts +114 -0
- package/src/libs/renderer/src/ext/node-component.js +290 -0
- package/src/libs/renderer/src/ext/plugins-loader.d.ts +1 -0
- package/src/libs/renderer/src/ext/plugins-loader.js +18 -0
- package/src/libs/renderer/src/ext/portal.d.ts +129 -0
- package/src/libs/renderer/src/ext/portal.js +267 -0
- package/src/libs/renderer/src/ext/public-api.d.ts +101 -0
- package/src/libs/renderer/src/ext/public-api.js +201 -0
- package/src/libs/renderer/src/ext/registry-scope.d.ts +93 -0
- package/src/libs/renderer/src/ext/registry-scope.js +142 -0
- package/src/libs/renderer/src/ext/tools.d.ts +164 -0
- package/src/libs/renderer/src/ext/tools.js +170 -0
- package/src/libs/renderer/src/index.d.ts +34 -0
- package/src/libs/renderer/src/index.js +108 -0
- package/src/libs/renderer/src/instance/create-diagram.d.ts +385 -0
- package/src/libs/renderer/src/instance/create-diagram.js +1150 -0
- package/src/libs/renderer/src/instance/diagram-instance.d.ts +48 -0
- package/src/libs/renderer/src/instance/diagram-instance.js +51 -0
- package/src/libs/renderer/src/instance/dom-event-binder.d.ts +394 -0
- package/src/libs/renderer/src/instance/dom-event-binder.js +2104 -0
- package/src/libs/renderer/src/instance/index.d.ts +5 -0
- package/src/libs/renderer/src/instance/index.js +13 -0
- package/src/libs/renderer/src/instance/layers.d.ts +31 -0
- package/src/libs/renderer/src/instance/layers.js +43 -0
- package/src/libs/renderer/src/instance/model-input.d.ts +229 -0
- package/src/libs/renderer/src/instance/model-input.js +325 -0
- package/src/libs/renderer/src/instance/render-scheduler.d.ts +79 -0
- package/src/libs/renderer/src/instance/render-scheduler.js +96 -0
- package/src/libs/renderer/src/instance/wheel-scroll-yield.d.ts +38 -0
- package/src/libs/renderer/src/instance/wheel-scroll-yield.js +118 -0
- package/src/libs/renderer/src/interaction/ControlPointEditor.d.ts +160 -0
- package/src/libs/renderer/src/interaction/ControlPointEditor.js +360 -0
- package/src/libs/renderer/src/interaction/WaypointEditor.d.ts +133 -0
- package/src/libs/renderer/src/interaction/WaypointEditor.js +263 -0
- package/src/libs/renderer/src/interaction/highlighters.d.ts +88 -0
- package/src/libs/renderer/src/interaction/highlighters.js +212 -0
- package/src/libs/renderer/src/interaction/in-place-editor.d.ts +63 -0
- package/src/libs/renderer/src/interaction/in-place-editor.js +141 -0
- package/src/libs/renderer/src/interaction/index.d.ts +11 -0
- package/src/libs/renderer/src/interaction/index.js +29 -0
- package/src/libs/renderer/src/interaction/ink-overlay.d.ts +53 -0
- package/src/libs/renderer/src/interaction/ink-overlay.js +154 -0
- package/src/libs/renderer/src/interaction/interaction-controller.d.ts +555 -0
- package/src/libs/renderer/src/interaction/interaction-controller.js +1733 -0
- package/src/libs/renderer/src/interaction/keyboard-navigation.d.ts +223 -0
- package/src/libs/renderer/src/interaction/keyboard-navigation.js +885 -0
- package/src/libs/renderer/src/interaction/selection-tools.d.ts +343 -0
- package/src/libs/renderer/src/interaction/selection-tools.js +918 -0
- package/src/libs/renderer/src/interaction/snapping.d.ts +210 -0
- package/src/libs/renderer/src/interaction/snapping.js +569 -0
- package/src/libs/renderer/src/interaction/touch-gestures.d.ts +160 -0
- package/src/libs/renderer/src/interaction/touch-gestures.js +549 -0
- package/src/libs/renderer/src/interaction/whiteboard-tools.d.ts +171 -0
- package/src/libs/renderer/src/interaction/whiteboard-tools.js +476 -0
- package/src/libs/renderer/src/lazy/host-culling.d.ts +116 -0
- package/src/libs/renderer/src/lazy/host-culling.js +135 -0
- package/src/libs/renderer/src/lazy/index.d.ts +7 -0
- package/src/libs/renderer/src/lazy/index.js +28 -0
- package/src/libs/renderer/src/lazy/progressive-mounter.d.ts +80 -0
- package/src/libs/renderer/src/lazy/progressive-mounter.js +264 -0
- package/src/libs/renderer/src/lazy/types.d.ts +43 -0
- package/src/libs/renderer/src/lazy/types.js +14 -0
- package/src/libs/renderer/src/lazy/view-lifecycle.d.ts +97 -0
- package/src/libs/renderer/src/lazy/view-lifecycle.js +221 -0
- package/src/libs/renderer/src/perf/index.d.ts +2 -0
- package/src/libs/renderer/src/perf/index.js +7 -0
- package/src/libs/renderer/src/perf/perf-hud.d.ts +46 -0
- package/src/libs/renderer/src/perf/perf-hud.js +105 -0
- package/src/libs/renderer/src/perf/quality-governor.d.ts +77 -0
- package/src/libs/renderer/src/perf/quality-governor.js +154 -0
- package/src/libs/renderer/src/platform/index.d.ts +1 -0
- package/src/libs/renderer/src/platform/index.js +5 -0
- package/src/libs/renderer/src/platform/platform.d.ts +34 -0
- package/src/libs/renderer/src/platform/platform.js +64 -0
- package/src/libs/renderer/src/presence/bind-presence.d.ts +51 -0
- package/src/libs/renderer/src/presence/bind-presence.js +144 -0
- package/src/libs/renderer/src/presence/index.d.ts +4 -0
- package/src/libs/renderer/src/presence/index.js +18 -0
- package/src/libs/renderer/src/presence/presence-overlay.d.ts +121 -0
- package/src/libs/renderer/src/presence/presence-overlay.js +465 -0
- package/src/libs/renderer/src/presentation/index.d.ts +3 -0
- package/src/libs/renderer/src/presentation/index.js +14 -0
- package/src/libs/renderer/src/presentation/presentation.d.ts +94 -0
- package/src/libs/renderer/src/presentation/presentation.js +158 -0
- package/src/libs/renderer/src/presentation/viewport-channel.d.ts +78 -0
- package/src/libs/renderer/src/presentation/viewport-channel.js +86 -0
- package/src/libs/renderer/src/services/animation-lifecycle.d.ts +153 -0
- package/src/libs/renderer/src/services/animation-lifecycle.js +326 -0
- package/src/libs/renderer/src/services/animation-performance.service.d.ts +191 -0
- package/src/libs/renderer/src/services/animation-performance.service.js +371 -0
- package/src/libs/renderer/src/services/animation-sequencer.d.ts +226 -0
- package/src/libs/renderer/src/services/animation-sequencer.js +379 -0
- package/src/libs/renderer/src/services/animation.service.d.ts +182 -0
- package/src/libs/renderer/src/services/animation.service.js +858 -0
- package/src/libs/renderer/src/services/custom-animation-registry.d.ts +182 -0
- package/src/libs/renderer/src/services/custom-animation-registry.js +361 -0
- package/src/libs/renderer/src/ssr/index.d.ts +1 -0
- package/src/libs/renderer/src/ssr/index.js +6 -0
- package/src/libs/renderer/src/ssr/render-to-static.d.ts +91 -0
- package/src/libs/renderer/src/ssr/render-to-static.js +81 -0
- package/src/libs/renderer/src/svg/ArrowRenderer.d.ts +159 -0
- package/src/libs/renderer/src/svg/ArrowRenderer.js +723 -0
- package/src/libs/renderer/src/svg/JumpPointDetector.d.ts +79 -0
- package/src/libs/renderer/src/svg/JumpPointDetector.js +176 -0
- package/src/libs/renderer/src/svg/JumpPointRenderer.d.ts +59 -0
- package/src/libs/renderer/src/svg/JumpPointRenderer.js +309 -0
- package/src/libs/renderer/src/svg/LabelRenderer.d.ts +76 -0
- package/src/libs/renderer/src/svg/LabelRenderer.js +273 -0
- package/src/libs/renderer/src/svg/auto-size.d.ts +76 -0
- package/src/libs/renderer/src/svg/auto-size.js +142 -0
- package/src/libs/renderer/src/svg/channel-nudging.d.ts +34 -0
- package/src/libs/renderer/src/svg/channel-nudging.js +226 -0
- package/src/libs/renderer/src/svg/edge-optimizer.d.ts +228 -0
- package/src/libs/renderer/src/svg/edge-optimizer.js +606 -0
- package/src/libs/renderer/src/svg/edge-templates.d.ts +152 -0
- package/src/libs/renderer/src/svg/edge-templates.js +233 -0
- package/src/libs/renderer/src/svg/html-node.d.ts +50 -0
- package/src/libs/renderer/src/svg/html-node.js +214 -0
- package/src/libs/renderer/src/svg/index.d.ts +25 -0
- package/src/libs/renderer/src/svg/index.js +32 -0
- package/src/libs/renderer/src/svg/link-fanout.d.ts +127 -0
- package/src/libs/renderer/src/svg/link-fanout.js +333 -0
- package/src/libs/renderer/src/svg/link-hit-test.d.ts +142 -0
- package/src/libs/renderer/src/svg/link-hit-test.js +182 -0
- package/src/libs/renderer/src/svg/motion-tracker.d.ts +18 -0
- package/src/libs/renderer/src/svg/motion-tracker.js +71 -0
- package/src/libs/renderer/src/svg/node-sizing.d.ts +51 -0
- package/src/libs/renderer/src/svg/node-sizing.js +65 -0
- package/src/libs/renderer/src/svg/node-toolbar.d.ts +30 -0
- package/src/libs/renderer/src/svg/node-toolbar.js +45 -0
- package/src/libs/renderer/src/svg/notation-shapes.d.ts +2 -0
- package/src/libs/renderer/src/svg/notation-shapes.js +126 -0
- package/src/libs/renderer/src/svg/paint-servers.d.ts +49 -0
- package/src/libs/renderer/src/svg/paint-servers.js +225 -0
- package/src/libs/renderer/src/svg/panel.d.ts +115 -0
- package/src/libs/renderer/src/svg/panel.js +353 -0
- package/src/libs/renderer/src/svg/path-outline.d.ts +35 -0
- package/src/libs/renderer/src/svg/path-outline.js +134 -0
- package/src/libs/renderer/src/svg/port-glyph.d.ts +27 -0
- package/src/libs/renderer/src/svg/port-glyph.js +97 -0
- package/src/libs/renderer/src/svg/port-label.d.ts +74 -0
- package/src/libs/renderer/src/svg/port-label.js +201 -0
- package/src/libs/renderer/src/svg/port-layout.d.ts +50 -0
- package/src/libs/renderer/src/svg/port-layout.js +212 -0
- package/src/libs/renderer/src/svg/port-positioning.d.ts +33 -0
- package/src/libs/renderer/src/svg/port-positioning.js +101 -0
- package/src/libs/renderer/src/svg/port-spots.d.ts +69 -0
- package/src/libs/renderer/src/svg/port-spots.js +154 -0
- package/src/libs/renderer/src/svg/route-memo.d.ts +63 -0
- package/src/libs/renderer/src/svg/route-memo.js +206 -0
- package/src/libs/renderer/src/svg/route-solver-bridge.d.ts +48 -0
- package/src/libs/renderer/src/svg/route-solver-bridge.js +151 -0
- package/src/libs/renderer/src/svg/shape-registry.d.ts +189 -0
- package/src/libs/renderer/src/svg/shape-registry.js +1104 -0
- package/src/libs/renderer/src/svg/stroke-layer.d.ts +36 -0
- package/src/libs/renderer/src/svg/stroke-layer.js +183 -0
- package/src/libs/renderer/src/svg/svg-renderer.d.ts +1737 -0
- package/src/libs/renderer/src/svg/svg-renderer.js +7772 -0
- package/src/libs/renderer/src/svg/text-block.d.ts +54 -0
- package/src/libs/renderer/src/svg/text-block.js +171 -0
- package/src/libs/renderer/src/themes/color-mode.d.ts +81 -0
- package/src/libs/renderer/src/themes/color-mode.js +158 -0
- package/src/libs/renderer/src/themes/contrast.d.ts +67 -0
- package/src/libs/renderer/src/themes/contrast.js +215 -0
- package/src/libs/renderer/src/themes/default-dark-theme.d.ts +6 -0
- package/src/libs/renderer/src/themes/default-dark-theme.js +126 -0
- package/src/libs/renderer/src/themes/default-light-theme.d.ts +6 -0
- package/src/libs/renderer/src/themes/default-light-theme.js +168 -0
- package/src/libs/renderer/src/themes/default-theme-set.d.ts +10 -0
- package/src/libs/renderer/src/themes/default-theme-set.js +25 -0
- package/src/libs/renderer/src/themes/high-contrast-theme.d.ts +5 -0
- package/src/libs/renderer/src/themes/high-contrast-theme.js +170 -0
- package/src/libs/renderer/src/themes/index.d.ts +22 -0
- package/src/libs/renderer/src/themes/index.js +93 -0
- package/src/libs/renderer/src/themes/style-cascade.d.ts +23 -0
- package/src/libs/renderer/src/themes/style-cascade.js +194 -0
- package/src/libs/renderer/src/themes/style-registry.d.ts +40 -0
- package/src/libs/renderer/src/themes/style-registry.js +129 -0
- package/src/libs/renderer/src/themes/theme-a11y.d.ts +65 -0
- package/src/libs/renderer/src/themes/theme-a11y.js +256 -0
- package/src/libs/renderer/src/themes/theme-css.d.ts +30 -0
- package/src/libs/renderer/src/themes/theme-css.js +304 -0
- package/src/libs/renderer/src/themes/theme-ref.d.ts +63 -0
- package/src/libs/renderer/src/themes/theme-ref.js +206 -0
- package/src/libs/renderer/src/themes/theme-vars.d.ts +49 -0
- package/src/libs/renderer/src/themes/theme-vars.js +112 -0
- package/src/libs/renderer/src/themes/token-bridge.d.ts +62 -0
- package/src/libs/renderer/src/themes/token-bridge.js +354 -0
- package/src/libs/renderer/src/types/geometry.types.d.ts +10 -0
- package/src/libs/renderer/src/types/geometry.types.js +3 -0
- package/src/libs/renderer/src/types/index.d.ts +5 -0
- package/src/libs/renderer/src/types/index.js +14 -0
- package/src/libs/renderer/src/types/property-schema/conditions.d.ts +96 -0
- package/src/libs/renderer/src/types/property-schema/conditions.js +8 -0
- package/src/libs/renderer/src/types/property-schema/editor-types.d.ts +310 -0
- package/src/libs/renderer/src/types/property-schema/editor-types.js +8 -0
- package/src/libs/renderer/src/types/property-schema/groups.d.ts +58 -0
- package/src/libs/renderer/src/types/property-schema/groups.js +8 -0
- package/src/libs/renderer/src/types/property-schema/index.d.ts +101 -0
- package/src/libs/renderer/src/types/property-schema/index.js +98 -0
- package/src/libs/renderer/src/types/property-schema/property-definition.d.ts +117 -0
- package/src/libs/renderer/src/types/property-schema/property-definition.js +8 -0
- package/src/libs/renderer/src/types/property-schema/schema.d.ts +108 -0
- package/src/libs/renderer/src/types/property-schema/schema.js +8 -0
- package/src/libs/renderer/src/types/property-schema/validation.d.ts +181 -0
- package/src/libs/renderer/src/types/property-schema/validation.js +8 -0
- package/src/libs/renderer/src/types/renderer.interface.d.ts +623 -0
- package/src/libs/renderer/src/types/renderer.interface.js +3 -0
- package/src/libs/renderer/src/types/theme.types.d.ts +305 -0
- package/src/libs/renderer/src/types/theme.types.js +3 -0
- package/src/libs/renderer/src/types/vnode.types.d.ts +139 -0
- package/src/libs/renderer/src/types/vnode.types.js +3 -0
- package/src/libs/renderer/src/utils/animation-presets.d.ts +310 -0
- package/src/libs/renderer/src/utils/animation-presets.js +406 -0
- package/src/libs/renderer/src/utils/animation-priority.d.ts +118 -0
- package/src/libs/renderer/src/utils/animation-priority.js +258 -0
- package/src/libs/renderer/src/utils/animation-utils.d.ts +159 -0
- package/src/libs/renderer/src/utils/animation-utils.js +323 -0
- package/src/libs/renderer/src/utils/lru-cache.d.ts +34 -0
- package/src/libs/renderer/src/utils/lru-cache.js +72 -0
- package/src/libs/renderer/src/viewport/index.d.ts +1 -0
- package/src/libs/renderer/src/viewport/index.js +6 -0
- package/src/libs/renderer/src/viewport/viewport-controller.d.ts +198 -0
- package/src/libs/renderer/src/viewport/viewport-controller.js +315 -0
- package/src/libs/renderer/src/vnode/container-id-generator.d.ts +94 -0
- package/src/libs/renderer/src/vnode/container-id-generator.js +110 -0
- package/src/libs/renderer/src/vnode/foreign-object.d.ts +157 -0
- package/src/libs/renderer/src/vnode/foreign-object.js +167 -0
- package/src/libs/renderer/src/vnode/index.d.ts +56 -0
- package/src/libs/renderer/src/vnode/index.js +78 -0
- package/src/libs/renderer/src/vnode/patch.d.ts +189 -0
- package/src/libs/renderer/src/vnode/patch.js +564 -0
- package/src/index.js.map +0 -1
- package/src/lib/dashboard-kit/dashboard.js.map +0 -1
- package/src/lib/dashboard-kit/grid-binder.js.map +0 -1
- package/src/lib/dashboard-kit/grid-mapping.js.map +0 -1
- package/src/lib/dashboard-kit/index.js.map +0 -1
- package/src/lib/dashboard-kit/styles.js.map +0 -1
- package/src/lib/dashboard-kit/widgets.js.map +0 -1
- package/src/lib/diagram-kit/card.js.map +0 -1
- package/src/lib/diagram-kit/editing.js.map +0 -1
- package/src/lib/diagram-kit/er.js.map +0 -1
- package/src/lib/diagram-kit/handles.js.map +0 -1
- package/src/lib/diagram-kit/index.js.map +0 -1
- package/src/lib/diagram-kit/rows.js.map +0 -1
- package/src/lib/diagram-kit/styles.js.map +0 -1
- package/src/lib/diagram-kit/uml.js.map +0 -1
- package/src/lib/diagram-kit/update.js.map +0 -1
- package/src/lib/grafloria-flow-element.js.map +0 -1
- package/src/lib/grafloria.js.map +0 -1
- package/src/lib/load.js.map +0 -1
- package/src/lib/node-type-registry.js.map +0 -1
- package/src/lib/stencil-kit/builders.js.map +0 -1
- package/src/lib/stencil-kit/card-builders.js.map +0 -1
- package/src/lib/stencil-kit/index.js.map +0 -1
- package/src/lib/stencil-kit/palette.js.map +0 -1
- package/src/lib/stencil-kit/shape-data.js.map +0 -1
- package/src/lib/stencil-kit/styles.js.map +0 -1
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import { DiagramEntity } from './DiagramEntity';
|
|
2
|
+
import type { Point, Rectangle } from '../types';
|
|
3
|
+
import type { SerializedEntity } from '../types/model.types';
|
|
4
|
+
/**
|
|
5
|
+
* One sample from the pointer.
|
|
6
|
+
*
|
|
7
|
+
* `pressure` is 0..1 and OPTIONAL — a mouse does not have any. It is stored only when
|
|
8
|
+
* the device actually reported a varying one (see {@link hasPressure}), because a
|
|
9
|
+
* field that is always 0.5 is noise on the wire and a lie in the model.
|
|
10
|
+
*
|
|
11
|
+
* It is not decoration: the renderer builds a variable-width outline from it. A
|
|
12
|
+
* pressure that does not change the picture would be exactly the "machinery wired to
|
|
13
|
+
* nothing" this project has shipped in all nine previous waves.
|
|
14
|
+
*/
|
|
15
|
+
export interface StrokePoint {
|
|
16
|
+
x: number;
|
|
17
|
+
y: number;
|
|
18
|
+
/** 0..1. Absent when the device did not report a meaningful one. */
|
|
19
|
+
pressure?: number;
|
|
20
|
+
}
|
|
21
|
+
/** How the ink looks. Flat and JSON-safe — this crosses the wire as an op payload. */
|
|
22
|
+
export interface StrokeStyle {
|
|
23
|
+
/** Any CSS colour. */
|
|
24
|
+
color: string;
|
|
25
|
+
/** Nominal width in WORLD units (so ink zooms with the diagram, like everything else). */
|
|
26
|
+
width: number;
|
|
27
|
+
/** 0..1. Highlighter ink is translucent; a pen is not. */
|
|
28
|
+
opacity?: number;
|
|
29
|
+
}
|
|
30
|
+
export interface SerializedStroke extends SerializedEntity {
|
|
31
|
+
type: 'stroke';
|
|
32
|
+
points: StrokePoint[];
|
|
33
|
+
style: StrokeStyle;
|
|
34
|
+
/**
|
|
35
|
+
* An author-supplied name. THE ENTIRE ACCESSIBILITY STORY LIVES ON THIS FIELD —
|
|
36
|
+
* see the a11y note on the renderer's ink layer. Absent for anonymous ink, which is
|
|
37
|
+
* the normal case and is rendered `aria-hidden`.
|
|
38
|
+
*/
|
|
39
|
+
label?: string;
|
|
40
|
+
}
|
|
41
|
+
export declare const DEFAULT_STROKE_STYLE: StrokeStyle;
|
|
42
|
+
/** True when the device gave us pressure worth keeping (i.e. it actually varies). */
|
|
43
|
+
export declare function hasPressure(points: readonly StrokePoint[]): boolean;
|
|
44
|
+
/** Distance from `p` to the segment `a`→`b`. The primitive both hit-tests are built on. */
|
|
45
|
+
export declare function distanceToSegment(p: Point, a: Point, b: Point): number;
|
|
46
|
+
/**
|
|
47
|
+
* Minimum distance between two SEGMENTS.
|
|
48
|
+
*
|
|
49
|
+
* The eraser needs this and a point-test cannot replace it. A pointermove at 60Hz over
|
|
50
|
+
* a fast flick lands samples 80px apart; testing only the sample POINTS lets the
|
|
51
|
+
* eraser jump clean over a stroke it visibly swept through. So the eraser tests the
|
|
52
|
+
* segment it travelled, not the points it happened to land on.
|
|
53
|
+
*/
|
|
54
|
+
export declare function segmentDistance(a1: Point, a2: Point, b1: Point, b2: Point): number;
|
|
55
|
+
/**
|
|
56
|
+
* A freehand ink stroke: an ordered point list, a style, and an identity.
|
|
57
|
+
*
|
|
58
|
+
* A first-class `DiagramEntity`, which is not a formality — it is what makes every
|
|
59
|
+
* other gate in this wave close for free:
|
|
60
|
+
* • `trackChange()` → `markDirty()` → the GLOBAL MUTATION EPOCH, which is the thing
|
|
61
|
+
* both frame gates read (`svg-renderer.ts:795`, `create-diagram.ts:369`). A stroke
|
|
62
|
+
* that were a plain object would mutate the picture without moving the epoch, and
|
|
63
|
+
* both gates would skip the frame: you would draw and see nothing.
|
|
64
|
+
* • `on('change')` → `OpCapture` picks it up through the same funnel as everything
|
|
65
|
+
* else. No parallel bookkeeping to drift out of step.
|
|
66
|
+
* • `serialize()`/`dispose()`/`version` → the document contracts.
|
|
67
|
+
*/
|
|
68
|
+
export declare class StrokeModel extends DiagramEntity {
|
|
69
|
+
private points;
|
|
70
|
+
private style;
|
|
71
|
+
private label?;
|
|
72
|
+
/** Cached bounds. Invalidated on every geometry write; never stale, never recomputed twice. */
|
|
73
|
+
private bounds;
|
|
74
|
+
constructor(points?: readonly StrokePoint[], style?: StrokeStyle, options?: {
|
|
75
|
+
id?: string;
|
|
76
|
+
uuid?: string;
|
|
77
|
+
label?: string;
|
|
78
|
+
});
|
|
79
|
+
getPoints(): readonly StrokePoint[];
|
|
80
|
+
/**
|
|
81
|
+
* Replace the geometry.
|
|
82
|
+
*
|
|
83
|
+
* Emits `trackChange('points', …)` like any other register. NOTE that capture used
|
|
84
|
+
* to drop EVERY `points` change on the floor (`DERIVED = new Set(['points'])`),
|
|
85
|
+
* because on a LINK `points` is routed geometry that each peer recomputes for
|
|
86
|
+
* itself. On a stroke `points` is the authored content itself. That set is now
|
|
87
|
+
* scoped per target — see `collab/capture.ts`. Without that fix, editing a stroke's
|
|
88
|
+
* geometry would silently fail to reach any other peer.
|
|
89
|
+
*/
|
|
90
|
+
setPoints(points: readonly StrokePoint[]): void;
|
|
91
|
+
get pointCount(): number;
|
|
92
|
+
/** Axis-aligned bounds, INFLATED by the stroke's own half-width (ink has girth). */
|
|
93
|
+
getBounds(): Rectangle;
|
|
94
|
+
/** Is `(x, y)` on the ink, within `tolerance` world units of it? */
|
|
95
|
+
hitTest(x: number, y: number, tolerance?: number): boolean;
|
|
96
|
+
/**
|
|
97
|
+
* Did a pointer travelling `a`→`b` sweep across this ink? THE ERASER'S QUESTION.
|
|
98
|
+
* Segment-vs-segment, not point-vs-segment — see {@link segmentDistance}.
|
|
99
|
+
*/
|
|
100
|
+
intersectsSegment(a: Point, b: Point, tolerance?: number): boolean;
|
|
101
|
+
getStyle(): Readonly<StrokeStyle>;
|
|
102
|
+
setStyle(style: Partial<StrokeStyle>): void;
|
|
103
|
+
/**
|
|
104
|
+
* REPLACE the whole style object — the write `setStyle` cannot express, and the collab
|
|
105
|
+
* reducer's write path.
|
|
106
|
+
*
|
|
107
|
+
* `setStyle` MERGES, so applying a `style` op with it meant a peer could gain a key and
|
|
108
|
+
* never lose one: the author clears an `opacity` and every other peer keeps the faded
|
|
109
|
+
* stroke forever. `NodeModel.replaceStyle` is the same seam for the same reason, and a
|
|
110
|
+
* plain field assignment is not a substitute — it would skip the `bounds` invalidation
|
|
111
|
+
* below and leave the peer measuring the stroke at its old width.
|
|
112
|
+
*/
|
|
113
|
+
replaceStyle(style: Partial<StrokeStyle>): void;
|
|
114
|
+
/**
|
|
115
|
+
* The accessible name, when the author gave one. See the a11y note on the
|
|
116
|
+
* ink layer. Overrides the DiagramEntity canon (metadata.label): a stroke's
|
|
117
|
+
* label lives in its own serialized `label` property, not the metadata bag.
|
|
118
|
+
*/
|
|
119
|
+
getLabel(): string | undefined;
|
|
120
|
+
setLabel(label: string | undefined): void;
|
|
121
|
+
serialize(): SerializedStroke;
|
|
122
|
+
static fromJSON(data: SerializedStroke): StrokeModel;
|
|
123
|
+
/**
|
|
124
|
+
* Build a stroke from a RAW POINTER TRACE. This is the only constructor the draw tool
|
|
125
|
+
* uses, and the simplification is not optional decoration.
|
|
126
|
+
*
|
|
127
|
+
* A two-second scribble at 120Hz is ~240 samples, most of them a fraction of a pixel
|
|
128
|
+
* apart. Persisting them all means a document that is mostly float noise, an op
|
|
129
|
+
* payload that is kilobytes per line, and an SVG path the browser re-parses on every
|
|
130
|
+
* frame. The brief's phrasing is exactly right: a 500-point stroke that serialises as
|
|
131
|
+
* 500 points is a bug.
|
|
132
|
+
*
|
|
133
|
+
* So: Douglas-Peucker, through the engine's OWN `PathSimplifier` — which existed and
|
|
134
|
+
* which the renderer had never called until Wave 8, and which I am not going to
|
|
135
|
+
* reimplement a second copy of. Typical reduction on real ink is 85-95%.
|
|
136
|
+
*
|
|
137
|
+
* IT PRESERVES PRESSURE, and that is a property of the algorithm rather than luck:
|
|
138
|
+
* Douglas-Peucker SELECTS a subset of the input points (it returns the very objects it
|
|
139
|
+
* was given — `PathSimplifier.ts:123`), it never interpolates new ones. So the
|
|
140
|
+
* `pressure` riding on each retained sample rides through untouched. If it ever grows
|
|
141
|
+
* an interpolating mode this breaks silently, so the spec pins it.
|
|
142
|
+
*/
|
|
143
|
+
static fromRawPoints(raw: readonly StrokePoint[], style?: StrokeStyle, options?: {
|
|
144
|
+
id?: string;
|
|
145
|
+
label?: string;
|
|
146
|
+
epsilon?: number;
|
|
147
|
+
}): StrokeModel;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Douglas-Peucker tolerance, in WORLD units.
|
|
151
|
+
*
|
|
152
|
+
* 0.6 is tuned against real traces: below ~0.4 you keep the sensor jitter you were
|
|
153
|
+
* trying to remove; above ~1.2 a deliberate small loop (the dot of an "i", a tick) starts
|
|
154
|
+
* to visibly flatten. At 0.6 a 500-point scribble lands around 40-70 points and is
|
|
155
|
+
* indistinguishable from the raw trace at 100% zoom.
|
|
156
|
+
*
|
|
157
|
+
* It is world-space, so ink drawn while zoomed OUT is simplified more aggressively in
|
|
158
|
+
* screen terms — which is right: you cannot see detail you did not draw.
|
|
159
|
+
*/
|
|
160
|
+
export declare const DEFAULT_SIMPLIFY_EPSILON = 0.6;
|
|
@@ -0,0 +1,387 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Wave 10 (Whiteboard / Ink) — Card 1: the stroke.
|
|
3
|
+
//
|
|
4
|
+
// ===========================================================================
|
|
5
|
+
// WHY A STROKE IS A NEW ENTITY KIND AND NOT A NODE WITH A PATH SHAPE
|
|
6
|
+
// ===========================================================================
|
|
7
|
+
//
|
|
8
|
+
// The brief asked me to decide, and to argue it here rather than in a commit
|
|
9
|
+
// message. The engine ALREADY has `registerPathShape()` (Wave 5): arbitrary SVG
|
|
10
|
+
// silhouettes with auto-derived boundaries and port anchors. A stroke is a path.
|
|
11
|
+
// So "a stroke is a node whose shape is its path" is the obvious answer, it reuses
|
|
12
|
+
// serialization, collab, undo, culling and LOD for free, and it is WRONG. Four
|
|
13
|
+
// reasons, each of which I verified in the source before writing a line:
|
|
14
|
+
//
|
|
15
|
+
// 1. LAYOUT WOULD MOVE THE INK. Every layout entry point iterates
|
|
16
|
+
// `diagram.getNodes()` unconditionally and writes a position back to every
|
|
17
|
+
// node it is handed (`layout/layout.service.ts:100,152`;
|
|
18
|
+
// `layout/layout-registry.ts:350`; the worker path in `layout-host.ts:437`).
|
|
19
|
+
// There is NO per-node layout-exclusion flag: the only thing resembling one is
|
|
20
|
+
// `state.locked`, honoured in exactly ONE of the four entry points
|
|
21
|
+
// (`LayoutManager.ts:210`). So you circle a node in red, press "auto-layout",
|
|
22
|
+
// and Dagre relocates your circle to a tidy grid slot two columns away. Ink is
|
|
23
|
+
// annotation ON a diagram; it is not a participant IN it.
|
|
24
|
+
//
|
|
25
|
+
// 2. LINKS WOULD ROUTE AROUND IT. `DiagramEngine.refreshGroupObstacles()`
|
|
26
|
+
// (DiagramEngine.ts:1744) registers EVERY node in the routing engine's global
|
|
27
|
+
// obstacle map. The one opt-out that exists (`data.isObstacle === false`,
|
|
28
|
+
// ObstacleMapBuilder.ts:29) is defeated in practice, and the renderer already
|
|
29
|
+
// says so in a comment at svg-renderer.ts:7131: "RoutingEngine.route() unions
|
|
30
|
+
// the request's obstacles with its GLOBAL obstacle map … so both endpoint nodes
|
|
31
|
+
// came straight back in". A pencil scribble would bend every edge that passed
|
|
32
|
+
// near it. Worse, it would push links onto the expensive A* path.
|
|
33
|
+
//
|
|
34
|
+
// 3. EVERY STROKE WOULD SHIP FOUR CONNECTABLE PORTS. `NodeModel`'s constructor
|
|
35
|
+
// creates the four default ports (NodeModel.ts:167). You could drag a link out
|
|
36
|
+
// of a scribble.
|
|
37
|
+
//
|
|
38
|
+
// 4. IT HAS NOWHERE TO PUT ITS GEOMETRY. `SerializedNode` has `position`, `size`,
|
|
39
|
+
// `rotation`, `scale` — a box. A stroke's 40 pressure-bearing points would live
|
|
40
|
+
// in untyped `data`, invisible to `DiagramValidator` and to the layout worker's
|
|
41
|
+
// wire format (`layout-graph.ts:51`), which carries only id/type/position/size.
|
|
42
|
+
//
|
|
43
|
+
// A path SHAPE is a node's silhouette — a sized box with ports and a label that
|
|
44
|
+
// happens to be drawn as a star. That is a different thing from a mark someone made
|
|
45
|
+
// with a pen, and conflating them buys reuse in the four places it is cheap and costs
|
|
46
|
+
// correctness in the four places it is not.
|
|
47
|
+
//
|
|
48
|
+
// THE RECTANGLE TOOL GOES THE OTHER WAY, and for exactly the same reasoning applied
|
|
49
|
+
// honestly: a rectangle you drag out on the canvas IS a box. You want to connect it,
|
|
50
|
+
// resize it, label it, lay it out. So the shape tool creates a NODE with
|
|
51
|
+
// `metadata.shape` (the Wave-5 machinery, used for what it is actually for) and the
|
|
52
|
+
// draw tool creates a STROKE. Same argument, opposite answers, because they are
|
|
53
|
+
// genuinely different objects.
|
|
54
|
+
//
|
|
55
|
+
// ===========================================================================
|
|
56
|
+
// WHAT A STROKE COSTS
|
|
57
|
+
// ===========================================================================
|
|
58
|
+
// Bounded, and I paid it all: SerializedDiagram + serialize/fromJSON/clear/dispose,
|
|
59
|
+
// OpTarget + applyOp + OpCapture, DiagramValidator, Incremental. The envelope and
|
|
60
|
+
// BOTH checksums are generic (they recurse over whatever keys the document has), so
|
|
61
|
+
// no migration and no schema bump was needed — a document with no strokes serializes
|
|
62
|
+
// to exactly the bytes it did before this wave.
|
|
63
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
64
|
+
exports.DEFAULT_SIMPLIFY_EPSILON = exports.StrokeModel = exports.DEFAULT_STROKE_STYLE = void 0;
|
|
65
|
+
exports.hasPressure = hasPressure;
|
|
66
|
+
exports.distanceToSegment = distanceToSegment;
|
|
67
|
+
exports.segmentDistance = segmentDistance;
|
|
68
|
+
const DiagramEntity_1 = require("./DiagramEntity");
|
|
69
|
+
const PathSimplifier_1 = require("../routing/PathSimplifier");
|
|
70
|
+
exports.DEFAULT_STROKE_STYLE = { color: '#1f2933', width: 3 };
|
|
71
|
+
/**
|
|
72
|
+
* Quantization applied at CONSTRUCTION, not at serialize().
|
|
73
|
+
*
|
|
74
|
+
* A raw pointer trace carries float noise in the 10th decimal place. Rounding inside
|
|
75
|
+
* serialize() would make the in-memory model disagree with the saved one (hit-testing
|
|
76
|
+
* one geometry, persisting another). Rounding at construction keeps them the same
|
|
77
|
+
* object, and because rounding is idempotent the serialize → fromJSON → serialize
|
|
78
|
+
* round-trip is byte-stable — which is a suite-enforced invariant here.
|
|
79
|
+
*/
|
|
80
|
+
const COORD_DP = 2;
|
|
81
|
+
const PRESSURE_DP = 3;
|
|
82
|
+
function round(value, dp) {
|
|
83
|
+
const f = Math.pow(10, dp);
|
|
84
|
+
// `+ 0` normalises -0 to 0: JSON.stringify writes "-0" and a byte-comparison of two
|
|
85
|
+
// logically identical documents would then fail. Found by the round-trip spec.
|
|
86
|
+
return Math.round(value * f) / f + 0;
|
|
87
|
+
}
|
|
88
|
+
/** True when the device gave us pressure worth keeping (i.e. it actually varies). */
|
|
89
|
+
function hasPressure(points) {
|
|
90
|
+
let seen;
|
|
91
|
+
for (const p of points) {
|
|
92
|
+
if (p.pressure === undefined)
|
|
93
|
+
return false;
|
|
94
|
+
if (seen === undefined)
|
|
95
|
+
seen = p.pressure;
|
|
96
|
+
else if (Math.abs(p.pressure - seen) > 1e-6)
|
|
97
|
+
return true;
|
|
98
|
+
}
|
|
99
|
+
return false;
|
|
100
|
+
}
|
|
101
|
+
/** Distance from `p` to the segment `a`→`b`. The primitive both hit-tests are built on. */
|
|
102
|
+
function distanceToSegment(p, a, b) {
|
|
103
|
+
const dx = b.x - a.x;
|
|
104
|
+
const dy = b.y - a.y;
|
|
105
|
+
const lenSq = dx * dx + dy * dy;
|
|
106
|
+
if (lenSq === 0)
|
|
107
|
+
return Math.hypot(p.x - a.x, p.y - a.y);
|
|
108
|
+
// Project onto the segment and CLAMP — an unclamped projection measures distance to
|
|
109
|
+
// the infinite line, which reports a hit on a point nowhere near the ink.
|
|
110
|
+
let t = ((p.x - a.x) * dx + (p.y - a.y) * dy) / lenSq;
|
|
111
|
+
t = t < 0 ? 0 : t > 1 ? 1 : t;
|
|
112
|
+
return Math.hypot(p.x - (a.x + t * dx), p.y - (a.y + t * dy));
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Minimum distance between two SEGMENTS.
|
|
116
|
+
*
|
|
117
|
+
* The eraser needs this and a point-test cannot replace it. A pointermove at 60Hz over
|
|
118
|
+
* a fast flick lands samples 80px apart; testing only the sample POINTS lets the
|
|
119
|
+
* eraser jump clean over a stroke it visibly swept through. So the eraser tests the
|
|
120
|
+
* segment it travelled, not the points it happened to land on.
|
|
121
|
+
*/
|
|
122
|
+
function segmentDistance(a1, a2, b1, b2) {
|
|
123
|
+
if (segmentsIntersect(a1, a2, b1, b2))
|
|
124
|
+
return 0;
|
|
125
|
+
return Math.min(distanceToSegment(a1, b1, b2), distanceToSegment(a2, b1, b2), distanceToSegment(b1, a1, a2), distanceToSegment(b2, a1, a2));
|
|
126
|
+
}
|
|
127
|
+
function cross(ox, oy, ax, ay, bx, by) {
|
|
128
|
+
return (ax - ox) * (by - oy) - (ay - oy) * (bx - ox);
|
|
129
|
+
}
|
|
130
|
+
function segmentsIntersect(a1, a2, b1, b2) {
|
|
131
|
+
const d1 = cross(b1.x, b1.y, b2.x, b2.y, a1.x, a1.y);
|
|
132
|
+
const d2 = cross(b1.x, b1.y, b2.x, b2.y, a2.x, a2.y);
|
|
133
|
+
const d3 = cross(a1.x, a1.y, a2.x, a2.y, b1.x, b1.y);
|
|
134
|
+
const d4 = cross(a1.x, a1.y, a2.x, a2.y, b2.x, b2.y);
|
|
135
|
+
return ((d1 > 0) !== (d2 > 0)) && ((d3 > 0) !== (d4 > 0));
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* A freehand ink stroke: an ordered point list, a style, and an identity.
|
|
139
|
+
*
|
|
140
|
+
* A first-class `DiagramEntity`, which is not a formality — it is what makes every
|
|
141
|
+
* other gate in this wave close for free:
|
|
142
|
+
* • `trackChange()` → `markDirty()` → the GLOBAL MUTATION EPOCH, which is the thing
|
|
143
|
+
* both frame gates read (`svg-renderer.ts:795`, `create-diagram.ts:369`). A stroke
|
|
144
|
+
* that were a plain object would mutate the picture without moving the epoch, and
|
|
145
|
+
* both gates would skip the frame: you would draw and see nothing.
|
|
146
|
+
* • `on('change')` → `OpCapture` picks it up through the same funnel as everything
|
|
147
|
+
* else. No parallel bookkeeping to drift out of step.
|
|
148
|
+
* • `serialize()`/`dispose()`/`version` → the document contracts.
|
|
149
|
+
*/
|
|
150
|
+
class StrokeModel extends DiagramEntity_1.DiagramEntity {
|
|
151
|
+
constructor(points = [], style = exports.DEFAULT_STROKE_STYLE, options = {}) {
|
|
152
|
+
super(options.id, options.uuid);
|
|
153
|
+
/** Cached bounds. Invalidated on every geometry write; never stale, never recomputed twice. */
|
|
154
|
+
this.bounds = null;
|
|
155
|
+
this.points = normalizePoints(points);
|
|
156
|
+
this.style = Object.assign({}, style);
|
|
157
|
+
this.label = options.label;
|
|
158
|
+
}
|
|
159
|
+
// -------------------------------------------------------------------------
|
|
160
|
+
// Geometry
|
|
161
|
+
// -------------------------------------------------------------------------
|
|
162
|
+
getPoints() {
|
|
163
|
+
return this.points;
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Replace the geometry.
|
|
167
|
+
*
|
|
168
|
+
* Emits `trackChange('points', …)` like any other register. NOTE that capture used
|
|
169
|
+
* to drop EVERY `points` change on the floor (`DERIVED = new Set(['points'])`),
|
|
170
|
+
* because on a LINK `points` is routed geometry that each peer recomputes for
|
|
171
|
+
* itself. On a stroke `points` is the authored content itself. That set is now
|
|
172
|
+
* scoped per target — see `collab/capture.ts`. Without that fix, editing a stroke's
|
|
173
|
+
* geometry would silently fail to reach any other peer.
|
|
174
|
+
*/
|
|
175
|
+
setPoints(points) {
|
|
176
|
+
const next = normalizePoints(points);
|
|
177
|
+
const prev = this.points;
|
|
178
|
+
this.points = next;
|
|
179
|
+
this.bounds = null;
|
|
180
|
+
this.trackChange('points', prev, next);
|
|
181
|
+
}
|
|
182
|
+
get pointCount() {
|
|
183
|
+
return this.points.length;
|
|
184
|
+
}
|
|
185
|
+
/** Axis-aligned bounds, INFLATED by the stroke's own half-width (ink has girth). */
|
|
186
|
+
getBounds() {
|
|
187
|
+
if (this.bounds)
|
|
188
|
+
return this.bounds;
|
|
189
|
+
if (this.points.length === 0) {
|
|
190
|
+
this.bounds = { x: 0, y: 0, width: 0, height: 0 };
|
|
191
|
+
return this.bounds;
|
|
192
|
+
}
|
|
193
|
+
let minX = Infinity;
|
|
194
|
+
let minY = Infinity;
|
|
195
|
+
let maxX = -Infinity;
|
|
196
|
+
let maxY = -Infinity;
|
|
197
|
+
for (const p of this.points) {
|
|
198
|
+
if (p.x < minX)
|
|
199
|
+
minX = p.x;
|
|
200
|
+
if (p.y < minY)
|
|
201
|
+
minY = p.y;
|
|
202
|
+
if (p.x > maxX)
|
|
203
|
+
maxX = p.x;
|
|
204
|
+
if (p.y > maxY)
|
|
205
|
+
maxY = p.y;
|
|
206
|
+
}
|
|
207
|
+
// Half the nib, or a 1px stroke's bounds have zero height and the renderer culls a
|
|
208
|
+
// perfectly horizontal line out of a viewport it is plainly inside.
|
|
209
|
+
const pad = this.style.width / 2;
|
|
210
|
+
this.bounds = {
|
|
211
|
+
x: minX - pad,
|
|
212
|
+
y: minY - pad,
|
|
213
|
+
width: maxX - minX + pad * 2,
|
|
214
|
+
height: maxY - minY + pad * 2,
|
|
215
|
+
};
|
|
216
|
+
return this.bounds;
|
|
217
|
+
}
|
|
218
|
+
/** Is `(x, y)` on the ink, within `tolerance` world units of it? */
|
|
219
|
+
hitTest(x, y, tolerance = 0) {
|
|
220
|
+
const reach = this.style.width / 2 + tolerance;
|
|
221
|
+
const p = { x, y };
|
|
222
|
+
if (this.points.length === 0)
|
|
223
|
+
return false;
|
|
224
|
+
if (this.points.length === 1) {
|
|
225
|
+
return Math.hypot(x - this.points[0].x, y - this.points[0].y) <= reach;
|
|
226
|
+
}
|
|
227
|
+
for (let i = 0; i < this.points.length - 1; i++) {
|
|
228
|
+
if (distanceToSegment(p, this.points[i], this.points[i + 1]) <= reach)
|
|
229
|
+
return true;
|
|
230
|
+
}
|
|
231
|
+
return false;
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Did a pointer travelling `a`→`b` sweep across this ink? THE ERASER'S QUESTION.
|
|
235
|
+
* Segment-vs-segment, not point-vs-segment — see {@link segmentDistance}.
|
|
236
|
+
*/
|
|
237
|
+
intersectsSegment(a, b, tolerance = 0) {
|
|
238
|
+
const reach = this.style.width / 2 + tolerance;
|
|
239
|
+
if (this.points.length === 0)
|
|
240
|
+
return false;
|
|
241
|
+
if (this.points.length === 1)
|
|
242
|
+
return distanceToSegment(this.points[0], a, b) <= reach;
|
|
243
|
+
for (let i = 0; i < this.points.length - 1; i++) {
|
|
244
|
+
if (segmentDistance(a, b, this.points[i], this.points[i + 1]) <= reach)
|
|
245
|
+
return true;
|
|
246
|
+
}
|
|
247
|
+
return false;
|
|
248
|
+
}
|
|
249
|
+
// -------------------------------------------------------------------------
|
|
250
|
+
// Style / label
|
|
251
|
+
// -------------------------------------------------------------------------
|
|
252
|
+
getStyle() {
|
|
253
|
+
return this.style;
|
|
254
|
+
}
|
|
255
|
+
setStyle(style) {
|
|
256
|
+
const prev = Object.assign({}, this.style);
|
|
257
|
+
this.style = Object.assign(Object.assign({}, this.style), style);
|
|
258
|
+
this.bounds = null; // width feeds the bounds padding
|
|
259
|
+
this.trackChange('style', prev, Object.assign({}, this.style));
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* REPLACE the whole style object — the write `setStyle` cannot express, and the collab
|
|
263
|
+
* reducer's write path.
|
|
264
|
+
*
|
|
265
|
+
* `setStyle` MERGES, so applying a `style` op with it meant a peer could gain a key and
|
|
266
|
+
* never lose one: the author clears an `opacity` and every other peer keeps the faded
|
|
267
|
+
* stroke forever. `NodeModel.replaceStyle` is the same seam for the same reason, and a
|
|
268
|
+
* plain field assignment is not a substitute — it would skip the `bounds` invalidation
|
|
269
|
+
* below and leave the peer measuring the stroke at its old width.
|
|
270
|
+
*/
|
|
271
|
+
replaceStyle(style) {
|
|
272
|
+
const prev = Object.assign({}, this.style);
|
|
273
|
+
this.style = Object.assign({}, style);
|
|
274
|
+
this.bounds = null; // width feeds the bounds padding
|
|
275
|
+
this.trackChange('style', prev, Object.assign({}, this.style));
|
|
276
|
+
}
|
|
277
|
+
/**
|
|
278
|
+
* The accessible name, when the author gave one. See the a11y note on the
|
|
279
|
+
* ink layer. Overrides the DiagramEntity canon (metadata.label): a stroke's
|
|
280
|
+
* label lives in its own serialized `label` property, not the metadata bag.
|
|
281
|
+
*/
|
|
282
|
+
getLabel() {
|
|
283
|
+
return this.label;
|
|
284
|
+
}
|
|
285
|
+
setLabel(label) {
|
|
286
|
+
const prev = this.label;
|
|
287
|
+
this.label = label;
|
|
288
|
+
this.trackChange('label', prev, label);
|
|
289
|
+
}
|
|
290
|
+
// -------------------------------------------------------------------------
|
|
291
|
+
// Document
|
|
292
|
+
// -------------------------------------------------------------------------
|
|
293
|
+
serialize() {
|
|
294
|
+
const doc = {
|
|
295
|
+
id: this.id,
|
|
296
|
+
uuid: this.uuid,
|
|
297
|
+
type: 'stroke',
|
|
298
|
+
version: this.version,
|
|
299
|
+
metadata: Object.fromEntries(this.metadata),
|
|
300
|
+
points: this.points.map((p) =>
|
|
301
|
+
// The key is OMITTED, not written as undefined. `{x,y,pressure:undefined}` and
|
|
302
|
+
// `{x,y}` are the same JSON but not the same object, and the round-trip
|
|
303
|
+
// invariant is a deep-equal on the parsed payload.
|
|
304
|
+
p.pressure === undefined ? { x: p.x, y: p.y } : { x: p.x, y: p.y, pressure: p.pressure }),
|
|
305
|
+
style: Object.assign({}, this.style),
|
|
306
|
+
};
|
|
307
|
+
if (this.label !== undefined)
|
|
308
|
+
doc.label = this.label;
|
|
309
|
+
return doc;
|
|
310
|
+
}
|
|
311
|
+
static fromJSON(data) {
|
|
312
|
+
var _a, _b, _c;
|
|
313
|
+
const stroke = new StrokeModel((_a = data.points) !== null && _a !== void 0 ? _a : [], (_b = data.style) !== null && _b !== void 0 ? _b : exports.DEFAULT_STROKE_STYLE, {
|
|
314
|
+
id: data.id,
|
|
315
|
+
label: data.label,
|
|
316
|
+
});
|
|
317
|
+
stroke.restoreIdentity(data);
|
|
318
|
+
for (const [k, v] of Object.entries((_c = data.metadata) !== null && _c !== void 0 ? _c : {}))
|
|
319
|
+
stroke.metadata.set(k, v);
|
|
320
|
+
return stroke;
|
|
321
|
+
}
|
|
322
|
+
/**
|
|
323
|
+
* Build a stroke from a RAW POINTER TRACE. This is the only constructor the draw tool
|
|
324
|
+
* uses, and the simplification is not optional decoration.
|
|
325
|
+
*
|
|
326
|
+
* A two-second scribble at 120Hz is ~240 samples, most of them a fraction of a pixel
|
|
327
|
+
* apart. Persisting them all means a document that is mostly float noise, an op
|
|
328
|
+
* payload that is kilobytes per line, and an SVG path the browser re-parses on every
|
|
329
|
+
* frame. The brief's phrasing is exactly right: a 500-point stroke that serialises as
|
|
330
|
+
* 500 points is a bug.
|
|
331
|
+
*
|
|
332
|
+
* So: Douglas-Peucker, through the engine's OWN `PathSimplifier` — which existed and
|
|
333
|
+
* which the renderer had never called until Wave 8, and which I am not going to
|
|
334
|
+
* reimplement a second copy of. Typical reduction on real ink is 85-95%.
|
|
335
|
+
*
|
|
336
|
+
* IT PRESERVES PRESSURE, and that is a property of the algorithm rather than luck:
|
|
337
|
+
* Douglas-Peucker SELECTS a subset of the input points (it returns the very objects it
|
|
338
|
+
* was given — `PathSimplifier.ts:123`), it never interpolates new ones. So the
|
|
339
|
+
* `pressure` riding on each retained sample rides through untouched. If it ever grows
|
|
340
|
+
* an interpolating mode this breaks silently, so the spec pins it.
|
|
341
|
+
*/
|
|
342
|
+
static fromRawPoints(raw, style = exports.DEFAULT_STROKE_STYLE, options = {}) {
|
|
343
|
+
var _a;
|
|
344
|
+
const epsilon = (_a = options.epsilon) !== null && _a !== void 0 ? _a : exports.DEFAULT_SIMPLIFY_EPSILON;
|
|
345
|
+
const clean = normalizePoints(raw);
|
|
346
|
+
// simplify() throws on epsilon <= 0, and <= 2 points has nothing to simplify.
|
|
347
|
+
const points = epsilon > 0 && clean.length > 2
|
|
348
|
+
? new PathSimplifier_1.PathSimplifier().simplify(clean, epsilon)
|
|
349
|
+
: clean;
|
|
350
|
+
return new StrokeModel(points, style, { id: options.id, label: options.label });
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
exports.StrokeModel = StrokeModel;
|
|
354
|
+
/**
|
|
355
|
+
* Douglas-Peucker tolerance, in WORLD units.
|
|
356
|
+
*
|
|
357
|
+
* 0.6 is tuned against real traces: below ~0.4 you keep the sensor jitter you were
|
|
358
|
+
* trying to remove; above ~1.2 a deliberate small loop (the dot of an "i", a tick) starts
|
|
359
|
+
* to visibly flatten. At 0.6 a 500-point scribble lands around 40-70 points and is
|
|
360
|
+
* indistinguishable from the raw trace at 100% zoom.
|
|
361
|
+
*
|
|
362
|
+
* It is world-space, so ink drawn while zoomed OUT is simplified more aggressively in
|
|
363
|
+
* screen terms — which is right: you cannot see detail you did not draw.
|
|
364
|
+
*/
|
|
365
|
+
exports.DEFAULT_SIMPLIFY_EPSILON = 0.6;
|
|
366
|
+
/**
|
|
367
|
+
* Clamp, quantize, and drop meaningless pressure.
|
|
368
|
+
*
|
|
369
|
+
* Also drops non-finite points outright: a NaN from a pointer event (it happens, on
|
|
370
|
+
* pointercancel) would poison the bounds to NaN, which culls the stroke from every
|
|
371
|
+
* viewport query for the rest of the document's life.
|
|
372
|
+
*/
|
|
373
|
+
function normalizePoints(points) {
|
|
374
|
+
const out = [];
|
|
375
|
+
for (const p of points) {
|
|
376
|
+
if (!p || !isFinite(p.x) || !isFinite(p.y))
|
|
377
|
+
continue;
|
|
378
|
+
const q = { x: round(p.x, COORD_DP), y: round(p.y, COORD_DP) };
|
|
379
|
+
if (p.pressure !== undefined && isFinite(p.pressure)) {
|
|
380
|
+
const clamped = p.pressure < 0 ? 0 : p.pressure > 1 ? 1 : p.pressure;
|
|
381
|
+
q.pressure = round(clamped, PRESSURE_DP);
|
|
382
|
+
}
|
|
383
|
+
out.push(q);
|
|
384
|
+
}
|
|
385
|
+
return out;
|
|
386
|
+
}
|
|
387
|
+
//# sourceMappingURL=StrokeModel.js.map
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Models index - exports all model classes
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
tslib_1.__exportStar(require("./DiagramEntity"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./PortModel"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./NodeModel"), exports);
|
|
8
|
+
tslib_1.__exportStar(require("./LinkModel"), exports);
|
|
9
|
+
tslib_1.__exportStar(require("./DiagramModel"), exports);
|
|
10
|
+
tslib_1.__exportStar(require("./GroupModel"), exports);
|
|
11
|
+
tslib_1.__exportStar(require("./StrokeModel"), exports); // wave10/whiteboard
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The read-only lock — Wave 9, Card 7.
|
|
3
|
+
*
|
|
4
|
+
* ## Why this exists
|
|
5
|
+
*
|
|
6
|
+
* `DiagramMode.VIEW` / `DiagramMode.PRESENTATION` and `ModeManager.isReadOnlyMode()`
|
|
7
|
+
* have existed in this engine since long before this wave. They were documented as
|
|
8
|
+
* "All editing disabled" / "No structural changes allowed".
|
|
9
|
+
*
|
|
10
|
+
* **They gated nothing.** Not one command, not one model mutator, not the DOM event
|
|
11
|
+
* binder. `isReadOnlyMode()` was advisory — a boolean nobody asked. A "read-only"
|
|
12
|
+
* diagram would happily accept a node drag, a Delete key, a paste, or a
|
|
13
|
+
* `node.setPosition()` from any caller. That is not a feature, it is a
|
|
14
|
+
* security-shaped lie: it *looks* locked and is not.
|
|
15
|
+
*
|
|
16
|
+
* This module is the enforcement primitive those modes now hang off.
|
|
17
|
+
*
|
|
18
|
+
* ## The distinction that makes it safe: DOCUMENT writes vs SYSTEM writes
|
|
19
|
+
*
|
|
20
|
+
* A naive lock ("refuse every `setSize`") breaks the renderer, because the engine
|
|
21
|
+
* writes model fields at render time for reasons that have nothing to do with a
|
|
22
|
+
* user editing the document:
|
|
23
|
+
*
|
|
24
|
+
* - `svg/auto-size.ts` measures text and writes `node.setSize()`
|
|
25
|
+
* - `ext/node-component.ts` measures a custom component and writes `node.setSize()`
|
|
26
|
+
* - `ext/portal.ts` positions a portal via `setPosition()`
|
|
27
|
+
* - `instance/model-input.ts` writes geometry while LOADING the document
|
|
28
|
+
*
|
|
29
|
+
* Block those and a read-only diagram renders at the wrong size — the lock would
|
|
30
|
+
* have "worked" in a unit test and destroyed the actual product. So writes come in
|
|
31
|
+
* two kinds:
|
|
32
|
+
*
|
|
33
|
+
* - **Document writes** — user/API intent that changes what the document MEANS.
|
|
34
|
+
* Refused while locked. (drag, delete, paste, connect, waypoint edit, command.)
|
|
35
|
+
* - **System writes** — derived/measured values the engine recomputes to render
|
|
36
|
+
* what the document ALREADY means. Always allowed, via {@link ReadonlyLock.runSystemWrite}.
|
|
37
|
+
*
|
|
38
|
+
* A system write must never be reachable from user input. The three call sites above
|
|
39
|
+
* are the entire allowlist, and each is wrapped explicitly at the call site so the
|
|
40
|
+
* bypass is greppable rather than ambient.
|
|
41
|
+
*
|
|
42
|
+
* ## Refusal semantics
|
|
43
|
+
*
|
|
44
|
+
* Guarded mutators **no-op** (and return a neutral value) rather than throw. A throw
|
|
45
|
+
* from deep inside a model setter would take down a render pass or a host's event
|
|
46
|
+
* handler; a locked document should be inert, not explosive. Callers that need to
|
|
47
|
+
* know can ask {@link ReadonlyLock.isReadonly} up front — which is exactly what the
|
|
48
|
+
* UI layers do to avoid arming a gesture they cannot finish.
|
|
49
|
+
*/
|
|
50
|
+
/** Something that owns a read-only lock (a `DiagramModel`). */
|
|
51
|
+
export interface ReadonlyLockOwner {
|
|
52
|
+
/** True when a *document* mutation must be refused right now. */
|
|
53
|
+
blocksDocumentWrite(): boolean;
|
|
54
|
+
/**
|
|
55
|
+
* True while a SYSTEM write is in flight (see {@link ReadonlyLock.runSystemWrite}).
|
|
56
|
+
*
|
|
57
|
+
* Exposed because the document lock is not the only lock that needs the
|
|
58
|
+
* document/system distinction: the PER-NODE lock (`NodeState.locked`) draws the
|
|
59
|
+
* same line, and must draw it the same way or the engine ends up with two
|
|
60
|
+
* disagreeing definitions of "the engine is measuring, not the user editing".
|
|
61
|
+
*/
|
|
62
|
+
inSystemWrite(): boolean;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* The lock itself. Held by `DiagramModel`; consulted by `NodeModel` / `LinkModel`
|
|
66
|
+
* through their `diagram` back-reference, and by `CommandManager` through its context.
|
|
67
|
+
*/
|
|
68
|
+
export declare class ReadonlyLock {
|
|
69
|
+
private locked;
|
|
70
|
+
/**
|
|
71
|
+
* Re-entrant depth of in-flight system writes. A counter, not a boolean, because
|
|
72
|
+
* auto-size can run inside a render that is itself inside a system write.
|
|
73
|
+
*/
|
|
74
|
+
private systemWriteDepth;
|
|
75
|
+
isReadonly(): boolean;
|
|
76
|
+
setReadonly(value: boolean): void;
|
|
77
|
+
/** True when a document mutation must be refused: locked AND not a system write. */
|
|
78
|
+
blocksDocumentWrite(): boolean;
|
|
79
|
+
/** True while a system write is in flight, whether or not the document is locked. */
|
|
80
|
+
inSystemWrite(): boolean;
|
|
81
|
+
/**
|
|
82
|
+
* Run `fn` as a SYSTEM write — a derived/measured value the engine needs in order
|
|
83
|
+
* to render the document as it already is. Permitted even while locked.
|
|
84
|
+
*
|
|
85
|
+
* Exception-safe: the depth is restored in `finally`, so a throwing measurement
|
|
86
|
+
* cannot leave the lock permanently open (which would silently un-lock the
|
|
87
|
+
* document — the worst possible failure mode for this class).
|
|
88
|
+
*/
|
|
89
|
+
runSystemWrite<T>(fn: () => T): T;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* True when `owner` is locked against document writes.
|
|
93
|
+
*
|
|
94
|
+
* Tolerates `undefined` because a model can legitimately be detached: a `NodeModel`
|
|
95
|
+
* built with `new NodeModel()` and not yet added to a diagram has no back-reference,
|
|
96
|
+
* and must stay freely mutable — you have to be able to BUILD a node before you can
|
|
97
|
+
* add it to a locked document (and `addNode` itself is what refuses).
|
|
98
|
+
*/
|
|
99
|
+
export declare function writeBlocked(owner?: Partial<ReadonlyLockOwner>): boolean;
|
|
100
|
+
/**
|
|
101
|
+
* True when `owner` is currently performing a SYSTEM write — a measured/derived
|
|
102
|
+
* value the engine needs in order to render the document as it already is.
|
|
103
|
+
*
|
|
104
|
+
* Same `undefined` tolerance as {@link writeBlocked}, and the same answer for a
|
|
105
|
+
* host that predates the accessor: `false` (assume a document write), which is the
|
|
106
|
+
* conservative reading — it refuses rather than silently permits.
|
|
107
|
+
*/
|
|
108
|
+
export declare function isSystemWrite(owner?: Partial<ReadonlyLockOwner>): boolean;
|